導航:首頁 > 操作系統 > linuxandroidusb

linuxandroidusb

發布時間:2022-10-06 07:11:59

A. 如何使ADB在linux下支持android設備的udev規則配置

1.Connect Andriod device to your Linux ***.
2.Use "lsusb".
Use lsusb to check the Android device ID in usb subsystem, like below (do not care "$"):
$ lsusb
Bus 001 Device 002: ID 0fce:6156 Sony Ericsson Mobile
Number "0fce" is the Andriod device ID in use subsystem.
3.Update adb tool.
Turn to Android sdk folder "tools", typein below words:
$./android adb update
it's neccesary step to create ~/.android/adb_usb.ini.
4. Edit adb_usb.ini .
Edit ~/.android/adb_usb.ini. Add usb subsystem ID to adb_usb.ini, like below:
0x0fec
5.Create udev rule file.
Create a new file named "sony-android.rules" in /etc/udev/rules.d folder.
Add below content to "sony-android.rules"
SUBSYSTEM=="usb", SYSFS{idVendor}=="0fec", MODE="0666"
idVendor USB Vendor IDs, reference:
chmod rule file:
sudo chmod a+rx /etc/udev/rules.d/sony-android.rules
6.Restart udev service.
Do as below to restart udev service:
$ sudo service udev restart
7.Restart adb service.
Do as below to restart adb service.
$ adb kill-server
$ adb start-server
8.Try "adb devices".
Plug out Adnroid device, then, Plug in again, use "adb devices" to check your Andriod device.

B. 如何在Linux下獲取Android手機root許可權

安卓系統的手機root的時候可以用電腦上的應用寶,成功率高。
1、您要先在手機上打開手機的USB連接模式才可以的、
2、用您手機的數據線把手機與電腦連接,它會自動匹配您的手機型號
3、在應用寶的常用工具里找到 一鍵root並點擊就可以直接root成功了。

C. linux下android開發真機設備識別不了怎麼辦

查找android手機ID(一)
將連有android手機的usb數據線拔出
打開終端,輸入lsusb,查看usb設備
查找android手機ID(二)
插入連接有android手機的usb數據線
在終端輸入lsusb,比較兩步中usb設備ID的不同,找出手機的ID
創建規則文件
在/etc/udev/rules.d/文件夾下創建50-android.rules文件
在規則文件中添加手機ID
打開50-android.rules文件,添加信息
SUBSYSTEM=="usb",SYSFS{idVendor}=="19d2", MODE="0666"
將19d2改為你自己的手機ID
重啟udev服務
在終端輸入
sudo /etc/init.d/udev restart
查看真機設備是否被識別
在終端輸入
adb kill-server
adb devices
如果還不能識別,打開手機,重新選中「usb調試」,再試一試上邊的兩個命令,就可以識別了

D. Android端有沒有什麼可以比較方便閱讀Linux源碼的工具

1. ctags

ctags應該是幾個裡面最古老的一個了,當然也是獲得支持最多的一個,vim默認就支持ctags產生的tag資料庫,不過原來的ctags名符其實, 只支持C語言,且分析不夠細膩。其新版本名為exuberant ctags,但是它已經遠遠超出了它名字的范疇,支持包括C語言在內的33種編程語言,准確度上也不錯,並且它的開發仍在如火如荼地進行著,前途無量啊!
配合vim使用,基本上能滿足用戶的要求。
常用命令:
建立資料庫命令:
exuberant-ctags
在vim編輯器中瀏覽:

:ta x
跳轉到符號x的定義處,如果有多個符號,直接跳轉到第一處
:ts x
列出符號x的定義
:tj x
可以看做上面兩個命令的合並,如果只找到一個符號定義,那麼直接跳轉到符號定義處,如果有多個,則讓用戶自行選擇。
Ctrl+]
跳轉到當前游標下符號的定義處,和ta類似。
Ctrl+t
跳轉到上一個符號定義處,和上面的配合基本上就能自由跳轉了。
另外兩個:tn, :tp是在符號的多個定義之間跳轉
美中不足,只能查找符號的定義,不能實現交叉引用查詢等其它功能。
2. Cscope

相比ctags的只能查找符號的定義,cscope則顯得更加豐富,雖然他支持C語言,但是它除了能查找函數的定義,還能查找函數在哪裡被調用過等,所以能在一定程度上彌補ctags的不足。
常用命令:
建立資料庫的命令:
cscope和vim配合使用:
不再重復vim文檔了,自己通過命令
:help cscope
去詳細學習吧。
比較遺憾的是,cscope的最後一次更新是在2003年,這個項目似乎也是被人拋棄了,希望以後能被人收養,或者和其它項目合並。
3. Global

