源碼編譯是玩轉樹莓派的終極修煉,下面咱們開始闖關。
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獲得咱們須要的模塊文件
將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下