محمل الإقلاع "جرب2" بقائمة عربية
جرب2 هو الجيل الثاني من محمل الإقلاع الرائع جرب GRUB.
يوفر جرب2 العديد من المميزات التي يفتقر إليها جرب القديم، ومن هذا الميزات الجديدة دعم الرسوميات حيث يوفر Video Subsystem يتيح إمكانيات رسومية رائعة - لم يتم استغلالها بشكل كامل بعد - ومن ضمن التطبيقات التي تستفيد من هذ النظام الجديد الطرقية الرسومية “graphical terminal” أو اختصارا “gfxterm”.
حسنا، ما علاقة كل هذا بعنوان الموضوع؟ من ضمن الأشياء التي يوفرها “gfxterm” هو دعم يونيكود مما يعني أنه يوفر دعم لعرض جميع اللغات، لكن لا يوجد دعم لثناءية الاتجاه وغيرها من خصائص اللغة العربية حتى الآن - لكن سنحتال على هذه أيضا -.
هذه صورة لجرب2 مع قائمة عربية، رائعة هى العربية أليس كذلك :)
الخطوات للحصول على هذا بسيطة:
-
نحصل على جرب2 من هنا (grub-1.94.tar.gz) ثم نفك الضغط ونثبته كالعادة:
$ tar xvfz grub-1.94.tar.gz $ cd grub-1.94 $ ./configure $ make لا حاجة لعمل “make install” #ولعمل صورة قرص مرن تحتوي على جرب2: نستعمل هذا السكريبت (انسخه فى ملف ثم نفذه من داخل مجلد جرب) وسينتج لديك ملف باسم “grub2-floppy-i386.ext2fs” #والآن نضم “mount” صورة القرص:
$ mount -o loop grub2-floppy-i386.ext2fs /mnt/floppy
ثم نستبدل الملف “grub/grub.cfg” بهذا الملف:
# Timeout for menu
#set timeout=10
# Set default boot entry as Entry 0
#set default=0
insmod vbe
insmod font
font /grub/unifont.pff
insmod gfxterm
insmod terminal
terminal gfxterm
# Entry 0 - Load Linux kernel
menuentry "جنو/لينكس ٢,٦,١٣" {
set root=(hd0,1)
linux /vmlinuz root=/dev/hda2
initrd /initrd
}
# Entry 1 - Chainload another bootloader
menuentry "نظام تشغيل آخر" {
set root=(hd0,3)
chainloader +1
}
ثم نقوم بإلغاء الضم:
$ unmount /mnt/floppy
#ثم سنحتاج إلى خط يدعم يونيكود: حمله من هنا ثم لتحويله إلى خط يفهمه جرب نفذ الآتي (من داخل مجلد جرب):
$ gunzip unifont.hex.gz
$ ruby util/unifont2pff.rb 0x600-0x6ff 0x750-0x77f 0xfb50-0xfdff 0xfe70-0xfeff 0x0000-0x0241 0x2190-0x21FF 0x2500-0x259f unifont.hex > unifont.pff
$ cp unifont.pff /mnt/floppy/grub
#ولتجربة جرب2 أمامك خياران:
-
تجربته باستخدام محاكي مثل Qemu
$ qemu -fda grub2-floppy-i386.ext2fs
-
أو نسخ صورة القرص على قرص مرن حقيقي ثم إعادة تشغيل الجهاز والإقلاع من القرص المرن
$ dd if=grub2-floppy-i386.ext2fs of=/dev/fda
على افتراض أن /dev/fda هو القرص المرن
في كلتا الحالتين يفترض أت ترى شيئا كهذا (اضغط علي “gfxterm” في القائمة ليعمل):
لكن هذ ليس كالصورة بأعلى، هذا ما يقدمه جرب2 فهو لا يدعم ثنائية الاتجاه ولا اتصال الحروف العربية ببعضها.
كيف تظهر الكتابة العربية مضبوطة في الصورة الأولى إذن؟ سنقوم بحيلة بسيطة - هذه الفكرة مستوحاه من هنا حيث ذكر كاتب هذا البرنامج فكرة مماثلة في وثائق برنامجه - الفكرة ببساطة هي تخزين النص العربي منسق مسبقا بحيث تظهر الحروف متصلة مع بعضها ومن اليمين لليسار بدلا من تخزينه في صورته الأصلية (مقطعا، من اليسار لليمين)، وهذ ببساطة عن طريق تمرير النص عبر برنامج يقوم بهذا (أنا استخدمت fribidi2 لكن يمكن استخدام هذ البرنامج أيضا
$ mu < grub.cfg > grub2.cfg
أو :
$ fribidi grub.cfg > grub2.cfg
$ cp grub2.cfg /mnt/floppy/grub/grub2.cfg
هذه كل الحكاية ;)
إذا كنت كسولا أو لم تستطع القيام بالخطوات السابقة لأي سبب فيمكنك استخدام صورة القرص المرفقة أسفل - الصورة الأولى مأخوذة منها - ، وإذا كان لديك جرب2 مسبقا يمكنك استخدام ملف “grub.cfg” المعد مسبقا ليعرض النص العربي.
إذا كنت تريد معلومات أكثر عن جرب2 فأفضل مكان هو ويكي جرب2.