02 June 2019

RTL8723BUをUbuntu 16.04で使う

WifiとBluetoothの双方の機能を併せ持ったUSBアダプタを、eBayで購入した。

20190602-comfast-cf-wu725b.jpg
COMFAST CF-WU725B

価格は4.95EUR (646円)と、この手のアダプタの中では高価な方だ。

Ubuntu 16.04で、USBポートに差し込むと次のように認識される

$ lsusb
 
Bus 001 Device 007: ID 0bda:b720 Realtek Semiconductor Corp. 

ドライバはOSカーネルに含まれていないため、ドライバの入手先をGoogle検索。

GitHubのlwfinger/rtl8723buに掲載されているドライバをインストールすれば使えるようなので、試してみる。

ソースコードの入手は、ドライバのwebページに書かれている通り、次のコマンドで行う

$ git clone https://github.com/lwfinger/rtl8723bu.git
$ cd rtl8723bu

ドライバは、デフォルトで「無線LAN子機モード」と「無線LANアクセスポイント モード」の2つが有効化されている。通常は「子機」として使うので、もう一方の「アクセスポイント」機能を無効化するには、Makefileの次の行をコメントアウトする。

Makefile
 〜 ここまで省略 〜
EXTRA_CFLAGS += -Wno-unused-function
EXTRA_CFLAGS += -Wno-unused
# EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE
 
ccflags-y += -D__CHECK_ENDIAN__
 〜 以下省略 〜

ソースコードのビルド作業と、ドライバのインストール

$ make
$ sudo make install
$ sudo modprobe -v 8723bu

dkmsに対応させる

カーネルのアップデート時に自動追従するよう、dkmsで管理されるようにする。

GitHubのlwfinger/rtl8723buに掲載されている通りに、登録すれば良い

まず、dkms.confに書かれている環境変数を読み込んでから

$ source dkms.conf

ソースコードを /usr/src/ にコピーしたのち、dkmsライブラリに登録するのを次のコマンドで行っている。 環境変数を展開して考えたほうが、見やすいかな…

$ mkdir /usr/src/$PACKAGE_NAME-$PACKAGE_VERSION
$ cp -r core hal include os_dep platform dkms.conf Makefile rtl8723b_fw.bin /usr/src/$PACKAGE_NAME-$PACKAGE_VERSION
$ dkms add $PACKAGE_NAME/$PACKAGE_VERSION
$ dkms autoinstall $PACKAGE_NAME/$PACKAGE_VERSION