内容简介:升级前系统版本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
以上所述就是小编给大家介绍的《树莓派之内核升级—源码编译》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
An Introduction to Genetic Algorithms
Melanie Mitchell / MIT Press / 1998-2-6 / USD 45.00
Genetic algorithms have been used in science and engineering as adaptive algorithms for solving practical problems and as computational models of natural evolutionary systems. This brief, accessible i......一起来看看 《An Introduction to Genetic Algorithms》 这本书的介绍吧!