Global是GNU出品的交叉索引工具,支持C, C++, Yacc, Java 和PHP4五種語言,命令行下表現不錯,但是和vim配合使用,就不如前面兩個更加親切了。其特色在於分析得很細膩,我所研究過的,暫時只能 soucenav能超過它。能生成交叉索引的web頁,很適合用來做程序的文檔。資料庫是從berkeley BD 3上改過來的。但和我的要需求卻有比較大的差距。因為它只有一個WEB的前端,在功能上,他現有的前端也只實現符號查詢和交叉引用查詢。

E. android6.0,usb插上乙太網卡,重啟設備後網卡燈不亮,必須重新插拔,請問如何開機後點亮網卡

最近有個客戶說想要在android板上加入乙太網功能,就在淘寶上先買了一個RTL8152的USB網卡(RTL8152本身就是USB介面的),就著手開始了移植工作

其實Android4.4已經支持乙太網了,如果手上的android源碼不支持乙太網功能的話,就要自己移植代碼,方法的話網上一抓一大把,我這里就不再贅述了

我需要做的只是在linux內核中將RTL8152的驅動加進去,將網卡接入板子的USB口,就可以開機看效果了

果然!果然!果然!果然!果然!果然!

開機之後發現乙太網無法連接,就算執行了netcfg eth0 up dhcp也不行。
很奇怪的是執行了netcfg eth0 up dhcp這句代碼後,使用ifconfig看網卡信息可以發現網卡已經自動獲取到了ip地址,而且也可以ping通外網,可是使用瀏覽器卻提示無法連接網路

我還嘗試了將乙太網連接的優先順序設為0(本身為9),也還是不行

F. linux驅動和android有區別嗎

大家都知道Android是基於Linux內核的操作系統,也曾經和Linux基金會因為內核問題產生過分歧,本文將開始對Android的內核進行剖析,主要介紹Android和Linux之間的關系,後續還會講到Android系統在Linux系統之上擴展的部分功能和驅動。
雖然Android基於Linux內核,但是它與Linux之間還是有很大的差別,比如Android在Linux內核的基礎上添加了自己所特有的驅動程序。下面我們就來分析一下它們之間究竟有什麼關系?
android是否能稱為一種新的操作系統呢?至少我自己認為不算是,它最多算作一個新的應用程序罷了。
一、Android為什麼會選擇Linux
成熟的操作系統有很多,但是Android為什麼選擇採用Linux內核呢?這就與Linux的一些特性有關了,比如:
1、強大的內存管理和進程管理方案
2、基於許可權的安全模式
3、支持共享庫
4、經過認證的驅動模型
5、Linux本身就是開源項目
更多關於上述特性的信息可以參考Linux 2.6版內核的官方文檔,這便於我們在後面的學習中更好地理解Android所特有的功能特性。接下來分析Android與Linux的關系。
二、Android不是Linux
看到這個標題大家可能會有些迷惑,前面不是一直說Android是基於Linux內核的嗎,怎麼現在又不是Linux了?迷惑也是正常的,請先看下面幾個要點,然後我們將對每一個要點進行分析,看完後你就會覺得Android不是Linux了。
因為它沒有本地窗口系統,沒有glibc的支持,而且並不包括一整套標準的Linux使用程序,同時增強了Linux以支持其特有的驅動。
1.它沒有本地窗口系統
什麼是本地窗口系統呢?本地窗口系統是指GNU/Linux上的X窗口系統,或者Mac OX X的Quartz等。不同的操作系統的窗口系統可能不一樣,Android並沒有使用(也不需要使用)Linux的X窗口系統,這是Android不是Linux的一個基本原因。
我很奇怪的是linux的Xwindow並不是其核心程序,你可以看到很多嵌入式linux根本不會用到這個圖形界面系統,而手機上的android不使用Xwindow不是很正常嗎?我們學習的時候用QT難道就不叫做linux系統了么?
2.它沒有glibc支持
由於Android最初用於一些便攜的移動設備上,所以,可能出於效率等方面的考慮,Android並沒有採用glibc作為C庫,而是Google自己開發了一套Bionic Libc來代替glibc。
庫文件不同,好吧,因為移植顯然是要修改庫文件和頭文件的吧,求指教
3.它並不包括一整套標準的Linux使用程序
Android並沒有完全照搬Liunx系統的內核,除了修正部分Liunx的Bug之外,還增加了不少內容,比如:它基於ARM構架增加的Gold-Fish平台,以及yaffs2 FLASH文件系統等。

