Beaglebone串口启动

1 出发点
  • 需求在没有SD卡、EMMC、USB的情况下启动Beaglebone Black。(我自己的板子SD卡槽被撞坏了,焊盘都掉了。查了PCB发现信号线走的中间层,懒得飞线了)
  • 某鱼上有很多Beaglebone矿渣板,应该也能同样的方法启动。

狗板

流程大概涉及:

  • 找一台PC或虚拟机搭建一个NFS服务端,利用德州仪器(TI)的开发包弄个根文件系统
  • 通过工具串口传输 spl + uboot 文件,帮助uboot跑起来
  • uboot中手工配置加载NFS服务端中的内核zImage +设备树dtb ,然后当然是启动内核啦
2 用到的资源
  • am335x-evm-linux-sdk-bin-06.03.00.106 TI官方SDK下载链接
  • SecureCRT.8.5.4
  • (硬件) USB转串口工具、交换机或路由器等
  • VMware ( 虚拟机 Ubuntu 系统 )
3 开搞
3.1 硬件连接
  • 板子调试端口J1排针连接USB转串口工具
  • 网线连接交换机或路由器,请保证和 Ubuntu虚拟机在同一网段,否则无法网络连接。

连接

3.2 解压SDK

将下载的 am335x-evm-linux-sdk-bin-06.03.00.106解压,找到需要的文件。
文件夹 board-support > prebuilt-images中:

  • u-boot-spl.bin-am335x-evm 这是接下来串口Xmodem传输所需spl文件
  • u-boot-am335x-evm 这是接下来串口Ymodem传输所需uboot文件

文件夹 filesystem中:

  • arago-base-tisdk-image-am335x-evm.tar 这是Ubuntu虚拟机中构建NFS根文件系统所需
3.3 构建NFS

如何安装虚拟机Ubuntu、开启NFS服务这里就省略了,反正只要有个正常NFS服务端就行。
下一步,将3.2中解压得到 arago-base-tisdk-image-am335x-evm.tar 传输到虚拟机中,解压到NFS服务开放的文件夹下,示范如下:
在这里插入图片描述

注意事项:

  • 别跟着网上其他帖子那样将文件权限设置为777,否则后续挂载NFS成功你也没法登陆。现在的文件系统 /etc/下的 passwd 、shadow、securetty都是有保护的,一旦权限设置不正确就无法正常使用。
  • 官方SDK中的文件系统占用空间很小,可以复制多个主文件夹,这样一个NFS服务端可以挂载多个Beaglebone板子。
3.4 串口传输启动文件
  • 使用SecureCRT软件打开USB转串口工具的端口,默认波特率115200

  • 连接电源后 Beaglebone 会在一直打印CCCC,这就是我们需要的。可以查阅官方手册中的启动顺序部分,AM335X上电后如果依次检测不到SD等一系列外设中的启动文件,最后就到了串口开始请求Xmodem文件。(有的板子可能需要按S2 boot按键)
    串口

  • SecureCRT在选项卡选择传输>发送Xmodem并选择3.2节中解压得到的文件 u-boot-spl.bin-am335x-evm
    发送Xmodem

  • 传输完成后串口继续输出CCC,表示开始请求Ymodem文件。SecureCRT在选项卡选择传输>发送Ymodem并选择3.2节中解压得到的文件 u-boot-am335x-evm
    发送Ymodem

  • 传输完成后,uboot开始跑起来(想后续怎么启动就可以配置环境变量自由发挥了),可以按住空格键打断自动引导,进入uboot命令行。
    uboot

3.5 uboot 配置NFS启动相关环境参数

确认3.3节解压得到的NFS文件系统中boot文件夹下的文件:

  • am335x-boneblack.dtb 这是具体硬件关联的dtb文件,我的板子就是BeagleboneBlack
  • zImage linux内核压缩镜像文件
    内核

修改你的ip地址以及NFS开放路径,根据如下的示例进行调整,然后复制到SecureCRT中uboot命令行

  • serverip ubuntu虚拟机(NFS服务端所在)的ip地址
  • clientip 板子将要配置的ip,可以通过输入dhcp命令查看当前的ip地址,然后填充过去就是了
  • gatewayip 网关地址,一般都是当前网段 1号
  • rootpath NFS服务端开放路径,对应解压文件系统存放的文件夹,可以参考3.3节
set serverip 192.168.1.103
set clientip 192.168.1.106
set gatewayip 192.168.1.1
set rootpath /home/jiangheng/Desktop/nfs/bbb_nfs
set netargs setenv bootargs console=${console} ${optargs}   root=/dev/nfs rw ip=${clientip}:${serverip}:${gatewayip}:255.255.255.0::eth0:off nfsroot=${serverip}:${rootpath},v3,tcp
set netloadfdt nfs ${fdtaddr} ${serverip}:${rootpath}/boot/am335x-boneblack.dtb
set netloadimage  nfs ${loadaddr} ${serverip}:${rootpath}/boot/zImage

uboot nfs
最后,输入启动命令,脚本会自动从NFS下载文件并启动:

run netboot
  • load下载出现T代表超时,没啥影响

如下所示:
在这里插入图片描述

3.6 结束

login

  • 最后输入登录名root可以免密码直接进入系统,如果提示登陆错误或其他错误,那么有可能是权限设置不正确,参考3.3节注意事项。
  • 如果需要使用debian或者 ubuntu等系统,没必要去编译,只需将已有的目标系统的根文件解压到NFS服务端中就行,参考3.5节进行参数替换。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值