0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Unitree・Go2にUSB Wi-Fiアダプタをセットアップしインターネットに接続する手順

0
Last updated at Posted at 2025-07-27

はじめに

四足歩行ロボットのUnitree・Go2 Edu(R&Dモデル)にはDocking StationとしてUbuntu20.04がセットアップされたJetson Orin NXが搭載されているのですが、素の状態ではWi-Fiによるインターネット接続ができません。
有線接続は可能ですが不便なので、手持ちのTP-Link T2UB Nano USB Wi-Fiアダプタをセットアップして使用できるようにしました。
結構ややこしい手順だったので他の方の参考になるよう書き残しておきます。

前提条件

1. インターネット接続を共有しつつssh接続する

初めに書いたように、素の状態のUnitree・Go2はWi-Fiによるインターネット接続ができないので、有線LANでインターネット接続に接続するか、有線でssh接続したPCのインターネット接続を共有する必要があります。
自分の場合は面倒ですが有線接続できない環境だったので、@m4saka さんの接続先のサーバーへインターネット接続を共有しつつssh接続するを参考にssh接続しています。

ssh接続元のPCとDocking StationをEthernetケーブル(ストレートでもクロスでもどちらでもいいです)で直結し、ssh接続元のPCからは下記のコマンドで接続します。

IPアドレスは192.168.123.18、ユーザー名はunitree、パスワードは123です。

ssh -R 6666 unitree@192.168.123.18

以降はssh接続したDocking Stationでの操作になりますが、ssh接続元のPCのインターネット接続を共有するには逐一プロキシ設定が必要になり面倒なので、proxychainsをセットアップします。
(ついでにテキストエディタのnanoもインストールします。)

bash
$ sudo apt -o Acquire::http::proxy="socks5h://localhost:6666" -o Acquire::https::proxy="socks5h://localhost:6666" update
$ sudo apt -o Acquire::http::proxy="socks5h://localhost:6666" -o Acquire::https::proxy="socks5h://localhost:6666" install proxychains nano

次に、/etc/proxychains.conf

bash
$ sudo nano /etc/proxychains.conf

などで開き、末尾を以下のように編集します。

/etc/proxychains.conf
※中略

[ProxyList]
socks5 127.0.0.1 6666

これで、以下のようにproxychainsをつけるだけでプロキシが有効になるので、インターネット接続が必要な各種コマンドが楽に使えるようになります。

bash
$ sudo proxychains apt update

2. システムの更新

2.1. APTのリポジトリ設定を修正(場合によっては不要?)

初期状態ではsudo apt updateの際に参照するAPTのリポジトリ設定が中国のサイトになっており、(もしかすると自分だけの環境かもしれませんが)接続できずにシステムの更新に失敗してしまいました。
その場合は以下のコマンドでリポジトリリストを修正します。

bash
$ sudo nano /etc/apt/sources.list
/etc/apt/sources.list
# 中国ミラーをコメントアウトして、デフォルトを使用
deb http://ports.ubuntu.com/ubuntu-ports/ focal main restricted universe multiverse
deb http://ports.ubuntu.com/ubuntu-ports/ focal-updates main restricted universe multiverse
deb http://ports.ubuntu.com/ubuntu-ports/ focal-backports main restricted universe multiverse
deb http://ports.ubuntu.com/ubuntu-ports/ focal-security main restricted universe multiverse

2.2. システムの更新

まず、システムパッケージを最新の状態に更新します。

bash
$ sudo proxychains apt update
$ sudo proxychains apt upgrade -y

更新できたら、一度再起動するのがよいでしょう。

bash
$ sudo reboot

3. Wi-Fiアダプタの接続確認

3.1. USBデバイスの認識確認

TP-Link T2UB NanoをDocking Stationの後面右側にあるUSBポートに接続し、認識されているか確認します。

bash
$ lsusb

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 0bda:c820 Realtek Semiconductor Corp. 802.11ac NIC
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

