在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

如何使用Anbox在Jetson Nano 2GB上運行Android應(yīng)用程序

ICExpo ? 來源:NVIDIA英偉達(dá)中國 ? 作者:NVIDIA英偉達(dá)中國 ? 2021-08-26 17:46 ? 次閱讀

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

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

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

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

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

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

Jetson開發(fā)推薦使用Ubuntu18.04作為開發(fā)機,交叉編譯推薦使用Linaro GCC 7,kernel源代碼可以使用Jetpack提供的腳本通過git獲取,或者手動下載,我們這里使用手動下載[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),花費時間比較長。我們這里采用快速驗證方案:

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

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

主機執(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都存在。

更新libsdl2庫

原帖中說18.04(開發(fā)板系統(tǒng)版本)的libsdl2庫有一個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

wgethttps://launchpad.net/ubuntu/...

wgethttps://launchpad.net/ubuntu/...

wgethttps://launchpad.net/ubuntu/...

編譯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

編譯安裝Anbox

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

git clonehttps://github.com/HarleyPato...

mkdir -p anbox-arm64/build && cd anbox-arm64/build

cmake .. && make && sudo make install

sudo cp /usr/local/bin/anbox /usr/bin/

下載Android鏡像:

wgethttp://anbox.postmarketos.org...

mv android-7.1.2_r39-anbox_arm64-userdebug.img /var/lib/anbox/android.img

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

mkdir anbox-deb && cd anbox-deb

wgethttp://ports.ubuntu.com/pool/...

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"

啟動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

至此所有安裝均已完成,重啟開發(fā)板,啟動Anbox,就能看到Android界面了??梢酝ㄟ^adb install安裝apk到Anbox Android環(huán)境中并運行。

文章轉(zhuǎn)自:技術(shù)社區(qū)

作者:NVIDIA英偉達(dá)嵌入式系統(tǒng)

編輯:jq

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

    關(guān)注

    8

    文章

    641

    瀏覽量

    29213
  • 容器
    +關(guān)注

    關(guān)注

    0

    文章

    495

    瀏覽量

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

    關(guān)注

    0

    文章

    657

    瀏覽量

    32871

原文標(biāo)題:技術(shù)分享 | 使用Anbox在Jetson Nano 2GB上運行Android應(yīng)用程序

文章出處:【微信號:ic-china,微信公眾號:ICExpo】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

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

    為2070元人民幣。 與上一代產(chǎn)品相比,Jetson Orin Nano Super開發(fā)者套件性能上有了顯著提升。
    的頭像 發(fā)表于 12-19 11:28 ?359次閱讀

    android手機上emulate應(yīng)用程序的方法

    Android手機上模擬(emulate)應(yīng)用程序的方法通常涉及到使用Android模擬器(Emulator)或類似的工具來模擬Android
    的頭像 發(fā)表于 12-05 15:33 ?270次閱讀

    【軟件干貨】Android應(yīng)用進程如何?;睿?/a>

    TM4C MCU用FreeRTOS開發(fā)通用應(yīng)用程序應(yīng)用說明

    電子發(fā)燒友網(wǎng)站提供《TM4C MCU用FreeRTOS開發(fā)通用應(yīng)用程序應(yīng)用說明.pdf》資料免費下載
    發(fā)表于 09-11 14:15 ?0次下載
    <b class='flag-5'>在</b>TM4C MCU<b class='flag-5'>上</b>用FreeRTOS開發(fā)通用<b class='flag-5'>應(yīng)用程序</b>應(yīng)用說明

    e絡(luò)盟發(fā)售功能強大的入門級 Raspberry Pi 5 2GB

    安富利旗下全球電子元器件產(chǎn)品與解決方案分銷商e絡(luò)盟日前開售極具性價比的全新 Raspberry Pi 5 2GB。
    的頭像 發(fā)表于 09-02 10:39 ?328次閱讀
    e絡(luò)盟發(fā)售功能強大的入門級 Raspberry Pi 5 <b class='flag-5'>2GB</b>

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

    具備SLAM雷達(dá)導(dǎo)航功能,Jetson Nano提供了強大的計算能力,適合處理復(fù)雜的SLAM任務(wù)。通過引入3D攝像頭,我們能夠?qū)z像頭采集的深度信息融入到地圖中,使其不僅具有平面數(shù)據(jù),還包含了豐富的立體信息。本文中,我們將詳細(xì)
    的頭像 發(fā)表于 08-28 10:22 ?570次閱讀
    使用myAGV、<b class='flag-5'>Jetson</b> <b class='flag-5'>Nano</b>主板和3D攝像頭,實現(xiàn)了RTAB-Map的三維建圖功能!

    Anthropic推出Claude Android應(yīng)用程序,挑戰(zhàn)ChatGPT市場地位

    人工智能領(lǐng)域的激烈競爭中,新興力量Anthropic于本周二正式推出了其備受矚目的Claude Android應(yīng)用程序,標(biāo)志著這家公司多平臺布局
    的頭像 發(fā)表于 07-17 17:24 ?1053次閱讀

    讓smartconfigESP-03運行,CWSMARTSTART不工作是哪里的問題?

    我正在嘗試讓 smartconfig ESP-03 運行。我已經(jīng)從 github 存儲庫構(gòu)建了最新的 android 應(yīng)用程序。我正在
    發(fā)表于 07-17 08:18

    安裝在Android 14的LE OTA應(yīng)用程序無法使用是怎么回事?

    你好。 LE OTA 應(yīng)用程序示例代碼無法 Android 14 智能手機上運行。 點擊更新按鈕時,顯示"abort" ,OTA 進程無法繼續(xù)。 13
    發(fā)表于 07-05 06:01

    讓YUV2演示FX3的內(nèi)存運行,啟動數(shù)據(jù)流時卻無法正常工作,應(yīng)用程序會崩潰,為什么?

    效(我看到了我的 4 幀樣本),但啟動數(shù)據(jù)流時卻無法正常工作,應(yīng)用程序會崩潰。 linux 運行時,v4L2 報告說它根本不起作用:
    發(fā)表于 05-28 08:18

    Nvidia Jetson Nano + CYW55573/AWXB327MA-PUR M.2無法使用操作系統(tǒng)內(nèi)置的網(wǎng)絡(luò)管理器管理Wi-Fi如何解決?

    我們使用的是 Nvidia Jetson Nano + CYW55573/AWXB327MA-PUR M.2 ,請參閱 Nvidia Jetson 與英飛凌 AIROC Wi-Fi 6
    發(fā)表于 05-23 06:47

    應(yīng)用程序中的服務(wù)器錯誤怎么解決?

    使用應(yīng)用程序時,可能會遇到服務(wù)器錯誤的問題。這種錯誤通常會導(dǎo)致應(yīng)用程序無法正常運行 ,給用戶帶來不便。下面將介紹應(yīng)用程序中的服務(wù)器錯誤及其
    的頭像 發(fā)表于 03-12 15:13 ?6239次閱讀

    u8g2應(yīng)用程序無法moduStoolBox中構(gòu)建是為什么?

    u8g2 庫。 要將其添加到應(yīng)用程序中的哪里? 我試圖將其加載到libs目錄下,但是當(dāng)我這樣做時,它會產(chǎn)生70多個錯誤。 我相信我已經(jīng)在下面的壓縮文件中附上了我的應(yīng)用程序。 我 C
    發(fā)表于 01-24 07:03

    為什么低端獨立顯卡通常都標(biāo)配2GB的顯存?

    為什么低端獨立顯卡通常都標(biāo)配2GB的顯存? 低端獨立顯卡通常都標(biāo)配2GB的顯存,這是因為低端市場中,2GB的顯存已經(jīng)能夠滿足絕大多數(shù)用戶的需求。下面詳細(xì)解釋一下為什么低端獨立顯卡通常
    的頭像 發(fā)表于 01-09 14:14 ?795次閱讀

    谷歌發(fā)布新的AI SDK,簡化Gemini模型與Android應(yīng)用程序的集成

    。開發(fā)者無需直接使用 REST API,也無需為 Android 應(yīng)用程序中訪問 Gemini 模型實現(xiàn)服務(wù)器端服務(wù)。
    的頭像 發(fā)表于 01-03 16:29 ?942次閱讀
    主站蜘蛛池模板: 一级午夜| 色多多影视| 久久精品国产精品亚洲精品| 亚洲国产激情在线一区| 四虎新地址| 国产三级毛片视频| www.黄色一片| 日本xxxⅹ69xxxx护士| 18欧美乱大交| 99热精品一区| 六月丁香婷婷综合| 奇米影视999| 美女扒开尿口给男人爽免费视频| 欧亚激情偷乱人伦小说视频| 天天干国产| 啪啪在线视频| 色婷丁香| 天天碰天天操| 简单视频在线播放jdav| 色www永久免费| 天天天狠天天透天天制色| 日本欧洲亚洲一区在线观看| 男人天堂综合网| 午夜剧场操一操| 男女在线免费视频| 色多多在线观看高清免费| 五月欧美激激激综合网色播| 乡村乱人伦短小说| 久久久噜噜噜久久网| 国产色综合天天综合网| 久久99热久久精品23| 韩国r天堂| 久久天天躁狠狠躁夜夜爽| 亚洲欧美日韩在线观看你懂的 | aaaa级毛片| 丁香啪啪天堂激情婷婷| 狼色视频在线观免费观看| 欧美性一级交视频| 国产精品福利在线观看免费不卡 | 日韩porn| 夜夜草天天干|