目錄
前言:此篇搭建環(huán)境的Linux平臺為ubuntu16.0.4 64位系統(tǒng)琉挖,SDK的目標(biāo)平臺為Hi3519DV300\CV500系列。
1决摧、軟件包安裝
步驟 1 配置默認(rèn)使用 bash
執(zhí)行
#sudo dpkg-reconfigure dash
選擇 no
步驟 2 安裝軟件包
執(zhí)行:
#sudo apt-get install make libc6:i386 lib32z1 lib32stdc++6 zlib1g-dev libncurses5-dev
ncurses-term libncursesw5-dev g++ u-boot-tools:i386 texinfo texlive gawk libssl-dev openssl
bc
步驟 3 創(chuàng)建/etc/ld.so.preload 文件
并執(zhí)行
#echo "" > /etc/ld.so.preload
以解決 64bit linuxserver 上某些第三方庫編譯失敗的問題亿蒸。
步驟 4 安裝其他軟件包
因?yàn)長inux交叉編譯器是32位的,而ubuntu16.0.4是64位的掌桩,因此需要安裝lib32ncurses5和lib32z1兼容x86的運(yùn)行庫及環(huán)境边锁。
#sudo apt-get install lib32ncurses5
#sudo apt-get install lib32z1
為了解決Hi3516DV300 sdk 編譯提示 cannot find uuid library required for mkfs.ubifs錯誤,安裝u-boot-tools libuuid1:i386 gperf和zlib1g-dev liblzo2-dev uuid-dev pkg-config庫波岛。
#sudo apt-get install u-boot-tools libuuid1:i386 gperf
#sudo apt-get install zlib1g-dev liblzo2-dev uuid-dev pkg-config
2茅坛、編譯arm-himix200交叉編譯器
1)將toolchain\arm-himix200-linux.tgz拷貝到ubuntu16.0.4系統(tǒng)中
2)解壓arm-himix200-linux.tgz
執(zhí)行如下命令進(jìn)行解壓:
#tar –xzf arm-himix200-linux.tgz
3)安裝arm-himix200-linux交叉編譯器
運(yùn)行
# chmod +x arm-himix200-linux.install
然后運(yùn)行
# ./arm-himix200-linux.install
即可。
- 執(zhí)行
# source /etc/profile
安裝交叉編譯器的腳本配置的環(huán)境變量就可以生效了盆色,或者請重新登陸也可灰蛙。
5)修改環(huán)境變量
# sudo vim ~/.bashrc
bashrc文件末尾添加以下代碼:
export PATH=/opt/hisi-linux/x86-arm/arm-himix200-linux/bin:$PATH
export LC_ALL=C
6)配置環(huán)境變量生效
# source ~/.bashrc
7)查看編譯器版本
# arm-himix200-linux-gcc -v
顯示編譯器版本信息,則表示成功安裝交叉編譯器隔躲。
3摩梧、編譯uboot和Kernel
1)安裝SDK包
拷貝Hi3516C V500R001C02SPC011\01.software\board\Hi3516CV500_SDK_V2.0.1.1.tgz到ubuntu16.0.4系統(tǒng)中,運(yùn)行./sdk.unpack(請用 root 或 sudo 權(quán)限執(zhí)行)將會展開 SDK 包打包壓縮存放的內(nèi)容宣旱。
# sudo./sdk.unpack
成功執(zhí)行./sdk.unpack后仅父,會的到一個sdk包:Hi3516CV500_SDK_V2.0.1.1
如果提示source:not found,執(zhí)行dpkg-reconfigure dash(執(zhí)行時需要root權(quán)限)
#sudo dpkg-reconfigure dash
在出現(xiàn)的界面中選擇no浑吟,再運(yùn)行l(wèi)s -l /bin/sh后顯示/bin/sh/->bash
目標(biāo)是編譯sdk包Hi3516CV500_SDK_V2.0.1.1\osdrv根目錄
2)將內(nèi)核的補(bǔ)丁v4.9.37打到linux 的內(nèi)核kernel上
從linux開源社區(qū)下載v4.9.37版本的內(nèi)核:
(1) 進(jìn)入網(wǎng)站:www.kernel.org
(2)選擇HTTP協(xié)議資源的https://www.kernel.org/pub/選項(xiàng),進(jìn)入子頁面
(3)選擇linux/菜單項(xiàng)笙纤,進(jìn)入子頁面
(4)選擇kernel/菜單項(xiàng),進(jìn)入子頁面
(5)選擇v4.x/菜單項(xiàng)组力,進(jìn)入子頁面
(6)下載linux-4.9.37.tar.gz (或者linux-4.9.37.tar.xz)到osdrv/opensource/kernel目錄下
(7)在linux服務(wù)器中進(jìn)入 osdrv 的根目錄,執(zhí)行如下命令:
# cd opensource/kernel
# tar -zxf linux-4.9.37.tar.gz
# mv linux-4.9.37 linux-4.9.y
# cd linux-4.9.y
# patch -p1 < ../linux-4.9.37.patch
# cd ../
# tar -czf linux-4.9.y.tgz linux-4.9.y
# cd ../../
完成補(bǔ)丁安裝省容。
3)編譯osdrv
注意:由于Makefile中文件系統(tǒng)編譯依賴組件較多,不能保證單獨(dú)編譯的文件系統(tǒng)可用燎字,建議采用make all編譯腥椒。
進(jìn)入Hi3516CV500_SDK_V2.0.1.1\osdv根目錄
(1)清除整個osdrv目錄的編譯文件:
# make OSDRV_CROSS=arm-himix200-linux clean
(2)徹底清除整個osdrv目錄的編譯文件阿宅,除清除編譯文件外,還刪除已編譯好的鏡像:
# make OSDRV_CROSS=arm-himix200-linux distclean
(3)編譯整個osdrv
sudo make all
提示arm-hisix200-linux-gcc: command not found的解決辦法:
這是因?yàn)長inux宿主機(jī)是ubuntu 16.04 64位笼蛛,而交叉編譯器是針對32位的開發(fā)板制作的洒放。所以要安裝對應(yīng)的32位庫。
安裝命令:
# sudo apt install lib32z1-dev
然后執(zhí)行su root
# su root
輸入root密碼滨砍,進(jìn)入登錄root管理員權(quán)限往湿,如下圖,表示成功登錄root
# vim ~/.bashrc
在環(huán)境變量末尾添加以下代碼
export LC_ALL=C
export PATH="/opt/hisi-linux/x86-arm/arm-himix200-linux/bin:$PATH"
然后再執(zhí)行make all編譯osdrv
# make all
最后的編譯提示信息如下:
?編譯成功可以得到:
(1)uImage
路徑:Hi3516CV500_SDK_V2.0.1.1/osdrv/opensource/kernel/linux-4.9.y/arch/arm/uImage
(2)u-boot-hi3516dv300.bin
路徑:Hi3516CV500_SDK_V2.0.1.1/osdrv/opensource/uboot/u-boot-2016.11/u-boot-hi3516dv300.bin
編譯過程參考:
ReleaseDoc\zh\01.software\board\OSDRV\Hi3516CV500╱Hi3516DV300╱Hi3516AV300 開發(fā)環(huán)境用戶指南
ReleaseDoc\zh\01.software\board\Hi3516CV500╱Hi3516DV300╱Hi3516AV300 SDK 安裝及升級使用說明
ReleaseDoc\zh\01.software\board\OSDRV\Hi3516CV500╱Hi3516DV300╱Hi3516AV300 U-boot 移植應(yīng)用開發(fā)指南
關(guān)注公眾號“stiveallen”,回復(fù)Hi3516”惋戏,即可免費(fèi)領(lǐng)取Hi3516DV300SDK開發(fā)資料包领追。
海思AI芯片(Hi3516DV300/CV500)開發(fā)(1.資料介紹)
海思AI芯片(Hi3516DV300/CV500)開發(fā)(2.RuyiStudio安裝)