更多的细节可以直接参看luckfox-pico的说明。
下拉仓库, 并递归初始化子模块:
sh
git clone https://github.com/No-Chicken/Echo-Mate.git
cd Echo-Mate
git submodule update --init --recursive
如果要递归更新所有子模块,请执行:
sh
git submodule update --remote --merge --recursive
1. Ubuntu22.04环境下编译
安装依赖环境:
sudo apt-get install repo git ssh make gcc gcc-multilib g++-multilib module-assistant expect g++ gawk texinfo libssl-dev bison flex fakeroot cmake unzip gperf autoconf device-tree-compiler libncurses5-dev pkg-config
选择开发板并编译
./build.sh lunch ./build.sh
SDK 目录说明
├── build.sh -> project/build.sh ---- SDK编译脚本 ├── media --------------------------- 多媒体编解码、ISP等算法相关(可独立SDK编译) ├── sysdrv -------------------------- U-Boot、kernel、rootfs目录(可独立SDK编译) ├── project ------------------------- 参考应用、编译配置以及脚本目录 ├── output -------------------------- SDK编译后镜像文件存放目录 └── tools --------------------------- 烧录镜像打包工具以及烧录工具
output/ ├── image │ ├── download.bin ---------------- 烧录工具升级通讯的设备端程序,只会下载到板子内存 │ ├── env.img --------------------- 包含分区表和启动参数 │ ├── uboot.img ------------------- uboot镜像 │ ├── idblock.img ----------------- loader镜像 │ ├── boot.img -------------------- kernel镜像 │ ├── rootfs.img ------------------ kernel镜像 │ └── userdata.img ---------------- userdata镜像 └── out ├── app_out --------------------- 参考应用编译后的文件 ├── media_out ------------------- media相关编译后的文件 ├── rootfs_xxx ------------------ 文件系统打包目录 ├── S20linkmount ---------------- 分区挂载脚本 ├── sysdrv_out ------------------ sysdrv编译后的文件
2. 如何修改内核设置 kernel config
首先进入/rv1106-sdk/sysdrv/source/kernel
, 然后终端中输入
sh
make ARCH=arm menuconfig
可以参考luckfox的文档进行学习,这里也进行了一些搬运.
按键操作:
↑
↓
PgUp
PgDn
:浏览、选择内核功能←
→
:选择Select、Exit等操作Enter
:进入子菜单Y
:选中这项功能N
:排除这项功能M
:以模块的形式选择Esc
:双击Esc返回上一级菜单?
:查看这项功能的帮助信息/
:搜索
图例说明:
[*]
:已选中的项目[ ]
:未选中的项目<M>
:已选中的项目(以模块形式)< >
:未选中的项目(以模块形式)
然后更改完,保存退出,执行:
sh
make ARCH=arm savedefconfig
cp defconfig ./arch/arm/configs/echo_rv1106_linux_defconfig
然后重新编译即可。
3. 如何在buildroot加入包
如果你想加入一些包,例如json-cpp
,websocketpp
等等,可以进入buildroot menuconfig进行添加,当然这些我默认已经都加上了~
首先进入rv1106-sdk/sysdrv/source/buildroot/buildroot-2023.02.6
这个文件夹,终端打开
如果没有默认配置,可以使用echo的默认配置:
sh
make echo_mate_defconfig
在你的配置基础上,想进行包的增加,打开menuconfig:
sh
make menuconfig
然后增加完改完之后,保存:
sh
make savedefconfig
最后重新编译即可
4. 设备树的位置说明
设备树的位置在:rv1106-sdk/sysdrv/source/kernel/arch/arm/boot/dts/rv1106g-echo-mate.dts
以及rv1106-echo-mate-ipc.dtsi
,可以自行操作更改。