3.2. ネットワークインターフェースの確認

bash
$ ip link show

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 86:53:70:69:42:31 brd ff:ff:ff:ff:ff:ff
3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 3c:6d:66:2b:d1:51 brd ff:ff:ff:ff:ff:ff
    altname enP8p1s0
4: l4tbr0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 1a:da:05:a7:b3:ed brd ff:ff:ff:ff:ff:ff
5: rndis0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast master l4tbr0 state DOWN mode DEFAULT group default qlen 1000
    link/ether 1a:da:05:a7:b3:ed brd ff:ff:ff:ff:ff:ff
6: usb0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast master l4tbr0 state DOWN mode DEFAULT group default qlen 1000
    link/ether 1a:da:05:a7:b3:ef brd ff:ff:ff:ff:ff:ff
7: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default 
    link/ether 02:42:ad:43:aa:4a brd ff:ff:ff:ff:ff:ff

この場合、

  • USBデバイス: 正常に認識されている(ID 0bda:c820)
  • Wi-Fiドライバー: 読み込まれていない(wlan0が存在しない)

という状態です。

4. ドライバーのインストール

4.1. 自動認識の確認

Linuxカーネルには適切なWi-Fiアダプタのドライバーが含まれていることがあるので、確認してみます。

sudo権限でカーネルログを確認

bash

$ sudo dmesg | grep -i wifi
(何も表示されない)

$ sudo dmesg | grep -i rtl
[   13.877444] r8169 0008:01:00.0 eth0: RTL8168h/8111h, 3c:6d:66:2b:d1:51, XID 541, IRQ 308
[  378.313360] Bluetooth: hci0: RTL: examining hci_ver=08 hci_rev=000c lmp_ver=08 lmp_subver=8821
[  378.314341] Bluetooth: hci0: RTL: rom_version status=0 version=1
[  378.314347] Bluetooth: hci0: RTL: loading rtl_bt/rtl8821c_fw.bin
[  378.315044] Bluetooth: hci0: RTL: loading rtl_bt/rtl8821c_config.bin
[  378.315265] Bluetooth: hci0: RTL: cfg_sz 10, total sz 31990
[  378.768349] Bluetooth: hci0: RTL: fw version 0x829a7644

$ sudo dmesg | grep -i 8821
[  378.313360] Bluetooth: hci0: RTL: examining hci_ver=08 hci_rev=000c lmp_ver=08 lmp_subver=8821
[  378.314347] Bluetooth: hci0: RTL: loading rtl_bt/rtl8821c_fw.bin
[  378.315044] Bluetooth: hci0: RTL: loading rtl_bt/rtl8821c_config.bin

Wi-Fiインターフェースの確認

bash
$ iwconfig

lo        no wireless extensions.
dummy0    no wireless extensions.
eth0      no wireless extensions.
l4tbr0    no wireless extensions.
rndis0    no wireless extensions.
usb0      no wireless extensions.
docker0   no wireless extensions.

利用可能なドライバーの確認

bash
$ lsmod | grep -i rtl
btrtl                  24576  1 btusb

$ lsmod | grep -i 8821
(何も表示されない)

この結果になった場合、

  • RTL8821CのBluetooth機能は動作している
  • lsmodで8821関連のWi-Fiドライバーが見つからない

なので、TP-Link T2UB Nanoの専用ドライバーが必要ということになります。

4.2. 手動でのドライバーのビルドとインストール(必要な場合)

もしドライバーが自動で認識されない場合は、手動でのインストールが必要になります。
ドライバのビルドが必要になるので、正直面倒くさいです…

日付の確認と設定

bash
# 日付の確認
$ date 
Thu 01 Jan 1970 01:01:01 AM CST   

このように1970年などになっていればビルド時にエラーになることがあるので、妥当な時刻を設定しておく

$ sudo date -s "2025-07-25 09:00:00"

必要なツールのインストール

bash
$ sudo proxychains apt install build-essential dkms git bc