4.Android專有的驅動程序
除了上面這些不同點之外,Android還對Linux設備驅動進行了增強,主要如下所示。
1)Android Binder 基於OpenBinder框架的一個驅動,用於提供 Android平台的進程間通信(InterProcess Communication,IPC)功能。源代碼位於drivers/staging/android/binder.c。
2)Android電源管理(PM) 一個基於標准Linux電源管理系統的輕量級Android電源管理驅動,針對嵌入式設備做了很多優化。源代碼位於:
kernel/power/earlysuspend.c
kernel/power/consoleearlysuspend.c
kernel/power/fbearlysuspend.c
kernel/power/wakelock.c
kernel/power/userwakelock.c
如果給內核添加驅動也可以稱之為不同的話?
3)低內存管理器(Low Memory Killer) 比Linux的標準的OOM(Out Of Memory)機制更加靈活,它可以根據需要殺死進程以釋放需要的內存。源代碼位於 drivers/staging/ android/lowmemorykiller.c。
4)匿名共享內存(Ashmem) 為進程間提供大塊共享內存,同時為內核提供回收和管理這個內存的機制。源代碼位於mm/ashmem.c。
5)Android PMEM(Physical) PMEM用於向用戶空間提供連續的物理內存區域,DSP和某些設備只能工作在連續的物理內存上。源代碼位於drivers/misc/pmem.c。
6)Android Logger 一個輕量級的日誌設備,用於抓取Android系統的各種日誌。源代碼位於drivers/staging/android/logger.c。
7)Android Alarm 提供了一個定時器,用於把設備從睡眠狀態喚醒,同時它還提供了一個即使在設備睡眠時也會運行的時鍾基準。源代碼位於drivers/rtc/alarm.c。
8)USB Gadget驅動 一個基於標准 Linux USB gadget驅動框架的設備驅動,Android的USB驅動是基於gaeget框架的。源代碼位於drivers/usb/gadget/。
9)Android Ram Console 為了提供調試功能,Android允許將調試日誌信息寫入一個被稱為RAM Console的設備里,它是一個基於RAM的Buffer。源代碼位於drivers/staging/android / ram_console.c。
10)Android timed device 提供了對設備進行定時控制的功能,目前支持vibrator和LED設備。源代碼位於drivers/staging/android /timed_output.c(timed_gpio.c)。
11)Yaffs2 文件系統 Android採用Yaffs2作為MTD nand flash文件系統,源代碼位於fs/yaffs2/目錄下。Yaffs2是一個快速穩定的應用於NAND和NOR Flash的跨平台的嵌入式設備文件系統,同其他Flash文件系統相比,Yaffs2能使用更小的內存來保存其運行狀態,因此它佔用內存小。Yaffs2的垃圾回收非常簡單而且快速,因此能表現出更好的性能。Yaffs2在大容量的NAND Flash上的性能表現尤為突出,非常適合大容量的Flash存儲。

G. android kernel和標准linux kernel的區別

