如何编译loongnix1.0系统里的BOOTMIPS.EFI ?
1、解压源码包
# mkdir grub-test
# cp grub2-2.02-0.40.fc21.loongson.13.src.rpm grub-test
# cd grub-test
# rpm2cpio grub2-2.02-0.40.fc21.loongson.13.src.rpm | cpio -div
2、将压缩包中的补丁打入源码中
# tar xf grub-2.02.tar.xz
# cp *.patch grub-2.02/
# cd grub-2.02
# git apply *.patch
3、执行配置脚本
# ./autogen.sh
# ./configure --prefix=/usr --sysconfdir=/etc --disable-werror
–prefix 指定编译结果目录。
–sysconfdir 指定生成配置目录。
–disable-werror 将编译过程中的警告不归结到error中去。
4、编译
# make
5、安装
make install
6、制作一个BOOT.EFI可启动镜像
#grub2-mkimage -O mips64el-efi -d ./grub-core/ -p /boot/EFI/BOOT/ -o BOOTMIPS.EFI boot reboot linux part_gpt part_msdos disk fat exfat ext2 ntfs xfs hfs iso9660 normal search_fs_file configfile chain loopback echo efi_gop file gfxterm gfxterm_background gfxterm_menu halt help ls png true
UEFI启动是通过/boot/EFI/BOOT/xxxx.EFI来启动grub引导。
参数解析如下:
-d 表示指定查找模块目录
-p 设置gurb目标文件的文件夹,cfg文件中会调用。
-o 表示生成的目标文件
-O 表示集成的平台模块
BOOTMIPS.EFI后面全是命令模块,可以根据自己的需求进行添加。
7、拷贝到指定位置
# cp BOOTMIPS.EFI /boot/EFI/BOOT/
# reboot
重启就可以使用新编译的BOOTMIPS.EFI进行引导内核启动了。
8、grub.cfg修改启动主要配置项解析
配置项 解析
default 指grub启动时默认菜单项,表示默认从哪个菜单启动。默认配置为0。
timeout 指菜单到自动启动系统前停留时间,单位时间为sec。
title 指一个启动操作系统的名称。
root 指相应内核镜像所在目录boot所在的磁盘分区 如:root=‘hd0,msdos1’。
linux 指boot目录下内核镜像的名称。
initrd 指linux的initial ramdisk在boot目录下的名称。
boot 指引导内核进行启动。
9、补充gurb2命令说明
命令 说明
grub2-editenv 编译环境块工具
grub2-mkfont 设置grub2使用的字体
grub2-mkimage 生成一个gurb的可启动镜像
grub2-mkrescue 生成一个适用于软盘的grub的可启动镜像
grub2-install 在磁盘上安装grub
grub2-mkconfig 生成grub配置文件
grub2-mkdevicemap 生成一个新的device map文件
grub2-probe 扫描计算机收集磁盘和分区信息
grub2-set-default 配置默认启动项
grub2-reboot 配置重启之后的默认启动项