RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

【風(fēng)火輪YY3568開發(fā)板免費體驗】第四章:給 nanogui 添加 VideoView 控件,支持 rtsp 視頻流獲取并顯示

Red Linux ? 來源:Red Linux ? 作者:Red Linux ? 2023-08-16 14:15 ? 次閱讀

本章記錄下我針對 nanogui 寫的 videoview 控件,并且在??档囊粋€攝像頭上測試通過的過程,在開發(fā)的過程中碰到了 segment fault的問題,通過導(dǎo)出 core 文件以及使用 gdb 很快定位出崩潰的原因,在這個過程中再次體驗到了使用 buildroot 進行構(gòu)建的快樂。但是我目前根據(jù) nanogui 開發(fā)的程序尚未繼承到 buildroot 當中,將 nanogui 繼承到 buildroot 這個也算是后期的一個目標。

  • 修復(fù)ffmpeg編譯一直出錯,提示undefined av_xxxx
  • 使用 buildroot 編譯 aarch64-linux-gdb定位 segment fault 問題
  • 在 solus 上編譯 buildroot,修復(fù)相關(guān)編譯錯誤

1. 鏈接 ffmpeg 庫一直出錯

首先看一下出錯的提示:
l_ffmpeg_undef.png

后來參考了網(wǎng)上的解決方案,發(fā)現(xiàn)是引用 ffmpeg 頭文件的時候缺少

#ifdef __cplusplus
extern "C" {
#endif
xxxxx /* ffmpeg 頭文件 */
#ifdef __cplusplus
}
#endif

因為 ffmpeg 主要是 c 語言開發(fā)的所以,引用相關(guān)頭文件的時候需要為 C++ 原文件進行一次兼容。要不然的話,就不能正常引用到對應(yīng)的函數(shù)。

完整 videoview 控件的源碼,我已經(jīng)上傳到我 fork 的 nanogui 倉庫了。這里就不羅列了,這里展示下成功顯示視頻的相關(guān)照片:
00.jpg

11.jpg

2. 使用 gdb 定位 segment fault

在順利完成 ffmpeg 的鏈接編譯之后,開始運行可執(zhí)行程序,發(fā)現(xiàn) segment fault了,我嘗試使用 gdbserver 和 gdb 配置進行定位,發(fā)現(xiàn)默認并沒有編譯出來 aarch64-linux-gdb。只能在 buildroot 中開啟 host gdb 的編譯,主要放開如下宏:

BR2_PACKAGE_HOST_GDB=y
BR2_PACKAGE_HOST_GDB_TUI=y
BR2_GDB_VERSION_8_1=y
BR2_GDB_VERSION="8.1.1"

編譯出來后,在板子上修改 core 配置,放開生成 core 文件:ulimit -c unlimited。然后將 core 文件發(fā)送到 PC,再使用命令 aarch64-linux-gdb example1 core 對 example1進行調(diào)試(目前我的開發(fā)是直接修改的 example1.cpp進行的)。記得修改下 sysroot 和 solib-search,這部分可以放在當前目錄的 .gdbinit 文件中:

set solib-search-path /home/yangyongsheng/Projects/debian_yy3568/YY3568-Debian10/buildroot/output/rockchip_rk3568/host/aarch64-buildroot-linux-gnu/sysroot/
set sysroot ~/Projects/debian_yy3568/YY3568-Debian10/buildroot/output/rockchip_rk3568/host/aarch64-buildroot-linux-gnu/sysroot/

記得還有修改下 ~/.gdbinit 文件:

set auto-load safe-path /

通過 gdb 很快就可以定位到出錯的代碼位置。

3. 在 solus 上編譯 buildroot

家里的一臺筆記本,我安裝的是 solus,軟件包可能沒有 fedora 那么齊全,所以編譯過程中碰到了一些問題,經(jīng)過幾天的搜索還好是順利將 buildroot編譯通過,通過這幾天的排查問題,我感覺的 solus 依舊好用。有些軟件包官方倉庫沒有就需要自己手動下載源碼安裝,我僅羅列一些我下載的:

├── libdb
├── libnsl
├── libtirpc
├── libxcrypt

