樹莓派Linux核心替換

2021-10-24 01:53:20 字數 2230 閱讀 5753

資料拷貝

將sd卡轉插到樹莓派

安裝好對應交叉編譯工具

將需要替換的linux拷進ubuntu

驅動**的編譯需要乙個提前編譯好的核心,編譯核心必須配置。

配置的最終目標會生成.config檔案,該檔案知道makefile去把有用的東西組織成核心

內建核心一般有一下三種方式:

將廠家的複製配置成核心原始碼。前提是硬體沒有改動,若因為某些原因(降低成本)有改動,則需改動相應模組的核心原始碼

cp 廠家.config 自己.config

make menuconfig 一項項配置,通常是基於廠家的config配置

完全自己來

樹莓派採用第一種方式。

在樹莓派的linux核心檔案下輸入如下指令進行配置:

arch=arm cross_compile=arm-linux-gnueabihf- kernel=kernel7 make bcm2709_defconfig

指定arm架構 指定編譯器 樹莓派 主要核心指令

此命令功能是獲取bcm2709_defconfig的配置到 .config裡。

1.編譯前先安裝必要的庫:

sudo apt-get install bc

sudo apt-get install libncurses5-dev libncursesw5-dev

sudo apt-get install zlib1g:i386

sudo apt-get install libc6-i386 lib32stdc++6 lib32gcc1 lib32ncurses5

2.編譯:

arch=arm cross_compile=arm-linux-gnueabihf- kernel=kernel7 make -j4 zimage modules dtbs
編譯成功後,看到原始碼樹目錄多了vmlinux,失敗則無此檔案

成功後,目標zimage映象arch/arm/boot底下

打包zimage成樹莓派可用的***.img

./scripts/mkknlimg arch/arm/boot/zimage ./kernel_new.img

1.可用dmesg檢視u盤是否掛載進ubuntu

2.mkdir data1 data2

data1–>fat分割槽–>放置映象檔案

data2–>ext4分割槽–>放置根目錄檔案

3.sudo mount /dev/sdb1 data1 乙個fat分割槽,是boot相關的內容,kernel的img

sudo mount /dev/sdb2 data2 乙個是ext4分割槽,也就是系統的根目錄分割槽。

4.安裝modules, 裝置驅動檔案: hdmi usb wifi io …

sudo arch=arm cross_compile=arm-linux-gnueabihf- kernel=kernel7 make install_mod_path=/home/qyg/data2 modules_install

5.安裝更新 kernel.img 檔案,注意樹莓派的映象名字是kernel7.img

先備份cd /home/qyg/data1

cp kernel7.img kernel7old.img

再把編譯新生成的拷貝到data1,起名kernel7.img

cp kernel_new.img /home/qyg/data1/kernel7.img

6.拷貝配置檔案

cp arch/arm/boot/dts/

.*dtb*

/home/qyg/data1

cp arch/arm/boot/dts/overlays/

.*dtb*

/home/qyg/data1/overlays/

cp arch/arm/boot/dts/overlays/readme /home/qyg/data1/overlays/

在樹莓派系統輸入:uname -r檢視版本是否改變,若改變則說明替換核心成功。

樹莓派4 14核心替換

為什麼要進行樹莓派的原始碼配置呢?是為了驅動 的編寫,驅動 的編譯需要乙個提前編譯好的核心,編譯核心就必須配置,配置的最終目標會生成 config檔案,該檔案指導makefile去把有用東西組織成核心 1.獲取樹莓派原始碼,安裝好交叉編譯工具 原始碼及工具 編譯工具安裝好後,所以的make命令都要指...

樹莓派 Linux 核心編譯

5.1配置config arch arm cross compile arm linux gnueabihf kernel kernel7 make bcm2709 defconfig 5.2 編譯 arch arm cross compile arm linux gnueabihf kernel ...

樹莓派 Linux 核心驅動編譯

寫好驅動 pin4module.c include include include include include include include include static struct class pin4 class 建立乙個類 static struct device pin4 class...