香蕉派内核编译

来源:互联网 发布:天竺棉和水洗棉 知乎 编辑:程序博客网 时间:2024/04/27 17:21


在使用的过程中,我们发现内核有些驱动或者模块需要我们自己重新编译,以适合我们具体的应用。我参考香蕉派官方网站的WiKi,将交叉编译内核的流程整理了一下。如果在使用的过程中有问题,欢迎跟帖讨论。

一、安装交叉编译器
apt-get install gcc-arm-linux-gnueabihf
我的系统是Ubuntu 12.10,源被我换成163,在执行这条命令时说gcc-arm-linux-gnueabihf找不到。然后按照http://linux-sunxi.org/Toolchain的提示,执行下面的命令就可以了。
add-apt-repository ppa:linaro-maintainers/toolchain
apt-get update
apt-get install gcc-arm-linux-gnueabihf

二、安装开发需要的其他依赖包
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential u-boot-tools uboot-mkimage binutils-arm-linux-gnueabihf gcc-4.7-arm-linux-gnueabihf-base g++-4.7-arm-linux-gnueabihf gcc-arm-linux-gnueabihf cpp-arm-linux-gnueabihf libusb-1.0-0 libusb-1.0-0-dev git wget fakeroot kernel-package zlib1g-dev libncurses5-dev

三、编译u-boot
git clone https://github.com/LeMaker/u-boot-bananapi.git
make CROSS_COMPILE=arm-linux-gnueabihf- Bananapi_config
make CROSS_COMPILE=arm-linux-gnueabihf-

上面的命令执行成功我们就可以得到u-boot-sunxi-with-spl.bin这个文件。这里我们没有用到u-boot更新。

四、编译内核
首先下载内核源代码。总共要下载超过3GB的文件,git服务器在美国,速度也不快,建议在晚上睡觉之前下载。
git clone https://github.com/LeMaker/linux-bananapi.git

使用sun7i_defconfig作为内核的默认配置文件
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- sun7i_defconfig

如果报错,缺少libncurses
则安装sudo apt-get install libncurses5-dev libncursesw5-dev
在这里配置内核的额外选项,比如将UVC模块编译进内核中
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig

开始编译内核,这一步时间比较长,跟电脑的配置有关。
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- uImage modules

编译模块,注意:模块文件在output文件夹中
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- INSTALL_MOD_PATH=output modules_install

在下面的文件夹中找到需要的uImage和模块
arch/arm/boot/uImage
output/lib/modules/3.4.XX/


将uImage拷贝到SD卡第一分区中,在Windows上就是那个50几MB的分区,linux中为/boot/bananapi目录中。启动后即可看到系统已经使用上了最新的内核了。


转载自:http://www.eeboard.com/bbs/thread-38770-1-1.html



0 0
原创粉丝点击