Jetson NanoでAX200を使う

 はじめに

IntelのWiFi6対応カードであるAX200はLinuxのカーネルバージョン5.1以降でサポートされている。しかしJetson Nanoのカーネルバージョンはいまだ4.9であり、backportドライバを入れなければ動かない。ここではその手順を説明する。

このページの内容はJetPack 4.4.1で試した。

ドライバをインストールする

下記リンクを参考にbackportドライバのリポジトリを追加してbackport-iwlwifi-dkmsをインストールする。再起動するとAX200が認識されるようになる。

Intel AX200 wifi on Jetson AGX Xavier Under Ubuntu 18.04.4 LTS

sudo add-apt-repository ppa:canonical-hwe-team/backport-iwlwifi
sudo apt-get update
sudo apt-get install backport-iwlwifi-dkms

問題点

dmesgログにエラーが大量に出る

AER Corrected error received云々というエラーでdmesgが埋め尽くされる。これはPCIeのAdvanced Error Reportingという機能によるものである。カーネルの起動オプションにpci=noaerと追加すると抑制できる。APPEND行に以下のように追記する。

LABEL primary
      MENU LABEL primary kernel
      LINUX /boot/Image
      INITRD /boot/initrd
      APPEND ${cbootargs} quiet root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyS0,115200n8 console=tty0 fbcon=map:1 net.ifnames=0 pci=noaer

Jetson-IOを使ってカスタムしたDevice Treeを使っている場合は起動オプションが複数あるのでそちらにも追記する。

起動後にWiFiが有効になるまで60秒掛かる

WiFiカードにファームウェアを転送するメカニズムがタイムアウトを起こすせいでWiFiカードが有効になるまで時間がかかる。このタイムアウト時間は/sys/class/firmware/timeoutを上書きすることで変えられるが起動のたびに初期値の60に戻ってしまうようなのでsystemdサービスを作成して起動時に1に設定するようにする。

/etc/systemd/system/fallback-timeout.serviceとして以下の内容のファイルを作成する。

[Unit]
Description=Set Firmware fallback timeout to 1

[Service]
Type=oneshot
ExecStart=/bin/sh -c 'echo 1 > /sys/class/firmware/timeout'
TimeoutSec=0
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

ターミナルでsudo systemctl enable fallback-timeout.serviceを実行してこのサービスを登録する。

Bluetoothが認識されない

カーネルをビルドしなおさないといけないようだ。
yoffy / jetson-nano-kernel

2 件のコメント :

  1. ipref3などでのWifi計測はされてりしましたか?
    もし何かしら速度計測されていましたら、どの程度の実効速度がでていたか教えていただけますと幸いです。

    返信削除
  2. 11axのアクセスポイントを持ってないので申し訳ないですが代わりに11acでiperf3の測定をしてみました。

    ネットワーク構成は以下の通りで、Jetson・ルーター間は1m以内の距離です。
    Jetson Nano <==11ac==> ルーター <==1GbE==> NAS
    Jetsonのアップロード 445Mbps
    Jetsonのダウンロード 465Mbps

    返信削除