樹莓派 RaspberryPi 核心編譯

2022-07-09 07:48:11 字數 3395 閱讀 4604

****:

上面列出了樹莓派所有的開源軟體:

linux:核心原始碼

tools:編譯核心和其他原始碼所需的工具——交叉編譯器等

我們只需要以上兩個檔案即可,下面的工程可以了解一下

firmware:樹莓派的交叉編譯好的二進位制核心、模組、庫、bootloader

documentation:樹莓派離線幫助文件,教你如何使用、部署樹莓派(樹莓派官方使用教程)

hats:hardware attached on top,樹莓派 b+型板子的擴充套件板資料

maynard:乙個gtk寫成的桌面環境

scratch:乙個簡易、視覺化程式設計環境

noobs:乙個樹莓派顯像管理工具,他可以讓你在乙個樹莓派上部署多個映象

weston:乙個應用程式

target_fs:樹莓派最小檔案系統,使用busybox製作

quake3:雷神之鎚3有線開發原始碼firmwareb

git clone /tools

git clone --depth=1 /linux

具體見:

root@ubuntu:......./tools/arm-bcm2708# ls

arm-bcm2708hardfp-linux-gnueabi 

arm-bcm2708-linux-gnueabi

arm-rpi-4.9.3-linux-gnueabihf

gcc-linaro-arm-linux-gnueabihf-raspbian

gcc-linaro-arm-linux-gnueabihf-raspbian-x64

32系統將如下路徑加入環境變數:

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

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

1)配置核心,配置makefile的arch型別和編譯器路徑

可以直接修改核心根目錄的makefile檔案,修改下面的這兩行

arch  ?=$(subarch)

cross_compile ?=$(config_cross_compile:"%"=%)

但是從這兩行上面的注釋可以看出,可以直接使用make指令設定這兩個引數,make arch =arm cross_compile=arm-linux- ......

執行find ./ -name "*bcm*defconfig*" 查詢下對應的預設配置,只保留arm下的結果:

./arch/arm/configs/bcm2835_defconfig

./arch/arm/configs/bcmrpi_defconfig

./arch/arm/configs/bcm2709_defconfig

./arch/arm/configs/bcm_defconfig

bcmrpi_defconfig

pi 2/3 使用bcm2709_defconfig

執行指令

$ cd ....../linux-rpi-4.4

.y$ kernel=kernel7

$ make arch=arm cross_compile=arm-linux-gnueabihf- bcm2709_defconfig

配置核心模組,執行

make arch=arm cross_compile=arm-linux-gnueabihf- menuconfig

如下圖所示,頂部顯示arm,說明引數設定成功

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

將樹莓派的sd卡插在linux系統電腦上,最好直接使用讀卡器,使用lsblk指令對比插入前後的變化,可以sd中的兩個分割槽如下:

mmcblk0p1是fat(boot)分割槽

mmcblk0p2是ext4檔案系統(root)分割槽

掛載sd卡分割槽:

mkdir mnt/fat32

mkdir mnt/ext4

sudo mount /dev/mmcblk0p1 mnt/fat32

sudo mount /dev/mmcblk0p2 mnt/ext4

安裝modules:

sudo make arch=arm cross_compile=arm-linux-gnueabihf- install_mod_path=mnt/ext4 modules_install
如果把install_mod_path設為本地目錄可以提取出對應的modules,最後,把kernel and device tree blobs複製到sd卡:

sudo cp mnt/fat32/$kernel.img mnt/fat32/$kernel-backup.img       //備份原先的img檔案

sudo scripts/mkknlimg arch/arm/boot/zimage mnt/fat32/$kernel.img //將zimage格式轉成樹莓派需要的img格式,並複製到sd卡

sudo cp arch/arm/boot/dts/*.dtb mnt/fat32/

sudo cp arch/arm/boot/dts/overlays/*.dtb* mnt/fat32/overlays/

sudo cp arch/arm/boot/dts/overlays/readme mnt/fat32/overlays/

sudo umount mnt/fat32

sudo umount mnt/ext4

kernel=kernel-myconfig.img
最後,將sd卡插入樹莓派啟動。

ref:

樹莓派 Raspberry Pi 瞎搗鼓

本週入手了新玩具raspberry pi 3 model b,利用週末稍微玩了一下,感覺體驗還行,可以用來當個小私服來用或者用來當電視盒子娛樂用。點讚點 支援無線網路和藍芽哦 吐槽點 貌似沒有電源開關按鈕,直接把電源線 toc 預設的raspbian作業系統是不帶中文字庫的,所以不能正常顯示中文字型...

Raspberry Pi 樹莓派更改時區

時區不對,時間慢8個小時。pi raspberrypi date thu 14 jun 16 00 00 utc 2018方法一 2020年4月20日01 30 35新增 可以直接通過raspi config 4 localisation options i2 change timezone asi...

樹莓派 raspberry pi 更改鍵盤布局

樹莓派 raspberry pi 用了幾次後,發現鍵盤老是按錯,一些字元打不出來或打錯 這個問題,折騰我半天。還是把心得分享一下吧 上網查,發現是鍵盤布局不對,樹莓派 raspberry pi 是英國產品,預設鍵盤布局是英國 gb 我們用的鍵盤布局一般是美國 us 的 更改鍵盤布局,命令如下 sud...