天天看點

配置并交叉編譯樹莓派linux核心windows系統和linux系統啟動過程linux源碼目錄樹樹莓派linux源碼配置

目錄

windows系統和linux系統啟動過程

linux源碼目錄樹

樹莓派linux源碼配置

windows系統和linux系統啟動過程

windows啟動過程:

1.啟動電源,BOIS啟動windows,windows識别C槽,C槽運作APP.

linux啟動過程:

1.啟動電源,bootloader啟動linux核心,linux核心識别根檔案系統,根檔案系統運作APP。

linux源碼目錄樹

使用sudo apt-get install tree安裝tree指令

配置并交叉編譯樹莓派linux核心windows系統和linux系統啟動過程linux源碼目錄樹樹莓派linux源碼配置

樹莓派linux源碼配置

驅動代碼的編譯需要一個提前編譯好的核心,編譯核心就需要配置核心。

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

 第一種方式:  

廠家配linux核心源碼,樹莓派linux核心源碼

cp 廠家.config  .config

第二種方式:

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

第三種方式:

自己配置

配置樹莓派linux核心操作步驟如下:

樹莓派2,3的工程是bcm2709_defconfig

第一種方式使用樹莓派的bcm2709_defconfig:

輸入指令:ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- KERNEL=kernel7 make bcm2709_defconfig

第二種方式使用make  menuconfig進行配置:

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 menuconfig( 說明:ARCH指定架構,CROSS_COMPILE指定編譯器,KERNEL指令核心)

配置并交叉編譯樹莓派linux核心windows系統和linux系統啟動過程linux源碼目錄樹樹莓派linux源碼配置

驅動兩種加載方式:

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

M子產品方式生成驅動檔案 xxx.ko  系統啟動後,通過指令insmod

3.編譯核心指令如下:

ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- KERNEL=kernel7 make -j4 zImage modules dtbs (說明:j4使用了4個核心進行編譯,zImage生成核心鏡像,modules要生成驅動子產品,dtbs生成配置檔案)

4.編譯成功後,看到目錄多了vmlinux,失敗則說明編譯失敗。目标zlmage鏡像在目錄arch/arm/boot底下。

配置并交叉編譯樹莓派linux核心windows系統和linux系統啟動過程linux源碼目錄樹樹莓派linux源碼配置

5.打包zImage成樹莓派可用的xxx.img,輸入以下指令:

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

6.将SD卡插入電腦,使用指令dmesg檢視是否挂載成功

配置并交叉編譯樹莓派linux核心windows系統和linux系統啟動過程linux源碼目錄樹樹莓派linux源碼配置

7.挂載U盤:

     7.1建立兩個檔案夾,輸入指令 :mkdir  data1  和mkdir  data2

     7.2将SD的内容挂載到data1目錄和data2目錄:

    輸入如下指令:sudo mount /dev/sdb1    data1(說明:sdb1是fat分區,是boot相關的内容,kernel的img檔案就放在這個分區裡面)

                             sudo  mount /dev/sdb2   data2(說明:sdb2是ext分區,也就是系統的根目錄分區)

配置并交叉編譯樹莓派linux核心windows系統和linux系統啟動過程linux源碼目錄樹樹莓派linux源碼配置

8.安裝modules(裝置驅動檔案 HDMI USB WIFI  IO .....)

輸入以下指令:

sudo ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- KERNEL=kernel7 make INSTALL_MOD_PATH=/home/lizhiwen/data2 modules_install(說明:安裝的時候要加上絕對路徑)

9.安裝更新的kernel.img ,鏡像名字是kernel7.img

     先将原先的鏡像進行備份,輸入以下指令:

      cp kernel7.img kernel7OLD.img

配置并交叉編譯樹莓派linux核心windows系統和linux系統啟動過程linux源碼目錄樹樹莓派linux源碼配置

10.再把編譯新生成鏡像拷貝到data1,起名為kernel7.img

     輸入以下指令:

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

配置并交叉編譯樹莓派linux核心windows系統和linux系統啟動過程linux源碼目錄樹樹莓派linux源碼配置

11.使用指令md5sum檢視是否拷貝成功

配置并交叉編譯樹莓派linux核心windows系統和linux系統啟動過程linux源碼目錄樹樹莓派linux源碼配置

12.拷貝配置檔案

cp arch/arm/boot/dts/.*dtb* /home/lizhiwen/data1

cp  arch/arm/boot/dts/overlays/.*dtb*   home/lizhiwen/data1/overlays

cp  arch/arm/boot/dts/overlays/README   home/lizhiwen/data1/overlays

配置并交叉編譯樹莓派linux核心windows系統和linux系統啟動過程linux源碼目錄樹樹莓派linux源碼配置

13.将SD拔下插入樹莓派,啟動樹莓派之後使用uname -r檢視版本号

配置并交叉編譯樹莓派linux核心windows系統和linux系統啟動過程linux源碼目錄樹樹莓派linux源碼配置

繼續閱讀