Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /lib/preinit # ls
- 02_default_set_state 40_run_failsafe_hook
- 03_preinit_do_ipq806x.sh 41_merge_overlay_hooks
- 05_mount_skip 50_choose_console
- 10_check_for_mtd 50_indicate_regular_preinit
- 10_essential_fs 60_init_hotplug
- 10_indicate_failsafe 70_initramfs_test
- 10_indicate_preinit 70_pivot_ext4_root
- 20_check_jffs2_ready 70_pivot_jffs2_root
- 20_device_fs_mount 70_pivot_ubifs_root
- 30_device_fs_daemons 80_mount_root
- 30_failsafe_wait 90_init_console
- 40_init_shm 90_mount_no_jffs2
- 40_mount_devpts 90_restore_config
- 40_mount_ext4 99_10_failsafe_login
- 40_mount_jffs2 99_10_mount_no_mtd
- 40_mount_ubifs 99_10_run_init
- /lib/preinit # head -n 999999 ./*
- ==> ./02_default_set_state <==
- #!/bin/sh
- define_default_set_state() {
- . /etc/diag.sh
- }
- boot_hook_add preinit_main define_default_set_state
- ==> ./03_preinit_do_ipq806x.sh <==
- #!/bin/sh
- #
- # Copyright (c) 2013 The Linux Foundation. All rights reserved.
- #
- do_ipq806x() {
- . /lib/ipq806x.sh
- ipq806x_board_detect
- }
- boot_hook_add preinit_main do_ipq806x
- ==> ./05_mount_skip <==
- #!/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
- }
- ==> ./10_check_for_mtd <==
- #!/bin/sh
- # Copyright (C) 2006-2010 OpenWrt.org
- # Copyright (C) 2010 Vertical Communications
- mount_no_rootfs_data() {
- mtd unlock rootfs
- mount -o remount,rw /dev/root /
- }
- check_for_rootfs_data() {
- check_skip || {
- grep -qs rootfs_data /proc/mtd || grep -qs ubi_rootfs_data /sys/class/ubi/ubi0/ubi0_1/name || grep -qs rootfs_data /sys/block/mmcblk0/mmcblk0p*/uevent || {
- mount_no_rootfs_data && pi_mount_skip_next=true
- }
- }
- }
- boot_hook_add preinit_mount_root check_for_rootfs_data
- ==> ./10_essential_fs <==
- #!/bin/sh
- # Copyright (C) 2006 OpenWrt.org
- # Copyright (C) 2010 Vertical Communications
- do_mount_procfs() {
- mount proc /proc -t proc
- }
- do_mount_sysfs() {
- mount sysfs /sys -t sysfs
- }
- 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 tmpfs /tmp -t tmpfs -o size=$pi_size,nosuid,nodev,mode=1777
- }
- boot_hook_add preinit_essential do_mount_procfs
- boot_hook_add preinit_essential do_mount_sysfs
- boot_hook_add preinit_essential do_mount_tmpfs
- ==> ./10_indicate_failsafe <==
- #!/bin/sh
- # Copyright (C) 2006 OpenWrt.org
- # Copyright (C) 2010 Vertical Communications
- # commands for emitting messages to network in failsafe mode
- indicate_failsafe_led () {
- set_state failsafe
- }
- indicate_failsafe() {
- echo "- failsafe -"
- preinit_net_echo "Entering Failsafe!\n"
- indicate_failsafe_led
- }
- boot_hook_add failsafe indicate_failsafe
- ==> ./10_indicate_preinit <==
- #!/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
- ==> ./20_check_jffs2_ready <==
- #!/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() {
- # skip jffs2 mounting even if it's there if we have volume named
- # ubi_rootfs_data
- check_skip && return
- jffs2_ready || {
- grep -wqs rootfs_data /proc/mtd && {
- mount_no_jffs2 && pi_mount_skip_next=true
- }
- }
- }
- boot_hook_add preinit_mount_root check_for_jffs2
- ==> ./20_device_fs_mount <==
- #!/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 move "$mnt" /dev
- }
- do_mount_devfs() {
- mount devfs /dev -t devfs
- }
- do_mount_hotplug() {
- mount -t tmpfs tmpfs /dev -o mode=0755,size=512K
- }
- do_mount_udev() {
- mount -n -t tmpfs -o 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
- ==> ./30_device_fs_daemons <==
- #!/bin/sh
- # Copyright (C) 2006 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-worker /lib/hotplug2/worker_fork.so --set-rules-file /etc/hotplug2-init.rules --no-persistent --set-coldplug-cmd /sbin/udevtrigger
- /sbin/hotplug2 --set-worker /lib/hotplug2/worker_fork.so --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
- ==> ./30_failsafe_wait <==
- #!/bin/sh
- # Copyright (C) 2006-2010 OpenWrt.org
- # Copyright (C) 2010 Vertical Communications
- fs_wait_for_key () {
- local timeout=$3
- local timer
- local do_failsafe
- local keypress_true="$(mktemp)"
- local keypress_wait="$(mktemp)"
- local keypress_sec="$(mktemp)"
- if [ -z "$keypress_wait" ]; then
- keypress_wait=/tmp/.keypress_wait
- touch $keypress_wait
- fi
- if [ -z "$keypress_true" ]; then
- keypress_true=/tmp/.keypress_true
- touch $keypress_true
- fi
- if [ -z "$keypress_sec" ]; then
- keypress_sec=/tmp/.keypress_sec
- touch $keypress_sec
- fi
- trap "echo 'true' >$keypress_true; lock -u $keypress_wait ; rm -f $keypress_wait" INT
- trap "echo 'true' >$keypress_true; lock -u $keypress_wait ; rm -f $keypress_wait" USR1
- [ -n "$timeout" ] || timeout=1
- [ $timeout -ge 1 ] || timeout=1
- timer=$timeout
- lock $keypress_wait
- {
- while [ $timer -gt 0 ]; do
- echo "$timer" >$keypress_sec
- timer=$(($timer - 1))
- sleep 1
- done
- lock -u $keypress_wait
- rm -f $keypress_wait
- } &
- bg_pid=$!
- # echo "Press the [$1] key and hit [enter] $2"
- # if we're on the console we wait for input
- # {
- # while [ -r $keypress_wait ]; do
- # timer="$(cat $keypress_sec)"
- #
- # [ -n "$timer" ] || timer=1
- # timer="${timer%%\ *}"
- # [ $timer -ge 1 ] || timer=1
- # do_failsafe=""
- # {
- # read -t "$timer" do_failsafe
- # if [ "$do_failsafe" = "$1" ]; then
- # echo "true" >$keypress_true
- # lock -u $keypress_wait
- # rm -f $keypress_wait
- # fi
- # }
- # done
- # wait $bg_pid
- # }
- lock -w $keypress_wait
- trap - INT
- trap - USR1
- keypressed=1
- [ "$(cat $keypress_true)" = "true" ] && keypressed=0
- rm -f $keypress_true
- rm -f $keypress_wait
- rm -f $keypress_sec
- return $keypressed
- }
- failsafe_wait() {
- FAILSAFE=
- pi_failsafe_net_message=true
- preinit_net_echo "Please press button now to enter failsafe"
- pi_failsafe_net_message=false
- fs_wait_for_key f 'to enter failsafe mode' $fs_failsafe_wait_timeout && FAILSAFE=true && export FAILSAFE
- }
- boot_hook_add preinit_main failsafe_wait
- ==> ./40_init_shm <==
- #!/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
- ==> ./40_mount_devpts <==
- #!/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 devpts /dev/pts -t devpts
- }
- boot_hook_add preinit_essential init_devpts
- boot_hook_add preinit_essential do_mount_devpts
- ==> ./40_mount_ext4 <==
- #!/bin/sh
- # Copyright (C) 2006-2010 OpenWrt.org
- # Copyright (C) 2010 Vertical Communications
- ext4_not_mounted() {
- if [ "$pi_ext4_mount_success" != "true" ]; then
- return 0
- else
- return 1
- fi
- }
- do_mount_ext4() {
- check_skip && return
- grep -wqs rootfs_data /sys/block/mmcblk*/*/uevent || return 1
- mkdir -p /tmp/overlay
- mount "$(find_mmc_part rootfs_data)" /tmp/overlay -t ext4 &&
- pi_ext4_mount_success=true
- }
- boot_hook_add preinit_mount_root do_mount_ext4
- ==> ./40_mount_jffs2 <==
- #!/bin/sh
- # Copyright (C) 2006-2010 OpenWrt.org
- # Copyright (C) 2010 Vertical Communications
- find_mount_jffs2() {
- mkdir -p /tmp/overlay
- mount "$(find_mtd_part rootfs_data)" /tmp/overlay -t jffs2
- mtd -qq unlock rootfs_data
- }
- jffs2_not_mounted() {
- if [ "$pi_jffs2_mount_success" != "true" ]; then
- return 0
- else
- return 1
- fi
- }
- do_mount_jffs2() {
- # skip jffs2 mounting even if it's there if we have volume named
- # ubi_rootfs_data
- check_skip && return
- grep -wqs rootfs_data /proc/mtd || return 1
- find_mount_jffs2 && pi_jffs2_mount_success=true
- }
- boot_hook_add preinit_mount_root do_mount_jffs2
- ==> ./40_mount_ubifs <==
- #!/bin/sh
- # Copyright (c) 2013 The Linux Foundation. All rights reserved.
- ubifs_not_mounted() {
- if [ "$pi_ubifs_mount_success" != "true" ]; then
- return 0
- else
- return 1
- fi
- }
- do_mount_ubifs() {
- check_skip && return
- grep -wqs ubi_rootfs_data /sys/class/ubi/ubi0/ubi0_*/name || return 1
- mkdir -p /tmp/overlay
- mount -t ubifs -o sync ubi0:ubi_rootfs_data /tmp/overlay &&
- pi_ubifs_mount_success=true
- }
- boot_hook_add preinit_mount_root do_mount_ubifs
- ==> ./40_run_failsafe_hook <==
- #!/bin/sh
- # Copyright (C) 2006-2010 OpenWrt.org
- # Copyright (C) 2010 Vertical Communications
- run_failsafe_hook() {
- if [ "$FAILSAFE" = "true" ]; then
- boot_run_hook failsafe
- lock -w /tmp/.failsafe
- fi
- }
- boot_hook_add preinit_main run_failsafe_hook
- ==> ./41_merge_overlay_hooks <==
- #!/bin/sh
- # Copyright (C) 2010 OpenWrt.org
- merge_overlay_hooks() {
- (jffs2_not_mounted && ubifs_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
- ==> ./50_choose_console <==
- #!/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
- ==> ./50_indicate_regular_preinit <==
- #!/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
- ==> ./60_init_hotplug <==
- #!/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
- ==> ./70_initramfs_test <==
- #!/bin/sh
- # Copyright (C) 2006 OpenWrt.org
- # Copyright (C) 2010 Vertical Communications
- initramfs_test() {
- if [ -n "$INITRAMFS" ]; then
- boot_run_hook initramfs
- preinit_ip_deconfig
- break
- fi
- }
- boot_hook_add preinit_main initramfs_test
- ==> ./70_pivot_ext4_root <==
- # Copyright (C) 2006-2010 OpenWrt.org
- # Copyright (C) 2010 Vertical Communications
- rootfs_pivot_ext4() {
- check_skip || ext4_not_mounted || {
- echo "switching to ext4"
- mount -o move /tmp/overlay /overlay 2>&-
- fopivot /overlay /rom && pi_mount_skip_next=true
- }
- }
- boot_hook_add preinit_mount_root rootfs_pivot_ext4
- ==> ./70_pivot_jffs2_root <==
- #!/bin/sh
- # Copyright (C) 2006-2010 OpenWrt.org
- # Copyright (C) 2010 Vertical Communications
- rootfs_pivot_jffs2() {
- check_skip || jffs2_not_mounted || {
- echo "switching to jffs2"
- mount -o move /tmp/overlay /overlay 2>&-
- fopivot /overlay /rom && pi_mount_skip_next=true
- }
- }
- boot_hook_add preinit_mount_root rootfs_pivot_jffs2
- ==> ./70_pivot_ubifs_root <==
- #!/bin/sh
- # Copyright (C) 2006-2010 OpenWrt.org
- # Copyright (C) 2010 Vertical Communications
- rootfs_pivot_ubifs() {
- check_skip || ubifs_not_mounted || {
- echo "switching to ubifs"
- mount -o move /tmp/overlay /overlay 2>&-
- fopivot /overlay /rom && pi_mount_skip_next=true
- }
- }
- boot_hook_add preinit_mount_root rootfs_pivot_ubifs
- ==> ./80_mount_root <==
- #!/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
- ==> ./90_init_console <==
- #!/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
- ==> ./90_mount_no_jffs2 <==
- #!/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
- ==> ./90_restore_config <==
- #!/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
- ==> ./99_10_failsafe_login <==
- #!/bin/sh
- # Copyright (C) 2006 OpenWrt.org
- # Copyright (C) 2010 Vertical Communications
- failsafe_netlogin () {
- telnetd -l /bin/login.sh <> /dev/null 2>&1
- }
- failsafe_shell() {
- lock /tmp/.failsafe
- ash --login
- echo "Please reboot system when done with failsafe network logins"
- }
- boot_hook_add failsafe failsafe_netlogin
- boot_hook_add failsafe failsafe_shell
- ==> ./99_10_mount_no_mtd <==
- #!/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
- ==> ./99_10_run_init <==
- #!/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
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement