如何利用NFS网络挂载ROOTFSlinux挂载根文件系统统

使用NFS挂载根文件系统和Linux内核
我的图书馆
使用NFS挂载根文件系统和Linux内核
用NFS挂载根文件系统,在开发阶段有很多的好处,对根文件系统进行修改后不用每次都下载到NandFlash中,可以把制作的根文件系统放到主机中的
NFS输出目录中,在正式成为产品以后在烧写到开发板中,这样可以方便很多,也可以把编译生成的内核也放到NFS输出目录中这样也可以引导内核,很是方
便,还等什么开始吧!&&
NFS服务器端的配置已经在上一篇文章中写到过了。U-boot中使用tftp协议也在另一篇文章中。按道理来说NFS命令也是可以是使用的,因为都是基
于网卡的,只要网卡驱动移植的没有问题,NFS也就直接可以使用了,不过在我这里可是行不通,在使用NFS传输文件中,一直出现下面的错误类型,提示挂载
U-Boot@mini2440]#nfs 0x.27.10.48:/home/ubuntu/kernel/fs/u-boot.bin dm9000 i/o: 0x, id: 0x90000a46 DM9000: running in 16 bit mode MAC: 08:00:3e:26:0a:5b operating at 100M full duplex mode Using dm9000 device File transfer via NFS from server 10.27.10.48; our IP address is 10.27.10.23 Filename '/home/ubuntu/kernel/fs/u-boot.bin'. Load address: 0x Loading: *** ERROR: Cannot mount //仅仅提示挂载不上可还有下面的错误:
[U-Boot@mini2440]#nfs 0x.27.10.48:/home/ubuntu/kernel/fs/u-boot.bin dm9000 i/o: 0x, id: 0x90000a46 DM9000: running in 16 bit mode MAC: 08:00:3e:26:0a:5b operating at 100M full duplex mode Using dm9000 device File transfer via NFS from server 10.27.10.48; our IP address is 10.27.10.23 Filename '/home/ubuntu/kernel/fs/u-boot.bin'. Load address: 0x Loading: *** ERROR: Cannot mount *** ERROR: Cannot umount //这里还提示了不能卸载&& 在网上查找资料,出现 Cannot umount错误的解决方法是修改u-boot-2009.08/net/nfs.c文件,在大约453行附近的位置:
static intnfs_umountall_reply (uchar *pkt, unsigned len){&&&&struct rpc_t rpc_pkt;&&&&debug("%s\n", __func__);&&&&memcpy ((unsigned char *)&rpc_pkt, pkt, len);&&&&//if (ntohl(rpc_pkt.u.reply.id) != rpc_id) //原来的这一行修改成下面的一行&&&& if ((ntohl(rpc_pkt.u.reply.id)+1) != rpc_id)&&&&&&&&return -1;&&&&if (rpc_pkt.u.reply.rstatus ||&& ..................}&& 可是在我这里修改完以后还是不可以使用,一样出现上面的错误。这是就想到了是不是和tftp时出现的错误是一样的,也是因为超时的原因,虽然这里面没有出现超时的提示,不管怎么样还是先改了再说;还是在/nfs.c文件中修改下面的超时的宏定义:
#define HASHES_PER_LINE 65&&&&/* Number of "loading" hashes per line&&&&*/#define NFS_RETRY_COUNT 30#define NFS_TIMEOUT (30*2000UL) //把原来的2000UL改成 30*2000UL,&& 修改完上面的宏定义以后,再使用NFS传输文件,一开始有几次还是不成功,不过后面再使用时大部分情况下都是成功的,不再像上面一次也没有成功过:
[U-Boot@mini2440]#nfs 0x.27.10.48:/home/zfz/kernel/fs/u-boot.bin dm9000 i/o: 0x, id: 0x90000a46 DM9000: running in 16 bit mode MAC: 08:00:3e:26:0a:5b operating at 100M full duplex mode Using dm9000 device File transfer via NFS from server 10.27.10.48; our IP address is 10.27.10.23 Filename '/home/zfz/kernel/fs/u-boot.bin'. Load address: 0x Loading: ############################### done Bytes transferred = 155016 (25d88 hex) &&&
既然NFS可以使用了,那就可以用NFS挂载根文件系统了。根文件系统的制作在另一篇文章中也已经写了,这里就还是使用上次的根文件系统,只是不再用工具
制作成Yaffs2的镜像了,直接使用Busybox,制作成功的noot_nfs目录下的各个文件就可以了,如果要下载到NandFlash中,再使用
Yaffs2格式的镜像文件。可以先用NFS把Linux内核下载到内存中,然后设置传递给内核的参数,在u-boot-2009.08/include/configs/mini2440.h文件中,修改原来使用nand read 方式,修改成使用NFS方式的;
//#define CONFIG_BOOTCOMMAND&&&&"nand read 0xx000;bootm 0x" //把上面的注释掉,修改成下面的方式#define CONFIG_BOOTCOMMAND "nfs 0x.27.10.48:/home/zfz/kernel/fs/uImage.bootm"&& 这样,在用U-boot引导时就可以把Linux的内核首先复制到内存中了,这样也不用把Linux 内核下载到开发板中了。然后在修改传递给内核的参数,修改为下面的:
//#define CONFIG_BOOTARGS&&&&"noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0,115200 mem=64M" //把上面的修改成下面的这句#define CONFIG_BOOTARGS "noinitrd
root=/dev/nfs rw nfsroot=10.27.10.48:/home/ubuntu/kernel/fs/root_nfs
ip=10.27.10.23:10.27.10.48::255.255.255.0 console=ttySAC0,115200
init=/linuxrc mem=64M"
&& 可不要忘记把你的Linux内核的镜像文件和你制作的根文件系统的放到NFS的输出目录中;在配置内核中要选中支持NFS文件系统:支持网卡驱动,还用NetWorking Support如下图所示:
Network File System的支持
这样内核配置完以后启动U-boot出现下面的错误:
...........
No device for DAI UDA134X No device for DAI s3c24xx-i2s ALSA device list: &&No soundcards found. TCP cubic registered NET: Registered protocol family 17 drivers/rtc/hctosys.c: unable to open rtc device (rtc0) IP-Config: No network devices available. //这里没有找到网卡的驱动 Looking up port of RPC 100003/2 on 10.27.10.48 rpcbind: server 10.27.10.48 not responding, timed out Root-NFS: Unable to get nfsd port number from server, using default Looking up port of RPC 100005/1 on 10.27.10.48 rpcbind: server 10.27.10.48 not responding, timed out Root-NFS: Unable to get mountd port number from server, using default Root-NFS: Server returned error -5 while mounting /home/zfz/kernel/fs/root_nfs VFS: Unable to mount root fs via NFS, trying floppy. VFS: Cannot open root device "nfs" or unknown-block(2,0) Please append a correct "root=" boot option; here are the available partitions: 1f00 256 mtdblock0 (driver?) 1f01 128 mtdblock1 (driver?) 1f02 5120 mtdblock2 (driver?) 1f03 125568 mtdblock3 (driver?) 1f04 131072 mtdblock4 (driver?) Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0) [&c002e9f8&] (unwind_backtrace+0x0/0xdc) from [&c02e0190&] (panic+0x40/0x120) [&c02e0190&] (panic+0x40/0x120) from [&c0008e84&] (mount_block_root+0x1d0/0x210)[&c0008e84&] (mount_block_root+0x1d0/0x210) from [&c000911c&] (prepare_namespac)[&c000911c&] (prepare_namespace+0x164/0x1bc) from [&c000843c&] (kernel_init+0xd)[&c000843c&] (kernel_init+0xd8/0x10c) from [&c002a854&] (kernel_thread_exit+0x0)&&
在使用NFS挂载根文件系统时,需要在系统启动到后面时,使用NFS传送根文件系统,这是需要了DM9000网卡的驱动,虽然我们在u-boot中移植了
DM9000网卡的驱动,不过现在已经进入到了Linux中,在配置Linux内核中虽然我们也选择了支持DM9000网卡的驱动,不过还是需要在
Linux内核中改动才能适应开发板上的网卡,下面就要在Linux中移植DM9000网卡的驱动程序。&&& Linux2.6.32已经对DM9000网卡有着比较完善的支持了,在:linux-2.6.32.2/ drivers/net
/dm9000.c文件中,只需要在目标平台初始化代码中,填写完相应的结构表就可以了,在另一篇文章中,Linux2.6.32.2移植到
MINI2440中,我们在linux-2.6.32.2/arch/arm/mach-s3c2440目录下建立了我们自己的文件mach-
mini2440.c,主要在这个文件下添加修改;首先添加驱动所需要的头文件:
#include &linux/dm9000.h&& 然后定义 DM9000网卡的物理基地址
#define MACH_MINI2440_DM9K_BASE (S3C2410_CS4 + 0x300)& 再填写该平台设备的资源设置,以便和 DM9000 网卡驱动接口配合起来;
static struct resource mini2440_dm9k_resource[] = { &&&&&&&&[0] = { &&&&&&&&&&&&&&&&.start = MACH_MINI2440_DM9K_BASE, &&&&&&&&&&&&&&&&.end = MACH_MINI2440_DM9K_BASE + 3, &&&&&&&&&&&&&&&&.flags = IORESOURCE_MEM &&&&&&&&}, &&&&&&&&[1] = { &&&&&&&&&&&&&&&&.start = MACH_MINI2440_DM9K_BASE + 4, &&&&&&&&&&&&&&&&.end = MACH_MINI2440_DM9K_BASE + 7, &&&&&&&&&&&&&&&&.flags = IORESOURCE_MEM &&&&&&&&}, &&&&&&&&[2] = { &&&&&&&&&&&&&&&&.start = IRQ_EINT7, &&&&&&&&&&&&&&&&.end = IRQ_EINT7, &&&&&&&&&&&&&&&&.flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE, &&&&&&&&} }; /* &* * * The DM9000 has no eeprom, and it's MAC address is set by &* * * the bootloader before starting the kernel. &* * */ static struct dm9000_plat_data mini2440_dm9k_pdata = { &&&&&&&&.flags = (DM9000_PLATF_16BITONLY | DM9000_PLATF_NO_EEPROM), }; &static struct platform_device mini2440_device_eth = { &&&&&&&&.name = "dm9000", &&&&&&&&.id = -1, &&&&&&&&.num_resources = ARRAY_SIZE(mini2440_dm9k_resource), &&&&&&&&.resource = mini2440_dm9k_resource, &&&&&&&&.dev = { &&&&&&&&&&&&&&&&.platform_data = &mini2440_dm9k_pdata, &&&&&&&&}, }; &然后在 mini2440 设备集中添加上面做好的网卡平台设备,如下红色部分
static struct platform_device *mini2440_devices[] __initdata = {&&&&&s3c_device_usb,&&&&&s3c_device_lcd,&&&&&s3c_device_wdt,&&&&&s3c_device_i2c0,&&&&&s3c_device_iis,&&&&&mini2440_device_eth,&&&&&s3c_device_nand,&& };&&
因为 Linux-2.6.32.2 中虽然有 DM9000 网卡驱动,但并不是完全的适合mini2440,所以还是需要修改,修改DM9000
所用的位宽寄存器,在linux-2.6.32.2/ drivers/net/dm9000.c,添加下面的头文件
#if defined (CONFIG_ARCH_S3C2410)#include &mach/regs-mem.h&#endif&& 在dm9000设备的初始化函数中添加如下红色部分,这里是配置 DM9000 所用片选总线的时序,大约在1557行附近的位置,
static int __initdm9000_init(void){&&&&#if defined(CONFIG_ARCH_S3C2410) &&&&&&&&unsigned int oldval_bwscon = *(volatile unsigned int*)S3C2410_BWSCON; &&&&&&&&unsigned int oldval_bankcon4 = *(volatile unsigned int*)S3C2410_BANKCON4; &&&&&&&&*((volatile unsigned int *)S3C2410_BWSCON) = &&&&&&&&&&&&&&&&&&&&&&&&(oldval_bwscon & ~(3&&16)) | S3C2410_BWSCON_DW4_16 | S3C2410_BWSCON_WS4 | S3C2410_BWSCON_ST4; &&&&&&& oldval_bankcon4 = 0x1f7c; #endif &&&&printk(KERN_INFO "%s Ethernet Driver, V%s\n", CARDNAME, DRV_VERSION);&&&&return platform_driver_register(&dm9000_driver);}
&& 在配置Linux内核中,加入对DM9000网卡的支持如下图;
&& 这样DM9000网卡的驱动就基本已经移植完成了,这样就可以使用NFS挂载根文件系统了,启动的信息如下:
U-Boot 2009.08 ( 4??月 30 2010 - 20:01:00) &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&DRAM: 64 MB Flash: 2 MB NAND Device: Manufacturer ID: 0xec, Chip ID: 0xf1 (Samsung NAND 128MiB 3,3V 8-b)NAND: 128 MiB *** Warning - bad CRC or NAND, using default environment &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&In: serial Out: serial Err: serial Net: dm9000 Hit any key to stop autoboot: 0 dm9000 i/o: 0x, id: 0x90000a46 DM9000: running in 16 bit mode MAC: 08:00:3e:26:0a:5b operating at 100M full duplex mode Using dm9000 device File transfer via NFS from server 10.27.10.48; our IP address is 10.27.10.23 Filename '/home/zfz/kernel/fs/uImage.img'. Load address: 0x Loading: ################################################################# &&&&&&&&&################################################################# &&&&&&&&&################################################################# &&&&&&&&&################################################################# &&&&&&&&&################################################################# &&&&&&&&&################################################################# &&&&&&&&&##################### done Bytes transferred = 2104236 (201bac hex) ## Booting kernel from Legacy Image at
... &&&Image Name: linux-2.6.32.2 &&&Created: 2010-04-30 15:40:47 UTC &&&Image Type: ARM Linux Kernel Image (uncompressed) &&&Data Size: 2104172 Bytes = 2 MB &&&Load Address:
&&&Entry Point:
&&&Verifying Checksum ... OK &&&Loading Kernel Image ... OK OK &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Starting kernel ... &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Uncompressing Linux.............................................................Linux version 2.6.32.2 (zfz@zfz) (gcc version 4.3.2 (Sourcery G++ Lite 2008q3-70CPU: ARM920T [] revision 0 (ARMv4T), cr=c0007177 CPU: VIVT data cache, VIVT instruction cache Machine: FriendlyARM MINI2440 development board Memory policy: ECC disabled, Data cache writeback CPU S3C2440A (id 0x) S3C24XX Clocks, (c) 2004 Simtec Electronics S3C244X: core 405.000 MHz, memory 101.250 MHz, peripheral 50.625 MHz CLOCK: Slow mode (1.500 MHz), fast, MPLL on, UPLL on Built 1 zonelists in Zone order, mobility grouping on. Total pages: 16256 Kernel command line: noinitrd root=/dev/nfs rw nfsroot=10.27.10.48:/home/zfz/keMPID hash table entries: 256 (order: -2, 1024 bytes) Dentry cache hash table entries: 8192 (order: 3, 32768 bytes) Inode-cache hash table entries: 4096 (order: 2, 16384 bytes) Memory: 64MB = 64MB total Memory: 60480KB available (3696K code, 418K data, 132K init, 0K highmem) SLUB: Genslabs=11, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 Hierarchical RCU implementation. NR_IRQS:85 irq: clearing subpending status
Console: colour dummy device 80x30 console [ttySAC0] enabled Calibrating delay loop... 201.93 BogoMIPS (lpj=504832) Mount-cache hash table entries: 512 CPU: Testing write buffer coherency: ok NET: Registered protocol family 16 S3C2440: Initialising architecture S3C2440: IRQ Support S3C24XX DMA Driver, (c) 2003-2004,2006 Simtec Electronics DMA channel 0 at c4808000, irq 33 DMA channel 1 at c4808040, irq 34 DMA channel 2 at c4808080, irq 35 DMA channel 3 at c48080c0, irq 36 S3C244X: Clock Support, DVS off bio: create slab &bio-0& at 0 usbcore: registered new interface driver usbfs usbcore: registered new interface driver hub usbcore: registered new device driver usb s3c-i2c s3c2440-i2c: slave address 0x10 s3c-i2c s3c2440-i2c: bus frequency set to 98 KHz s3c-i2c s3c2440-i2c: i2c-0: S3C I2C adapter NET: Registered protocol family 2 IP route cache hash table entries: 1024 (order: 0, 4096 bytes) TCP established hash table entries: 2048 (order: 2, 16384 bytes) TCP bind hash table entries: 2048 (order: 1, 8192 bytes) TCP: Hash tables configured (established 2048 bind 2048) TCP reno registered NET: Registered protocol family 1 RPC: Registered udp transport module. RPC: Registered tcp transport module. RPC: Registered tcp NFSv4.1 backchannel transport module. JFFS2 version 2.2. (NAND) ?© 2001-2006 Red Hat, Inc. ROMFS MTD (C) 2007 Red Hat, Inc. yaffs Apr 20 2010 11:10:26 Installing. msgmni has been set to 118 alg: No test for stdrng (krng) io scheduler noop registered io scheduler anticipatory registered (default) io scheduler deadline registered io scheduler cfq registered s3c2410-lcd s3c2410-lcd: no platform data for lcd, cannot attach s3c2410-lcd: probe of s3c2410-lcd failed with error -22 s3c2440-uart.0: s3c2410_serial0 at MMIO 0x (irq = 70) is a S3C2440 s3c2440-uart.1: s3c2410_serial1 at MMIO 0x (irq = 73) is a S3C2440 s3c2440-uart.2: s3c2410_serial2 at MMIO 0x (irq = 76) is a S3C2440 brd: module loaded S3C24XX NAND Driver, (c) 2004 Simtec Electronics s3c24xx-nand s3c2440-nand: Tacls=3, 29ns Twrph0=7 69ns, Twrph1=3 29ns s3c24xx-nand s3c2440-nand: NAND soft ECC NAND device: Manufacturer ID: 0xec, Chip ID: 0xf1 (Samsung NAND 128MiB 3,3V 8-b)Scanning device for bad blocks Creating 5 MTD partitions on "NAND 128MiB 3,3V 8-bit": 0x-0x : "U-boot" 0x-0x : "param" ftl_cs: FTL header not found. 0x-0x : "Kernel" ftl_cs: FTL header not found. 0x-0x : "root" mtd: partition "root" extends beyond the end of device "NAND 128MiB 3,3V 8-bit"0ftl_cs: FTL header not found. 0x-0x : "nand" mtd: partition "nand" extends beyond the end of device "NAND 128MiB 3,3V 8-bit"0dm9000 Ethernet Driver, V1.31 eth0: dm9000e at c486e300,c4872304 IRQ 51 MAC: 08:00:3e:26:0a:5b (chip) ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver s3c2410-ohci s3c2410-ohci: S3C24XX OHCI s3c2410-ohci s3c2410-ohci: new USB bus registered, assigned bus number 1 s3c2410-ohci s3c2410-ohci: irq 42, io mem 0x usb usb1: configuration #1 chosen from 1 choice hub 1-0:1.0: USB hub found hub 1-0:1.0: 2 ports detected usbcore: registered new interface driver libusual mice: PS/2 mouse device common for all mice S3C24XX RTC, (c) 2004,2006 Simtec Electronics i2c /dev entries driver S3C2410 Watchdog Timer, (c) 2004 Simtec Electronics s3c2410-wdt s3c2410-wdt: watchdog inactive, reset disabled, irq enabled cpuidle: using governor ladder sdhci: Secure Digital Host Controller Interface driver sdhci: Copyright(c) Pierre Ossman usbcore: registered new interface driver hiddev usbcore: registered new interface driver usbhid usbhid: v2.6:USB HID core driver Advanced Linux Sound Architecture Driver Version 1.0.21. No device for DAI UDA134X No device for DAI s3c24xx-i2s ALSA device list: &&No soundcards found. TCP cubic registered NET: Registered protocol family 17 drivers/rtc/hctosys.c: unable to open rtc device (rtc0) eth0: link up, 100Mbps, full-duplex, lpa 0x45E1 IP-Config: Complete: &&&&&device=eth0, addr=10.27.10.23, mask=255.255.255.0, gw=10.27.10.1, &&&&&host=10.27.10.23, domain=, nis-domain=(none), &&&&&bootserver=10.27.10.48, rootserver=10.27.10.48, rootpath= //这里和上次的不同 Looking up port of RPC 100003/2 on 10.27.10.48 Looking up port of RPC 100005/1 on 10.27.10.48 VFS: Mounted root (nfs filesystem) on device 0:14. Freeing init memory: 132K --------- munt all-------- -------- Starting mdev --------- ************************* **********************Frankzfz ARM Embedded ************** Kernel version:linux-2.32.2 Author:zfz Date:2010,4,29 *********************** &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Please press Enter to activate this console. Set PS1 in /etc/profile [root@mini2440]#我们可以通过ifconfig命令查看如下:
Please press Enter to activate this console. Set PS1 in /etc/profile [root@mini2440]#ifconfig eth0 Link encap:Ethernet HWaddr 08:00:3E:26:0A:5B& //这里是在u-boot中指定的IP地址&&&&&&&&&&inet addr:10.27.10.23 Bcast:10.27.10.255 Mask:255.255.255.0 &&&&&&&&&&UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 &&&&&&&&&&RX packets:1953 errors:0 dropped:0 overruns:0 frame:0 &&&&&&&&&&TX packets:1005 errors:0 dropped:0 overruns:0 carrier:0 &&&&&&&&&&collisions:0 txqueuelen:1000 &&&&&&&&&&RX bytes:2112429 (2.0 MiB) TX bytes:155582 (151.9 KiB) &&&&&&&&&&Interrupt:51 Base address:0xe300 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&lo Link encap:Local Loopback &&&&&&&&&&inet addr:127.0.0.1 Mask:255.0.0.0 &&&&&&&&&&UP LOOPBACK RUNNING MTU:16436 Metric:1 &&&&&&&&&&RX packets:0 errors:0 dropped:0 overruns:0 frame:0 &&&&&&&&&&TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 &&&&&&&&&&collisions:0 txqueuelen:0 &&&&&&&&&&RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) && 到这里在Linux内核下通过NFS挂载根文件系统就已经完成了。这样在修改和完善Linux内核,根文件系统的时候就不需要每次下载进行验证了,很是方便!
TA的最新馆藏
喜欢该文的人也喜欢16:34 提问
求助 nfs 挂载根文件系统问题
详细描述如下:
使用virtualbox中fedora8作为nfs服务器 通过桥接网卡与 ok6410开发板连接。
uboot参数:
setenv bootcmd tftp c0008000 uImage\;bootm c0008000
setenv bootargs noinitrd init=/linuxrc root=/dev/nfs console=ttySAC0,115200
mem=256M nfsroot=192.168.2.100:/rootfs/,nolock,tcp
ip=192.168.2.111:192.168.2.1:255.255.255.0::eth0:off
出错信息:
VFS: Unable to mount root fs via NFS, trying floppy.
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown
-block(2,0)
在fedora上本机测试nfs没问题
在开发板上安装linux后与fedora测试nfs没问题
其他相关推荐挂载NFS根文件系统失败原因探讨 - 查看主题 & Ubuntu中文论坛
&[ 16 篇帖子 ]&
&文章标题 : 挂载NFS根文件系统失败原因探讨发表于 :
17:36帖子: 89
系统: ubuntu10.04
接收感谢: 0 次
环境:U-BOOT参数 SMDK6410 # printenvbootcmd=nand read 0xcxx500000;bootm 0xc0008000bootdelay=1baudrate=115200ethaddr=00:40:5c:26:0a:5bnetmask=255.255.255.0bootargs=root=/dev/nfs nfsroot=192.168.0.128:/forlinx/root ip=192.168.0.103:192.168.0.128:192.168.0.255:255.255.255..cn:eth0:off console=ttySAC0,115200ipaddr=192.168.0.103serverip=192.168.0.104gatewayip=192.168.0.1stdin=serialstdout=serialstderr=serialEnvironment size: 411/524284 bytesubuntu 参数:root@ubuntu:/forlinx/root# ifconfigeth0
Link encap:Ethernet
HWaddr 00:0c:29:87:2a:2e
inet addr:192.168.0.128
Bcast:192.168.0.255
Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe87:2a2e/64 Scope:Link
UP BROADCAST RUNNING MULTICAST
RX packets:6720 errors:0 dropped:0 overruns:0 frame:0
TX packets:1966 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:5.0 KB)
TX bytes:5.4 KB)
Interrupt:19 Base address:0x2024 lo
Link encap:Local Loopback
inet addr:127.0.0.1
Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING
RX packets:895 errors:0 dropped:0 overruns:0 frame:0
TX packets:895 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:9 KB)
TX bytes:9 KB)之前已经PING过,ubuntu可以与开发板互相ping通;然后我是设置了开发板的U-BOOT参数之后,就启动不了了,错误如下:asoc: wm9713-hifi &-& samsung-ac97 mapping okALSA device list:
#0: smdk6410TCP cubic registeredNET: Registered protocol family 17can: controller area network core (rev
abi 8)NET: Registered protocol family 29can: raw protocol (rev )can: broadcast manager protocol (rev
t)lib80211: common routines for IEEE802.11 driversRegistering the dns_resolver key types3c-rtc s3c64xx-rtc: setting system clock to
00:00:22 UTC ()dm9000 dm9000.0: eth0: link downIP-Config: Cannot add default route (-101).dm9000 dm9000.0: eth0: link up, 100Mbps, full-duplex, lpa 0x45E1VFS: Unable to mount root fs via NFS, trying floppy.Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0)[&c003aca8&] (unwind_backtrace+0x0/0xfc) from [&c04a7f2c&] (dump_stack+0x18/0x1c)[&c04a7f2c&] (dump_stack+0x18/0x1c) from [&c04a7f90&] (panic+0x60/0x1ac)[&c04a7f90&] (panic+0x60/0x1ac) from [&c0008fd0&] (mount_block_root+0x204/0x25c)[&c0008fd0&] (mount_block_root+0x204/0x25c) from [&c00090b0&] (mount_root+0x88/0xd0)[&c00090b0&] (mount_root+0x88/0xd0) from [&c0009204&] (prepare_namespace+0x10c/0x1a8)[&c0009204&] (prepare_namespace+0x10c/0x1a8) from [&c00084c4&] (kernel_init+0xf0/0x130)[&c00084c4&] (kernel_init+0xf0/0x130) from [&c0035a34&] (kernel_thread_exit+0x0/0x8)就卡死在这里,启动不了了,有哪个哥们知道如何解决?
&文章标题 : Re: 挂载NFS根文件系统失败原因探讨发表于 :
17:36帖子: 89
系统: ubuntu10.04
接收感谢: 0 次
防火墙已经关闭;root@ubuntu:/forlinx/root# ufw statusStatus: inactivewindows防火墙也已经确认关闭
&文章标题 : Re: 挂载NFS根文件系统失败原因探讨发表于 :
16:33帖子: 16647
引用:VFS: Unable to mount root fs via NFS, trying floppy.Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0)引用:bootargs=root=/dev/nfs nfsroot=192.168.0.128:/forlinx/root 參閱DMA6410 實體燒錄kernel, NFS掛載 rootfs的uboot參數設定
&文章标题 : Re: 挂载NFS根文件系统失败原因探讨发表于 :
17:36帖子: 89
系统: ubuntu10.04
接收感谢: 0 次
poloshiao 写道:引用:VFS: Unable to mount root fs via NFS, trying floppy.Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0)引用:bootargs=root=/dev/nfs nfsroot=192.168.0.128:/forlinx/root 參閱DMA6410 實體燒錄kernel, NFS掛載 rootfs的uboot參數設定链接打不开呃
&文章标题 : Re: 挂载NFS根文件系统失败原因探讨发表于 :
16:33帖子: 16647
引用:链接打不开呃從終端機wget 就可以下載 miles010.txt 到你目前的目錄sudo cat ./miles010.txt就可以看到內容下載完畢請通知一下
&文章标题 : Re: 挂载NFS根文件系统失败原因探讨发表于 :
17:36帖子: 89
系统: ubuntu10.04
接收感谢: 0 次
poloshiao 写道:引用:链接打不开呃從終端機wget 就可以下載 miles010.txt 到你目前的目錄sudo cat ./miles010.txt就可以看到內容下載完畢請通知一下root@ubuntu:/mnt# wget -- 00:24:05--
119.14.163.29Connecting |119.14.163.29|:80... connected.HTTP request sent, awaiting response... 200 OKLength: K) [text/plain]Saving to: `miles010.txt'100%[======================================&] 2,479
00:24:18 (59.7 MB/s) - `miles010.txt' saved []root@ubuntu:/mnt# root@ubuntu:/mnt# root@ubuntu:/mnt# sudo cat ./miles010.txt NFS rootfs 掛載 uboot 參數setenv bootargs console=ttySAC0,115200 root=/dev/nfs rw nfsroot=192.168.2.87:/home/ami/Desktop/filesystem/new ip=192.168.2.12:192.168.2.87:192.168.2.87:255.255.255.0:dma6410:eth0:off/**************************************************************************************host ip (NFS Server):192.168.2.87target ip (dma6410) :192.168.2.12root=/dev/nfs 表示使用nfs來掛載根檔案系統ip=[target ip]:[host ip]:[gateway]:[mask]:[borad name]:[device name]:[potocol]
ip=192.168.2.12:192.168.2.87:192.168.2.87:255.255.255.0:dma6410:eth0:offnfsroot=[host ip]:[path to rootfs]nfsroot=192.168.2.87:/home/ami/Desktop/filesystem/new***************************************************************************************/設定u-boot燒錄區間(New)
setenv bootcmd &nand read cx000;bootm c0008000&setenv kernel &tftp 0xc0200000 zInand erase 0xx300000;nand write 0xcxx300000&setenv rootfs &tftp 0xc0200000 eabi_smallroot_v1.5.2.nand erase 0xx3000000;nand write 0xcxx3000000&SMDK6410 # printbootdelay=3baudrate=115200ethaddr=00:40:5c:26:0a:5bu-boot=tftp 0xc0200000 u-boot.nand erase 0x0 0x100000;nand write 0xcx0 0x100000usbu-boot=nand erase 0x0 0x100000;nand write cx0 0x100000usbkernel=nand erase 0xx200000;nand write cxx200000usbrootfs=nand erase 0xx3000000;nand write cxx3000000jffs2=tftp 0xc0200000 jffs2.nand erase 0xf0000;nand write 0xcxf0000yaffs2=tftp 0xc0200000 yaffs2.nand erase 0xf0000;nand write 0xcxf0000filesize=22288cfileaddr=C0200000netmask=255.255.255.0ipaddr=192.168.2.12serverip=192.168.2.87gatewayip=192.168.2.87bootargs=console=ttySAC0,115200 root=/dev/nfs rw nfsroot=192.168.2.87:/home/ami/Desktop/filesystem/new ip=192.168.2.12:192.168.2.87:192.168.2.87:255.255.255.0:dma6410:eth0:offrootfs=tftp 0xc0200000 root_dma.nand earse 0xx3000000;nand write 0xcxx3000000kernel=tftp 0xc0200000 zInand erase 0xx400000;nand write 0xcxx400000bootcmd=nand read cx000;bootm c0008000stdin=serialstdout=serialstderr=serial
&文章标题 : Re: 挂载NFS根文件系统失败原因探讨发表于 :
16:33帖子: 16647
&文章标题 : Re: 挂载NFS根文件系统失败原因探讨发表于 :
17:36帖子: 89
系统: ubuntu10.04
接收感谢: 0 次
poloshiao 写道:完全正確网络应该没什么问题;就是不晓得为什么NFS挂不上,然后开发板就启动不了了
&文章标题 : Re: 挂载NFS根文件系统失败原因探讨发表于 :
16:33帖子: 16647
引用:不晓得为什么NFS挂不上權限的問題 檢查過嗎
&文章标题 : Re: 挂载NFS根文件系统失败原因探讨发表于 :
17:36帖子: 89
系统: ubuntu10.04
接收感谢: 0 次
poloshiao 写道:引用:不晓得为什么NFS挂不上權限的問題 檢查過嗎检查过了,不是权限的问题
&文章标题 : Re: 挂载NFS根文件系统失败原因探讨发表于 :
16:33帖子: 16647
引用:ip=192.168.0.103:192.168.0.128:192.168.0.255:255.255.255.0:.cn:eth0:off引用:ip=[target ip]:[host ip]:[gateway]:[mask]:[borad name]:[device name]:[potocol]ip=192.168.2.12:192.168.2.87:192.168.2.87:255.255.255.0:dma6410:eth0:off引用:ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}:eth0:off為何使用 .cn ?有 DNS 可以解析成 IPv4 或 Hostname 嘛 ?
&文章标题 : Re: 挂载NFS根文件系统失败原因探讨发表于 :
17:36帖子: 89
系统: ubuntu10.04
接收感谢: 0 次
引用:為何使用 .cn ? 这个是那个开发板的公司的网站; 引用:有 DNS 可以解析成 IPv4 或 Hostname 嘛 ? 可以解析,之前ping过 是没有问题的
&文章标题 : Re: 挂载NFS根文件系统失败原因探讨发表于 :
16:33帖子: 16647
引用:这个是那个开发板的公司的网站;引用:/u-boot/kernel-bootingip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}:eth0:off你要連接的電腦 hostname 是 .cn 嗎
&文章标题 : Re: 挂载NFS根文件系统失败原因探讨发表于 :
17:36帖子: 89
系统: ubuntu10.04
接收感谢: 0 次
引用:你要連接的電腦 hostname 是 .cn 嗎非常感谢poloshiao 的回复,这个 .cn是买的开发板上提供的资料上提供的;这个是要写serverip对应的电脑的hostname吗?还是可以随便写的?
&文章标题 : Re: 挂载NFS根文件系统失败原因探讨发表于 :
16:33帖子: 16647
引用:这个是要写serverip对应的电脑的hostname吗?可以試試從 Server 終端機 給指令hostname可以顯示出 server 的 hostname
_________________
评价:&3.7%&
显示帖子 : 全部帖子1天7天2周1个月3个月6个月1年&排序 作者发表时间文章标题 升序降序&
&[ 16 篇帖子 ]&
正在浏览此版面的用户:没有注册用户 和 1 位游客
您 不能 在这个版面发表主题您 不能 在这个版面回复主题您 不能 在这个版面编辑帖子您 不能 在这个版面删除帖子您 不能 在这个版面提交附件
选择一个版面
------------------
公告/注意事项
& &新闻和通知
& &校园社团支持
& && &华东校区
& && &华南校区
& && &华北校区
& && &华中校区
& && &东北校区
& && &西北校区
& && &港澳台校区
& && &国外校区
& &软件推荐
& &非常任务
系统安装区
& &教学和常见问答
& && &课堂教学和培训
& &初学者园地 - 17.10 Artful Aardvark
& &系统安装和升级
& && &新立得和软件源
& && &Wubi安装讨论
& &启动和引导
& &网卡问题以及网络和拨号
& && &校园网拨号
& &笔记本、UMPC支持
& &手机和平板
& && &Ubuntu移动应用开发
& &常用硬件支持
& &系统架构支持
配置美化区
& &字体美化和中文支持
& && &个人配置文件存放点
& &桌面特效
& &窗口管理器
& &屏幕抓图
& &办公、图像、机械电子设计等
& && &Vim和Emacs
& &因特网相关软件
& &影音多媒体
& &Wine及其分支
& &游戏和游戏模拟器
& &虚拟机和虚拟化
& &其它类软件
& &开源模板库
服务器管理
& &服务器基础应用
& &数据库管理
& &服务器维护和硬件相关
& &Ubuntu VPS
参与Ubuntu开发
& &软件和文档翻译
& &编译或打包
& &Ubuntu错误报告
程序设计区
& &Shell脚本
& &GTK+和QT
& &软件/网站开发
& && &Python/Php/Perl
& && &C/C++/Java
& &内核及嵌入式开发
& &开源小工具
& &Ubuntu 18.04 LTS
& &Ubuntu 16.04 LTS
& &Ubuntu 14.04 LTS
& &Ubuntu 12.04 LTS
& &Ubuntu 10.04 LTS
& &老旧版本支持
衍生发行版
& &Ubuntu GNOME
& &Kubuntu
& &Xubuntu & Lubuntu
& &Ubuntu中文衍生版
& && &UbuntuKylin
& &Ubuntu国外衍生版
& && &Mint
& &Ubuntu衍生版制作
& &其它类Unix OS发行版
& && &Arch发行版
& && &Debian发行版
& && &OpenSUSE发行版
& && &Deepin
& &深度PK版
& &Ubuntu故事和感慨
& &Full Circle开源杂志
分享交流区
& &同城交流
& &线下活动专版
& &Ubuntu宣传推广
& &论坛管理
& && && &Ubuntu中文网上商店

我要回帖

更多关于 根文件系统挂载 的文章

 

随机推荐