kernel: set root on NFS when enabled
Replace the configured root device with a NFS root device and automatic IP configuration for booting over NFS. Signed-off-by: Florian Fainelli <florian@openwrt.org> SVN-Revision: 48591
This commit is contained in:
		| @@ -104,6 +104,18 @@ define Kernel/SetNoInitramfs | |||||||
| 	echo 'CONFIG_INITRAMFS_SOURCE=""' >> $(LINUX_DIR)/.config.set | 	echo 'CONFIG_INITRAMFS_SOURCE=""' >> $(LINUX_DIR)/.config.set | ||||||
| endef | endef | ||||||
|  |  | ||||||
|  | ifeq ($(CONFIG_KERNEL_ROOT_NFS),y) | ||||||
|  |   define Kernel/SetNfsCmdline | ||||||
|  | 	rm -f $(LINUX_DIR)/.config.prev | ||||||
|  | 	mv $(LINUX_DIR)/.config $(LINUX_DIR)/.config.old | ||||||
|  | 	grep -v "CONFIG_CMDLINE=" $(LINUX_DIR)/.config.old > $(LINUX_DIR)/.config | ||||||
|  | 	grep "CONFIG_CMDLINE=" $(LINUX_DIR)/.config.old | cut -d\" -f2 | sed 's/root=\/dev\/\([a-z0-9]*\)\(.*\)/CONFIG_CMDLINE=\"root=\/dev\/nfs ip=dhcp\2\"/' >> $(LINUX_DIR)/.config | ||||||
|  |   endef | ||||||
|  | else | ||||||
|  |   define Kernel/SetNfsCmdline | ||||||
|  |   endef | ||||||
|  | endif | ||||||
|  |  | ||||||
| define Kernel/Configure/Default | define Kernel/Configure/Default | ||||||
| 	$(LINUX_CONF_CMD) > $(LINUX_DIR)/.config.target | 	$(LINUX_CONF_CMD) > $(LINUX_DIR)/.config.target | ||||||
| # copy CONFIG_KERNEL_* settings over to .config.target | # copy CONFIG_KERNEL_* settings over to .config.target | ||||||
| @@ -114,6 +126,7 @@ define Kernel/Configure/Default | |||||||
| 	$(SCRIPT_DIR)/metadata.pl kconfig $(TMP_DIR)/.packageinfo $(TOPDIR)/.config $(KERNEL_PATCHVER) > $(LINUX_DIR)/.config.override | 	$(SCRIPT_DIR)/metadata.pl kconfig $(TMP_DIR)/.packageinfo $(TOPDIR)/.config $(KERNEL_PATCHVER) > $(LINUX_DIR)/.config.override | ||||||
| 	$(SCRIPT_DIR)/kconfig.pl 'm+' '+' $(LINUX_DIR)/.config.target /dev/null $(LINUX_DIR)/.config.override > $(LINUX_DIR)/.config.set | 	$(SCRIPT_DIR)/kconfig.pl 'm+' '+' $(LINUX_DIR)/.config.target /dev/null $(LINUX_DIR)/.config.override > $(LINUX_DIR)/.config.set | ||||||
| 	$(call Kernel/SetNoInitramfs) | 	$(call Kernel/SetNoInitramfs) | ||||||
|  | 	$(call Kernel/SetNfsCmdline) | ||||||
| 	rm -rf $(KERNEL_BUILD_DIR)/modules | 	rm -rf $(KERNEL_BUILD_DIR)/modules | ||||||
| 	cmp -s $(LINUX_DIR)/.config.set $(LINUX_DIR)/.config.prev || { \ | 	cmp -s $(LINUX_DIR)/.config.set $(LINUX_DIR)/.config.prev || { \ | ||||||
| 		cp $(LINUX_DIR)/.config.set $(LINUX_DIR)/.config; \ | 		cp $(LINUX_DIR)/.config.set $(LINUX_DIR)/.config; \ | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Florian Fainelli
					Florian Fainelli