1 內核編譯
- 解壓縮:tar xjf linux-2.6.22.6.tar.bz2
- 打補丁: path -p1 < ../linux-2.6.22.6_jz2440.patch(其中p1是忽略補丁文件中的一級目錄)
- 配置:
- 方法一:使用make menuconfig逐項配置
- 方法二:使用默認配置:
- 步驟1:執行make s3c2410_defconfig(該文件在目錄/arch/arm/configs目錄下找到相似的配置文件),
- 步驟2:執行make menuconfig
- 方法三:使用廠家提供的配置文件
- 編譯:使用uImage時,使用命令:make uImage (如果添加V=1,會將編譯信息更詳細的顯示出來)
- 編譯第一個文件:arch/arm/kernal/head.S
- 鏈接腳本為:arch/arm/kernal/vmlinux.lds
2 內核啟動流程
- 判斷是否支持當前運行單板(單板類型是u-boot啟動內核時,傳入的機器ID);MACHINE_START/MACHINE_END定義系統支持的單板信息
- 建立頁表;
- 使能MMU;
- 跳轉到start kernel(第一個C函數);
- start kernel -> setup_arch (接卸u-boot傳入的啟動參數) -> steup_command_line -> reset_init -> kernel_init -> prepare_namespace -> mount_root (掛載根文件系統)
- init_post (執行應用程序)
轉載于:https://www.cnblogs.com/lyndon-jiang/p/11013772.html