格安マイクロUSB-LAN変換アダプタ 完結編
こちらの記事の続きです。 Pi Zeroに使えるかもしれない、300円以下の超格安USB-LAN変換アダプタ調査の完結編です。
情報をあつめたり、助言をもとにdm9601ドライバを使って動作させることに成功しました。
とりあえず、分解したときの写真です。
驚いたことに。。。
一切、刻印がありません。 あとから削ったというより、最初からマーキングをしていない様子です。
基板を取り出して裏面をみるとLEDがついていました。 これがケースから透けて見えていたアクセスインジケーターです。
私の記憶ではEthernetの信号はトランスを介して絶縁することが必須だったと思うのですが、この基板にはトランスが載っていません。 この基板のRJ-45端子もトランス内蔵タイプではなくそのままリード線が基板まで繋がっています。 もちろんICの中に信号トランスが入っているようにも思えません。 これ、いいのでしょうかね?
さてさて、このUSB-LANアダプタは、Raspbian では、そのままの状態では認識しません。
Windows PCに挿すと下記のようなドライバが自動でインストールされました。
ご存知の方も多いと思いますが、USBにはVendor IDとProduct IDというものがあり、デバイスの認識に使っています。 VID、PIDはOSに依存しません。 ここで読めたVIDとPIDは、
0x0FE6、0x9700 です。
Windowsドライバは Corechip semiconductor社と書かれています。
USBのVIDをこちらで調べると「ICS Advent」という会社が登録していることになっています。
Linuxソースから追うと
https://github.com/raspberrypi/linux/blob/linux_stable/drivers/net/usb/sr9700.c には、
/* CoreChip-sz SR9700 one chip USB 1.1 Ethernet Devices
と冒頭に書かれているのと、CoreChip社の製品の中にSR9700がラインナップされています。
どうやらCoreChip社が本当のようです。
しかしながら、RaspbianではSR9700ドライバに不具合があり、動作しません。
そこで、
sudo nano /etc/modprobe.d/raspi-blacklist.conf
に下記を追記して、sr9700ドライバを殺します。
blacklist sr9700
そうすると、次回起動したとき、同じVID、PIDで使えるdm9601ドライバが呼ばれます。 (ぽちけんさん、情報ありがとうございます)
ソースはこちら。
https://github.com/raspberrypi/linux/commits/linux_stable/drivers/net/usb/dm9601.c
履歴をみるとこんな感じ。
とっても似ていて、dm9601ドライバで動くから0x0FE6、0x9700 を追加したよってことらしい(笑
事実、dm9601ドライバには、コレガ(VID=0x07aa)のLANアダプタやDavicom(VID=0x0a46)、Hirose(VID=0x0a47)などが登録されています。
どれがオリジナルで、どれがコンパチ製品なのか、もしくはクローンなのか、全くもって不明ですが、PIDの0x9700、0x9601 などをそのまま商品名の一部に使っている様子も覗えてちょっと面白いですね。
なんだか収拾がつかなくなってきましたが、下記の格安USB-LAN変換アダプタを買ってしまって、動かないというひとは、Pi2、Pi3などで、起動して
/etc/modprobe.d/raspi-blacklist.conf に blacklist sr9700 を加えることで認識するというのが結論です。
ただし、コネクタの接触によって認識したり、しなかたりと安定しません。
大量のデータ転送を送ると、不具合を起こすとの報告もあり、おすすめできません。
また、絶縁されてないEthernet信号なので、若干気をつけたほうがよいかもしれません。 (ダイレクトにこの手のUSB-LAN変換のEthernet同士を繋げない方がいい)
結論 下記の2点なら大丈夫
もし買うならコレ。
にほんブログ村
ブログランキングに参加中です。 めざせ1位!
もしよろしければ「ぽちっと」お願いします。
« 格安マイクロUSB-LAN変換アダプタ 人柱編 | トップページ | エルナーのブロックコンデンサを入手 電圧印加処理とは? »
「Raspberry Pi」カテゴリの記事
- MotionEyeと余っているラズパイで監視カメラ(2024.11.21)
- 秋の夜長にはRaspberryPi5 RT-linux セルフビルド(2024.10.13)
- 秋の夜長にはRaspberryPi5 64bit版 Sabreberry32 ドライバコンパイル(2024.10.10)
- RaspberryPi 5 の公式OSは32bit版でも64bit?(2024.10.09)
- 秋の夜長にはRaspberry Pi5 64bit カーネル・セフル・ビルド (2024.10.07)
コメント
« 格安マイクロUSB-LAN変換アダプタ 人柱編 | トップページ | エルナーのブロックコンデンサを入手 電圧印加処理とは? »
カオスですね。
お疲れさまでした。
投稿: yosyos | 2017年4月 5日 (水) 00時02分
yosyos さん
おっしゃる通り、ぐちゃぐちゃになってますね。
調べているなかで、dm9601とSR9700はバッファーサイズが異なるのでSR9700のドライバを使わないと不具合が出るなんて書いてあるサイトもありました。
現状、私が使った限りではdm9601ドライバで問題なく通信できています。
投稿: たかじん | 2017年4月 6日 (木) 20時43分
私は現在進行系で戦ってますが、駄目です。
症状は「軽い通信では問題無いが、大きなファイルを転送した時にかなりの確立でアダプタが高速点滅し、切断状態となる」ものです。
スピードテストなんかすると切断されます。2つ買いましたが両方同じ状況。
試したこと:
dm9601のブラックリスト->ダメ(認識されなくなる)
rpi-updateで最新に->ダメ(変わらず)
https://github.com/kmtaylor/rpi_patchesの内容をパッチしてカーネルをビルド->ダメ(変わらず)
sr9700のブラックリスト->ダメ(変わらず)
現在の環境は
Raspbian GNU/Linux 8
Linux version 4.9.20+ (dc4@dc4-XPS13-9333)
です。2017/03のRaspbianJessieLiteを使用しています。
そちらではどんな環境で正常動作していますか?
投稿: zzz | 2017年4月 8日 (土) 01時19分
syslog抜粋です
[ 62.096643] dwc_otg: DEVICE:003 : update_urb_state_xfer_comp:742:trimming xfer length
[ 72.183339] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 0, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06200021
[ 72.183459] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 3, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06200001
[ 72.183530] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 5, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06200021
[ 72.283198] usb usb1-port1: disabled by hub (EMI?), re-enabling...
[ 72.283255] usb 1-1: USB disconnect, device number 3
投稿: zzz | 2017年4月 8日 (土) 01時34分
zzz さん
なるほど。 私も調べていた中で、そのようなことを書いてあるサイトを見ました。(再度、検索してもみつからない)
apt-get updateで止まってしまうと書いてあったと思います。
私が試したところ、apt-get updateでは問題がなかったのですが、それ以上大きなファイルの転送などでエラーが起きる可能性はありますね。 また、回線速度にも依存するかもしれません。 回線が遅いとバッファが一杯にならずに済むからです。
試した環境は、Moode Audio R31と 2017-3-2のRaspbianJessieLiteです。
SR9700チップをdm9601ドライバで動かすのは、完全ではないのかもしれませんね。
投稿: たかじん | 2017年4月 8日 (土) 10時16分