1. 程式人生 > >android usb otg模式轉換成host模式(不使用otg線連線,只用普通usb四線連線)

android usb otg模式轉換成host模式(不使用otg線連線,只用普通usb四線連線)

把usb otg轉換成host接U盤。

開始除錯時,以為只要把OTG的配置去掉,即CONFIG_USB_MS_OTG遮蔽掉即可,但編譯燒錄後,插入和撥出U盤時發現提示

android_work: did not send uevent (0 0 (null))

U盤的燈也不亮,說明沒有上電。

後來搜尋了有關資料,才發現需要把USB_CID腳拉低,拉低表示工作在HOST模式下。

有2種方式拉低該引腳:

1)硬體上把它強制拉低。

2)軟體上拉低,在kernel目錄下的drivers\usb\otg\ms_otg.c 中的ms_otg_init_irq函式,把如下程式碼遮蔽掉:

// OTG id pin pull-up
/* reg_t = readl(&msotg->op_regs->usbc_regs->port_ctrl);
reg_t |= IDPULLUP_CTRL;
writel(reg_t, &msotg->op_regs->usbc_regs->port_ctrl);*/

編譯燒錄後,開機插入U盤,有如下LOG,表示識別成功:



[ 1374.141871] hub_events


[ 1374.144655] hub_port_connect_change


[ 1374.303911] hub_port_init


[ 1374.306911] ==13==> hub_port_init 1
[ 1374.310873] Plug in USB Port1
[ 1374.503906] usb 3-1: new high speed USB device number 3 using Mstar-ehci-1
[ 1374.958064] usb-storage 3-1:1.0: Quirks match for vid 058f pid 6387: 20
[ 1374.965494] usb-storage 3-1:1.0: This device (058f,6387,010b S 06 P 50) has unneeded SubClass and Protocol entries in unusual_devs.h (kernel 3.4.5)
[ 1374.965505] Please send a copy of this message toand
[ 1374.992704] scsi1 : usb-storage 3-1:1.0
[ 1374.999392] hub_events


[ 1375.002158] hub_events


[ 1375.996046] scsi 1:0:0:0: Direct-Access Generic Flash Disk 8.07 PQ: 0 ANSI: 4
[ 1376.008295] sd 1:0:0:0: [sdb] 16293888 512-byte logical blocks: (8.34 GB/7.76 GiB)
[ 1376.017568] sd 1:0:0:0: [sdb] Write Protect is off
[ 1376.023685] sd 1:0:0:0: [sdb] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[ 1376.038784] sdb: sdb1
[ 1376.046711] sd 1:0:0:0: [sdb] Attached SCSI removable disk
[ 1376.054754] sd 1:0:0:0: Attached scsi generic sg0 type 0

識別成功後,在/dev/block/下會生成一個裝置節點,有可能叫sda1

需要手動把它mount到mnt目錄後才可訪問:

mount -t vfat /dev/block/sda1 /mnt/sdcard

然後就可以在root許可權下cd sdcard訪問該U盤內容

相關推薦

android usb otg模式轉換host模式使用otg連線只用普通usb連線

把usb otg轉換成host接U盤。 開始除錯時,以為只要把OTG的配置去掉,即CONFIG_USB_MS_OTG遮蔽掉即可,但編譯燒錄後,插入和撥出U盤時發現提示 android_work: did not send uevent (0 0 (null)) U盤的燈也不亮,說明沒有上電。 後來搜

Java多執行緒 - Future模式轉換ListenableFuture模式以及AsyncRestTemplate的原理

一、AsyncRestTemplate Demo: spring4.0提供了RestTemplate的非同步呼叫版本AsyncRestTemplate,用其進行非同步呼叫的demo如下: MultiValueMap headers = new LinkedMultiValueMa

如何將ER圖轉換關係模式

在ER圖中,主要是實體型別和聯絡型別。 1、實體型別的轉換 (“——”表示對應關係) 實體型別——關係模式 實體的屬性——關係模式的屬性 實體識別符號——關係模式的鍵 2、聯絡的轉換 一元聯

E-R圖轉換關係模式

