国产香橙派Zero2(1):环境部分
本文前言
!~! 我现在(20230624)的整套开发环境:
win10 :MobaXterm_Personal_20.3;FileZilla Client;Source Insight 4.0;VM16+Ubuntu2204
开发板(新版5.16.17):OrangepiZero2(Welcome to Orange Pi 3.0.6 Jammy with Linux 5.16.17-sun50iw9)
现在才感觉到为什么要在同一个软件里搞开发的重要性了,把服务器和开发板都连接到MobaXterm虽然前期麻烦一点,但这样就可以将所有的操作都转移到win10上来,方便一些,不过学习的阶段还是要多区虚拟机里看图形化的文件系统会比较好
!~! 一般程序的开发过程:
我们一般情况下是将程序在win10的Source Insight 4上编写完,然后通过FileZilla传到ubuntu服务器上用 开发板对应的交叉编译工具链 编译好后,再通过 nfs文件共享 传到开发板上运行。(不在开发板上直接编译的原因主要是开发板的性能支持不了编译很大的文件)
1.开发板通过串口连接到电脑上,会有一点延时(但最多2分钟)
2.手机当热点时:开发板与笔记本VM里的虚拟主机进行nfs文件共享时,要把虚拟机的网卡改到桥接模式,重启虚拟机即可。
服务器端配置(我的虚拟机)::
先安装 nfs :
sudo apt-get install nfs-kennel-server
配置/etc/exports文件
最后一行加:共享目录 *(rw,sync.no_root_squash,no_subtree_check)
启动:
sudo /etc/init.d/rpcbind start
sudo /etc/init.d/nfs-kernel-server start
服务器上的测试:
showmount -e 或 ps -A | grep nfs
客户端配置(我的板子)::
sudo apt-get install nfs-common
查看服务器上的共享文件夹:
showmount -e 服务端IP
挂载文件夹:
mount -t nfs -o nolock,vers=3 192.168.43.172:/home/lyprc/nfs /mnt
!!!注意:服务器和开发板要连接的wifi热点必须要在两者开机前打开(虚拟机开机,板子上电)
!!!注意:板子挂载文件夹后没有内容可以后退一下在cd回去就有了
3. 交叉编译工具链 (aarch64-none-linux-gnu-gcc):
你在香橙派官网上下载的https://github.com/orangepi-xunlong/orangepi-build,里面运行build.sh就是编译内核和root了,其中他也会给你下载 交叉编译工具链 。
同时为了使用它你还要配置环境
vim ~/.bashrc
最后一行添加:
export PATH=/home/lyprc/文档/orangepi-build-main/toolchains/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu/bin
(这里为什么有个汉字 “文档” ,是因为我的服务器系统语言是中文导致的,中文可能会导致一些问题,不过现在还没有出现,等出现了我再回来说一下)
加载环境变量
source ~/.bashrc
虽然 交叉编译工具链 叫做
gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu
但实际上工具本身叫做
aarch64-none-linux-gnu-gcc
!!!
新版5.16内核在用命令直接编译内核时的交叉编译工具链即便是添加了环境变量,也依旧会出错,因此可以改为绝对路径。如下所示:
sudo make ARCH=arm64 CROSS_COMPILE=/home/lyprc/LOVE/OrangepiZero2/orangepi-build-next/toolchains/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu- -j8
未完待续。。。