tag:blogger.com,1999:blog-4389461234607418203.post1133888513901177364..comments2024-03-05T23:19:22.774+08:00Comments on Fred's blog: 淺談 USB 通訊架構之定義(一)Fred Chienhttp://www.blogger.com/profile/16383759688690536670noreply@blogger.comBlogger8125tag:blogger.com,1999:blog-4389461234607418203.post-4585951687522591852013-07-30T23:59:49.591+08:002013-07-30T23:59:49.591+08:00存储装置应该是/dev/sr*,是以模拟CD-ROM存在的。
/dev/ttyUSB0是3G Mo...存储装置应该是/dev/sr*,是以模拟CD-ROM存在的。<br /><br />/dev/ttyUSB0是3G Modem;<br />/dev/ttyUSB1用作语音通话;<br />/dev/ttyUSB3用作发送AT指令。<br /><br />至少华为的设备一般都是这样的。南浦月https://www.blogger.com/profile/01384325818414820018noreply@blogger.comtag:blogger.com,1999:blog-4389461234607418203.post-17405272879593479972012-06-28T23:15:40.586+08:002012-06-28T23:15:40.586+08:00我以前玩過
硬體功能有被切換掉喔
一開始storage時 我輸入cat proc/bus/usb/d...我以前玩過<br />硬體功能有被切換掉喔<br />一開始storage時 我輸入cat proc/bus/usb/devices<br />可以看到這張卡有多少個(我猜是interface) 並且被哪些驅動給驅動起來<br /><br />而我改了VID與PID後,再下一次cat proc/bus/usb/devices<br />發現interface變了(通常變多了),而且他們全部都沒遇到驅動來綁定<br /><br />而我也曾經試著不轉他PID與VID<br />而是去KERNEL改驅動內容,把USB Storage的ID TABLE裡,把我要用的卡的VID與PID拿掉<br />並且填去USB Serial的驅動裡,我印象中是不成功 失敗了<br /><br />如果是這樣沒錯,那應該可以推論,換VID與PID是連硬體功能都換掉囉<br />而更確切的說,應該是因為硬體功能換掉了,所以VID跟PID才能夠改變<br />不過第2個的實驗 我有點忘了 因為那是我好久以前 轉不了ID<br />心灰意冷,試著直接暴力餵ID給SERIAL的樣子 但搞不好有做錯還是怎樣<br /><br />謝謝Weinoreply@blogger.comtag:blogger.com,1999:blog-4389461234607418203.post-82528938709010115332012-06-25T14:06:27.693+08:002012-06-25T14:06:27.693+08:00Cool! 這樣我有印象了,因為之前想要寫 Network Manager 時有研究過怎麼切換,只是...Cool! 這樣我有印象了,因為之前想要寫 Network Manager 時有研究過怎麼切換,只是沒想到 VID 和 PID 也會跟著換。<br /><br />但我記得,我在以前研究的過程中有發現,我所碰過的 3G Modem,雖然乍看下都要切換,但其實不需要切換就可以用了。<br />(那時我直接把 usb-storage driver 拿掉,直接上 usb-serial 就會動了)<br /><br />所以我在猜也許只是換 PID/VID?硬體功能其實沒有因此被切換?(到底有哪個 Modem 真的會因為切換而功能不同,我就不知道了。)Fred Chienhttps://www.blogger.com/profile/16383759688690536670noreply@blogger.comtag:blogger.com,1999:blog-4389461234607418203.post-80755438252649222592012-06-25T11:49:43.485+08:002012-06-25T11:49:43.485+08:00這種功能叫做 ZeroCD[1], 他們需要特別的 USB Command 才能切換不同的功能 (同...這種功能叫做 ZeroCD[1], 他們需要特別的 USB Command 才能切換不同的功能 (同時硬體也會跟著切換 VID,PID)<br /><br />[1] http://en.wikipedia.org/wiki/Virtual_CD-ROM_switching_utilityRex Tsaihttps://www.blogger.com/profile/03765070300237042390noreply@blogger.comtag:blogger.com,1999:blog-4389461234607418203.post-39121895483447707822012-06-25T08:04:57.681+08:002012-06-25T08:04:57.681+08:00讓我先確認一下,您指的 PID 和 VID 應該是指 Product ID 和 Vendor ID ...讓我先確認一下,您指的 PID 和 VID 應該是指 Product ID 和 Vendor ID 吧?<br /><br />其實本文內就有提到,一般 USB 3G Modem 是採用三個 interface 去描述 Serial、Serial for updating、Storage。這意思是,其實三個 interface 是同時存在的,使用上無需切換,所以並沒有所謂的『預設』是哪一個模式。至少我目前用過的 USB 3G Modem 都是一樣的設計。<br /><br />而系統之所以會識別錯誤,純粹是因為沒有驅動程式告訴系統如何去使用 Mass Storage 以外的 interface,所以系統只懂得使用 Mass Storage Driver 去看待你的 Device。<br /><br />至於你說為什麼改 Product ID 和 Vendor ID 系統就可以驅動?我在猜測,因為系統有『可用』的 Driver,但是 Driver 裡所記載的 Product ID 和 Vendor ID 不夠齊全,導致 Driver 不認得你的 Device,當然就不會正確驅動。你可以去可用的 Driver 裡,加入一組新的 Product ID/Vendor ID ,就知道結果了。<br /><br />至於在 Linux 上,因為 3G Modem 驅動全都是標準 Serial,其實根本不需要額外的驅動程式,你只要告訴 Linux Kernel 去使用 usb-serial driver 就可以。這也是為什麼只需要去改動 udev 的設定,就可以正常驅動 USB 3G Modem 的原因。<br /><br />因此 Linux 上,你看到的主流做法,就只是不停的去更新 Product ID/Vendor ID,因為它們根本是同一支 Driver。如果你插上 USB 3G Modem 發現他可以直接抓到 Serial interface,就是該 Device 的 Product ID/Vendor ID 有被記錄。<br /><br />BTW, 我不太清楚怎麼去改動 Product ID/Vendor ID,這點我倒是很好奇你們怎麼改的?Fred Chienhttps://www.blogger.com/profile/16383759688690536670noreply@blogger.comtag:blogger.com,1999:blog-4389461234607418203.post-73142582179744894982012-06-24T15:35:28.729+08:002012-06-24T15:35:28.729+08:00大大您好
這裡我有疑問想請教有關3G USB卡的問題
因為我稍微有接觸過3G USB卡
我們都知道,...大大您好<br />這裡我有疑問想請教有關3G USB卡的問題<br />因為我稍微有接觸過3G USB卡<br />我們都知道,目前不少3G USB卡都是預設為儲存裝置的型態,而裡面裝有驅動程式(主要是給WINDOWS用的)<br />而此張卡如果插上LINUX上,一樣大多也會抓到儲存裝置而非modem裝置<br />如果我們想改成modem就要使用一些技巧改變此張USB卡的PID或VID(也就是叫USB卡換另一種型態了)<br />而PID與VID是Device Descriptors裡的東西,似乎不是Configuration Descriptors、Interface Descriptors的資訊<br />所以這樣看來,從儲存裝置模式跳為modem模式,應該不是驅動其它Interface,而是改為另一種Device了?<br />(當然 不同的Device底下又有Configuration、Interface等等)<br /><br />我純粹只是從PID與VID的變化而推測的,不知道大大覺得這樣的揣測是不是對的?<br />不過我印象中我也遇過一些3G USB卡的PID與VID都不必轉換就可以共存兩個狀態(儲存裝置與modem裝置)<br />那應該就是大大提的那種情況了?<br />那如果PID與VID必須轉換,應該就不是大大提的那種類型囉?<br />那我的推測是對的嗎? 謝謝weihttp://www.wretch.cc/album/liwmewmewnoreply@blogger.comtag:blogger.com,1999:blog-4389461234607418203.post-85377024203721333462009-08-13T03:20:09.873+08:002009-08-13T03:20:09.873+08:00抱歉,之前未真正仔細去查證 3G Modem 的設計,經查證後發現 Huawei E220 其實只有...抱歉,之前未真正仔細去查證 3G Modem 的設計,經查證後發現 Huawei E220 其實只有一個 Configuration descriptor,且是使用 3 個 Interface,其中一個是 Mass Storage Class。<br /><br />至於它的 Firmwire Upgrade 的功能, 因為小弟手邊沒有完整 Hardware Spec,目前還無法得知是如何使用,只能猜測是由其中一個 Interface 或是單純直接硬幹 Control Transfer 做 Upgrade 也說不定。<br /><br />關於這部份的舉例說明,在文中已做修正。<br /><br />此外,雖然 3G Modem 是如此設計,但還是不可否認有些硬體是由切換 configuration 去切換 Firmware Mode或選擇不同的運作模式,事實上,USB 會有這樣的定義,本來就是為此而生。因此 Configration Descriptor 部份說明,就沒做修改,維持舊文。<br /><br />多謝指點,下次會更仔細查證引用資訊,以免文內錯誤再次發生。:-)Fred Chienhttps://www.blogger.com/profile/16383759688690536670noreply@blogger.comtag:blogger.com,1999:blog-4389461234607418203.post-62790360556854774002009-08-13T01:12:45.897+08:002009-08-13T01:12:45.897+08:00你拿出 3G modem 當範例,但其實 3G modem 的 pseudo cdrom 功能跟 U...你拿出 3G modem 當範例,但其實 3G modem 的 pseudo cdrom 功能跟 USB Configuration descriptor 沒有直接關係。<br /><br />你恐怕誤解了 Configuration descriptor 所能描述的資料及其功能。Rex Tsaihttps://www.blogger.com/profile/03765070300237042390noreply@blogger.com