樹莓派Linux核心配置 編譯

2021-10-08 21:25:38 字數 2184 閱讀 3315

4929703.html驅動**的編譯需要乙個提前編譯好的核心,編譯核心就必須配置,配置的最終目標會生成 .config檔案,該檔案指導makefile去把有用東西組織成核心。

第一種方式:

make menuconfig 一項項配置

arch=arm cross_compile=arm-linux-gnueabihf- kernel=kernel7 make menuconfig
arch=arm : 指定arm架構

cross_compile=arm-linux-gnueabihf- :指定編譯器

kernel=kernel7 : 核心

make menuconfig :主要核心指令

驅動兩種載入方式:

* 編譯進核心 zimage包含了驅動

m 模組方式生成驅動檔案***.ko 系統啟動後,通過命令insmod ***.ko 載入

第二種方式:

arch=arm cross_compile=arm-linux-gnueabihf- kernel=kernel7 make bcm2709_defconfig
需要安裝的庫

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

arch=arm cross_compile=arm-linux-gnueabihf- kernel=kernel7 make -j4 zimage modules dtbs
-j4指定用多少電腦資源進行編譯

zimage生成核心映象

modules要生成驅動模組

dtbs生成配置檔案

編譯成功後,看到原始碼樹目錄多了vmlinux,成功後,目標zimage映象arch/arm/boot底下

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

.

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

/kernel_new.img

mkdir data1 data2
掛載u盤

fat分割槽,是boot相關的內容,kernel的img

sudo mount /dev/sdb1 data1
ext4分割槽,也就是系統的根目錄分割槽。

sudo mount /dev/sdb2 data2
安裝modules

sudo arch=arm cross_compile=arm-linux-gnueabihf- kernel=kernel7 make install_mod_path=

/home/will/data2 modules_install

安裝更新 kernel.img 檔案,注意映象名字是kernel7.img

先備份

cd /home/will/data1
cp kernel7.img kernel7old.img
再把編譯新生成的拷貝到data1,命名kernel7.img

cp kernel_new.img /home/will/data1/kernel7.img
拷貝配置檔案

cp arch/arm/boot/dts/

.*dtb*

/home/will/data1

樹莓派 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...

樹莓派 RaspberryPi 核心編譯

上面列出了樹莓派所有的開源軟體 linux 核心原始碼 tools 編譯核心和其他原始碼所需的工具 交叉編譯器等 我們只需要以上兩個檔案即可,下面的工程可以了解一下 firmware 樹莓派的交叉編譯好的二進位制核心 模組 庫 bootloader documentation 樹莓派離線幫助文件,教...