boot 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. #!/bin/sh /etc/rc.common
  2. # Copyright (C) 2006 OpenWrt.org
  3. START=10
  4. system_config() {
  5. local cfg="$1"
  6. local hostname
  7. config_get hostname "$cfg" hostname
  8. echo "${hostname:-OpenWrt}" > /proc/sys/kernel/hostname
  9. config_get conloglevel "$cfg" conloglevel
  10. [ -n "$conloglevel" ] && dmesg -n "$conloglevel"
  11. config_get timezone "$cfg" timezone
  12. [ -z "$timezone" ] && timezone=UTC
  13. echo "$timezone" > /tmp/TZ
  14. config_get log_ip "$cfg" log_ip
  15. config_get log_size "$cfg" log_size
  16. config_get log_port "$cfg" log_port
  17. [ -x /sbin/syslogd ] && syslogd -C${log_size:-16} ${log_ip:+-L -R $log_ip${log_port:+:$log_port}}
  18. [ -x /sbin/klogd ] && klogd
  19. }
  20. apply_uci_config() {(
  21. include /lib/config
  22. uci_apply_defaults
  23. )}
  24. start() {
  25. [ -f /proc/mounts ] || /sbin/mount_root
  26. [ -f /proc/jffs2_bbc ] && echo "S" > /proc/jffs2_bbc
  27. [ -f /proc/net/vlan/config ] && vconfig set_name_type DEV_PLUS_VID_NO_PAD
  28. apply_uci_config
  29. config_load system
  30. config_foreach system_config system
  31. mkdir -p /var/run
  32. mkdir -p /var/log
  33. mkdir -p /var/lock
  34. mkdir -p /var/state
  35. mkdir -p /tmp/.uci
  36. chmod 0700 /tmp/.uci
  37. touch /var/log/wtmp
  38. touch /var/log/lastlog
  39. touch /tmp/resolv.conf.auto
  40. ln -sf /tmp/resolv.conf.auto /tmp/resolv.conf
  41. [ "$FAILSAFE" = "true" ] && touch /tmp/.failsafe
  42. killall -q hotplug2
  43. [ -x /sbin/hotplug2 ] && /sbin/hotplug2 --override --persistent \
  44. --max-children 1 --no-coldplug &
  45. # the coldplugging of network interfaces needs to happen later, so we do it manually here
  46. for iface in $(awk -F: '/:/ {print $1}' /proc/net/dev); do
  47. /usr/bin/env -i ACTION=add INTERFACE="$iface" /sbin/hotplug-call net
  48. done
  49. # create /dev/root if it doesn't exist
  50. [ -e /dev/root ] || {
  51. rootdev=$(awk 'BEGIN { RS=" "; FS="="; } $1 == "root" { print $2 }' < /proc/cmdline)
  52. [ -n "$rootdev" ] && ln -s "$rootdev" /dev/root
  53. }
  54. load_modules /etc/modules.d/*
  55. }