樹莓派/RaspberryPi 內核編譯

目標:修改Linux的內核源碼,讓其識別並加載相關的USB Serial的驅動(也可用於升級內核)

環境:樹莓派3B+(搭載)

原有內核版本

Linux raspberrypi 4.14.76-v7+ #1150 SMP Mon Oct 15 15:19:23 BST 2018 armv7l GNU/Linux

 

1、下載樹莓派Linux的內核源碼

  源碼地址:https://github.com/raspberrypi/linux

  選擇所需編譯的分支版本:4.14.y

# git clone --depth=1 -b rpi-4.14.y https://github.com/raspberrypi/linux.git

  衆所周知,國內直接下載github的源碼是比較慢的,所以在此提供一個高速下載的地址 

# git clone --depth=1 -b rpi-4.14.y https://gitclone.com/github.com/raspberrypi/linux.git

 

2、修改源碼

  根據相關的文檔修改 [KERNEL]/drivers/usb/serial/option.c 文件(此處不是重點,不做詳細介紹,)


3、編譯、提取內核及其模塊

  1)配置內核,配置makefile的ARCH類型和編輯器路徑

    可以直接修改內核根目錄的Makefile文件,修改下面的這兩行    

ARCH  ?=$(SUBARCH)
CROSS_COMPILE ?=$(CONFIG_CROSS_COMPILE:"%"=%)

    或者執行指令

# cd linux
# KERNEL=kernel7
# make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcm2709_defconfig
說明:
  Pi 1 使用bcmrpi_defconfig
  Pi 2/3 使用bcm2709_defconfig

    配置內核模塊,執行

# make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig

    開啓CONFIG_USB_SERIAL_OPTION(加載USB Serial)

    [*] Device Drivers
      [*] USB Support
        [*] USB Serial Converter support
           [*] USB driver for GSM and CDMA modems

  2)編譯內核

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

    如果是多處理系統可以添加選項-jn ,n爲數字,表示多處理器的數量*1.5。可以加快編譯速度

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

  整個編譯的時間根據配置的不同有所不同,本次編譯時間約1小時,請耐心等待。

 

4、升級內核及其文件

  1)安裝modules (/path爲存放的路徑)

# make modules_install ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- INSTALL_MOD_PATH=/path/modules
# cp /path/modules/lib/modules/4.14.114-v7+ /lib/modules/

  2)升級內核

# mv /boot/$KERNEL.img /boot/$KERNEL-backup.img 
# ./scripts/mkknlimg arch/arm/boot/zImage /boot/$KERNEL.img
# cp arch/arm/boot/dts/*.dtb /boot/
# cp arch/arm/boot/dts/overlays/*.dtb* /boot/overlays/
# cp arch/arm/boot/dts/overlays/README /boot/overlays/

 

5、重啓並查看內核

# uname -a
Linux raspberrypi 4.14.114-v7+ #2 SMP Wed Aug 4 20:49:36 CST 2021 armv7l GNU/Linux

升級成功

 

參考:

  1、樹莓派/RaspberryPi 內核編譯 - Qiengo - 博客園 (cnblogs.com)
  2、樹莓派3B+內核編譯_jqh_111的專欄-CSDN博客_樹莓派內核編譯

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章