RTL8821AUドライバーのダウンロード・ビルド・インストール

bash
# RTL8821AUドライバーをダウンロードしディレクトリに移動
$ proxychains git clone https://github.com/morrownr/8821au-20210708.git
$ cd 8821au-20210708

# ドライバーをビルド(少し時間がかかる)
$ make clean
$ make

# ドライバーのインストール
$ sudo make install

4.3. インストールの確認

インストールができれば、正常にモジュールが読み込まれているか確認します。

bash
# ドライバーモジュールを読み込み
$ sudo modprobe 8821cu

# モジュールが読み込まれているか確認
$ lsmod | grep 8821cu

8821cu               2437120  0
cfg80211              724992  1 8821cu

# Wi-Fiインターフェースの確認
$ iwconfig

lo        no wireless extensions.
dummy0    no wireless extensions.
eth0      no wireless extensions.
l4tbr0    no wireless extensions.
rndis0    no wireless extensions.
usb0      no wireless extensions.
docker0   no wireless extensions.
wlan0     unassociated  Nickname:"<WIFI@REALTEK>"
          Mode:Managed  Frequency=2.412 GHz  Access Point: Not-Associated
          Sensitivity:0/0
          Retry:off   RTS thr:off   Fragment thr:off
          Power Management:off
          Link Quality:0  Signal level:0  Noise level:0
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

# ネットワークインターフェースの確認
$ ip link show

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether ae:44:66:b9:0c:41 brd ff:ff:ff:ff:ff:ff
3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 3c:6d:66:2b:d1:51 brd ff:ff:ff:ff:ff:ff
    altname enP8p1s0
4: l4tbr0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 1a:da:05:a7:b3:ed brd ff:ff:ff:ff:ff:ff
5: rndis0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast master l4tbr0 state DOWN mode DEFAULT group default qlen 1000
    link/ether 1a:da:05:a7:b3:ed brd ff:ff:ff:ff:ff:ff
6: usb0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast master l4tbr0 state DOWN mode DEFAULT group default qlen 1000
    link/ether 1a:da:05:a7:b3:ef brd ff:ff:ff:ff:ff:ff
7: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default
    link/ether 02:42:bc:78:88:d4 brd ff:ff:ff:ff:ff:ff
8: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state DORMANT mode DORMANT group default qlen 1000
    link/ether **:**:**:**:**:** brd ff:ff:ff:ff:ff:ff

インストール前には無かったwlan0が追加されていますので、インストールに成功しました!
(macアドレスは念のため隠しています)

5. Wi-Fi接続の設定

5.1 コマンドラインでの設定

ssh接続しておりGUIでのWi-Fi接続設定ができないので、コマンドラインで設定します。

bash
# wlan0インターフェースを有効化
$ sudo ip link set wlan0 up

# 利用可能なWi-Fiネットワークをスキャン
$ sudo nmcli device wifi list

IN-USE  BSSID              SSID                  MODE   CHAN  RATE        SIGNAL  BARS  SECURITY
        **:**:**:**:**:**  Buffalo-G-****        Infra  44    270 Mbit/s  57      ▂▄▆_  WPA2 WPA3

# Wi-Fiネットワークに接続
$ sudo nmcli device wifi connect "SSID名" password "パスワード"

# 接続状況の確認
$ nmcli connection show

NAME                UUID                                  TYPE      DEVICE  
Buffalo-G-****      ********-****-****-****-************  wifi      wlan0
Wired connection 1  58ed3933-c8a7-3c0c-9781-48eb09f33d6f  ethernet  eth0
docker0             7278b336-af0f-4e34-bb7a-b1dc15724cb0  bridge    docker0
Wired connection 2  2f326d31-611d-362b-9866-74329586233c  ethernet  --

5.2. 手動設定(wpa_supplicant使用)

設定ファイルを作成しての接続も可能です

5.2.1. 設定ファイルの作成

$ sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

設定内容:

