rt3070 AP驱动 移植到dm365和mini2440全过程

#History:2011-05-20
#Author:yingru
移植驱动的重要准备工作:dm365或者mini2440的内核需要在pc的目录下(就是LINUX_SRC)编译(make menuconfig  mini2440还需要make一遍)过,否则报各种错误..
上次下的sta驱动,虽然makefile可以修改MODE=STA成MODE=AP或APSTA,但是编译的时候会显示缺少某文件,所以sta的驱动不是完整的,不支持AP。

重新找AP驱动 下载点 http://download.csdn.net/detail/parrot18/3296592
下载后下有三个文件夹 MODULE NETIF UTIL文件夹
都有各自的makefile config.mk 
需要更改的设置和上一篇STA移植的博文中所述一样。
 
编译完成后生成3个ko文件,按顺序加载,顺序在AP驱动目录下load.4文件中。
insmod rtutil3070ap.ko
insmod rt3070ap.ko
insmod rtnet3070ap.ko
 
ifconfig ra0 up后可能会出现一些错误
关于比如DMA的错误
可以参考下面的博文修改:
http://blog.csdn.net/bbandxq521/archive/2010/11/09/5997419.aspx
 
移植到友善之臂mini2440开发板过程:
修改makefile :
PLATFORM选择IXP  ,找有IXP的if语句,修改其中的LINUX_SRC 和CROSS_COMPILE
LINUX_SRC用内核源代码所在目录路径。
 
修改config.mk

ifeq ($(PLATFORM),IXP)

 

#WFLAGS += -DRT_BIG_ENDIAN

 

endif

 

ifeq ($(PLATFORM),IXP)

 

CFLAGS := -v -D__KERNEL__ -DMODULE -I$(LINUX_SRC)/include -I$(RT28xx_DIR)/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -Uarm -fno-common -pipe -mapcs-32 -D__LINUX_ARM_ARCH__=5 -mcpu=xscale -mtune=xscale -malignment-traps -msoft-float $(WFLAGS)

 

        EXTRA_CFLAGS := -v $(WFLAGS) -I$(RT28xx_DIR)/include

 

export CFLAGS       

 

endif

也就是把大端模式去掉,2240默认的是小端模式。

每个目录下的makefile和config.mk都需要改。

 

dm365的内核是2.6.18

2440内核是2.6.32

用2440内核源码make的时候出现如下错误:

/opt/FriendlyARM/mini2440/linux-2.6.32.2

 


ERROR:

make[2]: Entering directory `/opt/FriendlyARM/mini2440/linux-2.6.32.2'
scripts/Makefile.build:49: *** CFLAGS was changed in "/home/xinjing/3070driver_AP/UTIL/os/linux/Makefile". Fix it to use EXTRA_CFLAGS。 停止。
make[2]: *** [_module_/home/xinjing/3070driver_AP/UTIL/os/linux] 错误 2
make[2]: Leaving directory `/opt/FriendlyARM/mini2440/linux-2.6.32.2'
make[1]: *** [all] 错误 2
make[1]: Leaving directory `/home/xinjing/3070driver_AP/UTIL'
make: *** [all] 错误 2

 

按如下参数make即可消除错误:

make KBUILD_NOPEDANTIC=1 

 

这个错误提示的应该是默认的要该为EXTRA_CFLAGS。

可以查看下面的博文

http://www.linuxidc.com/Linux/2011-03/33483.htm 

你可能感兴趣的:(rt3070 AP驱动 移植到dm365和mini2440全过程)