aboutsummaryrefslogtreecommitdiff
path: root/system
diff options
context:
space:
mode:
authorGravatar Thomas Petazzoni <thomas.petazzoni@free-electrons.com>2012-11-03 08:27:58 +0000
committerGravatar Peter Korsgaard <jacmet@sunsite.dk>2012-11-04 12:51:08 +0100
commit6c3e3ad4197714ea39fcd49d572a1713f803d835 (patch)
tree88a5c4db6a9703cc07607b8a0a6f8d14a002a36e /system
parentef1e76ae433e744d2cebf23f1c6d3b6446790270 (diff)
downloadbuildroot-6c3e3ad4197714ea39fcd49d572a1713f803d835.tar.gz
buildroot-6c3e3ad4197714ea39fcd49d572a1713f803d835.tar.bz2
New top-level directory: system
This directory groups the following elements: * the default root filesystem skeleton * the default device tables * the Config.in options for system configuration (UART port for getty, system hostname, etc.) * the make rules to apply the system configuration options Even though the skeleton and device tables could have lived in fs/, it would have been strange to have the UART, system hostname and other related options into fs/. A new system/ directory makes more sense. As a consequence, this patch also removes target/Makefile.in, which has become useless in the process. [Peter: fixup TARGET_SKELETON settings / documentation to match] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Acked-by: Yann E. MORIN <yann.morin.1998@free.fr> Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Diffstat (limited to 'system')
-rw-r--r--system/Config.in184
-rw-r--r--system/device_table.txt22
-rw-r--r--system/device_table_dev.txt146
-rw-r--r--system/skeleton/bin/.empty0
l---------system/skeleton/dev/log1
-rw-r--r--system/skeleton/dev/pts/.empty0
-rw-r--r--system/skeleton/etc/fstab9
-rw-r--r--system/skeleton/etc/group21
-rw-r--r--system/skeleton/etc/hostname1
-rw-r--r--system/skeleton/etc/hosts1
-rwxr-xr-xsystem/skeleton/etc/init.d/S20urandom54
-rwxr-xr-xsystem/skeleton/etc/init.d/S40network25
-rwxr-xr-xsystem/skeleton/etc/init.d/rcK27
-rwxr-xr-xsystem/skeleton/etc/init.d/rcS27
-rw-r--r--system/skeleton/etc/inittab36
-rw-r--r--system/skeleton/etc/inputrc44
-rw-r--r--system/skeleton/etc/issue3
-rw-r--r--system/skeleton/etc/ld.so.conf.d/.empty0
l---------system/skeleton/etc/mtab1
-rw-r--r--system/skeleton/etc/network/if-down.d/.empty0
-rw-r--r--system/skeleton/etc/network/if-post-down.d/.empty0
-rw-r--r--system/skeleton/etc/network/if-pre-up.d/.empty0
-rw-r--r--system/skeleton/etc/network/if-up.d/.empty0
-rw-r--r--system/skeleton/etc/network/interfaces4
-rw-r--r--system/skeleton/etc/passwd16
-rw-r--r--system/skeleton/etc/profile55
-rw-r--r--system/skeleton/etc/protocols31
-rw-r--r--system/skeleton/etc/random-seedbin0 -> 512 bytes
l---------system/skeleton/etc/resolv.conf1
-rw-r--r--system/skeleton/etc/securetty51
-rw-r--r--system/skeleton/etc/services302
-rw-r--r--system/skeleton/etc/shadow13
-rw-r--r--system/skeleton/home/ftp/.empty0
-rw-r--r--system/skeleton/lib/.empty0
-rw-r--r--system/skeleton/media/.empty0
-rw-r--r--system/skeleton/mnt/.empty0
-rw-r--r--system/skeleton/opt/.empty0
-rw-r--r--system/skeleton/proc/.empty0
-rw-r--r--system/skeleton/root/.bash_history0
-rw-r--r--system/skeleton/root/.bash_logout7
-rw-r--r--system/skeleton/root/.bash_profile15
-rw-r--r--system/skeleton/root/.empty0
l---------system/skeleton/run1
-rw-r--r--system/skeleton/sbin/.empty0
-rw-r--r--system/skeleton/sys/.empty0
-rw-r--r--system/skeleton/tmp/.empty0
-rw-r--r--system/skeleton/usr/bin/.empty0
-rw-r--r--system/skeleton/usr/lib/.empty0
-rw-r--r--system/skeleton/usr/sbin/.empty0
l---------system/skeleton/var/cache1
l---------system/skeleton/var/lib/misc1
l---------system/skeleton/var/lib/pcmcia1
l---------system/skeleton/var/lock1
l---------system/skeleton/var/log1
l---------system/skeleton/var/pcmcia1
l---------system/skeleton/var/run1
l---------system/skeleton/var/spool1
l---------system/skeleton/var/tmp1
-rw-r--r--system/system.mk53
59 files changed, 1160 insertions, 0 deletions
diff --git a/system/Config.in b/system/Config.in
new file mode 100644
index 0000000000..c30c6f7d3c
--- /dev/null
+++ b/system/Config.in
@@ -0,0 +1,184 @@
+menu "System configuration"
+
+config BR2_TARGET_GENERIC_HOSTNAME
+ string "System hostname"
+ default "buildroot"
+ help
+ Select system hostname to be stored in /etc/hostname.
+
+config BR2_TARGET_GENERIC_ISSUE
+ string "System banner"
+ default "Welcome to Buildroot"
+ help
+ Select system banner (/etc/issue) to be displayed at login.
+
+choice
+ prompt "/dev management"
+ default BR2_ROOTFS_DEVICE_CREATION_STATIC
+
+config BR2_ROOTFS_DEVICE_CREATION_STATIC
+ bool "Static using device table"
+
+config BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_DEVTMPFS
+ bool "Dynamic using devtmpfs only"
+
+config BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV
+ bool "Dynamic using mdev"
+ select BR2_PACKAGE_BUSYBOX
+
+config BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_UDEV
+ bool "Dynamic using udev"
+ depends on BR2_LARGEFILE # udev
+ depends on BR2_USE_WCHAR # udev
+ select BR2_PACKAGE_UDEV
+
+comment "udev requires a toolchain with LARGEFILE + WCHAR support"
+ depends on !(BR2_LARGEFILE && BR2_USE_WCHAR)
+
+endchoice
+
+choice
+ prompt "Init system"
+ default BR2_INIT_BUSYBOX
+
+config BR2_INIT_BUSYBOX
+ bool "Busybox"
+ select BR2_PACKAGE_BUSYBOX
+
+config BR2_INIT_SYSV
+ bool "systemV"
+ select BR2_PACKAGE_SYSVINIT
+
+config BR2_INIT_SYSTEMD
+ bool "systemd"
+ depends on BR2_LARGEFILE
+ depends on BR2_USE_WCHAR
+ depends on BR2_INET_IPV6
+ depends on BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_UDEV
+ depends on BR2_TOOLCHAIN_HAS_THREADS
+ select BR2_PACKAGE_DBUS
+ select BR2_PACKAGE_SYSTEMD
+
+comment 'systemd requires largefile, wchar, IPv6, threads and udev support'
+ depends on !(BR2_LARGEFILE && BR2_USE_WCHAR && \
+ BR2_INET_IPV6 && BR2_TOOLCHAIN_HAS_THREADS && \
+ BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_UDEV)
+
+config BR2_INIT_NONE
+ bool "None"
+
+endchoice
+
+config BR2_ROOTFS_DEVICE_TABLE
+ string "Path to the permission tables"
+ default "target/generic/device_table.txt"
+ help
+ Specify a space-separated list of permission table locations,
+ that will be passed to the makedevs utility to assign
+ correct owners and permissions on various files in the
+ target filesystem.
+
+ See package/makedevs/README for details on the usage and
+ syntax of these files.
+
+config BR2_ROOTFS_STATIC_DEVICE_TABLE
+ string "Path to the device tables"
+ default "target/generic/device_table_dev.txt"
+ depends on BR2_ROOTFS_DEVICE_CREATION_STATIC
+ help
+ Specify a space-separated list of device table locations,
+ that will be passed to the makedevs utility to create all
+ the special device files under /dev.
+
+ See package/makedevs/README for details on the usage and
+ syntax of these files.
+
+choice
+ prompt "Root FS skeleton"
+
+config BR2_ROOTFS_SKELETON_DEFAULT
+ bool "default target skeleton"
+ help
+ Use default target skeleton
+
+config BR2_ROOTFS_SKELETON_CUSTOM
+ bool "custom target skeleton"
+ help
+ Use custom target skeleton.
+
+endchoice
+
+if BR2_ROOTFS_SKELETON_CUSTOM
+config BR2_ROOTFS_SKELETON_CUSTOM_PATH
+ string "custom target skeleton path"
+ default "system/skeleton"
+ help
+ Path custom target skeleton.
+endif
+
+if BR2_ROOTFS_SKELETON_DEFAULT
+
+config BR2_TARGET_GENERIC_GETTY_PORT
+ string "Port to run a getty (login prompt) on"
+ default "ttyS0"
+ help
+ Specify a port to run a getty (login prompt) on.
+
+choice
+ prompt "Baudrate to use"
+ default BR2_TARGET_GENERIC_GETTY_BAUDRATE_115200
+ help
+ Select a baudrate to use.
+
+config BR2_TARGET_GENERIC_GETTY_BAUDRATE_KEEP
+ bool "keep kernel default"
+config BR2_TARGET_GENERIC_GETTY_BAUDRATE_9600
+ bool "9600"
+config BR2_TARGET_GENERIC_GETTY_BAUDRATE_19200
+ bool "19200"
+config BR2_TARGET_GENERIC_GETTY_BAUDRATE_38400
+ bool "38400"
+config BR2_TARGET_GENERIC_GETTY_BAUDRATE_57600
+ bool "57600"
+config BR2_TARGET_GENERIC_GETTY_BAUDRATE_115200
+ bool "115200"
+endchoice
+
+config BR2_TARGET_GENERIC_GETTY_BAUDRATE
+ string
+ default "0" if BR2_TARGET_GENERIC_GETTY_BAUDRATE_KEEP
+ default "9600" if BR2_TARGET_GENERIC_GETTY_BAUDRATE_9600
+ default "19200" if BR2_TARGET_GENERIC_GETTY_BAUDRATE_19200
+ default "38400" if BR2_TARGET_GENERIC_GETTY_BAUDRATE_38400
+ default "57600" if BR2_TARGET_GENERIC_GETTY_BAUDRATE_57600
+ default "115200" if BR2_TARGET_GENERIC_GETTY_BAUDRATE_115200
+
+config BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW
+ bool "remount root filesystem read-write during boot"
+ default y
+ help
+ The root filesystem is typically mounted read-only at boot.
+ By default, buildroot remounts it in read-write mode early during the
+ boot process.
+ Say no here if you would rather like your root filesystem to remain
+ read-only.
+ If unsure, say Y.
+
+endif # BR2_ROOTFS_SKELETON_DEFAULT
+
+config BR2_ROOTFS_POST_BUILD_SCRIPT
+ string "Custom script to run before creating filesystem images"
+ default ""
+ help
+ Specify a script to be run after the build has finished and before
+ Buildroot starts packing the files into selected filesystem images.
+
+ This gives users the oportunity to do board-specific cleanups,
+ add-ons and the like, so the generated files can be used directly
+ without further processing.
+
+ The script is called with the target directory name as first and
+ only argument. Make sure the exit code of that script is 0,
+ otherwise make will stop after calling it.
+
+endmenu
diff --git a/system/device_table.txt b/system/device_table.txt
new file mode 100644
index 0000000000..fc397a90c9
--- /dev/null
+++ b/system/device_table.txt
@@ -0,0 +1,22 @@
+# See package/makedevs/README for details
+#
+# This device table is used to assign proper ownership and permissions
+# on various files. It doesn't create any device file, as it is used
+# in both static device configurations (where /dev/ is static) and in
+# dynamic configurations (where devtmpfs, mdev or udev are used).
+#
+# <name> <type> <mode> <uid> <gid> <major> <minor> <start> <inc> <count>
+/dev d 755 0 0 - - - - -
+/tmp d 1777 0 0 - - - - -
+/etc d 755 0 0 - - - - -
+/home/default d 2755 1000 1000 - - - - -
+/etc/shadow f 600 0 0 - - - - -
+/etc/passwd f 644 0 0 - - - - -
+/etc/network/if-up.d d 755 0 0 - - - - -
+/etc/network/if-pre-up.d d 755 0 0 - - - - -
+/etc/network/if-post-up.d d 755 0 0 - - - - -
+/etc/network/if-down.d d 755 0 0 - - - - -
+/etc/network/if-pre-down.d d 755 0 0 - - - - -
+/etc/network/if-post-down.d d 755 0 0 - - - - -
+# uncomment this to allow starting x as non-root
+#/usr/X11R6/bin/Xfbdev f 4755 0 0 - - - - -
diff --git a/system/device_table_dev.txt b/system/device_table_dev.txt
new file mode 100644
index 0000000000..a93a2c8083
--- /dev/null
+++ b/system/device_table_dev.txt
@@ -0,0 +1,146 @@
+# See package/makedevs/README for details
+#
+# This device table is used only to create device files when a static
+# device configuration is used (entries in /dev are static).
+#
+# <name> <type> <mode> <uid> <gid> <major> <minor> <start> <inc> <count>
+
+# Normal system devices
+/dev/mem c 640 0 0 1 1 0 0 -
+/dev/kmem c 640 0 0 1 2 0 0 -
+/dev/null c 666 0 0 1 3 0 0 -
+/dev/zero c 666 0 0 1 5 0 0 -
+/dev/random c 666 0 0 1 8 0 0 -
+/dev/urandom c 666 0 0 1 9 0 0 -
+/dev/ram b 640 0 0 1 1 0 0 -
+/dev/ram b 640 0 0 1 0 0 1 4
+/dev/loop b 640 0 0 7 0 0 1 2
+/dev/rtc c 640 0 0 10 135 - - -
+/dev/console c 666 0 0 5 1 - - -
+/dev/tty c 666 0 0 5 0 - - -
+/dev/tty c 666 0 0 4 0 0 1 8
+/dev/ttyp c 666 0 0 3 0 0 1 10
+/dev/ptyp c 666 0 0 2 0 0 1 10
+/dev/ptmx c 666 0 0 5 2 - - -
+/dev/ttyP c 666 0 0 57 0 0 1 4
+/dev/ttyS c 666 0 0 4 64 0 1 4
+/dev/fb c 640 0 5 29 0 0 1 4
+#/dev/ttySA c 666 0 0 204 5 0 1 3
+/dev/psaux c 666 0 0 10 1 0 0 -
+#/dev/ppp c 666 0 0 108 0 - - -
+/dev/ttyAM c 666 0 0 204 16 0 1 3
+/dev/ttyCPM c 666 0 0 204 46 0 1 4
+/dev/ttyAMA c 666 0 0 204 64 0 1 4
+/dev/ttySAC c 666 0 0 204 64 0 1 4
+/dev/ttySC c 666 0 0 204 8 0 1 8
+/dev/ttyPSC c 666 0 0 204 148 0 1 4
+/dev/ttyUL c 666 0 0 204 187 0 1 4
+/dev/ttymxc c 666 0 0 207 16 0 1 3
+
+# Input stuff
+/dev/input d 755 0 0 - - - - -
+/dev/input/mice c 640 0 0 13 63 0 0 -
+/dev/input/mouse c 660 0 0 13 32 0 1 4
+/dev/input/event c 660 0 0 13 64 0 1 4
+#/dev/input/js c 660 0 0 13 0 0 1 4
+
+
+# MTD stuff
+/dev/mtd c 640 0 0 90 0 0 2 4
+/dev/mtdblock b 640 0 0 31 0 0 1 4
+
+#Tun/tap driver
+/dev/net d 755 0 0 - - - - -
+/dev/net/tun c 660 0 0 10 200 - - -
+
+# Audio stuff
+#/dev/audio c 666 0 29 14 4 - - -
+#/dev/audio1 c 666 0 29 14 20 - - -
+#/dev/dsp c 666 0 29 14 3 - - -
+#/dev/dsp1 c 666 0 29 14 19 - - -
+#/dev/sndstat c 666 0 29 14 6 - - -
+
+# User-mode Linux stuff
+#/dev/ubda b 640 0 0 98 0 0 0 -
+#/dev/ubda b 640 0 0 98 1 1 1 15
+
+# IDE Devices
+/dev/hda b 640 0 0 3 0 0 0 -
+/dev/hda b 640 0 0 3 1 1 1 15
+/dev/hdb b 640 0 0 3 64 0 0 -
+/dev/hdb b 640 0 0 3 65 1 1 15
+#/dev/hdc b 640 0 0 22 0 0 0 -
+#/dev/hdc b 640 0 0 22 1 1 1 15
+#/dev/hdd b 640 0 0 22 64 0 0 -
+#/dev/hdd b 640 0 0 22 65 1 1 15
+#/dev/hde b 640 0 0 33 0 0 0 -
+#/dev/hde b 640 0 0 33 1 1 1 15
+#/dev/hdf b 640 0 0 33 64 0 0 -
+#/dev/hdf b 640 0 0 33 65 1 1 15
+#/dev/hdg b 640 0 0 34 0 0 0 -
+#/dev/hdg b 640 0 0 34 1 1 1 15
+#/dev/hdh b 640 0 0 34 64 0 0 -
+#/dev/hdh b 640 0 0 34 65 1 1 15
+
+# SCSI Devices
+/dev/sda b 640 0 0 8 0 0 0 -
+/dev/sda b 640 0 0 8 1 1 1 15
+/dev/sdb b 640 0 0 8 16 0 0 -
+/dev/sdb b 640 0 0 8 17 1 1 15
+#/dev/sdc b 640 0 0 8 32 0 0 -
+#/dev/sdc b 640 0 0 8 33 1 1 15
+#/dev/sdd b 640 0 0 8 48 0 0 -
+#/dev/sdd b 640 0 0 8 49 1 1 15
+#/dev/sde b 640 0 0 8 64 0 0 -
+#/dev/sde b 640 0 0 8 65 1 1 15
+#/dev/sdf b 640 0 0 8 80 0 0 -
+#/dev/sdf b 640 0 0 8 81 1 1 15
+#/dev/sdg b 640 0 0 8 96 0 0 -
+#/dev/sdg b 640 0 0 8 97 1 1 15
+#/dev/sdh b 640 0 0 8 112 0 0 -
+#/dev/sdh b 640 0 0 8 113 1 1 15
+#/dev/sg c 640 0 0 21 0 0 1 15
+#/dev/scd b 640 0 0 11 0 0 1 15
+#/dev/st c 640 0 0 9 0 0 1 8
+#/dev/nst c 640 0 0 9 128 0 1 8
+#/dev/st c 640 0 0 9 32 1 1 4
+#/dev/st c 640 0 0 9 64 1 1 4
+#/dev/st c 640 0 0 9 96 1 1 4
+
+# USB block devices (ub driver)
+/dev/uba b 640 0 0 180 0 0 0 -
+/dev/uba b 640 0 0 180 1 1 1 6
+/dev/ubb b 640 0 0 180 8 0 0 -
+/dev/ubb b 640 0 0 180 65 1 1 6
+
+# Floppy disk devices
+#/dev/fd b 640 0 0 2 0 0 1 2
+#/dev/fd0d360 b 640 0 0 2 4 0 0 -
+#/dev/fd1d360 b 640 0 0 2 5 0 0 -
+#/dev/fd0h1200 b 640 0 0 2 8 0 0 -
+#/dev/fd1h1200 b 640 0 0 2 9 0 0 -
+#/dev/fd0u1440 b 640 0 0 2 28 0 0 -
+#/dev/fd1u1440 b 640 0 0 2 29 0 0 -
+#/dev/fd0u2880 b 640 0 0 2 32 0 0 -
+#/dev/fd1u2880 b 640 0 0 2 33 0 0 -
+
+# All the proprietary cdrom devices in the world
+#/dev/aztcd b 640 0 0 29 0 0 0 -
+#/dev/bpcd b 640 0 0 41 0 0 0 -
+#/dev/capi20 c 640 0 0 68 0 0 1 2
+#/dev/cdu31a b 640 0 0 15 0 0 0 -
+#/dev/cdu535 b 640 0 0 24 0 0 0 -
+#/dev/cm206cd b 640 0 0 32 0 0 0 -
+#/dev/sjcd b 640 0 0 18 0 0 0 -
+#/dev/sonycd b 640 0 0 15 0 0 0 -
+#/dev/gscd b 640 0 0 16 0 0 0 -
+#/dev/sbpcd b 640 0 0 25 0 0 0 -
+#/dev/sbpcd b 640 0 0 25 0 0 1 4
+#/dev/mcd b 640 0 0 23 0 0 0 -
+#/dev/optcd b 640 0 0 17 0 0 0 -
+
+# I2C device nodes
+/dev/i2c- c 666 0 0 89 0 0 1 4
+
+# v4l device nodes
+/dev/video c 666 0 0 81 0 0 1 4
diff --git a/system/skeleton/bin/.empty b/system/skeleton/bin/.empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/system/skeleton/bin/.empty
diff --git a/system/skeleton/dev/log b/system/skeleton/dev/log
new file mode 120000
index 0000000000..d96b3b1cb8
--- /dev/null
+++ b/system/skeleton/dev/log
@@ -0,0 +1 @@
+../tmp/log \ No newline at end of file
diff --git a/system/skeleton/dev/pts/.empty b/system/skeleton/dev/pts/.empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/system/skeleton/dev/pts/.empty
diff --git a/system/skeleton/etc/fstab b/system/skeleton/etc/fstab
new file mode 100644
index 0000000000..a2f56ffa65
--- /dev/null
+++ b/system/skeleton/etc/fstab
@@ -0,0 +1,9 @@
+# /etc/fstab: static file system information.
+#
+# <file system> <mount pt> <type> <options> <dump> <pass>
+/dev/root / ext2 rw,noauto 0 1
+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 defaults 0 0
+sysfs /sys sysfs defaults 0 0
diff --git a/system/skeleton/etc/group b/system/skeleton/etc/group
new file mode 100644
index 0000000000..8fc486d1a6
--- /dev/null
+++ b/system/skeleton/etc/group
@@ -0,0 +1,21 @@
+root:x:0:
+daemon:x:1:
+bin:x:2:
+sys:x:3:
+adm:x:4:
+tty:x:5:
+disk:x:6:
+wheel:x:10:root
+audio:x:29:
+www-data:x:33:
+utmp:x:43:
+staff:x:50:
+lock:x:54:
+haldaemon:x:68:
+dbus:x:81:
+netdev:x:82:
+ftp:x:83
+nobody:x:99:
+nogroup:x:99:
+users:x:100:
+default:x:1000:
diff --git a/system/skeleton/etc/hostname b/system/skeleton/etc/hostname
new file mode 100644
index 0000000000..5b26b355e3
--- /dev/null
+++ b/system/skeleton/etc/hostname
@@ -0,0 +1 @@
+buildroot
diff --git a/system/skeleton/etc/hosts b/system/skeleton/etc/hosts
new file mode 100644
index 0000000000..ba712fe033
--- /dev/null
+++ b/system/skeleton/etc/hosts
@@ -0,0 +1 @@
+127.0.0.1 localhost
diff --git a/system/skeleton/etc/init.d/S20urandom b/system/skeleton/etc/init.d/S20urandom
new file mode 100755
index 0000000000..f73cea59ed
--- /dev/null
+++ b/system/skeleton/etc/init.d/S20urandom
@@ -0,0 +1,54 @@
+#! /bin/sh
+#
+# urandom This script saves the random seed between reboots.
+# It is called from the boot, halt and reboot scripts.
+#
+# Version: @(#)urandom 1.33 22-Jun-1998 miquels@cistron.nl
+#
+
+[ -c /dev/urandom ] || exit 0
+#. /etc/default/rcS
+
+case "$1" in
+ start|"")
+ if [ "$VERBOSE" != no ]
+ then
+ echo -n "Initializing random number generator... "
+ fi
+ # Load and then save 512 bytes,
+ # which is the size of the entropy pool
+ if [ -f /etc/random-seed ]
+ then
+ cat /etc/random-seed >/dev/urandom
+ fi
+ # check for read only file system
+ if ! touch /etc/random-seed 2>/dev/null
+ then
+ echo "read-only file system detected...done"
+ exit
+ fi
+ rm -f /etc/random-seed
+ umask 077
+ dd if=/dev/urandom of=/etc/random-seed count=1 \
+ >/dev/null 2>&1 || echo "urandom start: failed."
+ umask 022
+ [ "$VERBOSE" != no ] && echo "done."
+ ;;
+ stop)
+ if ! touch /etc/random-seed 2>/dev/null
+ then
+ exit
+ fi
+ # Carry a random seed from shut-down to start-up;
+ # see documentation in linux/drivers/char/random.c
+ [ "$VERBOSE" != no ] && echo -n "Saving random seed... "
+ umask 077
+ dd if=/dev/urandom of=/etc/random-seed count=1 \
+ >/dev/null 2>&1 || echo "urandom stop: failed."
+ [ "$VERBOSE" != no ] && echo "done."
+ ;;
+ *)
+ echo "Usage: urandom {start|stop}" >&2
+ exit 1
+ ;;
+esac
diff --git a/system/skeleton/etc/init.d/S40network b/system/skeleton/etc/init.d/S40network
new file mode 100755
index 0000000000..e69e61340a
--- /dev/null
+++ b/system/skeleton/etc/init.d/S40network
@@ -0,0 +1,25 @@
+#!/bin/sh
+#
+# Start the network....
+#
+
+case "$1" in
+ start)
+ echo "Starting network..."
+ /sbin/ifup -a
+ ;;
+ stop)
+ echo -n "Stopping network..."
+ /sbin/ifdown -a
+ ;;
+ restart|reload)
+ "$0" stop
+ "$0" start
+ ;;
+ *)
+ echo "Usage: $0 {start|stop|restart}"
+ exit 1
+esac
+
+exit $?
+
diff --git a/system/skeleton/etc/init.d/rcK b/system/skeleton/etc/init.d/rcK
new file mode 100755
index 0000000000..59e9c54ff9
--- /dev/null
+++ b/system/skeleton/etc/init.d/rcK
@@ -0,0 +1,27 @@
+#!/bin/sh
+
+
+# Stop all init scripts in /etc/init.d
+# executing them in reversed numerical order.
+#
+for i in $(ls -r /etc/init.d/S??*) ;do
+
+ # Ignore dangling symlinks (if any).
+ [ ! -f "$i" ] && continue
+
+ case "$i" in
+ *.sh)
+ # Source shell script for speed.
+ (
+ trap - INT QUIT TSTP
+ set stop
+ . $i
+ )
+ ;;
+ *)
+ # No sh extension, so fork subprocess.
+ $i stop
+ ;;
+ esac
+done
+
diff --git a/system/skeleton/etc/init.d/rcS b/system/skeleton/etc/init.d/rcS
new file mode 100755
index 0000000000..de411534da
--- /dev/null
+++ b/system/skeleton/etc/init.d/rcS
@@ -0,0 +1,27 @@
+#!/bin/sh
+
+
+# Start all init scripts in /etc/init.d
+# executing them in numerical order.
+#
+for i in /etc/init.d/S??* ;do
+
+ # Ignore dangling symlinks (if any).
+ [ ! -f "$i" ] && continue
+
+ case "$i" in
+ *.sh)
+ # Source shell script for speed.
+ (
+ trap - INT QUIT TSTP
+ set start
+ . $i
+ )
+ ;;
+ *)
+ # No sh extension, so fork subprocess.
+ $i start
+ ;;
+ esac
+done
+
diff --git a/system/skeleton/etc/inittab b/system/skeleton/etc/inittab
new file mode 100644
index 0000000000..85881f4607
--- /dev/null
+++ b/system/skeleton/etc/inittab
@@ -0,0 +1,36 @@
+# /etc/inittab
+#
+# Copyright (C) 2001 Erik Andersen <andersen@codepoet.org>
+#
+# Note: BusyBox init doesn't support runlevels. The runlevels field is
+# completely ignored by BusyBox init. If you want runlevels, use
+# sysvinit.
+#
+# Format for each entry: <id>:<runlevels>:<action>:<process>
+#
+# id == tty to run on, or empty for /dev/console
+# runlevels == ignored
+# action == one of sysinit, respawn, askfirst, wait, and once
+# process == program to run
+
+# Startup the system
+null::sysinit:/bin/mount -t proc proc /proc
+null::sysinit:/bin/mount -o remount,rw / # REMOUNT_ROOTFS_RW
+null::sysinit:/bin/mkdir -p /dev/pts
+null::sysinit:/bin/mkdir -p /dev/shm
+null::sysinit:/bin/mount -a
+null::sysinit:/bin/hostname -F /etc/hostname
+# now run any rc scripts
+::sysinit:/etc/init.d/rcS
+
+# Put a getty on the serial port
+#ttyS0::respawn:/sbin/getty -L ttyS0 115200 vt100 # GENERIC_SERIAL
+
+# Stuff to do for the 3-finger salute
+::ctrlaltdel:/sbin/reboot
+
+# Stuff to do before rebooting
+null::shutdown:/etc/init.d/rcK
+null::shutdown:/bin/umount -a -r
+null::shutdown:/sbin/swapoff -a
+
diff --git a/system/skeleton/etc/inputrc b/system/skeleton/etc/inputrc
new file mode 100644
index 0000000000..2f1cb601a5
--- /dev/null
+++ b/system/skeleton/etc/inputrc
@@ -0,0 +1,44 @@
+# /etc/inputrc - global inputrc for libreadline
+# See readline(3readline) and `info readline' for more information.
+
+# Be 8 bit clean.
+set input-meta on
+set output-meta on
+set bell-style visible
+
+# To allow the use of 8bit-characters like the german umlauts, comment out
+# the line below. However this makes the meta key not work as a meta key,
+# which is annoying to those which don't need to type in 8-bit characters.
+
+# set convert-meta off
+
+"\e0d": backward-word
+"\e0c": forward-word
+"\e[h": beginning-of-line
+"\e[f": end-of-line
+"\e[1~": beginning-of-line
+"\e[4~": end-of-line
+#"\e[5~": beginning-of-history
+#"\e[6~": end-of-history
+"\e[3~": delete-char
+"\e[2~": quoted-insert
+
+# Common standard keypad and cursor
+# (codes courtsey Werner Fink, <werner@suse.de>)
+#"\e[1~": history-search-backward
+"\e[2~": yank
+"\e[3~": delete-char
+#"\e[4~": set-mark
+"\e[5~": history-search-backward
+"\e[6~": history-search-forward
+# Normal keypad and cursor of xterm
+"\e[F": end-of-line
+"\e[H": beginning-of-line
+# Application keypad and cursor of xterm
+"\eOA": previous-history
+"\eOC": forward-char
+"\eOB": next-history
+"\eOD": backward-char
+"\eOF": end-of-line
+"\eOH": beginning-of-line
+
diff --git a/system/skeleton/etc/issue b/system/skeleton/etc/issue
new file mode 100644
index 0000000000..90f177983b
--- /dev/null
+++ b/system/skeleton/etc/issue
@@ -0,0 +1,3 @@
+
+Welcome to Buildroot
+
diff --git a/system/skeleton/etc/ld.so.conf.d/.empty b/system/skeleton/etc/ld.so.conf.d/.empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/system/skeleton/etc/ld.so.conf.d/.empty
diff --git a/system/skeleton/etc/mtab b/system/skeleton/etc/mtab
new file mode 120000
index 0000000000..4c0a0948bc
--- /dev/null
+++ b/system/skeleton/etc/mtab
@@ -0,0 +1 @@
+/proc/mounts \ No newline at end of file
diff --git a/system/skeleton/etc/network/if-down.d/.empty b/system/skeleton/etc/network/if-down.d/.empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/system/skeleton/etc/network/if-down.d/.empty
diff --git a/system/skeleton/etc/network/if-post-down.d/.empty b/system/skeleton/etc/network/if-post-down.d/.empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/system/skeleton/etc/network/if-post-down.d/.empty
diff --git a/system/skeleton/etc/network/if-pre-up.d/.empty b/system/skeleton/etc/network/if-pre-up.d/.empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/system/skeleton/etc/network/if-pre-up.d/.empty
diff --git a/system/skeleton/etc/network/if-up.d/.empty b/system/skeleton/etc/network/if-up.d/.empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/system/skeleton/etc/network/if-up.d/.empty
diff --git a/system/skeleton/etc/network/interfaces b/system/skeleton/etc/network/interfaces
new file mode 100644
index 0000000000..218b82cde5
--- /dev/null
+++ b/system/skeleton/etc/network/interfaces
@@ -0,0 +1,4 @@
+# Configure Loopback
+auto lo
+iface lo inet loopback
+
diff --git a/system/skeleton/etc/passwd b/system/skeleton/etc/passwd
new file mode 100644
index 0000000000..ed7006a29c
--- /dev/null
+++ b/system/skeleton/etc/passwd
@@ -0,0 +1,16 @@
+root:x:0:0:root:/root:/bin/sh
+daemon:x:1:1:daemon:/usr/sbin:/bin/sh
+bin:x:2:2:bin:/bin:/bin/sh
+sys:x:3:3:sys:/dev:/bin/sh
+sync:x:4:100:sync:/bin:/bin/sync
+mail:x:8:8:mail:/var/spool/mail:/bin/sh
+proxy:x:13:13:proxy:/bin:/bin/sh
+www-data:x:33:33:www-data:/var/www:/bin/sh
+backup:x:34:34:backup:/var/backups:/bin/sh
+operator:x:37:37:Operator:/var:/bin/sh
+haldaemon:x:68:68:hald:/:/bin/sh
+dbus:x:81:81:dbus:/var/run/dbus:/bin/sh
+ftp:x:83:83:ftp:/home/ftp:/bin/sh
+nobody:x:99:99:nobody:/home:/bin/sh
+sshd:x:103:99:Operator:/var:/bin/sh
+default:x:1000:1000:Default non-root user:/home/default:/bin/sh
diff --git a/system/skeleton/etc/profile b/system/skeleton/etc/profile
new file mode 100644
index 0000000000..31d3180c0d
--- /dev/null
+++ b/system/skeleton/etc/profile
@@ -0,0 +1,55 @@
+# ~/.bashrc: executed by bash(1) for non-login interactive shells.
+
+export PATH=\
+/bin:\
+/sbin:\
+/usr/bin:\
+/usr/sbin:\
+/usr/bin/X11:\
+/usr/local/bin
+
+# If running interactively, then:
+if [ "$PS1" ]; then
+
+ if [ "$BASH" ]; then
+ export PS1="[\u@\h \W]\\$ "
+ alias ll='/bin/ls --color=tty -laFh'
+ alias ls='/bin/ls --color=tty -F'
+ export LS_COLORS='no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.jpg=01;35:*.jpeg=01;35:*.png=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.mpg=01;35:*.mpeg=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:';
+ else
+ if [ "`id -u`" -eq 0 ]; then
+ export PS1='# '
+ else
+ export PS1='$ '
+ fi
+ fi
+
+ export USER=`id -un`
+ export LOGNAME=$USER
+ export HOSTNAME=`/bin/hostname`
+ export HISTSIZE=1000
+ export HISTFILESIZE=1000
+ export PAGER='/bin/more '
+ export EDITOR='/bin/vi'
+ export INPUTRC=/etc/inputrc
+ export DMALLOC_OPTIONS=debug=0x34f47d83,inter=100,log=logfile
+
+ ### Some aliases
+ alias ps2='ps facux '
+ alias ps1='ps faxo "%U %t %p %a" '
+ alias af='ps af'
+ alias cls='clear'
+ alias df='df -h'
+ alias indent='indent -bad -bap -bbo -nbc -br -brs -c33 -cd33 -ncdb -ce -ci4 -cli0 -cp33 -cs -d0 -di1 -nfc1 -nfca -hnl -i4 -ip0 -l75 -lp -npcs -npsl -nsc -nsob -nss -ts4 '
+ #alias bc='bc -l'
+ alias minicom='minicom -c on'
+ alias calc='calc -Cd '
+ alias bc='calc -Cd '
+fi;
+
+# Source configuration files from /etc/profile.d
+for i in /etc/profile.d/*.sh ; do
+ if [ -r "$i" ]; then
+ . $i
+ fi
+done
diff --git a/system/skeleton/etc/protocols b/system/skeleton/etc/protocols
new file mode 100644
index 0000000000..1ac8a40967
--- /dev/null
+++ b/system/skeleton/etc/protocols
@@ -0,0 +1,31 @@
+# /etc/protocols:
+# $Id: protocols,v 1.1 2004/10/09 02:49:18 andersen Exp $
+#
+# Internet (IP) protocols
+#
+# from: @(#)protocols 5.1 (Berkeley) 4/17/89
+#
+# Updated for NetBSD based on RFC 1340, Assigned Numbers (July 1992).
+
+ip 0 IP # internet protocol, pseudo protocol number
+icmp 1 ICMP # internet control message protocol
+igmp 2 IGMP # Internet Group Management
+ggp 3 GGP # gateway-gateway protocol
+ipencap 4 IP-ENCAP # IP encapsulated in IP (officially ``IP'')
+st 5 ST # ST datagram mode
+tcp 6 TCP # transmission control protocol
+egp 8 EGP # exterior gateway protocol
+pup 12 PUP # PARC universal packet protocol
+udp 17 UDP # user datagram protocol
+hmp 20 HMP # host monitoring protocol
+xns-idp 22 XNS-IDP # Xerox NS IDP
+rdp 27 RDP # "reliable datagram" protocol
+iso-tp4 29 ISO-TP4 # ISO Transport Protocol class 4
+xtp 36 XTP # Xpress Tranfer Protocol
+ddp 37 DDP # Datagram Delivery Protocol
+idpr-cmtp 39 IDPR-CMTP # IDPR Control Message Transport
+rspf 73 RSPF #Radio Shortest Path First.
+vmtp 81 VMTP # Versatile Message Transport
+ospf 89 OSPFIGP # Open Shortest Path First IGP
+ipip 94 IPIP # Yet Another IP encapsulation
+encap 98 ENCAP # Yet Another IP encapsulation
diff --git a/system/skeleton/etc/random-seed b/system/skeleton/etc/random-seed
new file mode 100644
index 0000000000..f26038adc5
--- /dev/null
+++ b/system/skeleton/etc/random-seed
Binary files differ
diff --git a/system/skeleton/etc/resolv.conf b/system/skeleton/etc/resolv.conf
new file mode 120000
index 0000000000..71f6f96576
--- /dev/null
+++ b/system/skeleton/etc/resolv.conf
@@ -0,0 +1 @@
+../tmp/resolv.conf \ No newline at end of file
diff --git a/system/skeleton/etc/securetty b/system/skeleton/etc/securetty
new file mode 100644
index 0000000000..c96f2fb9f3
--- /dev/null
+++ b/system/skeleton/etc/securetty
@@ -0,0 +1,51 @@
+tty1
+tty2
+tty3
+tty4
+tty5
+tty6
+tty7
+tty8
+ttyS0
+ttyS1
+ttyS2
+ttyS3
+ttyAMA0
+ttyAMA1
+ttyAMA2
+ttyAMA3
+ttySAC0
+ttySAC1
+ttySAC2
+ttySAC3
+ttyUL0
+ttyUL1
+ttyUL2
+ttyUL3
+ttyPSC0
+ttyPSC1
+ttyPSC2
+ttyPSC3
+ttyCPM0
+ttyCPM1
+ttyCPM2
+ttyCPM3
+ttymxc0
+ttymxc1
+ttymxc2
+ttyO0
+ttyO1
+ttyO2
+ttyO3
+ttyAM0
+ttyAM1
+ttyAM2
+ttySC0
+ttySC1
+ttySC2
+ttySC3
+ttySC4
+ttySC5
+ttySC6
+ttySC7
+ttyGS0
diff --git a/system/skeleton/etc/services b/system/skeleton/etc/services
new file mode 100644
index 0000000000..b287b63ea0
--- /dev/null
+++ b/system/skeleton/etc/services
@@ -0,0 +1,302 @@
+# /etc/services:
+# $Id: services,v 1.1 2004/10/09 02:49:18 andersen Exp $
+#
+# Network services, Internet style
+#
+# Note that it is presently the policy of IANA to assign a single well-known
+# port number for both TCP and UDP; hence, most entries here have two entries
+# even if the protocol doesn't support UDP operations.
+# Updated from RFC 1700, ``Assigned Numbers'' (October 1994). Not all ports
+# are included, only the more common ones.
+
+tcpmux 1/tcp # TCP port service multiplexer
+echo 7/tcp
+echo 7/udp
+discard 9/tcp sink null
+discard 9/udp sink null
+systat 11/tcp users
+daytime 13/tcp
+daytime 13/udp
+netstat 15/tcp
+qotd 17/tcp quote
+msp 18/tcp # message send protocol
+msp 18/udp # message send protocol
+chargen 19/tcp ttytst source
+chargen 19/udp ttytst source
+ftp-data 20/tcp
+ftp 21/tcp
+fsp 21/udp fspd
+ssh 22/tcp # SSH Remote Login Protocol
+ssh 22/udp # SSH Remote Login Protocol
+telnet 23/tcp
+# 24 - private
+smtp 25/tcp mail
+# 26 - unassigned
+time 37/tcp timserver
+time 37/udp timserver
+rlp 39/udp resource # resource location
+nameserver 42/tcp name # IEN 116
+whois 43/tcp nicname
+re-mail-ck 50/tcp # Remote Mail Checking Protocol
+re-mail-ck 50/udp # Remote Mail Checking Protocol
+domain 53/tcp nameserver # name-domain server
+domain 53/udp nameserver
+mtp 57/tcp # deprecated
+bootps 67/tcp # BOOTP server
+bootps 67/udp
+bootpc 68/tcp # BOOTP client
+bootpc 68/udp
+tftp 69/udp
+gopher 70/tcp # Internet Gopher
+gopher 70/udp
+rje 77/tcp netrjs
+finger 79/tcp
+www 80/tcp http # WorldWideWeb HTTP
+www 80/udp # HyperText Transfer Protocol
+link 87/tcp ttylink
+kerberos 88/tcp kerberos5 krb5 # Kerberos v5
+kerberos 88/udp kerberos5 krb5 # Kerberos v5
+supdup 95/tcp
+# 100 - reserved
+hostnames 101/tcp hostname # usually from sri-nic
+iso-tsap 102/tcp tsap # part of ISODE.
+csnet-ns 105/tcp cso-ns # also used by CSO name server
+csnet-ns 105/udp cso-ns
+# unfortunately the poppassd (Eudora) uses a port which has already
+# been assigned to a different service. We list the poppassd as an
+# alias here. This should work for programs asking for this service.
+# (due to a bug in inetd the 3com-tsmux line is disabled)
+#3com-tsmux 106/tcp poppassd
+#3com-tsmux 106/udp poppassd
+rtelnet 107/tcp # Remote Telnet
+rtelnet 107/udp
+pop-2 109/tcp postoffice # POP version 2
+pop-2 109/udp
+pop-3 110/tcp # POP version 3
+pop-3 110/udp
+sunrpc 111/tcp portmapper # RPC 4.0 portmapper TCP
+sunrpc 111/udp portmapper # RPC 4.0 portmapper UDP
+auth 113/tcp authentication tap ident
+sftp 115/tcp
+uucp-path 117/tcp
+nntp 119/tcp readnews untp # USENET News Transfer Protocol
+ntp 123/tcp
+ntp 123/udp # Network Time Protocol
+netbios-ns 137/tcp # NETBIOS Name Service
+netbios-ns 137/udp
+netbios-dgm 138/tcp # NETBIOS Datagram Service
+netbios-dgm 138/udp
+netbios-ssn 139/tcp # NETBIOS session service
+netbios-ssn 139/udp
+imap2 143/tcp # Interim Mail Access Proto v2
+imap2 143/udp
+snmp 161/udp # Simple Net Mgmt Proto
+snmp-trap 162/udp snmptrap # Traps for SNMP
+cmip-man 163/tcp # ISO mgmt over IP (CMOT)
+cmip-man 163/udp
+cmip-agent 164/tcp
+cmip-agent 164/udp
+xdmcp 177/tcp # X Display Mgr. Control Proto
+xdmcp 177/udp
+nextstep 178/tcp NeXTStep NextStep # NeXTStep window
+nextstep 178/udp NeXTStep NextStep # server
+bgp 179/tcp # Border Gateway Proto.
+bgp 179/udp
+prospero 191/tcp # Cliff Neuman's Prospero
+prospero 191/udp
+irc 194/tcp # Internet Relay Chat
+irc 194/udp
+smux 199/tcp # SNMP Unix Multiplexer
+smux 199/udp
+at-rtmp 201/tcp # AppleTalk routing
+at-rtmp 201/udp
+at-nbp 202/tcp # AppleTalk name binding
+at-nbp 202/udp
+at-echo 204/tcp # AppleTalk echo
+at-echo 204/udp
+at-zis 206/tcp # AppleTalk zone information
+at-zis 206/udp
+qmtp 209/tcp # The Quick Mail Transfer Protocol
+qmtp 209/udp # The Quick Mail Transfer Protocol
+z3950 210/tcp wais # NISO Z39.50 database
+z3950 210/udp wais
+ipx 213/tcp # IPX
+ipx 213/udp
+imap3 220/tcp # Interactive Mail Access
+imap3 220/udp # Protocol v3
+ulistserv 372/tcp # UNIX Listserv
+ulistserv 372/udp
+https 443/tcp # MCom
+https 443/udp # MCom
+snpp 444/tcp # Simple Network Paging Protocol
+snpp 444/udp # Simple Network Paging Protocol
+saft 487/tcp # Simple Asynchronous File Transfer
+saft 487/udp # Simple Asynchronous File Transfer
+npmp-local 610/tcp dqs313_qmaster # npmp-local / DQS
+npmp-local 610/udp dqs313_qmaster # npmp-local / DQS
+npmp-gui 611/tcp dqs313_execd # npmp-gui / DQS
+npmp-gui 611/udp dqs313_execd # npmp-gui / DQS
+hmmp-ind 612/tcp dqs313_intercell# HMMP Indication / DQS
+hmmp-ind 612/udp dqs313_intercell# HMMP Indication / DQS
+#
+# UNIX specific services
+#
+exec 512/tcp
+biff 512/udp comsat
+login 513/tcp
+who 513/udp whod
+shell 514/tcp cmd # no passwords used
+syslog 514/udp
+printer 515/tcp spooler # line printer spooler
+talk 517/udp
+ntalk 518/udp
+route 520/udp router routed # RIP
+timed 525/udp timeserver
+tempo 526/tcp newdate
+courier 530/tcp rpc
+conference 531/tcp chat
+netnews 532/tcp readnews
+netwall 533/udp # -for emergency broadcasts
+uucp 540/tcp uucpd # uucp daemon
+afpovertcp 548/tcp # AFP over TCP
+afpovertcp 548/udp # AFP over TCP
+remotefs 556/tcp rfs_server rfs # Brunhoff remote filesystem
+klogin 543/tcp # Kerberized `rlogin' (v5)
+kshell 544/tcp krcmd # Kerberized `rsh' (v5)
+kerberos-adm 749/tcp # Kerberos `kadmin' (v5)
+#
+webster 765/tcp # Network dictionary
+webster 765/udp
+#
+# From ``Assigned Numbers'':
+#
+#> The Registered Ports are not controlled by the IANA and on most systems
+#> can be used by ordinary user processes or programs executed by ordinary
+#> users.
+#
+#> Ports are used in the TCP [45,106] to name the ends of logical
+#> connections which carry long term conversations. For the purpose of
+#> providing services to unknown callers, a service contact port is
+#> defined. This list specifies the port used by the server process as its
+#> contact port. While the IANA can not control uses of these ports it
+#> does register or list uses of these ports as a convienence to the
+#> community.
+#
+nfsdstatus 1110/tcp
+nfsd-keepalive 1110/udp
+
+ingreslock 1524/tcp
+ingreslock 1524/udp
+prospero-np 1525/tcp # Prospero non-privileged
+prospero-np 1525/udp
+datametrics 1645/tcp old-radius # datametrics / old radius entry
+datametrics 1645/udp old-radius # datametrics / old radius entry
+sa-msg-port 1646/tcp old-radacct # sa-msg-port / old radacct entry
+sa-msg-port 1646/udp old-radacct # sa-msg-port / old radacct entry
+radius 1812/tcp # Radius
+radius 1812/udp # Radius
+radacct 1813/tcp # Radius Accounting
+radacct 1813/udp # Radius Accounting
+nfsd 2049/tcp nfs
+nfsd 2049/udp nfs
+cvspserver 2401/tcp # CVS client/server operations
+cvspserver 2401/udp # CVS client/server operations
+mysql 3306/tcp # MySQL
+mysql 3306/udp # MySQL
+rfe 5002/tcp # Radio Free Ethernet
+rfe 5002/udp # Actually uses UDP only
+cfengine 5308/tcp # CFengine
+cfengine 5308/udp # CFengine
+bbs 7000/tcp # BBS service
+#
+#
+# Kerberos (Project Athena/MIT) services
+# Note that these are for Kerberos v4, and are unofficial. Sites running
+# v4 should uncomment these and comment out the v5 entries above.
+#
+kerberos4 750/udp kerberos-iv kdc # Kerberos (server) udp
+kerberos4 750/tcp kerberos-iv kdc # Kerberos (server) tcp
+kerberos_master 751/udp # Kerberos authentication
+kerberos_master 751/tcp # Kerberos authentication
+passwd_server 752/udp # Kerberos passwd server
+krb_prop 754/tcp # Kerberos slave propagation
+krbupdate 760/tcp kreg # Kerberos registration
+kpasswd 761/tcp kpwd # Kerberos "passwd"
+kpop 1109/tcp # Pop with Kerberos
+knetd 2053/tcp # Kerberos de-multiplexor
+zephyr-srv 2102/udp # Zephyr server
+zephyr-clt 2103/udp # Zephyr serv-hm connection
+zephyr-hm 2104/udp # Zephyr hostmanager
+eklogin 2105/tcp # Kerberos encrypted rlogin
+#
+# Unofficial but necessary (for NetBSD) services
+#
+supfilesrv 871/tcp # SUP server
+supfiledbg 1127/tcp # SUP debugging
+#
+# Datagram Delivery Protocol services
+#
+rtmp 1/ddp # Routing Table Maintenance Protocol
+nbp 2/ddp # Name Binding Protocol
+echo 4/ddp # AppleTalk Echo Protocol
+zip 6/ddp # Zone Information Protocol
+#
+# Services added for the Debian GNU/Linux distribution
+poppassd 106/tcp # Eudora
+poppassd 106/udp # Eudora
+mailq 174/tcp # Mailer transport queue for Zmailer
+mailq 174/tcp # Mailer transport queue for Zmailer
+omirr 808/tcp omirrd # online mirror
+omirr 808/udp omirrd # online mirror
+rmtcfg 1236/tcp # Gracilis Packeten remote config server
+xtel 1313/tcp # french minitel
+coda_opcons 1355/udp # Coda opcons (Coda fs)
+coda_venus 1363/udp # Coda venus (Coda fs)
+coda_auth 1357/udp # Coda auth (Coda fs)
+coda_udpsrv 1359/udp # Coda udpsrv (Coda fs)
+coda_filesrv 1361/udp # Coda filesrv (Coda fs)
+codacon 1423/tcp venus.cmu # Coda Console (Coda fs)
+coda_aux1 1431/tcp # coda auxiliary service (Coda fs)
+coda_aux1 1431/udp # coda auxiliary service (Coda fs)
+coda_aux2 1433/tcp # coda auxiliary service (Coda fs)
+coda_aux2 1433/udp # coda auxiliary service (Coda fs)
+coda_aux3 1435/tcp # coda auxiliary service (Coda fs)
+coda_aux3 1435/udp # coda auxiliary service (Coda fs)
+cfinger 2003/tcp # GNU Finger
+afbackup 2988/tcp # Afbackup system
+afbackup 2988/udp # Afbackup system
+icp 3130/tcp # Internet Cache Protocol (Squid)
+icp 3130/udp # Internet Cache Protocol (Squid)
+postgres 5432/tcp # POSTGRES
+postgres 5432/udp # POSTGRES
+fax 4557/tcp # FAX transmission service (old)
+hylafax 4559/tcp # HylaFAX client-server protocol (new)
+noclog 5354/tcp # noclogd with TCP (nocol)
+noclog 5354/udp # noclogd with UDP (nocol)
+hostmon 5355/tcp # hostmon uses TCP (nocol)
+hostmon 5355/udp # hostmon uses TCP (nocol)
+ircd 6667/tcp # Internet Relay Chat
+ircd 6667/udp # Internet Relay Chat
+webcache 8080/tcp # WWW caching service
+webcache 8080/udp # WWW caching service
+tproxy 8081/tcp # Transparent Proxy
+tproxy 8081/udp # Transparent Proxy
+mandelspawn 9359/udp mandelbrot # network mandelbrot
+amanda 10080/udp # amanda backup services
+amandaidx 10082/tcp # amanda backup services
+amidxtape 10083/tcp # amanda backup services
+isdnlog 20011/tcp # isdn logging system
+isdnlog 20011/udp # isdn logging system
+vboxd 20012/tcp # voice box system
+vboxd 20012/udp # voice box system
+binkp 24554/tcp # Binkley
+binkp 24554/udp # Binkley
+asp 27374/tcp # Address Search Protocol
+asp 27374/udp # Address Search Protocol
+tfido 60177/tcp # Ifmail
+tfido 60177/udp # Ifmail
+fido 60179/tcp # Ifmail
+fido 60179/udp # Ifmail
+
+# Local services
+
diff --git a/system/skeleton/etc/shadow b/system/skeleton/etc/shadow
new file mode 100644
index 0000000000..67b67c1960
--- /dev/null
+++ b/system/skeleton/etc/shadow
@@ -0,0 +1,13 @@
+root::10933:0:99999:7:::
+bin:*:10933:0:99999:7:::
+daemon:*:10933:0:99999:7:::
+adm:*:10933:0:99999:7:::
+lp:*:10933:0:99999:7:::
+sync:*:10933:0:99999:7:::
+shutdown:*:10933:0:99999:7:::
+halt:*:10933:0:99999:7:::
+uucp:*:10933:0:99999:7:::
+operator:*:10933:0:99999:7:::
+ftp:*:10933:0:99999:7:::
+nobody:*:10933:0:99999:7:::
+default::10933:0:99999:7:::
diff --git a/system/skeleton/home/ftp/.empty b/system/skeleton/home/ftp/.empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/system/skeleton/home/ftp/.empty
diff --git a/system/skeleton/lib/.empty b/system/skeleton/lib/.empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/system/skeleton/lib/.empty
diff --git a/system/skeleton/media/.empty b/system/skeleton/media/.empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/system/skeleton/media/.empty
diff --git a/system/skeleton/mnt/.empty b/system/skeleton/mnt/.empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/system/skeleton/mnt/.empty
diff --git a/system/skeleton/opt/.empty b/system/skeleton/opt/.empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/system/skeleton/opt/.empty
diff --git a/system/skeleton/proc/.empty b/system/skeleton/proc/.empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/system/skeleton/proc/.empty
diff --git a/system/skeleton/root/.bash_history b/system/skeleton/root/.bash_history
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/system/skeleton/root/.bash_history
diff --git a/system/skeleton/root/.bash_logout b/system/skeleton/root/.bash_logout
new file mode 100644
index 0000000000..77ef1f9508
--- /dev/null
+++ b/system/skeleton/root/.bash_logout
@@ -0,0 +1,7 @@
+# ~/.bash_logout: executed by bash(1) when login shell exits.
+
+# when leaving the console clear the screen to increase privacy
+
+case "`tty`" in
+ /dev/tty[0-9]*) clear
+esac
diff --git a/system/skeleton/root/.bash_profile b/system/skeleton/root/.bash_profile
new file mode 100644
index 0000000000..27bf14953d
--- /dev/null
+++ b/system/skeleton/root/.bash_profile
@@ -0,0 +1,15 @@
+# .bash_profile
+
+export PATH=\
+/bin:\
+/sbin:\
+/usr/bin:\
+/usr/sbin:\
+/usr/bin/X11:\
+/usr/local/bin
+
+umask 022
+
+if [ -f ~/.bashrc ]; then
+ source ~/.bashrc
+fi
diff --git a/system/skeleton/root/.empty b/system/skeleton/root/.empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/system/skeleton/root/.empty
diff --git a/system/skeleton/run b/system/skeleton/run
new file mode 120000
index 0000000000..1c2f433de1
--- /dev/null
+++ b/system/skeleton/run
@@ -0,0 +1 @@
+tmp \ No newline at end of file
diff --git a/system/skeleton/sbin/.empty b/system/skeleton/sbin/.empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/system/skeleton/sbin/.empty
diff --git a/system/skeleton/sys/.empty b/system/skeleton/sys/.empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/system/skeleton/sys/.empty
diff --git a/system/skeleton/tmp/.empty b/system/skeleton/tmp/.empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/system/skeleton/tmp/.empty
diff --git a/system/skeleton/usr/bin/.empty b/system/skeleton/usr/bin/.empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/system/skeleton/usr/bin/.empty
diff --git a/system/skeleton/usr/lib/.empty b/system/skeleton/usr/lib/.empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/system/skeleton/usr/lib/.empty
diff --git a/system/skeleton/usr/sbin/.empty b/system/skeleton/usr/sbin/.empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/system/skeleton/usr/sbin/.empty
diff --git a/system/skeleton/var/cache b/system/skeleton/var/cache
new file mode 120000
index 0000000000..1431b0e432
--- /dev/null
+++ b/system/skeleton/var/cache
@@ -0,0 +1 @@
+../tmp \ No newline at end of file
diff --git a/system/skeleton/var/lib/misc b/system/skeleton/var/lib/misc
new file mode 120000
index 0000000000..f1fde8c107
--- /dev/null
+++ b/system/skeleton/var/lib/misc
@@ -0,0 +1 @@
+../../tmp \ No newline at end of file
diff --git a/system/skeleton/var/lib/pcmcia b/system/skeleton/var/lib/pcmcia
new file mode 120000
index 0000000000..f1fde8c107
--- /dev/null
+++ b/system/skeleton/var/lib/pcmcia
@@ -0,0 +1 @@
+../../tmp \ No newline at end of file
diff --git a/system/skeleton/var/lock b/system/skeleton/var/lock
new file mode 120000
index 0000000000..1431b0e432
--- /dev/null
+++ b/system/skeleton/var/lock
@@ -0,0 +1 @@
+../tmp \ No newline at end of file
diff --git a/system/skeleton/var/log b/system/skeleton/var/log
new file mode 120000
index 0000000000..1431b0e432
--- /dev/null
+++ b/system/skeleton/var/log
@@ -0,0 +1 @@
+../tmp \ No newline at end of file
diff --git a/system/skeleton/var/pcmcia b/system/skeleton/var/pcmcia
new file mode 120000
index 0000000000..1431b0e432
--- /dev/null
+++ b/system/skeleton/var/pcmcia
@@ -0,0 +1 @@
+../tmp \ No newline at end of file
diff --git a/system/skeleton/var/run b/system/skeleton/var/run
new file mode 120000
index 0000000000..1431b0e432
--- /dev/null
+++ b/system/skeleton/var/run
@@ -0,0 +1 @@
+../tmp \ No newline at end of file
diff --git a/system/skeleton/var/spool b/system/skeleton/var/spool
new file mode 120000
index 0000000000..1431b0e432
--- /dev/null
+++ b/system/skeleton/var/spool
@@ -0,0 +1 @@
+../tmp \ No newline at end of file
diff --git a/system/skeleton/var/tmp b/system/skeleton/var/tmp
new file mode 120000
index 0000000000..1431b0e432
--- /dev/null
+++ b/system/skeleton/var/tmp
@@ -0,0 +1 @@
+../tmp \ No newline at end of file
diff --git a/system/system.mk b/system/system.mk
new file mode 100644
index 0000000000..4185202b73
--- /dev/null
+++ b/system/system.mk
@@ -0,0 +1,53 @@
+TARGET_GENERIC_HOSTNAME:=$(call qstrip,$(BR2_TARGET_GENERIC_HOSTNAME))
+TARGET_GENERIC_ISSUE:=$(call qstrip,$(BR2_TARGET_GENERIC_ISSUE))
+TARGET_GENERIC_GETTY:=$(call qstrip,$(BR2_TARGET_GENERIC_GETTY_PORT))
+TARGET_GENERIC_GETTY_BAUDRATE:=$(call qstrip,$(BR2_TARGET_GENERIC_GETTY_BAUDRATE))
+
+target-generic-hostname:
+ mkdir -p $(TARGET_DIR)/etc
+ echo "$(TARGET_GENERIC_HOSTNAME)" > $(TARGET_DIR)/etc/hostname
+ $(SED) '$$a \127.0.1.1\t$(TARGET_GENERIC_HOSTNAME)' \
+ -e '/^127.0.1.1/d' $(TARGET_DIR)/etc/hosts
+
+target-generic-issue:
+ mkdir -p $(TARGET_DIR)/etc
+ echo "$(TARGET_GENERIC_ISSUE)" > $(TARGET_DIR)/etc/issue
+
+target-generic-getty-busybox:
+ $(SED) '/# GENERIC_SERIAL$$/s~^.*#~$(TARGET_GENERIC_GETTY)::respawn:/sbin/getty -L $(TARGET_GENERIC_GETTY) $(TARGET_GENERIC_GETTY_BAUDRATE) vt100 #~' \
+ $(TARGET_DIR)/etc/inittab
+
+# In sysvinit inittab, the "id" must not be longer than 4 bytes, so we
+# skip the "tty" part and keep only the remaining.
+target-generic-getty-sysvinit:
+ $(SED) '/# GENERIC_SERIAL$$/s~^.*#~$(shell echo $(TARGET_GENERIC_GETTY) | tail -c+4)::respawn:/sbin/getty -L $(TARGET_GENERIC_GETTY) $(TARGET_GENERIC_GETTY_BAUDRATE) vt100 #~' \
+ $(TARGET_DIR)/etc/inittab
+
+# Find commented line, if any, and remove leading '#'s
+target-generic-do-remount-rw:
+ $(SED) '/^#.*# REMOUNT_ROOTFS_RW$$/s~^#\+~~' $(TARGET_DIR)/etc/inittab
+
+# Find uncommented line, if any, and add a leading '#'
+target-generic-dont-remount-rw:
+ $(SED) '/^[^#].*# REMOUNT_ROOTFS_RW$$/s~^~#~' $(TARGET_DIR)/etc/inittab
+
+ifneq ($(TARGET_GENERIC_HOSTNAME),)
+TARGETS += target-generic-hostname
+endif
+
+ifneq ($(TARGET_GENERIC_ISSUE),)
+TARGETS += target-generic-issue
+endif
+
+ifeq ($(BR2_ROOTFS_SKELETON_DEFAULT),y)
+ifeq ($(BR2_PACKAGE_SYSVINIT),y)
+TARGETS += target-generic-getty-sysvinit
+else
+TARGETS += target-generic-getty-busybox
+endif
+ifeq ($(BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW),y)
+TARGETS += target-generic-do-remount-rw
+else
+TARGETS += target-generic-dont-remount-rw
+endif
+endif