配置自定义内核

官网编译内核

https://www.raspberrypi.org/documentation/linux/kernel/building.md#choosing_sources
编译环境

ubuntu 1404

安装编译软件

交叉编译工具
git clone --depth 1 https://github.com/raspberrypi/tools ~/tools

echo PATH=$PATH:~/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin >> ~/.bashrc source ~/.bashrc

安装一些必要的工具库:
sudo apt-get install git bison flex libssl-dev

安装配置内核menuconfig的辅助工具:

sudo apt-get install libncurses5-dev

下载树莓派linux内核,下载master分支,只下载最后一次commit

git clone --depth=1 -b master https://github.com/raspberrypi/linux.git

配置内核

默认配置, For Pi 2, Pi 3, Pi 3+, or Compute Module 3:
./arch/arm/configs/bcm2709_defconfig

cd linux

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcm2709_defconfig

ARCH=arm,架构是ARM架构,也就是armCPU

CROSS_COMPILE,指定交叉编译工具

bcm2709_defconfig,树莓派默认的内核编译配置

自定义配置
make ARCH=arm CROSS_COMPILE= arm-linux-gnueabihf- menuconfig

编译内核

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage modules dtbs

2018-10-09-raspbian-stretch-lite.img浅析

两个分区

boot,启动分区

linux,linux系统分区
挂载分区
创建挂载点

mkdir mnt
mkdir mnt/boot

mkdir mnt/linux
挂载boot

sudo mount -o loop,offset= ( ( 512 ∗ 8192 ) ) , s i z e l i m i t = ((512 * 8192)),sizelimit= ((5128192)),sizelimit=((512 * 524289)) 2019-07-10-raspbian-buster-lite.img mnt/boot

挂载linux
sudo mount -o loop,offset=$((540672* 512)) 2019-07-10-raspbian-buster-lite.img mnt/linux

安装内核模块到mnt/linux
修改root密码,如果不知道的话

sudo passwd root
su root

vim ~/.bashrc
export PATH=$PATH:/home/v/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin

source ~/.bashrc
arm-linux-gnueabihf-gcc,测试是否生效

这个命令需要再内核目录下执行

cd linux

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- INSTALL_MOD_PATH=/home/v/work/raspbian/mnt/linux modules_install

exit,退出root用户

安装内核到mnt/boot
KERNEL=kernel7

定义一个局部变量,KERNEL的值为kernel7
sudo cp /home/v/work/raspbian/mnt/boot/ K E R N E L . i m g / h o m e / v / w o r k / r a s p b i a n / m n t / b o o t / KERNEL.img /home/v/work/raspbian/mnt/boot/ KERNEL.img/home/v/work/raspbian/mnt/boot/KERNEL-backup.img

备份旧内核

sudo cp arch/arm/boot/zImage /home/v/work/raspbian/mnt/boot/$KERNEL.img

拷贝zImage

sudo cp arch/arm/boot/dts/*.dtb /home/v/work/raspbian/mnt/boot/

sudo cp arch/arm/boot/dts/overlays/.dtb /home/v/work/raspbian/mnt/boot/overlays/ sudo cp arch/arm/boot/dts/overlays/README /home/v/work/raspbian/mnt/boot/overlays/

卸载分区

sudo umount /home/v/work/raspbian/mnt/boot

sudo umount /home/v/work/raspbian/mnt/linux

mv 2019-07-10-raspbian-buster-lite.img k2-2019-07-10-raspbian-buster-lite.img

重命名已经替换好内核的镜像文件

烧写镜像
格式化SD卡

SD卡写入img

开机启动

2019-07-10-raspbian-buster-lite.img
pi@raspberrypi:~$ uname -a
Linux raspberrypi 4.19.57-v7+ #1244 SMP Thu Jul 4 18:45:25 BST 2019 armv7l GNU/Linux

升级后的内核,这里是降低内核版本
pi@raspberrypi:~$ uname -a
Linux raspberrypi 4.8.16-v7+ #1 SMP Sun Aug 18 08:57:11 CST 2019 armv7l GNU/Linux

ubuntu 1804显示的跟ubuntu1404显示的不一样,
fdisk -v
fdisk from util-linux 2.31.1

ubuntu1404显示的内容,没有显示扇区大小
fdisk (util-linux 2.20.1)

Diskraspbian-jessie-lite.img:1.3GiB,1390411776 bytes,2715648 sectors

Units: sectors of 1*512=512 bytes

Sectorsize(logical/physical):512 bytes /512 bytes

I/O size(minimum/optimal):512 bytes /512 bytes

Disklabel type: dos

Disk identifier:0x244b8248

Device Boot Start End Blocks Id System
raspbian-jessie-lite.img1 8192 137215 129024 63M c W95 FAT32 (LBA)
raspbian-jessie-lite.img2 137216 2715647 2578432 1.2G 83 Linux

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值