1 # This file is part of the OpenADK project. OpenADK is copyrighted
2 # material, please see the LICENCE file in the top-level directory.
4 include $(ADK_TOPDIR
)/rules.mk
5 include $(ADK_TOPDIR
)/mk
/rootfs.mk
10 PKG_SECTION
:= base
/apps
11 PKG_DESCR
:= basic files and scripts
13 WRKDIST
= ${WRKDIR}/base-files
16 include $(ADK_TOPDIR
)/mk
/package.mk
18 $(eval
$(call PKG_template
,BASE_FILES
,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},force_etc
))
22 INSTALL_STYLE
:= manual
25 $(CP
) .
/src
/* $(IDIR_BASE_FILES
)
26 mkdir
-p
$(IDIR_BASE_FILES
)/{etc
,dev
,boot
,root
,sys
,proc
,tmp
,run
,var
,mnt
,media
}
27 mkdir
-p
$(IDIR_BASE_FILES
)/usr
/{lib
,bin
,sbin
}
28 ln
-sf ..
/run
$(IDIR_BASE_FILES
)/var
/run
29 chmod
600 $(IDIR_BASE_FILES
)/etc
/shadow
30 chmod
1777 ${IDIR_BASE_FILES}/tmp
31 ifeq ($(ADK_RUNTIME_INIT_SYSTEMD
),)
32 echo
$(ADK_RUNTIME_TMPFS_SIZE
) > $(IDIR_BASE_FILES
)/etc
/tmpfs
33 mkdir
-p
$(IDIR_BASE_FILES
)/etc
/init.d
34 cp .
/files
/init.d
/* $(IDIR_BASE_FILES
)/etc
/init.d
35 mkdir
-p
$(IDIR_BASE_FILES
)/etc
/network
/{if-pre-up.d
,if-up.d
,if-down.d
,if-post-down.d
}
36 cp .
/files
/fstab
$(IDIR_BASE_FILES
)/etc
37 cp .
/files
/modules
$(IDIR_BASE_FILES
)/etc
38 ln
-sf ..
/proc
/mounts
$(IDIR_BASE_FILES
)/etc
/mtab
39 ifeq ($(ADK_RUNTIME_LOAD_KERNEL_MODULES
),)
40 -rm $(IDIR_BASE_FILES
)/etc
/init.d
/kmod
42 ifeq ($(ADK_TARGET_WITH_NETDEVICE
),y
)
43 cp .
/files
/interfaces-dhcp
$(IDIR_BASE_FILES
)/etc
/network
/interfaces
44 cp .
/files
/rc.netinfo
$(IDIR_BASE_FILES
)/etc
/
46 cp .
/files
/interfaces-lo
$(IDIR_BASE_FILES
)/etc
/network
/interfaces
48 chmod
600 $(IDIR_BASE_FILES
)/etc
/network
/interfaces
49 ifeq (${ADK_TARGET_ROOTFS_NFSROOT},y
)
50 echo
'#' > $(IDIR_BASE_FILES
)/etc
/network
/interfaces
51 (cd
$(IDIR_BASE_FILES
)/etc
; ln
-sf ..
/proc
/net
/pnp resolv.conf
)
53 (cd
$(IDIR_BASE_FILES
)/etc
; ln
-sf ..
/tmp
/resolv.conf .
)
56 ifeq ($(ADK_RUNTIME_DEV_MDEV
),y
)
57 $(CP
) .
/files
/rcdev.mdev
$(IDIR_BASE_FILES
)/etc
/init.d
/rcdev
58 $(CP
) .
/files
/mdev.conf
$(IDIR_BASE_FILES
)/etc
59 $(CP
) .
/files
/mdev
$(IDIR_BASE_FILES
)/etc
61 ifeq ($(ADK_RUNTIME_DEV_UDEV
),y
)
62 $(CP
) .
/files
/rcdev.udev
$(IDIR_BASE_FILES
)/etc
/init.d
/rcdev
64 ifeq ($(ADK_RUNTIME_INIT_SYSV
),y
)
65 cp .
/files
/inittab.sysv
$(IDIR_BASE_FILES
)/etc
/inittab
66 test -z
$(ADK_RUNTIME_SHELL
) || \
67 cat .
/files
/inittab.
shell >> $(IDIR_BASE_FILES
)/etc
/inittab
68 ifeq ($(ADK_TARGET_WITH_VGA
),y
)
69 test -z
$(ADK_RUNTIME_SHELL
) || \
70 cat .
/files
/inittab.shellvga
>> $(IDIR_BASE_FILES
)/etc
/inittab
72 test -z
$(ADK_RUNTIME_GETTY_VGA
) || \
73 cat .
/files
/inittab.vga
>> $(IDIR_BASE_FILES
)/etc
/inittab
74 test -z
$(ADK_RUNTIME_GETTY_SERIAL
) || \
75 cat .
/files
/inittab.serial
>> $(IDIR_BASE_FILES
)/etc
/inittab
76 $(SED
) 's#@DEVICE@#$(ADK_RUNTIME_CONSOLE_SERIAL_DEVICE)#g' $(IDIR_BASE_FILES
)/etc
/inittab
77 $(SED
) 's#@SPEED@#$(ADK_RUNTIME_CONSOLE_SERIAL_SPEED)#' $(IDIR_BASE_FILES
)/etc
/inittab
79 ifeq ($(ADK_RUNTIME_INIT_SYSVINIT
),y
)
80 cp .
/files
/inittab.sysvinit
$(IDIR_BASE_FILES
)/etc
/inittab
82 test -z
$(ADK_RUNTIME_HOSTNAME
) || \
83 echo
$(ADK_RUNTIME_HOSTNAME
) > $(IDIR_BASE_FILES
)/etc
/hostname
; \
84 echo
"127.0.0.1 localhost" > $(IDIR_BASE_FILES
)/etc
/hosts
85 echo
"127.0.1.1 $(ADK_RUNTIME_HOSTNAME)" >> $(IDIR_BASE_FILES
)/etc
/hosts
86 echo
"::1 ip6-localhost ip6-loopback" >> $(IDIR_BASE_FILES
)/etc
/hosts
87 echo
"fe00::0 ip6-localnet" >> $(IDIR_BASE_FILES
)/etc
/hosts
88 echo
"ff00::0 ip6-mcastprefix" >> $(IDIR_BASE_FILES
)/etc
/hosts
89 echo
"ff02::1 ip6-allnodes" >> $(IDIR_BASE_FILES
)/etc
/hosts
90 echo
"ff02::2 ip6-allrouters" >> $(IDIR_BASE_FILES
)/etc
/hosts
91 echo
"ff02::3 ip6-allhosts" >> $(IDIR_BASE_FILES
)/etc
/hosts
92 test -z
'$(ADK_RUNTIME_PASSWORD)' || \
93 $(SED
) 's,\*NP\*,'"$$(awk -F\= '/^ADK_RUNTIME_PASSWORD/ { print $$2 }' $(ADK_TOPDIR)/.config|sed -e 's^\"^^g'),g" \
94 $(IDIR_BASE_FILES
)/etc
/shadow
95 echo
/bin
/sh
>${IDIR_BASE_FILES}/etc
/shells
96 echo
/bin
/mksh
>>${IDIR_BASE_FILES}/etc
/shells
97 ifneq (${ADK_PACKAGE_ASH},)
98 echo
/bin
/ash
>>${IDIR_BASE_FILES}/etc
/shells
100 ifneq (${ADK_PACKAGE_HUSH},)
101 echo
/bin
/hush
>>${IDIR_BASE_FILES}/etc
/shells
103 ifneq (${ADK_PACKAGE_BASH},)
104 echo
/bin
/bash
>>${IDIR_BASE_FILES}/etc
/shells
106 ifneq (${ADK_PACKAGE_ZSH},)
107 echo
/bin
/zsh
>>${IDIR_BASE_FILES}/etc
/shells
109 ifeq ($(ADK_PACKAGE_MKSH
),y
)
110 $(CP
) .
/files
/profile
$(IDIR_BASE_FILES
)/etc
/profile
111 ifeq ($(ADK_TARGET_WITH_ROOT_RW
),y
)
112 echo
'export IPKGTMPDIR=/root/.ipkg' >> $(IDIR_BASE_FILES
)/etc
/profile
114 echo
'export IPKGTMPDIR=/tmp' >> $(IDIR_BASE_FILES
)/etc
/profile
116 ifeq ($(ADK_TARGET_BOARD_BCM28XX
),y
)
117 echo
'export LD_LIBRARY_PATH=/opt/vc/lib' >> $(IDIR_BASE_FILES
)/etc
/profile
120 ifeq (${ADK_TARGET_PACKAGE_IPKG},y
)
121 $(CP
) .
/files
/ipkg.conf
$(IDIR_BASE_FILES
)/etc
/
122 $(SED
) 's,@ARCH@,$(ADK_TARGET_CPU_ARCH),g' $(IDIR_BASE_FILES
)/etc
/ipkg.conf
123 $(SED
) 's,@SYSTEM@,$(ADK_TARGET_SYSTEM),g' $(IDIR_BASE_FILES
)/etc
/ipkg.conf
124 $(SED
) 's,@LIBC@,$(ADK_TARGET_LIBC),g' $(IDIR_BASE_FILES
)/etc
/ipkg.conf
125 $(SED
) 's,@HOST@,$(ADK_HOST),g' $(IDIR_BASE_FILES
)/etc
/ipkg.conf
126 $(SED
) 's,@VENDOR@,$(ADK_VENDOR),g' $(IDIR_BASE_FILES
)/etc
/ipkg.conf
127 mkdir
-p
$(IDIR_BASE_FILES
)/usr
/lib
/ipkg
/lists
129 ifeq (${ADK_TARGET_PACKAGE_OPKG},y
)
130 $(CP
) .
/files
/ipkg.conf
$(IDIR_BASE_FILES
)/etc
/
131 $(SED
) 's,@ARCH@,$(ADK_TARGET_CPU_ARCH),g' $(IDIR_BASE_FILES
)/etc
/ipkg.conf
132 $(SED
) 's,@SYSTEM@,$(ADK_TARGET_SYSTEM),g' $(IDIR_BASE_FILES
)/etc
/ipkg.conf
133 $(SED
) 's,@LIBC@,$(ADK_TARGET_LIBC),g' $(IDIR_BASE_FILES
)/etc
/ipkg.conf
134 $(SED
) 's,@HOST@,$(ADK_HOST),g' $(IDIR_BASE_FILES
)/etc
/ipkg.conf
135 $(SED
) 's,@VENDOR@,$(ADK_VENDOR),g' $(IDIR_BASE_FILES
)/etc
/ipkg.conf
136 mkdir
-p
$(IDIR_BASE_FILES
)/usr
/lib
/opkg
/lists
139 # simple network configuration
140 ifneq (${ADK_SIMPLE_NETWORK_CONFIG},)
141 ${INSTALL_DIR} ${IDIR_BASE_FILES}/etc
/network
142 printf
"auto lo\niface lo inet loopback\n" > ${IDIR_BASE_FILES}/etc
/network
/interfaces
144 ifeq (${ADK_SIMPLE_NETWORK_CONFIG_ETH0_DHCP},y
)
145 printf
"\nauto eth0\niface eth0 inet dhcp\n" >> ${IDIR_BASE_FILES}/etc
/network
/interfaces
147 ifeq (${ADK_SIMPLE_NETWORK_CONFIG_ETH0_STATIC},y
)
148 printf
"\nauto eth0\niface eth0 inet static\n" >> ${IDIR_BASE_FILES}/etc
/network
/interfaces
149 printf
" address ${ADK_SIMPLE_NETWORK_CONFIG_ETH0_IP}\n" >> ${IDIR_BASE_FILES}/etc
/network
/interfaces
150 printf
" netmask ${ADK_SIMPLE_NETWORK_CONFIG_ETH0_NM}\n" >> ${IDIR_BASE_FILES}/etc
/network
/interfaces
151 printf
" broadcast +\n" >> ${IDIR_BASE_FILES}/etc
/network
/interfaces
152 ifneq (${ADK_SIMPLE_NETWORK_CONFIG_ETH0_GW},)
153 printf
" gateway ${ADK_SIMPLE_NETWORK_CONFIG_ETH0_GW}\n" >> ${IDIR_BASE_FILES}/etc
/network
/interfaces
157 ifeq (${ADK_SIMPLE_NETWORK_CONFIG_WLAN0_DHCP},y
)
158 printf
"\nauto wlan0\niface wlan0 inet dhcp\n" >> ${IDIR_BASE_FILES}/etc
/network
/interfaces
159 ifeq (${ADK_SIMPLE_NETWORK_CONFIG_WLAN0_WPA2},y
)
160 printf
" wireless-mode sta\n" >> ${IDIR_BASE_FILES}/etc
/network
/interfaces
161 printf
" wireless-ssid ${ADK_SIMPLE_NETWORK_CONFIG_WLAN0_WPA2_SSID}\n" >> ${IDIR_BASE_FILES}/etc
/network
/interfaces
162 printf
" wireless-security wpa2\n" >> ${IDIR_BASE_FILES}/etc
/network
/interfaces
163 printf
" wireless-passphrase ${ADK_SIMPLE_NETWORK_CONFIG_WLAN0_WPA2_PW}\n\n" >> ${IDIR_BASE_FILES}/etc
/network
/interfaces
166 ifeq (${ADK_SIMPLE_NETWORK_CONFIG_WLAN0_STATIC},y
)
167 printf
"\nauto wlan0\niface wlan0 inet static\n" >> ${IDIR_BASE_FILES}/etc
/network
/interfaces
168 ifeq (${ADK_SIMPLE_NETWORK_CONFIG_WLAN0_WPA2},y
)
169 printf
" wireless-mode sta\n" >> ${IDIR_BASE_FILES}/etc
/network
/interfaces
170 printf
" wireless-ssid ${ADK_SIMPLE_NETWORK_CONFIG_WLAN0_WPA2_SSID}\n" >> ${IDIR_BASE_FILES}/etc
/network
/interfaces
171 printf
" wireless-security wpa2\n" >> ${IDIR_BASE_FILES}/etc
/network
/interfaces
172 printf
" wireless-passphrase ${ADK_SIMPLE_NETWORK_CONFIG_WLAN0_WPA2_PW}\n" >> ${IDIR_BASE_FILES}/etc
/network
/interfaces
174 printf
" address ${ADK_SIMPLE_NETWORK_CONFIG_WLAN0_IP}\n" >> ${IDIR_BASE_FILES}/etc
/network
/interfaces
175 printf
" netmask ${ADK_SIMPLE_NETWORK_CONFIG_WLAN0_NM}\n" >> ${IDIR_BASE_FILES}/etc
/network
/interfaces
176 printf
" broadcast +\n" >> ${IDIR_BASE_FILES}/etc
/network
/interfaces
177 ifneq (${ADK_SIMPLE_NETWORK_CONFIG_WLAN0_GW},)
178 printf
" gateway ${ADK_SIMPLE_NETWORK_CONFIG_WLAN0_GW}\n" >> ${IDIR_BASE_FILES}/etc
/network
/interfaces
182 ifeq (${ADK_SIMPLE_NETWORK_CONFIG_ETH1_DHCP},y
)
183 printf
"\nauto eth1\niface eth1 inet dhcp\n" >> ${IDIR_BASE_FILES}/etc
/network
/interfaces
185 ifeq (${ADK_SIMPLE_NETWORK_CONFIG_ETH1_STATIC},y
)
186 printf
"\nauto eth1\niface eth1 inet static\n" >> ${IDIR_BASE_FILES}/etc
/network
/interfaces
187 printf
" address ${ADK_SIMPLE_NETWORK_CONFIG_ETH1_IP}\n" >> ${IDIR_BASE_FILES}/etc
/network
/interfaces
188 printf
" netmask ${ADK_SIMPLE_NETWORK_CONFIG_ETH1_NM}\n" >> ${IDIR_BASE_FILES}/etc
/network
/interfaces
189 printf
" broadcast +\n" >> ${IDIR_BASE_FILES}/etc
/network
/interfaces
190 ifneq (${ADK_SIMPLE_NETWORK_CONFIG_ETH1_GW},)
191 printf
" gateway ${ADK_SIMPLE_NETWORK_CONFIG_ETH1_GW}\n" >> ${IDIR_BASE_FILES}/etc
/network
/interfaces
194 printf
"\n" >> ${IDIR_BASE_FILES}/etc
/network
/interfaces
196 ifneq (${ADK_SIMPLE_NETWORK_CONFIG_NS},)
197 rm ${IDIR_BASE_FILES}/etc
/resolv.conf
198 printf
"nameserver ${ADK_SIMPLE_NETWORK_CONFIG_NS}\n" > ${IDIR_BASE_FILES}/etc
/resolv.conf
200 ifneq (${ADK_SIMPLE_NETWORK_CONFIG_PROXY},)
201 printf
"http_proxy=${ADK_SIMPLE_NETWORK_CONFIG_PROXY}\n" >> ${IDIR_BASE_FILES}/etc
/profile
202 printf
"https_proxy=${ADK_SIMPLE_NETWORK_CONFIG_PROXY}\n" >> ${IDIR_BASE_FILES}/etc
/profile
203 printf
"ftp_proxy=${ADK_SIMPLE_NETWORK_CONFIG_PROXY}\n" >> ${IDIR_BASE_FILES}/etc
/profile
207 ifeq ($(ADK_RUNTIME_ADDUSER
),y
)
208 mkdir
-p
${IDIR_BASE_FILES}/$(ADK_RUNTIME_USER_HOME
)
209 printf
"$(ADK_RUNTIME_USER_NAME):x:100:100:$(ADK_RUNTIME_USER_NAME):$(ADK_RUNTIME_USER_HOME):$(ADK_RUNTIME_USER_SHELL)" >> ${IDIR_BASE_FILES}/etc
/passwd
210 printf
"$(ADK_RUNTIME_USER_NAME):$(ADK_RUNTIME_USER_PASSWORD):16514:0:::::" >> ${IDIR_BASE_FILES}/etc
/shadow
211 printf
"$(ADK_RUNTIME_USER_NAME):x:100:" >> ${IDIR_BASE_FILES}/etc
/group
214 include ${ADK_TOPDIR}/mk
/pkg-bottom.mk