女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

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

如何在Jetson Nano上編譯部署Anbox

星星科技指導(dǎo)員 ? 來源:NVIDIA ? 作者:NVIDIA ? 2022-04-21 10:38 ? 次閱讀

Jetson Nano 2GB是NVIDIA的一款高性價(jià)比嵌入式平臺。麻雀雖小五臟俱全,戰(zhàn)力強(qiáng)悍,但是惜乎沒有原生Android系統(tǒng)支持。目前想在Jetson平臺上體驗(yàn)Android,可以使用虛擬機(jī)運(yùn)行Android系統(tǒng),或者使用Anbox這樣的平臺。Anbox是基于容器開發(fā)的,能夠?yàn)锳ndroid程序提供原生運(yùn)行支持。今天我們來嘗試一下在Jetson Nano上編譯部署Anbox,基本步驟參考NVIDIA論壇上的文章[Anbox on jetson nano],根據(jù)需要稍作調(diào)整。

1. 重新編譯并燒寫Jetson Nano 2GB內(nèi)核

本節(jié)參考L4T Kernel Customization。

Anbox運(yùn)行依賴于bander和ashmem兩個(gè)驅(qū)動(dòng),Jetson Nano 2GB目前最新的內(nèi)核版本是4.9.201,這兩個(gè)驅(qū)動(dòng)已經(jīng)在Jetson Nano的內(nèi)核里了只是默認(rèn)沒有打開。一開始我想嘗試不重新編譯內(nèi)核直接將這兩個(gè)驅(qū)動(dòng)編譯成模塊加載,binder能夠正常加載,ashmem無法加載成功。原因是這兩個(gè)驅(qū)動(dòng)在4.9上不允許單獨(dú)編譯為可加載模塊。也就是說,必須跟kernel源碼整體編譯。保險(xiǎn)起見,我選擇整體重新編譯內(nèi)核,并打開驅(qū)動(dòng)支持,和論壇里的操作保持一致。

1.1 環(huán)境準(zhǔn)備

一塊已經(jīng)燒寫好鏡像,并完成啟動(dòng)初始化的Jetson Nano 2GB設(shè)備,參考Getting Started with Jetson Nano 2GB Developer Kit。

Jetson開發(fā)推薦使用Ubuntu18.04作為開發(fā)機(jī),交叉編譯推薦使用Linaro GCC 7,kernel源代碼可以使用Jetpack提供的腳本通過git獲取,或者手動(dòng)下載,我們這里使用手動(dòng)下載[L4T Driver Package (BSP) Sources]。

# 解壓縮交叉編譯工具鏈
mkdir $HOME/l4t-gcc
cd $HOME/l4t-gcc
tar Jxvf /PATH_TO_DOWNLOADS/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz
# 解壓縮L4T BSP源碼包及kernel
mkdir $HOME/l4t-source
cd $HOME/l4t-source
tar jxvf /PATH_TO_DOWNLOADS/public_sources.tbz2
cd Linux_for_Tegra/source/public
tar jxvf kernel_src.tbz2

1.2編譯并燒寫內(nèi)核

在$HOME/l4t-source/Linux_for_Tegra/source/public/kernel/kernel-4.9/arch/arm64/configs/tegra_defconfig文件末尾,增加:

#Anbox Configuration
CONFIG_ANDROID=y
CONFIG_ANDROID_BINDER_IPC=y
CONFIG_ANDROID_BINDER_IPC_SELFTEST=y
CONFIG_ASHMEM=y

編譯內(nèi)核:

