您的位置:首页 > 编程语言 > PHP开发

beaglebone black tftp与nfs挂载根文件系统

2015-06-30 15:22 555 查看
原文链接: 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 就可以自动下载内核, 挂载根文件系统
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: