base-files: procd init is now the default, remove files.old

Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 36996
This commit is contained in:
John Crispin 2013-06-21 16:53:26 +00:00
parent 740d7c103f
commit aa2fc19800
50 changed files with 0 additions and 1349 deletions

View file

@ -62,12 +62,6 @@ config PROCD_INIT
default n
endef
ifeq ($(CONFIG_PROCD_INIT),)
define InstallOldFiles
$(CP) ./files.old/* $(1)/
endef
endif
ifneq ($(CONFIG_PREINITOPT),)
define ImageConfigOptions
mkdir -p $(1)/lib/preinit
@ -100,7 +94,6 @@ define Package/base-files/install
if [ -d $(GENERIC_PLATFORM_DIR)/base-files/. ]; then \
$(CP) $(GENERIC_PLATFORM_DIR)/base-files/* $(1)/; \
fi
$(call InstallOldFiles,$(1))
if [ -d $(PLATFORM_DIR)/base-files/. ]; then \
$(CP) $(PLATFORM_DIR)/base-files/* $(1)/; \
fi

View file

@ -1,43 +0,0 @@
# uncomment me to log hotplug events
# DEVPATH is set {
# exec logger -s -t hotplug -p daemon.info "name=%DEVNAME%, path=%DEVPATH%"
# }
$include /etc/hotplug2-platform.rules
DEVNAME ~~ (^null$|^full$|^ptmx$|^zero$|^gpio|^hvc) {
makedev /dev/%DEVNAME% 0666
next-event
}
DEVNAME == mapper/control {
makedev /dev/%DEVNAME% 0600
next-event
}
ACTION == add, DEVPATH is set {
makedev /dev/%DEVNAME% 0644
}
ACTION == add, DEVPATH is set, DEVNAME ~~ ^tty {
chmod 0666 /dev/%DEVNAME%
}
ACTION == add, DEVPATH is set, DEVNAME ~~ ^ppp {
chmod 0600 /dev/%DEVNAME%
}
ACTION == remove, DEVPATH is set, MAJOR is set, MINOR is set {
remove /dev/%DEVNAME%
}
FIRMWARE is set, ACTION == add {
exec /sbin/hotplug-call firmware
load-firmware /lib/firmware
next-event
}
SUBSYSTEM == platform {
exec /sbin/hotplug-call %SUBSYSTEM%
}

View file

@ -1,5 +0,0 @@
$include /etc/hotplug2-common.rules
SUBSYSTEM == button {
exec kill -USR1 1
}

View file

@ -1,110 +0,0 @@
#!/bin/sh /etc/rc.common
# Copyright (C) 2006-2011 OpenWrt.org
START=10
STOP=98
system_config() {
local cfg="$1"
local hostname conloglevel timezone
config_get hostname "$cfg" hostname 'OpenWrt'
echo "$hostname" > /proc/sys/kernel/hostname
config_get conloglevel "$cfg" conloglevel
config_get buffersize "$cfg" buffersize
[ -z "$conloglevel" -a -z "$buffersize" ] || dmesg ${conloglevel:+-n $conloglevel} ${buffersize:+-s $buffersize}
config_get timezone "$cfg" timezone 'UTC'
echo "$timezone" > /tmp/TZ
config_get zonename "$cfg" zonename
[ -n "$zonename" ] && [ -f "/usr/share/zoneinfo/$zonename" ] && ln -s "/usr/share/zoneinfo/$zonename" /tmp/localtime
# apply timezone to kernel
date -k
if [ -x /sbin/syslogd ]; then
local args log_ip log_size log_port log_type log_file
config_get log_ip "$cfg" log_ip
config_get log_size "$cfg" log_size 16
config_get log_port "$cfg" log_port 514
config_get log_type "$cfg" log_type circular
config_get log_file "$cfg" log_file "/var/log/messages"
args="${log_ip:+-L -R ${log_ip}:${log_port}} ${conloglevel:+-l $conloglevel}"
if [ "$log_type" = "file" ]; then
args="$args -s $log_size -O $log_file -S"
else
args="$args -C${log_size}"
fi
service_start /sbin/syslogd $args
fi
if [ -x /sbin/klogd ]; then
config_get klogconloglevel "$cfg" klogconloglevel
args="${klogconloglevel:+-c $klogconloglevel}"
service_start /sbin/klogd $args
fi
}
apply_uci_config() {
sh -c '. /lib/functions.sh; include /lib/config; uci_apply_defaults'
}
start() {
[ -f /proc/mounts ] || /sbin/mount_root
[ -f /proc/jffs2_bbc ] && echo "S" > /proc/jffs2_bbc
[ -f /proc/net/vlan/config ] && vconfig set_name_type DEV_PLUS_VID_NO_PAD
mkdir -p /var/run
mkdir -p /var/log
mkdir -p /var/lock
mkdir -p /var/state
mkdir -p /tmp/.uci
chmod 0700 /tmp/.uci
touch /var/log/wtmp
touch /var/log/lastlog
touch /tmp/resolv.conf.auto
ln -sf /tmp/resolv.conf.auto /tmp/resolv.conf
grep -q debugfs /proc/filesystems && mount -o noatime -t debugfs debugfs /sys/kernel/debug
[ "$FAILSAFE" = "true" ] && touch /tmp/.failsafe
load_modules /etc/modules.d/*
# allow wifi modules time to settle
sleep 1
/sbin/wifi detect > /tmp/wireless.tmp
[ -s /tmp/wireless.tmp ] && {
cat /tmp/wireless.tmp >> /etc/config/wireless
}
rm -f /tmp/wireless.tmp
apply_uci_config
config_load system
config_foreach system_config system
killall -q hotplug2
[ -x /sbin/hotplug2 ] && /sbin/hotplug2 --override --persistent \
--set-rules-file /etc/hotplug2.rules \
--set-coldplug-cmd /sbin/udevtrigger \
--max-children 1 >/dev/null 2>&1 &
# create /dev/root if it doesn't exist
[ -e /dev/root -o -h /dev/root ] || {
rootdev=$(awk 'BEGIN { RS=" "; FS="="; } $1 == "root" { print $2 }' < /proc/cmdline)
[ -n "$rootdev" ] && ln -s "$rootdev" /dev/root
}
# early sysctl to avoid networking races
if [ -d /proc/sys/net/ipv6/conf ]; then
for i in /proc/sys/net/ipv6/conf/*/accept_ra; do
echo 0 > $i
done
fi
}
stop() {
service_stop /sbin/klogd
service_stop /sbin/syslogd
}