android kernel和標准linux kernel的區別
總的區別可以歸納如下:
ARCH -- 這是Android修改了arch/arm下面的一些文件:
arch/arm:
Chg: arch/arm/kernel/entry-armv.S
Chg: arch/arm/kernel/mole.c
Chg: arch/arm/kernel/process.c
Chg: arch/arm/kernel/ptrace.c
Chg: arch/arm/kernel/setup.c
Chg: arch/arm/kernel/signal.c
Chg: arch/arm/kernel/traps.c
Chg: arch/arm/mm/cache-v6.S
Chg: arch/arm/vfp/entry.S
Chg: arch/arm/vfp/vfp.h
Chg: arch/arm/vfp/vfphw.S
Chg: arch/arm/vfp/vfpmole.c
Goldfish -- 這是Android為了模擬器所開發的一個虛擬硬體平台。Goldfish執行arm926T指令(在2.6.29中,goldfish也支持ATMv7指令),但是在實際的設備中,該虛擬平台的文件不會被編譯
arch/arm/mach-goldfish:
New: arch/arm/mach-goldfish/audio.c
New: arch/arm/mach-goldfish/board-goldfish.c
New: arch/arm/mach-goldfish/pdev_bus.c
New: arch/arm/mach-goldfish/pm.c
New: arch/arm/mach-goldfish/switch.c
New: arch/arm/mach-goldfish/timer.c
YAFFS2 -- 和PC把文件存儲在硬碟上不一樣, 移動設備一般把Flash作為存儲設備。尤其是NAND flash應用非常廣泛(絕大多數手機用的都是NAND flash,三星的一些手機使用的是OneNAND)。NAND flash具有低成本和高密度的優點。
YAFFS2 是「Yet Another Flash File System, 2nd edition" 的簡稱。 它提供在Linux內核和NAND flash設備 之前高效率的介面。 YAFFS2並沒有包含在標準的Linux內核中, Google把它添加到了Android的kernel
fs/yaffs2:
New: fs/yaffs2/devextras.h
New: fs/yaffs2/Kconfig
New: fs/yaffs2/Makefile
New: fs/yaffs2/moleconfig.h
New: fs/yaffs2/yaffs_checkptrw.c
New: fs/yaffs2/yaffs_checkptrw.h
New: fs/yaffs2/yaffs_ecc.c
New: fs/yaffs2/yaffs_ecc.h
New: fs/yaffs2/yaffs_fs.c
New: fs/yaffs2/yaffs_getblockinfo.h
New: fs/yaffs2/yaffs_guts.c
New: fs/yaffs2/yaffs_guts.h
New: fs/yaffs2/yaffsinterface.h
New: fs/yaffs2/yaffs_mtdif1.c
New: fs/yaffs2/yaffs_mtdif1.h
New: fs/yaffs2/yaffs_mtdif2.c
New: fs/yaffs2/yaffs_mtdif2.h
New: fs/yaffs2/yaffs_mtdif.c
New: fs/yaffs2/yaffs_mtdif.h
New: fs/yaffs2/yaffs_nand.c
New: fs/yaffs2/yaffs_nandemul2k.h
New: fs/yaffs2/yaffs_nand.h
New: fs/yaffs2/yaffs_packedtags1.c
New: fs/yaffs2/yaffs_packedtags1.h
New: fs/yaffs2/yaffs_packedtags2.c
New: fs/yaffs2/yaffs_packedtags2.h
New: fs/yaffs2/yaffs_qsort.c
New: fs/yaffs2/yaffs_qsort.h
New: fs/yaffs2/yaffs_tagscompat.c
New: fs/yaffs2/yaffs_tagscompat.h
New: fs/yaffs2/yaffs_tagsvalidity.c
New: fs/yaffs2/yaffs_tagsvalidity.h
New: fs/yaffs2/yportenv.h
Bluetooth -- Google為Bluetooth打上了patch,fix了一些Bluetooth的bug
drivers/bluetooth:
Chg: drivers/bluetooth/bfusb.c
Chg: drivers/bluetooth/bt3c_cs.c
Chg: drivers/bluetooth/btusb.c
Chg: drivers/bluetooth/hci_h4.c
Chg: drivers/bluetooth/hci_ll.c
Scheler -- 對於Scheler的改變非常小,我對它並沒有去研究。
Chg: kernel/sched.c

New Android Functionality -- 除了fix一些bug以及其他一些小的更改,Android增加了一些新的功能,介紹如下:
IPC Binder -- The IPC Binder is an Inter-Process Communication (IPC) mechanism. It allows processes to provide services to other processes via a set of higher-level APIs than are available in standard Linux. An Internet search indicated that the Binder concept originated at Be, Inc., and then made its way into Palm's software, before Google wrote a new Binder for Android.
New: drivers/staging/android/binder.c
Low Memory Killer -- Android adds a low-memory killer that, each time it's called, scans the list of running Linux processes, and kills one. It was not clear in our cursory examination why Android adds a low-memory killer on top of the already existing one in the standard Linux kernel.
New: drivers/staging/android/lowmemorykiller.c
Ashmem -- Ashmem is an Anonymous SHared MEMory system that adds interfaces so processes can share named blocks of memory. As an example, the system could use Ashmem to store icons, which multiple processes could then access when drawing their UI. The advantage of Ashmem over traditional Linux shared memory is that it provides a means for the kernel to reclaim these shared memory blocks if they are not currently in use. If a process then tries to access a shared memory block the kernel has freed, it will receive an error, and will then need to reallocate the block and reload the data.
New: mm/ashmem.c
RAM Console and Log Device -- To aid in debugging, Android adds the ability to store kernel log messages to a RAM buffer. Additionally, Android adds a separate logging mole so that user processes can read and write user log messages.
New: drivers/staging/android/ram_console.c
Android Debug Bridge -- Debugging embedded devices can best be described as challenging. To make debugging easier, Google created the Android Debug Bridge (ADB), which is a protocol that runs over a USB link between a hardware device running Android and a developer writing applications on a desktop PC.
drivers/usb/gadget:
New: drivers/usb/gadget/android.c
Chg: drivers/usb/gadget/composite.c
Chg: drivers/usb/gadget/f_acm.c
New: drivers/usb/gadget/f_acm.h
New: drivers/usb/gadget/f_adb.c
New: drivers/usb/gadget/f_adb.h
New: drivers/usb/gadget/f_mass_storage.c
New: drivers/usb/gadget/f_mass_storage.h

