在收到新的開發板并準備開始我們的開發之旅之前,我們還需要進行一些必要的準備工作,這些準備工作包括開發環境搭建、內核編譯、kernel配置等,以確保我們的開發板能夠正常運行并為我們提供所需的功能。
接下來,我們將以飛凌OK113i-C開發板為例,詳細介紹開發板試用的初體驗,通過這些步驟幫助你順利地開始你的開發板試用之旅。
環境搭建
板子做工精致很有份量,拿在手里沉甸甸的,各種接口一應俱全——USB、TF 卡座、SIM卡座、4G模塊卡座、網口、RGB LCD接口、LVDS、RS485、CAN、各種音頻口、TV-in/TV-Out,板上還自帶一個RTL8723du wifi/藍牙二合一模塊,作為一塊主打工業控制的主控板這些接口實屬綽綽有余了。
飛凌開發文檔中提到已經移植好了Qt5開發環境,所以這個內存跑跑Qt的UI程序是再合適不過了,可惜手里沒有匹配的開箱即用的LCD顯示屏不然接上直接能試試出廠自帶的Qt測試程序了。
提供的開發資料中已經包含有Ubuntu 20.04 的虛擬機文件,因為是直接用的Linux版本系統,所以需要自己搭建開發環境,以下所涉內容都是在裝有Ubuntu 20.04的PC上進行操作,而且,因為以前在安裝過T113-S3的開發環境,所以在編譯SDK過程中并沒有碰到其他因缺少依賴軟件報的錯誤。
解壓SDK
cat OK113i-linux-sdk.tar.bz2* | tar jx -C ~/Dev/sdk/T113-i/
除了 gcc,ncurse,bison,autoconf,wget,patch,texinfo,zlib,dos2unix 之外需要安裝如下:
sudo apt-get install git sudo apt-get install gnupg sudo apt-get install flex sudo apt-get install bison sudo apt-get install gperf sudo apt-get install build-essential sudo apt-get install zip sudo apt-get install curl sudo apt-get install libc6-dev ......
初次編譯內核會遇到python 報系統庫語法錯誤,根據經驗是系統python版本問題,首先查看系統中python版本號
python --version Python 3.8.10
不出意外的話編譯系統依賴python 2.7,所以切換到python 2.7版本,具體操作如下:
首先,查看系統有幾個python版本
update-alternatives --list python /usr/bin/python2 /usr/bin/python3
然后,通過如下切換到想要的版本
update-alternatives --config python There are 2 choices for the alternative python (providing /usr/bin/python). Selection Path Priority Status ------------------------------------------------------------ * 0 /usr/bin/python3 2 auto mode 1 /usr/bin/python2 1 manual mode 2 /usr/bin/python3 2 manual mode Pressto keep the current choice[*], or type selection number: 1
切換后,再確認python版本后進行內核編譯。
內核編譯完后OK113i-linux-sdk/out目錄需要注意,這個是所有的編譯輸出目錄,后面buildroot編譯完也是在這個目錄編譯輸出的。此目錄中如下幾個目錄需要特別記住:
編譯內核的交叉編譯工具鏈
OK113i-linux-sdk/out/gcc-linaro-5.3.1-2016.05-x86_64_arm-linux-gnueabi
buildroot的交叉編譯工具鏈
printf("hello world!");OK113i-linux-sdk/out/t113_i/ok113i/longan/buildroot/host/bin/中 arm-linux-gnueabi-g++
內核編譯輸出目錄
OK113i-linux-sdk/out/kernel
Buildroot編譯
默認全部編譯運行build.sh,會有如下打印有用信息,此處記錄下編譯Qt測試程序時候的打印:
... /home/luoyang/Dev/sdk/T113-i/OK113i-linux-sdk/out/t113_i/ok113i/longan/buildroot/host/bin/arm-linux-gnueabi-g++ -c -pipe -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os --sysroot=/home/luoyang/Dev/sdk/T113-i/OK113i-linux-sdk/out/t113_i/ok113i/longan/buildroot/host/arm-buildroot-linux-gnueabi/sysroot -O2 -O3 -Wall -W -D_REENTRANT -fPIC -DQT_NO_UITOOLS -DQT_NO_DEBUG -DQT_WEBKITWIDGETS_LIB -DQT_PRINTSUPPORT_LIB -DQT_WIDGETS_LIB -DQT_WEBKIT_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -I/home/luoyang/Dev/sdk/T113-i/OK113i-linux-sdk/out/t113_i/ok113i/longan/buildroot/host/arm-buildroot-linux-gnueabi/sysroot/usr/include/qt5 -I/home/luoyang/Dev/sdk/T113-i/OK113i-linux-sdk/out/t113_i/ok113i/longan/buildroot/host/arm-buildroot-linux-gnueabi/sysroot/usr/include/qt5/QtWebKitWidgets -I/home/luoyang/Dev/sdk/T113-i/OK113i-linux-sdk/out/t113_i/ok113i/longan/buildroot/host/arm-buildroot-linux-gnueabi/sysroot/usr/include/qt5/QtPrintSupport -I/home/luoyang/Dev/sdk/T113-i/OK113i-linux-sdk/out/t113_i/ok113i/longan/buildroot/host/arm-buildroot-linux-gnueabi/sysroot/usr/include/qt5/QtWidgets -I/home/luoyang/Dev/sdk/T113-i/OK113i-linux-sdk/out/t113_i/ok113i/longan/buildroot/host/arm-buildroot-linux-gnueabi/sysroot/usr/include/qt5/QtWebKit -I/home/luoyang/Dev/sdk/T113-i/OK113i-linux-sdk/out/t113_i/ok113i/longan/buildroot/host/arm-buildroot-linux-gnueabi/sysroot/usr/include/qt5/QtGui -I/home/luoyang/Dev/sdk/T113-i/OK113i-linux-sdk/out/t113_i/ok113i/longan/buildroot/host/arm-buildroot-linux-gnueabi/sysroot/usr/include/qt5/QtNetwork -I/home/luoyang/Dev/sdk/T113-i/OK113i-linux-sdk/out/t113_i/ok113i/longan/buildroot/host/arm-buildroot-linux-gnueabi/sysroot/usr/include/qt5/QtCore -I. -I. -I/home/luoyang/Dev/sdk/T113-i/OK113i-linux-sdk/out/t113_i/ok113i/longan/buildroot/host/mkspecs/devices/linux-buildroot-g++ -o settings.o settings.cpp /home/luoyang/Dev/sdk/T113-i/OK113i-linux-sdk/out/t113_i/ok113i/longan/buildroot/host/bin/qmake -o Makefile /home/luoyang/Dev/sdk/T113-i/OK113i-linux-sdk/platform/framework/auto/qt_demo/terminal/terminal.pro ) && make -f Makefile build emmc rootfs PARTITION_FEX=/home/luoyang/Dev/sdk/T113-i/OK113i-linux-sdk/device/config/chips/t113_i/configs/ok113i/longan/sys_partition.fex ROOTFS_FEX_LINE=64 ROOTFS_FEX_STR= size = 2097152 ROOTFS_FEX_SIZE= 2097152 EXT4_SIZE=1073741824(1073741824/1024/1024) /home/luoyang/Dev/sdk/T113-i/OK113i-linux-sdk/device/config/chips/t113_i/configs/ok113i/longan/sys_partition.fex rootfs.fex size is 2097152 EXT4_SIZE= 2097152*512=1073741824 Creating filesystem with parameters: Size: 1073741824 Block size: 4096 Blocks per group: 32768 Inodes per group: 8192 Inode size: 256 Journal blocks: 4096 Label: Blocks: 262144 Block groups: 8 Reserved blocks: 0 Reserved block group size: 63 Created filesystem with 8976/65536 inodes and 94920/262144 blocks /home/luoyang/Dev/sdk/T113-i/OK113i-linux-sdk/build/bin/make_ext4fs -s -l 1073741824 /home/luoyang/Dev/sdk/T113-i/OK113i-linux-sdk/out/t113_i/ok113i/longan/rootfs.ext4 /home/luoyang/Dev/sdk/T113-i/OK113i-linux-sdk/out/t113_i/ok113i/longan/buildroot/target
可以知道:
移植好的qmake所在路徑:
OK113i-linux-sdk/out/t113_i/ok113i/longan/buildroot/host/bin/qmake
Qt示例工程源代碼目錄在:
/home/luoyang/Dev/sdk/T113-i/OK113i-linux-sdk/platform/framework/auto/qt_demo
編譯好的驅動模塊都在:
OK113i-linux-sdk/out/t113_i/ok113i/longan/dist
最后總結
板子出廠的rootfs中包含的基礎軟件是真的很全面,基本可以做到開箱即用了,wifi驅動也已經適配了,wpa_supplicant、bluealsa、bluez、alsa、tinyalsa等工具軟件也已經包含。因為目前手頭沒有能直接可用的顯示屏,所以HMI顯示和視頻解碼等高級功能沒法體驗。不過對于喜歡折騰的先適配一塊觸摸顯示屏還是很有必要的,這樣可玩性更高。
審核編輯:湯梓紅
-
內核
+關注
關注
3文章
1382瀏覽量
40421 -
開發板
+關注
關注
25文章
5121瀏覽量
98189 -
開發環境
+關注
關注
1文章
230瀏覽量
16696 -
飛凌
+關注
關注
0文章
134瀏覽量
16171
原文標題:【T113-i開發板試用】飛凌OK113i-C開發板初體驗
文章出處:【微信號:gh_79acfa3aa3e3,微信公眾號:全志在線】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論