特別地在編譯 python2.7 的時候,總是出錯,但是終端提示的問題只是一些警告信息,導(dǎo)致我一直搜索如何排除這些警告,實際還是走了一些彎路??赡苁?unbuffer 的鍋,因為我在使用 buildroot menuconfig 的時候使用默認的 unbuffer 總是無法在 solus 上彈出來 menuconfig 的配置界面(因為我要開啟 gdb 編譯選項),在 buildroot 的根目錄直接 make menuconfig 確是可以的,后來我就強制修改 menuconfig 的時候不用 brmake 而是使用 make 規(guī)避了這個問題。下次碰到這個問題需要去對應(yīng)的 buildroot 的根目錄去 make 確認出錯的根本原因,發(fā)現(xiàn)是鏈接 crypt 的時候出錯的,通過強制創(chuàng)建 /lib/libcrypt.so 到的軟鏈接修復(fù)了這個問題。

? ll /lib/libcrypt.so
lrwxrwxrwx root root 26 B Sun Aug 13 13:44:40 2023 ? /lib/libcrypt.so ? /usr/local/lib/libcrypt.so

再展示下在 solus 下使用 buildroot 開心編譯的截圖:
buildroot_solus.png

通過這個過程我還發(fā)現(xiàn)了一個軟件包集合的網(wǎng)站 https://dev.getsol.us/source,這里面包含了 solus 有關(guān) python2.7 的配置編譯依賴,最后順利編譯出來了 buildroot 選擇的 python2.7。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11292

    瀏覽量

    209323
  • C++
    C++
    +關(guān)注

    關(guān)注

    22

    文章

    2108

    瀏覽量

    73618
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5032

    瀏覽量

    97371
  • 編譯
    +關(guān)注

    關(guān)注

    0

    文章

    657

    瀏覽量

    32852
  • RK3568
    +關(guān)注

    關(guān)注

    4

    文章

    514

    瀏覽量

    5034
