Linux kernel 在BeagleBone上引导Linux内核时安装NFS
我正在尝试在启动beaglebone板时装载NFS。 我在板上使用usb以太网。 我已经完成了以下步骤:Linux kernel 在BeagleBone上引导Linux内核时安装NFS,linux-kernel,beagleboneblack,u-boot,beagleboard,Linux Kernel,Beagleboneblack,U Boot,Beagleboard,我正在尝试在启动beaglebone板时装载NFS。 我在板上使用usb以太网。 我已经完成了以下步骤: 设置uboot设置: 工作站上的设置界面: 在工作站上设置/etc/exports文件: 尝试从uboot ping主机(它处于活动状态): 但是我不能在uboot中使用nfs命令。它会生成以下错误: => nfs Warning: usb_ether using MAC address from ROM using musb-hdrc, OUT ep1out IN ep1in ST
/etc/exports
文件:nfs
命令。它会生成以下错误:
=> nfs
Warning: usb_ether using MAC address from ROM
using musb-hdrc, OUT ep1out IN ep1in STATUS ep2in
MAC f8:dc:7a:00:00:02
HOST MAC f8:dc:7a:00:00:01
RNDIS ready
musb-hdrc: peripheral reset irq lost!
high speed config #2: 2 mA, Ethernet Gadget, using RNDIS
USB RNDIS network up!
Using usb_ether device
File transfer via NFS from server 192.168.0.1; our IP address is 192.168.0.100
Filename 'zImage/�zImage'.
Load address: 0x82000000
Loading: *** ERROR: Cannot mount
------
[ 2.545318] omap_i2c 4819c000.i2c: bus 2 rev0.11 at 100 kHz
[ 2.570464] hctosys: unable to open rtc device (rtc0)
[ 111.202637] VFS: Unable to mount root fs via NFS, trying floppy.
[ 111.209241] VFS: Cannot open root device "nfs" or unknown-block(2,0): error -6
[ 111.216571] Please append a correct "root=" boot option; here are the available partitions:
[ 111.225000] 0100 65536 ram0
[ 111.225004] (driver?)
[ 111.231133] 0101 65536 ram1
[ 111.231135] (driver?)
[ 111.237282] 0102 65536 ram2
[ 111.237284] (driver?)
[ 111.243425] 0103 65536 ram3
[ 111.243427] (driver?)
[ 111.249552] 0104 65536 ram4
[ 111.249554] (driver?)
[ 111.255696] 0105 65536 ram5
[ 111.255698] (driver?)
[ 111.261823] 0106 65536 ram6
[ 111.261825] (driver?)
[ 111.267966] 0107 65536 ram7
[ 111.267968] (driver?)
[ 111.274107] 0108 65536 ram8
[ 111.274110] (driver?)
[ 111.280236] 0109 65536 ram9
[ 111.280239] (driver?)
[ 111.286389] 010a 65536 ram10
[ 111.286392] (driver?)
[ 111.292620] 010b 65536 ram11
[ 111.292622] (driver?)
[ 111.298834] 010c 65536 ram12
[ 111.298836] (driver?)
[ 111.305064] 010d 65536 ram13
[ 111.305066] (driver?)
[ 111.311277] 010e 65536 ram14
[ 111.311280] (driver?)
[ 111.317507] 010f 65536 ram15
[ 111.317510] (driver?)
[ 111.323745] b300 15267840 mmcblk0
[ 111.323749] driver: mmcblk
[ 111.330574] b301 101376 mmcblk0p1 614bbe6e-01
[ 111.330577]
[ 111.337416] b302 15164416 mmcblk0p2 614bbe6e-02
[ 111.337418]
[ 111.344260] b310 3735552 mmcblk1
[ 111.344262] driver: mmcblk
[ 111.351084] b311 3731456 mmcblk1p1 18ac3061-01
[ 111.351086]
[ 111.357929] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0)
[ 111.366232] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.5.0-rc6 #1
[ 111.372435] Hardware name: Generic AM33XX (Flattened Device Tree)
[ 111.378595] [<c03128b4>] (unwind_backtrace) from [<c030cb64>] (show_stack+0x10/0x14)
[ 111.386385] [<c030cb64>] (show_stack) from [<c0eeaf70>] (dump_stack+0xc0/0xd4)
[ 111.393651] [<c0eeaf70>] (dump_stack) from [<c0347d90>] (panic+0x110/0x328)
[ 111.400654] [<c0347d90>] (panic) from [<c1601484>] (mount_block_root+0x184/0x234)
[ 111.408173] [<c1601484>] (mount_block_root) from [<c160179c>] (mount_root+0x124/0x140)
[ 111.416124] [<c160179c>] (mount_root) from [<c1601934>] (prepare_namespace+0x17c/0x1b8)
[ 111.424167] [<c1601934>] (prepare_namespace) from [<c0f02c3c>] (kernel_init+0x8/0x10c)
[ 111.432122] [<c0f02c3c>] (kernel_init) from [<c03010e8>] (ret_from_fork+0x14/0x2c)
[ 111.439721] Exception stack(0xdb0b1fb0 to 0xdb0b1ff8)
[ 111.444794] 1fa0: 00000000 00000000 00000000 00000000
[ 111.453007] 1fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[ 111.461218] 1fe0: 00000000 00000000 00000000 00000000 00000013 00000000
[ 111.467876] ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0) ]---
然后,我在帮助TFTP下下载了内核映像和DTB,并从uboot运行boot
我认为内核应该在usb设备上设置eternet,然后安装nfs。我在kernek配置中添加了以下标志:
CONFIG_USB_GADGET=y
CONFIG_USB_MUSB_HDRC=y
CONFIG_USB_MUSB_GADGET=y
CONFIG_USB_MUSB_DSPS=y
CONFIG_AM335X_PHY_USB=y
CONFIG_USB_ETH=y
CONFIG_ROOT_NFS=y
但我在引导过程中仍然会出错。我已确定此问题:
.config
文件。我应该只在帮助makemenuconfig
的情况下执行,因为任何CONFIG.*
标志都可能有一些依赖项make menuconfig
可以解决此问题init
程序:我决定解决这个问题:
.config
文件。我应该只在帮助makemenuconfig
的情况下执行,因为任何CONFIG.*
标志都可能有一些依赖项make menuconfig
可以解决此问题init
程序:您需要在主机上查看NFS导出日志中的问题,因为U-Boot和Linux内核都无法装载共享。@Tom Rini,我通过帮助查看
/var/log/syslog
文件tail-f
,但在内核引导期间它是空的。@Tom Rini,只有当我在uboot控制台中写入nfs
时,我才会看到这条消息:“NFSD:Using/var/lib/nfs/v4recovery rpc.mountd[24650]:192.168.0.100装载请求中的错误路径:”zImage“。好的,所以在您的主机上,您需要配置NFSD以知道您将zImage放在了哪里或放在了它要看的地方。今天,我已经可以通过帮助NFS 0x81000000192.168.0.1:/mnt/share/file name
挂载NFS并从uboot控制台下载一些内容。它可以通过USB正常工作。(通过usb的以太网)。我使用帮助TFTP下载内核映像和DTB,但当内核启动时,可能是这样,不要通过USB设备设置eherntet,这就是我出错的原因。您需要在主机上查看NFS导出日志中的问题,因为U-Boot和Linux内核都无法装载共享。@Tom Rini,我在帮助下查看了/var/log/syslog
文件tail-f
,但在内核引导期间它是空的。@Tom Rini,我只有在uboot控制台中写入nfs
时才会看到这条消息:“NFSD:Using/var/lib/nfs/v4recovery rpc.mountd[24650]:192.168.0.100装载请求中的错误路径:“zImage”“。好的,所以在您的主机上,您需要配置NFSD以知道您将zImage放在了哪里或放在了它要看的地方。今天,我已经可以通过帮助NFS 0x81000000192.168.0.1:/mnt/share/file name
挂载NFS并从uboot控制台下载一些内容。它可以通过USB正常工作。(通过usb的以太网)。我在TFTP帮助下下载了内核映像和DTB,但当内核启动时,可能是不通过USB设备设置eherntet,这就是我出错的原因
=> ping 192.168.0.1
using musb-hdrc, OUT ep1out IN ep1in STATUS ep2in
MAC f8:dc:7a:00:00:02
HOST MAC f8:dc:7a:00:00:01
RNDIS ready
musb-hdrc: peripheral reset irq lost!
high speed config #2: 2 mA, Ethernet Gadget, using RNDIS
USB RNDIS network up!
Using usb_ether device
host 192.168.0.1 is alive
=> nfs
Warning: usb_ether using MAC address from ROM
using musb-hdrc, OUT ep1out IN ep1in STATUS ep2in
MAC f8:dc:7a:00:00:02
HOST MAC f8:dc:7a:00:00:01
RNDIS ready
musb-hdrc: peripheral reset irq lost!
high speed config #2: 2 mA, Ethernet Gadget, using RNDIS
USB RNDIS network up!
Using usb_ether device
File transfer via NFS from server 192.168.0.1; our IP address is 192.168.0.100
Filename 'zImage/�zImage'.
Load address: 0x82000000
Loading: *** ERROR: Cannot mount
setenv bootargs root=/dev/nfs rw ip=192.168.0.100:::::usb0 console=ttyO0,115200n8 g_ether.dev_addr=f8:dc:7a:00:00:02 g_ether.host_addr=f8:dc:7a:00:00:01 nfsroot=192.168.0.1:/home/anisyan/proj/learn-embedded-linux/linux-kernel-labs/modules/nfsroot/ ,nfsvers=3
------
[ 2.545318] omap_i2c 4819c000.i2c: bus 2 rev0.11 at 100 kHz
[ 2.570464] hctosys: unable to open rtc device (rtc0)
[ 111.202637] VFS: Unable to mount root fs via NFS, trying floppy.
[ 111.209241] VFS: Cannot open root device "nfs" or unknown-block(2,0): error -6
[ 111.216571] Please append a correct "root=" boot option; here are the available partitions:
[ 111.225000] 0100 65536 ram0
[ 111.225004] (driver?)
[ 111.231133] 0101 65536 ram1
[ 111.231135] (driver?)
[ 111.237282] 0102 65536 ram2
[ 111.237284] (driver?)
[ 111.243425] 0103 65536 ram3
[ 111.243427] (driver?)
[ 111.249552] 0104 65536 ram4
[ 111.249554] (driver?)
[ 111.255696] 0105 65536 ram5
[ 111.255698] (driver?)
[ 111.261823] 0106 65536 ram6
[ 111.261825] (driver?)
[ 111.267966] 0107 65536 ram7
[ 111.267968] (driver?)
[ 111.274107] 0108 65536 ram8
[ 111.274110] (driver?)
[ 111.280236] 0109 65536 ram9
[ 111.280239] (driver?)
[ 111.286389] 010a 65536 ram10
[ 111.286392] (driver?)
[ 111.292620] 010b 65536 ram11
[ 111.292622] (driver?)
[ 111.298834] 010c 65536 ram12
[ 111.298836] (driver?)
[ 111.305064] 010d 65536 ram13
[ 111.305066] (driver?)
[ 111.311277] 010e 65536 ram14
[ 111.311280] (driver?)
[ 111.317507] 010f 65536 ram15
[ 111.317510] (driver?)
[ 111.323745] b300 15267840 mmcblk0
[ 111.323749] driver: mmcblk
[ 111.330574] b301 101376 mmcblk0p1 614bbe6e-01
[ 111.330577]
[ 111.337416] b302 15164416 mmcblk0p2 614bbe6e-02
[ 111.337418]
[ 111.344260] b310 3735552 mmcblk1
[ 111.344262] driver: mmcblk
[ 111.351084] b311 3731456 mmcblk1p1 18ac3061-01
[ 111.351086]
[ 111.357929] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0)
[ 111.366232] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.5.0-rc6 #1
[ 111.372435] Hardware name: Generic AM33XX (Flattened Device Tree)
[ 111.378595] [<c03128b4>] (unwind_backtrace) from [<c030cb64>] (show_stack+0x10/0x14)
[ 111.386385] [<c030cb64>] (show_stack) from [<c0eeaf70>] (dump_stack+0xc0/0xd4)
[ 111.393651] [<c0eeaf70>] (dump_stack) from [<c0347d90>] (panic+0x110/0x328)
[ 111.400654] [<c0347d90>] (panic) from [<c1601484>] (mount_block_root+0x184/0x234)
[ 111.408173] [<c1601484>] (mount_block_root) from [<c160179c>] (mount_root+0x124/0x140)
[ 111.416124] [<c160179c>] (mount_root) from [<c1601934>] (prepare_namespace+0x17c/0x1b8)
[ 111.424167] [<c1601934>] (prepare_namespace) from [<c0f02c3c>] (kernel_init+0x8/0x10c)
[ 111.432122] [<c0f02c3c>] (kernel_init) from [<c03010e8>] (ret_from_fork+0x14/0x2c)
[ 111.439721] Exception stack(0xdb0b1fb0 to 0xdb0b1ff8)
[ 111.444794] 1fa0: 00000000 00000000 00000000 00000000
[ 111.453007] 1fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[ 111.461218] 1fe0: 00000000 00000000 00000000 00000000 00000013 00000000
[ 111.467876] ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0) ]---
=> nfs 0x81000000 192.168.0.1:/mnt/share/file
CONFIG_USB_GADGET=y
CONFIG_USB_MUSB_HDRC=y
CONFIG_USB_MUSB_GADGET=y
CONFIG_USB_MUSB_DSPS=y
CONFIG_AM335X_PHY_USB=y
CONFIG_USB_ETH=y
CONFIG_ROOT_NFS=y
init=/absolete/path/to/init/program