# 配置環(huán)境變量
export CROSS_COMPILE=\
$HOME/l4t-gcc/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-
export LOCALVERSION=-tegra-anbox #該環(huán)境變量改變生成的kernel后綴
export KERNEL_SOURCE=\
$HOME/l4t-source/Linux_for_Tegra/source/public/kernel/kernel-4.9
export KERNEL_OUT=$KERNEL_SOURCE/img_out #image output dir
export KERNEL_MODULES_OUT=$KERNEL_SOURCE/mod_out #modules output dir
# 編譯內(nèi)核
cd $TEGRA_KERNEL_SRC_DIR
make -C $KERNEL_SOURCE ARCH=arm64 O=$KERNEL_OUT tegra_defconfig
make -C $KERNEL_SOURCE ARCH=arm64 O=$KERNEL_OUT -j zImage
make -C $KERNEL_SOURCE ARCH=arm64 O=$KERNEL_OUT -j modules
make -C $KERNEL_SOURCE ARCH=arm64 O=$KERNEL_OUT -j dtbs # 
make -C $KERNEL_SOURCE ARCH=arm64 O=$KERNEL_OUT INSTALL_MOD_PATH=$KERNEL_MODULES_OUT modules_install
 

編譯完成后,我們得到內(nèi)核鏡像:$KERNEL_OUT/arch/arm64/boot/Image以及對應(yīng)的內(nèi)核模塊文件夾:$KERNEL_MODULES_OUT/lib/modules/4.9.201-tegra-anbox。

更新內(nèi)核以及模塊到開發(fā)板:

正常更新內(nèi)核,需要重做根文件系統(tǒng),花費(fèi)時(shí)間比較長。我們這里采用快速驗(yàn)證方案:

準(zhǔn)備好系統(tǒng)的開發(fā)板上電開機(jī),連接好USB線到開發(fā)機(jī),確保開發(fā)機(jī)能通過192.168.55.1地址訪問開發(fā)板。

通過ssh拷貝內(nèi)核鏡像和模塊文件夾到開發(fā)板,至此主機(jī)的操作全部完成,后續(xù)全部在開發(fā)板上操作。備份原始鏡像/boot/Image到/boot/Image.backup:

# 主機(jī)執(zhí)行
scp $KERNEL_OUT/arch/arm64/boot/Image $USER@192.168.55.1:~/
scp -R $KERNEL_MODULES_OUT/lib/modules/4.9.201-tegra-anbox $USER@192.168.55.1:~/
ssh $USER@192.168.55.1 # 登錄開發(fā)板

# 開發(fā)板上執(zhí)行
sudo cp /boot/Image /boot/Image.backup # 備份原始kernel
sudo mv ~/Image /boot/Image # 更新內(nèi)核
sudo mv ~/4.9.201-tegra-anbox /lib/modules/  # 拷貝內(nèi)核模塊
sudo update-initramfs -c -k 4.9.201-tegra-anbox # 更新initramfs
cd /boot/
sudo ln -sf initrd.img-4.9.201-tegra-anbox initrd.img
 

完成以后用編輯/boot/extlinux/extlinux.conf,去掉LABEL backup以及后面的注釋,類似這樣:

TIMEOUT 30
DEFAULT primary

MENU TITLE L4T boot options

LABEL primary
      MENU LABEL primary kernel
      LINUX /boot/Image
      INITRD /boot/initrd
      APPEND ${cbootargs} quiet root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyS0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0

# When testing a custom kernel, it is recommended that you create a backup of
# the original kernel and add a new entry to this file so that the device can
# fallback to the original kernel. To do this:
#
# 1, Make a backup of the original kernel
#      sudo cp /boot/Image /boot/Image.backup
#
# 2, Copy your custom kernel into /boot/Image
#
# 3, Uncomment below menu setting lines for the original kernel
#
# 4, Reboot

LABEL backup
    MENU LABEL backup kernel
    LINUX /boot/Image.backup
    INITRD /boot/initrd
    APPEND ${cbootargs}
 
更新權(quán)限:
創(chuàng)建 /etc/udev/rules.d/99-anbox.rules文件,內(nèi)容如下:
KERNEL==“ashmem”, NAME="%k", MODE=“0666”
KERNEL==“binder”, NAME="%k", MODE=“0666”
 
然后執(zhí)行:
sudo udevadm control --reload-rules && udevadm trigger

重啟開發(fā)板,確認(rèn)當(dāng)前工作內(nèi)核版本為4.9.201-tegra-anbox,設(shè)備/dev/ashmem和/dev/binder都存在。

2.更新libsdl2