收藏 人收藏

    評論

    相關(guān)推薦

    使用YY3568開發(fā)板部署AI能力

    YY3568開發(fā)板是 「風(fēng)火輪科技」 基于Rockchip RK3568 芯片平臺設(shè)計的開發(fā)板,
    的頭像 發(fā)表于 11-28 10:59 ?2014次閱讀
    使用<b class='flag-5'>YY3568</b><b class='flag-5'>開發(fā)板</b>部署AI能力

    YY3568適配OpenHarmony

    YY3568開發(fā)板簡介 YY3568開發(fā)板 YY3568開發(fā)板是 「
    的頭像 發(fā)表于 04-07 15:58 ?2460次閱讀

    風(fēng)火輪YY3568開發(fā)板免費體驗】第一開發(fā)環(huán)境搭建,系統(tǒng)替換為原生Linux

    記錄編譯sdk替換YY3568出廠安卓系統(tǒng)的筆記。
    的頭像 發(fā)表于 08-09 18:11 ?1678次閱讀
    【<b class='flag-5'>風(fēng)火輪</b><b class='flag-5'>YY3568</b><b class='flag-5'>開發(fā)板</b><b class='flag-5'>免費</b>體驗】第一<b class='flag-5'>章</b>:<b class='flag-5'>開發(fā)</b>環(huán)境搭建,系統(tǒng)替換為原生Linux

    風(fēng)火輪

    誰有TI的基于MSP430launchpadG2553的Capacitive Touch BoosterPack(就是電容觸摸)俗稱風(fēng)火輪紅色的轉(zhuǎn)盤 誰有可不可以轉(zhuǎn)讓給我活著給我學(xué)習(xí)一下 我是一名西安電大的學(xué)生看了視頻很想操作
    發(fā)表于 08-12 11:22

    【新品體驗】風(fēng)火輪YY3568開發(fā)板免費體驗

    YY3568主板基于 Rockchip RK3568 芯片平臺,核 64位 Cortex-A55 核,主頻最高達 2GHz,集成雙核心架構(gòu)GPU以及高效能NPU,芯片性能優(yōu)異。開發(fā)板
    發(fā)表于 06-25 14:35

    風(fēng)火輪YY3568開發(fā)板免費體驗】開箱篇 -----最好的RK3568開發(fā)板賞析

    風(fēng)火輪YY3568開發(fā)板采用RK3568芯片設(shè)計,RK3568明星芯片是一款瑞芯微電子定位中高端的通用型SoC。該芯片采用了先進的22nm工
    發(fā)表于 08-07 10:00

    風(fēng)火輪YY3568開發(fā)板免費體驗】使用之二:系統(tǒng)測試安卓

    開發(fā)板,如下圖所示: 按住設(shè)備上的 RECOVERY (恢復(fù))鍵保持接上電源 大約兩三秒鐘后,松開 RECOVERY 鍵 UART DEBUG測試: YY3568
    發(fā)表于 08-09 21:01

    風(fēng)火輪YY3568開發(fā)板免費體驗】01.開箱、燒寫系統(tǒng)

    吧。 首先就是我最喜歡的開發(fā)板啦,YY3568,板載2GB RAM和16GB EMMC,真的太棒了,里面核心已經(jīng)在底板上面安裝的了,還有WIFI模塊和天線。 接下來就是送的7寸電容式5點觸摸屏,DSI
    發(fā)表于 08-10 19:35

    風(fēng)火輪YY3568開發(fā)板免費體驗】第二YY3568 ffmpeg 編譯以及 nanogui 移植

    the DISPLAY variable?) 重新編譯后就可以正確讀取到???b class='flag-5'>視頻碼流了。我的 buildroot對應(yīng)的配置文件rockchip_rk3568_defconfig放在附件附件:rockchip_rk3568_d
    發(fā)表于 09-11 15:29

    風(fēng)火輪YY3568開發(fā)板免費體驗】第四章 nanogui 添加 VideoView 控件,支持 rtsp 視頻獲取顯示

    本章記錄下我針對 nanogui 寫的 videoview 控件,并且在海康的一個攝像頭上測試通過的過程,在開發(fā)的過程中碰到了 segment fault的問題,通過導(dǎo)出 core 文
    發(fā)表于 09-11 15:41

    風(fēng)火輪YY3568開發(fā)板免費體驗】+ YY3568安裝運行Unity的自制游戲教程范例

    ,并成功在自己的開發(fā)筆記本,以及手機(Android-12)上運行,因此想測試一下能否在YY3568的Android-11系統(tǒng)上運行。 根據(jù)YY3568的wiki上的內(nèi)容,使用adb方式進行apk安裝
    發(fā)表于 11-14 11:44

    風(fēng)火輪科技YY3568開發(fā)板新品上市

    ? 風(fēng)火輪近來又推出一款新的嵌入式主板YY3568 ,它是一款基于瑞芯微RK3568 4核處理器的ARM主板,性價比極高;現(xiàn)在瑞芯微的旗艦款是rk3588主打性能,這個rk3568是主
    的頭像 發(fā)表于 04-27 14:50 ?1453次閱讀
    <b class='flag-5'>風(fēng)火輪</b>科技<b class='flag-5'>YY3568</b><b class='flag-5'>開發(fā)板</b>新品上市

    風(fēng)火輪科技又發(fā)新品啦--YY3568開發(fā)板

    風(fēng)火輪近來又推出一款新的嵌入式主板YY3568,它是一款基于瑞芯微RK3568 4核處理器的ARM主板,性價比極高;現(xiàn)在瑞芯微的旗艦款是rk3588主打性能,這個rk3568是主打性價
    的頭像 發(fā)表于 05-05 16:41 ?891次閱讀
    <b class='flag-5'>風(fēng)火輪</b>科技又發(fā)新品啦--<b class='flag-5'>YY3568</b><b class='flag-5'>開發(fā)板</b>

    RK3568 MIPI CSI攝像頭GC8034適配工作流程

    首先介紹一下硬件。主板為風(fēng)火輪科技的YY3568開發(fā)板,主控RK3568。此開發(fā)板的相關(guān)介紹可以參考
    的頭像 發(fā)表于 07-04 09:27 ?5738次閱讀
    RK<b class='flag-5'>3568</b> MIPI CSI攝像頭GC8034適配工作流程

    風(fēng)火輪YY3568開發(fā)板免費體驗】第六:在Solus上運行自定義模型遷移到YY3568對比測試

    本章介紹如何使用自己的模型遷移到YY3568上面。
    的頭像 發(fā)表于 08-27 00:55 ?1343次閱讀
    【<b class='flag-5'>風(fēng)火輪</b><b class='flag-5'>YY3568</b><b class='flag-5'>開發(fā)板</b><b class='flag-5'>免費</b>體驗】第六<b class='flag-5'>章</b>:在Solus上運行自定義模型<b class='flag-5'>并</b>遷移到<b class='flag-5'>YY3568</b>對比測試
    RM新时代网站-首页