一,前言
二,实践
A. 板子跑起来
下载镜像 方法A:在官网http://beagleboard.org/latest-images中下载sd卡的4GB镜像,用etcher来烧录镜像到sd卡中。 不需要解压,直接加载am335x-debian-11.7-iot-armhf-2023-09-02-4gb.img.xz即可,导入后它自己会解压,可以看到400M变成了3.77G。烧录时间约15分钟。 所以SD卡需要大于4G空间。截图如下
- 硬件板子+USB线供电+USB转串口 关于USB线的PIN脚为,J1--白色(GND),J4--绿色(RX),J5--红色(TX)。
- 使用串口工具MobaXterm 设置波特率115200,数据位为8,停止位为1,然后选择识别到的串口即可。
- 串口连接后就可以登录了,用户名和密码为debian:temppwd。当然直接输入root也可以,就免密了。登录成功如下图,我用了root
B. 通过SSH来连接Linux进行文件交换
- USB供电线连接后,其实就自动在安装USB虚拟网卡驱动了。在网络连接中应该可以看到一个RNDIS虚拟的网络连接设备。 a. 若无法看到,应该是驱动安装不正确,选择H:\Drivers\Windows\src来进行手工安装。 b. 若依然无法安装提示数字签名相关,则说明启动默认驱动都要数字签名。开始->设置->更新和安全,选择恢复,然后点击立即重新启动,选择疑难解答->高级->启动设置。然后选择F7(禁止强制驱动数字签名),然后PC会自动重启,重新按上一步手工安装下驱动即可。 安装成功后如下图
- 默认的IP地址是192.168.2.7,所以RNDIS的ip地址为同一网段,就设置为192.168.7.1吧,双向ping都可以ping通。
- 设置开发板RNDIS能直接上网,开启共享。若RNDIS的IP地址被自动修改,重新设置为192.168.7.1即可
- 此时已经可以用ssh网络协议来连接PC和开发板了。设置ssh连接,ip地址为192.168.7.2用户为root即可
- 为了能上外网解析DNS地址,需要添加gateway(可选) 命令为: default gw 192.168.7.1 /etc/resolv.conf中添加2个nameserver,添加完成后如下
root@beaglebone:~# vim /etc/resolv.conf
root@beaglebone:~# cat /etc/resolv.conf
nameserver 127.0.0.1
nameserver 8.8.8.8
nameserver 114.114.114.114
C. ubuntu编译环境搭建
- 暂时仅需要一个交叉编译环境。将之前使用过的教程编译环境copy后解压,结果准备看版本的时候,动态库不正确,这原因是本次ubuntu14.04.6是64bit的,所以缺少32bit的动态库。
root@ubuntu:/work/tools/gcc-linaro-arm-linux-gnueabihf-4.9-2014.07_linux/bin# ./arm-linux-gnueabihf-gcc-4.9.1 -v
./arm-linux-gnueabihf-gcc-4.9.1: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
后来查了下不能装这个了,这是PC端32bit专用的。 需要装PC端64bit的gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz,下载路径如下(x86_64说明是ubuntu64 bit用的),网址链接为Linaro Releases
2. 下载linux源码作为头文件用,所以使用相同的img对应的源码5.10。
3. 先编译一个简单的printf的app放入开发板,能正常输出,判断为环境搭建成功。
三,小结
以前win10上由于RNDIS没安装成功,所以用了曲线救国的方法,开发板通过ssh连接一台ubuntu的PC,然后win10的PC再同台vnc来远程访问ubuntu的PC,而且也没开通开发板联网功能,算单机版本,本次的环境方便多了。只是vscode无法通过ssh直接连接到开发板,这个有点奇怪,不过暂时用不到。