玩转树莓派-RaspBerry,操做系统的源码编译

源码编译是玩转树莓派的终极修炼,下面咱们开始闯关。
linux

一、获取升级所需源码

1)下载地址:
官方网址:
上面列出了树莓派全部的开源软件:
git

firmware:树莓派的交叉编译好的二进制内核、模块、库、bootloader
linux:内核源码
tools:编译内核和其余源码所需的工具——交叉编译器等

咱们只须要以上三个文件便可,下面的工程能够了解一下
github

documentation:树莓派离线帮助文档,教你如何使用、部署树莓派(树莓派官方使用教程)
userland:arm端用户空间的一些应用库的源码——vc视频硬浮点、EGL、mmal、openVG等
hats:Hardware Attached on Top,树莓派 B+型板子的扩展板资料
maynard:一个gtk写成的桌面环境
scratch:一个简易、可视化编程环境
noobs:一个树莓派镜像管理工具,他可让你在一个树莓派上部署多个镜像
weston:一个应用程序
target_fs:树莓派最小文件系统,使用busybox制做
quake3:雷神之锤3有线开发源码firmwareb

2)下载方法:
a、网页直接下载:
点到所须要下载的工程,左上角选版本,右方有一个download ZIP按钮可直接下载(笔者下载完成后,在linux中解压提示出错,windows又很是慢切内核建议不要在windows环境解压,因此笔者不建议使用这种办法)
b、使用git下载
shell

$ mkdir raspeberrypi_src
$ cd raspberrypi_src
$ git clone git://github.com/raspberrypi/firmware.git
$ git clone git://github.com/raspberrypi/linux.git
$ git clone git://github.com/raspberrypi/tools.git

会获得三个文件夹:firmware、linux、tools。
编程

二、编译、提取内核及其模块

1)得到内核配置文件
在运行的树莓派中运行:
windows

$ls /proc/

可看到一个叫config.gz的文件,他是当前的树莓派配置选项记录文件,咱们将他拷出,放入咱们的内核源码目录树下

工具

$cp /proc/config /home/pi

咱们这里使用前面交过的samba拷出并拷入内核源码目录下,不熟悉的人可参考前面文章

在linux内核源码下执行:
spa

$zcat config.gz > .config

2)配置、编译内核
a、修改内核源码makefile ARCH类型和编译器路径
code

$vi Makefile +195

找到以上相似代码,改成如图所示

b、查看、修改配置选项
视频

$make menuconfig

可出现如下界面

若是不作修改,直接选中exit便可(注意使用键盘操做)

c、编译内核镜像

$make

在arch/arm/boot目录下能够看到一个叫zImage的文件,就是咱们新的内核

可是树莓派须要另一种格式的镜像,须要进行处理一下,执行如下命令

$cd tools/mkimage
$./imagetool-uncompressed.py ../../linux/arch/arm/boot/zImage

便可在当前文件夹下看到一个叫:kernel.img的文件,就是咱们须要的新内核了

d、提取modules
上一步其实不但编译出来了内核的源码,一些模块文件也编译出来了,这里咱们提取一下

$cd raspberrypi_src
$mkdir modules
$cd linux
$ make modules_install INSTALL_MOD_PATH=../modules

便可在modules获得咱们须要的模块文件

二、升级RPi的kernel、Firmware、lib

将SD卡拔下插在电脑上(可以使用读卡器)1)升级内核将新编好的内核拷入SD卡,更名为:kernel_new.img打开boot目录下找到config.txt文件,加入:kernel=kernel_new.img这一行2)升级boot将firmware/boot/目录下 如下文件拷入SD卡boot目录:fbootcode.bin fixup.dat fixup_cd.dat start.elf3)更新vc库及内核modules将第3步d步中编译出来的modules/lib/modules拷入树莓派文件系统/lib下

相关文章
相关标签/搜索