本文介绍怎么获取linux内核代码,并完成编译、配置,内核替换。为何要进行蓝莓派的源码配置呢?
是为了驱动代码的编撰红旗linux6.0,驱动代码的编译须要一个提早编译好的内核,编译内核就必须配置,配置的最终目标会生成.config文件,该文件指导Makefile去把有用东西组织成内核
1.猕猴桃派源码的获取,交叉编译等工具
注意:
2.编译交叉工具的获取
参考博文:
3.内核源码的获取
源码:
具体使用的版本取决于猕猴桃派的版本,"uname-r"可查看猕猴桃派的版本,我这儿是4.14的所以我下载的是4.14的
4.更改配置文件配置config
第一种方法:(推荐使用)
ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- KERNEL=kernel7 make bcm2709_defconfig
指定ARM架构 指定编译器 树莓派内核 主要核心指令
第二种方法:
ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- KERNEL=kernel7 make menuconfig
#指定ARM架构 指定编译器 树莓派内核 主要核心指令
第三种形式:
5.编译
安装必要的库:
sudo apt-get install bc
sudo apt-get install libncurses5-dev libncursesw5-dev
sudo apt-get install zlib1g:i386
sudo apt-get install libc6-i386 lib32stdc++6 lib32gcc1 lib32ncurses5
开始编译
ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- KERNEL=kernel7 make -j4 zImage modules dtbs
我笔记本是编译了10多分钟,看自己笔记本的配置
./scripts/mkknlimg arch/arm/boot/zImage ./kernel_new.img
6.挂载猕猴桃派sd卡,并安装编译出的DIRECTLY到sd卡
输入命令"dmesg"瞧瞧SD卡是否挂在成功
到此,表示挂在成功
把sdb1和sdb2挂到我们的Ubuntu那边来
把猕猴桃派的sd卡插入ubuntu系统笔记本,猕猴桃派的sd卡有两个分区:
一个fat分区linux查看硬件信息,是boot相关的内容安装linux内核源代码,kernel的img文件就置于这个分区里;
一个是ext4分区,也就是系统的根目录分区。
sudo mount /dev/sdb1 data1
sudo mount /dev/sdb2 data2
此时data1和data2就有数据了(data1:(fat分区)放置内核镜像data2(ext4分区):储存储存根目录)
sudo ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- KERNEL=kernel7 make INSTALL_MOD_PATH=/home/qingmu/work/linux-rpi-4.14/data2 modules_install
INSTALL_MOD_PATH:这儿用的绝对路径防止出错
操作ext4(data2)分区,须要root权限。
cp kernel_new.img ../data1/kernel7.img
cp arch/arm/boot/dts/.*dtb* /home/chenlc/data1
cp arch/arm/boot/dts/overlays/.*dtb* /home/chenlc/data1/overlays/
cp arch/arm/boot/dts/overlays/README /home/chenlc/data1/overlays/
注意路径问题安装linux内核源代码,这儿是我的路径,要按照自己的路径来,不要出错
7.断掉SD开的联接把SD开的联接接到笔记本上
1.更改codline.txt文件
dwc_otg.lpm_enable=0 console=tty1 console=serial0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
**2.更改config.tex文件**
在文件的末尾加上(假如有这句,就不须要加)
dtoverlay=pi3-miniuart-bt
8.用并口联接猕猴桃派看是否成功
uname -r
和我们最开始的内核版本4.14.98-v7+不一致,和我们下载的内核版本一致,成功
希望可以帮助到男子伴们