原文链接: http://blog.csdn.net/zy812248258/article/details/39291835
我的板子是beaglebone black rev.c
启动方式: 在win下用am335x-evm-01.00.00.00.img.zip里的镜像烧写到tf卡里 从tf卡启动
TI SDK版本: http://software-dl.ti.com/sitara_linux/esd/processor-sdk/PROCESSOR-SDK-LINUX-AM335X/latest/index_FDS.html下的
ti-processor-sdk-linux-am335x-evm-01.00.00.00-Linux-x86-Install.bin
在linux下为sdk文件添加执行属性, 然后执行. 过程中会让设置安装路径. 我使用的是默认路径. 完成之后再执行 /opt/ti-processor-sdk-linux-am335x-evm-01.00.00.00/setup.sh
这个脚本执行之后(默认操作) 会设置好tftp服务和nfs服务.
tftp路径为 /tftpboot 这个文件夹下已经有了镜像文件
nfs文件夹为: /opt/ti-processor-sdk-linux-am335x-evm-01.00.00.00/targetNFS 这下边也已经有了所需要的文件可以直接挂载
测试主机nfs是否有效:
http://book.51cto.com/art/200811/96860.htm
最后将交叉编译链路径添加到环境变量中即可:
vi ~/.bashrc 后面添加 export PATH=$PATH:/opt/ti-processor-sdk-linux-am335x-evm-01.00.00.00/linux-devkit/sysroots/i686-arago-linux/usr/bin 运行 . ~/.bashrc
下边设置uboot参数让板子从host下载Image 然后挂载网络文件系统作为根文件系统
其中我们需要的两条语句为:
netargs=setenv bootargs console=${console} ${optargs} root=/dev/nfs nfsroot=${serverip}:${rootpath},${nfsopts} rw ip=dhcp
netboot=echo Booting from network ...; setenv autoload no; dhcp; tftp ${loadaddr} ${bootfile}; tftp ${fdtaddr} ${fdtfile}; run netargs; bootz ${loadaddr} - ${fdtaddr}
只需要更改和填充这两句中的变量就可以实现网络文件系统的挂载
增加设置:
setenv console /dev/ttyO0,115200n8
setenv serverip 192.168.1.102 //这里写你的虚拟机里ubuntu的ip地址
setenv rootpath /opt/ti-processor-sdk-linux-am335x-evm-01.00.00.00/targetNFS //sdk默认安装之后, nfs文件夹的路径, 如果你安装时更改了路径那么就改成你自己的路径
setenv ipaddr 192.168.1.103 //这个是bbb自身地地址
setenv gatewayip 192.168.1.1
setenv device eth0
setenv autoconf off
//setenv ip ${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}:${device}:${autoconf}
//setenv netargs setenv bootargs console=${console} ${optargs} root=/dev/nfs nfsroot=${serverip}:${rootpath},${nfsopts} rw ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}:${device}:${autoconf}
setenv netargs setenv bootargs console=${console} ${optargs} root=/dev/nfs nfsroot=${serverip}:${rootpath},${nfsopts} rw ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}:${device}:${autoconf}
csdn粘贴长代码竟然后边显示不全只能粘贴成文字了...
setenv fdtfile am335x-boneblack.dtb //这个需要跟/tftpboot里的文件名字相同
setenv bootfile zImage-am335x-evm.bin //如果你是make出来的zImage就直接写 zImage, 不过要将zImage拷贝到tftp目录下
saveenv
然后执行 run netboot 就可以自动下载内核, 挂载根文件系统