平台:imx287
linux内核:2.6.35
开机设置:正常开机,跳线帽在jp4,
SD烧写JP3 JP4
正常启动后,sd卡的内容读取,拔掉jp4跳线帽,在串口控制台输入:df -m
找到盘号。然后在板子的/media目录可以看到相应盘符。进入U盘,把.ko文件拷贝到/root目录即可
如果用nfs挂载目录,mount -t nfs -o nolock -o tcp 192.168.191.100:/home/NFS /mnt
uboot模式:串口配置setenv bootargs 'root=/dev/nfs rw console=ttyAM0,115200n8 nfsroot=192.168.1.118:/home/NFS ip=192.168.1.160:192.168.1.118:192.168.1.255:255.255.255.0:jcljob:eth0:off mem=64M
保存saveenv
挂载WiFi模块:insmod /lib/modules/`uname r`/bcmdhd.ko "iface_name=wlan0""firmware_path=/etc/firmware/fw_bcm40181a2_apsta.bin" "nvram_path=/etc/firmware/nvram.txt"
·出问题,查找函数在那些目录:例如 grep "CONFIG_iMX_287" -r ./workplace/linux-2.6.35.3/,可看到配置信息
进入正题:
说驱动移植是因为linux的驱动自己写的部分真心不多,但不意味着很简单,像医生进行植皮手术一样,精准的找到需求,把已有的驱动挪过来,根据需求。配置板级支持包mach-28mx,plat-mx,相关引脚配置下,供驱动调用。
引脚的配置要看原理图了,
图中的 8个引脚在板级支持包中添加,为了防止引脚冲突,添加编译条件。#if defined ....
之后在drivers/net/wireless/找到ap8161的驱动bcmdhd,找到引脚相关的函数,dhd_gpio.c dhd_custom_gpio.c 把板级支持包的引脚跟驱动的引脚配对。驱动基本完成。
make menuconfig 在 devices driver 中将网卡驱动配置成模块化编译,编译控制字正确使能。
make uImage
make modules 无误后
烧写uImage ,挂载bcmdhd.ko
扫描出wlan0进行配置
知易行难,共勉之。