1. 源代碼獲取
RV1126B的ubuntu系統(tǒng)SDK基于ubuntu22.04進(jìn)行適配移植,所以建議同樣在ubuntu22.04的環(huán)境(如EASY-EAI編譯環(huán)境)下編譯開發(fā),并且源碼部署在服務(wù)器http://os.easy-eai.com上,因此也要先在【開發(fā)環(huán)境】中部署http://os.easy-eai.com的git倉(cāng)庫(kù)私鑰。
1.1 開發(fā)環(huán)境準(zhǔn)備
如果您需要使用EASY-EAI編譯環(huán)境,請(qǐng)閱讀《入門指南/開發(fā)環(huán)境準(zhǔn)備/Easy-Eai編譯環(huán)境準(zhǔn)備與更新》,并按照其相關(guān)的操作,進(jìn)行編譯環(huán)境的部署。
在PC端Ubuntu系統(tǒng)中執(zhí)行run腳本,進(jìn)入EASY-EAI編譯環(huán)境,具體如下所示。
cd ~/develop_environment
./run.sh 2204 
安裝編譯輔助工具:
sudo apt-get update && sudo apt-get install filegit倉(cāng)庫(kù)私鑰部署:
若無(wú)~/.ssh目錄,則創(chuàng)建公/私鑰存放目錄:
mkdir ~/.ssh && ~/.ssh
vim id_rsa 注:若已存在id_rsa文件,請(qǐng)用戶根據(jù)自身情況管理公/私鑰。
復(fù)制下面內(nèi)容到~/.ssh/id_rsa文件中
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABlwAAAAdzc2gtcn
NhAAAAAwEAAQAAAYEAszGaGzFlR31Ab16URZGj6ypJK0rbMAmMFuhd2mFnh3Hp8ZFz1A0q
cweE6eVbkcwGhuNGw4w4iXd+Gb2mjJtV8aXbBqN4akdY9uV/E7P8FAVJZ7D2R4hLQIWBn8
ufTol3CtFiCcIgstp+JmqXLbaPk1dJ/1+1izA/kyYLHXJmiXIFXnVBj97nI4CT1WTRYely
08PzPH2r1dFjhVKb3b/ycPkE1xl7rmoyTEDf//gyx6C//EE7vXvUc68eEl17Qi/dK+QL/j
OjVlTb6IIdaTxKgEnz+NaEfbdt2GRD7jdGVrvt6VN1qfG3x0GaZkDRucan+ouC7aCuaOhd
+XIyz/XWvZkC1nYsmX+9ZgWd+T7QKLUtm7N0P7wjnM7Z4HT6jbZvSqciH82F/apw9L5nN8
zJRJfIiRg80te0CJlPp3MGtHy+5uLffpIfZWEUrK1GhTVXGRPbZIKWC4/0KEhi/5XRYL3e
tvbu6AE0V80br5GzT7ihWXXXP6dx4kN3NzM1+sP7AAAFiJ1bV52dW1edAAAAB3NzaC1yc2
EAAAGBALMxmhsxZUd9QG9elEWRo+sqSStK2zAJjBboXdphZ4dx6fGRc9QNKnMHhOnlW5HM
BobjRsOMOIl3fhm9poybVfGl2wajeGpHWPblfxOz/BQFSWew9keIS0CFgZ/Ln06JdwrRYg
nCILLafiZqly22j5NXSf9ftYswP5MmCx1yZolyBV51QY/e5yOAk9Vk0WHpctPD8zx9q9XR
Y4VSm92/8nD5BNcZe65qMkxA3//4Msegv/xBO7171HOvHhJde0Iv3SvkC/4zo1ZU2+iCHW
k8SoBJ8/jWhH23bdhkQ+43Rla77elTdanxt8dBmmZA0bnGp/qLgu2grmjoXflyMs/11r2Z
AtZ2LJl/vWYFnfk+0Ci1LZuzdD+8I5zO2eB0+o22b0qnIh/Nhf2qcPS+ZzfMyUSXyIkYPN
LXtAiZT6dzBrR8vubi336SH2VhFKytRoU1VxkT22SClguP9ChIYv+V0WC93rb27ugBNFfN
G6+Rs0+4oVl11z+nceJDdzczNfrD+wAAAAMBAAEAAAGAAw0pLqVcsCb13e+iXrzoKa0Cqf
YQXXUMKaezUXCvLqNF9JMhgc7nliXeoY0CTi1HPyzHm7TbkZuzTgTovSQ4BnFolWhbOJQW
c73cuB0sgbrFUTq2NumfPm4Hkw0InXHB0TFXlgr0O5d05nqSMHkXYM7vt6WNld0wd/UB43
J7RIPoi387qpOFJBmgatXYqu4qwmhnz/Pj5TQ3maGafeAy5LGY34DTlljAmoPQTK+RTczy
9/y0Y7mkGIQ24uEspCfkePndHHIFTMSCYo+l+xtOij/5yd0UgtqX9/Pw+BGPQubhPIV+x2
V1kfkuRGPEhTBgXyQsmyOcIAJFd/9nrf1M2L6XQr4ZdT4TBY6uUz4ReyeVIYMgYEwRUCIU
eaiQQQWVChiW7oYdZMUBjBrPhcYFdQcitkDrU3vEE6vmWugs15U8TN7MLoaB+3NwPuMfRZ
EL7sd32gHS7eHTcYmy310iS4Tj5KwtnkUgg6fWUxmDcwLoOZYsCxhjOLXPX+Tkt02hAAAA
wAqMwz2n37KPA7OOmrHqUinL5XL28jZJ/0XNsijWzqkqhcQkOR6OuDFfldyAESy7469NHi
uZd9LEFXPEAXvWbltlbaXMrBOJ3K9ABPfT9A39xrTQIZx0G/yLHwmn+3zKgfUCJTqxEBqA
ucsphnLJfLSrDGKCwUg3Fb+6lGUCUNAURLuPaVZ3oza5Ey3+TwaVwgz86d2tpyqDhdaHYr
mr5lpOgx5qemwfoHXC/FbBGPWBUFqY204pDk50d1JjWuURSgAAAMEAzXn/9CBK9OWRv268
kGXbFNag7ElH7/tgHVzIFBu6+4UvMd8Vlfc5BtdHoSd2uuyrEP/mO8pJl6IGuLqfGModsO
DQbhZSzdjM/8Qx8j6Trv7d7RpfYOHwVRbSxBB5DaxEfoewPtDodRd4m9skwWAT1HlN8UdM
GWCJ5WlwFgfUlKCcU2lr6LpZSrplmVNPv1putEIOHKGiXYPgzqN0HHMniaHpQwBafxWHtX
qsBksWBwPNh+M5zW7QL06k2Ocw8xV1AAAAwQDfQTIMHB7aI1OMn6QdXAWK/PMzWU7riAXO
UZhLTin9IZv8kBALqnIJMHYx0n6PnufrQVjz2judV2+BqeM5PWxsRmr9oAi9/vboKKy7q6
eMvKsv6k+6DEwCH5Kj9B/f9mzviLqR1hi+KOs/HSbNPSwFi7qA9jKyVVDN2+kEc4Ls6tfF
OtDfjGrQ65IZAHcS23s+a1lUVxpI8SmEgfi8mKYFLJwXReHXUOKXOwr5JBRyX6tVJuLj5m
/mGmwgwj7Kla8AAAARdXNlckBlYXN5LWVhaS5jb20BAg==
-----END OPENSSH PRIVATE KEY-----把id_rsa的權(quán)限改到400
chmod 400 id_rsa
ls -alh id_rsa 
1.2 拉取源代碼
去到/opt目錄,創(chuàng)建rv1126b_sdk目錄:
mkdir /opt/rv1126b_sdk
cd /opt/rv1126b_sdk 
然后拉取ubuntu系統(tǒng)SDK代碼:
git clone git@os.easy-eai.com:ubuntu_sdk/ubuntu.git
2. 源碼編譯指導(dǎo)
進(jìn)入源碼目錄,可以看到有下列內(nèi)容:

2.1 查看配置文件
編譯的第一步,就是板卡配置預(yù)加載:

查看configs目錄,能夠看到各種板卡【對(duì)應(yīng)】的配置文件:

此處我們選擇【easy-eai-nano-tb-gstreamer-2204-cfg.sh】
./build.sh configs/easy-eai-nano-tb-gstreamer-2204-cfg.sh2.2 編譯說(shuō)明
加載完配置文件后,再次執(zhí)行build.sh,就能看到編譯的各個(gè)模塊:

all:整個(gè)固件進(jìn)行編譯
uboot:僅編譯生成uboot鏡像(uboot.img)
kernel:僅編譯生成內(nèi)核鏡像(boot.img)
rootfs:僅編譯生成ubuntu文件系統(tǒng)鏡像(rootfs.img)
通常第一次編譯,選擇./build.sh all
./build.sh all
彈出交互提示,敲下【回車鍵】確認(rèn)執(zhí)行。然后腳本就會(huì)開始自動(dòng)從服務(wù)器上拉取【各個(gè)鏡像模塊】的源代碼進(jìn)行【鏡像編譯構(gòu)建】。
* 注意:在編譯【到內(nèi)核】時(shí),會(huì)有一步檢查磁盤文件時(shí)間戳的操作,如果此時(shí)/mnt已經(jīng)斷開,則會(huì)因?yàn)閚fs無(wú)限超時(shí)一直卡著不動(dòng)。解決方法是:先用Ctrl+C退出編譯,然后再用sudo umount -f /mnt去卸載這個(gè)目錄,最后再重新編譯。
3. 目錄簡(jiǎn)要說(shuō)明
3.1 固件輸出目錄
編譯完成后,固件會(huì)在【output】目錄輸出,如下所示:

