Raspberry Piに取り付けたUSB Wifi RTL8188CUSを使ってWifiアクセスポイントを作るために、hostapdを導入しようとしたが失敗した記録。
■ 検証環境
・Raspberry Pi (OS : 2013-02-09-wheezy-raspbian)
・USB Wifiアダプタ RTL8188CUS
Wifiクライアントとしては特に問題なく使える(過去の記事 『Raspberry PiでUSB WifiアダプタRTL8188CUSを使う』)。Wifiアクセスポイントとして使う場合に問題が発生する。
■ 参考Webサイト
・Raspberry Pi Access Point using RTL8192cu
・Automatic setup for RTL8188CUS based wifi adapters
■ Realtek社公式サイトより、ドライバのダウンロード
Realtek公式サイト(Downloads)より「8188CUS」のキーワードで検索すると、Software: Drivers & Utilitiesにたどり着くので、”Linux Kernel 2.6.18~2.6.38 and Kernel 3.0.8”ドライバをダウンロードする。
ダウンロードしたドライバ・パッケージを解凍し、driver と hostapd ディレクトリでそれぞれビルド作業を行う。
■ カーネル ビルド環境の構築
今回、Linuxカーネル ドライバのビルドを行うため、カーネル ビルドを行う環境を構築する必要がある。
$ sudo apt-get install linux-headers-3.2.0-4-rpi
$ sudo apt-get install linux-headers-3.2.0-4-common
カーネルソースコードの入手と展開
$ tar xvfz rpi-3.6.y.tar.gz
$ mv linux-rpi-3.6.y build
$ sudo mv build /lib/modules/3.6.11+/
環境の整備
$ sudo make mrproper
$ sudo gzip -dc /proc/config.gz > .config
$ sudo make modules_prepare
$ sudo wget https://github.com/raspberrypi/firmware/raw/master/extra/Module.symvers
必要なライブラリのインストール
$ sudo apt-get install libnl-dev
■ 8192cuドライバのビルドとインストール
driverを解凍したディレクトリで…
Makefileの修正
# ファイルの先頭付近
# この行を追加
CONFIG_PLATFORM_ARM_RPI = y
#この行を無効化
CONFIG_PLATFORM_I386_PC = n
〜 略 〜
# この行を追加
ifeq ($(CONFIG_PLATFORM_ARM_RPI), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
ARCH := arm
CROSS_COMPILE :=
KVER := $(shell uname -r)
KSRC := /lib/modules/$(KVER)/build
endif
ifeq ($(CONFIG_PLATFORM_I386_PC), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
SUBARCH := $(shell uname -m | sed -e s/i.86/i386/)
ビルドを行い、既存ドライバのアンインストールと、今回のドライバのインストール。(インストール作業はsudo make install
でもよい)
$ sudo rmmod 8192cu
$ sudo cp 8192cu.ko /lib/modules/3.6.11+/kernel/drivers/net/wireless/rtl8192cu/
$ sudo depmod -a
$ sudo insmod 8192cu.ko
■ hostapdのビルドとインストール
hostapd Linux documentation page を参考にして、wpa_supplicant_hostapd/hostapdを解凍したディレクトリで…
設定ファイルの作成して
nl80211ドライバを有効化する修正を行う。
CONFIG_DRIVER_NL80211=y
ビルド
設定ファイルを作成する
driver=nl80211
ssid=RaspberryPi
hw_mode=g
channel=11
beacon_int=100
max_num_sta=5
macaddr_acl=0
auth_algs=1
wpa=2
wpa_passphrase=Pass0123
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP
hostapdの起動テストは失敗する
random: Trying to read entropy from /dev/random
Configuration file: /etc/hostapd/hostapd.conf
nl80211: 'nl80211' generic netlink not found
nl80211 driver initialization failed.