Catatan Santai: Compile Grub4DOS di MinGW
Beberapa waktu lalu chenall sempat commit beberapa patch yang aku kirim, tujuannya biar compile Grub4DOS di MinGW bisa lebih gampang. Nah, biar nggak lupa, aku tulis aja catatan singkat ini buat yang mau coba compile Grub4DOS langsung di Windows. Sebagian step ini juga aku contek dari panduan RMPrepUSB, jadi anggap aja ini versi ringkas plus pengalaman pribadi.
Langkah Awal
- Install Git for Windows (msys-git) kalau belum punya.
- Download MinGW32 installer (mingw-get-setup.exe) dari situs resminya.
- Pasang dengan opsi default (boleh ubah folder tujuan kalau mau).
- Di layar pilihan package, centang:
- mingw-developer-toolkit
- mingw-base
- msys-base
- Klik menu Installation → Apply Changes, lalu Apply.
Setting PATH untuk Git
Buka file etc\profile di folder C:\MinGW\msys\1.0\. Kalau Git terinstall di C:\Program Files (x86)\Git, ubah bagian PATH jadi:
if [ $MSYSTEM == MINGW32 ]; then
export PATH=".:/usr/local/bin:/mingw/bin:/bin:/c/Program Files (x86)/Git/bin:$PATH"
else
export PATH=".:/usr/local/bin:/bin:/mingw/bin:/c/Program Files (x86)/Git/bin:$PATH"
fi
Tujuannya biar shell kamu bisa manggil git. Kalau pakai klien Git lain, bagian ini bisa dilewati.
Tambahan Tools
- nasm: download dari situs resmi, ekstrak, lalu copy
nasm.exekeC:\MinGW\msys\1.0\bin. - upx: download dari mirror ini, ekstrak, lalu copy
upx.exekeC:\MinGW\msys\1.0\bin.
Persiapan MinGW
- Buka
msys.batdi folderC:\MinGW\msys\1.0\. - Jalankan:
/postintall/pi.sh - Terima semua opsi default.
- Upgrade/downgrade gcc:
mingw-get upgrade gcc=4.6.2-1 mingw-get install mpc=0.8.1-1Kenapa harus gcc 4.6.2? Karena versi 4.7 ke atas bikin grldr gagal jalan (freeze di boot).
Clone dan Compile Grub4DOS
- Clone source terbaru dari GitHub:
git clone https://github.com/chenall/grub4dos.git - Pindah ke foldernya:
cd grub4dos - Generate configure dan Makefile:
./autogen.sh - Compile:
make
Kalau semua lancar, hasilnya ada di stage2 berupa grldr dan grldr.mbr. Itu yang kamu butuhkan.
./configure di MinGW, karena pasti gagal. Pastikan pakai ./autogen.sh atau ./bootstrap.sh.
Kompilasi di Linux
Kalau kamu lebih nyaman di Linux, sebenarnya lebih gampang. Contohnya di Debian 7.7.0 x64:
aptitude install gcc glibc-devel.i686 gcc-multilib make autotools autoconf git nasm upx
git clone https://github.com/chenall/grub4dos.git
cd grub4dos
./autogen.sh
make
Biasanya hasil compile di Linux ukurannya lebih kecil dibanding yang di MinGW, tapi fungsinya tetap sama.
Itu aja catatan singkatnya. Semoga membantu kalau kamu pengen coba build Grub4DOS langsung dari source.