(每周原创)树莓派2自己编译内核以及驱动问题总结 - APT防御产品

(每周原创)树莓派2自己编译内核以及驱动问题总结


树莓派2升级内核以及编译驱动问题总结

树莓派2支持win10,一直想买,最近价格降下来了,就果断入手买了一个。在配置环境的时候遇到的问题,在这里总结一下。

1、下载编译环境以及内核代码

树莓派在github上放了所有的代码以及工具,将他们下载下来

地址是https://github.com/raspberrypi/

图片1.png 

 

 

内核代码的地址:https://github.com/raspberrypi/linux

交叉编译环境的地址:https://github.com/raspberrypi/tools

 

2、编译内核

为什么要用自己编译的内核呢,这里解释一下,树莓派的源里有编译好的内核,直接安装就可以,kernel-headers也有,但是我发现他们居然不配套……也就是说用最新的内核的话,就无法自己编译驱动……

而我有个无线网卡树莓派没有自带驱动,只好自己来编译,但是又无法使用源里的kernel-headers……

很无奈,只有自己重新配置一套环境,把内核替换上去,然后编译驱动装上去。

 

进入Linux目录

运行一下命令:

 

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcm2709_defconfig

这是生成了配置文件.config

然后编译

 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-

这里注意一下,如果你是64位系统,请把交叉编译器换成64位的……要和自己的系统匹配。

编译结束以后把树莓派的sd卡挂在到系统上。

Mount /dev/sdb1 mnt/fat32

mount /dev/sdb2 mnt/ext4

然后安装

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- INSTALL_MOD_PATH=mnt/ext4 modules

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- INSTALL_MOD_PATH=mnt/ext4 modules_install

 

网上的教程是 cp arch/arm/boot/Image mnt/fat32/kernel.img

就是把我们编译的内核替换掉原有的kernel.img

 

好了,现在你可以用新的内核来启动了~不过不要高兴太早,这里有个坑爹的地方,启动以后还是旧内核

楼主百思不得其解,最后各种百度谷歌……终于在某个外文论坛上找到答案。

原来要替换的不是kernel.img而是kernel7.img!看图

 图片2.png

 

 

 

这是树莓派的启动分区的文件目录,里面有个kernel.img有个kernel7.img,注意:kernel.img是树莓派1用的,二代以后cpuarm v7架构,内核名字被配置成了kernel7.img !所以我们一直没替换上去。

好了,把编译好的内核改成kernel7.img覆盖原来的……启动成功。内核匹配的各个模块也都安装成功

如图图片3.png

 

                                             3、编译网卡驱动

交叉编译环境配置完毕以后,下载驱动代码,并不能直接编译,要修改驱动程序的Makefile

如图:

图片4.png 

 

 

 

首先平台选择这里我们手动加上树莓派cpu平台的型号BCM2709,设置成y

然后编译选项这里制定我们的交叉编译工具以及内核代码位置如图:

图片5.png 

 

 


 

仿照这写就行……

 

然后就是make

最后生成了8188eu.ko

图片6.png 

就是我们要的驱动,放到树莓派里加载就ok了~



转载请注明出处 APT防御产品 » (每周原创)树莓派2自己编译内核以及驱动问题总结

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友评论(1)

  1. 沙发#

    hello 问一下树莓派2的处理器不是BCM2836吗?用2709的编译器可以? wobiaNyichulaide程序都报Segmentation fault呢。。。 求解答

    Shawn 2015-07-07 14:17 回复