為MarS Board安裝無線網卡Linux驅動
玩了幾天MarS Board,發現要了解Linux是如何工作的,從嵌入式開發板玩起最有效率。因為會遇到無數的問題和未知領域,然後在解決問題的過程中有深入了解Linux的機會。
為這塊開發板專門買了塊TL823N的無線網卡,小巧可愛,不占地方。不過Linux下的驅動安裝是沒有Windows方便的。就像顯卡一樣,廠商對Linux不大重視。這個網卡果然不能即插即用。
查了下它的芯片是rt8192cu,雖然較新的內核裡有驅動,但是不能穩定工作。於是在RealTek官方頁面下載驅動包,再編譯進內核。
為交叉編譯設置環境變量:
ARCH=arm
CROSS_COMPILE=<path-to>/arm-eabi-
修改driver下的Makefile,把默認配置i386_pc關掉,並添加新的配置:
CONFIG_PLATFORM_I386_PC = n
CONFIG_PLATFORM_MARS = y
ifeq ($(CONFIG_PLATFORM_MARS), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
KSRC := <path-to>/kernel_imx
KVER := $(shell uname -r)
ARCH := arm
endif
這裡kernel_imx是內核代碼目錄。確保.config文件裡有CONFIG_WIRELESS_EXT設置為y。回到驅動目錄,執行make。會生成一個8192cu.ko的文件,這個就是驅動了。把這個驅動放到板上,再進行安裝。
安裝驅動:
insmod 8192cu.ko
確認驅動已裝載:
lsmod
啟動無線網絡:
ip link set wlan0 up
安裝包:wireless_tools以及wpa_supplicant(我的AP用的是WPA協議)。
查看可用接入點:
iwlist wlan0 scanning
關聯接入點:
wpa_passphrase <ssid> <password> > wifi_home.conf
wpa_supplicant -B -i wlan0 -c wifi_home.conf
dhcpcd -A wlan0
得到ip就大功告成。
以上是最原始的安裝驅動的方式。要讓生活更美好一點,可以把驅動代碼集成到內核代碼中,對無線網絡的配置也可以用netctl在boot的時候自動配置。