树莓派之内核升级—源码编译

栏目: 软件资讯 · 发布时间: 5年前

内容简介:升级前系统版本Linux raspberrypi 4.14.79-v7+ #1159 SMP Sun Nov 4 17:50:20 GMT 2018 arm71 GNU/Linux

升级前系统版本

root@raspberrypi :~# uname -a

Linux raspberrypi 4.14.79-v7+ #1159 SMP Sun Nov 4 17:50:20 GMT 2018 arm71 GNU/Linux

1、下载内核源码

官网地址: https://github.com/raspberrypi

Linux内 核 源码:linux-rpi-4.14.y.zip

tools交叉编译器:编译内核和其他源码所需的工具

2、配置交叉编译环境

设置环境变量,下载的tools解压到当前系统根目录下。

32位系统将如下路径加入环境变量:

/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian

/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin

64位系统将如下路径加入环境变量:

/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64

/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin

例如:

root@raspberrypi :~# vi /etc/profile

加入环境变量:export PATH=$PATH:/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian:/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin

刷新环境变量使其生效:

root@raspberrypi :~# source /etc/profile

3、编译、提取内核及其模块

root@raspberrypi:/home # unzip linux-rpi-4.4.y.zip

root@raspberrypi:/home # cd linux-rpi-4.4.y

可以直接修改内核根目录下的Makefile文件,修改下面的两行:

ARCH ?= $(SUBARCH)

CROSS_COMPILE ?= $(CONFIG_CROSS_COMPILE:"%"=%)

或者直接使用make指令设置这两个参数,make ARCH=arm CROSS_COMPILE=arm-linux-......

执行find ./ -name "*bcm*defconfig*"查找对应的默认配置,只保留arm下的结果

root@raspberrypi:/home/linux-rpi-4.14.y # find ./ -name "*bcm*defconfig*"

./arch/arm/configs/bcm2835_defconfig

./arch/arm/configs/bcmrpi_defconfig

./arch/arm/configs/bcm2709_defconfig

./arch/arm/configs/bcm_defconfig

Pi 1使用bcmrpi_defconfig

Pi 2/3使用bcm2709_defconfig

4、内核编译

root@raspberrypi:/home/linux-rpi-4.4.y # KERNEL=kernel7

root@raspberrypi:/home/linux-rpi-4.4.y # make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcm2709_defconfig

配置内核模块,窗口顶部显示arm,说明参数设置成功

root@raspberrypi:/home/linux-rpi-4.4.y # make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig

编译内核镜像,如果是多处理器系统可以添加选项参数-jn, n为数字,表示多处理器的数量*1.5。可以加快编译速度

root@raspberrypi:/home/linux-rpi-4.4.y # make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage modules dtbs

root@raspberrypi:/home/linux-rpi-4.4.y # make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j4 zImage modules dtbs

5、升级内核及文件系统

将树莓派的SD卡插在 Linux 系统电脑上,查看分区

root@raspberrypi:/home/linux-rpi-4.4.y # lsblk

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT

sda 8:0 1 29.7G 0 disk

|__sda1 8:1 1 43.9M 0 part /media/root/boot

|__sda2 8:2 1 29.7G 0 part /media/root/rootfs

mmcblk0 179:0 0 14.4G 0 disk

|__mmcblk0p1 179:1 0 43.9M 0 part /boot

|__mmcblk0p2 179:2 0 14.1G 0 part /

sda1是FAT(boot)分区

sda2是ext4文件系统(root)分区

挂在SD卡分区

root@raspberrypi:/home/linux-rpi-4.4.y # mkdir /mnt/fat32

root@raspberrypi:/home/linux-rpi-4.4.y # mkdir /mnt/ext4

root@raspberrypi:/home/linux-rpi-4.4.y # sudo mount /dev/sda1 /mnt/fat32

root@raspberrypi:/home/linux-rpi-4.4.y # sudo mount /dev/sda2 /mnt/ext4

安装modules

root@raspberrypi:/home/linux-rpi-4.4.y # sudo make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- INSTALL_MOD_PATH=/mnt/ext4 modules_install

如果把INSTALL_MOD_PATH设置为本地目录可以提取出对应的modules,最后把kernel and Device Tree blobs复制到SD卡:

备份原先的img文件

root@raspberrypi:/home/linux-rpi-4.4.y # sudo cp /mnt/fat32/$KERNEL.img /mnt/fat32/$KERNEL-backup.img

将zImage格式转换成树莓派需要的img格式,并复制到SD卡

root@raspberrypi:/home/linux-rpi-4.4.y # sudo scripts/mkknling arch/arm/boot/zImage /mnt/fat32/$KERNEL.img

root@raspberrypi:/home/linux-rpi-4.4.y # sudo cp arch/arm/boot/dts/*.dtb /mnt/fat32/

root@raspberrypi:/home/linux-rpi-4.4.y # sudo cp arch/arm/boot/dts/overlays/*.dtb* /mnt/fat32/overlays/

root@raspberrypi:/home/linux-rpi-4.4.y # sudo cp arch/arm/boot/dts/overlays/README /mnt/fat32/overlays/

卸载SD卡分区

root@raspberrypi:/home/linux-rpi-4.4.y # sudo umount /mnt/fat32

root@raspberrypi:/home/linux-rpi-4.4.y # sudo umount /mnt/ext4

*** 升级内核的另一个方法是将img文件复制到相同目录下,使用不同的文件名,如kernel-myconfig.img,然后修改boot目录下的config.txt文件,

加入:kernel=kernel-myconfig.img,最后将SD卡插入树莓派启动系统。

升级后的系统版本

root@raspberrypi :~# uname -a

Linux raspberrypi 4.14.89-v7+ #1159 SMP Sun Nov 4 17:50:20 GMT 2018 arm71 GNU/Linux


以上所述就是小编给大家介绍的《树莓派之内核升级—源码编译》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

C陷阱与缺陷

C陷阱与缺陷

凯尼格 / 高巍 / 人民邮电出版社 / 2008-2-1 / 30.00元

作者以自己1985年在Bell实验室时发表的一篇论文为基础,结合自己的工作经验扩展成为这本对C程序员具有珍贵价值的经典著作。写作本书的出发点不是要批判C语言,而是要帮助C程序员绕过编程过程中的陷阱和障碍。.. 全书分为8章,分别从词法分析、语法语义、连接、库函数、预处理器、可移植性缺陷等几个方面分析了C编程中可能遇到的问题。最后,作者用一章的篇幅给出了若干具有实用价值的建议。.. 本书......一起来看看 《C陷阱与缺陷》 这本书的介绍吧!

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具