飛凌嵌入式RK3399開發板使用過程中問題實錄及解決思路
飛凌RK3399的開發板,已經推出了一段時間,根據飛凌嵌入式技術服務部統計的客戶問題反饋,整理了一份客戶在使用RK3399開發板過程中經常遇到的幾個問題,并提供了解決思路。
RK3399開發板簡介:
飛凌嵌入式OK3399-C開發板采用瑞芯微公司國產CPU處理器 RK3399設計。性能強勁,具備2個ARM Cortex-A72內核,主頻1.8GHz;4個ARM Cortex-A53內核,主頻1.4GHz;GPU采用Mali-T864,支持OpenGL ES 1.1/2.0/3.0/3.1, OpenVG1.1, OpenCL, DX11;RK3399開發板板載2GB LPDDR3 RAM,16GB eMMC ROM;RK3399開發板具備多種顯示接口 ,包括HDMI 2.0 、MIPI-DSI 、eDP 1.3、DP 1.2,最大分辨率達4K,支持雙屏同顯、雙屏異顯;同時提供多種外設接口,如PCIe、USB3.0 Host,Type-C、MIPI-CSI、SPDIF、I2C、SPI 、UART 、ADC、PWM、GPIO 、I2S(支持8路數字麥克風陣列輸入)和千兆以太網。
注:以下問題,均為在使用飛凌RK3399開發板過程中,遇到的一些問題及提供的解決思路,其它品牌RK3399開發板,用戶可根據飛凌提供的解決思路,嘗試解決。
一、RK3399修改調試串口波特率
RK3399調試串口默認波特率為1500000,但部分轉換芯片最高支持115200,于是部分情況下就需要修改RK3399調試串口波特率
RK3399調試串口相關的設置均可在設備樹中修改。
打開設備樹:kernel/arch/arm64/boot/dts/rockchip/ok3399.dts
找到fiq_debugger字段:
fiq_debugger: fiq-debugger {
compatible = "rockchip,fiq-debugger";
rockchip,serial-id = <2>;
rockchip,wake-irq = <0>;
rockchip,irq-mode-enable = <0>; /* If enable uart uses irq instead of fiq */
rockchip,baudrate = <1500000>; /* Only 115200 and 1500000 */
pinctrl-names = "default";
pinctrl-0 = <&uart2c_xfer>;
interrupts = <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH 0>;
};
修改波特率需要修改baudrate的值,但只能修改內核階段。
二、RK3399 Linux下修改各分區大小的方法
首先,解壓源碼,RK3399燒寫以一個update.img的方式燒寫,所以修改分區需要重新編譯
打開源碼目錄下的/param/parameter.txt文件
看到如下內容:
CMDLINE: mtdparts=
rk29xxnand:0x00002000@0x00004000(uboot),
0x00002000@0x00006000(trust),
0x00002000@0x00008000(misc),
0x00010000@0x0000a000(boot),
0x00010000@0x0001a000(recovery),
0x00010000@0x0002a000(backup),
0x00020000@0x0003a000(oem),
0x00f00000@0x0005a000(rootfs),
-@0x00f5a000(userdata:grow)
RK3399 Linux的分區信息如上。
注意:
1、其格式為:分區大小+@+起始地址
2、在修改分區大小的時候必須要注意,修改某個分區要對應修改下一個分區的起始地址,以此類推。
3、后一個分區的起始地址為前一個分區的起始地址加上分區大小。
三、RK3399 Desktop版本命令行連接WiFi的方法
RK3399 Desktop版本使用Ubuntu文件系統,用NetworkManager網絡管理器來控制網絡連接。
在輸入WiFi密碼連接對應的WiFi后,會在/etc/NetworkManager/system-connections/目錄下生成一個和WiFi名字對應的文件,內容是WiFi的配置信息。
仿照生成的配置文件,創建一個新文件sudo vi /etc/NetworkManager/system-connections/forlinx-test
內容按照實際WiFi進行設置,類似如下:
[connection]
id=forlinx
uuid=a19cdac4-f704-498e-8802-32bbefdd0441
type=wifi
permissions=user:forlinx:;
[wifi]
mac-address=C0:84:7D:12:8A:27
mac-address-blacklist=
mode=infrastructure
ssid=forlinx
[wifi-security]
auth-alg=open
key-mgmt=wpa-psk
psk=fl03123102650
[ipv4]
dns-search=
method=auto
[ipv6]
addr-gen-mode=stable-privacy
dns-search=
method=auto
紅色字體涉及到的內容需要根據實際WiFi的情況調整,上述只是舉例。
mac-address WiFi模塊mac地址
ssid 要連接的WiFi名稱
key-mgmt 要連接的WiFi加密方式
psk 要連接的WiFi的密碼
創建好之后修改文件權限sudo chmod 600 /etc/NetworkManager/system-connections/forlinx-test
執行sync
重啟RK3399開發板即可自動連接設定的WiFi
四、RK3399 Linux+QT版本開機應用程序自啟動方法。
RK3399應用程序自啟動
查看/etc/init.d目錄時,會發現有許多以"K"開頭,或者以"S"開頭的腳本文件,這些文件在系統啟動過程中都會自啟動,S開頭是開機啟動,K開頭是關機時運行。
Linux buildroot的桌面程序就是以/etc/init.d/S60matrix-browser腳本文件啟動的。如果想在RK3399中自啟動自己的程序就可以修改該文件,將RK3399啟動的桌面程序替換為自己的應用程序即可。
步驟1:創建編譯可以運行的helloworld qt程序,得到可在RK3399開發板上運行的bin文件helloworld
步驟2:將步驟1生存的helloworld拷貝到在RK3399開發板/usr/bin/目錄下
步驟3:修改/etc/init.d/S60matrix-browser,代碼修改如下,修改完保存退出:
[root@rk3399:/]# vi /etc/init.d/S99matrix-browser
#!/bin/sh
#
# Start linux launcher...
#
case "$1" in
start)
printf "Starting matrix-browser: "
source /etc/profile.d/env.sh
#/usr/bin/matrix-browser -no-sandbox --disable-gpu localhost >> /dev/null &
/usr/bin/helloworld &
;;
stop)
#killall matrix-browser
killall helloworld
printf "stop finished"
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
;;
esac
exit 0
步驟4:輸入sync同步保存命令,重啟RK3399開發板,就可以看到helloworld程序自動啟動了。
五、RK3399 Desktop中安裝Docker環境
步驟1. 安裝必要的一些系統工具
$ sudo apt-get update
$ sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
步驟2. 安裝 GPG 證書
$ curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
步驟3. 寫入軟件源信息
$ sudo add-apt-repository "deb [arch=arm64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
步驟4. 更新并安裝 Docker-CE
$ sudo apt-get -y update
查找Docker-CE 的版本
$ apt-cache madison docker-ce
輸出:docker-ce | 18.06.3~ce~3-0~ubuntu | http://mirrors.aliyun.com/docker-ce/linux/ubuntu/
trusty/stable amd64 Packages
安裝指定版本的Docker-CE
例如:
$ sudo apt-get -y install docker-ce=18.06.3~ce~3-0~ubuntu
再安裝docker-ce的過程中,會產生以下錯誤信息,這是由于在內核在編譯的時候沒有打開docker支持。
docker相關配置沒打開,使用附件的config替換arch/arm64/configs/rockchip_linux_defconfig,然后重新編譯,燒寫之后即可安裝。
六、RK3399全編譯afptool文件報錯
在進行RK3399 Linux的編譯過程中,產生如上報錯是因為afptool是32位系統下的文件,在64位系統中無法運行。
執行以下命令,設置64位兼容32位程序:
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install libncurses5:i386 libstdc++6:i386 zlib1g:i386
重新編譯即可編譯成功。
以上為近期整理出的RK3399問題及解決思路, 歡迎大家指正,交流。
飛凌擁有一支專業的技術支持團隊,隨時為您解決各類使用過程種遇到的問題。
相關產品 >
-
FET3399-C核心板
飛凌RK3399安卓高性能核心板采用 采用六核Rockchip RK3399芯片,雙Cortex-A72大核+四Cortex-A53小核結構,對整數、浮點、內存等作了大幅優化,在整體性能、功耗及核心面積三個方面提升。以下將對瑞芯微芯片RK3399參數,RK3399核心板方案及其性能做具體介紹。如您對飛凌RK3399系列核心板有興趣,歡迎咨詢了解。
了解詳情 -
OK3399-C開發板
飛凌嵌入式RK3399安卓開發板主芯片采用高性能六核CPU Rockchip RK3399,GPU采用Mail-T860四核 GPU,RK3399作為目RK產品線中低功耗、高性能的代表,可滿足人臉識別設備、機器人、無人機、IoT物聯網領域應用。飛凌RK3399開發板在整體性能、功耗及核心面積做了大幅度優化,更加滿足工業設計需求。飛凌RK3399開發板為進一步減少用戶二次開發難度,開放了底板原理圖,并提供了RK3399用戶手冊、芯片手冊,加上優質的技術服務,讓您的方案從構思到上市時間縮短。