Selasa, 16 September 2014

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

  1. Install Git for Windows (msys-git) kalau belum punya.
  2. Download MinGW32 installer (mingw-get-setup.exe) dari situs resminya.
  3. Pasang dengan opsi default (boleh ubah folder tujuan kalau mau).
  4. Di layar pilihan package, centang:
    • mingw-developer-toolkit
    • mingw-base
    • msys-base
  5. 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.exe ke C:\MinGW\msys\1.0\bin.
  • upx: download dari mirror ini, ekstrak, lalu copy upx.exe ke C:\MinGW\msys\1.0\bin.

Persiapan MinGW

  1. Buka msys.bat di folder C:\MinGW\msys\1.0\.
  2. Jalankan:
    /postintall/pi.sh
  3. Terima semua opsi default.
  4. Upgrade/downgrade gcc:
    mingw-get upgrade gcc=4.6.2-1
    mingw-get install mpc=0.8.1-1

    Kenapa harus gcc 4.6.2? Karena versi 4.7 ke atas bikin grldr gagal jalan (freeze di boot).

Clone dan Compile Grub4DOS

  1. Clone source terbaru dari GitHub:
    git clone https://github.com/chenall/grub4dos.git
  2. Pindah ke foldernya:
    cd grub4dos
  3. Generate configure dan Makefile:
    ./autogen.sh
  4. Compile:
    make

Kalau semua lancar, hasilnya ada di stage2 berupa grldr dan grldr.mbr. Itu yang kamu butuhkan.

Catatan Penting: Jangan pernah langsung jalankan ./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.

<< Beranda