Odroid xu4でGW-450D(802.11ac対応無線LANドングル)を使うの巻

はじめに

下記のサイトを参考にドライバーをインストールしました。

RaspberryPi - Raspberry Pi 2+NOOBSでPlanexのGW-450D(802.11ac対応無線LANドングル)を使う - Qiita

 

RaspberryPiにGW-450Dを繋ぐメモ : 時々、失業SEの開発日誌

 

http://www.planex.co.jp/articles/RaspberryPi_GW-450D/

 

GW-450D の Linux 用ドライバをダウンロードします。

Planexのサイト⇒http://www.planex.co.jp/support/download/gw-450d/

方法として、自分で最新のカーネルをビルドしなおしてそのソースを使うようです。

 

カーネルのビルド

参考したサイト

ODROID XU3 Setup, version 6 | Social Sight Project | Assembla

en:xu3_building_kernel [Odroid Wiki]

下記はコマンド

 

sudo apt-get update

sudo apt-get upgrade

sudo apt-get install build-essential linux-headers-generic sudo apt-get install build-essential libqt4-dev libncurses5-dev git cd mkdir -p ~/codes cd ~/codes git clone --depth 1 https://github.com/hardkernel/linux.git -b odroidxu3-3.10.y cd linux make odroidxu3_defconfig make menuconfig (特に変更がなければ、そのまま[ Exit ]) make -j10 (-j はCPUの数 x 1.5くらいがいいらしい) cp arch/arm/boot/zImage /media/boot cp arch/arm/boot/dts/exynos5422-odroidxu3.dtb /media/boot make modules_install cp .config /boot/config-`make kernelrelease` update-initramfs -c -k `make kernelrelease` mkimage -A arm -O linux -T ramdisk -C none -a 0 -e 0 -n uInitrd -d /boot/initrd.img-`make kernelrelease` /boot/uInitrd-`make kernelrelease` cp /boot/uInitrd-`make kernelrelease` /media/boot/uInitrd sudo sync && reboot



GW-450Dドライバのビルド

参考にしたサイト

rt3573 fails to compile in latest kernel · Issue #8 · ashaffer/rt3573sta · GitHub

dkms-mt7601 no longer compiles as of 3.18.3-1 · Issue #1074 · archlinuxarm/PKGBUILDs · GitHub

GW-450DやWN-AC433UKをRaspberry Piで使う - 簡潔なQ

GW-450D KATANA を Debian で使ってみる | カメノドットコム

下記は特に参考にした。

GW-450DやWN-AC433UKをRaspberry Piで使う - 簡潔なQ

 

unzip gw-450d_driver_linux_v3002.zip

cd gw-450d_driver_linux_v3002
tar xvjf mt7610u_wifi_sta_v3002_dpo_20130916.tar.bz2
cd mt7610u_wifi_sta_v3002_dpo_20130916 sudo nano common/rtusb_dev_id.c (コード追加)
USB_DEVICE_ID rtusb_dev_id[] = { #ifdef MT76x0 {USB_DEVICE(0x2019,0xab31)}, /* GW-450D */ <-- 追加 ab31は小文字
{USB_DEVICE(0x04BB,0x0951)}, /* WN-AC433UK */ <-- 追加


sudo nano include/os/rt_linux.h  (設定変更) 

(略)
typedef struct _OS_FS_INFO_
{
kuid_t fsuid; <-- 変更

kgid_t fsgid; <-- 変更 fsgidであることに留意
 mm_segment_t fs;
} OS_FS_INFO;
(略)
sudo nano os/linux/config.mk (設定変更)
HAS_WPA_SUPPLICANT=y <-- 変更
HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y <-- 変更
(中略)

ifneq ($(findstring mt7610u,$(CHIPSET)),)
WFLAGS += -DMT7610
endif

ifneq ($(findstring $(RT28xx_MODE),AP),)
#WFLAGS += -DSPECIFIC_BCN_BUF_SUPPORT
endif

ifeq ($(HAS_CSO_SUPPORT), y)
WFLAGS += -DCONFIG_CSO_SUPPORT -DCONFIG_TSO_SUPPORT
endif

CHIPSET_DAT = 2870    <-- 変更 (663行目)
endif


sudo nano conf/RT2870STA.dat (設定変更)
SSID= <-- 変更
AuthMode=WPA2PSK <-- 変更
EncrypType=AES <-- 変更
sudo make 

sudo make install

rm -r /etc/Wireless/RT2860STA
mkdir -p /etc/Wireless/RT2870STA
cp RT2870STA.dat /etc/Wireless/RT2870STA/RT2870STA.dat

insmod /lib/modules/3.10.82+/kernel/drivers/net/wireless/mt7650u_sta.ko   (カーネルに合わせて3.10.82+のところは変更する)

ところで、この際、GW450DをUSBに接続すると下記のエラーが発生する
Sep 6 21:53:05 odroid kernel: [ 448.409007] [c0] ERROR: 256 KiB atomic DMA

これを回避するため、

sudo nano /media/boot/boot.ini

setenv bootargs "${bootrootfs} ${videoconfig} smsc95xx.macaddr=${macaddr} governor=${governor} ${hdmi_phy_control} "

から、下記に書き換え

setenv bootargs "${bootrootfs} ${videoconfig} smsc95xx.macaddr=${macaddr} governor=${governor} ${hdmi_phy_control} coherent_pool=1M"

sudo reboot

iwconfig ra0

注意:iwconfig が以下のようになる場合はビルドに失敗しています。 $ iwconfig ra0
ra0 No such device

モジュールを追加、無線LAN設定

 

sudo nano /etc/modules (コード追加)

# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored. mt7650u_sta <-- 追加 sudo  nano /etc/Wireless/RT2870STA/RT2870STA.dat (設定変更)  SSID=                           設定変更
AuthMode=WPA2PSK       <-- 設定変更
EncrypType=AES               <-- 設定変更 sudo nano /etc/network/interfaces (設定追加) auto lo iface lo inet loopback
iface eth0 inet dhcp #allow-hotplug wlan0
#iface wlan0 inet manual
#wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp allow-hotplug ra0
auto ra0
iface ra0 inet dhcp
wpa-ssid “ルータのSSID
wpa-psk “ルータのパスワード” sudo reboot Network Connectionsを開き、wifiを設定する >system>configuration>Network Connections  addをクリックし、“ルータのSSID” “ルータのパスワード” を入力。 sudo reboot 

 

失敗したらインストールを除去すること

rm -R '/lib/modules/3.10.82+/kernel/drivers/net/wireless'
rm -R /etc/Wireless

mt7610u_wifi_sta_v3002_dpo_20130916 を除去し、ドライバーのビルドを一からやること