View file

@ -1,20 +0,0 @@
#!/bin/sh /etc/rc.common
# Copyright (C) 2006 OpenWrt.org
START=95
boot() {
[ -d /tmp/root ] && {
lock /tmp/.switch2jffs
firstboot switch2jffs
lock -u /tmp/.switch2jffs
}
# process user commands
[ -f /etc/rc.local ] && {
sh /etc/rc.local
}
# set leds to normal state
. /etc/diag.sh
set_state done
}

View file

@ -1,26 +0,0 @@
#!/bin/sh
# Copyright (C) 2006 OpenWrt.org
run_scripts() {
for i in /etc/rc.d/$1*; do
[ -x $i ] && $i $2 2>&1
done | $LOGGER
}
system_config() {
config_get_bool foreground $1 foreground 0
}
LOGGER="cat"
[ -x /usr/bin/logger ] && LOGGER="logger -s -p 6 -t sysinit"
. /lib/functions.sh
config_load system
config_foreach system_config system
if [ "$1" = "S" -a "$foreground" != "1" ]; then
run_scripts "$1" "$2" &
else
run_scripts "$1" "$2"
fi

View file

@ -1,13 +0,0 @@
#!/bin/sh /etc/rc.common
# Copyright (C) 2008-2011 OpenWrt.org
START=97
start() {
[ -c /dev/watchdog ] || return 1
[ -x /sbin/watchdog ] || return 1
service_start /sbin/watchdog -t 5 /dev/watchdog
}
stop() {
service_stop /sbin/watchdog
}

View file

@ -1,4 +0,0 @@
::sysinit:/etc/init.d/rcS S boot
::shutdown:/etc/init.d/rcS K shutdown
ttyS0::askfirst:/bin/ash --login
tty1::askfirst:/bin/ash --login

View file

