diff options
author | Thomas Petazzoni <thomas.petazzoni@free-electrons.com> | 2011-03-02 14:52:54 +0100 |
---|---|---|
committer | Peter Korsgaard <jacmet@sunsite.dk> | 2011-05-09 16:52:22 +0200 |
commit | 4e005c47e535fcde9bff04699774bde36f358b38 (patch) | |
tree | 0b68179106f9f123b0a3598709eb2c2da6249845 /fs | |
parent | ca520507fc15a8213334a76339a3e6d567e91ea0 (diff) | |
download | buildroot-novena-4e005c47e535fcde9bff04699774bde36f358b38.tar.gz buildroot-novena-4e005c47e535fcde9bff04699774bde36f358b38.zip |
Allow several device tables and split in two parts our device table
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.
[Peter: simplify code slightly, fix indentation]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/Config.in | 20 | ||||
-rw-r--r-- | fs/common.mk | 10 |
2 files changed, 20 insertions, 10 deletions
diff --git a/fs/Config.in b/fs/Config.in index 9ac3accd8..6f0f82ba2 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 92be00cc0..4d5051460 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 @@ -46,13 +47,14 @@ $(BINARIES_DIR)/rootfs.$(1): $(ROOTFS_$(2)_DEPENDENCIES) 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),) + cat $(ROOTFS_DEVICE_TABLES) > $(FULL_DEVICE_TABLE) + 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) - -@rm -f $(FAKEROOT_SCRIPT) + -@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 |