# When building a target filesystem, it is desirable to not have to
# become root and then run 'mknod' a thousand times.  Using a device 
# table you can create device nodes and directories "on the fly".
#
# This is a sample device table file for use with genext2fs.  You can
# do all sorts of interesting things with a device table file.  For
# example, if you want to adjust the permissions on a particular file
# you can just add an entry like:
#   /sbin/foobar        f       2755    0       0       -       -       -       -       -
# and (assuming the file /sbin/foobar exists) it will be made setuid
# root (regardless of what its permissions are on the host filesystem.
# Furthermore, you can use a single table entry to create a many device
# minors.  For example, if I wanted to create /dev/hda and /dev/hda[0-15]
# I could just use the following two table entries:
#   /dev/hda    b       640     0       0       3       0       0       0       -
#   /dev/hda    b       640     0       0       3       1       1       1       15
# 
# Device table entries take the form of:
# <name>    <type>      <mode>  <uid>   <gid>   <major> <minor> <start> <inc>   <count>
# where name is the file name,  type can be one of: 
#       f       A regular file
#       d       Directory
#       c       Character special device file
#       b       Block special device file
#       p       Fifo (named pipe)
# uid is the user id for the target file, gid is the group id for the
# target file.  The rest of the entries (major, minor, etc) apply only 
# to device special files.

# Have fun
# -Erik Andersen <andersen@codepoet.org>
#

#<name>		<type>	<mode>	<uid>	<gid>	<major>	<minor>	<start>	<inc>	<count>
/dev		d	755	0	0	-	-	-	-	-
/dev/pts	d	755	0	0	-	-	-	-	-
/dev/fb		d	755	0	0	-	-	-	-	-
/tmp		d	1777	0	0	-	-	-	-	-
/etc		d	755	0	0	-	-	-	-	-
/disk		d	755	0	0	-	-	-	-	-
/home/default	d	2755	1000	1000	-	-	-	-	-
#<name>					<type>	<mode>	<uid>	<gid>	<major>	<minor>	<start>	<inc>	<count>
/bin/busybox				f	4755	0	0	-	-	-	-	-
/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-down.d			d	755	0	0	-	-	-	-	-
/etc/network/if-post-down.d		d	755	0	0	-	-	-	-	-
/usr/share/udhcpc/default.script	f	755	0	0	-	-	-	-	-
# uncomment this to allow starting x as non-root
#/usr/X11R6/bin/Xfbdev		f	4755	0	0	-	-	-	-	-
# Normal system devices
#<name>		<type>	<mode>	<uid>	<gid>	<major>	<minor>	<start>	<inc>	<count>
/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/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	2
#/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	32	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	-	-	-

# 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

# 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	-

