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 ...
随机推荐
- Android实现滑动刻度尺效果,选择身高体重和生日
刻度尺效果虽然看起来很美,我个人认为很不实用,即使再不实用,也有用的,鉴于群里成员对我的苦苦哀求,我就分享一个他用不到的,横屏滑动刻度尺,因为他需要竖屏的,哈哈…… 最近群里的开发人员咨询怎样实现刻度 ...
- bloom filter
Bloom filter 是由 Howard Bloom 在 1970 年提出的二进制向量数据结构,它具有很好的空间和时间效率,被用来检测一个元素是不是集合中的一个成员. 结 构 二进制 召回率 ...
- linux 常用命令总结
PS命令: 1.命令格式: ps[参数] 2.命令功能: 用来显示当前进程的状态 3.命令参数: a 显示所有进程 -a 显示同一终端下的所有程序 -A 显示所有进程 c 显示进程的真实名称 -N ...
- A query was run and no Result Maps were found for the Mapped Statement 'user.insertUser!selectKey'. It's likely that neither a Result Type nor a Result Map was specified.
使用mybatis时出现异常问题: 有如下的错误 Error querying database. Cause: org.apache.ibatis.executor.ExecutorExceptio ...
- [转]Hibernate查询对象所有字段,单个字段 ,几个字段取值的问题
原文地址:http://www.ablanxue.com/prone_3552_1.html 1. 查询整个映射对象所有字段 Java代码 //直接from查询出来的是一个映射对象,即:查询整个映射对 ...
- open-flash-chart2
链接 http://www.oschina.net/news/10797/Open-Flash-Chart-2-0 open-flash-chart.rar http://123-reg-suspen ...
- Mybatis 操作数据库的主键自增长
本篇文章将研究mybatis 实现oracle主键自增的机制 首先我们看对于同一张student表,对于mysql,sql server,oracle中它们都是怎样创建主键的 在mysql中 crea ...
- js-比较两个日期的大小
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head ...
- jquery-焦点定位追加内容
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Android NDK开发
Android NDK 开发教程(极客学院) 一.Android NDK环境搭建 使用最新ndk,直接抛弃cygwin,以前做Android的项目要用到NDK就必须要下载NDK,下载安装Cygwin( ...