在ubuntu V16.04 中 编译树莓派2 linu内核
来源:互联网 发布:卫星影像下载软件 编辑:程序博客网 时间:2024/05/21 20:25
编译树莓派内核的目标主要是实现定制内核。也可以学习linux驱动开发。
树莓派的内核编译可以在树莓派上编译也可以在虚拟机上编译,
树莓派上编译时,一定要注意树莓派发热问题,非常严重,必须要加散热风扇。
内核编译主要参考官方文档:https://www.raspberrypi.org/documentation/linux/kernel/building.md
先检查更新
#sudo apt-get update
#sudo apt-get upgrade
如果上面两条命令运行失败,则需要检查网络设置
安装git
#sudo apt-get install git -y
配置git 并把生成的rsa公钥加入github 的账号中(只有这样才能clone )
开始克隆内核源码及编译器
#cd ~
#sudo git clone git@github.com:raspberrypi/linux.git
#sudo git clone git@github.com:raspberrypi/tools.git
通过上面的3个命令就可以在用户目录下克隆内核源码及编辑器,这里最好是开2个终端克隆
下面开始配置环境变量
#cd ~
#sudo vim .bashrc //
在.bashrc 最下面 加入编译器路径
export PATH=$PATH:/home/langang/tools/arm-bcm2708/arm-rpi-4.9.3-linux-gnueabihf/bin
更新环境变量
#source .bashrc
下面开始手动配置Make 文件
#cd ~/linux //进入内核源码目录
#sudo cp Makefile Makefile.bak //备份
#sudo vim Makefile +255 //打开Make文件 并跳转到第255行
把ARCH 和 CROSS_COMPILE 改为如下图所示
指定编译器完整路径
开始编译内核
#cd ~/linux
#KERNEL=kernel7
#sudo make bcm2709_defconfig //配置.config文件
#sudo make zImage modules dtbs -j6 //开始编译 时间非常长 -j6是CPU的线程数*1.5 提高编译速度
注意!参数 ARCH 和 CROSS_COMPILE 我们已经手动修改Makefile文件,所以不需要配置
如果没有错误,编译完成,那么开始更新树莓派内核
下面开始给树莓派安装新的内核
取出插在树莓派开发板上面的TF(TF内已经有之前的系统),通过读卡器插入PC。
查看TF卡分配的盘符,
#lsblk //查看
执行后效果如下
其中 sdb1为boot ,sdb2为文件系统空间
现在把这两个盘符挂载在虚拟机的文件系统中
#cd ~/linux
#sudo mkdir mnt //在内核源码中新建文件夹
#sudo mkdir mnt/fat32 mnt/ext4 //在mnt文件夹中建立fat32和ext4文件夹
#sudo mount /dev/sdb1 mnt/fat32 //挂载
#sudo mount /dev/sdb2 mnt/ext4 //挂载
接下来安装模块
#cd ~/linux
#sudo make INSTALL_MOD_PATH=mnt/ext4 modules_install//指定安装路径 开始安装
接下来的操作就是拷贝内核,和一些文件(可能是动态链接库)
#sudo cp mnt/fat32/$KERNEL.img mnt/fat32/$KERNEL-backup.img //备份之前的内核镜像
#sudo cp arch/arm/boot/zImage mnt/fat32/$KERNEL.img //拷贝新的内核镜像
#sudo cp arch/arm/boot/dts/*.dtb mnt/fat32/
#sudo cp arch/arm/boot/dts/overlays/*.dtb* mnt/fat32/overlays/
#sudo cp arch/arm/boot/dts/overlays/README mnt/fat32/overlays/
#sudo umount mnt/fat32 //取消挂载
#sudo umount mnt/ext4 //取消挂载
现在新的内核已经安装在这个TF卡中了,重新把TF插入树莓派即可运行新的内核。
阅读全文
0 0
- 在ubuntu V16.04 中 编译树莓派2 linu内核
- linu内核编译错误
- 在ubuntu中编译内核源码
- 在ubuntu中编译内核是用make …
- 在阿里云中编译Linux4.5.0内核 - Ubuntu内核编译教程
- 在阿里云中编译Linux4.5.0内核 - Ubuntu内核编译教程
- Linu嵌入式开发建立交叉编译环境(2.4内核)
- [转]如何在ubuntu下编译内核
- 如何在Ubuntu编译Linux内核
- 在Ubuntu下编译Linux内核
- 如何在ubuntu下重新编译内核
- VMware中Ubuntu编译和升级内核
- VMWare Workstation 安装在ubuntu 14.04(15.04) 内核(3.19) 中更新编译失败的解决方法
- linu型 内核中arm中断流程详细分析
- ubuntu 12.04.2内核编译f方法
- Ubuntu下编译内核
- UBUNTU 7.04 编译内核
- ubuntu下内核编译
- 股票量化分析(11)——第二个策略(5日移动均线、双均线、MACD策略)
- 移动端1px边框的实现
- 如何 在Spring MVC中 使用多个Spring和MyBatis的xml配置文件(多模块配置)
- 仟滋佰味商城
- MySQL概述
- 在ubuntu V16.04 中 编译树莓派2 linu内核
- 用开源软件将shp文件导入MySQL,并通过geoserver发布地图服务
- KMP算法中next数组和nextval数组值的推导
- Unity_通讯案例_Udp
- 跨域解决方案大全
- unity质量设置
- 【Oracle】基本操作(一)
- 15_集合框架
- Anroid camera + mediacodec