Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

解決 mkimage command not found:U-Boot 編譯 mkimage 工具與安裝指南

編輯:Linux 教學

編譯 Linux 核心產生 uImage 時,若出現 mkimage command not found,表示缺少 U-Boot 提供的映像封裝工具。本文提供三種解決方案:原始碼編譯、系統套件安裝、手動複製,並說明交叉編譯工具鏈配置細節。

方案一:從 U-Boot 原始碼編譯 mkimage(通用)

# 1. 進入 U-Boot 原始碼目錄
cd /usr/src/arm/u-boot-1.1.5  # 或您的 U-Boot 路徑

# 2. 修改 Makefile 設定交叉編譯器
# 找到:
ifeq ($(ARCH),arm)
CROSS_COMPILE =
# 改為:
ifeq ($(ARCH),arm)
CROSS_COMPILE = arm-linux-gnueabi-   # 依實際工具鏈前綴調整

# 3. 執行編譯
make distclean
make 您的開發板_config   # 例:make at91sam9260ek_config
make

# 4. 複製到系統路徑
sudo cp tools/mkimage /usr/bin/mkimage

方案二:Ubuntu/Debian 直接安裝套件(最快)

sudo apt-get update
sudo apt-get install uboot-mkimage

安裝後即可直接使用 mkimage 指令,無需配置路徑。

方案三:臨時加入 PATH(不想安裝/複製時)

# 加入 ~/.bashrc 或 /etc/profile
export PATH=$PATH:/usr/src/arm/u-boot-1.1.5/tools

# 立即生效
source ~/.bashrc

驗證安裝

mkimage -V
# 輸出版本資訊即成功

常見問題排查

錯誤原因解決
make: arm-linux-gnueabi-gcc: Command not found交叉編譯器未安裝或不在 PATHsudo apt-get install gcc-arm-linux-gnueabi 或設定正確路徑
mkimage: not found 執行 make uImage 時核心 Makefile 找不到 mkimage確認 which mkimage 有輸出,或在核心 .config 設定 CONFIG_MKIMAGE
生成的 mkimage 執行報錯動態連結庫缺失(如 glibc 版本不符)優先使用方案二套件管理器安裝的版本

補充:mkimage 用途

mkimage 將原始核心映像 zImage/Image 封裝為 U-Boot 可識別的 uImage,加入載入位址、啟動位址、映像類型、壓縮格式、CRC 校驗等標頭資訊:

mkimage -A arm -O linux -T kernel -C none -a 0x80008000 -e 0x80008000 \
  -n "Linux-5.15" -d arch/arm/boot/zImage uImage

掌握 mkimage 取得與編譯,是嵌入式 Linux 核心建置與啟動流程除錯的基礎技能。

Copyright © Windows教程網 All Rights Reserved