日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

實拍:合璧操作系統(tǒng) HybridOS 運行在 RK3308 開發(fā)板上

 新用戶0118F7lQ 2021-12-08
飛漫軟件開發(fā)團隊近期完成了合璧操作系統(tǒng)(HybridOS)設備側(cè)在 RK3308 上的移植。
在本次移植中,使用的開發(fā)板是瑞芯微公司出品的 ROC-RK3308B-CC-Plus 開發(fā)板,其上 CPU 為 rockchip rk3308。
ROC-RK3308B-CC-Plus 開發(fā)板的主要技術參數(shù)為:
  • ARM 四核 64 位 Cortex-A35 內(nèi)核,主頻 1.3GHz

  • 512M DDR3

  • 4GB eMMC

  • 支持 RMII 接口,可擴展 10M/100M bps 以太網(wǎng)

  • 支持 SDIO 3.0,可擴展 2.4GHz/5.0GHz WiFi 和 Bluetooth 4.2/5.0 單/多合一模塊

  • 7 寸顯示屏,分辨率為 1024 * 600

HybridOS Lite 運行在 RISC-V 開發(fā)板上的實拍操作視頻如下:

HybridOS 運行在 RK3308 開發(fā)板上

HybridOS 主要技術特點

HybridOS 設備側(cè) R2011 版本在開發(fā)板上,主要使用的軟件組件為:
  1. MiniGUI 5.0.3,多進程模式,合成圖式:
    • 視頻中應用的啟動條、狀態(tài)欄、背景動畫等,基于合成圖式實現(xiàn)。

    • 視頻中應用的縮小展示、切換、管理等,使用了 MiniGUI 在合成圖式下的定制合成器技術開發(fā)。

    • 在瑞芯 PX30 開發(fā)板上,使用 DRM 圖形引擎;在全志 R818 開發(fā)板上使用 FB 圖形引擎。

    • 采用的是純軟件渲染效果,暫未啟用 GPU。在使用 DRM 圖形引擎時,動畫流暢順滑,但在使用 FB 圖形引擎時,有丟幀現(xiàn)象。
  2. hiShell:用于啟動應用、切換應用、管理應用的外殼程序。
  3. hiWebKit:用于支撐 HTML5 及 HybridOS 擴展特性的 WebKit 擴展版本:
    • 其中用于展示手表表盤、秒表的頁面,采用 hiWebKit 的 hiview 擴展標簽實現(xiàn)。

    • 其中用于展示儀表盤的頁面,使用了 hiWebKit 的 himeter 和 hihand 擴展標簽實現(xiàn)。

    • 仔細觀察表盤及儀表盤中的指針及條帶變化,在兩款開發(fā)板上的運行效果都非常棒。

編譯并燒寫 ROC-RK3308B-CC-Plus 開發(fā)板

本次所使用的開發(fā)板是 ROC-RK3308B-CC-Plus 發(fā)板,并帶 7 寸屏,屏幕分辨率為 1024 x 600。
因此所使用的配置文件為 roc-rk3308b-cc-plus_rgb-7.0inch_qt_release_BoardConfig.mk。

代碼的獲取

訪問 https://www./doc/download/73.html 下載 SDK。下載文件為 Firefly-RK3308_Linux_SDK_git_20190924.7z。

升級 SDK

按下面的命令,安裝所需要的軟件,并升級 SDK:
$ sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip device-tree-compiler
$ sudo apt-get install libfile-which-perl sed make binutils gcc g++ bash patch gzip bzip2 perl tar cpio python unzip rsync file bc libmpc3 git repo texinfo pkg-config cmake tree
$ sudo apt-get install genext2fs
$ sudo apt-get install p7zip-full
$ sudo apt-get install gawk
$ sudo apt-get install libncurses5-dev

