树莓派内核升级的三种方式

原创 2017年10月22日 22:00:25

一、前言

树莓派使用的镜像比较旧了,可以通过三种方式进行升级。一种是本地下载编译升级,即Local build,还有一种采用交叉编译,第三种最简单,输入一条命令就可以升级。
下面主要讲第一种方式。

二、升级过程

  • 1、目前的内核版本,使用 uname -a 查看
    这里写图片描述
  • 2、使用 sudo apt-get install git bc 安装必备软件
  • 3、使用 git clone --depth=1 https://github.com/raspberrypi/linux 下载最新内核
  • 4、使用如下命令进行编译前配置
cd linux
KERNEL=kernel7
make bcm2709_defconfig

这里写图片描述

  • 5、make,共有三个东西需要make,这个过程会花费很少时间,同时为了避免出错,可以分别make.
make -j4 zImage
make -j4 modules
make -j4 dtbs

这里写图片描述
- 6、执行 sudo make modules_install 进行安装
- 7、依次使用如下命令拷贝

sudo cp arch/arm/boot/dts/*.dtb /boot/
sudo cp arch/arm/boot/dts/overlays/*.dtb* /boot/overlays/
sudo cp arch/arm/boot/dts/overlays/README /boot/overlays/
sudo cp arch/arm/boot/zImage /boot/$KERNEL.img

这里写图片描述

  • 8、执行完上述步骤,不出错的话,重启后,内核应该就升级成功了。

三、升级情况

make的过程非常旧,如果不加参数 -j4 的话,编译需要好几个小时,加上参数使用 4核同时编译,编译速度明显加快。时间如下:

make -j4 zImage      34min
make -j4 modules     66min 
make -j4 dtbs        <1min  

除去两个编译过程特别耗时外,其他的指令都很快完成。

四、错误及解决方法

可能出现的错误

如上执行完了所有步骤,并没有那一步出现错误。执行完步骤后查看版本号是没有变化的,重启后就无法网卡灯不闪烁,路由器看不到树莓派连接,SSH自然登陆不上。没有显示器,因此看不出系统是否启动,感觉应该是没有。

目前不知道是什么原因导致的。升级完成后,/boot目录下多了几个.dts文件,删除后试了不行。最新版的树莓派官方系统默认不开启SSH,需要在/boot目录下手动添加一个名为ssh的空白文件,添加了也不行。

拷贝升级前的/boot文件夹内容进行替换后,可以连上树莓派,查看版本号并没有更新。

解决方法

出现上面这个情况的原因是树莓派无法boot,bootbin和升级后的内核并不兼容,也就是说原有的旧的bootbin不能boot新的内核。

可以使用新版本的固件文件替换。代码在树莓派github仓库的firmware项目下。具体的替换有三个,如下:

bootcode.bin
fixup.dat
start.elf

将新版本的这三个文件拷贝到/boot目录下替换掉原有的文件,便可以启动了。

五、第二种方式

第二种方式是使用的交叉编译,宿主机是搭建在VM虚拟机里的一个ubuntu。具体的步骤可以看官网的文档,交叉编译的工具在树莓派github仓库tools项目中。

编译的原理都差不多,也可以使用menuconfig来自定义编译的内核。由于虚拟机的ubuntu也仅仅只分配了一个CPU核,实际的编译效果和树莓派四核编译时间虽有减少,但也不是很多。

编译完成之后见内存卡插入电脑,挂载进ubuntu里,拷贝新编译好的内核和模块进去,便可。若出现不开机的情况,和上面提到的错误类型是一致的。也就是固件和内核不兼容,比如说我这里使用内核4.1,升级到最新的内核4.9之后就出现这个问题,同时升级固件就不会。

六、第三种方式

使用命令升级,最简单也不会出错。

sudo apt-get install --reinstall raspberrypi-bootloader raspberrypi-kernel
版权声明:本文为博主原创文章,未经博主允许不得转载。欢迎访问个人主页 http://cyang.tech https://blog.csdn.net/u011303443/article/details/78313790

树莓派系统、硬件更新

update sudo apt-get upgrade sudo apt-get dist-upgrade sudo rpi-update
  • tiankongtiankong01
  • tiankongtiankong01
  • 2016-12-25 15:18:59
  • 5903

树莓派开发系列教程8——树莓派内核编译与固件升级

前面我们已经
  • xdw1985829
  • xdw1985829
  • 2014-09-05 11:50:52
  • 49100

树莓派Raspbian更新全新UI界面PIXEL(升级方法)

近日树莓派官方发布了全新的桌面系统PIXEL,比原来的桌面环境更加漂亮,来几张图片! 开机画面: 菜单栏: 更新方法: sudo apt-get u...
  • huayucong
  • huayucong
  • 2016-10-29 21:00:36
  • 3902

树莓派3b——linux内核更新

闲来无事,试水写个博客,各位大神看看就好 也希望能帮助到别人呗
  • qq_35297619
  • qq_35297619
  • 2017-07-19 19:38:27
  • 909

CAS之5.2x版本自定义密码验证-yellowcong

上一篇讲解了,如何通过进行Cas的默认的密码加密验证,这一篇,讲解如何通过手动加密,做一个自己的加密策略,基本思路上是,实现org.springframework.security.crypto.pa...
  • yelllowcong
  • yelllowcong
  • 2017-12-15 14:35:41
  • 1322

树莓派下载更新慢?如何切换国内源

第一步   【备份】 进入sources.list 存放位置 cd /etc/apt 备份sources.list  sudo cp sources.list sources_ba...
  • ljzdyh
  • ljzdyh
  • 2016-04-06 11:11:00
  • 2989

树莓派更新镜像源于镜像源推荐

在玩树莓派的过程中,我们可能经常会碰到某些包下载老是出问题。更新系统本身的模块更是慢的出奇。 小编也曾经多次卡在镜像更新上面。如果你也遇到过同样的问题,或者有接下来入手树莓派的打算,那么这边文章可以...
  • duancheng509
  • duancheng509
  • 2016-09-20 11:38:53
  • 8767

树莓派官方7寸屏入门指南

  • 2017年11月08日 16:06
  • 2.21MB
  • 下载

浅谈纯远程配置树莓派(二)

浅谈纯远程配置树莓派(二)——简单配置、通过SSH访问及配置向导介绍前情提要:上篇(链接:http://blog.csdn.net/octsjimmy/article/details/70045572...
  • OCTSJimmy
  • OCTSJimmy
  • 2017-04-12 01:35:35
  • 1009

树莓派更改更新源

树莓派默认的源 /etc/apt/sources.list deb http://mirrordirector.raspbian.org/raspbian/ wheezy main contrib...
  • hailangnet
  • hailangnet
  • 2015-08-20 17:48:24
  • 2194
收藏助手
不良信息举报
您举报文章:树莓派内核升级的三种方式
举报原因:
原因补充:

(最多只允许输入30个字)