香橙派踩坑全过程记录(一)
最近笔者看嵌入式linux挺好玩的,就入手了香橙派Zero3,对于对linux只有一丢丢了解的我开始踩坑了
Orange-build
看了一下官方的用户手册,虽然不明白这个orange-build有啥用,但是还是按照步骤下载了,然后启动编译。
当时我的环境时WSL Ubuntu 22.04 TLS版本,编译结束后,给我来个不能在wsl下跑,整麻了,于是下了一个VirtualBox虚拟机,丢个镜像进去跑。👼
对我现有的知识而言,如果要在一个机器上运行代码,那么就是要给他二进制文件就行。
如果在香橙派上下载一个编译器,写个文件编译,估计慢死,所以通常在我们的电脑端编译后再传给香橙派,这个时候,由于编译的对象和我们的电脑是两个架构平台,为了能在电脑上编译,香橙派上跑,就需要交叉编译工具链。
配置交叉编译工具链
根据官方描述,进行一次orange-build后,会把所有相关的依赖下载过来。可惜我当时没有注意这个问题,一直再使用
我一直以为这个就是交叉编译的玩意
之后使用scp将文件传递到香橙派上,哦对应的格式如下
scp 文件名 用户@ip地址:路径
之后使用串口进入到香橙派中,开始执行。
什么玩意?咋就成为文件夹了?后来我用 bash 命令强行执行这个二进制文件,直接和我说不能执行。通过 file 指令去查看文件类型,很明显,这个是arm的二进制文件,为啥出了?但是看了官方说明,应该是是aarch64,虽然不知道有什么区别,但是还是有点方向,将用aarch64来编译就行了。
接下来的做法就是将这个配置成环境变量,然后编译就行了
去修改/etc/environment,增加gcc-arm-11.2-2022.02-x86_64-aarch64-none-linux-gnu/bin的路径就行
使用aarch64-none-linux-gnu-gcc去编译文件,再用 file 去查看,是aarch64类型,成功!
用scp传递到香橙派,成功输出 Hello World
完结撒花 😄