$ mkdir Firefly-RK3308
$ cd Firefly-RK3308
$ 7zr x Firefly-RK3308_Linux_SDK_git_20190924.7z
$ git reset --hard HEAD
$ git remote -v
$ git remote set-url gitlab https:///TeeFirefly/rk3308-linux.git
$ git pull gitlab firefly:firefly
編譯 Uboot
$ ./build.sh roc-rk3308b-cc-plus_rgb-7.0inch_qt_release_BoardConfig.mk
$ ./build.sh uboot
編譯完,會生成 trust.img、rk3308_loader_xxx.bin、uboot.img 三個鏡像文件。

編譯 Kernel

$ ./build.sh roc-rk3308b-cc-plus_rgb-7.0inch_qt_release_BoardConfig.mk
$ ./build.sh kernel
最終生成的 kernel.img 和 resource.img 將會被打包進 zboot.img,更換內(nèi)核的時候,只需燒寫 zboot.img 即可。

編譯 Buildroot

前面編譯的是 uboot 和 kernel,現(xiàn)在編譯一些系統(tǒng)軟件,使用 buildroot。
$ source buildroot/build/envsetup.sh        選擇firefly_rk3308_release
$ make -j4
$ ./mkfirmware.sh

所有燒寫所需的鏡像都將會拷貝于 rockdev 目錄。

一鍵編譯

為了簡化前面的編譯步驟,可以使用瑞芯微提供的一鍵編譯:
$ ./build.sh roc-rk3308b-cc-plus_rgb-7.0inch_qt_release_BoardConfig.mk
$ ./build.sh

最終生成 update.img,放在 rockdev 目錄下。

燒寫映像文件到開發(fā)板

  • 準備燒寫工具

$ cd tools/linux/Linux_Upgrade_Tool/Linux_Upgrade_Tool_v1.38
$ chmod +x upgrade_tool
$ sudo mv upgrade_tool /usr/sbin
$ sudo chown root:root /usr/sbin/upgrade_tool
$ sudo cp config.ini /usr/sbin
  • 按住開發(fā)板上的 recovery 鍵不要松手;
  • 拔掉 type-c 接口,使得開發(fā)板掉電;
  • 插上 type-c 接口,使得開發(fā)板重新上電;
  • 松開 recovery 鍵;
  • 在 PC 機上輸入下面的命令:

$ cd rockdev
$ sudo upgrade_tool uf update.img

編譯 HybridOS 操作系統(tǒng)

代碼的獲取

使用下面的命令,獲得 HybridOS 代碼:

$ git https://gitlab./hybridos/build-hybridos-rootfs.git
$ cd build-hybridos-rootfs

代碼的編譯

使用下面的命令,編譯 HybridOS:

$ source build/envsetup.sh
$ lunch             選擇: rk3308_hybridos
$ make -j4

生成的文件,在 output/target 目錄下。

在開發(fā)板上運行 HybridOS

  • 將 output/target 目錄,傳送到開發(fā)板的 /userdata 目錄下,并登錄開發(fā)板:

$ cd output
$ adb push target /userdata
$ adb shell
  • 在開發(fā)板上進行如下操作:

// 添加環(huán)境變量
# vi /etc/profile
    export LD_LIBRARY_PATH=/userdata/target/usr/lib:/userdata/target/lib:$LD_LIBRARY_PATH
    export MG_RUNTIME_TMPDIR=/tmp

// 修改啟動腳本
# cd /etc/init.d/
# mv S50launcher ../
# vi S50launcher
    #!/bin/sh
    #
    # Start linux launcher...
    #

    export LC_ALL='zh_CN.utf8'
    export LC_ADDRESS=zh_CN.UTF-8
    export LC_IDENTIFICATION=zh_CN.UTF-8
    export LC_MEASUREMENT=zh_CN.UTF-8
    export LC_MONETARY=zh_CN.UTF-8
    export LC_NAME=zh_CN.UTF-8
    export LC_NUMERIC=zh_CN.UTF-8
    export LC_PAPER=zh_CN.UTF-8
    export LC_TELEPHONE=zh_CN.UTF-8
    export LC_TIME=zh_CN.UTF-8

    export LD_LIBRARY_PATH=/userdata/target/usr/lib:/userdata/target/lib:$LD_LIBRARY_PATH
    export MG_RUNTIME_TMPDIR=/tmp

    cd /userdata/target/usr/sbin
    ./hibusd -d

    cd /userdata/target/usr/bin
    ./hiinetd &

    cd /userdata/target/usr/libexec
    ./mginit &

    exit 0

