Raspberry Pi 3 --- Kernel Building and Run in A New Version Kernal
ABSTRACT
There are two main methods for building the kernel. You can build locally on a Raspberry Pi which will take a long time; or you can cross-compile, which is much quicker.There is an introduction about cross-compilation as follows.
You need ubuntu as your development environment.So you can install VMWare on Windows and install ubuntu on VMWare.
This link is the introduction from the official website : https://www.raspberrypi.org/documentation/linux/kernel/building.md
CROSS COMPILING:
Download the cross compiling tools.
$ mkdir raspberry //make a folder for use
$ cd ./raspberry
$ git clone https://github.com/raspberrypi/tools // make a folder named "tools" in the "raspberry"
Add the following directory "/home/god/Desktop/raspberry/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin" to your $PATH in the .bashrc as a environment variable.For the 32-bit host systems,the directory is "/home/god/Desktop/raspberry/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin".If you put the path to your account rather than "root",you had better execute the following in your account.Otherwise you will be reminded that command not found.
$ sudo apt-get install gcc-arm-linux-gnueabihf //if execute it, you can use this gcc-linaro-arm-linux-gnueabihf version,not the version downloaded from "https://github.com/raspberrypi/tools".
GET SOURCE:
Enter the folder named "raspberry" ,then download the source:
$ git clone --depth=1 https://github.com/raspberrypi/linux //make a folder named "linux" in the "raspberry"
The paramenter "--depth=1" means only downloading the lastest version
BUILD SOURCE:
$ cd ./linux
$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcm2709_defconfig //bcm2709_defconfig作为一个输入参数给makefile,然后通过标准路径“arch/arm/configs/”得到bcm2709_defconfig这个文件,进而把一些参数复制给.config文件,
$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage modules dtbs //generate zImage,modules and dtbs
To speed up compilation on multiprocessor systems, and get some improvement on single processor ones, use -j n
where n is number of processors * 1.5. Alternatively, feel free to experiment and see what works!
INSTALL ON THE SD CARD:
Having built the kernel you need to copy it onto your raspberry pi and install modules.This is the best done directly using an sd card reader.
Use lsblk before and after plugging in your sd card to identify which one is.
$ lsblk
$ mkdir /mnt/fat32
$ mkdir /mnt/ext4
$ mount /dev/sdc1 /mnt/fat32 //for example sdc1 is the FAT(boot) partition
$ mount /dev/sdc2 /mnt/ext4 //for example sdc2 is the ext3 filesystem(root) partition
execute the orders before enter the folder of "linux"
$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- INSTALL_MOD_PATH=/mnt/ext4 modules_install //install the modules into the "lib/modules/XXXX" folder
Finally, copy the kernel and Device Tree blobs onto the SD card, making sure to back up your old kernel:
$ KERNEL=kernel7 //for Pi2 or 3, the kernel file is "kernel7.img" but for Pi 1,the kernel file is "kernel.img".So use "$KERNEL" to replace "kernel7"
$ cp /mnt/fat32/$KERNEL.img /mnt/fat32/$KERNEL-backup.img
$ scripts/mkknlimg arch/arm/boot/zImage /mnt/fat32/$KERNEL.img //zImage is a Compressed kernel image,need transfer to .img
$ cp arch/arm/boot/dts/*.dtb /mnt/fat32/
$ cp arch/arm/boot/dts/overlays/*.dtb* /mnt/fat32/overlays/
$ cp arch/arm/boot/dts/overlays/README /mnt/fat32/overlays/
$ umount /mnt/fat32
$ umount /mnt/ext4
FINALLY
plug the SD card into Pi and boot it.
Raspberry Pi 3 --- Kernel Building and Run in A New Version Kernal的更多相关文章
- How to emulate a Raspberry Pi on your PC
How to emulate a Raspberry Pi on your PC I am very interested in trying simulators and emulators for ...
- .NET Core on Raspberry Pi
原文地址:传送门 .NET Core on Raspberry Pi Arm32 builds are available as community supported builds for .NET ...
- Raspberry Pi Kernel Compilation 内核编译官方文档
elinux.org/Raspberry_Pi_Kernel_Compilation#Use_the_provided_compiler Software & Distributions: S ...
- Compiling a kernel module for the raspberry pi 2 via Ubuntu host
Compiling a kernel module for the raspberry pi 2 via Ubuntu host Normally compiling a kernel module ...
- 在ubuntu上编译rasbian kernel(for raspberry pi 1)
raspberry pi官网的编译手册写的简洁有力,照着操作即可 https://www.raspberrypi.org/documentation/linux/kernel/building.md ...
- RASPBERRY PI 外设学习资源
参考: http://www.siongboon.com/projects/2013-07-08_raspberry_pi/index.html Raspberry Pi Get st ...
- Raspberry Pi I2C驱动 (Python)
本文参考 http://www.instructables.com/id/Raspberry-Pi-I2C-Python/all/?lang=zh 作者 AntMan232 In this instr ...
- Cross-compiling Qt Embedded 5.5 for Raspberry Pi 2
This tutorial shows how to cross-compile the Embedded build of Qt 5.5 for Raspberry Pi 2. The Embedd ...
- Arduino VS. Raspberry Pi VS. Beaglebone Black
The Arduino is a small Atmel-based microcontroller development board easily integrated into many dif ...
随机推荐
- IIS W3SVC 无法启动1068错误的解决
苦苦寻找解决方法多天之后,终于看到了最简单的处理方法. 故障: 试遍网上各种方法,司马当活马,CMD下输入如下命令,然后重启: fsutil resource setautoreset true C: ...
- 创建多个Oracle数据库及相应的实例
转 http://blog.csdn.net/luiseradl/article/details/6972217 对于使用过SQL Server数据库的用户可以会对Oracle中的数据库的实例的概念理 ...
- jQuery jsonp无法捕获404、500状态错误
转载:http://www.cnblogs.com/pao8041/p/4750403.html 不过上面的这个我用的不好,下次有机会用
- Codeforces Round #370(div 2)
A B C :=w= D:两个人得分互不影响很关键 一种是f[i][j]表示前i轮,分差为j的方案数 明显有f[i][j]=f[i-1][j-2k]+2*f[i-1][j-2k+1]+...+(2k+ ...
- SpringMVC学习--springmvc原理
简介 springmvc是spring框架的一个模块,springmvc和spring无需通过中间整合层进行整合.springmvc是一个基于mvc的web框架. spring的结构图: mvc在b/ ...
- nginx安装配置+清缓存模块安装
经过一段时间的使用,发现nginx在并发与负载能力方面确实优于apache,现在已经将大部分站点从apache转到了nginx了.以下是nginx的一些简单的安装配置. 环境 操作系统:CentOS. ...
- react.js CMS 删除功能的实现
页面效果图: 数据操作分析: 在查询表组件的 TableData.js 中操作如下内容: 给每一行绑定一个checkbox,且在点击这个 checkbox 时,触发 action 中的一个方法(fo ...
- angular指令大全
这篇文章的案例都是来自官方,引用的cdn来自bootcss, 因为angular的官方网站被屏了, 所以要翻, 不过我把整个文档下回来了,方便大家下载可以点击: 打开下载英文版 angular的指令 ...
- JS中的事件类型和事件属性的基础知识
周末无聊, 这几天又复习了下JS搞基程序设计3, 想着好记性不如浪笔头哇, 要么把这些东西写下来, 这样基础才能更加扎实么么哒, 知道的同学也可以直接过一下,当做复习, 小姨子再也不用担心我的学习啦 ...
- JS 初学正则表达式
正则表达式 匹配中文,英文字母和数字及_的写法!同时控制长度 匹配中文:[\u4e00-\u9fa5] 英文字母:[a-zA-Z] 数字:[0-9] 匹配中文,英文字母和数字及_: ^[\u4e00- ...