Debian 10 Buster用WiFiドライバー(rt2800usb)をビルド | 見よう見まねのブログ

見よう見まねのブログ

CameraやPCなど、見よう見まねの悪戦苦闘

連日、更新が激しいDebian 10 Busterα版ですが、近々、β版→RC版→正式リリース版、になるのでしょう。

リリース・クリティカル・バグも少しずつ減っています。

Release-critical bugs status

https://bugs.debian.org/release-critical/

 

折角、新しいBusterを入れたので、無線LAN(WiFi)のサポート状況を調べて見ました。

例えば、非常に多く使われている、rt2800usb(Ralink製USB WiFi端末)の場合、以下のコマンドでIDが確認できます。

$ sudo modinfo rt2800usb
調査結果、サポートされているIDは、D8(Jessie)、D9(Stretch)、D10(Buster)も同じでした。

 

無線LANのドライバーは過去何度もビルドしています。Debian Stretchでも、RC版の段階でビルドしていました。

Stretch用無線LANドライバーをビルド

https://ameblo.jp/miyou55mane/day-20170124.html

 

カーネルソースからIDを確認する方法もあり、以下からダウンロードできます。rt2800usbを含め、D8〜D10いずれもほぼ同じIDでした。

【1】Debian Buster用

パッケージ: linux-source-4.19 (4.19.16-1) linux-source-4.19_4.19.16-1_all.deb

https://packages.debian.org/buster/linux-source-4.19

 

【2】kernel.orgのソース

https://www.kernel.org/

longterm:    4.19.24    2019-02-20 linux-4.19.23.tar.xz

 

ダウンロードしたファイルを、必要な部分のみを展開します。

rt2800usbの場合は、/rt2x00/ 以下です。Debian(上)より、kernel.org(下)の方が階層が浅いので簡単です。

/data.tar.gz/usr/src/linux-source.tar.xz/linux-source-4.19/drivers/net/wireless/ralink/rt2x00/

/linux-4.19.23/drivers/net/wireless/ralink/rt2x00/

 

次に、開発環境を入れます。

$ sudo apt-get install build-essential linux-headers-$(uname -r)
 
Synapticから無線関係ファームウェアも入れて置きます。

firmware-ralink

(Ralink以外は必要に応じ)

 

ソース(rt2800usb.c)の 930行あたりに、以下のID(赤字部)を追記します。

/*
 * rt2800usb module information.
 */
static const struct usb_device_id rt2800usb_device_table[] = {

    /* Buffalo */
    { USB_DEVICE(0x0411, 0x012e) },/*+WLI-UC-AG300N */
    { USB_DEVICE(0x0411, 0x0148) },/*+WLI-UC-G300HP */
    { USB_DEVICE(0x0411, 0x0150) },/*+WLP-US-AG300  */
    { USB_DEVICE(0x0411, 0x0151) },/*+WLI-UC-GNHP   */
    { USB_DEVICE(0x0411, 0x015f) },/*+WLI-UC-GNT    */
    { USB_DEVICE(0x0411, 0x0192) },/*+NTT FT-STU-BGN*/
    { USB_DEVICE(0x0411, 0x019e) },/*+WLI-UC-GNP    */
    /* I-O DATA */
    { USB_DEVICE(0x04bb, 0x094b) },/*+WN-AG300U    */
    /* Logitec */
    { USB_DEVICE(0x0789, 0x0168) },/*+LAN-W150N/U2 */
    { USB_DEVICE(0x0789, 0x0169) },/*+LAN-W300N/U2/U2S */
    /* Corega */
    { USB_DEVICE(0x07aa, 0x0041) },/*+CG-WLUSB300GNS */
    { USB_DEVICE(0x07aa, 0x0042) },/*+CG-WLUSB300GNM */
    { USB_DEVICE(0x18c5, 0x0008) },/*+CG-WLUSB2GNR   */
    /* Planex */
    { USB_DEVICE(0x2019, 0xab24) },/*+GW-US300MiniS */
    { USB_DEVICE(0x2019, 0xAB29) },/*+GW-USMicro300 */
    { USB_DEVICE(0x2019, 0xed10) },/*+GW-US300Mini2 */
    { USB_DEVICE(0x2019, 0xed14) },/*+GW-USMicroN  */

 

上記、/rt2x00/を展開したフォルダーから、

$ make -C /lib/modules/$(uname -r)/build M=$(pwd)

ビルドしたドライバーを以下に、ルート権限でファイラーを使って上書きコピーします。(端末からコマンドライン入力は間違い易いので)

$ sudo pcmanfm


/lib/modules/(カーネル番号)/kernel/drivers/net/wireless/ralink/rt2x00/rt2800usb.ko

$ sudo depmod -a
でドライバーを認識させます。

 

USB無線端末を挿入し、IDが無事登録されたか?確認します。

$ sudo modinfo rt2800usb

$ sudo iwconfig
で有効になっていることを確認し、その結果を

wicdの一般設定欄、「無線インターフェース」に記入し、

WiFiの「パスフレーズ=事前共有鍵(PSK)」を入力すると、接続できます。

常用するPCは安定性の高い有線LANを利用していますが、ノートPCはLANケーブルを引き回さなくとも使える無線LANが便利です。

Debianの場合、Ubuntuと違ってカーネル番号の変更は年数回程度なので、ドライバーの再ビルドも少なくて済みます。

因みに、Stretchのカーネル番号更新は、2年弱で5回です。

2017-06-17 4.9.0-3 (リリース時)

2019-02-16 4.9.0-8 (最新版)

 

入れ知恵で繋ぐ無線の有り難さ