// 設置字體
# cd /usr/share
# ln -s /userdata/target/usr/share/mime mime
# ln -s /userdata/target/usr/share/fonts fonts
# cd fonts
# /userdata/target/usr/bin/fc-list

// 添加鏈接
# cd /usr/libexec
# ln -s /userdata/target/usr/libexec/samples samples
# ln -s /userdata/target/usr/libexec/webkit2hbd-1.0/ webkit2hbd-1.0
# cd /usr/local
# mkdir share
# cd share
# ln -s /userdata/target/usr/share/minigui/ minigui
# cd /usr/local/share/minigui/res/
# ln -s /userdata/target/usr/share/fonts/ font

// 添加驅(qū)動
# cd /userdata/target/usr/lib
# cp -fra gio /usr/lib

// 修改MiniGUI.conf
# cd /userdata/target/libexec
# vi MiniGUI.conf
    [system]
    gal_engine=drm
    defaultmode=1024x600-32bpp

    ial_engine=singletouchkey
    mdev=/dev/input/mice
    mtype=IMPS2

    [singletouchkey]
    touch_dev=/dev/input/event0

    [cursorinfo]
    cursorpath=/userdata/target/usr/share/minigui/res/cursor/
    cursornumber=0

    [resinfo]
    respath=/userdata/target/usr/share/minigui/res/

    [truetypefonts]
    font_number=1
    name0=ttf-Source Sans Pro,SansSerif-rrncnn-0-0-ISO8859-1,UTF-8
    fontfile0=/usr/local/share/minigui/res/font/sans-serif-hei-chinese-medium.ttf

// 修改wifi參數(shù)
# cd /userdata/target/libexec
# vi hybridos.cfg
    [wifi_test]
    ssid=your_wifi_ssid
    password=your_wifi_password

// 添加插件庫
# cd /opt
# ln -sf /userdata/target/opt/view-renderers view-renderers

// 重新啟動
# sync
# reboot

此時就可以看到 HybridOS 運行界面了。

注意:如果想要對 HybridOS 進行調(diào)試,通過 adb shll 登錄系統(tǒng),則需要運行下面的命令:

export LD_LIBRARY_PATH=/userdata/target/usr/lib:/userdata/target/lib:$LD_LIBRARY_PATH
export MG_RUNTIME_TMPDIR=/tmp

下載映像文件運行 HybridOS

前面的步驟較為繁瑣,為了能讓用戶更快的體驗到 HybridOS,我們提供了映像文件。

    $ sudo upgrade_tool uf update.img
  • 然后解壓縮 target.tar.gz,并將目錄傳送到開發(fā)板,并登錄開發(fā)板:

    $ tar zxf target.tar.gz
    $ adb push target /userdata
    $ adb shell
  • 在開發(fā)板上進行重新配置:


    # cd /userdata/target
    # ./setup

開發(fā)板將自動進行配置,并且重新啟動。重新啟動后,既可看見 HybridOS 界面。

后續(xù)計劃

飛漫的研發(fā)團隊正在快馬加鞭的將合璧操作系統(tǒng)設備側(cè)的完全版本(HybridOS)移植到 D1 開發(fā)板上。屆時將完成 HybridOS 對 RISC-V 體系架構(gòu)的完全支持。
喜歡我們的朋友不會等待太久。
支持合璧操作系統(tǒng),請點亮 GitHub 上 HybridOS 項目的星星吧:
https://github.com/FMSoftCN/hybridos

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多