* [Buildroot] [pull request] Pull request for branch for-2011.05/dev-handling
@ 2011-04-02 16:53 Thomas Petazzoni
2011-04-02 16:53 ` [Buildroot] [PATCH 1/3] Create menu entry to select device creation method Thomas Petazzoni
` (2 more replies)
0 siblings, 3 replies; 13+ messages in thread
From: Thomas Petazzoni @ 2011-04-02 16:53 UTC (permalink / raw)
To: buildroot
The following changes since commit 0a70aa0cc5d0980e72677869d9d87e0e4e35e483:
webkit: bump to version 1.2.7 (2011-03-31 15:23:13 +0200)
are available in the git repository at:
git://git.busybox.net/~tpetazzoni/git/buildroot for-2011.05/dev-handling
Thomas Petazzoni (2):
Simplify udev startup script
Allow several device tables and split in two parts our device table
Yegor Yefremov (1):
Create menu entry to select device creation method
fs/Config.in | 41 +++++++-
fs/common.mk | 14 ++-
linux/linux.mk | 7 ++
package/busybox/S10mdev | 22 ++++
package/busybox/busybox.mk | 15 +++
package/makedevs/README | 35 +++++++
package/udev/S10udev | 34 -------
target/generic/device_table.txt | 186 ++--------------------------------
target/generic/device_table_dev.txt | 142 ++++++++++++++++++++++++++
9 files changed, 276 insertions(+), 220 deletions(-)
create mode 100644 package/busybox/S10mdev
create mode 100644 package/makedevs/README
create mode 100644 target/generic/device_table_dev.txt
Thanks,
--
Thomas Petazzoni
^ permalink raw reply [flat|nested] 13+ messages in thread* [Buildroot] [PATCH 1/3] Create menu entry to select device creation method 2011-04-02 16:53 [Buildroot] [pull request] Pull request for branch for-2011.05/dev-handling Thomas Petazzoni @ 2011-04-02 16:53 ` Thomas Petazzoni 2011-04-02 17:21 ` Yann E. MORIN 2011-04-02 16:53 ` [Buildroot] [PATCH 2/3] Simplify udev startup script Thomas Petazzoni 2011-04-02 16:53 ` [Buildroot] [PATCH 3/3] Allow several device tables and split in two parts our device table Thomas Petazzoni 2 siblings, 1 reply; 13+ messages in thread From: Thomas Petazzoni @ 2011-04-02 16:53 UTC (permalink / raw) To: buildroot From: Yegor Yefremov <yegor_sub1@visionsystems.de> Four methods for the creation of device files in /dev are now proposed: - static method uses device table as before - devtmpfs method enables this feature in kernel - mdev method adds mdev starting script to the file system and selects mdev itself for installation - udev method selects udev for installation All dynamic methods are based on devtmpfs, so one doesn't need to care about /dev folder. Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> --- fs/Config.in | 33 +++++++++++++++++++++++++++------ linux/linux.mk | 7 +++++++ package/busybox/S10mdev | 22 ++++++++++++++++++++++ package/busybox/busybox.mk | 15 +++++++++++++++ 4 files changed, 71 insertions(+), 6 deletions(-) create mode 100644 package/busybox/S10mdev diff --git a/fs/Config.in b/fs/Config.in index 188e815..9ac3acc 100644 --- a/fs/Config.in +++ b/fs/Config.in @@ -15,13 +15,34 @@ config BR2_ROOTFS_POST_BUILD_SCRIPT only argument. Make sure the exit code of that script is 0, otherwise make will stop after calling it. +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" + select BR2_PACKAGE_UDEV + +endchoice + config BR2_ROOTFS_DEVICE_TABLE - string "Path to the device table" - default "target/generic/device_table.txt" - help - Specify the location of a device table, that will be passed - to the makedevs utility to create all the special device - files in the target filesystem. + string "Path to the device table" + depends on BR2_ROOTFS_DEVICE_CREATION_STATIC + default "target/generic/device_table.txt" + help + Specify the location of a device table, that will be passed + to the makedevs utility to create all the special device + files in the target filesystem. choice prompt "Root FS skeleton" diff --git a/linux/linux.mk b/linux/linux.mk index 9076fb9..873a9e0 100644 --- a/linux/linux.mk +++ b/linux/linux.mk @@ -130,6 +130,13 @@ ifeq ($(BR2_TARGET_ROOTFS_INITRAMFS),y) $(call KCONFIG_DISABLE_OPT,CONFIG_INITRAMFS_COMPRESSION_NONE,$(@D)/.config) $(call KCONFIG_ENABLE_OPT,CONFIG_INITRAMFS_COMPRESSION_GZIP,$(@D)/.config) endif +ifneq ($(BR2_ROOTFS_DEVICE_CREATION_STATIC),y) + $(call KCONFIG_ENABLE_OPT,CONFIG_DEVTMPFS,$(@D)/.config) + $(call KCONFIG_ENABLE_OPT,CONFIG_DEVTMPFS_MOUNT,$(@D)/.config) +endif +ifeq ($(BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV),y) + $(call KCONFIG_SET_OPT,CONFIG_UEVENT_HELPER_PATH,\"/sbin/mdev\",$(@D)/.config) +endif $(TARGET_MAKE_ENV) $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(@D) oldconfig $(Q)touch $@ diff --git a/package/busybox/S10mdev b/package/busybox/S10mdev new file mode 100644 index 0000000..472810b --- /dev/null +++ b/package/busybox/S10mdev @@ -0,0 +1,22 @@ +#!/bin/sh +# +# Start mdev.... +# + +case "$1" in + start) + echo "Starting mdev..." + /sbin/mdev -s + ;; + stop) + ;; + restart|reload) + ;; + *) + echo $"Usage: $0 {start|stop|restart}" + exit 1 +esac + +exit $? + + diff --git a/package/busybox/busybox.mk b/package/busybox/busybox.mk index ffd6667..711d11b 100644 --- a/package/busybox/busybox.mk +++ b/package/busybox/busybox.mk @@ -28,6 +28,19 @@ ifndef BUSYBOX_CONFIG_FILE BUSYBOX_CONFIG_FILE = $(call qstrip,$(BR2_PACKAGE_BUSYBOX_CONFIG)) endif +# If mdev will be used for device creation enable it and copy S10mdev to /etc/init.d +ifeq ($(BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV),y) +define BUSYBOX_INSTALL_MDEV_SCRIPT + install -m 0755 package/busybox/S10mdev $(TARGET_DIR)/etc/init.d +endef +define BUSYBOX_SET_MDEV + $(call KCONFIG_ENABLE_OPT,CONFIG_MDEV,$(BUSYBOX_BUILD_CONFIG)) + $(call KCONFIG_ENABLE_OPT,CONFIG_FEATURE_MDEV_CONF,$(BUSYBOX_BUILD_CONFIG)) + $(call KCONFIG_ENABLE_OPT,CONFIG_FEATURE_MDEV_EXEC,$(BUSYBOX_BUILD_CONFIG)) + $(call KCONFIG_ENABLE_OPT,CONFIG_FEATURE_MDEV_LOAD_FIRMWARE,$(BUSYBOX_BUILD_CONFIG)) +endef +endif + # If we have external syslogd, force busybox to use it ifeq ($(BR2_PACKAGE_SYSKLOGD),y) define BUSYBOX_SET_SYSKLOGD @@ -122,6 +135,7 @@ define BUSYBOX_CONFIGURE_CMDS $(BUSYBOX_SET_IPV6) $(BUSYBOX_SET_RPC) $(BUSYBOX_PREFER_STATIC) + $(BUSYBOX_SET_MDEV) $(BUSYBOX_NETKITBASE) $(BUSYBOX_NETKITTELNET) @yes "" | $(MAKE) ARCH=$(KERNEL_ARCH) CROSS_COMPILE="$(TARGET_CROSS)" \ @@ -138,6 +152,7 @@ define BUSYBOX_INSTALL_TARGET_CMDS $(INSTALL) -m 0755 -D package/busybox/udhcpc.script \ $(TARGET_DIR)/usr/share/udhcpc/default.script; \ fi + $(BUSYBOX_INSTALL_MDEV_SCRIPT) endef define BUSYBOX_UNINSTALL_TARGET_CMDS -- 1.7.1 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* [Buildroot] [PATCH 1/3] Create menu entry to select device creation method 2011-04-02 16:53 ` [Buildroot] [PATCH 1/3] Create menu entry to select device creation method Thomas Petazzoni @ 2011-04-02 17:21 ` Yann E. MORIN 2011-04-03 10:18 ` Thomas Petazzoni 0 siblings, 1 reply; 13+ messages in thread From: Yann E. MORIN @ 2011-04-02 17:21 UTC (permalink / raw) To: buildroot On Saturday 02 April 2011 18:53:32 Thomas Petazzoni wrote: > From: Yegor Yefremov <yegor_sub1@visionsystems.de> > > Four methods for the creation of device files in /dev are now > proposed: > > - static method uses device table as before > - devtmpfs method enables this feature in kernel > - mdev method adds mdev starting script to the file system > and selects mdev itself for installation > - udev method selects udev for installation > > All dynamic methods are based on devtmpfs, so one doesn't need to care > about /dev folder. > > Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com> > Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> > --- > fs/Config.in | 33 +++++++++++++++++++++++++++------ > linux/linux.mk | 7 +++++++ > package/busybox/S10mdev | 22 ++++++++++++++++++++++ > package/busybox/busybox.mk | 15 +++++++++++++++ > 4 files changed, 71 insertions(+), 6 deletions(-) > create mode 100644 package/busybox/S10mdev > > diff --git a/fs/Config.in b/fs/Config.in > index 188e815..9ac3acc 100644 > --- a/fs/Config.in > +++ b/fs/Config.in > @@ -15,13 +15,34 @@ config BR2_ROOTFS_POST_BUILD_SCRIPT > only argument. Make sure the exit code of that script is 0, > otherwise make will stop after calling it. > > +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" > + select BR2_PACKAGE_UDEV > + > +endchoice > + > config BR2_ROOTFS_DEVICE_TABLE > - string "Path to the device table" > - default "target/generic/device_table.txt" > - help > - Specify the location of a device table, that will be passed > - to the makedevs utility to create all the special device > - files in the target filesystem. > + string "Path to the device table" > + depends on BR2_ROOTFS_DEVICE_CREATION_STATIC > + default "target/generic/device_table.txt" > + help > + Specify the location of a device table, that will be passed > + to the makedevs utility to create all the special device > + files in the target filesystem. > > choice > prompt "Root FS skeleton" > diff --git a/linux/linux.mk b/linux/linux.mk > index 9076fb9..873a9e0 100644 > --- a/linux/linux.mk > +++ b/linux/linux.mk > @@ -130,6 +130,13 @@ ifeq ($(BR2_TARGET_ROOTFS_INITRAMFS),y) > $(call KCONFIG_DISABLE_OPT,CONFIG_INITRAMFS_COMPRESSION_NONE,$(@D)/.config) > $(call KCONFIG_ENABLE_OPT,CONFIG_INITRAMFS_COMPRESSION_GZIP,$(@D)/.config) > endif > +ifneq ($(BR2_ROOTFS_DEVICE_CREATION_STATIC),y) ^^^^^^ > + $(call KCONFIG_ENABLE_OPT,CONFIG_DEVTMPFS,$(@D)/.config) > + $(call KCONFIG_ENABLE_OPT,CONFIG_DEVTMPFS_MOUNT,$(@D)/.config) > +endif This should be BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_DEVTMPFS, no? > +ifeq ($(BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV),y) > + $(call KCONFIG_SET_OPT,CONFIG_UEVENT_HELPER_PATH,\"/sbin/mdev\",$(@D)/.config) > +endif As I suggest below, I'd move that into the startup script. > $(TARGET_MAKE_ENV) $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(@D) oldconfig > $(Q)touch $@ > > diff --git a/package/busybox/S10mdev b/package/busybox/S10mdev > new file mode 100644 > index 0000000..472810b > --- /dev/null > +++ b/package/busybox/S10mdev > @@ -0,0 +1,22 @@ > +#!/bin/sh > +# > +# Start mdev.... > +# > + > +case "$1" in > + start) > + echo "Starting mdev..." > + /sbin/mdev -s From busybox/docs/mdev.txt: Here's a typical code snippet from the init script: [0] mount -t proc proc /proc [1] mount -t sysfs sysfs /sys [2] echo /sbin/mdev > /proc/sys/kernel/hotplug [3] mdev -s I see that [2] is done in the kernel's .config. I find it non-obvious, and I would move that to the script above. It makes it easier to follow. Also, I did not see where /dev is mounted (as a tmpfs). If / is a RO file system, then you can't use dynamic nodes, or you need a RW file system on /dev. > + ;; > + stop) For completeness: echo "/bin/true" > /proc/sys/kernel/hotplug killall mdev sleep 2 # Leave it some time to proerly quit (adjust delay) killall -9 mdev > + ;; > + restart|reload) stop + start, maybe? > + ;; > + *) > + echo $"Usage: $0 {start|stop|restart}" > + exit 1 > +esac > + > +exit $? > + > + > diff --git a/package/busybox/busybox.mk b/package/busybox/busybox.mk > index ffd6667..711d11b 100644 > --- a/package/busybox/busybox.mk > +++ b/package/busybox/busybox.mk > @@ -28,6 +28,19 @@ ifndef BUSYBOX_CONFIG_FILE > BUSYBOX_CONFIG_FILE = $(call qstrip,$(BR2_PACKAGE_BUSYBOX_CONFIG)) > endif > > +# If mdev will be used for device creation enable it and copy S10mdev to /etc/init.d > +ifeq ($(BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV),y) > +define BUSYBOX_INSTALL_MDEV_SCRIPT > + install -m 0755 package/busybox/S10mdev $(TARGET_DIR)/etc/init.d > +endef > +define BUSYBOX_SET_MDEV > + $(call KCONFIG_ENABLE_OPT,CONFIG_MDEV,$(BUSYBOX_BUILD_CONFIG)) > + $(call KCONFIG_ENABLE_OPT,CONFIG_FEATURE_MDEV_CONF,$(BUSYBOX_BUILD_CONFIG)) > + $(call KCONFIG_ENABLE_OPT,CONFIG_FEATURE_MDEV_EXEC,$(BUSYBOX_BUILD_CONFIG)) > + $(call KCONFIG_ENABLE_OPT,CONFIG_FEATURE_MDEV_LOAD_FIRMWARE,$(BUSYBOX_BUILD_CONFIG)) > +endef > +endif > + > # If we have external syslogd, force busybox to use it > ifeq ($(BR2_PACKAGE_SYSKLOGD),y) > define BUSYBOX_SET_SYSKLOGD > @@ -122,6 +135,7 @@ define BUSYBOX_CONFIGURE_CMDS > $(BUSYBOX_SET_IPV6) > $(BUSYBOX_SET_RPC) > $(BUSYBOX_PREFER_STATIC) > + $(BUSYBOX_SET_MDEV) > $(BUSYBOX_NETKITBASE) > $(BUSYBOX_NETKITTELNET) > @yes "" | $(MAKE) ARCH=$(KERNEL_ARCH) CROSS_COMPILE="$(TARGET_CROSS)" \ > @@ -138,6 +152,7 @@ define BUSYBOX_INSTALL_TARGET_CMDS > $(INSTALL) -m 0755 -D package/busybox/udhcpc.script \ > $(TARGET_DIR)/usr/share/udhcpc/default.script; \ > fi > + $(BUSYBOX_INSTALL_MDEV_SCRIPT) > endef > > define BUSYBOX_UNINSTALL_TARGET_CMDS -- .-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------' ^ permalink raw reply [flat|nested] 13+ messages in thread
* [Buildroot] [PATCH 1/3] Create menu entry to select device creation method 2011-04-02 17:21 ` Yann E. MORIN @ 2011-04-03 10:18 ` Thomas Petazzoni 2011-04-03 18:05 ` Yann E. MORIN 0 siblings, 1 reply; 13+ messages in thread From: Thomas Petazzoni @ 2011-04-03 10:18 UTC (permalink / raw) To: buildroot Hello, On Sat, 2 Apr 2011 19:21:50 +0200 "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> wrote: > > +ifneq ($(BR2_ROOTFS_DEVICE_CREATION_STATIC),y) > ^^^^^^ > > + $(call KCONFIG_ENABLE_OPT,CONFIG_DEVTMPFS,$(@D)/.config) > > + $(call KCONFIG_ENABLE_OPT,CONFIG_DEVTMPFS_MOUNT,$(@D)/.config) > > +endif > > This should be BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_DEVTMPFS, no? This is what I originally implemented, but I was told that using devtmpfs was easier even in the udev/mdev cases for the early boot part (i.e before udev/mdev are working). See http://lists.busybox.net/pipermail/buildroot/2010-December/039886.html for Peter's comment on the matter. > > +ifeq ($(BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV),y) > > + $(call KCONFIG_SET_OPT,CONFIG_UEVENT_HELPER_PATH,\"/sbin/mdev\",$(@D)/.config) > > +endif > > As I suggest below, I'd move that into the startup script. Hmm, why not. > > $(TARGET_MAKE_ENV) $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(@D) oldconfig > > $(Q)touch $@ > > > > diff --git a/package/busybox/S10mdev b/package/busybox/S10mdev > > new file mode 100644 > > index 0000000..472810b > > --- /dev/null > > +++ b/package/busybox/S10mdev > > @@ -0,0 +1,22 @@ > > +#!/bin/sh > > +# > > +# Start mdev.... > > +# > > + > > +case "$1" in > > + start) > > + echo "Starting mdev..." > > + /sbin/mdev -s > > >From busybox/docs/mdev.txt: > > Here's a typical code snippet from the init script: > [0] mount -t proc proc /proc > [1] mount -t sysfs sysfs /sys > [2] echo /sbin/mdev > /proc/sys/kernel/hotplug > [3] mdev -s > > I see that [2] is done in the kernel's .config. I find it non-obvious, > and I would move that to the script above. It makes it easier to > follow. I guess that's a matter of taste. I have no strong opinion here. > Also, I did not see where /dev is mounted (as a tmpfs). If / is a RO file > system, then you can't use dynamic nodes, or you need a RW file system on > /dev. /dev is a devtmpfs filesystem, thanks to the kernel options that you highlighted above, and it is mounted automatically by the kernel thanks to the CONFIG_DEVTMPFS_MOUNT option. > > + ;; > > + stop) > > For completeness: > echo "/bin/true" > /proc/sys/kernel/hotplug > killall mdev > sleep 2 # Leave it some time to proerly quit (adjust delay) > killall -9 mdev mdev is not a daemon (contrary to udev), so there's no point in killing it. It's a utility that the kernel runs where there are events to handle. So I don't think there's a lot of point in having the stop), restart) and reload) commands for mdev. Regards, Thomas -- Thomas Petazzoni, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com ^ permalink raw reply [flat|nested] 13+ messages in thread
* [Buildroot] [PATCH 1/3] Create menu entry to select device creation method 2011-04-03 10:18 ` Thomas Petazzoni @ 2011-04-03 18:05 ` Yann E. MORIN 2011-04-03 18:07 ` Yann E. MORIN 0 siblings, 1 reply; 13+ messages in thread From: Yann E. MORIN @ 2011-04-03 18:05 UTC (permalink / raw) To: buildroot Thomas, All, On Sunday 03 April 2011 12:18:29 Thomas Petazzoni wrote: > On Sat, 2 Apr 2011 19:21:50 +0200 > "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> wrote: > > > > +ifneq ($(BR2_ROOTFS_DEVICE_CREATION_STATIC),y) > > ^^^^^^ Oh, that's an 'ifneq', not an 'ifeq'. Sorry for the noise... > > > + $(call KCONFIG_ENABLE_OPT,CONFIG_DEVTMPFS,$(@D)/.config) > > > + $(call KCONFIG_ENABLE_OPT,CONFIG_DEVTMPFS_MOUNT,$(@D)/.config) > > > +endif > > > > This should be BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_DEVTMPFS, no? > > This is what I originally implemented, but I was told that using > devtmpfs was easier even in the udev/mdev cases for the early boot part > (i.e before udev/mdev are working). So, unless I am totally mistaken, if one chooses devtmpfs with BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_DEVTMPFS, then devtmpfs is not forced in the kernel's .config. So even if the user asks for a static /dev, he nonetheless gets a devtmpfs. So what's the point of having both options in BR? The only difference is that, when _STATIC is selected, the user is offered a choice to specify a device_table, and not when _DEVTMPFS is selected. What I really find confusing is the config prompts do not actually match the behavior. If I select 'static', I expect to get static, not dynamic (even if only the kernel is involved). > > > +case "$1" in > > > + start) > > > + echo "Starting mdev..." > > > + /sbin/mdev -s > > > > >From busybox/docs/mdev.txt: > > > > Here's a typical code snippet from the init script: > > [0] mount -t proc proc /proc > > [1] mount -t sysfs sysfs /sys > > [2] echo /sbin/mdev > /proc/sys/kernel/hotplug > > [3] mdev -s > > > > I see that [2] is done in the kernel's .config. I find it non-obvious, > > and I would move that to the script above. It makes it easier to > > follow. > > I guess that's a matter of taste. I have no strong opinion here. At least, add a comment (in S10mdev, or in the config help) stating where the setup is done. I have no strong opinion either, it just took me a while to understand what was going on. And I find it more explicit to get related stuff grouped together when possible. > > Also, I did not see where /dev is mounted (as a tmpfs). If / is a RO file > > system, then you can't use dynamic nodes, or you need a RW file system on > > /dev. > > /dev is a devtmpfs filesystem, thanks to the kernel options that you > highlighted above, and it is mounted automatically by the kernel thanks > to the CONFIG_DEVTMPFS_MOUNT option. Right. I missed the ifneq, above... > > > + ;; > > > + stop) > > > > For completeness: > > echo "/bin/true" > /proc/sys/kernel/hotplug > > killall mdev > > sleep 2 # Leave it some time to proerly quit (adjust delay) > > killall -9 mdev > > mdev is not a daemon (contrary to udev), so there's no point in killing > it. It's a utility that the kernel runs where there are events to > handle. Yeah, right. 'mdev -s' is here to handle coldplug events. My bad. > So I don't think there's a lot of point in having the stop), restart) > and reload) commands for mdev. Forget my silly comment. So: Reviewed by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> Regards, Yann E. MORIN. -- .-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------' ^ permalink raw reply [flat|nested] 13+ messages in thread
* [Buildroot] [PATCH 1/3] Create menu entry to select device creation method 2011-04-03 18:05 ` Yann E. MORIN @ 2011-04-03 18:07 ` Yann E. MORIN 0 siblings, 0 replies; 13+ messages in thread From: Yann E. MORIN @ 2011-04-03 18:07 UTC (permalink / raw) To: buildroot Thomas, All, On Sunday 03 April 2011 20:05:00 Yann E. MORIN wrote: > So, unless I am totally mistaken, if one chooses devtmpfs with > BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_DEVTMPFS, then devtmpfs is not forced > in the kernel's .config. > > So even if the user asks for a static /dev, he nonetheless gets a devtmpfs. > So what's the point of having both options in BR? > > The only difference is that, when _STATIC is selected, the user is offered > a choice to specify a device_table, and not when _DEVTMPFS is selected. > > What I really find confusing is the config prompts do not actually match > the behavior. If I select 'static', I expect to get static, not dynamic > (even if only the kernel is involved). And forget the above, I forgot to delete it when I saw the 'ifneq' stuff. Regards, Yann E. MORIN. -- .-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------' ^ permalink raw reply [flat|nested] 13+ messages in thread
* [Buildroot] [PATCH 2/3] Simplify udev startup script 2011-04-02 16:53 [Buildroot] [pull request] Pull request for branch for-2011.05/dev-handling Thomas Petazzoni 2011-04-02 16:53 ` [Buildroot] [PATCH 1/3] Create menu entry to select device creation method Thomas Petazzoni @ 2011-04-02 16:53 ` Thomas Petazzoni 2011-04-02 16:53 ` [Buildroot] [PATCH 3/3] Allow several device tables and split in two parts our device table Thomas Petazzoni 2 siblings, 0 replies; 13+ messages in thread From: Thomas Petazzoni @ 2011-04-02 16:53 UTC (permalink / raw) To: buildroot The S10udev startup script did useless things such as mounting sysfs, mounting a tmpfs filesystem in /dev/, etc. Those things are already done during in the default inittab. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> --- package/udev/S10udev | 34 ---------------------------------- 1 files changed, 0 insertions(+), 34 deletions(-) diff --git a/package/udev/S10udev b/package/udev/S10udev index 6418f63..0d2a23a 100755 --- a/package/udev/S10udev +++ b/package/udev/S10udev @@ -16,12 +16,6 @@ # /dev/zero, /dev/null -- that's needed to boot and run this script. # -# old kernels don't use udev -case $(uname -r) in - 2.6*|2.7*) ;; - *) exit 0;; -esac - # Check for missing binaries UDEV_BIN=/sbin/udevd test -x $UDEV_BIN || exit 5 @@ -33,41 +27,13 @@ UDEV_CONFIG=/etc/udev/udev.conf test -r $UDEV_CONFIG || exit 6 . $UDEV_CONFIG -# Directory where sysfs is mounted -SYSFS_DIR=/sys - case "$1" in start) - # mount sysfs if it's not yet mounted - if [ ! -d $SYSFS_DIR ]; then - echo "${0}: SYSFS_DIR \"$SYSFS_DIR\" not found" - exit 1 - fi - grep -q "^sysfs $SYSFS_DIR" /proc/mounts || - mount -t sysfs /sys /sys || - exit 1 - - # mount $udev_root as ramfs if it's not yet mounted - # we know 2.6 kernels always support ramfs - if [ ! -d $udev_root ]; then - echo "${0}: udev_root \"$udev_root\" not found" - exit 1 - fi - grep -q "^udev $udev_root" /proc/mounts || - mount -t ramfs udev $udev_root || - exit 1 - - mkdir $udev_root/pts $udev_root/shm mknod -m 0666 /dev/null c 1 3 - mknod -m 0666 /dev/zero c 1 5 - mknod -m 0600 /dev/console c 5 1 - - # populate /dev (normally) echo -n "Populating $udev_root using udev: " echo -e '\000\000\000\000' > /proc/sys/kernel/hotplug $UDEV_BIN -d || (echo "FAIL" && exit 1) $UDEVSTART_BIN || (echo "FAIL" && exit 1) - mount -t devpts /dev/pts /dev/pts || (echo "FAIL" && exit 1) echo "done" ;; stop) -- 1.7.1 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* [Buildroot] [PATCH 3/3] Allow several device tables and split in two parts our device table 2011-04-02 16:53 [Buildroot] [pull request] Pull request for branch for-2011.05/dev-handling Thomas Petazzoni 2011-04-02 16:53 ` [Buildroot] [PATCH 1/3] Create menu entry to select device creation method Thomas Petazzoni 2011-04-02 16:53 ` [Buildroot] [PATCH 2/3] Simplify udev startup script Thomas Petazzoni @ 2011-04-02 16:53 ` Thomas Petazzoni 2011-04-02 17:31 ` Yann E. MORIN 2011-04-03 18:22 ` Thomas De Schampheleire 2 siblings, 2 replies; 13+ messages in thread From: Thomas Petazzoni @ 2011-04-02 16:53 UTC (permalink / raw) To: buildroot This allows to have a device table for all directories/files and another device table for the device files themselves. Both are needed for static /dev, but only the first one is needed when devtmpfs/mdev/udev are used. We take this opportunity to move the documentation of the device table format in a common location, package/makedevs/README. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> --- fs/Config.in | 20 +++- fs/common.mk | 14 ++- package/makedevs/README | 35 +++++++ target/generic/device_table.txt | 186 ++-------------------------------- target/generic/device_table_dev.txt | 142 ++++++++++++++++++++++++++ 5 files changed, 211 insertions(+), 186 deletions(-) create mode 100644 package/makedevs/README create mode 100644 target/generic/device_table_dev.txt diff --git a/fs/Config.in b/fs/Config.in index 9ac3acc..636e316 100644 --- a/fs/Config.in +++ b/fs/Config.in @@ -36,13 +36,21 @@ config BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_UDEV endchoice config BR2_ROOTFS_DEVICE_TABLE - string "Path to the device table" - depends on BR2_ROOTFS_DEVICE_CREATION_STATIC - default "target/generic/device_table.txt" + string "Path to the device tables" + default "target/generic/device_table.txt target/generic/device_table_dev.txt" \ + if BR2_ROOTFS_DEVICE_CREATION_STATIC + default "target/generic/device_table.txt" \ + if (BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV || \ + BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_UDEV || \ + BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_DEVTMPFS) help - Specify the location of a device table, that will be passed - to the makedevs utility to create all the special device - files in the target filesystem. + Specify a space-separated list of device table locations, + that will be passed to the makedevs utility to create all + the special device files and 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. choice prompt "Root FS skeleton" diff --git a/fs/common.mk b/fs/common.mk index 92be00c..f105af2 100644 --- a/fs/common.mk +++ b/fs/common.mk @@ -32,7 +32,8 @@ # macro will automatically generate a compressed filesystem image. FAKEROOT_SCRIPT = $(BUILD_DIR)/_fakeroot.fs -ROOTFS_DEVICE_TABLE = $(call qstrip,$(BR2_ROOTFS_DEVICE_TABLE)) +FULL_DEVICE_TABLE = $(BUILD_DIR)/_device_table.txt +ROOTFS_DEVICE_TABLES = $(call qstrip,$(BR2_ROOTFS_DEVICE_TABLE)) define ROOTFS_TARGET_INTERNAL @@ -42,17 +43,20 @@ $(eval ROOTFS_$(2)_DEPENDENCIES += host-fakeroot host-makedevs $(if $(BR2_TARGET $(BINARIES_DIR)/rootfs.$(1): $(ROOTFS_$(2)_DEPENDENCIES) @$(call MESSAGE,"Generating root filesystem image rootfs.$(1)") $(foreach hook,$(ROOTFS_$(2)_PRE_GEN_HOOKS),$(call $(hook))$(sep)) - rm -f $(FAKEROOT_SCRIPT) + rm -f $(FAKEROOT_SCRIPT) $(FULL_DEVICE_TABLE) touch $(BUILD_DIR)/.fakeroot.00000 cat $(BUILD_DIR)/.fakeroot* > $(FAKEROOT_SCRIPT) echo "chown -R 0:0 $(TARGET_DIR)" >> $(FAKEROOT_SCRIPT) -ifneq ($(ROOTFS_DEVICE_TABLE),) - echo "$(HOST_DIR)/usr/bin/makedevs -d $(ROOTFS_DEVICE_TABLE) $(TARGET_DIR)" >> $(FAKEROOT_SCRIPT) +ifneq ($(ROOTFS_DEVICE_TABLES),) + for devtable in $(ROOTFS_DEVICE_TABLES) ; do \ + cat $$$${devtable} >> $(FULL_DEVICE_TABLE) ; \ + done + echo "$(HOST_DIR)/usr/bin/makedevs -d $(FULL_DEVICE_TABLE) $(TARGET_DIR)" >> $(FAKEROOT_SCRIPT) endif echo "$(ROOTFS_$(2)_CMD)" >> $(FAKEROOT_SCRIPT) chmod a+x $(FAKEROOT_SCRIPT) $(HOST_DIR)/usr/bin/fakeroot -- $(FAKEROOT_SCRIPT) - - at rm -f $(FAKEROOT_SCRIPT) + - at rm -f $(FAKEROOT_SCRIPT) $(FULL_DEVICE_TABLE) $(foreach hook,$(ROOTFS_$(2)_POST_GEN_HOOKS),$(call $(hook))$(sep)) ifeq ($$(BR2_TARGET_ROOTFS_$(2)_GZIP),y) gzip -9 -c $$@ > $$@.gz diff --git a/package/makedevs/README b/package/makedevs/README new file mode 100644 index 0000000..6c54052 --- /dev/null +++ b/package/makedevs/README @@ -0,0 +1,35 @@ +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". + +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. diff --git a/target/generic/device_table.txt b/target/generic/device_table.txt index 15132f9..12f35b2 100644 --- a/target/generic/device_table.txt +++ b/target/generic/device_table.txt @@ -1,44 +1,15 @@ -# 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". +# See package/makedevs/README for details # -# 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> +# 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 - - - - - -/dev/pts d 755 0 0 - - - - - -/dev/shm d 755 0 0 - - - - - -/tmp d 1777 0 0 - - - - - -/etc d 755 0 0 - - - - - -/home/default d 2755 1000 1000 - - - - - -#<name> <type> <mode> <uid> <gid> <major> <minor> <start> <inc> <count> +# <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 - - - - - /bin/busybox f 4755 0 0 - - - - - /etc/shadow f 600 0 0 - - - - - /etc/passwd f 644 0 0 - - - - - @@ -48,139 +19,4 @@ /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 -/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/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 +#/usr/X11R6/bin/Xfbdev f 4755 0 0 - - - - - diff --git a/target/generic/device_table_dev.txt b/target/generic/device_table_dev.txt new file mode 100644 index 0000000..0890a47 --- /dev/null +++ b/target/generic/device_table_dev.txt @@ -0,0 +1,142 @@ +# 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/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 -- 1.7.1 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* [Buildroot] [PATCH 3/3] Allow several device tables and split in two parts our device table 2011-04-02 16:53 ` [Buildroot] [PATCH 3/3] Allow several device tables and split in two parts our device table Thomas Petazzoni @ 2011-04-02 17:31 ` Yann E. MORIN 2011-04-03 18:22 ` Thomas De Schampheleire 1 sibling, 0 replies; 13+ messages in thread From: Yann E. MORIN @ 2011-04-02 17:31 UTC (permalink / raw) To: buildroot Thomas, All, On Saturday 02 April 2011 18:53:34 Thomas Petazzoni wrote: > This allows to have a device table for all directories/files and > another device table for the device files themselves. Both are needed > for static /dev, but only the first one is needed when > devtmpfs/mdev/udev are used. > > We take this opportunity to move the documentation of the device table > format in a common location, package/makedevs/README. > > Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> > --- > fs/Config.in | 20 +++- > fs/common.mk | 14 ++- > package/makedevs/README | 35 +++++++ > target/generic/device_table.txt | 186 ++-------------------------------- > target/generic/device_table_dev.txt | 142 ++++++++++++++++++++++++++ > 5 files changed, 211 insertions(+), 186 deletions(-) > create mode 100644 package/makedevs/README > create mode 100644 target/generic/device_table_dev.txt > > diff --git a/fs/Config.in b/fs/Config.in > index 9ac3acc..636e316 100644 > --- a/fs/Config.in > +++ b/fs/Config.in > @@ -36,13 +36,21 @@ config BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_UDEV > endchoice > > config BR2_ROOTFS_DEVICE_TABLE > - string "Path to the device table" > - depends on BR2_ROOTFS_DEVICE_CREATION_STATIC > - default "target/generic/device_table.txt" > + string "Path to the device tables" > + default "target/generic/device_table.txt target/generic/device_table_dev.txt" \ > + if BR2_ROOTFS_DEVICE_CREATION_STATIC The 'device_table.txt' file name is misleading. Maybe rename to something like: permision_table.txt So you get device_table.txt for creating devices, and permission_table.txt for setting permission. Yeah, I know, it's the same tool, it's the same format, it's the historical name. So, keep the historical name for devices, as the name implies, and introduce the new names just for permissions. Bonus: it avoids the huge diff below! ;-) > + default "target/generic/device_table.txt" \ > + if (BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV || \ > + BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_UDEV || \ > + BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_DEVTMPFS) > help > - Specify the location of a device table, that will be passed > - to the makedevs utility to create all the special device > - files in the target filesystem. > + Specify a space-separated list of device table locations, > + that will be passed to the makedevs utility to create all > + the special device files and 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. > > choice > prompt "Root FS skeleton" > diff --git a/fs/common.mk b/fs/common.mk > index 92be00c..f105af2 100644 > --- a/fs/common.mk > +++ b/fs/common.mk > @@ -32,7 +32,8 @@ > # macro will automatically generate a compressed filesystem image. > > FAKEROOT_SCRIPT = $(BUILD_DIR)/_fakeroot.fs > -ROOTFS_DEVICE_TABLE = $(call qstrip,$(BR2_ROOTFS_DEVICE_TABLE)) > +FULL_DEVICE_TABLE = $(BUILD_DIR)/_device_table.txt > +ROOTFS_DEVICE_TABLES = $(call qstrip,$(BR2_ROOTFS_DEVICE_TABLE)) > > define ROOTFS_TARGET_INTERNAL > > @@ -42,17 +43,20 @@ $(eval ROOTFS_$(2)_DEPENDENCIES += host-fakeroot host-makedevs $(if $(BR2_TARGET > $(BINARIES_DIR)/rootfs.$(1): $(ROOTFS_$(2)_DEPENDENCIES) > @$(call MESSAGE,"Generating root filesystem image rootfs.$(1)") > $(foreach hook,$(ROOTFS_$(2)_PRE_GEN_HOOKS),$(call $(hook))$(sep)) > - rm -f $(FAKEROOT_SCRIPT) > + rm -f $(FAKEROOT_SCRIPT) $(FULL_DEVICE_TABLE) > touch $(BUILD_DIR)/.fakeroot.00000 > cat $(BUILD_DIR)/.fakeroot* > $(FAKEROOT_SCRIPT) > echo "chown -R 0:0 $(TARGET_DIR)" >> $(FAKEROOT_SCRIPT) > -ifneq ($(ROOTFS_DEVICE_TABLE),) > - echo "$(HOST_DIR)/usr/bin/makedevs -d $(ROOTFS_DEVICE_TABLE) $(TARGET_DIR)" >> $(FAKEROOT_SCRIPT) > +ifneq ($(ROOTFS_DEVICE_TABLES),) > + for devtable in $(ROOTFS_DEVICE_TABLES) ; do \ > + cat $$$${devtable} >> $(FULL_DEVICE_TABLE) ; \ > + done > + echo "$(HOST_DIR)/usr/bin/makedevs -d $(FULL_DEVICE_TABLE) $(TARGET_DIR)" >> $(FAKEROOT_SCRIPT) > endif > echo "$(ROOTFS_$(2)_CMD)" >> $(FAKEROOT_SCRIPT) > chmod a+x $(FAKEROOT_SCRIPT) > $(HOST_DIR)/usr/bin/fakeroot -- $(FAKEROOT_SCRIPT) > - - at rm -f $(FAKEROOT_SCRIPT) > + - at rm -f $(FAKEROOT_SCRIPT) $(FULL_DEVICE_TABLE) > $(foreach hook,$(ROOTFS_$(2)_POST_GEN_HOOKS),$(call $(hook))$(sep)) > ifeq ($$(BR2_TARGET_ROOTFS_$(2)_GZIP),y) > gzip -9 -c $$@ > $$@.gz > diff --git a/package/makedevs/README b/package/makedevs/README > new file mode 100644 > index 0000000..6c54052 > --- /dev/null > +++ b/package/makedevs/README > @@ -0,0 +1,35 @@ > +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". > + > +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. > diff --git a/target/generic/device_table.txt b/target/generic/device_table.txt > index 15132f9..12f35b2 100644 > --- a/target/generic/device_table.txt > +++ b/target/generic/device_table.txt > @@ -1,44 +1,15 @@ > -# 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". > +# See package/makedevs/README for details > # > -# 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> > +# 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 - - - - - > -/dev/pts d 755 0 0 - - - - - > -/dev/shm d 755 0 0 - - - - - > -/tmp d 1777 0 0 - - - - - > -/etc d 755 0 0 - - - - - > -/home/default d 2755 1000 1000 - - - - - > -#<name> <type> <mode> <uid> <gid> <major> <minor> <start> <inc> <count> > +# <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 - - - - - > /bin/busybox f 4755 0 0 - - - - - > /etc/shadow f 600 0 0 - - - - - > /etc/passwd f 644 0 0 - - - - - > @@ -48,139 +19,4 @@ > /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 > -/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/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 > +#/usr/X11R6/bin/Xfbdev f 4755 0 0 - - - - - > diff --git a/target/generic/device_table_dev.txt b/target/generic/device_table_dev.txt > new file mode 100644 > index 0000000..0890a47 > --- /dev/null > +++ b/target/generic/device_table_dev.txt > @@ -0,0 +1,142 @@ > +# 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/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 -- .-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------' ^ permalink raw reply [flat|nested] 13+ messages in thread
* [Buildroot] [PATCH 3/3] Allow several device tables and split in two parts our device table 2011-04-02 16:53 ` [Buildroot] [PATCH 3/3] Allow several device tables and split in two parts our device table Thomas Petazzoni 2011-04-02 17:31 ` Yann E. MORIN @ 2011-04-03 18:22 ` Thomas De Schampheleire 1 sibling, 0 replies; 13+ messages in thread From: Thomas De Schampheleire @ 2011-04-03 18:22 UTC (permalink / raw) To: buildroot On Sat, Apr 2, 2011 at 6:53 PM, Thomas Petazzoni <thomas.petazzoni@free-electrons.com> wrote: > This allows to have a device table for all directories/files and > another device table for the device files themselves. Both are needed > for static /dev, but only the first one is needed when > devtmpfs/mdev/udev are used. > > We take this opportunity to move the documentation of the device table > format in a common location, package/makedevs/README. > > Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> > --- > ?fs/Config.in ? ? ? ? ? ? ? ? ? ? ? ?| ? 20 +++- > ?fs/common.mk ? ? ? ? ? ? ? ? ? ? ? ?| ? 14 ++- > ?package/makedevs/README ? ? ? ? ? ? | ? 35 +++++++ The source file makedevs.c also contains some documentation, with more examples. I think it would be best to keep just one: either the README file (expanded with the documentation in the sources), or the source documentation. Best regards, Thomas > ?target/generic/device_table.txt ? ? | ?186 ++-------------------------------- > ?target/generic/device_table_dev.txt | ?142 ++++++++++++++++++++++++++ > ?5 files changed, 211 insertions(+), 186 deletions(-) > ?create mode 100644 package/makedevs/README > ?create mode 100644 target/generic/device_table_dev.txt > ^ permalink raw reply [flat|nested] 13+ messages in thread
* [Buildroot] [pull request] Pull request for branch for-2011.05/dev-handling
@ 2011-03-07 21:21 Thomas Petazzoni
2011-03-19 10:00 ` Thomas Petazzoni
2011-05-10 21:50 ` Peter Korsgaard
0 siblings, 2 replies; 13+ messages in thread
From: Thomas Petazzoni @ 2011-03-07 21:21 UTC (permalink / raw)
To: buildroot
The following changes since commit 0a064b48c9d1044b05aee65272f5af7f28879473:
Gustavo Zacarias (1):
gst-ffmpeg: bump to version 0.10.11
are available in the git repository at:
git://git.busybox.net/~tpetazzoni/git/buildroot for-2011.05/dev-handling
Thomas Petazzoni (2):
Simplify udev startup script
Allow several device tables and split in two parts our device table
Yegor Yefremov (1):
Create menu entry to select device creation method
fs/Config.in | 41 +++++++-
fs/common.mk | 14 ++-
linux/linux.mk | 7 ++
package/busybox/S10mdev | 22 ++++
package/busybox/busybox.mk | 15 +++
package/makedevs/README | 35 +++++++
package/udev/S10udev | 34 -------
target/generic/device_table.txt | 186 ++--------------------------------
target/generic/device_table_dev.txt | 142 ++++++++++++++++++++++++++
9 files changed, 276 insertions(+), 220 deletions(-)
create mode 100644 package/busybox/S10mdev
create mode 100644 package/makedevs/README
create mode 100644 target/generic/device_table_dev.txt
Thanks,
--
Thomas Petazzoni
^ permalink raw reply [flat|nested] 13+ messages in thread* [Buildroot] [pull request] Pull request for branch for-2011.05/dev-handling 2011-03-07 21:21 [Buildroot] [pull request] Pull request for branch for-2011.05/dev-handling Thomas Petazzoni @ 2011-03-19 10:00 ` Thomas Petazzoni 2011-05-10 21:50 ` Peter Korsgaard 1 sibling, 0 replies; 13+ messages in thread From: Thomas Petazzoni @ 2011-03-19 10:00 UTC (permalink / raw) To: buildroot On Mon, 7 Mar 2011 22:21:22 +0100 Thomas Petazzoni <thomas.petazzoni@free-electrons.com> wrote: > The following changes since commit > 0a064b48c9d1044b05aee65272f5af7f28879473: Gustavo Zacarias (1): > gst-ffmpeg: bump to version 0.10.11 > > are available in the git repository at: > > git://git.busybox.net/~tpetazzoni/git/buildroot > for-2011.05/dev-handling > > Thomas Petazzoni (2): > Simplify udev startup script > Allow several device tables and split in two parts our device > table > > Yegor Yefremov (1): > Create menu entry to select device creation method Ping ? Thomas -- Thomas Petazzoni, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com ^ permalink raw reply [flat|nested] 13+ messages in thread
* [Buildroot] [pull request] Pull request for branch for-2011.05/dev-handling 2011-03-07 21:21 [Buildroot] [pull request] Pull request for branch for-2011.05/dev-handling Thomas Petazzoni 2011-03-19 10:00 ` Thomas Petazzoni @ 2011-05-10 21:50 ` Peter Korsgaard 1 sibling, 0 replies; 13+ messages in thread From: Peter Korsgaard @ 2011-05-10 21:50 UTC (permalink / raw) To: buildroot >>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes: Thomas> The following changes since commit 0a064b48c9d1044b05aee65272f5af7f28879473: Thomas> Gustavo Zacarias (1): Thomas> gst-ffmpeg: bump to version 0.10.11 Thomas> are available in the git repository at: Thomas> git://git.busybox.net/~tpetazzoni/git/buildroot for-2011.05/dev-handling I finally got to review/test/commit this. Thanks both, and sorry for the slow response. -- Bye, Peter Korsgaard ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2011-05-10 21:50 UTC | newest] Thread overview: 13+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2011-04-02 16:53 [Buildroot] [pull request] Pull request for branch for-2011.05/dev-handling Thomas Petazzoni 2011-04-02 16:53 ` [Buildroot] [PATCH 1/3] Create menu entry to select device creation method Thomas Petazzoni 2011-04-02 17:21 ` Yann E. MORIN 2011-04-03 10:18 ` Thomas Petazzoni 2011-04-03 18:05 ` Yann E. MORIN 2011-04-03 18:07 ` Yann E. MORIN 2011-04-02 16:53 ` [Buildroot] [PATCH 2/3] Simplify udev startup script Thomas Petazzoni 2011-04-02 16:53 ` [Buildroot] [PATCH 3/3] Allow several device tables and split in two parts our device table Thomas Petazzoni 2011-04-02 17:31 ` Yann E. MORIN 2011-04-03 18:22 ` Thomas De Schampheleire -- strict thread matches above, loose matches on Subject: below -- 2011-03-07 21:21 [Buildroot] [pull request] Pull request for branch for-2011.05/dev-handling Thomas Petazzoni 2011-03-19 10:00 ` Thomas Petazzoni 2011-05-10 21:50 ` Peter Korsgaard
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox