如何编译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 | 配置重启之后的默认启动项 |