为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的时候自动配置。

你可能感兴趣的:(linux)