uboot使用eth1
❶ 求助 关于uboot.BIN 烧写uImage到开发板的内存中
直接文件系统列举吧烧写uboot、内核及文件系统 :1、uboot烧写
载Uboot两步骤第步uboot载系统扩展RAM并运行第二步通内存运行uboot整uboot载内存再烧写nandflash
第步 载uboot扩展RAM
首先使用短路块选择系统内部启复位或者电串口软件(115200 8 n 1)看打印信息LPC31xx READY FOR PLAIN IMAGE>使用串口软件发送文件选择发送u-boot-init.bin再发送u-boot.binRAM启uboot打印输启信息并进行倒计发送任意字符给系统停止计关闭串口软件使用超级终端连接系统
第二步 烧写ubootnandflash
超级终端输入loady命令再使用传送/发送文件选择Ymodem协议发送u-boot.bin接收完先擦除nand erase全擦掉(用给参数)使用使用参数指定区域般第要全擦使用nand_paramsflash信息写入其使用nand write 0x30001000 0x4000 0x100000
其0x30001000 uboot内存址;
0x4000 ubootflash存放起始址需要根据实际区情况定;
0x100000 uboot于实际;
至uboot写入nandflash短路跳线掉使其nandflash启
2、内核烧写
uboot启倒计击任意键停止输入loady与uboot烧写相似使用命令主要:nand erase 0x200000(址) 0x200000()
nand write 0x30001000 0x200000 0x200000
3、文件系统烧写
文件系统烧写通与内核相似使用串口烧写通挂载nfs使用mtd_debug 工具烧写由于文件系统较使用第种式慢些
串口烧写使用命令
loady
nand erase 0x600000 0x3a00000(目前区情况)
nand write 0x30001000 0x600000 0x800000(实际)
使用nfs烧写用命令
mtd_debug erase /dev/mtd2 0 0x3a00000
mtd_debug write /dev/mtd2 0 0x800000 ubi.img
各项含义参考mtd_debug 帮助直接mtd_debug 即获取说明其len使用十进制数uboot加0x认十六进制
4、启挂载文件系统选项
uboot通环境变量设置启选项般需要配置挂载文件系统nfsubi及内核启选项
挂载nanflashubifs:
setenv bootargs console=ttyS0,115200n8 ubi.mtd=2 root=ubi0:rootfs rootfstype=ubifs;
挂载129.1.4.199/rfs/rootfs并且本机ip设129.1.31.33等:
setenv bootargs noinitrd root=/dev/nfs console=ttyS0,115200n8 nfsroot=129.1.4.199:/rfs/rootfs,proto=tcp,nfsvers=3,nolock ip=129.1.31.33:129.1.4.199:129.1.88.1:255.255.0.0::eth0:off
启内核选项:
setenv bootcmd nand read 0x30001000 0x200000 0x200000\; bootm 0x30001000\;
修改uboot环境变量都需要saveenv命令保存修改
❷ uboot中ethaddr怎么确定
-Boot环境变量的解释说明
环 境 变 量
解 释 说 明
bootdelay
定义执行自动启动的等候秒数
baudrate
定义串口控制台的波特率
netmask
定义以太网接口的掩码
ethaddr
定义以太网接口的MAC地址
bootfile
定义缺省的下载文件
bootargs
定义传递给Linux内核的命令行参数
bootcmd
定义自动启动时执行的几条命令
serverip
定义tftp服务器端的IP地址
ipaddr
定义本地的IP地址
stdin
定义标准输入设备,一般是串口
stdout
定义标准输出设备,一般是串口
stderr
定义标准出错信息输出设备,一般是串口
参考U-boot,其环境变量设置如下:
Uboot> printenv
bootdelay=3
baudrate=115200
ethaddr=00:12:34:56:78:9a
ipaddr=192.168.0.9 ①
serverip=192.168.0.1 ②
netmask=255.255.255.0
rootpath=/home/zht/rfsys ③
stdin=serial
stdout=serial
stderr=serial
bootcmd=tftp 21000000 uImage;bootm 21000000 ④
bootargs=root=/dev/nfs rw nfsroot=192.168.0.1:/home/zht/rfsys nfsaddrs=192.168.0.48: 192.168.0.1:192.168.0.1:255.255.255.0 console=ttyS0,115200 mem=32M ⑤
① 设置目标板IP地址
② 设置服务器IP地址
③ 设置根文件系统在服务器上的路径,注意该路径一定要设定为服务器上的nfs目录。
④ bootcmd是u-boot启动后执行的命令,命令之间用分号分隔。
tftp 21000000 uImage 表示通过tftp 将内核映像下载到RAM中地址为0x21000000;
bootm 21000000 启动linux操作系统
⑤ 定义u-boot传送给linux内核的命令行参数,该命令行指定以网络文件系统作为根文件系统。
其中root=/dev/nfs,并非真的设备,而是一个告诉内核经由网络取得根文件系统的旗标。
参数nfsroot这个参数告诉内核以那一台机器,那个目录以及那个网络文件系统选项作为根文件系统使用。参数的格式如下:
nfsroot=[:][,]
如果指令列上没有给定 nfsroot 参数,则将使用‘/tftpboot/%s’预设值。其它选项如下:
--指定网络文件系统服务端的互联网地址(IP address)。如果没有给定此栏位,则使用由 nfsaddrs 变量(见下面)所决定的值。此参数的用途之一是允许使用不同机器作为反向地址解析协议(RARP) 及网络文件系统服务端。通常你可以不管它(设为空白)。
-- 服务端上要作为根挂入的目录名称。如果字串中有个‘%s’ 符记(token),此符记将代换为客户端互联网地址之 ASCII 表示法。
-- 标准的网络文件系统选项。所有选项都以逗号分开。如果没有给定此选项栏位则使用下列的预设值:
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)以找出这些参数。其格式如下:
nfsaddrs=::::::
-- 客户端的互联网地址。如果没设,此地址将由反向地址解析协议或启动协议来决定。使用何种协议端视配置核心时打开的选项以及 参数而定。如果设定此参数,就不会使用反向地址解析协议或启动协议。
-- 网络文件系统服务端之互联网地址。如果使用反向地址解析协议来决定客户端地址并且设定此参数,则只接受从指定之服务端传来的回应。要使用不同的机器作为反向地址解析与网络文件系统服务端的话,在此指定你的反向地址解析协议服务端(保持空白)并在 nfsroot 参数(见上述)中指定你的网络文件系统服务端。如果此项目空白则使用回答反向地址解析协议或启动协议之服务端的地址。
-- 网关(gateway)之互联网地址,若服务端位於不同的子网络上时。如果此项目空白则不使用任何网关并假设服务端在本地的(local)网络上,除非由启动协议接收到值。
-- 本地网络界面的网络掩码。如果为空白,则网络掩码由客户端的互联网地址导出,除非由启动协议接收到值。
-- 客户端的名称。如果空白,则使用客户端互联网地址之 ASCII-标记法,或由启动协议接收的值。
-- 要使用的网络设备名称。如果为空白,所有设备都会用来发出反向地址解析请求,启动协议请求由最先找到的设备发出。网络文件系统使用接收到反向地址解析协议或启动协议回应的设备。如果你只有一个设备那你可以不管它。
-- 用以作为自动配置的方法。如果是 `rarp' 或是 `bootp' 则使用所指示的协议。如果此值为 `both' 或空白,若配置核心时有打开这两种协议则都使用。 `none' 表示不使用自动配置。这种情况下你必须指定前述栏位中所有必要的值。
此 参数可以作为 nfsaddrs 的参数单独使用(前面没有任何 `:` 字符),这种情况下会使用自动配置。然而,此种情况不能使用 `none'作为值。
说明:这只是网上的一种说法,但是没有启动起来。因为我的kernel没有cs8900网卡驱动,烧录后可正常启动,但无法挂载NFS,我在想是否可以通过命令行参数设置,来设置uboot给kernel传递的地址参数,这样间接驱动nfs服务。我先前通过vivi这样搞过,也是可行的。
现在可以这样理解就是说,之前的kernel内核已经配置好了各个基本模块的驱动,这样就可以用了
❸ 在ubuntu下使用什么工具对uboot及内核进行烧写
tftp比较通用的 网络烧写 DNW USB烧写
❹ 如何设置u-boot变量ip地址
setenv ipaddr 192.168.1.111
这样就可以了。然后在使用网络相关的时候,会自动获取这个ip并使用的。
如果用tftp 还需设置
setenv serverip 192.168.1.123
需要重启还有效,则
saveenv
❺ linux下Uboot终端命令行参数输入过长
修改成这样试试(用分割了一下)
setenvbootargs"root=/dev/nfsnfsroot=192.168.1.118:
/root/work/nfsip=192.168.0.119:192.168.1.118:192.168.1.1:
255.255.255.0:witech.com.cn:eth0:offconsole=ttySAC2,115200"