U-boot使用NFS文件系统的bootargs总结

转载 2012年03月25日 00:56:04

#setenv bootargs noinitrd console=ttySAC0,115200 init=/linuxrc mem=64M root=/dev/nfs nfsroot=192.168.2.125:/home/hufei/nfsrootip=192.168.2.6:192.168.2.125:192.168.2.125:255.255.255.0:hufei.cublog.cn:eth0:off

initrd, noinitrd:
当你没有使用ramdisk启动系统的时候,你需要使用noinitrd这个参数,但是如果使用了的话,就需要指定initrd=r_addr,size, r_addr表示initrd在内存中的位置,size表示initrd的大小。

console:

console=tty  使用虚拟串口终端设备 .
console=ttyS[,options] 使用特定的串口,options可以是这样的形式bbbbpnx,这里bbbb是指串口的波特率,p是奇偶位(从来没有看过使用过),n是指的bits。
console=ttySAC[,options] 同上面。

看你当前的环境,有时用ttyS,有时用ttySAC,网上有人说,这是跟内核的版本有关,2.4用ttyS,2.6用ttySAC,但实际情况是官方文档中也是使用ttyS,所以应该是跟内核版本没有关联的。可以查看Documentation/serial-console.txt找到相关描述。

init:

init指定的是内核启起来后,进入系统中运行的第一个脚本,一般init=/linuxrc, 或者init=/etc/preinit,preinit的内容一般是创建console,null设备节点,运行init程序,挂载一些文件系统等等操作。请注意,很多初学者以为init=/linuxrc是固定写法,其实不然,/linuxrc指的是/目录下面的linuxrc脚本,一般是一个连接罢了。如果内核找不到linurc文件,将会依次搜索/sbin/init,/etc/init,/bin/init,/bin/sh.

mem:

指定内存大小,不是必须的

root:

用来指定rootfs的位置, 常见的情况有: 
    root=/dev/ram rw   
    root=/dev/ram0 rw
请注意上面的这两种设置情况是通用的,我做过测试甚至root=/dev/ram1 rw和root=/dev/ram2 rw也是可以的,网上有人说在某些情况下是不通用的,即必须设置成ram或者ram0,但是目前还没有遇到,还需要进一步确认,遇到不行的时候可以逐一尝试。

    root=/dev/mtdx rw
    root=/dev/mtdblockx rw
    root=/dev/mtdblock/x rw
    root=31:0x

上面的这几个在一定情况下是通用的,当然这要看你当前的系统是否支持,不过mtd是字符设备,而mtdblock是块设备,有时候你的挨个的试到底当前的系统支持上面那种情况下,不过root=/dev/mtdblockx rw比较通用。此外,如果直接指定设备名可以的话,那么使用此设备的设备号也是可以的。

root=/dev/nfs,并非真的设备,而是一个告诉内核经由网络取得根文件系统的旗标。 
在文件系统为基于nfs的文件系统的时候使用。当然指定root=/dev/nfs之后,还需要指定nfsroot,

nfsroot这个参数告诉内核以哪一台机器,哪个目录以及哪个网络文件系统选项作为根文件系统使用。参数的格式如下:

nfsroot=[<server-ip>:]<root-dir>[,<nfs-options>]

如果指令列上没有给定 nfsroot 参数,则将使用‘/tftpboot/%s’预设值。其它选项如下:

<server-ip> –指定网络文件系统服务端的互联网地址(IP address)。如果没有给定此栏位,则使用由 nfsaddrs 变量(见下面)所决定的值。此参数的用途之一是允许使用不同机器作为反向地址解析协议(RARP)及网络文件系统服务端。通常你可以不管它(设为空白)。

<root-dir> – 服务端上要作为根挂入的目录名称。如果字串中有个‘%s’ 符记(token),此符记将代换为客户端互联网地址之ASCII 表示法。

<nfs-options> – 标准的网络文件系统选项。所有选项都以逗号分开。如果没有给定此选项栏位则使用下列的预设值:

        port            = as given by server portmap daemon

        rsize           = 1024

        wsize           = 1024

        timeo           = 7

        retrans         = 3

        acregmin        = 3

        acregmax        = 60

        acdirmin        = 30

        acdirmax        = 60

        flags           = hard, nointr, noposix, cto, ac

参数nfsaddrs设定网络通讯所需的各种网络接口地址。如果没有给定这个参数,则内核核会试著使用反向地址解析协议以及/或是启动协议(BOOTP)以找出这些参数。其格式如下:

ip:

下面是U-boot官方文档提供的IP参数解析:

setenv bootargs ${bootargs}

ip=${ipaddr}:${serverip}:\

${gatewayip}:${netmask}:\

