TI OMAP系列處理器上的bootloader通常是指x-loader(MLO)和u-boot(u-boot.bin),兩者用於Linux內核啟動前的配置、部分硬件系統配置以及解壓縮並加載內核Image文件並引導內核啟動。
u-boot在執行過程中會讀取boot.scr文件中的內核啟動參數,傳給即將引導啟動的Linux內核。
具體步驟:
(1)bootloader下載和編譯
1、執行git clone git://git.denx.de/u-boot.git target_directory
從DENX官方下載最新的u-boot至target_directory目錄。
2、編譯u-boot,生成MLO文件和u-boot.bin文件
打開Makefile文件,修改CROSS_COMPILE ?= arm-linux-
依順序執行
make mrproper //清除以往的配置信息完成後,在目錄下生成MLO文件和u-boot.bin文件
make omap3_beagle_config //針對bb進行編譯配置
make //編譯生成MLO和u-boot.bin文件
(2)創建boot.scr
1、執行apt-get install uboot-mkimage,安裝mkimage工具。
如果不能安裝請先執行 apt-get update --fix-missing。
或者不想安裝的話可以直接進入target_directory/toos 就可以找到mkimage來使用
(建議設成PATH)
2、vi創建bootcmd文件,加入以下啟動參數
setenv bootcmd 'fatload mmc 0:1 0x80200000 uImage; bootm 0x80200000'其中,主要的一些參數,如:fatload mmc...命令從TF卡的FAT32分區讀取uImage文件,加載到主存的0x80200000地址,然後通過bootm命令,從該地址啟動。bootarg為傳遞給LinuxKernel的內核啟動參數。由於我通過串口接到Tutty上輸出,因此,設置console=ttyO2,115200n8,rootfs在/dev/mmcblkOp2設備中,文件系統類型為ext3。
set bootargs 'console=ttyO2,115200n8 mem=80M@0x80000000 root=/dev/mmcblk0p2 rootfstype=ext3 rw rootwait omapfb.video_mode=1280x720MR-16@60'
boot
3、執行mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n "Beagleboard boot script" -d bootcmd boot.scr命令,生成boot.scr文件
沒有留言:
張貼留言
俗話說
凡走過必留下痕跡,凡住過必留下鄰居
凡爬過必留下樓梯,凡來過必留下IP
看過文章之後歡迎留下您寶貴的意見喔!