飛凌嵌入式RK3399開(kāi)發(fā)板使用過(guò)程中問(wèn)題實(shí)錄及解決思路

原創(chuàng) 作者 RK3399 2020-11-30 17:03:00 RK3399

飛凌RK3399開(kāi)發(fā)板,已經(jīng)推出了一段時(shí)間,根據(jù)飛凌嵌入式技術(shù)服務(wù)部統(tǒng)計(jì)的客戶問(wèn)題反饋,整理了一份客戶在使用RK3399開(kāi)發(fā)板過(guò)程中經(jīng)常遇到的幾個(gè)問(wèn)題,并提供了解決思路。


RK3399開(kāi)發(fā)板簡(jiǎn)介:

 

飛凌嵌入式OK3399-C開(kāi)發(fā)板采用瑞芯微公司國(guó)產(chǎn)CPU處理器 RK3399設(shè)計(jì)。性能強(qiáng)勁,具備2個(gè)ARM Cortex-A72內(nèi)核,主頻1.8GHz;4個(gè)ARM Cortex-A53內(nèi)核,主頻1.4GHz;GPU采用Mali-T864,支持OpenGL ES 1.1/2.0/3.0/3.1, OpenVG1.1, OpenCL, DX11;RK3399開(kāi)發(fā)板板載2GB LPDDR3 RAM,16GB eMMC ROM;RK3399開(kāi)發(fā)板具備多種顯示接口 ,包括HDMI 2.0 、MIPI-DSI 、eDP 1.3、DP 1.2,最大分辨率達(dá)4K,支持雙屏同顯、雙屏異顯;同時(shí)提供多種外設(shè)接口,如PCIe、USB3.0 Host,Type-C、MIPI-CSI、SPDIF、I2C、SPI 、UART 、ADC、PWM、GPIO 、I2S(支持8路數(shù)字麥克風(fēng)陣列輸入)和千兆以太網(wǎng)。


注:以下問(wèn)題,均為在使用飛凌RK3399開(kāi)發(fā)板過(guò)程中,遇到的一些問(wèn)題及提供的解決思路,其它品牌RK3399開(kāi)發(fā)板,用戶可根據(jù)飛凌提供的解決思路,嘗試解決。

 

 

一、RK3399修改調(diào)試串口波特率

 

RK3399調(diào)試串口默認(rèn)波特率為1500000,但部分轉(zhuǎn)換芯片最高支持115200,于是部分情況下就需要修改RK3399調(diào)試串口波特率

RK3399調(diào)試串口相關(guān)的設(shè)置均可在設(shè)備樹(shù)中修改。

打開(kāi)設(shè)備樹(shù):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的值,但只能修改內(nèi)核階段。

 

 

二、RK3399 Linux下修改各分區(qū)大小的方法

 

首先,解壓源碼,RK3399燒寫(xiě)以一個(gè)update.img的方式燒寫(xiě),所以修改分區(qū)需要重新編譯

打開(kāi)源碼目錄下的/param/parameter.txt文件

看到如下內(nèi)容:

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的分區(qū)信息如上。

注意:

1、其格式為:分區(qū)大小+@+起始地址

2、在修改分區(qū)大小的時(shí)候必須要注意,修改某個(gè)分區(qū)要對(duì)應(yīng)修改下一個(gè)分區(qū)的起始地址,以此類(lèi)推。

3、后一個(gè)分區(qū)的起始地址為前一個(gè)分區(qū)的起始地址加上分區(qū)大小。

 

三、RK3399 Desktop版本命令行連接WiFi的方法

 

RK3399 Desktop版本使用Ubuntu文件系統(tǒng),用NetworkManager網(wǎng)絡(luò)管理器來(lái)控制網(wǎng)絡(luò)連接

在輸入WiFi密碼連接對(duì)應(yīng)的WiFi后,會(huì)在/etc/NetworkManager/system-connections/目錄下生成一個(gè)和WiFi名字對(duì)應(yīng)的文件,內(nèi)容是WiFi的配置信息。

仿照生成的配置文件,創(chuàng)建一個(gè)新文件sudo vi /etc/NetworkManager/system-connections/forlinx-test

內(nèi)容按照實(shí)際WiFi進(jìn)行設(shè)置,類(lèi)似如下:

[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

紅色字體涉及到的內(nèi)容需要根據(jù)實(shí)際WiFi的情況調(diào)整,上述只是舉例。

 

mac-address WiFi模塊mac地址

ssid 要連接的WiFi名稱(chēng)

key-mgmt 要連接的WiFi加密方式

psk 要連接的WiFi的密碼

 

創(chuàng)建好之后修改文件權(quán)限sudo chmod 600 /etc/NetworkManager/system-connections/forlinx-test

執(zhí)行sync

重啟RK3399開(kāi)發(fā)板即可自動(dòng)連接設(shè)定的WiFi

 

 

四、RK3399 Linux+QT版本開(kāi)機(jī)應(yīng)用程序自啟動(dòng)方法。

 

RK3399應(yīng)用程序自啟動(dòng)
查看/etc/init.d目錄時(shí),會(huì)發(fā)現(xiàn)有許多以"K"開(kāi)頭,或者以"S"開(kāi)頭的腳本文件,這些文件在系統(tǒng)啟動(dòng)過(guò)程中都會(huì)自啟動(dòng),S開(kāi)頭是開(kāi)機(jī)啟動(dòng),K開(kāi)頭是關(guān)機(jī)時(shí)運(yùn)行。
Linux buildroot的桌面程序就是以/etc/init.d/S60matrix-browser腳本文件啟動(dòng)的。如果想在RK3399中自啟動(dòng)自己的程序就可以修改該文件,將RK3399啟動(dòng)的桌面程序替換為自己的應(yīng)用程序即可。
 
步驟1:創(chuàng)建編譯可以運(yùn)行的helloworld qt程序,得到可在RK3399開(kāi)發(fā)板上運(yùn)行的bin文件helloworld
 
步驟2:將步驟1生存的helloworld拷貝到在RK3399開(kāi)發(fā)板/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開(kāi)發(fā)板,就可以看到helloworld程序自動(dòng)啟動(dòng)了。

 

五、RK3399 Desktop中安裝Docker環(huán)境

 

步驟1. 安裝必要的一些系統(tǒng)工具

$ sudo apt-get update

$ sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common

 

步驟2. 安裝 GPG 證書(shū)

$ curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

 

步驟3. 寫(xiě)入軟件源信息

$ 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的過(guò)程中,會(huì)產(chǎn)生以下錯(cuò)誤信息,這是由于在內(nèi)核在編譯的時(shí)候沒(méi)有打開(kāi)docker支持。

 

 

docker相關(guān)配置沒(méi)打開(kāi),使用附件的config替換arch/arm64/configs/rockchip_linux_defconfig,然后重新編譯,燒寫(xiě)之后即可安裝。

 

 

六、RK3399全編譯afptool文件報(bào)錯(cuò)

 

在進(jìn)行RK3399  Linux的編譯過(guò)程中,產(chǎn)生如上報(bào)錯(cuò)是因?yàn)閍fptool是32位系統(tǒng)下的文件,在64位系統(tǒng)中無(wú)法運(yùn)行。

執(zhí)行以下命令,設(shè)置64位兼容32位程序:

sudo dpkg --add-architecture i386 

sudo apt-get update 

sudo apt-get install libncurses5:i386 libstdc++6:i386 zlib1g:i386

重新編譯即可編譯成功。

 

以上為近期整理出的RK3399問(wèn)題及解決思路, 歡迎大家指正,交流。

飛凌擁有一支專(zhuān)業(yè)的技術(shù)支持團(tuán)隊(duì),隨時(shí)為您解決各類(lèi)使用過(guò)程種遇到的問(wèn)題。

相關(guān)產(chǎn)品 >

  • FET3399-C核心板

    飛凌RK3399安卓高性能核心板采用 采用六核Rockchip RK3399芯片,雙Cortex-A72大核+四Cortex-A53小核結(jié)構(gòu),對(duì)整數(shù)、浮點(diǎn)、內(nèi)存等作了大幅優(yōu)化,在整體性能、功耗及核心面積三個(gè)方面提升。以下將對(duì)瑞芯微芯片RK3399參數(shù),RK3399核心板方案及其性能做具體介紹。如您對(duì)飛凌RK3399系列核心板有興趣,歡迎咨詢了解。

    了解詳情
    FET3399-C核心板
  • OK3399-C開(kāi)發(fā)板

    飛凌嵌入式RK3399安卓開(kāi)發(fā)板主芯片采用高性能六核CPU Rockchip RK3399,GPU采用Mail-T860四核 GPU,RK3399作為目RK產(chǎn)品線中低功耗、高性能的代表,可滿足人臉識(shí)別設(shè)備、機(jī)器人、無(wú)人機(jī)、IoT物聯(lián)網(wǎng)領(lǐng)域應(yīng)用。飛凌RK3399開(kāi)發(fā)板在整體性能、功耗及核心面積做了大幅度優(yōu)化,更加滿足工業(yè)設(shè)計(jì)需求。飛凌RK3399開(kāi)發(fā)板為進(jìn)一步減少用戶二次開(kāi)發(fā)難度,開(kāi)放了底板原理圖,并提供了RK3399用戶手冊(cè)、芯片手冊(cè),加上優(yōu)質(zhì)的技術(shù)服務(wù),讓您的方案從構(gòu)思到上市時(shí)間縮短。

    了解詳情
    OK3399-C開(kāi)發(fā)板

推薦閱讀 換一批 換一批