nikkel ブログ Wireless/English/Cryptocurrency/NFT

Jetson Nano用にBUFFALO WI-U3-1200AX2(rtl8852au)ドライバをクロスコンパイルする

Wireless

本ページでは、Jetson Nano用にBUFFALO WI-U3-1200AX2(rtl8852au)ドライバをクロスコンパイルする手順を紹介する。

ホスト環境:

Ubuntu 18.04 LTS

Jetpack導入済み
・Kernelのクロスコンパイル済み

ターゲットボード:

当然のことながらJetson nano

クロスコンパイル手順:

git clone http://github.com/lwfinger/rtl8852au.git

ドライバソースコードの取得

cd rtl8852au/platform/
vi jetson_nano.mk

ディレクトリを移動し、Jetson Nano用にクロスコンパイルするように.mkファイルを作成する。

+ifeq ($(CONFIG_PLATFORM_JETSON_NANO), y)
+EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
+EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT
+ARCH ?= arm64
+CROSS_COMPILE := $(HOME)/nvidia/nvidia_sdk/JetPack_4.6_Linux_JETSON_NANO_TARGETS/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-
+KSRC := $(HOME)/nvidia/nvidia_sdk/JetPack_4.6_Linux_JETSON_NANO_TARGETS/Linux_for_Tegra/source/public/build
+MODULE_NAME = wlan
+endif

クロスコンパイラ、カーネルソースのディレクトリ等を設定。

cd ../
vi Makefile

先ほど作成した.mkファイルを読みとってコンパイルするようにMakefileを修正。

###################### Platform Related #######################
-CONFIG_PLATFORM_I386_PC = y
+CONFIG_PLATFORM_I386_PC = n
CONFIG_PLATFORM_RTL8198D = n
CONFIG_PLATFORM_ANDROID_X86 = n
CONFIG_PLATFORM_ANDROID_INTEL_X86 = n
@@ -154,6 +154,7 @@ CONFIG_PLATFORM_NV_TK1_UBUNTU = n
CONFIG_PLATFORM_ARM_SUNxI = n
CONFIG_PLATFORM_RTK1319 = n
CONFIG_PLATFORM_AML_S905 = n
+CONFIG_PLATFORM_JETSON_NANO = y

 

make

クロスコンパイル開始。

ドライバロード

コンパイルが完了するとwlan.koが生成される。

Jetson nanoにwlan.koをSSHやTFTP等で移す。
WI-U3-1200AX2をJetson nanoにUSB接続すると以下のように見える。

無線ドライバロード

sudo insmod wlan.ko

wlan0が生成された。