僅需要把boot.img、MiniLoaderAll.bin、parameter.txt、rootfs.img、uboot.img替換掉固件中的對(duì)應(yīng)文件即可。
3.2 uboot
存放uboot源碼的目錄是:u-boot

修改uboot后,要重新編譯uboot,不要回到上級(jí)目錄執(zhí)行./build.sh uboot,而是要在u-boot目錄中執(zhí)行:
./make.sh3.3 kernel
存放內(nèi)核發(fā)布源碼的目錄是:kernel

不建議直接在kernel目錄里修改源碼,因?yàn)橹鼐幷麄€(gè)固件時(shí),kernel目錄會(huì)被整個(gè)刪掉并且從配置好的遠(yuǎn)程服務(wù)器里重新拉取一個(gè)新的下來(lái),以確?!菊麄€(gè)固件】的唯一性。
關(guān)于內(nèi)核源碼具體要如何修改,會(huì)在《嵌入式底層開發(fā)/ubuntu系統(tǒng)SDK/kernel》一文中進(jìn)行詳細(xì)描述。
3.4 rootfs
ubuntu系統(tǒng)rootfs.img的制作就稍微復(fù)雜一些,它涉及到configs、hooks、overlay三個(gè)目錄:

由于rootfs制作較為復(fù)雜,關(guān)于rootfs.img的修改也不在本文展開討論。會(huì)在《嵌入式底層開發(fā)/ubuntu系統(tǒng)SDK/rootfs》一文中進(jìn)行詳細(xì)描述。
-
人工智能
+關(guān)注
關(guān)注
1822文章
50630瀏覽量
268330 -
開發(fā)板
+關(guān)注
關(guān)注
26文章
6572瀏覽量
121529 -
瑞芯微
+關(guān)注
關(guān)注
27文章
931瀏覽量
54792 -
EASY-EAI靈眸科技
+關(guān)注
關(guān)注
4文章
156瀏覽量
3764 -
RV1126B
+關(guān)注
關(guān)注
0文章
152瀏覽量
302
發(fā)布評(píng)論請(qǐng)先 登錄
瑞芯微(EASY EAI)RV1126B 音頻輸入
瑞芯微(EASY EAI)RV1126B PWM使用
瑞芯微(EASY EAI)RV1126B 音頻輸出
瑞芯微(EASY EAI)RV1126B RV1126B最小系統(tǒng)
瑞芯微RV1126B開發(fā)板(EASY-EAI-PI2) 主板簡(jiǎn)介
【EASY EAI Nano-TB(RV1126B)開發(fā)板試用】+初識(shí)篇
【EASY EAI Nano-TB(RV1126B)開發(fā)板試用】命令行功能測(cè)試-shell腳本進(jìn)行IO控制-燈閃
【EASY EAI Nano-TB(RV1126B)開發(fā)板試用】介紹、系統(tǒng)安裝
【免費(fèi)試用】EASY EAI Nano-TB(RV1126B)開發(fā)套件評(píng)測(cè)
瑞芯微RV1126B特性概述
瑞芯微(EASY EAI)RV1126B rknn-toolkit-lite2使用方法
瑞芯微(EASY EAI)RV1126B yolov11訓(xùn)練部署教程
瑞芯微RV1126B 方案特性
瑞芯微(EASY EAI)RV1126B kernel
瑞芯微(EASY EAI)RV1126B ubuntu系統(tǒng)SDK源碼獲取
評(píng)論