grub-2.06.tar.gz
編譯環(huán)境:opensuse 15.3 WSL绒障,x86_64吨凑,參考源碼包內(nèi)的INSTALL文件
- 安裝編譯工具
# zypper in gcc make bison gettext binutils flex freetype2-devel device-mapper-devel xz-devel
默認(rèn)安裝的gcc版本為7.5
# zypper in cross-aarch64-gcc7 cross-aarch64-binutils
若要交叉編譯適用于aarch64架構(gòu)所需的額外軟件包
- ./configure
下載源碼包,解壓縮户辱,并進(jìn)入文件夾
$ mkdir i386pc
$ cd i386pc
$ ../configure --prefix=[grub最后將要安裝的路徑]
默認(rèn)的配置方式是傳統(tǒng)BIOS啟動
$ mkdir x64efi
$ cd x64efi
$ ../configure --prefix=[grub最后將要安裝的路徑] --target=x86_64 --with-platform=efi
UEFI x86_64位啟動
$ mkdir arm64efi
$ cd arm64efi
$ ../configure --prefix=[grub最后將要安裝的路徑] --target=aarch64-suse-linux --with-platform=efi
UEFI aarch64啟動
以上配置均為在x86系統(tǒng)下運行g(shù)rub程序鸵钝,最終grub在目標(biāo)環(huán)境啟動運行。
若要在arm或其他架構(gòu)運行g(shù)rub程序庐镐,則需要指定--host=恩商,詳見INSTALL文件
- make
- make install
將編譯的程序安裝至prefix指定的路徑中。
注意:在較高版本linux編譯必逆,會導(dǎo)致程序放到低版本linux無法運行名眉。
目前,交叉編譯的arm的grub已在基于飛騰的終端上驗證绘证。