2024/04/19 更新
EDK2 にある FTDI 用のドライバが使えそうです。FTDI 製チップ搭載製品は、以下のような製品があります。
USBシリアル変換ケーブル|株式会社バッファロー BUFFALO
https://www.buffalo.jp/product/series/BSUSRC06
USB-LAN アダプタですが、USB 標準仕様の CDC-ECM や CDC-NCM か、ASIX 製のベンダ独自仕様のものが使えそうです。TCP/IP プロトコル・スタックは、lwIP を移植するか、自作する必要があります。CDC-ECM 対応製品は、以下のような製品があります。
USB-LAN100R|PLANEX
https://www.planex.co.jp/products/usb-lan100r/
USB-LAN1000R|PLANEX
https://www.planex.co.jp/products/usb-lan1000r/
CDC-NCM 対応製品は、以下のような製品があります。
USB-LAN2500R
https://www.planex.co.jp/products/usb-lan2500r/
以前に調べた時には、EDK2 に ASIX AX88772 と ASIX AX88772B のドライバがありました。ASIX 製チップ搭載製品は、以下のような製品があります。
ETX3-US2 | LANアダプター | IODATA アイ・オー・データ機器
https://www.iodata.jp/product/lan/lanadapter/etx3-us2/
LAN-TXU2C - ロジテック株式会社
https://www.logitec.co.jp/products/lan/lantxu2c/
USB-LAN アダプタが動作し、LAN が使えるようになったら、Apple の AirPrint に対応することで、プリンタから印刷出来るようになります。Wi-Fi 経由の印刷のイメージが強いですが、少なくともブラザー製のプリンタは有線 LAN 経由でも印刷が可能です。以下のような製品があります。
HL-L2360DN | レーザープリンター・複合機 | ブラザー
https://www.brother.co.jp/product/printer/laserprinter/hll2360dn/index.aspx
MFC-J960DWN-B/W | インクジェットプリンター・複合機 | ブラザー
https://www.brother.co.jp/product/printer/inkjet/mfcj960dn/index.aspx
AirPrint の仕様は、おそらく以下の文書だと思われます。
Bonjour Printing Specification Version 1.2.1
https://developer.apple.com/bonjour/printing-specification/bonjourprinting-1.2.1.pdf
USB-LAN アダプタが動作し、LAN が使えるようになったら、Raspberry Pi などを利用して、Wi-Fi と有線 LAN のブリッジを構築することで、Wi-Fi が使えるようになります。
Raspberry Pi3を無線LANコンバータにする -blog SkyofFantasy- https://web.archive.org/web/20170810023657/http://rufas.manyoldmoon.com/blog/20160909080644.html
Raspberry Piでイーサネットコンバータを作る
https://web.archive.org/web/20221130063948/http://www.soramimi.jp/raspberrypi/etherconv/
Raspberry Piで無線LAN
https://web.archive.org/web/20220624221044/http://www.soramimi.jp/raspberrypi/wifi/index.html
2017 年 9 月現在に流通している技適取得済み Wi-Fi 対応 USB ドングルは独自仕様で仕様非公開の製品ばかりで、この分野に精通している人なら、プロトコルを解析してドライバを作ってしまうことも可能なのかもしれませんが、本稿では上述の Raspberry Pi を利用した簡易な方法を提示しています。
iPhone 6 Plus(モデルA1524)の場合を例に説明します。
iPhone 6 Plus - 技術仕様 - Apple サポート (日本)
https://support.apple.com/ja-jp/111940
- Bluetooth SIG の Web サイトの「製品を探す」をクリックします。
Bluetooth®テクノロジーウェブサイト
https://www.bluetooth.com/ja-jp/
- Listings Search 画面に遷移するので Advanced Search をクリックして以下のように入力し、Search ボタンを押下します。
Launch Studio - Listing Search
https://launchstudio.bluetooth.com/Listings/Search
- Company 欄に、Apple Inc. を入力します。
- Search By Project Type 欄の、Qualifications With Required Testing をチェックします。
- Search By Project Type 欄の、Qualifications With No Required Testing をチェックします。
- Search By Project Type 欄の、End Product Listings (EPLs < 2/1/2014)をチェックします。
- Search By Project Type 欄の、Qualified Product Listings (PRD 1.0)をチェックします。
-
検索ボックスに A1524 を入力して検索ボタンを押下します。
-
検索結果の A1524 が表示された行の D021076 をクリックします。
-
以下の画面に遷移するので、各 Supported Layers をクリックすると、プロファイルの一覧が表示されます。
Launch Studio - Listing Details
https://launchstudio.bluetooth.com/ListingDetails/857
Bluetooth 対応 USB ドングルや(USB 接続の)PC 内蔵 I/F で HCI を利用することで使えそうです。Bluetooth Classic のプロトコル・スタックを移植するか、自作する必要があります。
- HIDP(Human Interface Device Profile)
HIDP ‐ 通信用語の基礎知識
https://www.wdic.org/w/WDIC/HIDP
マウスなどに対応する場合に実装が必要です。
- A2DP(Advanced Audio Distribution Profile)
A2DP ‐ 通信用語の基礎知識
https://www.wdic.org/w/WDIC/A2DP
ヘッドフォンやスピーカーなどに対応する場合に実装が必要です。
- PAN(Personal Area Networking Profile)
PAN (Bluetooth) ‐ 通信用語の基礎知識
https://www.wdic.org/w/WDIC/PAN%20%28Bluetooth%29
BNEP ‐ 通信用語の基礎知識
https://www.wdic.org/w/WDIC/BNEP
L2CAP ‐ 通信用語の基礎知識
https://www.wdic.org/w/WDIC/L2CAP
PAN は速度は遅いものの、Bluetooth テザリングに対応する場合に実装が必要です。L2CAP 上の BNEP で実装します。IPv4 や IPv6 をカプセル化し、Bluetooth 上で伝送します。
Bluetooth Low Energy のプロトコル・スタックを移植するか、自作する必要があります。
- HOGP(HID over GATT Profile)
HOGP ‐ 通信用語の基礎知識
https://www.wdic.org/w/WDIC/HOGP
マウスなどに対応する場合に実装が必要です。
- Battery Service
Bluetooth Low Energy デバイスのバッテリー残量確認に対応する場合に実装が必要です。
- 6LoWPAN
IPv6 しか使えないので、IoT ではない通常の利用シーンでは実用的ではないので、本稿では対象外とします。
IPv6 over Bluetooth のはなし|Wireless・のおと|サイレックス・テクノロジー株式会社 https://web.archive.org/web/20230605161752/http://www.silex.jp/blog/wireless/2016/08/ipv6-over-bluetooth.html
iPhone の USB テザリングですが、専用のドライバが Linux にあるということは、おそらくベンダ独自仕様のプロトコルだと思われます。iPhone を有線 LAN で PC と繋いで、iPhone 上の Proxy アプリで中継出来れば、代替手段として機能しそうですが、使えそうなアプリの評価は未作業です。
Diego Giagio :: Personal Website - iPhoneEthernetDriver
https://web.archive.org/web/20120202011551/http://giagio.com/wiki/moin.cgi/iPhoneEthernetDriver
iPhone/iPadを有線LAN(Ethernet)で接続しよう | 毛流麦花
https://www.marbacka.net/blog/iphone_ipad_ethernet_connection/
FreeBSD にも専用のドライバが用意されているので、Linux のドライバが使えない場合に採用を検討してみるのも良さそうです。
Android の USB テザリングのプロトコルは RNDIS(Remote NDIS)です。仕様は、以下でダウンロード可能な文書に含まれていると思われます。
[MS-WINPROTLP]: Archive Documents | Microsoft Learn
https://learn.microsoft.com/en-us/openspecs/windows_protocols/MS-WINPROTLP/df36f95e-6a6b-48d6-a3ae-35a17674f546
LTE 対応 USB ドングルでも、RNDIS に対応している製品があるようです。
LTE対応USBドングル PIX-MT100 | 株式会社ピクセラ
https://www.pixela.co.jp/products/network/pix_mt100/
PIX-MT100を接続するとWindowsの反応が悪くなる - ぷろじぇくと、みすじら。 - Misuzilla.org
https://www.misuzilla.org/Blog/2016/11/19/PixMt100CausesSlowdown
モデルチェンジで、CDC-ECM に対応するようになったようです。
LTE対応 USBドングル(PIX-MT110) | 株式会社ピクセラ
https://www.pixela.co.jp/products/network/pix_mt110/
WiMAX 2+ 対応 USB ドングルの場合、RNDIS・CDC-ECM・CDC-EEM に対応している場合があるようです。ルータの場合でも、USB 接続出来る製品があるようです。
URoad-Stick |UQWiMAX|超高速モバイルインターネットWiMAX2+
https://www.uqwimax.jp/wimax/products/uroad-stick/
URoad-Stick Linux環境にてご利⽤される⽅へ参考情報 Rev.1.0
https://wimax.shinseicorp.com/wimax2plus/info/stick_linux_info_v1.0.pdf
Huawei WiMAX 2+モデムをLinuxで使う
https://blog.kawauso.com/?p=748