${hostname:${netdev}:off

注意,上面换行的地方均有空格。其中 192.168.2.6是开发板的IP,192.168.2.125

是PC端(或虚拟机)的 IP,上面的IP根据自己的实际情况修改,不要弄错了。

nfsaddrs=<my-ip>:<serv-ip>:<gw-ip>:<netmask>:<name>:<dev>:<auto>

<my-ip> – 客户端的互联网地址。如果没设,此地址将由反向地址解析协议(RARP)或启动协议来决定。使用何种协议端视配置核心时打开的选项以及 参数而定。如果设定此参数,就不会使用反向地址解析协议或启动协议。

<serv-ip> – 网络文件系统服务端之互联网地址。如果使用反向地址解析协议来决定客户端地址并且设定此参数,则只接受从指定之服务端传来的回应。要使用不同的机器作为反向地址解析与网络文件系统服务端的话,在此指定你的反向地址解析协议服务端(保持空白)并在 nfsroot 参数(见上述)中指定你的网络文件系统服务端。如果此项目空白则使用回答反向地址解析协议或启动协议之服务端的地址。

<gw-ip> – 网关(gateway)之互联网地址,若服务端位於不同的子网络上时。如果此项目空白则不使用任何网关并假设服务端在本地的(local)网络上,除非由启动协议接收到值。

<netmask> – 本地网络界面的网络掩码。如果为空白,则网络掩码由客户端的互联网地址导出,除非由启动协议接收到值。

<name> – 客户端的名称。如果空白,则使用客户端互联网地址之 ASCII-标记法,或由启动协议接收的值。

<dev> – 要使用的网络设备名称。如果为空白,所有设备都会用来发出反向地址解析请求,启动协议请求由最先找到的设备发出。网络文件系统使用接收到反向地址解析协议或启动协议回应的设备。如果你只有一个设备那你可以不管它。

<suto> – 用以作为自动配置的方法。如果是 `rarp’ 或是 `bootp’ 则使用所指示的协议。如果此值为`both’ 或空白,若配置核心时有打开这两种协议则都使用。 `none’ 表示不使用自动配置。这种情况下你必须指定前述栏位中所有必要的值。

此参数可以作为 nfsaddrs 的参数单独使用(前面没有任何 `:` 字符),这种情况下会使用自动配置。然而,此种情况不能使用 `none’作为值。

 原文地址 http://blogold.chinaunix.net/u3/114978/showart_2262992.html

相关文章推荐

qemu 模拟-arm-mini2440开发板-启动u-boot,kernel和nfs文件系统

本文介绍了如何编译u-boot、linux kernel,然后用qemu启动u-boot和linux kernel,达到与开发板上一样的学习效果!

S3C6410 烧写u-boot 内核 根文件系统 遇到的问题 及总结

烧写u-boot 内核 根文件系统遇到的问题以及总结 两种常用的引导u-boot,启动内核和加载根文件系统的方式。s3c6410, 如果nandflash里面没有u-boot kene...

U-boot、Kernel、文件系统的几种下载方式总结(基于TQ2440开发板)

自己移植U-boot的话会生成nor flash启动文件u-boot-nor.bin和nand flash启动文件u-boot-nand.bin。 内核移植生成文件uImage.bin。 文件系统生...

U-Boot1.3.1中JFFS2文件系统支持和U盘支持的使用备忘

U-Boot1.3.1中JFFS2文件系统支持和U盘支持的使用备忘   在U-Boot可能早就有了对JFFS2和U盘的支持,但是由于我没有移植是注意到,就没有使用。在这次的移植中,我通过往网上的资...
  • sydjm
  • sydjm
  • 2011-10-12 14:56
  • 642

u-boot 使用 jffs2 文件系统加载内核 备忘

u-boot 使用 jffs2 文件系统加载内核 备忘 1. 修改kernel 中的 nand.c #define MV_NUM_OF_NAND_PARTS 7 static struct ...

u-boot-2011.06在基于s3c2440开发板的移植之引导内核与加载根文件系统

uboot最主要的功能就是能够引导内核启动。本文就介绍如何实现该功能,并组成一个最简单的系统,这不仅要移植uboot,还要移植linux内核及创建一个根文件系统。   首先我们对nandflash...
  • zhaocj
  • zhaocj
  • 2012-09-05 16:57
  • 5505

06-S3C2440学习之移植2012u-boot到S3C2440(移植过程五--最终)裁剪+修改默认参数+分区设置+支持文件系统下载

(1)Uboot可以配置一些环境变量, Uboot执行的时候: 1读参数 2判断是否有效 3无效则用默认写死的值 (2)搜索下using defaultenvironment 网太...

友善之臂—arm-6410 u-boot linux内核,文件系统移植

之这里,小编和大家分享一下如何利用

通过u-boot把内核和文件系统烧录到Nand Flash

通过u-boot把内核和文件系统烧录到Nand Flash   前提条件: 板子可以启动到u-boot环境; 内核文件、文件系统都准备好而且能正常运行; tftp服务器打开; 测试环境: ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)