u boot 2010 12引導核心啟動過程記錄

2021-05-27 10:07:54 字數 1482 閱讀 1376

資源

u-boot: tekkamanninja-u-boot-2010.12-for-mini6410-9d3c951.tar.gz

linux核心:友善之臂提供的linux-2.6.38-20110325.tar.gz

步驟一(u-boot部分)

1. 解壓u-boot後,開啟,gedit makefile,ctrl + f ,輸入cross,找到交叉編譯工具所在部分,修改為:cross_compile = arm-linux-。然後儲存退出。

2. gedit include/configs/mini6410.h,

line 222

#ifdef config_enable_mmu

#define config_bootcommand "nand read 0xc0018000 0x80000 0x500000;" \

"bootm 0xc0018000"

#else

#define config_bootcommand "nand read 0x50018000 0x80000 0x500000;" \

"bootm 0x50018000"

#endif

line 297

#define config_bootargs "= root=ubi0:friendlyarm-root ubi.mtd=2 rootfstype=ubifs init=/linuxrc console=ttysac0,115200"

儲存,退出。

3. make mini6410_config

make

4. cp tools/mkimage /usr/bin

5. 把生成的u-boot-nand.bin拷貝到友善的sd卡images/linux目錄下,修改.ini檔案中bootloader的名字為改名字。

步驟二(linux核心部分)

1. cp config_mini6410_n43 .config

2. make zimage

3. 在arch/arm/boot目錄下輸入:

root@jason: # mkimage -a arm -o linux -t kernel -c none -a 0x50018000 -e 0x50018040 -n "jason linux"

-d zimage uimage

0x50018040。另外我覺得這一步可以在核心的原始碼裡配置,只是現在執行時生成的uimage載入位址與入口位址與不對,都是0x50008000, 不滿足要求,具體在哪修改,有待進一步研究。現在已知arch/arm/mach-s3c64xx/makefile.boot中修改

載入位址(zreladdr-y

:= 0x50018000)

5. 把生成的uimage拷貝到友善的sd卡images/linux目錄下,修改.ini檔案中kernel的名字為改名字。如下圖:

使用grub2引導multiboot核心

grub2中直接提供了multiboot和multiboot2命令,可分別用於引導符合multiboot v1規範和multiboot v2規範的核心。最小multiboot核心 原始碼包中使用的是syslinux引導的硬碟映象,可使用run.sh進行qemu linker.ld內容如下 entry...

GRUB2引導修復

本來是想把 grub2裝到 u盤,卻不小心把電腦的 grub搞壞了。原因可能是我執行命令 grub install時沒有加任何引數,由於不知道沒有引數怎麼執行,我趕緊 ctrl c終止了安裝,最後重啟後發現系統無法啟動,進入了 grub rescue模式。慶幸的是,重啟之前我成功給 u盤裝了 gru...

ubuntu 14 04 引導修復

1.利用光碟或者u盤啟動grubdos命令列模式,利用命令列手動啟動系統 2.先grub install 到引導盤 比如 如果磁碟是硬碟一類的 grub install dev sda1 如果磁碟是快閃儲存器一類的 比如我的電腦棒 啊 grub install dev mmcblk0p13.之後我們...