@ -1,43 +0,0 @@
#!/bin/sh
# Copyright (C) 2006 OpenWrt.org
# Copyright (C) 2010 Vertical Communications
export PATH=/bin:/sbin:/usr/bin:/usr/sbin
pi_ifname=
pi_ip=192.168.1.1
pi_broadcast=192.168.1.255
pi_netmask=255.255.255.0
fs_failsafe_ifname=
fs_failsafe_ip=192.168.1.1
fs_failsafe_broadcast=192.168.1.255
fs_failsafe_netmask=255.255.255.0
fs_failsafe_wait_timeout=2
pi_suppress_stderr="y"
pi_init_suppress_stderr="y"
pi_init_path="/bin:/sbin:/usr/bin:/usr/sbin"
pi_init_cmd="/sbin/init"
. /lib/functions.sh
boot_hook_init preinit_essential
boot_hook_init preinit_main
boot_hook_init failsafe
boot_hook_init initramfs
boot_hook_init preinit_mount_root
for pi_source_file in /lib/preinit/*; do
. $pi_source_file
done
boot_run_hook preinit_essential
pi_mount_skip_next=false
pi_jffs2_mount_success=false
pi_failsafe_net_message=false
boot_run_hook preinit_main

View file

@ -1,13 +0,0 @@
#!/bin/sh /etc/rc.common
# Copyright (C) 2008-2011 OpenWrt.org
START=97
start() {
[ -c /dev/watchdog ] || return 1
[ -x /sbin/watchdog ] || return 1
service_start /sbin/watchdog -t 5 /dev/watchdog
}
stop() {
service_stop /sbin/watchdog
}

View file

@ -1,96 +0,0 @@
#!/bin/sh
# Copyright (C) 2006 OpenWrt.org
INITRAMFS=1
. /etc/preinit
set_state init
echo "- init -"
[ -n "$SWITCH_ROOT_TMPFS" ] && {
mount -o noatime none /mnt -t tmpfs
( cd /; find -xdev -type d ) | ( cd /mnt; xargs mkdir -p )
find / \! -type d -xdev | tar -cT /proc/self/fd/0 | tar -xC /mnt
mkdir /mnt/proc /mnt/dev /mnt/tmp /mnt/sys
mount -o noatime,move /proc /mnt/proc
mount -o noatime,move /dev /mnt/dev
mount -o noatime,move /tmp /mnt/tmp
mount -o noatime,move /sys /mnt/sys
rm -rf /proc /dev /tmp /sys
exec switch_root -c /dev/console /mnt /sbin/init
}
# if we have no root parameter, just go to running from ramfs
[ -z $rootfs ] && {
export NOMOUNT="No Root"
exec /sbin/init
}
#if we have a failsafe boot selected, dont bother
#trying to find or wait for a root mount point
[ -z "$FAILSAFE" ] || {
exec /bin/busybox init
}
# Load the modules we have in initramfs, this should
# make the media accessible, but, it may take some time
. /lib/functions.sh
load_modules /etc/modules /etc/modules.d/*
#wait 10 seconds for the disc to show up
#usb stick typically takes 4 to 6 seconds
#till it's readable
#it's quite possible the disc never shows up
#if we netbooted this kernel
COUNTER=0
while [ $COUNTER -lt 10 ]; do
sleep 1
[ -e $rootfs ] && let COUNTER=10;
let COUNTER=COUNTER+1
done
[ -e $rootfs ] || {
export FAILSAFE="NoDisc"
exec /bin/busybox init
}
# now we'll try mount it, again with a timeout
# This will fail if the inserted stick is formatted
# in a manner we dont understand
COUNTER=0
while [ $COUNTER -lt 10 ]; do
sleep 1
mount -o noatime $rootfs /mnt
[ $? -eq "0" ] && let COUNTER=100;
let COUNTER=COUNTER+1
done
[ $? -ne "0" ] && {
export FAILSAFE="MountFail"
exec /bin/busybox init
}
#It mounted, lets look for a postinit file, again, give it time
#I've seen this take 6 seconds to actually complete
COUNTER=0
while [ $COUNTER -lt 10 ]; do
sleep 1
[ -e /mnt/etc/banner ] && let COUNTER=10;
let COUNTER=COUNTER+1
done
[ -e /mnt/etc/banner ] || {
export FAILSAFE="No Openwrt FS"
exec /bin/busybox init
}
unset rootfs
mount -o noatime,move /proc /mnt/proc
mount -o noatime,move /dev /mnt/dev
mount -o noatime,move /dev/pts /mnt/dev/pts
mount -o noatime,move /tmp /mnt/tmp
mount -o noatime,move /sys /mnt/sys
mount -o noatime none /tmp -t tmpfs
killall -q hotplug2
exec switch_root -c /dev/console /mnt /sbin/init
set_state done

View file

@ -1,10 +0,0 @@
#!/bin/sh
check_skip() {
if [ "$firstboot_skip_next" = "true" ]; then
return 0
else
return 1
fi
}

View file

@ -1,46 +0,0 @@
#!/bin/sh
set_mtd_part() {
partname="rootfs_data"
mtdpart="$(find_mtd_part $partname)"
}
set_rom_part() {
rom=$(awk '/squashfs/ {print $2}' /proc/mounts)
}
set_jffs_part() {
jffs=$(awk '/jffs2/ {print $2}' /proc/mounts)
}
determine_mtd_part() {
set_mtd_part
if [ -z "$mtdpart" ]; then
echo "MTD partition not found."
exit 1
fi
}
determine_rom_part() {
check_skip || {
set_rom_part
if [ -z "$rom" ]; then
echo "You do not have a squashfs partition; aborting"
echo "(firstboot cannot be run on jffs2 based firmwares)"
exit 1
fi
}
}
determine_jffs2_part() {
check_skip || {
set_jffs_part
}
}
boot_hook_add switch2jffs determine_mtd_part
boot_hook_add jffs2reset determine_mtd_part
boot_hook_add switch2jffs determine_rom_part
boot_hook_add jffs2reset determine_rom_part
boot_hook_add switch2jffs determine_jffs2_part
boot_hook_add jffs2reset determine_jffs2_part

View file

@ -1,17 +0,0 @@
#!/bin/sh
# Copyright (C) 2006-2010 OpenWrt.org
# Copyright (C) 2010 Vertical Communications
no_fo_clear_overlay() {
# switch back to squashfs temporarily
pivot /rom /mnt
# get rid of the old overlay
umount -l /mnt
# another umount to get rid of the bind from /tmp/root
umount -l /mnt
}
boot_hook_add no_fo no_fo_clear_overlay

View file

@ -1,12 +0,0 @@
#!/bin/sh
# Copyright (C) 2006-2010 OpenWrt.org
# Copyright (C) 2010 Vertical Communications
reset_check_for_overlay() {
if grep -qE '(mini_fo|overlay)' /proc/filesystems; then
reset_has_fo=true
fi
}
boot_hook_add jffs2reset reset_check_for_overlay

View file

@ -1,13 +0,0 @@
#!/bin/sh
# Copyright (C) 2006-2010 OpenWrt.org
# Copyright (C) 2010 Vertical Communications
check_for_overlay() {
if ! grep -qE '(mini_fo|overlay)' /proc/filesystems; then
boot_run_hook no_fo
exit 1
fi
}
boot_hook_add switch2jffs check_for_overlay

View file

@ -1,15 +0,0 @@
#!/bin/sh
# Copyright (C) 2006-2010 OpenWrt.org
# Copyright (C) 2010 Vertical Communications
no_fo_mount_jffs() {
# initialize jffs2
mount -o noatime "$mtdpart" /overlay -t jffs2 || exit
# workaround to ensure that union can attach properly
sync
ls /overlay >/dev/null
}
boot_hook_add no_fo no_fo_mount_jffs

View file

@ -1,14 +0,0 @@
#!/bin/sh
# Copyright (C) 2006-2010 OpenWrt.org
# Copyright (C) 2010 Vertical Communications
reset_clear_jffs() {
[ "$reset_has_fo" = "true" ] && {
rm -rf $jffs/* 2>&-
mount -o remount $jffs / 2>&-
exit 0
} || reset_has_fo=false
}
boot_hook_add jffs2reset reset_clear_jffs

View file

@ -1,10 +0,0 @@
#!/bin/sh
# Copyright (C) 2006-2010 OpenWrt.org
# Copyright (C) 2010 Vertical Communications
skip_if_rootfs_mounted() {
mount -o noatime -t jffs2 "$mtdpart" /rom/overlay || exit
}
boot_hook_add switch2jffs skip_if_rootfs_mounted

View file

@ -1,11 +0,0 @@
#!/bin/sh
# Copyright (C) 2006-2010 OpenWrt.org
# Copyright (C) 2010 Vertical Communications
no_fo_pivot() {
# switch to the new (empty) jffs2
fopivot /overlay /rom 1
}
boot_hook_add no_fo no_fo_pivot

View file

@ -1,13 +0,0 @@
#!/bin/sh
# Copyright (C) 2006-2010 OpenWrt.org
# Copyright (C) 2010 Vertical Communications
reset_copy_rom() {
[ "$reset_has_fo" != "true" ] && {
dupe $jffs $rom
exit 0
}
}
boot_hook_add jffs2reset reset_copy_rom

View file

@ -1,15 +0,0 @@
#!/bin/sh
# Copyright (C) 2006-2010 OpenWrt.org
# Copyright (C) 2010 Vertical Communications
copy_ramoverlay() {
# try to avoid fs changing while copying
mount -o remount,ro none / 2>&-
# copy ramoverlay to jffs2
echo -n "copying files ... "
cp -a /tmp/root/* /rom/overlay 2>&-
echo "done"
}
boot_hook_add switch2jffs copy_ramoverlay

View file

@ -1,14 +0,0 @@
#!/bin/sh
# Copyright (C) 2006-2010 OpenWrt.org
# Copyright (C) 2010 Vertical Communications
no_fo_copy_ramoverlay() {
# copy ramoverlay to jffs2, must be done after switching
# to the new rootfs to avoid creating opaque directories
echo -n "copying files ... "
cp -a /tmp/root/* / >/dev/null 2>&1
sync
}
boot_hook_add no_fo no_fo_ramoverlay

View file

@ -1,17 +0,0 @@
#!/bin/sh
# Copyright (C) 2006-2010 OpenWrt.org
# Copyright (C) 2010 Vertical Communications
with_fo_pivot() {
# switch back to squashfs (temporarily)
# and park the ramdisk ontop of /tmp/root
pivot /rom /mnt
mount -o move /mnt /tmp/root
# /overlay is the overlay
# /rom is the readonly
fopivot /overlay /rom
}
boot_hook_add switch2jffs with_fo_pivot

View file

@ -1,13 +0,0 @@
#!/bin/sh
# Copyright (C) 2006-2010 OpenWrt.org
# Copyright (C) 2010 Vertical Communications
no_fo_cleanup() {
echo "done"
umount -l /overlay
umount -l /tmp/root
exit 0
}
boot_hook_add no_fo no_fo_cleanup

View file

@ -1,25 +0,0 @@
#!/bin/sh
# Copyright (C) 2006-2010 OpenWrt.org
# Copyright (C) 2010 Vertical Communications
with_fo_cleanup() {
# try to get rid of /tmp/root
# this will almost always fail
umount -l /tmp/root 2>&-
grep -q overlay /proc/filesystems && {
cd /
(
cd /overlay
find -type l
) | while read FILE; do
[ -z "$FILE" ] && break
if ls -la "$FILE" 2>&- | grep -q '(overlay-whiteout)'; then
rm -f "$FILE"
fi
done
}
exit 0
}
boot_hook_add switch2jffs with_fo_cleanup

View file

@ -1,13 +0,0 @@
#!/bin/sh
# Copyright (C) 2006 OpenWrt.org
# Copyright (C) 2010 Vertical Communications
check_skip() {
if [ "$pi_mount_skip_next" = "true" ]; then
return 0
else
return 1
fi
}

View file

@ -1,20 +0,0 @@
#!/bin/sh
# Copyright (C) 2006-2010 OpenWrt.org
# Copyright (C) 2010 Vertical Communications
mount_no_mtd() {
mtd unlock rootfs
mount -o noatime,remount,rw /dev/root /
}
check_for_mtd() {
check_skip || {
grep -qs rootfs_data /proc/mtd || {
mount_no_mtd && pi_mount_skip_next=true
}
}
}
boot_hook_add preinit_mount_root check_for_mtd

View file

@ -1,25 +0,0 @@
#!/bin/sh
# Copyright (C) 2006 OpenWrt.org
# Copyright (C) 2010 Vertical Communications
do_mount_procfs() {
mount -o noatime -t proc proc /proc
}
do_mount_sysfs() {
mount -o noatime -tsysfs sysfs /sys
}
calc_tmpfs_size() {
pi_size=$(awk '/MemTotal:/ {l=5242880;mt=($2*1024);print((s=mt/2)<l)&&(mt>l)?mt-l:s}' /proc/meminfo)
}
do_mount_tmpfs() {
calc_tmpfs_size
mount -o noatime -t tmpfs -o size=$pi_size,nosuid,nodev,mode=1777 tmpfs /tmp
}
boot_hook_add preinit_essential do_mount_procfs
boot_hook_add preinit_essential do_mount_sysfs
boot_hook_add preinit_essential do_mount_tmpfs

View file

@ -1,51 +0,0 @@
#!/bin/sh
# Copyright (C) 2006 OpenWrt.org
# Copyright (C) 2010 Vertical Communications
preinit_ip() {
# if the preinit interface isn't specified and ifname is set in
# preinit.arch use that interface
if [ -z "$pi_ifname" ]; then
pi_ifname=$ifname
fi
[ -n "$pi_ifname" ] && grep -q "$pi_ifname" /proc/net/dev && {
ifconfig $pi_ifname $pi_ip netmask $pi_netmask broadcast $pi_broadcast up
}
}
preinit_ip_deconfig() {
[ -n "$pi_ifname" ] && grep -q "$pi_ifname" /proc/net/dev && {
ifconfig $pi_ifname 0.0.0.0 down
}
}
preinit_net_echo() {
[ -n "$pi_ifname" ] && grep -q "$pi_ifname" /proc/net/dev && {
{
[ "$pi_preinit_net_messages" = "y" ] || {
[ "$pi_failsafe_net_message" = "true" ] &&
[ "$pi_preinit_no_failsafe_netmsg" != "y" ]
}
} && netmsg $pi_broadcast "$1"
}
}
preinit_echo() {
preinit_net_echo $1
echo $1
}
pi_indicate_led() {
set_state preinit
}
pi_indicate_preinit() {
echo "- preinit -"
preinit_net_echo "Doing OpenWRT Preinit\n"
pi_indicate_led
}
boot_hook_add preinit_main preinit_ip
boot_hook_add preinit_main pi_indicate_preinit

View file

@ -1,19 +0,0 @@
#!/bin/sh
# Copyright (C) 2006-2010 OpenWrt.org
# Copyright (C) 2010 Vertical Communications
mount_no_jffs2() {
echo "jffs2 not ready yet; using ramdisk"
ramoverlay
}
check_for_jffs2() {
check_skip || {
jffs2_ready || {
mount_no_jffs2 && pi_mount_skip_next=true
}
}
}
boot_hook_add preinit_mount_root check_for_jffs2

View file

@ -1,37 +0,0 @@
#!/bin/sh
# Copyright (C) 2006 OpenWrt.org
# Copyright (C) 2010 Vertical Communications
do_move_devtmpfs() {
local mnt="$(grep devtmpfs /proc/mounts)"
mnt="${mnt#* }"; mnt="${mnt%% *}"
[ "$mnt" = "/dev" ] || mount -o noatime,move "$mnt" /dev
}
do_mount_devfs() {
mount -o noatime -t devfs devfs /dev
}
do_mount_hotplug() {
mount -t tmpfs -o noatime,mode=0755,size=512K tmpfs /dev
}
do_mount_udev() {
mount -n -t tmpfs -o noatime,mode=0755 udev /dev
}
choose_device_fs() {
if grep -q devtmpfs /proc/mounts; then
do_move_devtmpfs
elif grep -q devfs /proc/filesystems; then
do_mount_devfs
elif [ -x /sbin/hotplug2 ]; then
do_mount_hotplug
elif [ -x /sbin/udevd ]; then
do_mount_udev
fi
}
boot_hook_add preinit_essential choose_device_fs

View file

@ -1,36 +0,0 @@
#!/bin/sh
# Copyright (C) 2006-2013 OpenWrt.org
# Copyright (C) 2010 Vertical Communications
init_devfs() {
HOTPLUG=/sbin/hotplug-call
}
init_hotplug2() {
[ -c /dev/console ] || mknod /dev/console c 5 1
/sbin/hotplug2 --set-rules-file /etc/hotplug2-init.rules --no-persistent --set-coldplug-cmd /sbin/udevtrigger
/sbin/hotplug2 --set-rules-file /etc/hotplug2-init.rules --persistent &
}
init_udev() {
[ -d /lib/udev/devices ] && cp -af /lib/udev/devices/* /dev/
[ -c /dev/console ] || mknod -m 0600 /dev/console c 5 1
[ -c /dev/null ] || mknod -m 0666 /dev/null c 1 3
/sbin/udevd --daemon --resolve-names=never
/sbin/udevadm trigger
/sbin/udevadm settle
}
init_device_fs() {
HOTPLUG=
if grep -q devfs /proc/filesystems; then
init_devfs
elif [ -x /sbin/hotplug2 ]; then
init_hotplug2
elif [ -x /sbin/udevd ]; then
init_udev
fi
}
boot_hook_add preinit_essential init_device_fs

View file

@ -1,10 +0,0 @@
#!/bin/sh
# Copyright (C) 2006 OpenWrt.org
# Copyright (C) 2010 Vertical Communications
init_shm() {
[ -d /dev/shm ] || mkdir -p /dev/shm
}
boot_hook_add preinit_essential init_shm

View file

@ -1,15 +0,0 @@
#!/bin/sh
# Copyright (C) 2006 OpenWrt.org
# Copyright (C) 2010 Vertical Communications
init_devpts() {
[ -d /dev/pts ] || mkdir -p /dev/pts
}
do_mount_devpts() {
mount -o noatime -t devpts devpts /dev/pts
}
boot_hook_add preinit_essential init_devpts
boot_hook_add preinit_essential do_mount_devpts

View file

@ -1,26 +0,0 @@
#!/bin/sh
# Copyright (C) 2006-2010 OpenWrt.org
# Copyright (C) 2010 Vertical Communications
find_mount_jffs2() {
mkdir -p /tmp/overlay
mount -o noatime -t jffs2 "$(find_mtd_part rootfs_data)" /tmp/overlay
mtd -qq unlock rootfs_data
}
jffs2_not_mounted() {
if [ "$pi_jffs2_mount_success" != "true" ]; then
return 0
else
return 1
fi
}
do_mount_jffs2() {
check_skip || {
find_mount_jffs2 && pi_jffs2_mount_success=true
}
}
boot_hook_add preinit_mount_root do_mount_jffs2

View file

@ -1,24 +0,0 @@
#!/bin/sh
# Copyright (C) 2010 OpenWrt.org
merge_overlay_hooks() {
jffs2_not_mounted || [ ! -d /tmp/overlay/lib/preinit ] || {
echo "- merge overlay components -"
mkdir -p /tmp/preinit-hook-merge
ln -sf /lib/preinit/* /tmp/overlay/lib/preinit/[0-9][0-9]_* /tmp/preinit-hook-merge/
boot_hook_splice_start
local pipart
for pipart in /tmp/preinit-hook-merge/*; do
. $pipart
done
boot_hook_splice_finish
rm -rf /tmp/preinit-hook-merge
}
}
boot_hook_add preinit_mount_root merge_overlay_hooks

View file

@ -1,31 +0,0 @@
#!/bin/sh
# Copyright (C) 2006-2010 OpenWrt.org
# Copyright (C) 2010 Vertical Communications
choose_console() {
# the shell really doesn't like having stdin/out closed
# that's why we use /dev/pty/m0 and m1 (or equivalent) as replacement
# for /dev/console if there's no serial console available
if grep -q devfs /proc/filesystems; then
M0=/dev/pty/m0
M1=/dev/pty/m1
M2=/dev/pty/m1
elif [ -x /sbin/hotplug2 ]; then
M0=/dev/ptmx
M1=/dev/ptmx
M2=/dev/ptmx
elif [ -x /sbin/udevd ]; then
M0=/dev/pty/ptmx
M1=/dev/pty/ptmx
M2=/dev/pty/ptmx
fi
dd if=/dev/console of=/dev/null bs=1 count=0 >/dev/null 2>/dev/null && {
M0=/dev/console
M1=/dev/console
M2=/dev/console
}
}
boot_hook_add preinit_essential choose_console

View file

@ -1,12 +0,0 @@
#!/bin/sh
# Copyright (C) 2006 OpenWrt.org
# Copyright (C) 2010 Vertical Communications
indicate_regular_preinit() {
echo "- regular preinit -"
preinit_net_echo "Continuing with Regular Preinit\n"
pi_indicate_led
}
boot_hook_add preinit_main indicate_regular_preinit

View file

@ -1,10 +0,0 @@
#!/bin/sh
# Copyright (C) 2006 OpenWrt.org
# Copyright (C) 2010 Vertical Communications
init_hotplug() {
echo "$HOTPLUG" > /proc/sys/kernel/hotplug
}
boot_hook_add preinit_main init_hotplug

View file

@ -1,14 +0,0 @@
#!/bin/sh
# Copyright (C) 2006-2010 OpenWrt.org
# Copyright (C) 2010 Vertical Communications
rootfs_pivot() {
check_skip || jffs2_not_mounted || {
echo "switching to jffs2"
mount -o noatime,move /tmp/overlay /overlay 2>&-
fopivot /overlay /rom && pi_mount_skip_next=true
}
}
boot_hook_add preinit_mount_root rootfs_pivot

View file

@ -1,10 +0,0 @@
#!/bin/sh
# Copyright (C) 2006 OpenWrt.org
# Copyright (C) 2010 Vertical Communications
do_mount_root() {
boot_run_hook preinit_mount_root
}
boot_hook_add preinit_main do_mount_root

View file

@ -1,14 +0,0 @@
#!/bin/sh
# Copyright (C) 2006-2010 OpenWrt.org
# Copyright (C) 2010 Vertical Communications
init_console() {
if [ "$pi_suppress_stderr" = "y" ]; then
exec <$M0 >$M1 2>&0
else
exec <$M0 >$M1 2>$M2
fi
}
boot_hook_add preinit_essential init_console

View file

@ -1,12 +0,0 @@
#!/bin/sh
# Copyright (C) 2006-2010 OpenWrt.org
# Copyright (C) 2010 Vertical Communications
do_mount_no_jffs2() {
check_skip || {
mount_no_jffs2 && pi_mount_skip_next=true
}
}
boot_hook_add preinit_mount_root do_mount_no_jffs2

View file

@ -1,17 +0,0 @@
#!/bin/sh
# Copyright (C) 2006 OpenWrt.org
# Copyright (C) 2010 Vertical Communications
restore_config() {
[ -f /sysupgrade.tgz ] && {
echo "- config restore -"
cd /
mv sysupgrade.tgz /tmp
tar xzf /tmp/sysupgrade.tgz
rm -f /tmp/sysupgrade.tgz
sync
}
}
boot_hook_add preinit_main restore_config

View file

@ -1,12 +0,0 @@
#!/bin/sh
# Copyright (C) 2006-2010 OpenWrt.org
# Copyright (C) 2010 Vertical Communications
do_mount_no_mtd() {
check_skip || {
mount_no_mtd
}
}
boot_hook_add preinit_mount_root do_mount_no_mtd

View file

@ -1,16 +0,0 @@
#!/bin/sh
# Copyright (C) 2006 OpenWrt.org
# Copyright (C) 2010 Vertical Communications
run_init() {
preinit_echo "- init -"
preinit_ip_deconfig
if [ "$pi_init_suppress_stderr" = "y" ]; then
exec env - PATH=$pi_init_path $pi_init_env $pi_init_cmd 2>&0
else
exec env - PATH=$pi_init_path $pi_init_env $pi_init_cmd
fi
}
boot_hook_add preinit_main run_init

View file

@ -1,230 +0,0 @@
#!/bin/sh
RAM_ROOT=/tmp/root
ldd() { LD_TRACE_LOADED_OBJECTS=1 $*; }
libs() { ldd $* | awk '{print $3}'; }
install_file() { # <file> [ <file> ... ]
for file in "$@"; do
dest="$RAM_ROOT/$file"
[ -f $file -a ! -f $dest ] && {
dir="$(dirname $dest)"
mkdir -p "$dir"
cp $file $dest
}
done
}
install_bin() { # <file> [ <symlink> ... ]
src=$1
files=$1
[ -x "$src" ] && files="$src $(libs $src)"
install_file $files
[ -e /lib/ld.so.1 ] && {
install_file /lib/ld.so.1
}
shift
for link in "$@"; do {
dest="$RAM_ROOT/$link"
dir="$(dirname $dest)"
mkdir -p "$dir"
[ -f "$dest" ] || ln -s $src $dest
}; done
}
supivot() { # <new_root> <old_root>
mount | grep "on $1 type" 2>&- 1>&- || mount -o bind $1 $1
mkdir -p $1$2 $1/proc $1/sys $1/dev $1/tmp $1/overlay && \
mount -o noatime,move /proc $1/proc && \
pivot_root $1 $1$2 || {
umount $1 $1
return 1
}
mount -o noatime,move $2/sys /sys
mount -o noatime,move $2/dev /dev
mount -o noatime,move $2/tmp /tmp
mount -o noatime,move $2/overlay /overlay 2>&-
return 0
}
run_ramfs() { # <command> [...]
install_bin /bin/busybox /bin/ash /bin/sh /bin/mount /bin/umount \
/sbin/pivot_root /usr/bin/wget /sbin/reboot /bin/sync /bin/dd \
/bin/grep /bin/cp /bin/mv /bin/tar /usr/bin/md5sum "/usr/bin/[" \
/bin/vi /bin/ls /bin/cat /usr/bin/awk /usr/bin/hexdump \
/bin/sleep /bin/zcat /usr/bin/bzcat /usr/bin/printf /usr/bin/wc
install_bin /sbin/mtd
for file in $RAMFS_COPY_BIN; do
install_bin $file
done
install_file /etc/resolv.conf /lib/functions.sh /lib/functions.sh /lib/upgrade/*.sh $RAMFS_COPY_DATA
supivot $RAM_ROOT /mnt || {
echo "Failed to switch over to ramfs. Please reboot."
exit 1
}
mount -o remount,ro /mnt
umount -l /mnt
grep /overlay /proc/mounts > /dev/null && {
mount -o noatime,remount,ro /overlay
umount -l /overlay
}
# spawn a new shell from ramdisk to reduce the probability of cache issues
exec /bin/busybox ash -c "$*"
}
kill_remaining() { # [ <signal> ]
local sig="${1:-TERM}"
echo -n "Sending $sig to remaining processes ... "
local stat
for stat in /proc/[0-9]*/stat; do
[ -f "$stat" ] || continue
local pid name state ppid rest
read pid name state ppid rest < $stat
name="${name#(}"; name="${name%)}"
local cmdline
read cmdline < /proc/$pid/cmdline
# Skip kernel threads
[ -n "$cmdline" ] || continue
case "$name" in
# Skip essential services
*ash*|*init*|*watchdog*|*ssh*|*dropbear*|*telnet*|*login*|*hostapd*|*wpa_supplicant*) : ;;
# Killable process
*)
if [ $pid -ne $$ ] && [ $ppid -ne $$ ]; then
echo -n "$name "
kill -$sig $pid 2>/dev/null
fi
;;
esac
done
echo ""
}
run_hooks() {
local arg="$1"; shift
for func in "$@"; do
eval "$func $arg"
done
}
ask_bool() {
local default="$1"; shift;
local answer="$default"
[ "$INTERACTIVE" -eq 1 ] && {
case "$default" in
0) echo -n "$* (y/N): ";;
*) echo -n "$* (Y/n): ";;
esac
read answer
case "$answer" in
y*) answer=1;;
n*) answer=0;;
*) answer="$default";;
esac
}
[ "$answer" -gt 0 ]
}
v() {
[ "$VERBOSE" -ge 1 ] && echo "$@"
}
rootfs_type() {
mount | awk '($3 ~ /^\/$/) && ($5 !~ /rootfs/) { print $5 }'
}
get_image() { # <source> [ <command> ]
local from="$1"
local conc="$2"
local cmd
case "$from" in
http://*|ftp://*) cmd="wget -O- -q";;
*) cmd="cat";;
esac
if [ -z "$conc" ]; then
local magic="$(eval $cmd $from | dd bs=2 count=1 2>/dev/null | hexdump -n 2 -e '1/1 "%02x"')"
case "$magic" in
1f8b) conc="zcat";;
425a) conc="bzcat";;
esac
fi
eval "$cmd $from ${conc:+| $conc}"
}
get_magic_word() {
get_image "$@" | dd bs=2 count=1 2>/dev/null | hexdump -v -n 2 -e '1/1 "%02x"'
}
get_magic_long() {
get_image "$@" | dd bs=4 count=1 2>/dev/null | hexdump -v -n 4 -e '1/1 "%02x"'
}
refresh_mtd_partitions() {
mtd refresh rootfs
}
jffs2_copy_config() {
if grep rootfs_data /proc/mtd >/dev/null; then
# squashfs+jffs2
mtd -e rootfs_data jffs2write "$CONF_TAR" rootfs_data
else
# jffs2
mtd jffs2write "$CONF_TAR" rootfs
fi
}
default_do_upgrade() {
sync
if [ "$SAVE_CONFIG" -eq 1 -a -z "$USE_REFRESH" ]; then
get_image "$1" | mtd -j "$CONF_TAR" write - "${PART_NAME:-image}"
else
get_image "$1" | mtd write - "${PART_NAME:-image}"
fi
}
do_upgrade() {
v "Performing system upgrade..."
if type 'platform_do_upgrade' >/dev/null 2>/dev/null; then
platform_do_upgrade "$ARGV"
else
default_do_upgrade "$ARGV"
fi
[ "$SAVE_CONFIG" -eq 1 -a -n "$USE_REFRESH" ] && {
v "Refreshing partitions"
if type 'platform_refresh_partitions' >/dev/null 2>/dev/null; then
platform_refresh_partitions
else
refresh_mtd_partitions
fi
if type 'platform_copy_config' >/dev/null 2>/dev/null; then
platform_copy_config
else
jffs2_copy_config
fi
}
v "Upgrade completed"
[ -n "$DELAY" ] && sleep "$DELAY"
ask_bool 1 "Reboot" && {
v "Rebooting system..."
reboot -f
sleep 5
echo b 2>/dev/null >/proc/sysrq-trigger
}
}