Android also adds a new real-time clock, switch support, and timed GPIO support. We list the impacted files for these new moles at the end of this document.
Power Management -- Power management is one of the most difficult pieces to get right in mobile devices, so we split it out into a group separate from the other pieces. It's interesting to note that Google added a new power management system to Linux, rather than reuse what already existed. We list the impacted files at the end of this document.
kernel/power:
New: kernel/power/consoleearlysuspend.c
New: kernel/power/earlysuspend.c
New: kernel/power/fbearlysuspend.c
Chg: kernel/power/main.c
Chg: kernel/power/power.h
Chg: kernel/power/process.c
New: kernel/power/userwakelock.c
New: kernel/power/wakelock.c
Miscellaneous Changes -- In addition to the above, we found a number of changes that could best be described as, 'Miscellaneous.' Among other things, these changes include additional debugging support, keypad light controls, and management of TCP networking.
(freedom_asic)

H. 如何解決Linux下USB設備節點名不固定問題

以USB轉串口為例,通常設備節點名為ttyUSBx(x為0~n),Linux內核會根據插入設備的先後順序進行編號的分配,比如第一個插入的設備編號為0,然後依此加1。
如果僅僅以設備節點ttyUSBn來區別具體是哪個設備,因為末位的編號是隨時會變的,所以就會造成混亂。無法保證A設備就是0,B設備就是1。其實這個問題在LDD3上已經提到過,目前的內核早已經解決類似的問題,將所以有USB設備都導致到sys文件系統中,其實每個USB埠都有唯一的埠號,相當於每個門店的門牌號。只要我們依據埠號來進行設備的區分,那麼問題就迎刃而解了。

比如當前設備插入兩個USB轉串口設備後,查看ttyUSBn所在埠的埠號:
root@android:/ $ ls -l /sys/class/tty/
...
lrwxrwxrwx root rootttyUSB0 -> ../../devices/ff540000.usb/usb3/3-1/3-1.1/3-1.1:1.0/ttyUSB0/tty/ttyUSB0
lrwxrwxrwx root root ttyUSB1 -> ../../devices/ff540000.usb/usb3/3-1/3-1.2/3-1.2:1.0/ttyUSB1/tty/ttyUSB1
root@android:/ $
其中ttyUSB0所在的埠號為3-1.1,而ttyUSB1所在的埠號為3-1.2。

其它類型USB設備同理,以上思路清理完畢。

Virtualbox識別USB設備:http://www.linuxdiyf.com/linux/13723.html
Ubuntu中VM VirtualBox不能識別USB的解決辦法:http://www.linuxdiyf.com/linux/9026.html
Ubuntu 15.04啟動Virtualbox USB設備支持:http://www.linuxdiyf.com/linux/12799.html
使用mkusb來製作U盤啟動安裝Ubuntu 15.04:http://www.linuxdiyf.com/linux/12719.html
Ubuntu Kylin 15.04下禁用USB的方法:http://www.linuxdiyf.com/linux/12118.html

I. android手機怎樣連接到vm虛擬機里linux!! 通過USB調試連接!

在主機上啟動服務 VMUSBArbService
應該就可以在虛擬機里連接了

閱讀全文

與linuxandroidusb相關的資料

熱點內容
小電影免費小電影 瀏覽:413
三個鬼猜拳是什麼電影 瀏覽:106
法國愛情免費觀看love 瀏覽:655
查理九世百度網盤txt下載 瀏覽:171
守望者監獄潑油第幾集 瀏覽:972
那種電影在線觀看 瀏覽:123
電影演員表名字有個方框 瀏覽:675
日本生活中的瑪麗女主是誰 瀏覽:482
明天我打算去看電影英文 瀏覽:153
cofax傳真伺服器怎麼用 瀏覽:538
三極僵屍片 瀏覽:869
加工中心pdf 瀏覽:571
如何解除自動加密軟體 瀏覽:574
壓縮文件無損傳輸 瀏覽:539
歐美一部在經期也做的電影 瀏覽:232
地球電影名字 瀏覽:861
日本男男電影大尺推薦 瀏覽:326
最好用指標源碼 瀏覽:775
寬窄巷子離奎星樓街源碼 瀏覽:111