我想自己替换最新的8192cu驱动实现hostapd功能,一开始用自带内核编译8192cu.ko模块,换了n个内核source,insmod的死活报说disgree module_layout。
绝望的我只能想着自己编译替换内核解决。
于是尼玛发现更坑爹,编译出来的内核死活驱动不了eth0/
最后走了好多弯路(此处省略好几十万字!!!!)最后发现原来是编译器有问题!!!!!!
坑爹的文档!!!!!!!!!!!!!!!!!!!!!!!!!!
步骤如下
1.toolchain准备
参考如下文档
http://linux-sunxi.org/Toolchain
这里有个大坑,千万不能用下面这个编译器!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
sudo add-apt-repository ppa:linaro-maintainers/toolchain
sudo apt-get update
sudo apt-get install gcc-arm-linux-gnueabi
这个编译器,编译出来的有问题,网卡绝对驱动不了。
我用的是gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-20130415_linux.tar.xz这个编译器,妥妥的。
2.准备linux-kernel
$git clone http://github.com/cubieboard/linux-sunxi.git.config我是在lubuntu server 1.01上的/proc/config.gz解压来的,绝对和板子上运行的一致
cd linux-sunxi
git checkout -b cubie-3.4 cubie/sunxi-3.4
3.编译内核
make -j4 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- uImage modules
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- INSTALL_MOD_PATH=output modules_install
漫长等待
然后打包out/lib/modules 上传到开发板替换开发板的/lib/modules目录
上传uImage到开发板子
sudo mount /dev/nanda /mnt
sudo cp uImage /mnt
最后重启如果看到
Linux version 3.4.61+ (liuhong@liuhong-SH560) (gcc version 4.7.3 20130328 (prerelease) (crosstool-NG linaro-1.13.1-4.7-2013.04-20
130415 - Linaro GCC 2013.04) ) #2 SMP PREEMPT Mon Jan 6 10:50:10 CST 20 这里的内容有变化了,并且eth0驱动起来了,就说明内核替换成功了。
|