View file

@ -1,44 +0,0 @@
#!/bin/sh
switch2jffs_hook=
jffs2reset_hook=
no_fo_hook=
. /lib/functions.sh
firstboot_skip_next=false
for fb_source_file in /lib/firstboot/*; do
. $fb_source_file
done
set_mtd_part
set_rom_part
set_jffs_part
# invoked as an executable
if [ "${0##*/}" = "firstboot" ]; then
if [ "$1" = "switch2jffs" ]; then
boot_run_hook switch2jffs
else
if [ -t 0 ] && [ "$1" != "-y" ]; then
local input
echo -n "firstboot will erase all settings and remove any installed packages. Are you sure? [N/y]"
read input
[ "$input" = "y" ] || [ "$input" = "Y" ] || return 0
fi
if [ -n "$jffs" ]; then
reset_has_fo=true
echo "firstboot has already been run"
echo "jffs2 partition is mounted, only resetting files"
boot_run_hook jffs2reset
else
mtd erase "$partname"
mount -o noatime "$mtdpart" /overlay -t jffs2
fopivot /overlay /rom 1
fi
fi
fi

View file

@ -1,26 +0,0 @@
#!/bin/sh
# Copyright (C) 2006-2010 OpenWrt.org
# Copyright (C) 2010 Vertical Communications
# Initialize hook variables et by pulling in from preinit
preinit_essential_hook=
preinit_main_hook=
failsafe_hook=
initramfs_hook=
preinit_mount_root=
. /lib/functions.sh
for pi_source_file in /lib/preinit/*; do
. $pi_source_file
done
# Override function that doesn't apply to use of mount_root as a command rather
# than as part of preinit
preinit_echo() {
echo "$@"
}
boot_run_hook preinit_mount_root