我們目前所接觸的資料庫基本上是關係資料庫,關係資料庫中的關係模式是型,而關係是值。關係模式是對關係的描述。 什麼是關係?關係實質上是一張二維表,其中每一行是一個元組,每一列是一個屬性,每個元組是該關係涉及到屬性集合笛卡爾積的一個元素。(笛卡爾積是這樣的一個集合。集合中的元素

ogg由普通模式轉換整合捕捉模式實驗

客戶有一個數據庫需要將源端抽取由普通模式轉換成整合模式,詳細診斷轉換成整合模式的原因檢視:ogg-00723 ogg-00715 具體步驟: 開啟虛擬機器 GGSCI (og1) > info all Program Status Group

書上的練習題,把ini檔案模式轉換XML格式

#include <stdio.h> #include <string.h> #include <stdbool.h> #include <unistd.h> int main(int argc, char *argv[])

關於Android手機MTP模式連接的一些設置win7和ubuntu下以紅米1s為例

sta start .net eno bcm htm web date ati 有些手機的MTP模式在電腦上識別不了,須要一些設置才幹夠,以下就網上收集來的一些設置方法集中貼過來: 一、 win7下 參考:http://blog.ammrli.com/?p=11

如何把Android Studio項目轉換Eclipse的項目

ani bsp 問題 再看 文件夾 version targe ins app 1. 找到這個目錄:項目名稱\app\src\main,並把它導入到Eclipse裏 2. 把項目名稱\app\libs文件夾拷貝到新生成的項目下,並刪除掉.DS_Store文件 3. 這時

android開發中byte[]轉換String

想將byte[]轉換成String的話,用byte[].toString()是不行的,貌似是編碼的問題。用new String(byte[])就能正確轉換了。 就是說: String s="abc"; byte[] b=s.getByte(); String s1

android將pdf檔案轉換Bitmap並將bitmap以圖片的 方式儲存到相簿。

背景: 公司專案要求使用者可以在手機端檢視發票並將發票已圖片的形式儲存到相簿,以便列印,問題來了,因為發票是.pdf,android不支援直接檢視pdf,所以要下載下來然後在手機上看,當時的需求是要下載下來在App上檢視,經查詢,使用了第三方的外掛==》PDFView, PDFView基於G

django-將數據庫數據轉換JSON格式ORM和SQL兩種情況

user 展示 blog serialize 進行 項目開發 不管怎麽說 語句 spa 最近打算搞一個自動化運維平臺,所以在看Django的知識。 在實際項目開發中,遇到一個小問題:前後端發生數據交互主流采用的是JSON。前端傳數據到服務器端比較簡單,稍微麻煩的是服務器端傳

vue專案轉換pdf檔案簡單易懂

1,新增兩個模組html2canvas和jspdf     (1)npm install --save html2canvas(將頁面html轉換成圖片)     (2)npm install --save

資料結構實驗之棧與佇列二:一般算術表示式轉換字尾式SDUT 2132

題目連結 #include <bits/stdc++.h> using namespace std; typedef long long ll; int ok(char ch, char sh) { if(sh == '(')return 1; if((ch ==

C#LeetCode刷題之#709-轉換小寫字母To Lower Case

問題 實現函式 ToLowerCase(),該函式接收一個字串引數 str,並將該字串中的大寫字母轉換成小寫字母,之後返回新的字串。 輸入: "Hello" 輸出: "hello" 輸入: "here" 輸出: "here" 輸入:

Python 3 實現數字轉換Excel列名10進位制到26進位制的轉換函式

背景:   最近在看一些Python爬蟲的相關知識,講爬取的一些資料寫入到Excel表中,當時當列的數目不確定的情況下,如何通過遍歷的方式講爬取的資料寫入到Excel中。 開發環境: Python 3   openpyxl  解決方案:Excel列名其實就是一個26進位制的

typescript將簡單物件陣列轉換父子結構具有children屬性的物件

轉換效果 initDat=[ { title: '節點1', pkey: '-1', key: '2', }, { title: '節點2', pkey: '2', key: 'test1', }, { titl

習題7-8 字串轉換十進位制整數 15 point(s)

習題7-8 字串轉換成十進位制整數 (15 point(s)) 輸入一個以#結束的字串,本題要求濾去所有的非十六進位制字元(不分大小寫),組成一個新的表示十六進位制數字的字串,然後將其轉換為十進位制數後輸出。如果在第一個十六進位制字元之前存在字元“-”,則代表該數是負數。 輸入格式: 輸

F4V格式怎麼轉換MP4格式線上轉換教程

  f4v是為了迎接視訊高清時代而推出的流媒體格式,f4v格式相比較於flv格式具有更小更清晰的優點,目前f4v格式已經在各大視訊網站逐漸流行開來,許多視訊都是以該格式作為快取。令很多人都很頭疼的是,不知它是什麼格式的,如何轉換成我們常見的格式。這裡教大家一個方法,不用下載任何軟體線上就可以可以把f4v格

時間戳轉換 標準時間例:2018-10-30

function timestampToTime(timestamp) { var date = new Date(timestamp * 1000); //時間戳為10位需*1000,時間戳為13位的話不需乘1000

7-5 字串轉換十進位制整數 15 分 測試點 2 測試

7-5 字串轉換成十進位制整數 (15 分) 輸入一個以#結束的字串,本題要求濾去所有的非十六進位制字元(不分大小寫),組成一個新的表示十六進位制數字的字串,然後將其轉換為十進位制數後輸出。如果在第一個十六進位制字元之前存在字元“-”,則代表該數是負數。 輸入格式: 輸