原帖中說18.04(開發(fā)板系統(tǒng)版本)的libsdl2庫有一個(gè)bug,所以需要更新libsdl2。具體是什么問題沒有仔細(xì)去查,這里我們選擇follow這一步操作:

# 安裝依賴包
sudo apt install dot2tex build-essential cmake cmake-data debhelper dbus google-mock libboost-dev libboost-filesystem-dev libboost-log-dev libboost-iostreams-dev libboost-program-options-dev libboost-system-dev libboost-test-dev libboost-thread-dev libcap-dev libsystemd-dev libegl1-mesa-dev libgles2-mesa-dev libglm-dev libgtest-dev liblxc1 libproperties-cpp-dev libprotobuf-dev lxc-dev pkg-config protobuf-compiler
# 下載libsdl源代碼
mkdr libsdl-source && cd libsdl-source
wget https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/libsdl2/2.0.9+dfsg1-1ubuntu1.19.04.1/libsdl2_2.0.9+dfsg1-1ubuntu1.19.04.1.dsc
wget https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/libsdl2/2.0.9+dfsg1-1ubuntu1.19.04.1/libsdl2_2.0.9+dfsg1-1ubuntu1.19.04.1.debian.tar.xz
wget https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/libsdl2/2.0.9+dfsg1-1ubuntu1.19.04.1/libsdl2_2.0.9+dfsg1.orig.tar.xz
# 編譯deb包
dpkg-source -x libsdl2_2.0.9+dfsg1-1ubuntu1.19.04.1.dsc
cd libsdl2-2.0.9+dfsg1/
dpkg-buildpackage -rfakeroot -b -uc -us
cd ..
# 安裝deb
sudo dpkg -i libsdl2-2.0-0_2.0.9+dfsg1-1ubuntu1.19.04.1_arm64.deb libsdl2-dev_2.0.9+dfsg1-1ubuntu1.19.04.1_arm64.deb libsdl2-doc_2.0.9+dfsg1-1ubuntu1.19.04.1_all.deb

3.編譯安裝Anbox

下載Anbox源代碼,編譯安裝:

git clone https://github.com/HarleyPato/anbox-arm64
mkdir -p anbox-arm64/build && cd anbox-arm64/build
cmake .. && make && sudo make install
sudo cp /usr/local/bin/anbox /usr/bin/

下載Android鏡像:

wget http://anbox.postmarketos.org/android-7.1.2_r39-anbox_arm64-userdebug.img
mv android-7.1.2_r39-anbox_arm64-userdebug.img /var/lib/anbox/android.img

通過Anbox發(fā)布的deb安裝包獲取配置文件:

mkdir anbox-deb && cd anbox-deb
wget http://ports.ubuntu.com/pool/multiverse/a/anbox/anbox_0.0~git20191115-1build1_arm64.deb
ar x anbox_0.0~git20191115-1build1_arm64.deb
tar Jxvf data.tar.xz
sudo cp ./lib/systemd/system/anbox-container-manager.service /lib/systemd/system/
sudo cp ./usr/lib/systemd/user/anbox-session-manager.service /usr/lib/systemd/usr/

在/lib/systemd/system/anbox-container-manager.service文件中注釋掉這兩行:

ExecStartPre=/sbin/modprobe ashmem_linux
ExecStartPre=/sbin/modprobe binder_linux

在/usr/lib/systemd/user/anbox-session-manager.service文件中,ExecStart前添加:

Environment="DISPLAY=:0"

啟動(dòng)Anbox服務(wù):

sudo systemctl unmask anbox-container-manager.service
sudo systemctl start anbox-container-manager.service
sudo systemctl enable anbox-container-manager.service

systemctl --user unmask anbox-session-manager.service
systemctl --user start anbox-session-manager.service
systemctl --user enable anbox-session-manager.service

檢查Anbox狀態(tài):

sudo systemctl status anbox-container-manager.service
systemctl --user status anbox-session-manager.service

結(jié)果應(yīng)該類似下圖:

