Ubuntu 19.04でrtl88x2buをインストール

Linux

概要

  • 最近買ったPC LinuxサーバにWiFi子機をインストールします。
  • 本来は有線でつないでおきたいのですが、筐体が大きくて邪魔なので無線にして部屋の奥底へ設置しようと思います。
USB3.0 WiFi 無線LAN 子機 1200Mbps 高速度 デュアルバンド 2.4G/5G 802.11ac技術 Windows10/8/7/XP/Vista/Mac 対応 (M-1200Y)
USB3.0 WiFi 無線LAN 子機 1200Mbps 高速度 デュアルバンド 2.4G/5G 802.11ac技術 Windows10/8/7/XP/Vista/Mac 対応 (M-1200Y)

事前準備

下調べ。

matsu@dell ~> cat /etc/issue
Ubuntu 19.04 \n \l

matsu@dell ~> uname -a
Linux 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-driver
cd rtl88x2bu-driver
make clean
make -j8

しかし、2箇所でエラーがでます。LinuxのKernelが5にあがってAPIが変わった様子。以下を修正すれば通ります。

diff --git a/os_dep/linux/ioctl_cfg80211.c b/os_dep/linux/ioctl_cfg80211.c
index 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.c
index 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 0

WiFiのアクセスポイントが見えるかを確認してみます。

そしたら、以下のコマンドで設定。

% nmcli device wifi connect 'your ssid' password 'your wifi password' ifname wlx0013eff32167
% ifconfig
wlx0013eff32167: 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の場合

こちらのレポジトリのドライバを使う。

GitHub - RinCat/RTL88x2BU-Linux-Driver: Realtek RTL88x2BU WiFi USB Driver for Linux
Realtek RTL88x2BU WiFi USB Driver for Linux. Contribute to RinCat/RTL88x2BU-Linux-Driver development by creating an acco...

Comments

タイトルとURLをコピーしました