EDUP的EP-N8508GS在raspi上使用(二)

继《EDUP的EP-N8508GS在raspi上使用》

先写一下编译外部驱动模块的大概步骤。

第一阶段--前奏,解决用到内核源文件及相关配置文件的问题:
编译外部驱动模块要使用到内核源文件(内核文件的版本要与我们想要插入的系统的版本完全一致)。
具体步骤是:
1、下载内核源文件,解压。
2、make menuconfig进行配置。
配置完保存,生成.config文件
3、make modules_prepare
会在include文件中生成config、generate目录,里面也会有一些生成的脚本文件及.h、.c文件,主要观察到了这两个目录。
4、scripts/mod/modpost -o Module.symvers //此句是为了解决在编译驱动模块时的Module.symvers is missing问题。

当然上面的make modules_prepare及scripts/mod/modpost -o Module.symvers,可以用make解决,make是编译整个内核,不过时间太长(pc机上编译要半小时左右,在raspberry pi上编译可能要几个小时,我是在编译的时候,大约1个小时左右时,还没编译完,就ctrl+C中止掉了,太费时间),而且对于驱动模块的编译的前奏,完全可以用上面两步就可以代替,可以省很多时间。


第二阶段--进行外部驱动模块的编译:
1、从EDUP的官网上下载的EP-N8508GS驱动的源文件。
2、修改Makefile
①找到CONFIG_PLATFORM_I386_PC = y,把y改为n,并在下面添加一行CONFIG_PLATFORM_ARM_RASPI = y,
②在
ifeq ($(CONFIG_PLATFORM_I386_PC), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
SUBARCH := $(shell uname -m | sed -e s/i.86/i386/)
ARCH ?= $(SUBARCH)
CROSS_COMPILE ?=
KVER  := $(shell uname -r)
KSRC := /lib/modules/$(KVER)/build
MODDESTDIR := /lib/modules/$(KVER)/kernel/drivers/net/wireless/
INSTALL_PREFIX :=
endif

后面添加:
ifeq ($(CONFIG_PLATFORM_ARM_RASPI), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
ARCH := arm
CROSS_COMPILE ?= //此处不需要有东西,SD卡上的系统里有对应于arm的编译工具如gcc,ld等,如果要在pc机上编译的话,此处要添加交叉编译工具所在的目录,及前缀,如:/cross_compile/arm-linux-
KVER  := 3.1.9+
KSRC := 此处为内核源文件所在的目录,如/home/pi/raspbian_3.1.9+
endif

在Makefile文件里有这一条规则:
modules:
	$(MAKE) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) -C $(KSRC) M=$(shell pwd)  modules

上面的步骤主要是为了对这一条规则里面的变量进行赋值。

3、make,会生成8192cu.ko,及其他一些文件如:8192cu.mod.c等,我们要用到的只有8192cu.ko,
4、sudo insmod 8192cu.ko,没提示错误的话,用lsmod可以查看到插入的驱动模块,卸载的话用sudo rmmod 8192cu。


我遇到的主要问题:
没找到raspi的8月8号官网上发布的那个系统(内核版本为3.1.9)的源文件,但找到了9月18日发布的系统(3.2.27)的源文件了,下载下来,在Makefile中手工修改版本号,并修改相应的规则使在include/config/kernel.release生成的版本号为3.1.9+,有趣的是modinfo 8192cu.ko时,可以看到版本信息为3.1.9+,企图骗过raspi,但机器是容不了假的,insmod时,报错“Invalid module format”。
然后下载了纯净的linux3.1.9,打算用它来辅助编译外部驱动模块,但配置太麻烦,要添加的东西也不少,如而且不是一次就会成功,借用raspbian9月18日的配置信息,简单的配置了下,但出现下面错误:
EDUP的EP-N8508GS在raspi上使用(二)_第1张图片
看来还有很多地方要改动,时间不允许。
最后下载了raspbian的9月18日版本的映像文件(网上列出的 改动,专门提到了WIFI:
NEW - Now includes:

Latest WIFI drivers for our new USB WIFI adapter
Easy to use network interface
Ability to overclock your Pi

放到SD卡,打开系统,插上无线网卡,iwconfig,可以看到wlan0,说明驱动是OK了,但由于以前从来没在linux下配置过无线网卡,而网上搜到的一些配置步骤,不起效。


more:
1、 Debian下编译内核模块的方法
2、 Debian下编译安装驱动模块

你可能感兴趣的:(asp)