Rasbian-Busterでもrtl8812auが稼働


 ラズパイZEROのupgrade操作でシステムのバージョンが上がってしまい、これまでつかってきたrtl8812auのドライバーが動かなくなった。
 色々試したが結局ダメでシステムのバージョンの古いものを再インストールして使う羽目となった。

 しかし、このままではバージョンが上げられないので出来れば最新のBusterで稼働するドライバが有ればと思っており、暇暇にネットを検索しているうちについに見つけることが出来たので以下に詳細を書いておく。

 参考にさせて頂いたホームページはhttps://yaplog.jp/shizuka2/archive/256 偶然出会った。
 使ったドライバー https://github.com/aircrack-ng/rtl8812au にあるrtl8812au-5.6.4.2.zipである。

 コンパイルの方法は今までやってきた方法と同じである。

$ sudo apt-get update
$ sudo apt-get install raspberrypi-kernel-headers

でインストール後
$ cd /usr/src
$ sudo ln -s linux-headers-4.19.75+ linux

でリンクを張る。rtl8812au-5.6.4.2.zipをunzipで展開後
$ cd rtl8812au-5.6.4.2

で移動後、Makefileをviで読み込み以下の修正

CONFIG_PLATFORM_I386_PC = n ## y -> n
CONFIG_PLATFORM_ARM_RPI = y ## n -> y

$ sudo make

でこれまでのコンパイルより二倍の40分程度を要した。

 作成されたドライバーは88XXau.koでこれまでのrtl8812au.koとは名前も異なっている。

$ sudo insmod 88XXau.ko で組み込みドングルを挿すと動作した。

pi@raspberrypi:~/rtl8812au-5.6.4.2 $ iwconfig
wlan0     IEEE 802.11  ESSID:"0024A511B049"
          Mode:Managed  Frequency:2.462 GHz  Access Point: 00:24:A5:11:B0:49
          Bit Rate=65 Mb/s   Tx-Power=31 dBm
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Power Management:on
          Link Quality=70/70  Signal level=-27 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

lo        no wireless extensions.

wlan1     IEEE 802.11bgn  ESSID:"0024A511B049"  Nickname:""
          Mode:Managed  Frequency:2.462 GHz  Access Point: 00:24:A5:11:B0:49
          Bit Rate:150 Mb/s   Sensitivity:0/0
          Retry:off   RTS thr:off   Fragment thr:off
          Power Management:off
          Link Quality=100/100  Signal level=88/100  Noise level=0/100
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

pi@raspberrypi:~/rtl8812au-5.6.4.2 $ ifconfig
lo: flags=73  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 18  bytes 1348 (1.3 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 18  bytes 1348 (1.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlan0: flags=4163  mtu 1500
        inet 192.168.0.67  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fe80::ccd3:e437:2433:5e0f  prefixlen 64  scopeid 0x20
        ether b8:27:eb:78:10:b7  txqueuelen 1000  (Ethernet)
        RX packets 424  bytes 56601 (55.2 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 327  bytes 49686 (48.5 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlan1: flags=4163  mtu 2312
        inet 192.168.0.68  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fe80::9135:621a:23d1:2d60  prefixlen 64  scopeid 0x20
        ether 00:0f:00:73:eb:96  txqueuelen 1000  (Ethernet)
        RX packets 16  bytes 6086 (5.9 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 38  bytes 7777 (7.5 KiB)
        TX errors 0  dropped 3 overruns 0  carrier 0  collisions 0
wlan1が今回組み込んだrtl8812auを使ったものである。

 このドライバーにはCONFIG_PLATFORM_ARM_RPにarm64の項目もあり、ラズパイ4や3B+等にも対応できそうである。rtl8812au-5.6.4.2.zipに出会ったのは幸運であった。これで当分安心してrtl8812auを使う事が出来そうである。