Cross Compile MT7610U Driver for RPi2/3
PLANEX製のGW-450DはMT7610Uというチップを使っていますが、Linuxドライバは公開されているため、RaspberryPiでも使うことが出来ます。
ネイティブビルドの情報はたくさんありましたが、クロスコンパイルの情報がなかったので作りました。ネイティブビルドだと下手すると数時間かかってしまいますので、こちらの方法の方が楽だと思います。
RaspberryPi3とカーネルバージョン4.4の環境でテストしています。
まず作業用のディレクトリを作っておきます。
$ mkdir bcm-staging
$ export WORK=`pwd`/bcm-staging
RPi2/3 Kernel
まずカーネルをクロスコンパイルします。基本的に公式で公開されている手順と一緒です。
Setup toolchain
公式のツールチェインを落としてきてPATHを設定します。
$ cd ${WORK}
$ git clone https://github.com/raspberrypi/tools
$ export PATH=${PATH}:`pwd`/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin
Build
こちらのビルド方法は公式で公開されている手順と一緒です。
$ cd ${WORK}
$ git clone -b rpi-4.4.y https://github.com/raspberrypi/linux.git
$ cd linux
$ export KERNEL=kernel7
$ export ARCH=arm
$ export CROSS_COMPILE=arm-linux-gnueabihf-
$ make bcm2709_defconfig
$ make -j 4 zImage modules dtbs
MT7610U Driver
Build
公式で公開されているドライバにRPi用にすこし手を加えたものを落としてきてビルドします。(ツールチェインのPATHが通っている必要があります。)
$ cd ${WORK}
$ git clone -b rpi https://github.com/FantomJAC/mt7610u_wifi_sta_v3002_dpo_20130916.git
$ cd mt7610u_wifi_sta_v3002_dpo_20130916
$ export PI_SRC=${WORK}/linux
$ make
Install
ドライバファイルをRaspberryPiのrootfsにコピーします。(${RPI_ROOTFS}は適時設定して下さい。)
本来であれば上記手順でビルドしたカーネルを一緒に使用すべきですが、カーネルのバージョンが4.4まで一致していれば大体動きます。
$ cp ./os/linux/mt7650u_sta.ko ${RPI_ROOTFS}/modules/4.4.21-v7+
$ mkdir -p ${RPI_ROOTFS}/etc/Wireless/RT2870STA
$ cp RT2870STA.dat ${RPI_ROOTFS}/etc/Wireless/RT2870STA
/etc/network/interfacesに以下の行を追加します。
allow-hotplug ra0
iface ra0 inet manual
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
RaspberryPi上で以下のコマンドを実行します。
# depmod -a