天天看點

海思HI3518e開發闆 SDK安裝使用

已經完成了海思sdk包的相關實驗,

1 安裝海思交叉編譯工具鍊由于工具鍊是32位的,64位的ubuntu需要安裝32位的相容包;

2 中間遇到問題,使用aptitude安裝lib32z1和lib32stdc++6-4.8-dbg;

3 使用/Hi3518E_SDK_V1.0.3.0/osdrv/opensource/toolchain/arm-hisiv300-linux/目錄下的cross.install.v300來安裝交叉編譯工具鍊,該程式會将交叉編譯工具鍊安裝在

/opt/hisi-linux/x86-arm/arm-hisiv300-linux/bin/目錄下,符号連接配接arm-hisiv300-linux-放在了/opt/hisi-linux/x86-arm/arm-hisiv300-linux/target/bin/目錄下,所有需要将這個目錄導出到環境變量,方法vi打開/etc/profile檔案,添加export PATH=”/opt/hisi-linux/x86-arm/arm-hisiv300-linux/target/bin:$PATH”,到檔案底部,這樣每次開機都會這行這個語句将符号連接配接導出到換将變量,然後運作一下source /etc/profile,可以通過運作arm-hisiv300-linux-gcc -v來測試工具鍊是否安裝正确

4 編譯osdrv

(1)編譯整個osdrv目錄:make OSDRV_CROSS=arm-hisiv300-linux CHIP=hi3518ev200 all

(2)清除整個osdrv目錄的編譯檔案:make OSDRV_CROSS=arm-hisiv300-linux CHIP=hi3518ev200 clean:

(3)徹底清除整個osdrv目錄的編譯檔案,除清除編譯檔案外,還删除已編譯好的鏡像:make OSDRV_CROSS=arm-hisiv300-linux CHIP=hi3518ev200 distclean

(4)單獨編譯kernel:

cp arch/arm/configs/hi3518ev200_full_defconfig .config

make ARCH=arm CROSS_COMPILE=arm-hisiv300-linux- menuconfig

make ARCH=arm CROSS_COMPILE=arm-hisiv300-linux- uImage

(5)單獨編譯子產品:

cp arch/arm/configs/hi3518ev200_full_defconfig .config

make ARCH=arm CROSS_COMPILE=arm-hisiv300-linux- menuconfig

make ARCH=arm CROSS_COMPILE=arm-hisiv300-linux- modules

(6)單獨編譯uboot:

make ARCH=arm CROSS_COMPILE=arm-hisiv300-linux- hi3518ev200_config

将生成的u-boot.bin 複制到osdrv/tools/pc/uboot_tools/目錄下

運作./mkboot.sh reg_info.bin u-boot-ok.bin

生成的u-boot-ok.bin即為可用的u-boot鏡像

整體編譯過程中出現的錯誤

錯誤:compr_zlib.c:39:18: fatal error: zlib.h: No such file or directory

因為找不到zlib.h是以編譯錯誤,zlib.h在tools/pc/zlib/tmp/include目錄中有,隻需要複制到tools/pc/jffs2_tool/tmp/include目錄中即可。注意同時要将zconf.h也複制過去的。還有,要将tools/pc/jffs2_tool/tmp/lib目錄下的libz.a libz.so libz.so.1 libz.so.1.2.7等4個檔案複制到tools/pc/jffs2_tool/tmp/lib目錄下,不然一會兒還得報錯。

其他錯誤

還報錯就不管了,此時~/sambashare/Hi3518E_SDK_V1.0.3.0/osdrv/tools/pc/jffs2_tool/tmp/mtd-utils-1.5.0已經有了mkfs.jffs2了,我們就是隻要這個而已,手工将其複制到osdrv/pub/bin/pc目錄下即可。

錯誤資訊:serve_image.c:32:18: error: storage size of ‘hints’ isn’t known

解決方法:修改作業系統頭檔案/usr/include/netdb.h,将此宏__USE_XOPEN2K注釋,如下圖(注意#ifdef與#endif是一一對應的,而且裡面有兩個)

最終結果

在osdrv/pub/image_uclibc目錄下得到的uboot和uImage即是我們要的uboot鏡像和kernel的uImage鏡像,而根檔案系統鏡像在osdrv/pub目錄下。

繼續閱讀