Linux kernel 在BeagleBone上引导Linux内核时安装NFS

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

我正在尝试在启动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 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
    
  • 设置内核引导参数:
  • 我的内核在安装FS时会生成错误:

    ------
    [    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