634 文字
3 分
Ubuntu 19.04でrtl88x2buをインストール
概要
- 最近買ったPC LinuxサーバにWiFi子機をインストールします。
- 本来は有線でつないでおきたいのですが、筐体が大きくて邪魔なので無線にして部屋の奥底へ設置しようと思います。

事前準備
下調べ。
matsu@dell ~> cat /etc/issueUbuntu 19.04 \n \l
matsu@dell ~> uname -aLinux dell 5.0.0-37-generic #40-Ubuntu SMP Thu Nov 14 00:14:01 UTC 2019 x86_64 x86_64 x86_64 GNU/Linuxこの製品、Realtekのチップが乗っています。CD-ROMがついてくるので、その中にもドライバはありますが、最新のものを使いたいのでgitから落としてくることにします。
とりあえず、ドライバをコンパイルするためにコンパイラを入れておきます。
sudo apt-get install build-essential gitそしてコンパイル
git clone https://github.com/its-izhar/rtl88x2bu-drivercd rtl88x2bu-drivermake cleanmake -j8しかし、2箇所でエラーがでます。LinuxのKernelが5にあがってAPIが変わった様子。以下を修正すれば通ります。
diff --git a/os_dep/linux/ioctl_cfg80211.c b/os_dep/linux/ioctl_cfg80211.cindex e7e8930..a2c2e6a 100644--- a/os_dep/linux/ioctl_cfg80211.c+++ b/os_dep/linux/ioctl_cfg80211.c@@ -687,8 +687,9 @@ static int rtw_cfg80211_sync_iftype(_adapter *adapter) static u64 rtw_get_systime_us(void) { #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 39))- struct timespec ts;- get_monotonic_boottime(&ts);+ struct timespec64 ts;+ ktime_get_boottime_ts64(&ts);+ return ((u64)ts.tv_sec * 1000000) + ts.tv_nsec / 1000; #else struct timeval tv;diff --git a/os_dep/linux/rtw_android.c b/os_dep/linux/rtw_android.cindex b8b4377..2e4bb31 100644--- a/os_dep/linux/rtw_android.c+++ b/os_dep/linux/rtw_android.c@@ -657,7 +657,7 @@ int rtw_android_priv_cmd(struct net_device *net, struct ifreq *ifr, int cmd) goto exit; }
- if (!access_ok(VERIFY_READ, priv_cmd.buf, priv_cmd.total_len)) {+ if (!access_ok(priv_cmd.buf, priv_cmd.total_len)) { RTW_INFO("%s: failed to access memory\\n", __FUNCTION__); ret = -EFAULT; goto exit;成功したら、モジュールのインストール。(裏では、installコマンドと modprobeを行っている)
sudo make installそうすると、認識されます。
wlx0013eff32167: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 ether 00:13:ef:f3:21:67 txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0WiFiのアクセスポイントが見えるかを確認してみます。

そしたら、以下のコマンドで設定。
% nmcli device wifi connect 'your ssid' password 'your wifi password' ifname wlx0013eff32167% ifconfigwlx0013eff32167: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.122 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 240b:10:2120:f400:314b:995:833f:abcd prefixlen 64 scopeid 0x0<global> inet6 240b:10:2120:f400:f93f:c66f:26ff:efgh prefixlen 64 scopeid 0x0<global> inet6 fe80::39cd:14fe:54e1:2d72 prefixlen 64 scopeid 0x20<link> ether 00:13:ef:f3:21:67 txqueuelen 1000 (Ethernet) RX packets 1978 bytes 559674 (559.6 KB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 56 bytes 8113 (8.1 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0有線LANを抜いて疎通確認すればOK。
WiFiで固定IPを振る場合
このページを参考にした。WiFiの設定はNetworkManagerが管理しているようなので、そっちで行う。
最後に再起動をして、ちゃんとネットワークがつながるかを確認しておく。
Ubuntu 19.10の場合
こちらのレポジトリのドライバを使う。
Ubuntu 19.04でrtl88x2buをインストール
https://blog.teraren.com/posts/ubuntu-19-04-rtl88x2bu/