RaspBerry Pi3 ~ 內核編譯

RaspBerryPi3-內核編譯html

  轉載註明出處:http://www.cnblogs.com/einstein-2014731/p/5985128.htmllinux

  在有道雲筆記的同步分享:http://note.youdao.com/share/?id=0867c9cbe7b0167881656e3a86a98e20&type=note#/git

  編譯更新RaspberryPi3的內核有兩種方式,第一種是在樹莓派上編譯新的內核,完成後重啓,優勢是簡單方便,缺點是速度慢。另外一種是在另外一臺電腦上使用交叉編譯的方法編譯內核,完成後拷貝到SD卡上。優勢是速度很快,可是操做起來相對麻煩些。這裏記錄下兩種方式。github

 

在樹莓派本地編譯內核ubuntu

這個方式主要就是copy官網上說的了。翻譯下bash

https://www.raspberrypi.org/documentation/linux/kernel/building.md工具

一、在全球最大男性同性交友網站GitHub上下載linux內核源碼。          網站

mkdir PiLinuxCore

cd PiLinuxCore/ui

git clone  https://github.com/raspberrypi/linuxspa

 二、安裝缺乏的依賴項。           

sudo apt-get install bc

三、內核配置。              

cd PiLinuxCore/KERNEL=kernel7

make bcm2709_defconfig

 四、編譯安裝內核模塊,              

make -j4 zImage modules dtbs 
 
      
sudo make modules_install
sudo cp arch/arm/boot/dts/*.dtb /boot/
sudo cp arch/arm/boot/dts/overlays/*.dtb* /boot/overlays/
sudo cp arch/arm/boot/dts/overlays/README /boot/overlays/
sudo$KERNEL     scripts/mkknlimg arch/arm/boot/zImage /boot/.img

耗時40分鐘到80分鐘之間。

五、重啓完成內核更新             

sudo reboot

 六、使用uname 查看下內核版本是否更新了

 

Ubuntu上交叉編譯內核

交叉編譯建議使用Ubuntu由於Raspbian是Debian的一種發行版本,有不少指令是相同的。由於樹莓派的內核代碼老是在更新,因此編譯方法儘可能按照官網的方法,如下就是最新的方法。

下載源碼和交叉編譯工具

一、內核源碼:https://github.com/raspberrypi/linuxc 

   直接打包下載zip文件

二、編譯工具:https://github.com/raspberrypi/tools

   直接打包下載

 下載完成後在ubuntu home目錄下的用戶文件夾中建個文件夾RaspberryPi

也能夠隨意定個位置。把下載完的兩個文件拷貝到這個文件夾內。以下:

分別解壓縮              

unzip     linux-rpi-4.4.y.zip   

unzip     tools-master.zip

 進入tools目錄,32位機器拷貝下面這個目錄 到指定位置。             

/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian

並把下面的路徑添加到home路徑下的.bashrc文件裏,就是所說的環境變量$PATH,添加環境變量有多種方法可自行上網查詢。               

/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin      

 64位系統的主機拷貝下面的路徑,其它步驟和32位的同樣             

/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin      

 開始編譯

下面的操做都是root權限,進入下載的linux內核解壓後的目錄,Pi1的配置方法:            

cd linux   

KERNEL=kernel

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-     bcmrpi_defconfig  

 Pi2\3的配置方法:      

cd linux   

KERNEL=kernel7

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-     bcm2709_defconfig      

而後進行編譯               

make ARCH=arm     CROSS_COMPILE=arm-linux-gnueabihf- zImage modules dtbs      

這個時候不出意外的話就開始編譯了 等待十幾分鐘左右吧 就差很少編譯完了。 

安裝到SD

插入SD卡以後 你會看到咔咔彈出三個對話框,然並卵。

而後輸入 lsblk 會獲得以下分區目錄(我是用NOOBS裝的):

 

這個sdb是SD卡,顯示7.4G的總容量;sda是虛擬機給ubuntu分的區50G

sdb6 是 FAT(boot)引導分區 相似啓動文件。

sdb7 是 ext4文件系統分區

 

若是你不是用的NOOBS裝的系統 那就是下面這種狀況:

sdb1 是 FAT(boot)引導分區 相似啓動文件。

sdb2 是 ext4文件系統分區

對於用NOOBS的SD卡:首先掛載SD卡。隨便一個位置建個mnt文件夾用來掛載磁盤。我建在linux目錄下,接下來按照下面的方法建文件夾。        

mkdir /mnt/fat32mkdir /mnt/ext4   

sudo mount /dev/sdb6 mnt/fat32

sudo mount /dev/sdb7 mnt/ext4   

由於是NOOBS裝的系統因此這裏掛載sdb六、sdb7。

接下來安裝模組到mnt/ext4:            

sudo make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- INSTALL_MOD_PATH=mnt/ext4 modules_install

最後複製內核文件到SD卡。這裏最好備份下以前的內核文件。       

   sudo cp mnt/fat32/$KERNEL.img mnt/fat32/$KERNEL-backup.img
//////$KERNEL.sudo scriptsmkknlimg archarmbootzImage mntfat32img
////*.//sudo cp archarmbootdtsdtb mntfat32
/////*.*///sudo cp archarmbootdtsoverlaysdtbmntfat32overlays
////////sudo cp archarmbootdtsoverlaysREADME mntfat32overlays
/sudo umount mntfat32
/sudo umount mntext4
kernel=kernel-myconfig.img

 把SD卡插到樹莓派而後重啓,uname -a查看下版本

 

沒有問題。

相關文章
相關標籤/搜索