diff options
Diffstat (limited to 'package/base-files')
48 files changed, 684 insertions, 423 deletions
diff --git a/package/base-files/Config.in.manual b/package/base-files/Config.in.manual index 68d22bbd2..60ee15445 100644 --- a/package/base-files/Config.in.manual +++ b/package/base-files/Config.in.manual @@ -4,19 +4,17 @@ config ADK_COMPILE_BASE_FILES default n config ADK_PACKAGE_BASE_FILES - prompt "base-files............. basic filesystem structure and scripts" - tristate + tristate "base-files.............. basic filesystem structure and scripts" select ADK_COMPILE_BASE_FILES - depends on !ADK_TOOLCHAIN_ONLY - default y if !ADK_TOOLCHAIN_ONLY + depends on !ADK_APPLIANCE_TOOLCHAIN + default y if !ADK_APPLIANCE_TOOLCHAIN help basic filesystem structure and scripts config ADK_PACKAGE_CONFIG_IN_ETC - prompt ".config in /etc...... include buildsystem configuration in image" - bool + bool ".config in /etc....... include buildsystem configuration in image" depends on ADK_PACKAGE_BASE_FILES - default y if !ADK_TOOLCHAIN_ONLY + default y if !ADK_APPLIANCE_TOOLCHAIN help Copy the configuration file (.config) to the image. The file will be found in /etc/adkconfig.gz. This takes about diff --git a/package/base-files/Makefile b/package/base-files/Makefile index b00b81918..0c7ce0b24 100644 --- a/package/base-files/Makefile +++ b/package/base-files/Makefile @@ -1,160 +1,225 @@ # This file is part of the OpenADK project. OpenADK is copyrighted # material, please see the LICENCE file in the top-level directory. -include $(TOPDIR)/rules.mk -include $(TOPDIR)/mk/rootfs.mk +include $(ADK_TOPDIR)/rules.mk +include $(ADK_TOPDIR)/mk/rootfs.mk PKG_NAME:= base-files -PKG_VERSION:= 1.0 -PKG_RELEASE:= 49 -PKG_SECTION:= base +PKG_VERSION:= 1.1 +PKG_RELEASE:= 29 +PKG_SECTION:= base/apps PKG_DESCR:= basic files and scripts WRKDIST= ${WRKDIR}/base-files NO_DISTFILES:= 1 -include $(TOPDIR)/mk/package.mk +include $(ADK_TOPDIR)/mk/package.mk -$(eval $(call PKG_template,BASE_FILES,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION})) +$(eval $(call PKG_template,BASE_FILES,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},force_etc)) CONFIG_STYLE:= manual BUILD_STYLE:= manual INSTALL_STYLE:= manual +ifeq ($(ADK_RUNTIME_DEV_MDEV_LOGGING),y) +ADK_RUNTIME_DEV_MDEV_LOGGING_LINE:='echo >/dev/mdev.log' +else +ADK_RUNTIME_DEV_MDEV_LOGGING_LINE:='' +endif + +ifeq ($(ADK_RUNTIME_GETTY_SERIAL_AUTOLOGIN),y) +ADK_RUNTIME_GETTY_SERIAL_AUTOLOGIN_STANZA:= -n -l autologin +else +ADK_RUNTIME_GETTY_SERIAL_AUTOLOGIN_STANZA:= +endif + do-install: $(CP) ./src/* $(IDIR_BASE_FILES) + mkdir -p $(IDIR_BASE_FILES)/{etc,dev,boot,root,sys,proc,tmp,run,var,mnt,media} + mkdir -p $(IDIR_BASE_FILES)/usr/{lib,bin,sbin} + ln -sf ../run $(IDIR_BASE_FILES)/var/run + chmod 600 $(IDIR_BASE_FILES)/etc/shadow + chmod 1777 ${IDIR_BASE_FILES}/tmp + echo $(ADK_RUNTIME_TMPFS_SIZE) > $(IDIR_BASE_FILES)/etc/tmpfs + mkdir -p $(IDIR_BASE_FILES)/etc/init.d + cp ./files/init.d/* $(IDIR_BASE_FILES)/etc/init.d + mkdir -p $(IDIR_BASE_FILES)/etc/network/{if-pre-up.d,if-up.d,if-down.d,if-post-down.d} + cp ./files/fstab $(IDIR_BASE_FILES)/etc + cp ./files/modules $(IDIR_BASE_FILES)/etc + ln -sf ../proc/mounts $(IDIR_BASE_FILES)/etc/mtab +ifeq ($(ADK_RUNTIME_LOAD_KERNEL_MODULES),) + -rm $(IDIR_BASE_FILES)/etc/init.d/kmod +endif +ifeq ($(ADK_TARGET_WITH_NETDEVICE),y) + cp ./files/interfaces-dhcp $(IDIR_BASE_FILES)/etc/network/interfaces + cp ./files/rc.netinfo $(IDIR_BASE_FILES)/etc/ +else + cp ./files/interfaces-lo $(IDIR_BASE_FILES)/etc/network/interfaces +endif + chmod 600 $(IDIR_BASE_FILES)/etc/network/interfaces ifeq (${ADK_TARGET_ROOTFS_NFSROOT},y) - @echo "#" > $(IDIR_BASE_FILES)/etc/network/interfaces + echo '#' > $(IDIR_BASE_FILES)/etc/network/interfaces + (cd $(IDIR_BASE_FILES)/etc; ln -sf ../proc/net/pnp resolv.conf) +else + (cd $(IDIR_BASE_FILES)/etc; ln -sf ../tmp/resolv.conf .) +endif +ifeq ($(ADK_RUNTIME_DEV_MDEV),y) + $(CP) ./files/rcdev.mdev $(IDIR_BASE_FILES)/etc/init.d/rcdev + $(SED) "s#@ADK_RUNTIME_DEV_MDEV_LOGGING@#"$(ADK_RUNTIME_DEV_MDEV_LOGGING_LINE)"#g" $(IDIR_BASE_FILES)/etc/init.d/rcdev + $(CP) ./files/mdev.conf $(IDIR_BASE_FILES)/etc + $(CP) ./files/mdev $(IDIR_BASE_FILES)/etc +endif + +ifeq ($(ADK_RUNTIME_DEV_UDEV),y) + $(CP) ./files/rcdev.udev $(IDIR_BASE_FILES)/etc/init.d/rcdev +endif +ifeq ($(ADK_RUNTIME_INIT_SYSV),y) + cp ./files/inittab.sysv $(IDIR_BASE_FILES)/etc/inittab + test -z $(ADK_RUNTIME_SHELL) || \ + cat ./files/inittab.shell >> $(IDIR_BASE_FILES)/etc/inittab +ifeq ($(ADK_TARGET_WITH_VGA)$(ADK_TARGET_GENERIC),y) + test -z $(ADK_RUNTIME_SHELL) || \ + cat ./files/inittab.shellvga >> $(IDIR_BASE_FILES)/etc/inittab +endif + test -z $(ADK_RUNTIME_GETTY_VGA) || \ + cat ./files/inittab.vga >> $(IDIR_BASE_FILES)/etc/inittab + test -z $(ADK_RUNTIME_GETTY_SERIAL) || \ + cat ./files/inittab.serial >> $(IDIR_BASE_FILES)/etc/inittab + $(SED) 's#@DEVICE@#$(ADK_RUNTIME_CONSOLE_SERIAL_DEVICE)#g' $(IDIR_BASE_FILES)/etc/inittab + $(SED) 's#@SPEED@#$(ADK_RUNTIME_CONSOLE_SERIAL_SPEED)#' $(IDIR_BASE_FILES)/etc/inittab + $(SED) 's#@AUTOLOGIN@#$(ADK_RUNTIME_GETTY_SERIAL_AUTOLOGIN_STANZA)#' $(IDIR_BASE_FILES)/etc/inittab endif - $(SED) 's,@ARCH@,$(ADK_TARGET_ARCH),g' $(IDIR_BASE_FILES)/etc/ipkg.conf - $(SED) 's,@SYSTEM@,$(ADK_TARGET_SYSTEM),g' $(IDIR_BASE_FILES)/etc/ipkg.conf - $(SED) 's,@LIBC@,$(ADK_TARGET_LIBC),g' $(IDIR_BASE_FILES)/etc/ipkg.conf - $(SED) 's,@HOST@,$(ADK_HOST),g' $(IDIR_BASE_FILES)/etc/ipkg.conf - $(SED) 's,@VENDOR@,$(ADK_VENDOR),g' $(IDIR_BASE_FILES)/etc/ipkg.conf +ifeq ($(ADK_RUNTIME_MOUNT_DEBUGFS),y) + echo debugfs /sys/kernel/debug debugfs defaults 0 0 >> $(IDIR_BASE_FILES)/etc/fstab + echo null::sysinit:/bin/mount -a -t debugfs >> $(IDIR_BASE_FILES)/etc/inittab +endif + test -z $(ADK_RUNTIME_HOSTNAME) || \ + echo $(ADK_RUNTIME_HOSTNAME) > $(IDIR_BASE_FILES)/etc/hostname; \ + echo "127.0.0.1 localhost" > $(IDIR_BASE_FILES)/etc/hosts + echo "127.0.1.1 $(ADK_RUNTIME_HOSTNAME)" >> $(IDIR_BASE_FILES)/etc/hosts + echo "::1 ip6-localhost ip6-loopback" >> $(IDIR_BASE_FILES)/etc/hosts + echo "fe00::0 ip6-localnet" >> $(IDIR_BASE_FILES)/etc/hosts + echo "ff00::0 ip6-mcastprefix" >> $(IDIR_BASE_FILES)/etc/hosts + echo "ff02::1 ip6-allnodes" >> $(IDIR_BASE_FILES)/etc/hosts + echo "ff02::2 ip6-allrouters" >> $(IDIR_BASE_FILES)/etc/hosts + echo "ff02::3 ip6-allhosts" >> $(IDIR_BASE_FILES)/etc/hosts + test -z '$(ADK_RUNTIME_PASSWORD)' || \ + $(SED) 's,\*NP\*,'"$$(awk -F\= '/^ADK_RUNTIME_PASSWORD/ { print $$2 }' $(ADK_TOPDIR)/.config|sed -e 's^\"^^g'),g" \ + $(IDIR_BASE_FILES)/etc/shadow echo /bin/sh >${IDIR_BASE_FILES}/etc/shells + echo /bin/mksh >>${IDIR_BASE_FILES}/etc/shells +ifneq (${ADK_PACKAGE_ASH},) echo /bin/ash >>${IDIR_BASE_FILES}/etc/shells +endif +ifneq (${ADK_PACKAGE_HUSH},) + echo /bin/hush >>${IDIR_BASE_FILES}/etc/shells +endif ifneq (${ADK_PACKAGE_BASH},) echo /bin/bash >>${IDIR_BASE_FILES}/etc/shells endif -ifneq (${ADK_PACKAGE_MKSH},) - echo /bin/mksh >>${IDIR_BASE_FILES}/etc/shells -endif ifneq (${ADK_PACKAGE_ZSH},) echo /bin/zsh >>${IDIR_BASE_FILES}/etc/shells endif - mkdir -p $(IDIR_BASE_FILES)/usr/lib/ipkg/lists - mkdir -p $(IDIR_BASE_FILES)/etc/crontabs - mkdir -p $(IDIR_BASE_FILES)/{dev,boot,root,sys,proc,tmp,mnt} -ifeq (${ADK_INSTALL_PACKAGE_NETWORK_SCRIPTS},y) - mkdir -p $(IDIR_BASE_FILES)/etc/network/{if-pre-up.d,if-up.d,if-down.d,if-post-down.d} +ifeq ($(ADK_PACKAGE_MKSH),y) + $(CP) ./files/profile $(IDIR_BASE_FILES)/etc/profile +ifeq ($(ADK_TARGET_WITH_ROOT_RW),y) + echo 'export IPKGTMPDIR=/root/.ipkg' >> $(IDIR_BASE_FILES)/etc/profile +else + echo 'export IPKGTMPDIR=/tmp' >> $(IDIR_BASE_FILES)/etc/profile endif - mkdir -p $(IDIR_BASE_FILES)/usr/{lib,bin} - chmod 755 $(IDIR_BASE_FILES)/lib/mdev/init - chmod 600 $(IDIR_BASE_FILES)/etc/shadow - chmod 600 $(IDIR_BASE_FILES)/etc/network/interfaces - chmod 1777 ${IDIR_BASE_FILES}/tmp - ln -sf ../proc/mounts $(IDIR_BASE_FILES)/etc/mtab - rm -rf $(IDIR_BASE_FILES)/var - ln -sf tmp $(IDIR_BASE_FILES)/var - test -z $(ADK_RUNTIME_CONSOLE_VGA) || \ - cat ./files/inittab.vga >> $(IDIR_BASE_FILES)/etc/inittab - test -z $(ADK_RUNTIME_CONSOLE_SERIAL) || \ - cat ./files/inittab.serial >> $(IDIR_BASE_FILES)/etc/inittab - test -z $(ADK_RUNTIME_CONSOLE_BOTH) || \ - cat ./files/inittab.serial >> $(IDIR_BASE_FILES)/etc/inittab - test -z $(ADK_RUNTIME_CONSOLE_BOTH) || \ - cat ./files/inittab.vga >> $(IDIR_BASE_FILES)/etc/inittab -ifeq ($(ADK_TARGET_QEMU_ARM_MODEL_VERSATILE),y) - $(SED) 's#ttyS#ttyAMA#g' $(IDIR_BASE_FILES)/etc/inittab endif - $(SED) 's#@SPEED@#$(ADK_RUNTIME_CONSOLE_SERIAL_SPEED)#' $(IDIR_BASE_FILES)/etc/inittab - test -z $(ADK_RUNTIME_HOSTNAME) || \ - echo $(ADK_RUNTIME_HOSTNAME) > $(IDIR_BASE_FILES)/etc/hostname; \ - echo "127.0.0.1 localhost" > $(IDIR_BASE_FILES)/etc/hosts - echo "::1 localhost" >> $(IDIR_BASE_FILES)/etc/hosts - echo "127.0.1.1 $(ADK_RUNTIME_HOSTNAME)" >> $(IDIR_BASE_FILES)/etc/hosts - test -z $(ADK_RUNTIME_PASSWORD) || \ - $(SED) 's,\*NP\*,'"$$(${TOPDIR}/bin/tools/mkcrypt \ - ${ADK_RUNTIME_PASSWORD}),g" $(IDIR_BASE_FILES)/etc/shadow - git log -1|head -1|sed -e 's#commit ##' \ - > $(IDIR_BASE_FILES)/etc/adkversion - test -z $(ADK_TARGET_SYSTEM) || \ - echo $(ADK_TARGET_SYSTEM) > $(IDIR_BASE_FILES)/etc/adktarget - echo $(ADK_RUNTIME_TMPFS_SIZE) > $(IDIR_BASE_FILES)/etc/tmpfs -ifneq (${ADK_PACKAGE_CONFIG_IN_ETC},) - gzip -9c ${TOPDIR}/.config >$(IDIR_BASE_FILES)/etc/adkconfig.gz - chmod 600 $(IDIR_BASE_FILES)/etc/adkconfig.gz +ifeq (${ADK_TARGET_PACKAGE_IPKG},y) + $(CP) ./files/ipkg.conf $(IDIR_BASE_FILES)/etc/ + $(SED) 's,@ARCH@,$(ADK_TARGET_CPU_ARCH),g' $(IDIR_BASE_FILES)/etc/ipkg.conf + $(SED) 's,@SYSTEM@,$(ADK_TARGET_SYSTEM),g' $(IDIR_BASE_FILES)/etc/ipkg.conf + $(SED) 's,@LIBC@,$(ADK_TARGET_LIBC),g' $(IDIR_BASE_FILES)/etc/ipkg.conf + $(SED) 's,@HOST@,$(ADK_HOST),g' $(IDIR_BASE_FILES)/etc/ipkg.conf + $(SED) 's,@VENDOR@,$(ADK_VENDOR),g' $(IDIR_BASE_FILES)/etc/ipkg.conf + mkdir -p $(IDIR_BASE_FILES)/usr/lib/ipkg/lists +endif +ifeq (${ADK_TARGET_PACKAGE_OPKG},y) + $(CP) ./files/ipkg.conf $(IDIR_BASE_FILES)/etc/ + $(SED) 's,@ARCH@,$(ADK_TARGET_CPU_ARCH),g' $(IDIR_BASE_FILES)/etc/ipkg.conf + $(SED) 's,@SYSTEM@,$(ADK_TARGET_SYSTEM),g' $(IDIR_BASE_FILES)/etc/ipkg.conf + $(SED) 's,@LIBC@,$(ADK_TARGET_LIBC),g' $(IDIR_BASE_FILES)/etc/ipkg.conf + $(SED) 's,@HOST@,$(ADK_HOST),g' $(IDIR_BASE_FILES)/etc/ipkg.conf + $(SED) 's,@VENDOR@,$(ADK_VENDOR),g' $(IDIR_BASE_FILES)/etc/ipkg.conf + mkdir -p $(IDIR_BASE_FILES)/usr/lib/opkg/lists endif - - # simple network configuration ifneq (${ADK_SIMPLE_NETWORK_CONFIG},) ${INSTALL_DIR} ${IDIR_BASE_FILES}/etc/network + printf "auto lo\niface lo inet loopback\n" > ${IDIR_BASE_FILES}/etc/network/interfaces - # network config local - echo -e "auto lo\niface lo inet loopback" > ${IDIR_BASE_FILES}/etc/network/interfaces - - # network config eth0 - # configure nic with manual ip -ifeq (${SIMPLE_NETWORK_CONFIG_ETH0_TYPE_NIC},y) - echo -e "\nauto eth0\niface eth0 inet dhcp" >> ${IDIR_BASE_FILES}/etc/network/interfaces +ifeq (${ADK_SIMPLE_NETWORK_CONFIG_ETH0_DHCP},y) + printf "\nauto eth0\niface eth0 inet dhcp\n" >> ${IDIR_BASE_FILES}/etc/network/interfaces endif - # configure nic with dhcp -ifeq (${SIMPLE_NETWORK_CONFIG_ETH0_TYPE_NIC_MANUAL},y) - echo -e "\nauto eth0\niface eth0 inet static" >> ${IDIR_BASE_FILES}/etc/network/interfaces - echo -e " address ${SIMPLE_NETWORK_CONFIG_ETH0_IP}" >> ${IDIR_BASE_FILES}/etc/network/interfaces - echo -e " netmask ${SIMPLE_NETWORK_CONFIG_ETH0_NM}" >> ${IDIR_BASE_FILES}/etc/network/interfaces - echo -e " broadcast ${SIMPLE_NETWORK_CONFIG_ETH0_BC}" >> ${IDIR_BASE_FILES}/etc/network/interfaces - echo -e " gateway ${SIMPLE_NETWORK_CONFIG_ETH0_GW}" >> ${IDIR_BASE_FILES}/etc/network/interfaces +ifeq (${ADK_SIMPLE_NETWORK_CONFIG_ETH0_STATIC},y) + printf "\nauto eth0\niface eth0 inet static\n" >> ${IDIR_BASE_FILES}/etc/network/interfaces + printf " address ${ADK_SIMPLE_NETWORK_CONFIG_ETH0_IP}\n" >> ${IDIR_BASE_FILES}/etc/network/interfaces + printf " netmask ${ADK_SIMPLE_NETWORK_CONFIG_ETH0_NM}\n" >> ${IDIR_BASE_FILES}/etc/network/interfaces + printf " broadcast +\n" >> ${IDIR_BASE_FILES}/etc/network/interfaces +ifneq (${ADK_SIMPLE_NETWORK_CONFIG_ETH0_GW},) + printf " gateway ${ADK_SIMPLE_NETWORK_CONFIG_ETH0_GW}\n" >> ${IDIR_BASE_FILES}/etc/network/interfaces endif - # configure bridge -ifeq (${SIMPLE_NETWORK_CONFIG_ETH0_TYPE_BRIDGE},y) - echo -e "\nauto br0\niface br0 inet manual" >> ${IDIR_BASE_FILES}/etc/network/interfaces - echo -e " bridge-ports ${SIMPLE_NETWORK_CONFIG_ETH0_BRIDGE}" >> ${IDIR_BASE_FILES}/etc/network/interfaces -endif - #configure bridge with ip -ifeq (${SIMPLE_NETWORK_CONFIG_ETH0_TYPE_BRIDGE_IP},y) - echo -e "\nauto br0\niface br0 inet static" >> ${IDIR_BASE_FILES}/etc/network/interfaces - echo -e " address ${SIMPLE_NETWORK_CONFIG_ETH0_IP}" >> ${IDIR_BASE_FILES}/etc/network/interfaces - echo -e " netmask ${SIMPLE_NETWORK_CONFIG_ETH0_NM}" >> ${IDIR_BASE_FILES}/etc/network/interfaces - echo -e " broadcast ${SIMPLE_NETWORK_CONFIG_ETH0_BC}" >> ${IDIR_BASE_FILES}/etc/network/interfaces - echo -e " bridge-ports ${SIMPLE_NETWORK_CONFIG_ETH0_BRIDGE}" >> ${IDIR_BASE_FILES}/etc/network/interfaces endif - # network config eth1 - # configure nic with manual ip -ifeq (${SIMPLE_NETWORK_CONFIG_ETH1_TYPE_NIC},y) - echo -e "\nauto eth1\niface eth1 inet dhcp" >> ${IDIR_BASE_FILES}/etc/network/interfaces +ifeq (${ADK_SIMPLE_NETWORK_CONFIG_WLAN0_DHCP},y) + printf "\nauto wlan0\niface wlan0 inet dhcp\n" >> ${IDIR_BASE_FILES}/etc/network/interfaces +ifeq (${ADK_SIMPLE_NETWORK_CONFIG_WLAN0_WPA2},y) + printf " wireless-mode sta\n" >> ${IDIR_BASE_FILES}/etc/network/interfaces + printf " wireless-ssid ${ADK_SIMPLE_NETWORK_CONFIG_WLAN0_WPA2_SSID}\n" >> ${IDIR_BASE_FILES}/etc/network/interfaces + printf " wireless-security wpa2\n" >> ${IDIR_BASE_FILES}/etc/network/interfaces + printf " wireless-passphrase ${ADK_SIMPLE_NETWORK_CONFIG_WLAN0_WPA2_PW}\n\n" >> ${IDIR_BASE_FILES}/etc/network/interfaces +endif endif - # configure nic with dhcp -ifeq (${SIMPLE_NETWORK_CONFIG_ETH1_TYPE_NIC_MANUAL},y) - echo -e "\nauto eth1\niface eth1 inet static" >> ${IDIR_BASE_FILES}/etc/network/interfaces - echo -e " address ${SIMPLE_NETWORK_CONFIG_ETH1_IP}" >> ${IDIR_BASE_FILES}/etc/network/interfaces - echo -e " netmask ${SIMPLE_NETWORK_CONFIG_ETH1_NM}" >> ${IDIR_BASE_FILES}/etc/network/interfaces - echo -e " broadcast ${SIMPLE_NETWORK_CONFIG_ETH1_BC}" >> ${IDIR_BASE_FILES}/etc/network/interfaces - echo -e " gateway ${SIMPLE_NETWORK_CONFIG_ETH1_GW}" >> ${IDIR_BASE_FILES}/etc/network/interfaces +ifeq (${ADK_SIMPLE_NETWORK_CONFIG_WLAN0_STATIC},y) + printf "\nauto wlan0\niface wlan0 inet static\n" >> ${IDIR_BASE_FILES}/etc/network/interfaces +ifeq (${ADK_SIMPLE_NETWORK_CONFIG_WLAN0_WPA2},y) + printf " wireless-mode sta\n" >> ${IDIR_BASE_FILES}/etc/network/interfaces + printf " wireless-ssid ${ADK_SIMPLE_NETWORK_CONFIG_WLAN0_WPA2_SSID}\n" >> ${IDIR_BASE_FILES}/etc/network/interfaces + printf " wireless-security wpa2\n" >> ${IDIR_BASE_FILES}/etc/network/interfaces + printf " wireless-passphrase ${ADK_SIMPLE_NETWORK_CONFIG_WLAN0_WPA2_PW}\n" >> ${IDIR_BASE_FILES}/etc/network/interfaces endif - # configure bridge -ifeq (${SIMPLE_NETWORK_CONFIG_ETH1_TYPE_BRIDGE},y) - echo -e "\nauto br0\niface br1 inet manual" >> ${IDIR_BASE_FILES}/etc/network/interfaces - echo -e " bridge-ports ${SIMPLE_NETWORK_CONFIG_ETH1_BRIDGE}" >> ${IDIR_BASE_FILES}/etc/network/interfaces + printf " address ${ADK_SIMPLE_NETWORK_CONFIG_WLAN0_IP}\n" >> ${IDIR_BASE_FILES}/etc/network/interfaces + printf " netmask ${ADK_SIMPLE_NETWORK_CONFIG_WLAN0_NM}\n" >> ${IDIR_BASE_FILES}/etc/network/interfaces + printf " broadcast +\n" >> ${IDIR_BASE_FILES}/etc/network/interfaces +ifneq (${ADK_SIMPLE_NETWORK_CONFIG_WLAN0_GW},) + printf " gateway ${ADK_SIMPLE_NETWORK_CONFIG_WLAN0_GW}\n" >> ${IDIR_BASE_FILES}/etc/network/interfaces endif - #configure bridge with ip -ifeq (${SIMPLE_NETWORK_CONFIG_ETH1_TYPE_BRIDGE_IP},y) - echo -e "\nauto br0\niface br1 inet static" >> ${IDIR_BASE_FILES}/etc/network/interfaces - echo -e " address ${SIMPLE_NETWORK_CONFIG_ETH1_IP}" >> ${IDIR_BASE_FILES}/etc/network/interfaces - echo -e " netmask ${SIMPLE_NETWORK_CONFIG_ETH1_NM}" >> ${IDIR_BASE_FILES}/etc/network/interfaces - echo -e " broadcast ${SIMPLE_NETWORK_CONFIG_ETH1_BC}" >> ${IDIR_BASE_FILES}/etc/network/interfaces - echo -e " bridge-ports ${SIMPLE_NETWORK_CONFIG_ETH1_BRIDGE}" >> ${IDIR_BASE_FILES}/etc/network/interfaces endif - # newline at the end of interfaces file - echo -en "\n" >> ${IDIR_BASE_FILES}/etc/network/interfaces +ifeq (${ADK_SIMPLE_NETWORK_CONFIG_ETH1_DHCP},y) + printf "\nauto eth1\niface eth1 inet dhcp\n" >> ${IDIR_BASE_FILES}/etc/network/interfaces +endif +ifeq (${ADK_SIMPLE_NETWORK_CONFIG_ETH1_STATIC},y) + printf "\nauto eth1\niface eth1 inet static\n" >> ${IDIR_BASE_FILES}/etc/network/interfaces + printf " address ${ADK_SIMPLE_NETWORK_CONFIG_ETH1_IP}\n" >> ${IDIR_BASE_FILES}/etc/network/interfaces + printf " netmask ${ADK_SIMPLE_NETWORK_CONFIG_ETH1_NM}\n" >> ${IDIR_BASE_FILES}/etc/network/interfaces + printf " broadcast +\n" >> ${IDIR_BASE_FILES}/etc/network/interfaces +ifneq (${ADK_SIMPLE_NETWORK_CONFIG_ETH1_GW},) + printf " gateway ${ADK_SIMPLE_NETWORK_CONFIG_ETH1_GW}\n" >> ${IDIR_BASE_FILES}/etc/network/interfaces +endif +endif + printf "\n" >> ${IDIR_BASE_FILES}/etc/network/interfaces - # resolver config - echo -e "nameserver ${SIMPLE_NETWORK_CONFIG_RESOLV}" > ${IDIR_BASE_FILES}/etc/resolv.conf +ifneq (${ADK_SIMPLE_NETWORK_CONFIG_NS},) + rm ${IDIR_BASE_FILES}/etc/resolv.conf + printf "nameserver ${ADK_SIMPLE_NETWORK_CONFIG_NS}\n" > ${IDIR_BASE_FILES}/etc/resolv.conf +endif +ifneq (${ADK_SIMPLE_NETWORK_CONFIG_PROXY},) + printf "http_proxy=${ADK_SIMPLE_NETWORK_CONFIG_PROXY}\n" >> ${IDIR_BASE_FILES}/etc/profile + printf "https_proxy=${ADK_SIMPLE_NETWORK_CONFIG_PROXY}\n" >> ${IDIR_BASE_FILES}/etc/profile + printf "ftp_proxy=${ADK_SIMPLE_NETWORK_CONFIG_PROXY}\n" >> ${IDIR_BASE_FILES}/etc/profile +endif endif +ifeq ($(ADK_RUNTIME_ADDUSER),y) + mkdir -p ${IDIR_BASE_FILES}/$(ADK_RUNTIME_USER_HOME) + printf "$(ADK_RUNTIME_USER_NAME):x:100:100:$(ADK_RUNTIME_USER_NAME):$(ADK_RUNTIME_USER_HOME):$(ADK_RUNTIME_USER_SHELL)\n" >> ${IDIR_BASE_FILES}/etc/passwd + printf "$(ADK_RUNTIME_USER_NAME):$(ADK_RUNTIME_USER_PASSWORD):16514:0:::::\n" >> ${IDIR_BASE_FILES}/etc/shadow + printf "$(ADK_RUNTIME_USER_NAME):x:100:\n" >> ${IDIR_BASE_FILES}/etc/group +endif -include ${TOPDIR}/mk/pkg-bottom.mk +include ${ADK_TOPDIR}/mk/pkg-bottom.mk diff --git a/package/base-files/files/base-files.conffiles b/package/base-files/files/base-files.conffiles index 59ed2f02b..4845c1855 100644 --- a/package/base-files/files/base-files.conffiles +++ b/package/base-files/files/base-files.conffiles @@ -1,10 +1,8 @@ -/etc/mdev.conf /etc/inittab /etc/banner /etc/group /etc/hosts /etc/hostname -/etc/ipkg.conf /etc/modules /etc/passwd /etc/profile diff --git a/package/base-files/files/fstab b/package/base-files/files/fstab new file mode 100644 index 000000000..6ceedf30f --- /dev/null +++ b/package/base-files/files/fstab @@ -0,0 +1,14 @@ +# /etc/fstab: static file system information. +#<fs> <mount point> <type> <options> <dump> <pass> +proc /proc proc defaults 0 0 +devpts /dev/pts devpts defaults,gid=5,mode=620 0 0 +tmpfs /dev/shm tmpfs mode=0777 0 0 +tmpfs /tmp tmpfs mode=1777 0 0 +tmpfs /run tmpfs mode=777 0 0 +tmpfs /var tmpfs mode=755 0 0 +sysfs /sys sysfs defaults 0 0 +tmpfs /media tmpfs defaults 0 0 +# example for cifs +#//192.168.1.1/music /media/music cifs ro,password=linux123,username=adk,iocharset=utf8,sec=ntlm 0 0 +# example for read-only ntfs with UUID +#UUID=E4BC628CBC6258D6 /media/usb ntfs ro,fmask=022,dmask=022 0 0 diff --git a/package/base-files/files/init.d/cifs b/package/base-files/files/init.d/cifs new file mode 100644 index 000000000..b3ca9c649 --- /dev/null +++ b/package/base-files/files/init.d/cifs @@ -0,0 +1,39 @@ +#!/bin/sh +#INIT 60 + +case $1 in +autostop) ;; +autostart) + exec sh $0 start + ;; +start) + grep -v "^#" /etc/fstab | grep cifs >/dev/null 2>&1 + if [ $? -eq 0 ]; then + grep cifs /proc/filesystems >/dev/null 2>&1 + if [ $? -eq 0 ]; then + mntpoints=$(grep -v "^#" /etc/fstab| grep cifs|awk '{ print $2 }') + for mntpoint in $mntpoints; do + mkdir -p $mntpoint + done + mount -a -t cifs + else + logger -s -t cifs "No cifs support in kernel" + fi + fi + ;; +stop) + grep -v "^#" /etc/fstab| grep cifs >/dev/null 2>&1 + if [ $? -eq 0 ]; then + umount -a -t cifs + fi + ;; +restart) + sh $0 stop + sh $0 start + ;; +*) + echo "Usage: $0 {start | stop | restart}" + exit 1 + ;; +esac +exit $? diff --git a/package/base-files/files/init.d/done b/package/base-files/files/init.d/done new file mode 100755 index 000000000..04950fdc2 --- /dev/null +++ b/package/base-files/files/init.d/done @@ -0,0 +1,4 @@ +#!/bin/sh +#INIT 98 +[[ $1 = autostart ]] && sysctl -p >&- 2>/dev/null +exit 0 diff --git a/package/base-files/files/init.d/fs b/package/base-files/files/init.d/fs new file mode 100755 index 000000000..55e2c3449 --- /dev/null +++ b/package/base-files/files/init.d/fs @@ -0,0 +1,50 @@ +#!/bin/sh +#INIT 10 +[[ $1 = autostart ]] || exit 0 + +# activate swap +[ -x /sbin/swapon ] && { + grep swap /etc/fstab >/dev/null 2>&1 + if [ $? -eq 0 ];then + logger -t 'SWAP' "Activating swap" + swapon -a + fi +} + +# activate any logical volumes +[ -x /usr/sbin/lvm ] && { + logger -t 'LVM' "Activating LVM volumes" + lvm vgscan + lvm vgchange -ay +} + +# mount local filesystems +fstypes="ext2 ext3 ext4 xfs vfat ntfs ntfs-3g" +for fs in $fstypes; do + procfs=$fs + if [ $fs = "ntfs-3g" ];then + procfs=fuse + fi + disks=$(grep -v "^#" /etc/fstab|grep "${fs}[[:blank:]]"|awk '{ print $1 }') + for disk in $disks; do + logger -t 'Filesystem' "Found $disk with filesystem $fs" + mnt=$(grep -v "^#" /etc/fstab|grep "${disk}[[:blank:]]"|awk '{ print $2 }') + grep $procfs /proc/filesystems >/dev/null 2>&1 + if [ $? -eq 0 ];then + [ -x /usr/sbin/fsck.$fs ] && { + logger -t 'Filesystem' "checking $fs filesystem on $disk" + fsck -p $disk >/dev/null 2>&1 + } + mkdir -p $mnt > /dev/null 2>&1 + if [ -b $disk ]; then + logger -t 'Filesystem' "Mounting $disk to $mnt" + mount $disk + else + logger -t 'Filesystem' "Skipping mounting $disk, device file missing" + fi + else + logger -t 'Filesystem' "No $procfs filesystem in kernel" + fi + done +done +exit 0 diff --git a/package/base-files/files/init.d/kmod b/package/base-files/files/init.d/kmod new file mode 100755 index 000000000..509496a9e --- /dev/null +++ b/package/base-files/files/init.d/kmod @@ -0,0 +1,12 @@ +#!/bin/sh +#INIT 15 +[[ $1 = autostart ]] || exit 0 + +. /etc/functions.sh + +load_modules /etc/modules +for f in /etc/modules.d/*; do + [[ -e $f ]] && load_modules /etc/modules.d/* + break +done +exit 0 diff --git a/package/base-files/files/init.d/nfs b/package/base-files/files/init.d/nfs new file mode 100644 index 000000000..4c3f9ba83 --- /dev/null +++ b/package/base-files/files/init.d/nfs @@ -0,0 +1,40 @@ +#!/bin/sh +#INIT 60 +. /etc/rc.conf + +case $1 in +autostop) ;; +autostart) + test x"${rpcbind:-NO}" = x"NO" && exit 0 + exec sh $0 start + ;; +start) + grep -v "^#" /etc/fstab| grep nfs >/dev/null 2>&1 + if [ $? -eq 0 ];then + grep nfs /proc/filesystems >/dev/null 2>&1 + if [ $? -eq 0 ];then + mkdir -p /var/lib/nfs/rpc_pipefs + mount -t rpc_pipefs rpc_pipefs /var/lib/nfs/rpc_pipefs + mount -a -t nfs + else + logger -t nfs "No nfs support in kernel" + fi + fi + ;; +stop) + grep -v "^#" /etc/fstab| grep nfs >/dev/null 2>&1 + if [ $? -eq 0 ];then + umount -a -t nfs + umount /var/lib/nfs/rpc_pipefs + fi + ;; +restart) + sh $0 stop + sh $0 start + ;; +*) + echo "Usage: $0 {start | stop | restart}" + exit 1 + ;; +esac +exit $? diff --git a/package/base-files/files/init.d/rcK b/package/base-files/files/init.d/rcK new file mode 100755 index 000000000..8bff46cc6 --- /dev/null +++ b/package/base-files/files/init.d/rcK @@ -0,0 +1,34 @@ +#!/bin/sh +export PATH=/bin:/sbin:/usr/bin:/usr/sbin +: ${rcquiet=0} +if test x"$rcquiet" = x"0" && sh -n /etc/rc.conf >/dev/null 2>&1; then + . /etc/rc.conf + unset rcquiet + rcquiet=0 +else + unset rcquiet + rcquiet=1 +fi +{ + grep '^#INIT ' /etc/init.d/* | \ + sort -rnk2 | \ + while read line; do + rcenabled=NO + rcname=${line%%:*} + rcname=${rcname##*/} + test x"$rcquiet" = x"0" && eval 'rcenabled=${'"${rcname}"':-NO}' + test x"$rcenabled" = x"NO" || echo -n "Stopping ${rcname}... " + sh ${line%%:*} autostop + rc=$? + case $rcenabled:$rc in + (NO:*) + ;; + (*:0) + echo done. + ;; + (*:*) + echo "failed ($rc)." + ;; + esac + done +} | logger -s -p 6 -t '' diff --git a/package/base-files/files/init.d/rcS b/package/base-files/files/init.d/rcS new file mode 100755 index 000000000..9015a71ac --- /dev/null +++ b/package/base-files/files/init.d/rcS @@ -0,0 +1,84 @@ +#!/bin/sh +export PATH=/bin:/sbin:/usr/bin:/usr/sbin +# disable kernel messages +if [ -f /proc/sys/kernel/printk ];then + echo 0 > /proc/sys/kernel/printk +fi +ln -s /proc/self/fd/0 /dev/stdin +ln -s /proc/self/fd/1 /dev/stdout +ln -s /proc/self/fd/2 /dev/stderr +ln -s /proc/self/fd /dev/fd +: ${rcquiet=0} +if [ $rcquiet -ne 1 ];then + echo "System initialization ..." +fi + +# create some useful directories in tmpfs +mkdir -p /var/log +mkdir -p /var/run +mkdir -p /var/tmp +mkdir -p /var/lock +touch /var/log/lastlog +touch /var/log/wtmp + +# start dynamic device node management +[ -f /etc/init.d/rcdev ] && . /etc/init.d/rcdev + +# seed some random +cat /etc/.rnd >/dev/urandom 2>&1 + +# setup cfgfs +[ -x /sbin/cfgfs ] && { + cfgfs setup + mount -o remount,ro / +} + +# remount /tmp with smaller size +size=$(cat /etc/tmpfs 2>/dev/null) +[ -z $size ] && size=2048 +mount -o remount,nosuid,nodev,mode=1777,size=${size}k -t tmpfs tmpfs /tmp + +HOSTNAME= +[[ -s /etc/hostname ]] && HOSTNAME=$(cat /etc/hostname) +HOSTNAME=${HOSTNAME%%.*} +echo ${HOSTNAME:=openadk} >/proc/sys/kernel/hostname + +chown 0:0 /tmp; chmod 1777 /tmp + +if test x"$rcquiet" = x"0" && sh -n /etc/rc.conf >/dev/null 2>&1; then + . /etc/rc.conf + unset rcquiet + rcquiet=0 +else + unset rcquiet + rcquiet=1 +fi +{ + grep '^#INIT ' /etc/init.d/* | \ + sort -nk2 | \ + while read line; do + rcenabled=NO + rcname=${line%%:*} + rcname=${rcname##*/} + test x"$rcquiet" = x"0" && eval 'rcenabled=${'"${rcname}"':-NO}' + test x"$rcenabled" = x"NO" || echo -n "Starting ${rcname}... " + sh ${line%%:*} autostart + rc=$? + case $rcenabled:$rc in + (NO:*) + ;; + (*:0) + echo done. + ;; + (*:*) + echo "failed ($rc)." + ;; + esac + done +} |tee /dev/stderr |logger -p 6 -t '' + +if [ $rcquiet -ne 1 ]; then + if [ -f /etc/rc.netinfo ]; then + . /etc/rc.netinfo + fi +fi diff --git a/package/base-files/files/inittab.serial b/package/base-files/files/inittab.serial index 5de880f2a..ef31f1599 100644 --- a/package/base-files/files/inittab.serial +++ b/package/base-files/files/inittab.serial @@ -1 +1 @@ -ttyS0::respawn:/sbin/getty -i -L ttyS0 @SPEED@ vt100 +@DEVICE@::respawn:/sbin/getty -i -L @DEVICE@ @SPEED@ vt100 @AUTOLOGIN@ diff --git a/package/base-files/files/inittab.shell b/package/base-files/files/inittab.shell new file mode 100644 index 000000000..43685827e --- /dev/null +++ b/package/base-files/files/inittab.shell @@ -0,0 +1 @@ +@DEVICE@::askfirst:-/bin/sh diff --git a/package/base-files/files/inittab.shellvga b/package/base-files/files/inittab.shellvga new file mode 100644 index 000000000..a5c6e34ba --- /dev/null +++ b/package/base-files/files/inittab.shellvga @@ -0,0 +1 @@ +tty0::askfirst:-/bin/sh diff --git a/package/base-files/files/inittab.sysv b/package/base-files/files/inittab.sysv new file mode 100644 index 000000000..a6684a4ea --- /dev/null +++ b/package/base-files/files/inittab.sysv @@ -0,0 +1,11 @@ +null::sysinit:/bin/mount -t proc proc /proc +null::sysinit:/bin/mount -t sysfs sys /sys +null::sysinit:/bin/mount -t devtmpfs devtmpfs /dev +null::sysinit:/bin/mkdir -p /dev/pts +null::sysinit:/bin/mkdir -p /dev/shm +null::sysinit:/bin/mount -a -t devpts +null::sysinit:/bin/mount -a -t tmpfs +::sysinit:/etc/init.d/rcS +::shutdown:/etc/init.d/rcK +null::shutdown:/bin/umount -a +null::shutdown:/sbin/swapoff -a diff --git a/package/base-files/files/inittab.sysvinit b/package/base-files/files/inittab.sysvinit new file mode 100644 index 000000000..edfe9dc94 --- /dev/null +++ b/package/base-files/files/inittab.sysvinit @@ -0,0 +1,4 @@ +id:2:initdefault: +si::sysinit:/etc/init.d/rcS +1:234:respawn:/sbin/agetty 115200 tty1 +AMA0:3:respawn:/sbin/agetty -L 9600 ttyAMA0 vt320 diff --git a/package/base-files/src/etc/network/interfaces b/package/base-files/files/interfaces-dhcp index dbde94b80..652101214 100644 --- a/package/base-files/src/etc/network/interfaces +++ b/package/base-files/files/interfaces-dhcp @@ -22,6 +22,15 @@ iface eth0 inet dhcp # bridge-ports eth0 eth1 ## +## LACP configuration +#auto lacp0 +#iface lacp0 inet dhcp +# bond-ports eth0 eth1 +# bond-mode 802.3ad +# bond-miimon 100 +# bond-lacp-rate slow +# bond-xmit-hash-policy layer2+3 + ## pppoe configuration #auto ppp0 #iface ppp0 inet ppp @@ -37,7 +46,6 @@ iface eth0 inet dhcp #auto wlan0 #iface wlan0 inet dhcp # wireless-ssid myap -# wireless-channel 11 # wireless-mode sta # wireless-security wpa2 # wireless-passphrase xxxxxx @@ -50,10 +58,10 @@ iface eth0 inet dhcp # netmask 255.255.255.0 # broadcast + # wireless-ssid myap -# wireless-channel 8 # wireless-mode ap +# wireless-channel 8 # wireless-security wpa2 -# wireless-passphrase xxxxxx +# wireless-passphrase xxxxxxxx ## -# for more special cases see: http://www.openadk.org/doku.php?id=network +# for more special cases see: https://docs.openadk.org/html/manual.html#network-configuration diff --git a/package/base-files/files/interfaces-lo b/package/base-files/files/interfaces-lo new file mode 100644 index 000000000..f1bd92ed2 --- /dev/null +++ b/package/base-files/files/interfaces-lo @@ -0,0 +1,2 @@ +auto lo +iface lo inet loopback diff --git a/package/base-files/files/ipkg.conf b/package/base-files/files/ipkg.conf new file mode 100644 index 000000000..a31487176 --- /dev/null +++ b/package/base-files/files/ipkg.conf @@ -0,0 +1,3 @@ +src @VENDOR@ http://@HOST@/pkg/@SYSTEM@_@LIBC@/packages +dest root / +dest ram /tmp diff --git a/package/base-files/src/etc/mdev.conf b/package/base-files/files/mdev.conf index 4cc06251a..179222221 100644 --- a/package/base-files/src/etc/mdev.conf +++ b/package/base-files/files/mdev.conf @@ -10,11 +10,9 @@ rtc0 root:root 660 @ln -sf /dev/rtc0 /dev/rtc device-mapper 0:0 660 @test -d /dev/mapper || mkdir /dev/mapper tun 0:0 660 >net/tun fb0 root:video 660 -audio root:audio 660 >snd/audio -dsp root:audio 660 >snd/dsp -timer root:audio 660 >snd/timer -controlC0 root:audio 660 >snd/controlC0 -pcmC0D0c root:audio 660 >snd/pcmC0D0c -pcmC0D0p root:audio 660 >snd/pcmC0D0p +snd/timer root:audio 660 +snd/controlC0 root:audio 660 +snd/pcmC0D0p root:audio 660 +snd/pcmC0D1p root:audio 660 msr0 root:root 660 @(mkdir -p /dev/cpu/0 && ln -sf /dev/msr0 /dev/cpu/0/msr) -.* 0:0 644 @/lib/mdev/init +sd[a-z][1-9]* root:root 660 */etc/mdev/fs diff --git a/package/base-files/files/mdev/fs b/package/base-files/files/mdev/fs new file mode 100755 index 000000000..86c4cee2f --- /dev/null +++ b/package/base-files/files/mdev/fs @@ -0,0 +1,67 @@ +#!/bin/sh +# skip root disk here, will be handled in /etc/init.d/fs +rootdisk=$(readlink /dev/root) +if [ "x${rootdisk}" = "x${MDEV}" ];then + exit 0 +fi +uuid=$(blkid /dev/${MDEV} | sed -n '/^.*UUID="\([^"]*\)".*$/s//\1/p') +if [ -z $uuid ];then + fs=$(grep "^/dev/${MDEV}[[:blank:]]" /etc/fstab | awk '{ print $3 }') + mnt=$(grep "^/dev/${MDEV}[[:blank:]]" /etc/fstab | awk '{ print $2 }') + disk="${MDEV}" +else + fs=$(grep "^/dev/${MDEV}[[:blank:]]\|^UUID=$uuid" /etc/fstab | awk '{ print $3 }') + mnt=$(grep "^/dev/${MDEV}[[:blank:]]\|^UUID=$uuid" /etc/fstab | awk '{ print $2 }') + disk="${MDEV} (${uuid})" +fi +if [ -z $fs ];then + logger -t mdev "Disk $disk not registered in /etc/fstab" + exit 0 +fi + +procfs=$fs +if [ $fs = "ntfs-3g" ];then + procfs=fuse +fi + +# check if already mounted via /etc/init.d/fs +adk_check() { + mount | grep "${MDEV}[[:blank:]]" + if [ $? -eq 0 ];then + logger -t mdev "Filesystem on ${MDEV} already mounted" + exit 0 + fi +} + +# filesystem check +adk_fsck() { + [ -x /usr/sbin/fsck.$fs ] && { + logger -t mdev "Checking $fs filesystem on ${MDEV}" + fsck -p ${MDEV} >/dev/null + } +} + +# mount filesystem +adk_mount() { + mkdir -p $mnt >/dev/null 2>&1 + grep $procfs /proc/filesystems >/dev/null 2>&1 + if [ $? -eq 0 ];then + logger -t mdev "Mounting $disk to $mnt" + mount $mnt 2>> /tmp/mount.err + if [ $? -ne 0 ]; then + logger -t mdev "Mounting $disk failed with $?" + fi + else + logger -t mdev "Required filesystem $procfs not available" + fi +} + +case "${ACTION}" in +add) + logger -t mdev "Device ${MDEV} added to the system" + adk_check + adk_fsck + adk_mount + ;; +esac +exit 0 diff --git a/package/base-files/src/etc/modules b/package/base-files/files/modules index 014f40f2b..014f40f2b 100644 --- a/package/base-files/src/etc/modules +++ b/package/base-files/files/modules diff --git a/package/base-files/src/etc/profile b/package/base-files/files/profile index 96f03b980..22bf8655d 100644 --- a/package/base-files/src/etc/profile +++ b/package/base-files/files/profile @@ -1,6 +1,7 @@ export PATH=/bin:/sbin:/usr/bin:/usr/sbin export TERM=linux export EDITOR=/bin/vi +export M4=/usr/bin/m4 if [[ $(id -u) = 0 ]]; then export PS1='`whoami`@`hostname`:`pwd` # ' else @@ -13,3 +14,5 @@ cat /etc/banner 2>&- alias l='ls -lF' alias la='ls -A' alias ll='ls -alF' +alias ro='mount -o remount,ro /' +alias rw='mount -o remount,rw /' diff --git a/package/base-files/files/rc.netinfo b/package/base-files/files/rc.netinfo new file mode 100644 index 000000000..b8fc6951a --- /dev/null +++ b/package/base-files/files/rc.netinfo @@ -0,0 +1,2 @@ +ipaddr=$(ip addr show $(ip route show|awk '/default/ { print $5 }')|awk '/inet / { print $2 }'|tail -1) +echo "Your ip address is $ipaddr" diff --git a/package/base-files/files/rcdev.mdev b/package/base-files/files/rcdev.mdev new file mode 100644 index 000000000..93d678932 --- /dev/null +++ b/package/base-files/files/rcdev.mdev @@ -0,0 +1,10 @@ +# remount /dev with smaller size +#mount -o remount,nosuid,size=128k,mode=0755 -t tmpfs mdev /dev +# start mdev dynamic device node management +echo >/dev/mdev.seq +@ADK_RUNTIME_DEV_MDEV_LOGGING@ +if [ -f /proc/sys/kernel/hotplug ];then + echo "/sbin/mdev" >/proc/sys/kernel/hotplug +fi +# creates f.e. /dev/root +mdev -s diff --git a/package/base-files/files/rcdev.udev b/package/base-files/files/rcdev.udev new file mode 100644 index 000000000..8396c08d9 --- /dev/null +++ b/package/base-files/files/rcdev.udev @@ -0,0 +1,6 @@ +# remount /dev with smaller size +mount -o remount,nosuid,size=128k,mode=0755 -t tmpfs mdev /dev +# start udev dynamic device node management +udevd --daemon +udevadm trigger +udevadm settle diff --git a/package/base-files/src/etc/banner b/package/base-files/src/etc/banner index 1ac725fd1..06cb2e4e3 100644 --- a/package/base-files/src/etc/banner +++ b/package/base-files/src/etc/banner @@ -4,5 +4,6 @@ | |_| | |_) | __/ | | |/ ___ \| |_| | . \ \___/| .__/ \___|_| |_/_/ \_\____/|_|\_\ |_| - Linux created with OpenADK + +Linux Embedded Appliance created with OpenADK diff --git a/package/base-files/src/etc/functions.sh b/package/base-files/src/etc/functions.sh index 5d76f4843..8b2b3d665 100644 --- a/package/base-files/src/etc/functions.sh +++ b/package/base-files/src/etc/functions.sh @@ -11,7 +11,9 @@ append() { } load_modules() { - (sed "s,^[^#][^[:space:]]*,insmod /lib/modules/$(uname -r)/&.ko," $* | sh 2>&- || :) + if [ -d /lib/modules/$(uname -r) ]; then + (sed "s,^[^#][^[:space:]]*,insmod /lib/modules/$(uname -r)/&.ko," $* | sh 2>&- || :) + fi } user_exists() { @@ -53,9 +55,9 @@ add_service() { } add_rcconf() { - rcconf_exists ${2-$1} || { - echo "adding service ${2-$1} to /etc/rc.conf" - printf '%s="%s"\t\t# %s\n' "${2:-$1}" "${3:-NO}" "$1" \ + rcconf_exists $1 || { + echo "adding service $1 to /etc/rc.conf" + printf '%s="%s"\n' "${1}" "${2:-NO}" \ >>$IPKG_INSTROOT/etc/rc.conf } } diff --git a/package/base-files/src/etc/group b/package/base-files/src/etc/group index bbf6c0603..51d78238c 100644 --- a/package/base-files/src/etc/group +++ b/package/base-files/src/etc/group @@ -1,4 +1,9 @@ root:x:0: -video:x:1: -audio:x:2: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +video:x:6: +audio:x:7: nogroup:x:65534: diff --git a/package/base-files/src/etc/init.d/boot b/package/base-files/src/etc/init.d/boot deleted file mode 100644 index e30360142..000000000 --- a/package/base-files/src/etc/init.d/boot +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/sh -#INIT 10 -[[ $1 = autostart ]] || exit 0 - -. /etc/functions.sh - -mkdir -p /var/log -mkdir -p /var/run -touch /var/log/lastlog -touch /var/log/wtmp -ln -s /tmp /var/tmp - -echo 0 > /proc/sys/kernel/printk - -HOSTNAME= -[[ -s /etc/hostname ]] && HOSTNAME=$(cat /etc/hostname) -HOSTNAME=${HOSTNAME%%.*} -echo ${HOSTNAME:=linux} >/proc/sys/kernel/hostname - -chown 0:0 /tmp; chmod 1777 /tmp - -load_modules /etc/modules -for f in /etc/modules.d/*; do - [[ -e $f ]] && load_modules /etc/modules.d/* - break -done -# settle down, after module load -sleep 2 -# any lvm volumes to activate? -[ -x /usr/sbin/lvm ] && { lvm vgscan; lvm vgchange -ay;} -# check and mount all filesystems not / -[ -f /etc/fstab ] && { fsck -p >/dev/null; mount -a; swapon -a;} -exit 0 diff --git a/package/base-files/src/etc/init.d/done b/package/base-files/src/etc/init.d/done deleted file mode 100644 index e5b655bb6..000000000 --- a/package/base-files/src/etc/init.d/done +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh -#INIT 98 -[[ $1 = autostart ]] && sysctl -p >&- -exit 0 diff --git a/package/base-files/src/etc/init.d/rcK b/package/base-files/src/etc/init.d/rcK deleted file mode 100755 index 9d0e06440..000000000 --- a/package/base-files/src/etc/init.d/rcK +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/sh -export PATH=/bin:/sbin:/usr/bin:/usr/sbin -{ - grep '^#INIT ' /etc/init.d/* | \ - sort -rnk2 | \ - while read line; do - shebang=$(sed -n '1s/^#![ ]*//p' ${line%%:*}) - case $shebang in - *[\ \ ]*) shebang=\'$(echo X"$shebang" | sed \ - -e 's/^X//' -e "s/'/'\\\\''/g" \ - -e 's/^\([^ ][^ ]*\)[ ]*$/\1/' \ - -e 's/^\([^ ][^ ]*\)[ ][ ]*\(..*\)$/\1 \2/' \ - -e 's/^\([^ ][^ ]*\) /\1'\'' '\''/')\' ;; - esac - ${shebang:-/bin/sh} ${line%%:*} autostop 2>&1 - done - test -e /etc/rc.shutdown && (/bin/sh /etc/rc.shutdown) 2>&1 -} | logger -s -p 6 -t '' diff --git a/package/base-files/src/etc/init.d/rcS b/package/base-files/src/etc/init.d/rcS deleted file mode 100755 index 55c86729c..000000000 --- a/package/base-files/src/etc/init.d/rcS +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh -export PATH=/bin:/sbin:/usr/bin:/usr/sbin -{ - grep '^#INIT ' /etc/init.d/* | \ - sort -nk2 | \ - while read line; do - sh ${line%%:*} autostart 2>&1 - done - test -e /etc/init.d/boot.local && (/bin/sh /etc/init.d/boot.local) 2>&1 -} | logger -p 6 -t '' & diff --git a/package/base-files/src/etc/inittab b/package/base-files/src/etc/inittab deleted file mode 100644 index 79e69d931..000000000 --- a/package/base-files/src/etc/inittab +++ /dev/null @@ -1,2 +0,0 @@ -::sysinit:/etc/init.d/rcS -::shutdown:/etc/init.d/rcK diff --git a/package/base-files/src/etc/ipkg.conf b/package/base-files/src/etc/ipkg.conf deleted file mode 100644 index cef6d2845..000000000 --- a/package/base-files/src/etc/ipkg.conf +++ /dev/null @@ -1,3 +0,0 @@ -src @VENDOR@ http://@HOST@/@SYSTEM@_@ARCH@_@LIBC@/packages -dest root / -dest ram /tmp diff --git a/package/base-files/src/etc/network/if-post-down.d/03-wireless b/package/base-files/src/etc/network/if-post-down.d/03-wireless index 86e0c73e1..a32e58781 100755 --- a/package/base-files/src/etc/network/if-post-down.d/03-wireless +++ b/package/base-files/src/etc/network/if-post-down.d/03-wireless @@ -1,5 +1,4 @@ -#!/bin/sh -set -e +#!/bin/sh [ "${IFACE%%[0-9]*}" = "wlan" ] || exit 0 @@ -11,7 +10,7 @@ case "$IF_WIRELESS_MODE" in sta) [ "$IF_WIRELESS_SECURITY" != "none" ] && { logger -t wireless "Killing wpa_supplicant" - pkill wpa_supplicant + kill -9 $(cat /var/run/wpa_supplicant.pid) } ;; *) diff --git a/package/base-files/src/etc/network/if-post-down.d/04-bonding b/package/base-files/src/etc/network/if-post-down.d/04-bonding new file mode 100755 index 000000000..0b9c9f362 --- /dev/null +++ b/package/base-files/src/etc/network/if-post-down.d/04-bonding @@ -0,0 +1,20 @@ +#!/bin/sh + +case "$IF_BOND_PORTS" in +"") + exit 0 + ;; +none) + INTERFACES="" + ;; +*) + INTERFACES="$IF_BOND_PORTS" + ;; +esac + +for IF in $INTERFACES; do + ip link set $IF nomaster + ip link set $IF down +done +ip link del $IFACE +exit 0 diff --git a/package/base-files/src/etc/network/if-pre-up.d/02-vlan b/package/base-files/src/etc/network/if-pre-up.d/02-vlan index 26b33ca80..f153df564 100755 --- a/package/base-files/src/etc/network/if-pre-up.d/02-vlan +++ b/package/base-files/src/etc/network/if-pre-up.d/02-vlan @@ -1,13 +1,7 @@ #!/bin/sh -which vconfig || { - echo "vconfig executable not found, aborting" - exit 0 -} -[ -d /proc/net/vlan ] || { - echo "no kernel support for 802.1q found, aborting" - exit 0 -} +which vconfig >/dev/null || exit 0 +[ -d /proc/net/vlan ] || exit 0 case "$IFACE" in vlan*) diff --git a/package/base-files/src/etc/network/if-pre-up.d/04-wireless b/package/base-files/src/etc/network/if-pre-up.d/04-wireless index ebcec5a12..ef070c5bc 100755 --- a/package/base-files/src/etc/network/if-pre-up.d/04-wireless +++ b/package/base-files/src/etc/network/if-pre-up.d/04-wireless @@ -1,18 +1,17 @@ #!/bin/sh -set -e [ "${IFACE%%[0-9]*}" = "wlan" ] || exit 0 [ "$IF_WIRELESS_SSID" ] || exit 1 -[ "$IF_WIRELESS_CHANNEL" ] || exit 1 [ "$IF_WIRELESS_HWMODE" ] || IF_WIRELESS_HWMODE=g [ "$IF_WIRELESS_EXTENSION" ] || IF_WIRELESS_EXTENSION=0 -rfkill unblock wlan 2>/dev/null +[ -x /usr/sbin/rfkill ] && rfkill unblock wlan 2>/dev/null wpa=0 wpa1=0 wpa2=0 +pairwise="" case "$IF_WIRELESS_SECURITY" in none) @@ -24,10 +23,12 @@ case "$IF_WIRELESS_SECURITY" in wpa) sec=1 wpa1=1 + pairwise=TKIP ;; wpa2) sec=1 wpa2=1 + pairwise=CCMP ;; wpa+wpa2) sec=1 @@ -38,6 +39,8 @@ case "$IF_WIRELESS_SECURITY" in ;; esac +[ "$IF_WIRELESS_PAIRWISE" ] || IF_WIRELESS_PAIRWISE=$pairwise + case "$IF_WIRELESS_MODE" in ap) logger -t hostap "Creating hostapd configuration" @@ -56,14 +59,14 @@ case "$IF_WIRELESS_MODE" in logger -t hostap "using WPA for security" echo "wpa=1" >> /tmp/hostapd.conf echo "wpa_key_mgmt=WPA-PSK" >> /tmp/hostapd.conf - echo "wpa_pairwise=TKIP" >> /tmp/hostapd.conf + echo "wpa_pairwise=$IF_WIRELESS_PAIRWISE" >> /tmp/hostapd.conf echo "wpa_passphrase=$IF_WIRELESS_PASSPHRASE" >> /tmp/hostapd.conf } [ $wpa2 -eq 1 ] && { logger -t hostap "using WPA2 for security" echo "wpa=2" >> /tmp/hostapd.conf echo "wpa_key_mgmt=WPA-PSK" >> /tmp/hostapd.conf - echo "rsn_pairwise=CCMP" >> /tmp/hostapd.conf + echo "rsn_pairwise=$IF_WIRELESS_PAIRWISE" >> /tmp/hostapd.conf echo "wpa_passphrase=$IF_WIRELESS_PASSPHRASE" >> /tmp/hostapd.conf } [ $wpa -eq 1 ] && { @@ -74,8 +77,12 @@ case "$IF_WIRELESS_MODE" in echo "rsn_pairwise=CCMP" >> /tmp/hostapd.conf echo "wpa_passphrase=$IF_WIRELESS_PASSPHRASE" >> /tmp/hostapd.conf } + [ -f /etc/hostapd.conf.post ] && \ + cat /etc/hostapd.conf.post >> /tmp/hostapd.conf ;; sta) + # need to wait for wlan drivers to settle down + sleep 1 ip link set up dev ${IFACE} [ $IF_WIRELESS_EXTENSION -eq 1 ] && { [ -x /usr/sbin/iwconfig ] || { @@ -90,8 +97,11 @@ case "$IF_WIRELESS_MODE" in exit 1 } driver=nl80211 - iw dev ${IFACE} set channel $IF_WIRELESS_CHANNEL - iw dev ${IFACE} connect $IF_WIRELESS_SSID + [ $sec -eq 2 ] && { + iw dev ${IFACE} connect "$IF_WIRELESS_SSID" key d:0:$IF_WIRELESS_PASSPHRASE + } || { + iw dev ${IFACE} connect "$IF_WIRELESS_SSID" 2>/dev/null + } } [ $wpa2 -eq 1 ] && { [ -x /usr/sbin/wpa_supplicant ] || { @@ -105,7 +115,7 @@ case "$IF_WIRELESS_MODE" in echo " psk=\"$IF_WIRELESS_PASSPHRASE\"" >> /tmp/wpa_supplicant.conf echo " priority=5" >> /tmp/wpa_supplicant.conf echo "}" >> /tmp/wpa_supplicant.conf - wpa_supplicant -B -D${driver} -i${IFACE} -c/tmp/wpa_supplicant.conf + wpa_supplicant -B -D${driver} -i${IFACE} -P/var/run/wpa_supplicant.pid -c/tmp/wpa_supplicant.conf } ;; *) diff --git a/package/base-files/src/etc/network/if-pre-up.d/05-bonding b/package/base-files/src/etc/network/if-pre-up.d/05-bonding new file mode 100755 index 000000000..489a2fcad --- /dev/null +++ b/package/base-files/src/etc/network/if-pre-up.d/05-bonding @@ -0,0 +1,37 @@ +#!/bin/sh + +INTERFACES="" +BONDOPTS="" +for var in $(env | grep '^IF_BOND_'); do + val="${var#*=}" + opt="${var%%=*}" + if [ "$opt" == "IF_BOND_PORTS" ]; then + case "$val" in + none) + INTERFACES="" + ;; + *) + INTERFACES="$val" + ;; + esac + continue + fi + opt="$(tr '[A-Z]' '[a-z]' <<< ${opt#IF_BOND_})" + BONDOPTS+=" $opt" + [ -n "$val" ] && BONDOPTS+=" $val" +done + +[ -n "$INTERFACES" ] || exit 0 + +ip link add $IFACE type bond ${BONDOPTS} || exit 1 +for IF in $INTERFACES; do + if ! grep -q $IF /proc/net/dev; then + echo "Error: interface '$IF' does not exist!" + ip link del $IFACE + exit 1 + fi + ip link set $IF master $IFACE + ip link set $IF up +done + +exit 0 diff --git a/package/base-files/src/etc/network/if-up.d/02-wireless b/package/base-files/src/etc/network/if-up.d/02-wireless index cd9d2af3f..1ec73fed2 100755 --- a/package/base-files/src/etc/network/if-up.d/02-wireless +++ b/package/base-files/src/etc/network/if-up.d/02-wireless @@ -1,5 +1,4 @@ #!/bin/sh -set -e [ "${IFACE%%[0-9]*}" = "wlan" ] || exit 0 diff --git a/package/base-files/src/etc/passwd b/package/base-files/src/etc/passwd index 32531eb92..30e0c23f9 100644 --- a/package/base-files/src/etc/passwd +++ b/package/base-files/src/etc/passwd @@ -1,2 +1,4 @@ root:x:0:0:root:/root:/bin/sh +daemon:x:1:1:daemon::/bin/false +bin:x:2:2:bin::/bin/false nobody:*:65534:65534:nobody:/var:/bin/false diff --git a/package/base-files/src/etc/rc.shutdown b/package/base-files/src/etc/rc.shutdown deleted file mode 100644 index 8716dc59e..000000000 --- a/package/base-files/src/etc/rc.shutdown +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh -cd / -sync -for i in $(grep -v ^# /etc/fstab 2>/dev/null|awk '{ print $2 }');do - umount $i 2>/dev/null -done diff --git a/package/base-files/src/etc/services b/package/base-files/src/etc/services new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/package/base-files/src/etc/services diff --git a/package/base-files/src/init b/package/base-files/src/init deleted file mode 100755 index 98d24c834..000000000 --- a/package/base-files/src/init +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh -echo "System initialization ..." -export PATH=/bin:/sbin:/usr/bin:/usr/sbin -mount -t devtmpfs devtmpfs /dev >/dev/null 2>&1 -mount -nt proc proc /proc -mount -o nosuid,nodev,noexec -t sysfs sysfs /sys -[ ! -f /etc/notmpfs ] && { - size=$(cat /etc/tmpfs 2>/dev/null) - [ -z $size ] && size=2048 - mount tmpfs /tmp -t tmpfs -o nosuid,nodev,mode=1777,size=${size}k -} -mount -o remount,nosuid,size=128k,mode=0755 -t tmpfs mdev /dev -[ -d /dev/pts ] || mkdir /dev/pts -[ -d /dev/shm ] || mkdir /dev/shm -mount -o nosuid,noexec -t tmpfs tmpfs /dev/shm -mount -o nosuid,noexec -t devpts devpts /dev/pts -exec 0<>/dev/console >&0 2>&0 -echo >/dev/mdev.seq -echo "/sbin/mdev" >/proc/sys/kernel/hotplug -mdev -s -cat /etc/.rnd >/dev/urandom 2>&1 -[ -x /kexecinit ] && { /kexecinit; } -[ -x /cryptinit ] && { /cryptinit; exec switch_root /mnt "/init";} -[ -x /sbin/cfgfs ] && { cfgfs setup; mount -o remount,ro /;} || mount -o remount,rw / -exec /sbin/init diff --git a/package/base-files/src/lib/mdev/init b/package/base-files/src/lib/mdev/init deleted file mode 100644 index f2b7125b8..000000000 --- a/package/base-files/src/lib/mdev/init +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/sh -if [ "$SUBSYSTEM" == "firmware" ];then - logger "Firmware load for $FIRMWARE requested" - if [ "$ACTION" == "add" ];then - if [ -e "/lib/firmware/$FIRMWARE" ];then - logger "Firmware loading ..." - echo 1 > /sys$DEVPATH/loading - cat "/lib/firmware/$FIRMWARE" > /sys$DEVPATH/data - echo 0 > /sys$DEVPATH/loading - logger "finished." - else - logger "Firmware file $FIRMWARE not found" - echo -1 > /sys$DEVPATH/loading - fi - fi -fi -if [ "$SUBSYSTEM" == "pcmcia_socket" ];then - logger "Setting up PCMCIA socket resource database" - if [ "$ACTION" == "add" ];then - /usr/sbin/pcmcia-socket-startup - fi -fi -if [ "$SUBSYSTEM" == "usb" ];then - if [ "$ACTION" == "add" ];then - if [ "$DEVTYPE" == "usb_device" ];then - if [ "$PRODUCT" == "12d1/1003/0" ];then - if [ ! -f /tmp/.huawei ];then - logger "USB device added with: $PRODUCT" - usbmods=$(lsmod|grep ^usbserial|awk '{ print $4 }'|sed -e 's/,/ /g') - for i in $usbmods;do rmmod $i;done - rmmod usbserial - lsmod >> /tmp/debug - test -x /sbin/huawei && /sbin/huawei >> /tmp/debug - insmod /lib/modules/$(uname -r)/usbserial.ko product=0x1003 vendor=0x12d1 - for i in $usbmods;do insmod /lib/modules/$(uname -r)/$i.ko; done - - touch /tmp/.huawei - fi - fi - fi - fi -fi diff --git a/package/base-files/src/sbin/adkupdate b/package/base-files/src/sbin/adkupdate deleted file mode 100755 index b5477412f..000000000 --- a/package/base-files/src/sbin/adkupdate +++ /dev/null @@ -1,112 +0,0 @@ -#!/bin/sh - -who=$(id -u) -if [ $who -ne 0 ]; then - echo 'Exit. System update must be run as root.' - exit 1 -fi - -system=$(awk '/system type/ { print $5 }' /proc/cpuinfo 2>/dev/null) - -if [ -x /sbin/mtd ];then - if [ "$system" == "AR7" ];then - updatecmd="dd bs=16 skip=3 | mtd -r write - linux" - else - updatecmd="mtd -r write - linux" - fi -else - updatecmd="gunzip -c | tar -xf -" -fi - - -check_exit() { - if [ $? -ne 0 ];then - echo "Update failed." - exit 1 - fi -} - -prepare() { - cd / - if [ -x /sbin/cfgfs ];then - mount -o bind /tmp/.cfgfs/root /etc - check_exit - mount -o remount,rw /etc - check_exit - fi - mount -o remount,rw / - check_exit - if [ "$system" == "RB532" ];then - mount -t yaffs2 /dev/mtdblock0 /boot - elif [ "$system" == "AR7130" ];then - mount -t yaffs2 /dev/mtdblock1 /boot - elif [ "$system" == "FOXG20" ];then - mount -t vfat /dev/mmcblk0p1 /boot - fi -} - -extract_from_file() { - prepare - cat $1 | eval $updatecmd - check_exit -} - -extract_from_ssh() { - prepare - ssh $1 "cat $2" | eval $updatecmd - check_exit -} - -extract_from_http() { - prepare - wget -O - $1 | eval $updatecmd - check_exit -} - -case $1 in - file://*|/*) - url=$(echo $1|sed -e "s#file://##") - echo "Updating system from $1" - extract_from_file $url - ;; - ssh://*) - host=$(echo $1|sed -e "s#ssh://\(.*\):.*#\1#") - file=$(echo $1|sed -e "s#ssh://.*:\(.*\)#\1#") - echo "Updating system from $1" - extract_from_ssh $host $file - ;; - http://*|ftp://*) - echo "Updating system from $1" - extract_from_http $1 - ;; - *) - echo "No or wrong uri given. exit." - echo "Use one of the following uri:" - echo "http://myserver/myupdate.tar.gz" - echo "ssh://myuser@myserver:/my/path/myupdate.tar.gz" - echo "file:///mypath/myupdate.tar.gz" - exit 1 - ;; -esac - -# fix permissions -if [ -f /usr/bin/sudo ];then - chmod 4755 /usr/bin/sudo -fi -if [ -f /usr/bin/Xorg ];then - chmod 4755 /usr/bin/Xorg -fi - -sync -if [ -x /sbin/cfgfs ];then - umount /etc -fi -if [ "$system" == "RB532" ];then - umount -f /boot -elif [ "$system" == "AR7130" ];then - umount -f /boot -elif [ "$system" == "FOXG20" ];then - umount -f /boot -fi - -echo "Update sucessful. You should reboot now." diff --git a/package/base-files/src/usr/share/udhcpc/default.script b/package/base-files/src/usr/share/udhcpc/default.script index 415bf92a4..7e9149e6e 100755 --- a/package/base-files/src/usr/share/udhcpc/default.script +++ b/package/base-files/src/usr/share/udhcpc/default.script @@ -8,33 +8,26 @@ RESOLV_CONF=/etc/resolv.conf case $1 in (deconfig) - ip addr flush $interface + # removes ipv6 link-local address, which is bad + # ip addr flush $interface ;; (renew|bound) ip addr add $ip/${mask:-24} brd + dev $interface if [[ -n $router ]]; then - echo "deleting routers" while ip route del default >&- 2>&-; do :; done for i in $router; do - echo "adding router $i" ip route add to default via $i done fi - - touch /tmp/resolv.conf - ln -sf /tmp/resolv.conf $RESOLV_CONF echo -n >$RESOLV_CONF ${domain:+echo search $domain} >>$RESOLV_CONF for i in $dns; do - echo "adding dns $i" echo "nameserver $i" >>$RESOLV_CONF done - # user rules [ -f /etc/udhcpc.user ] && . /etc/udhcpc.user ;; esac - exit $? |