/etc/wpa_supplicant/wpa_supplicant.conf
country=JP
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
    ssid="Wi-FiSSID"
    psk="Wi-Fiパスワード"
}

5.2.2. サービスの有効化

$ sudo systemctl enable wpa_supplicant
$ sudo systemctl start wpa_supplicant

6. 接続の確認

最後に、接続状態を確認します。

# IPアドレスの確認
$ ip addr show wlan0

8: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether **:**:**:**:**:** brd ff:ff:ff:ff:ff:ff
    inet 192.168.11.2/24 brd 192.168.11.255 scope global dynamic noprefixroute wlan0
       valid_lft 172551sec preferred_lft 172551sec
    inet6 2001:a251:256a:1f00:7d8d:c5be:baa2:aa84/64 scope global temporary dynamic
       valid_lft 86371sec preferred_lft 14371sec
    inet6 2001:a251:256a:1f00:2e55:6c7:744a:fdb9/64 scope global dynamic mngtmpaddr noprefixroute
       valid_lft 86371sec preferred_lft 14371sec
    inet6 fe80::1d53:998c:454c:7391/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

# インターネット接続テスト
$ ping -4 -c 4 google.com

PING google.com (142.251.222.46) 56(84) bytes of data.
64 bytes from nrt13s72-in-f14.1e100.net (142.251.222.46): icmp_seq=1 ttl=116 time=14.4 ms
64 bytes from nrt13s72-in-f14.1e100.net (142.251.222.46): icmp_seq=2 ttl=116 time=14.7 ms
64 bytes from nrt13s72-in-f14.1e100.net (142.251.222.46): icmp_seq=3 ttl=116 time=15.4 ms
64 bytes from nrt13s72-in-f14.1e100.net (142.251.222.46): icmp_seq=4 ttl=116 time=22.8 ms
--- google.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3006ms
rtt min/avg/max/mdev = 14.365/16.805/22.776/3.467 ms

IPアドレスが192.168.11.2で取得できており、google.comに対してのpingも帰ってきているので、Wi-Fiでのインターネット接続が確認できました!

7. JST時刻に変更・NTPサーバで時刻同期

Unitreeは中国の企業なので、Docking StationのJetsonはタイムゾーンがAsia/Shanghaiになっており時刻も中国標準時(CST)になっています。
日本で使うならタイムゾーンをAsia/Tokyoに変更して日本標準時(JST)にしましょう。
ついでにNTPサーバとも時刻同期させます。

7.1. タームゾーンをAsia/Tokyoに変更

bash
$ sudo timedatectl set-timezone Asia/Tokyo

7.2. NTPサーバで時刻同期

bash
# NTPをインストール
$ sudo apt install ntp

# 気になるならNTPサーバの接続先を編集 (今回は変更していません)
$ sudo nano /etc/ntp.conf

# NTPサービスの有効化
$ sudo systemctl enable ntp

# NTPサービスの起動
$ sudo systemctl start ntp

# NTPサービスの状態確認
$ sudo systemctl status ntp

