代码 : https://github.com/lisider/linux/tree/ok6410a-linux-5.11
提交id : 4459e78a4d845f08286623b98546bcefbb45ddb9
defconfig : arch/arm/configs/ok6410A_sdboot_mini_net_defconfig
要实现
u-boot tftp uImage
uImage 网络挂载 根文件系统
-
3 内核的配置
$ cat arch/arm/configs/ok6410A_sdboot_mini_defconfig
CONFIG_ARCH_MULTI_V6=y
CONFIG_ARCH_S3C64XX=y
CONFIG_MACH_SMDK6410=y
CONFIG_SERIAL_SAMSUNG=y
CONFIG_SERIAL_SAMSUNG_CONSOLE=y
CONFIG_MMC=y
CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_S3C=y
CONFIG_EXT3_FS=y
#### add for mount: mdev: unknown user/group 'root:root' on line 11
CONFIG_TMPFS=y
#### net driver dm9000
CONFIG_NET=y
CONFIG_NETDEVICES=y
CONFIG_ETHERNET=y
CONFIG_DM9000=y
#### root nfs
CONFIG_INET=y
CONFIG_IP_PNP=y
CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_NFS_FS=y
CONFIG_ROOT_NFS=y
-
4 文件系统的制作
-
5 u-boot 环境变量的设置
setenv gatewayip 10.10.11.254
setenv ipaddr 10.10.11.120
setenv serverip 10.10.11.59
setenv bootcmd 'tftp 0x50008000 uImage;bootm 0x50008000'
setenv bootargs 'root=/dev/nfs rw nfsroot=10.10.11.59:/home/suws/ok6410/system-new/busybox/rootfs console=ttySAC0,115200 init=/linuxrc ip=10.10.11.120'
sa
-----------------------------------
内核中的nfs版本要与 服务器上的 nfs 版本要一致,好像不能自动识别版本.TODO
内核版本 CONFIG_NFS_V3
nfs 版本 nfsstat 命令可查到
如果内核支持 nfs version 3, 则 可以强制要求 服务器 来匹配 内核nfs版本3
nfsroot=192.168.1.250:/home/rootfs,proto=tcp,nfsvers=3