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

来源:互联网 发布:家居设计软件手机 编辑:程序博客网 时间:2024/05/21 18:41

原文链接: 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 然后挂载网络文件系统作为根文件系统

其中我们需要的两条语句为:

[plain] view plain copy
  1. netargs=setenv bootargs console=${console} ${optargs} root=/dev/nfs nfsroot=${serverip}:${rootpath},${nfsopts} rw ip=dhcp   
  2. netboot=echo Booting from network ...; setenv autoload no; dhcp; tftp ${loadaddr} ${bootfile}; tftp ${fdtaddr} ${fdtfile}; run netargs; bootz ${loadaddr} - ${fdtaddr}  

  1. #定义变量netargs为网络参数,bootargs为内核参数  
  2. #(1)console:用于让内核打印输出信息,Documentation/serial-console.txt找到相关描述  
  3. #(2)root:用于说明根文件系统是基于NFS。   
  4. #(3)nfsroot:指定根文件系统所在NFS服务器的IP以及服务器上的路径  
  5. #(4)ip:本目标板IP(必须的,其他可不写)、TFTP和NFS服务器IP、网关IP、子网掩码、主机名、网卡设备、

只需要更改和填充这两句中的变量就可以实现网络文件系统的挂载


增加设置:

[plain] view plain copy
  1. setenv console /dev/ttyO0,115200n8  
  2.   
  3. setenv serverip 192.168.1.102  //这里写你的虚拟机里ubuntu的ip地址  
  4. setenv rootpath /home/vmuser/nfs2elinux/rootfs  //sdk默认安装之后, nfs文件夹的路径, 如果你安装时更改了路径那么就改成你自己的路径(此路径里面包含具体的文件系统内容如bin,lib,boot等)  
  5.   
  6. setenv ipaddr 192.168.1.103   //这个是bbb自身地地址  
  7. setenv gatewayip 192.168.1.1      
  8. setenv device eth0  
  9. setenv autoconf off  
  10. //setenv ip ${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}:${device}:${autoconf}  
  11.   
  12. //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粘贴长代码竟然后边显示不全只能粘贴成文字了...
[plain] view plain copy
  1. setenv fdtfile am335x-boneblack.dtb //这个需要跟/tftpboot里的文件名字相同(即设备树的名字)  
  2. setenv bootfile zImage-am335x-evm.bin //如果你是make出来的zImage就直接写 zImage, 不过要将zImage拷贝到tftp目录下  
[plain] view plain copy
  1. saveenv  

然后执行 run netboot 就可以自动下载内核, 挂载根文件系统



网址:http://blog.csdn.net/gongyuan073/article/details/46695389#

(http://blog.csdn.net/gongyuan073/article/details/46695389#    http://blog.csdn.net/zy812248258/article/details/39338759 )

0 0
原创粉丝点击