新聞中心
嵌入式系統(tǒng)是一種特殊的計算機系統(tǒng),它通常被用來作為嵌入式設備的控制核心。嵌入式系統(tǒng)的特性包括緊湊的體積、較低的功耗、高可靠性和特定的實時性要求等。這些特性使得嵌入式系統(tǒng)在許多領域得到廣泛應用,例如便攜式設備、智能家居、醫(yī)療設備等。

在嵌入式系統(tǒng)開發(fā)中,ADB(Android Debug Bridge)是一種非常常用的工具,它可以連接開發(fā)機和嵌入式設備,并進行調試、安裝、卸載應用程序等操作。但是在嵌入式Linux中,ADB并不是默認安裝的,需要進行手動安裝。本文將介紹在嵌入式Linux中安裝ADB的步驟。
步驟一:安裝開發(fā)工具鏈
在進行ADB安裝之前,需要安裝開發(fā)工具鏈,以便能夠在嵌入式系統(tǒng)上進行交叉編譯。開發(fā)工具鏈包含了交叉編譯器、庫等工具,可以用來編譯嵌入式系統(tǒng)的應用程序。通常情況下,開發(fā)工具鏈的安裝方式與嵌入式系統(tǒng)的構建方式有關,因此本文不作贅述,讀者可以參考相關開發(fā)文檔進行安裝。
步驟二:下載ADB源碼
在進行ADB安裝之前,需要先下載ADB源碼。ADB源碼可以從Android官方網站上下載,地址為:https://android.googlesource.com/platform/system/core/+/eclr-release/adb。
下載完成后,將源碼文件解壓縮至任意目錄。在解壓縮過程中,可能會出現部分文件或目錄不被解壓的情況,這是由于ADB源碼依賴于其他源碼,解壓非完整源碼會導致編譯失敗。因此,在解壓縮之前,需要確認所有的源碼文件都已經下載完整。
步驟三:交叉編譯ADB
在完成步驟一和步驟二之后,可以開始進行ADB的交叉編譯了。具體步驟如下:
1. 進入ADB源碼目錄:cd adb
2. 設置編譯環(huán)境變量:
export CROSS_COMPILE=/bin/arm-linux-gnueabihf-
export CC=/bin/arm-linux-gnueabihf-gcc
export LD=/bin/arm-linux-gnueabihf-ld
export AR=/bin/arm-linux-gnueabihf-ar
其中,表示開發(fā)工具鏈所在的路徑。這些變量的作用分別是:
CROSS_COMPILE:指定交叉編譯器的路徑和前綴。
CC:指定交叉編譯器的路徑和名稱。
LD:指定鏈接器的路徑和名稱。
AR:指定靜態(tài)庫生成器的路徑和名稱。
3. 運行make命令編譯ADB:
make
編譯過程可能會比較漫長,取決于嵌入式系統(tǒng)的性能和編譯選項的設置。在編譯完成后,可以在out/host/linux-x86/bin目錄下找到adb可執(zhí)行文件。
步驟四:設置ADB環(huán)境變量
在完成編譯之后,需要將ADB的路徑加入環(huán)境變量中,以便在任意路徑下都可以使用ADB。在嵌入式Linux中,可以使用以下命令設置環(huán)境變量:
export PATH=$PATH:
其中,表示adb可執(zhí)行文件所在的路徑。
步驟五:測試ADB
在完成以上步驟后,可以在嵌入式系統(tǒng)上測試ADB是否已經安裝成功??梢酝ㄟ^以下命令測試:
adb devices
如果輸出結果為“device”,則表示ADB已經可以正常使用。如果輸出為空,或者顯示“unauthorized”,則表示設備和PC之間的連接存在問題,需要進一步檢查設備和PC之間的連接是否正常。
成都網站建設公司-創(chuàng)新互聯為您提供網站建設、網站制作、網頁設計及定制高端網站建設服務!
怎樣在Ubuntu下安裝Android SDK/ADB
Ubuntu電腦安裝Android SDK/褲漏虛ADB 之一步,你要下載Linux版Android SDK的安裝或文件包,然后你需要從Android SDK Manager內下載Platform Tools Package 請從Google官方獲取Android SDK安裝或文件包,通常情況,你下載的文件名為android-sdk_rxx-linux.tgz的形式,rxx代表版本,比如,r16版,即android-sdk_r16-linux.tgz,r24版,即android-sdk_r24-linux.tgz 請放置Android SDK安裝或文件包在你的用戶搜猜主目錄 胡燃在你的Ubuntu電腦上打開終端窗口 解壓Android SDK文件: cd ~ tar -zxvf android-sdk_r16-linux.tgz 在~/android-sdk-linux/tools字目錄,有一個叫做android的可執(zhí)行文件,盡管名字是android,但它實際上是Android SDK Manager 運行Android SDK Manager: ./~/android-sdk-linux/tools/android 選擇Android SDK Tools與Android SDK Platform-tools項,點Install packages安裝Platform Tools Package工具包。
Ubuntu電腦安裝Android SDK/ADB
之一步,你要下載Linux版Android SDK的安裝或文件包,然后你需要從Android SDK Manager內下載Platform Tools
Package
請從Google官方獲取Android
SDK安裝或文件包,通常情況,你下載的文件名為android-sdk_rxx-linux.tgz的形式,rxx代表版本,比如,r16版,即android-sdk_r16-linux.tgz,r24版,即android-sdk_r24-linux.tgz
請放置Android SDK安裝或文件包在你的用戶主目錄
在你的Ubuntu電腦上打開終端窗口
解壓Android SDK文件:
cd ~
tar -zxvf android-sdk_r16-linux.tgz
在~/android-sdk-linux/tools字目錄,有一個叫做android的可執(zhí)行文件,盡管名字是android,但它實際上是Android
SDK Manager
運行Android SDK Manager:
./~/android-sdk-linux/tools/android
選擇Android SDK
Tools與Android SDK Platform-tools項,點Install
packages安雹謹裝Platform Tools
Package工具包。包括ADB與Fastboot可執(zhí)行的文件在內的工具包都會被下載,由于下載的文件較多而需要一定的時間,你能去喝點東西
你下載的Platform Tools
Package工具包文件將位于新創(chuàng)建的~/android-sdk-linux/platform-tools目錄
第二步,修改ADB與Fastboot可執(zhí)行文件的默認PATH路徑環(huán)境。PATH環(huán)境變量可以是在~/.profile(或~/.bash_profile)或者~/.bashrc文件內修改,~/.profile文件是讀取所有交互式Shell的登錄,~/.bashrc文件讀取所有非交互式Shell的登錄(如sftp),瞎肆高在大多數默認情況下,~/.profile文件導入所有~/.bashrc文件的設置。PATH命令設定的改變必須包括/android-sdk-linux/tools與/android-sdk-linux/platform-tools目錄
kevdog的PATH命令設定通過Ubuntu系統(tǒng)內初始的默認編輯器Gedit在~/.bashrc文件底部增加了一行:
export
PATH=${PATH}:${HOME}/android-sdk-linux/tools:${HOME}/android-sdk-linux/platform-tools
第三步,我們需要為Ubuntu創(chuàng)建udev設備管理規(guī)則,從而讓設備在通磨尺過USB端口連接到電腦時能被正確地識別
將設備連接到電腦,然后執(zhí)行命令:
lsu
你會看到類似于下面的輸出信息:
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation
2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004
Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001:
ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 063: ID 04e8:6860
Samsung Electronics Co., Ltd
由于kevdog的設備是Samsung的某款設備,因此你能看到相應的識別信息:
Bus 001 Device 063: ID
04e8:6860 Samsung Electronics Co., Ltd
我們來解釋下上面的識別信息:
Bus 001 Device
063,設備端的名稱是/dev/bus/u/001/063,即這個信息可以幫助我們確定設備端的名稱
04e8,vendorID,即供貨商編號
6860,productID,即產品編號
使用設備端的名稱/dev/bus/u/001/063可以讓我們查詢設備的屬性,查詢這些屬性有時很有必要,因為udev設備管理匹配設備是基于特定標準的。為此,我們需要一個正確的udev設備匹配規(guī)則集,這個過程的之一步就是查詢能被連接或插入到我們規(guī)則集的準則,這可以通過udevadm程序來實現,并且有兩種方式現,它們生成的輸出信息為我們的設備構建udev設備管理規(guī)則:
udevadm查詢udev設備管理規(guī)則方法1:
udevadm info -q all -n
根據原作者的實際情況,設備端名稱是/dev/bus/u/001/063,因此命令是:
udevadm info -q all -n /dev/bus/u/001/063
你會看到類似于下面的輸出信息:
$ udevadm info -q all -n /dev/bus/u/001/063
P:
/devices/pci0000:00/0000:00:1d.7/u1/1-8
N: bus/u/001/063
S:
libmtp-1-8
S: GalaxyNexus
E: UDEV_LOG=3
E:
DEVPATH=/devices/pci0000:00/0000:00:1d.7/u1/1-8
E: MAJOR=189
E:
MINOR=62
E: DEVNAME=/dev/bus/u/001/063
E: DEVTYPE=u_device
E:
DRIVER=u
E: PRODUCT=4e8/6860/216
E: TYPE=0/0/0
E: BUSNUM=001
E: DEVNUM=063
E: SUBSYSTEM=u
E: ID_MTP_DEVICE=1
E:
ID_MEDIA_PLAYER=samsung_galaxy-s2
E: ID_VENDOR=samsung
E:
ID_VENDOR_ENC=samsung
E: ID_VENDOR_ID=04e8
E: ID_MODEL=Galaxy
E:
ID_MODEL_ENC=Galaxy
E: ID_MODEL_ID=6860
E: ID_REVISION=0216
E:
ID_SERIAL=samsung_Galaxy_0146B
E:
ID_SERIAL_SHORT=0146B
E: ID_BUS=u
E:
ID_USB_INTERFACES=:ffff00:ff4201:
E: DEVLINKS=/dev/libmtp-1-8
/dev/GalaxyNexus
E: TAGS=:udev-acl:
我們使用的規(guī)則從有E:(E=ENV=Device
Property設備屬性值)的行開始
udevadm查詢udev設備管理規(guī)則方法2:
udevadm info -a -p $(udevadm info -q path
-n )
根據原作者的實際情況,設備端名稱是/dev/bus/u/001/063,因此命令是:
udevadm info -a -p
$(udevadm info -q path -n /dev/bus/u/001/063)
你會看到類似于下面的輸出信息:
$ udevadm info -a -p $(udevadm info -q path -n /dev/bus/u/001/063)
Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found,
all possible attributes in the udev rules key format.
A rule to match, can
be composed by the attributes of the device
and the attributes from one
single parent device.
looking at device
‘/devices/pci0000:00/0000:00:1d.7/u1/1-8’:
KERNEL==”1-8″
SUBSYSTEM==”u”
DRIVER==”u”
ATTR{configuration}==””
ATTR{bNumInterfaces}==” 2″
ATTR{bConfigurationValue}==”1″
ATTR{bmAttributes}==”80″
ATTR{bMaxPower}==”500mA”
ATTR{urbnum}==”29″
ATTR{idVendor}==”04e8″
ATTR{idProduct}==”6860″
ATTR{bcdDevice}==”0216″
ATTR{bDeviceClass}==”00″
ATTR{bDeviceSubClass}==”00″
ATTR{bDeviceProtocol}==”00″
ATTR{bNumConfigurations}==”1″
ATTR{bMaxPacketSize0}==”64″
ATTR{speed}==”480″
ATTR{busnum}==”1″
ATTR{devnum}==”63″
ATTR{devpath}==”8″
ATTR{version}==” 2.00″
ATTR{maxchild}==”0″
ATTR{quirks}==”0x0″
ATTR{avoid_reset_quirk}==”0″
ATTR{authorized}==”1″
ATTR{manufacturer}==”samsung”
ATTR{product}==”Galaxy”
ATTR{serial}==”0146B”
looking at parent device ‘/devices/pci0000:00/0000:00:1d.7/u1’:
KERNELS==”u1″
SUBSYSTEMS==”u”
DRIVERS==”u”
ATTRS{configuration}==””
ATTRS{bNumInterfaces}==” 1″
ATTRS{bConfigurationValue}==”1″
ATTRS{bmAttributes}==”e0″
ATTRS{bMaxPower}==” 0mA”
ATTRS{urbnum}==”1403″
ATTRS{idVendor}==”1d6b”
ATTRS{idProduct}==”0002″
ATTRS{bcdDevice}==”0300″
ATTRS{bDeviceClass}==”09″
ATTRS{bDeviceSubClass}==”00″
ATTRS{bDeviceProtocol}==”00″
ATTRS{bNumConfigurations}==”1″
ATTRS{bMaxPacketSize0}==”64″
ATTRS{speed}==”480″
ATTRS{busnum}==”1″
ATTRS{devnum}==”1″
ATTRS{devpath}==”0″
ATTRS{version}==” 2.00″
ATTRS{maxchild}==”8″
ATTRS{quirks}==”0x0″
ATTRS{avoid_reset_quirk}==”0″
ATTRS{authorized}==”1″
ATTRS{manufacturer}==”Linux 3.0.0-14-generic
ehci_hcd”
ATTRS{product}==”EHCI Host Controller”
ATTRS{serial}==”0000:00:1d.7″
ATTRS{authorized_default}==”1″
looking at parent device ‘/devices/pci0000:00/0000:00:1d.7’:
KERNELS==”0000:00:1d.7″
SUBSYSTEMS==”pci”
DRIVERS==”ehci_hcd”
ATTRS{vendor}==”0x8086″
ATTRS{device}==”0x27cc”
ATTRS{subsystem_vendor}==”0x103c”
ATTRS{subsystem_device}==”0x3010″
ATTRS{class}==”0x0c0320″
ATTRS{irq}==”20″
ATTRS{local_cpus}==”ff”
ATTRS{local_cpulist}==”0-7″
ATTRS{dma_mask_bits}==”32″
ATTRS{consistent_dma_mask_bits}==”32″
ATTRS{broken_parity_status}==”0″
ATTRS{msi_bus}==””
ATTRS{companion}==””
looking at
parent device ‘/devices/pci0000:00’:
KERNELS==”pci0000:00″
SUBSYSTEMS==””
DRIVERS==””
我們使用的規(guī)則從有ATTRS(ATTRS=Device
Attributes設備屬性)的行開始
不管是ENV,還是ATTRS,我們可以構建一個udev設備管理規(guī)則集。規(guī)則集的名稱可以隨意,根據原作者的意圖,我們叫做51-android.rules:
你能這樣建立規(guī)則集文件:
gksu gedit /etc/udev/rules.d/51-android.rules
之后,請在規(guī)則集文件中加入相關的規(guī)則,以原作者的規(guī)則來看,注意是一行一個:
SUBSYSTEM==”u”,
ENV{ID_VENDOR_ID}==”04e8″, ENV{ID_MODEL}==”Galaxy”, MODE=”0666″,
SYMLINK+=”GalaxyNexus”
SUBSYSTEM==”u”, ENV{ID_VENDOR_ID}==”04e8″,
ENV{ID_MODEL_ID}==”6860″, MODE=”0666″, SYMLINK+=”GalaxyNexus”
SUBSYSTEM==”u”, ATTR{idVendor}==”04e8″, ATTR{idProduct}==”6860″,
ATTR{product}==”Galaxy” MODE=”0666″, SYMLINK+=”GalaxyNexus”
如上面所加的規(guī)則,這些規(guī)則匹配準則是SUBSYSTEM,
ENV,ATTR,它只會修改設備的模式MODE(0666=rw-rw-rw-)與創(chuàng)建鏈接于/dev/GalaxyNexus的GalaxyNexus標識。當然,更多的指令可以分配給設備,如插入或移除設備時的執(zhí)行命令,你能這樣指定指令:
ACTION==”add”, RUN+=””
ACTION==”remove”,
RUN+=””
例如,我們要設定設備在插入或彈出時播放一個聲音或MP3文件,可以如下指令設定:
ACTION==”add”, RUN+=”/usr/local/bin/NexusMount.sh”
ACTION==”remove”, RUN+=”/usr/local/bin/NexusUnmount.sh”
需要注意的是,每個ACTION指令設定必須在它自己的命令行;目錄必須正確;指令可以是多重設定
一旦規(guī)則構建完成,我們需要保存/etc/udev/rules.d/51-android.rules規(guī)則文件
在你執(zhí)行規(guī)則集前,測試一下通常是一個好主意,因為那樣你能很容易地找出編寫規(guī)則集的錯誤:
你能使用udevadm工具簡單地完成規(guī)則集的測試:
udevadm info -q path -n d=
根據原作者的設備端名/dev/bus/u/001/063,測試行為:
udevadm test –action=”SUBSYSTEM==”u”, ENV{ID_VENDOR_ID}==”04e8″,
ENV{ID_MODEL}==”Galaxy” MODE=”0666″, SYMLINK+=”GalaxyNexus”” $(udevadm info -q
path -n /dev/bus/u/001/063)
雖然測試輸出行相當長,兩行輸出信息正確地識別規(guī)則集的指令設定:
udev_rules_apply_to_event: MODE 0666
/etc/udev/rules.d/51-android.rules:1
udev_rules_apply_to_event: LINK
‘GalaxyNexus’ /etc/udev/rules.d/51-android.rules:1
一旦你確認了規(guī)則集正確,請重啟udev設備管理服務:
sudo service udev restart
第四步,退出電腦的登錄,然后重新登錄回
在設備插入的情況下,執(zhí)行ADB命令,如確認設備連接:
$ adb devices
你會看到設備識別號信息,根據原作者的設備,它是
0146Bdevice
如果你的設備已啟動在Fastboot模式,許多設備不啟動可能也行,你能執(zhí)行Fastboot命令,如標準的Fastboot設備:
$
fastboot devices
怎樣搭建一個嵌入式開發(fā)平臺(ARM LINUX)?
搭建嵌入式Linux平臺其實就是在宿主機與目標機之配侍間的連接,宿主機一般就是PC,目標機就是開發(fā)板。軟件:在宿主機上需要Linux的發(fā)行版,目標機上需要移植Linux內核。交叉編譯實現:先在宿主機上安裝交叉工具鏈(ARM的),網上很多下載,也可以自行訂制。然后用交叉工具鏈編譯程序部署到目標機才可以運行。搭建平臺還遠不止這些,你還要移植bootloader(推薦U-Boot),移植Linux內核之后還圓禪要制作根文件系統(tǒng)(相當于計算機的硬盤),否則系統(tǒng)是無法啟動的。
指導教程有很多,百度文庫里面就有,只要搜索“Linux移植”一般整個搭建過程都會有敘述,但是整個的搭建過程因目標板、因內橘賣塵核、因交叉工具鏈等等的同而不同,沒有普適的辦法,整個移植的過程也會出現各種問題,耐心搭建吧,呵呵,祝你好運!
搭建嵌入式Linux平臺其實就是在宿主機與目標機之間的連接,宿主機一般就是PC,目標機就是開發(fā)板。軟件:在宿主機上需要Linux的發(fā)行版,目標機上需要移植Linux內核。交叉編譯實現團指返:先在宿主機上安裝交叉工具鏈(ARM的),網上很多下載,也可以自行訂制。然后用交叉工具鏈編譯程序部署到目標機才可以運行。搭建平臺還遠不止這些,你還要移植bootloader(推薦U-Boot),塌饑移植Linux內核之后還要制作根文件系統(tǒng)(相當于計算機的硬盤),否則系統(tǒng)是無法啟動的。
指導教程有很多,百度文庫里面就有,只要搜索“Linux移植”一般整個搭建過程都會有敘述,但是整個的搭建過程因目標板、因內核、因交叉工具鏈等等的同而不同,沒有普適逗穗的辦法,整個移植的過程也會出現各種問題,耐心搭建。
嵌入式Linux的ftp最游激常用來完成開發(fā)板和開發(fā)環(huán)境Linux系統(tǒng)之間的的文段手件傳輸功能神燃襪,避免了頻繁的U盤拷貝的過程。
買一塊 好點的 arm9 開發(fā)板,都會附帶 教學視頻的,這不是一兩句能說清楚的。
關于嵌入式linux adb安裝的介紹到此就結束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關注本站。
創(chuàng)新互聯(cdcxhl.com)提供穩(wěn)定的云服務器,香港云服務器,BGP云服務器,雙線云服務器,高防云服務器,成都云服務器,服務器托管。精選鉅惠,歡迎咨詢:028-86922220。
文章標題:嵌入式Linux中ADB安裝教程(嵌入式linuxadb安裝)
網頁路徑:http://m.5511xx.com/article/copipcs.html


咨詢
建站咨詢