至此所有安裝均已完成,重啟開發(fā)板,啟動(dòng)Anbox,就能看到Android界面了。可以通過adb install安裝apk到Anbox Android環(huán)境中并運(yùn)行。

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

    關(guān)注

    5133

    文章

    19502

    瀏覽量

    314334
  • Android
    +關(guān)注

    關(guān)注

    12

    文章

    3961

    瀏覽量

    129476
  • 虛擬機(jī)
    +關(guān)注

    關(guān)注

    1

    文章

    962

    瀏覽量

    28983
收藏 人收藏

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    何在CentOS系統(tǒng)中部署ELK日志分析系統(tǒng)

    功能,使用戶能夠快速獲取關(guān)鍵業(yè)務(wù)洞察。本文將詳細(xì)介紹如何在 CentOS 系統(tǒng)中部署 ELK 日志分析系統(tǒng),
    的頭像 發(fā)表于 05-08 11:47 ?136次閱讀
    如<b class='flag-5'>何在</b>CentOS系統(tǒng)中<b class='flag-5'>部署</b>ELK日志分析系統(tǒng)

    RK3576 yolov8訓(xùn)練部署教程

    本章展示yolov8模型的在EASY EAI Orin nano部署過程。
    的頭像 發(fā)表于 04-02 16:04 ?286次閱讀
    RK3576 yolov8訓(xùn)練<b class='flag-5'>部署</b>教程

    IMX Docker - IMX Nano 8編譯失敗的原因?

    使用版本 imx-6.6.52-2.2.0 和 imx 8 nano 時(shí),編譯失敗: bitbake imx-image-core 編譯 minimal 也會失敗: bitbake 核心映像最小
    發(fā)表于 03-28 07:07

    何在RAKsmart服務(wù)器實(shí)現(xiàn)企業(yè)AI模型部署

    AI模型的訓(xùn)練與部署需要強(qiáng)大的算力支持、穩(wěn)定的網(wǎng)絡(luò)環(huán)境和專業(yè)的技術(shù)管理。RAKsmart作為全球領(lǐng)先的服務(wù)器托管與云計(jì)算服務(wù)提供商,已成為企業(yè)部署AI模型的理想選擇。那么,如何在RAKsmart服務(wù)器
    的頭像 發(fā)表于 03-27 09:46 ?222次閱讀

    何在RakSmart服務(wù)器用Linux系統(tǒng)部署DeepSeek

    Linux系統(tǒng) DeepSeek 部署方案,結(jié)合RakSmart 服務(wù)器硬件推薦及多場景適配建議,主機(jī)推薦小編為您整理發(fā)布如何在RakSmart服務(wù)器用Linux系統(tǒng)部DeepSeek。
    的頭像 發(fā)表于 03-14 11:53 ?306次閱讀

    研華NVIDIA Jetson Orin Nano系統(tǒng)支持Super Mode

    提升生成式AI性能1.7倍 2025年春季— 研華科技,作為全球工業(yè)嵌入式 AI 解決方案供應(yīng)商,宣布推出搭載NVIDIA Jetson Orin Nano 8GB系統(tǒng)模塊的AI邊緣運(yùn)算系統(tǒng)
    發(fā)表于 03-10 14:07 ?259次閱讀
    研華NVIDIA <b class='flag-5'>Jetson</b> Orin <b class='flag-5'>Nano</b>系統(tǒng)支持Super Mode

    是否可以使用OpenVINO?部署管理器在部署機(jī)器運(yùn)行Python應(yīng)用程序?

    使用 OpenVINO?部署管理器創(chuàng)建運(yùn)行時(shí)軟件包。 將運(yùn)行時(shí)包轉(zhuǎn)移到部署機(jī)器中。 無法確定是否可以在部署機(jī)器運(yùn)行 Python 應(yīng)用程序,而無需安裝OpenVINO? Toolk
    發(fā)表于 03-05 08:16

    DLP?? NIRscan?? Nano源代碼編譯錯(cuò)誤identifier is undifined怎么解決?

    我們購買了DLP NIRScan Nano EVM模塊,從TI官網(wǎng)下載了源代碼Mobile Spectroscopy TIVA EVM,編譯出現(xiàn)了兩個(gè)錯(cuò)誤。該錯(cuò)誤由其他工程師于2019年在TI官方
    發(fā)表于 02-27 06:20

    NVIDIA發(fā)布小巧高性價(jià)比的Jetson Orin Nano Super開發(fā)者套件

    NVIDIA近期推出了一款全新的生成式AI超級計(jì)算機(jī)——Jetson Orin Nano Super開發(fā)者套件。這款開發(fā)者套件以其小巧的尺寸和高性價(jià)比吸引了廣泛關(guān)注。 Jetson Orin
    的頭像 發(fā)表于 12-19 11:28 ?962次閱讀

    Made with KiCad(二):Jetson Origin Baseboard

    “ ? 該項(xiàng)目包含支持NVIDIA Jetson Orin NanoJetson Orin NX系統(tǒng)模塊 (SoMs)的基板并開源了所有硬件設(shè)計(jì)文件。該基板對SoM的IO接口進(jìn)行了 分解。此外
    的頭像 發(fā)表于 11-12 12:24 ?1593次閱讀
    Made with KiCad(二):<b class='flag-5'>Jetson</b> Origin Baseboard

    何在DRA821U使用Linux實(shí)現(xiàn)快速引導(dǎo)

    電子發(fā)燒友網(wǎng)站提供《如何在DRA821U使用Linux實(shí)現(xiàn)快速引導(dǎo).pdf》資料免費(fèi)下載
    發(fā)表于 09-03 10:11 ?0次下載
    如<b class='flag-5'>何在</b>DRA821U<b class='flag-5'>上</b>使用Linux實(shí)現(xiàn)快速引導(dǎo)

    使用myAGV、Jetson Nano主板和3D攝像頭,實(shí)現(xiàn)了RTAB-Map的三維建圖功能!

    本文將展示如何使用myAGV Jetson Nano移動(dòng)平臺搭載Jetson Nano BO1主板,結(jié)合RTAB-Map和3D相機(jī),實(shí)現(xiàn)更加立體和細(xì)致的環(huán)境建圖。myAGV
    的頭像 發(fā)表于 08-28 10:22 ?1124次閱讀
    使用myAGV、<b class='flag-5'>Jetson</b> <b class='flag-5'>Nano</b>主板和3D攝像頭,實(shí)現(xiàn)了RTAB-Map的三維建圖功能!

    何在tx2部署模型

    在本文中,我們將詳細(xì)介紹如何在NVIDIA Jetson TX2上部署深度學(xué)習(xí)模型。NVIDIA Jetson TX2是一款專為邊緣計(jì)算和人工智能應(yīng)用而設(shè)計(jì)的高性能嵌入式平臺。它具有強(qiáng)
    的頭像 發(fā)表于 07-09 10:16 ?1033次閱讀

    Jetson Nano集成探索大象機(jī)器人myAGV的 SLAM 算法!

    情況下。 產(chǎn)品介紹 myAGV-Jetson Nano 這是第二代的myAGV,第一代的只有raspberry Pi 4B版本,算力方面有所欠缺,在二代的時(shí)
    的頭像 發(fā)表于 06-03 14:13 ?901次閱讀
    <b class='flag-5'>Jetson</b> <b class='flag-5'>Nano</b>集成探索大象機(jī)器人myAGV<b class='flag-5'>上</b>的 SLAM 算法!

    ELF 1技術(shù)貼|如何在Ubuntu中編譯OpenCV庫

    在之前發(fā)布的文章中探討了交叉編譯OpenCV并部署至嵌入式系統(tǒng)的方法。然而,在調(diào)試階段,我們發(fā)現(xiàn)在Ubuntu環(huán)境下將OpenCV編譯為X86架構(gòu)可能更加方便和高效。通過在主機(jī)上編譯
    的頭像 發(fā)表于 05-31 16:41 ?1361次閱讀
    ELF 1技術(shù)貼|如<b class='flag-5'>何在</b>Ubuntu中<b class='flag-5'>編譯</b>OpenCV庫