● ntp.service - Network Time Service
     Loaded: loaded (/lib/systemd/system/ntp.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2022-09-08 18:58:21 JST; 2 years 10 months ago
       Docs: man:ntpd(8)
   Main PID: 957 (ntpd)
      Tasks: 2 (limit: 18144)
     Memory: 2.0M
     CGroup: /system.slice/ntp.service
             └─957 /usr/sbin/ntpd -p /var/run/ntpd.pid -g -u 128:134
Jul 25 11:50:48 ubuntu ntpd[957]: Soliciting pool server 47.79.37.210
Jul 25 11:50:50 ubuntu ntpd[957]: Soliciting pool server 172.104.124.149
Jul 25 11:50:50 ubuntu ntpd[957]: Soliciting pool server 172.104.124.149
Jul 25 11:50:51 ubuntu ntpd[957]: Soliciting pool server 54.64.159.232
Jul 25 11:50:52 ubuntu ntpd[957]: Soliciting pool server 2602:feda:6f:3e::a
Jul 25 11:59:04 ubuntu ntpd[957]: 185.125.190.57 local addr 192.168.11.2 -> <null>
Jul 25 11:59:44 ubuntu ntpd[957]: 185.125.190.56 local addr 192.168.11.2 -> <null>
Jul 25 11:59:58 ubuntu ntpd[957]: 122.215.240.51 local addr 192.168.11.2 -> <null>
Jul 25 12:00:06 ubuntu ntpd[957]: 91.189.91.157 local addr 192.168.11.2 -> <null>
Jul 25 12:11:03 ubuntu ntpd[957]: 162.159.200.123 local addr 192.168.11.2 -> <null>

# NTPサーバ接続先の確認 (ホスト名の頭に*がついているサーバが現在の同期元)
$ ntpq -p

     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 0.ubuntu.pool.n .POOL.          16 p    -   64    0    0.000    0.000   0.000
 1.ubuntu.pool.n .POOL.          16 p    -   64    0    0.000    0.000   0.000
 2.ubuntu.pool.n .POOL.          16 p    -   64    0    0.000    0.000   0.000
 3.ubuntu.pool.n .POOL.          16 p    -   64    0    0.000    0.000   0.000
 ntp.ubuntu.com  .POOL.          16 p    -   64    0    0.000    0.000   0.000
+sv1.localdomain 133.243.238.163  2 u   83  128  377   13.065    1.485   0.733
-ap-northeast-1. 133.243.238.244  2 u   60  128  377   15.753    2.139   1.193
*v4.ntp.admtan.j 103.1.106.69     2 u   89  128  377   13.158    0.991   0.276
+mail.moe.cat    103.1.106.69     2 u   50  128  377   13.421    1.174   0.447
+47.79.37.210    103.1.106.69     2 u   75  128  377   15.254    0.160   0.408
-ntp-jp.vulp.ca  103.1.106.69     2 u   78  128  377   15.504    2.599   2.519
-ec2-54-64-159-2 133.243.238.164  2 u   75  128  377   15.331    1.273   0.696

7.3. 設定後の確認

bash
$ timedatectl

               Local time: Fri 2025-07-25 12:38:52 JST
           Universal time: Fri 2025-07-25 03:38:52 UTC
                 RTC time: Fri 2025-07-25 03:38:52    
                Time zone: Asia/Tokyo (JST, +0900)    
System clock synchronized: yes                        
              NTP service: n/a                        
          RTC in local TZ: no 

Local timeの末尾にJSTと表示され、System clock synchronized: yesなのでNTPサーバとの時刻同期もできています。

NTP service: n/aが気になりますが、これはUbuntu 20.04以降では本来標準で有効になっている時刻同期機能のsystemd-timesyncが無効化されているためです。
NTPで時刻同期できているので、気にしなくていいです。

8. Docking StationのGUIを使用する場合

LiDARなどのデータを参照するにあたり、ssh接続のコマンドラインでは限界もあるでしょうからGUIを使用する方法を紹介します。

8.1. 直接ディスプレイを接続する方法

Expansion Dock Configurationにあるように、Docking StationのUSB-CポートからHDMI変換ケーブルを介してディスプレイに直接表示させることができます。

8.2. NoMachineを使う方法

【Unitree Go2】NoMachineでDocking StationのGUIを使うにあるように、Docking StationにはNoMachine(VNCよりも高速なリモートデスクトップツール)があらかじめセットアップされているので、これを使用します。
(使用方法はリンク先を参照してください。)

環境によっては、NoMachine で正常にデスクトップが表示されない場合があります。
その場合は下記の記事を参照してください。

8.3. 日本語設定

Unitree・Go2に付属するJetsonのGUI環境では言語は英語、キーボードはUSキーボード仕様になっています。
必要に応じて日本語言語セットをインストールし、キーボードも109キーボードに変更しましょう。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?