【教程】树莓派编译新版内核

  • FishXX
  • LV5工程师
  • |      2014-02-14 14:22:15
  • 浏览量 10105
  • 回复:6

今天中午又把内核编译了一遍,做了下记录,发出来给大家共享一下。


一、树莓派上的操作
#以下操作以管理员身份运行

sudo su

#升级到最新版内核保证与下载的内核源码版本一致。截止20140214是3.10.29+,也可以不执行此步,因为我们就是在编译新内核。
rpi-update

#升级完整后重启

reboot

#查看内核版本

uname -r

#把最新版本的内核配置保存到.config中,以备以后编译内核使用
zcat /proc/config.gz > .config

二、PC机或者虚拟机的Debian下操作
#获取内核源代码
mkdir rpi
cd rpi

#以下步骤时间很长,可以在睡觉前开三个putty窗口连接到电脑或者虚拟机进行下载。
git clone git://github.com/raspberrypi/firmware.git RpiFirmware
git clone git://github.com/raspberrypi/linux.git RpiLinux
git clone git://github.com/raspberrypi/tools.git RpiTools
#把PI上的内核配置传到本地 192.168.1.6为Rpi的IP地址

cd RpiLinux
scp pi@192.168.1.6:/home/pi/.config .config
#设定使用PI内核原有的配置进行编译
make ARCH=arm CROSS_COMPILE=../RpiTools/arm-bcm2708/arm-bcm2708hardfp-linux-gnueabi/bin/arm-bcm2708hardfp-linux-gnueabi- oldconfig
#或者设定使用自定义内核配置进行编译(可以在此过程中选上触摸屏驱动InputDevice touchscreen usbtouchscreen eGalax...)
#make ARCH=arm CROSS_COMPILE=../RpiTools/arm-bcm2708/arm-bcm2708hardfp-linux-gnueabi/bin/arm-bcm2708hardfp-linux-gnueabi- menuconfig
#开始正式编译内核,最后的数字改成比你的CPU核心数量+1以提交多线程编译效率。
make ARCH=arm CROSS_COMPILE=../RpiTools/arm-bcm2708/arm-bcm2708hardfp-linux-gnueabi/bin/arm-bcm2708hardfp-linux-gnueabi- -j5
#生成内核镜像文件
cd ../RpiTools/mkimage/
./imagetool-uncompressed.py ../../RpiLinux/arch/arm/boot/zImage
#编译modules
cd ../..
mkdir modules
cd RpiLinux/
make modules_install ARCH=arm CROSS_COMPILE=../RpiTools/arm-bcm2708/arm-bcm2708hardfp-linux-gnueabi/bin/arm-bcm2708hardfp-linux-gnueabi- INSTALL_MOD_PATH=../modules -j5
#此后如果有自己的驱动程序需要编译可以把驱动的Makefile中的KDIR修改指向RpiLinux,然后再运行一次和内核编译一模一样的命令即可。

三、新内核的安装
#在PC机上或者虚拟机中进行以下操作,首先需要挂载SD卡

mkdir /mnt
mkdir /mnt/sdb1
mkdir /mnt/sdb2
mount /dev/sdb1 /mnt/sdb1
mount /dev/sdb2 /mnt/sdb2
cp RpiTools/mkimage/kernel.img /mnt/sdb1/kernel_new.img
cd RpiFirameware/boot
cp bootcode.bin fixup.dat fixup_cd.dat start.elf /mnt/sdb1
cd ../hardfp/opt/
#复制例程代码
cp -r vc/ /media/sdb2/opt
#复制新编译完成的modules到SD卡
cp -r modules/lib /media/sdb2
umount /mnt/sdb1

umount /mnt/sdb2

好了,把SD卡拔出来挺到树莓派 体验新版内核吧。

  • 0
  • 收藏
  • 举报
  • 分享
我来回复

登录后可评论,请 登录注册

所有回答 数量:5
lyh_ickey 2015-10-03

 终于找到你!  非常感谢!

 

0   回复
举报
发布
FishXX 2014-02-20
不编译能用啊,主要是你想编译个自己的驱动,或者把内核没有开启的一些驱动之类的选项添加上才需要重新编译内核
0   回复
举报
发布
飞翔的猪 2014-02-20
不编译能用不?
0   回复
举报
发布
清凉一夏 2014-02-14
wo 也来凑个热闹
0   回复
举报
发布
Alax 2014-02-14
鱼总新作,顶了
0   回复
举报
发布
x
收藏成功!点击 我的收藏 查看收藏的全部帖子