محمل الإقلاع "جرب2" بقائمة عربية

جرب2 هو الجيل الثاني من محمل الإقلاع الرائع جرب GRUB.

يوفر جرب2 العديد من المميزات التي يفتقر إليها جرب القديم، ومن هذا الميزات الجديدة دعم الرسوميات حيث يوفر Video Subsystem يتيح إمكانيات رسومية رائعة - لم يتم استغلالها بشكل كامل بعد - ومن ضمن التطبيقات التي تستفيد من هذ النظام الجديد الطرقية الرسومية "graphical terminal" أو اختصارا "gfxterm".

حسنا، ما علاقة كل هذا بعنوان الموضوع؟ من ضمن اﻷشياء التي يوفرها "gfxterm" هو دعم يونيكود مما يعني أنه يوفر دعم لعرض جميع اللغات، لكن لا يوجد دعم لثناءية الاتجاه وغيرها من خصائص اللغة العربية حتى اﻵن - لكن سنحتال على هذه أيضا -.

هذه صورة لجرب2 مع قائمة عربية، رائعة هى العربية أليس كذلك :)

http://www.khaledhosny.org/files/images/grub2_ar_no-bidi.png

الخطوات للحصول على هذا بسيطة:
  1. نحصل على جرب2 من هنا (grub-1.94.tar.gz) ثم نفك الضغط ونثبته كالعادة:
$ tar xvfz grub-1.94.tar.gz
$ cd grub-1.94
$ ./configure
$ make

لا حاجة لعمل "make install"
  1. ولعمل صورة قرص مرن تحتوي على جرب2: نستعمل هذا السكريبت (انسخه فى ملف ثم نفذه من داخل مجلد جرب) وسينتج لديك ملف باسم "grub2-floppy-i386.ext2fs"
  2. واﻵن نضم "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

  1. ثم سنحتاج إلى خط يدعم يونيكود: حمله من هنا ثم لتحويله إلى خط يفهمه جرب نفذ الآتي (من داخل مجلد جرب):
$ 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

  1. ولتجربة جرب2 أمامك خياران:
  2. تجربته باستخدام محاكي مثل Qemu
$ qemu -fda grub2-floppy-i386.ext2fs

  • أو نسخ صورة القرص على قرص مرن حقيقي ثم إعادة تشغيل الجهاز والإقلاع من القرص المرن
$ dd if=grub2-floppy-i386.ext2fs of=/dev/fda

على افتراض أن /dev/fda هو القرص المرن

في كلتا الحالتين يفترض أت ترى شيئا كهذا (اضغط علي "gfxterm" في القائمة ليعمل):

http://www.khaledhosny.org/files/images/grub2_ar_bidi.png

لكن هذ ليس كالصورة بأعلى، هذا ما يقدمه جرب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.

grub2 with Arabic menu
المرفقالحجم
grub2_Arabic_menu.img.gz‏137.66 ك.بايت
grub.cfg450 بايت

التعليقات

فكرة جميلة جدا ومن زمان كنت

فكرة جميلة جدا ومن زمان كنت مستنيها
بس ماقدرت الطبق الشرح لعدة اسباب
1 لست خبيرا بمافيه الكفاية (يوجد برامج اول مرة اسمع عنها ولا ادري كيف تعمل )
2يوجد grub2 مثبت مسبقا لدي (لم اعرف استخدام السكريبت المذكور انفا)
3 موقع عرب ايز لايفتح عندي
4 ملف grub.cfg المرفق غير موجود (تظهر لي صفحة خطأ )
وشكرا اخي خالد

هذه التدوينة عمرها أربع

هذه التدوينة عمرها أربع سنوات، أشياء كثيرة تغيرت ولست متابعا لآخر تطوات جرب٢. موقع عربآيز به مشكلة مؤقتة ونأمل أن تحل قريبا.

هل لك يا أخ خالد في تحديث

هل لك يا أخ خالد في تحديث الموضوع

كما في الرد السابق، مضى خمس

كما في الرد السابق، مضى خمس سنوات على هذه التجربة وأشياء كثيرة تغيرت منذ ذلك الوقت وللأسف لا إلملم لي بآخر التطورات ولا وقت لبحث الأمر.

علِّق

محتويات هذا الحقل سرية ولن تظهر للآخرين.
كابتشا
هذا السؤال للتأكد من أنك زائر حقيقي ولمنع السخام.
7 + 3 =
حل هذه المعادلة الرياضية البسيطة وأدخل الناتج. مثلا: إذا كان السؤال 1+3 أدخل 4.