はじめに
四足歩行ロボットのUnitree・Go2 Edu(R&Dモデル)にはDocking StationとしてUbuntu20.04がセットアップされたJetson Orin NXが搭載されているのですが、素の状態ではWi-Fiによるインターネット接続ができません。
有線接続は可能ですが不便なので、手持ちのTP-Link T2UB Nano USB Wi-Fiアダプタをセットアップして使用できるようにしました。
結構ややこしい手順だったので他の方の参考になるよう書き残しておきます。
前提条件
-
Jetson Orin NX(Ubuntu 20.04)
-
ssh接続元のPCはWindowsでもLinuxでもいいが、インターネット接続できること
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もインストールします。)
$ 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を
$ sudo nano /etc/proxychains.conf
などで開き、末尾を以下のように編集します。
※中略
[ProxyList]
socks5 127.0.0.1 6666
これで、以下のようにproxychainsをつけるだけでプロキシが有効になるので、インターネット接続が必要な各種コマンドが楽に使えるようになります。
$ sudo proxychains apt update
2. システムの更新
2.1. APTのリポジトリ設定を修正(場合によっては不要?)
初期状態ではsudo apt updateの際に参照するAPTのリポジトリ設定が中国のサイトになっており、(もしかすると自分だけの環境かもしれませんが)接続できずにシステムの更新に失敗してしまいました。
その場合は以下のコマンドでリポジトリリストを修正します。
$ sudo nano /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. システムの更新
まず、システムパッケージを最新の状態に更新します。
$ sudo proxychains apt update
$ sudo proxychains apt upgrade -y
更新できたら、一度再起動するのがよいでしょう。
$ sudo reboot
3. Wi-Fiアダプタの接続確認
3.1. USBデバイスの認識確認
TP-Link T2UB NanoをDocking Stationの後面右側にあるUSBポートに接続し、認識されているか確認します。
$ 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. ネットワークインターフェースの確認
$ 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権限でカーネルログを確認
$ 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インターフェースの確認
$ 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.
利用可能なドライバーの確認
$ lsmod | grep -i rtl
btrtl 24576 1 btusb
$ lsmod | grep -i 8821
(何も表示されない)
この結果になった場合、
- RTL8821CのBluetooth機能は動作している
- lsmodで8821関連のWi-Fiドライバーが見つからない
なので、TP-Link T2UB Nanoの専用ドライバーが必要ということになります。
4.2. 手動でのドライバーのビルドとインストール(必要な場合)
もしドライバーが自動で認識されない場合は、手動でのインストールが必要になります。
ドライバのビルドが必要になるので、正直面倒くさいです…
日付の確認と設定
# 日付の確認
$ date
Thu 01 Jan 1970 01:01:01 AM CST
このように1970年などになっていればビルド時にエラーになることがあるので、妥当な時刻を設定しておく
$ sudo date -s "2025-07-25 09:00:00"
必要なツールのインストール
$ sudo proxychains apt install build-essential dkms git bc
RTL8821AUドライバーのダウンロード・ビルド・インストール
# RTL8821AUドライバーをダウンロードしディレクトリに移動
$ proxychains git clone https://github.com/morrownr/8821au-20210708.git
$ cd 8821au-20210708
# ドライバーをビルド(少し時間がかかる)
$ make clean
$ make
# ドライバーのインストール
$ sudo make install
4.3. インストールの確認
インストールができれば、正常にモジュールが読み込まれているか確認します。
# ドライバーモジュールを読み込み
$ 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接続設定ができないので、コマンドラインで設定します。
# 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
設定内容:
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に変更
$ sudo timedatectl set-timezone Asia/Tokyo
7.2. NTPサーバで時刻同期
# 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. 設定後の確認
$ 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キーボードに変更しましょう。
参考

