目的,加上 ILI9488 LCD 的驅動程式。
因為建立的 external module,載入時會失敗,只好把驅動程式加入建立 image 時的 kernel source 中,這樣建立的 module 就可以使用。只是很難debug,就找現成的來用 吧。
先 git clone https://github.com/armbian/build
再執行一次 build,不用到最後,只要建立 kernel source 就好
-----------------
./compile.sh \
BOARD=orangepione MAKE_THREADS=4 \
BRANCH=legacy RELEASE=bookworm \
BUILD_MINIMAL=yes BUILD_DESKTOP=no \
NETWORKING_STACK="network-manager" \
KERNEL_CONFIGURE=no \
INSTALL_HEADERS=yes \
KERNEL_BTF=yes
-----------------然後把 cache 下的對應的 kernel source,整個複製到新的目錄,如 [6.6_sunxi_armhf_wk]。然後,到新的目錄下,執行 make clean,把編譯的檔案刪掉。刪掉 .git 檔,再執行下列指令,建立啟始的 git 專案。
-----------------
git init
git add .
git commit -m "Initial kernel state for patching"
再把驅動程式,如 fb_ili9488.c,複製到對應的目錄下,如 drivers/staging/fbtft,並修改相關的檔案,如 drivers/staging/fbtft 目錄下的 Kconfig 和 Makefile。
然後執行下列指令,提交程式修改。
-----------------
# 首先,提交你的修改
git add drivers/staging/fbtft/fb_ili9488.c drivers/staging/fbtft/Kconfig drivers/staging/fbtft/Makefile
git commit -s -m "Add: FB_TFT ILI9488 driver"
# 然後生成從上次提交到現在的 patch (或者指定範圍)
# 範例:從上一次提交到 HEAD
git format-patch -1 HEAD
# 這會生成一個類似 0001-Add-FB_TFT-ILI9488-driver.patch 的檔案。
-----------------再將這個 patch 檔,複製到 patch/kernel/archive/sunxi-6.6/patches.armbian/ 下,並修改 series.armbian 和 series.conf,加入這個 patch 檔。
修改 config/kernel/linux-sunxi-legacy.config,加入 CONFIG_FB_TFT_ILI9488=m。
然後,build image,測試結果。
沒有留言:
張貼留言