يعتبر جهاز VisionFive 2 أحد أفضل الأجهزة التي تعمل بمعالجات RISC-V في أيامنا هذه. هذا الجهاز من تصميم وتصنيع شركة SiFive وهو عبارة عن لوحي يحمل معالج بمعمارية RISC-V رباعي الأنوية. ما يميز هذا اللوحي هو توفر معالج رسوميات ثلاثي الأبعاد وهو ما لم يتوفر في الأجهزة السابقة له.
جهاز VisionFive 2
هذا اللوحي هو واحد من أحدث اللوحيات التي تقدمها شركة SiFive القائمة على تطوير معمارية RISC-V وهو متوفر للشراء الآن بسعر مرتفع قليلا بالنسبة للميزاته ولكنه تقريبا الوحيد بهذه المميزات ومتوفر للشراء من قبل العامة.
التشغيل الأولي للجهاز
عند تشغيل الجهاز للمرة الأولى ستواجه مشكلة بسيطة وهي عدم عمل الجهاز نهائيا. لن يكون لديك أي مخرجات على الشاشة ولن تجد مخرجات على شكل أنوار. لا أعلم إن كنت ستشاهد مخرجات من خلال مخرج UART، ولكن على الأرجح أنك أيضا لن ترى مخرجات هناك.
التشغيل الأولي للجهاز سيكون بعد أن تقوم بتثبيت نظام تشغيل على بطاقة الذاكرة. من المفضل أولا تنزيل النظام الأصلي المقدم من الشركة الأم للجهاز، وبعدها يمكنك تحديث نظام الإقلاع وتشغيل أي نظام ترغب به. للأسف، الإقلاع الأول يجب أن يكون من خلال بطاقة SD على الرغم من أن الجهاز يدعم بطاقة eMMC وجهاز NVMe فائق السرعة.
تثبيت نظام التشغيل
قبل البدء وفي حال كنت من محبي الأمر dd مثلي، يجب أن تعلم أن هذا الأمر لا يعمل نهائيا في حرق نظام التشغيل الخاص بهذا اللوحي. لا أعلم ما السبب ولكني لم أبحث في الموضوع.
لتنزيل نظام التشغيل الخاص بهذا اللوحي، توجه إلى مستودع الجهاز على GitHub:
من هناك، قم بتحميل الملف الذي يحمل الاسم “sdcard.img”. هذا هو نظام التشغيل الذي من خلاله سنقوم بتشغيل الجهاز لأول مرة.
بعد تنزيل هذا الملف، يجب عليك حرقه على بطاقة SD باستخدام برنامج balena Etcher. يمكن تنزيل البرنامج من الموقع الرسمي له:
بعد إتمام حرق الملف على الذاكرة، يمكنك الآن إدخالها في الجهاز، ومن ثم توصيل الجهاز بالإنترنت من خلال منفذ Ethernet وبعدها قم بتوصيل مزود الطاقة لتشغيل الجهاز. الإقلاع الأول للنظام قد يستغرق حتى 10 دقائق. لاحظ أن التوصيل بالإنترنت هدفه الوصول إلى الجهاز من خلال جهاز آخر وليس الوصول للإنترنت. هذا يعني أنه يمكن توصيل الجهاز بشبكة داخلية غير قابله للوصول إلى الإنترنت بدون مشاكل.
بعد تشغيل النظام بشكل كامل، يمكنك الآن محاولة التواصل مع الجهاز غير بروتوكول SSH. يتوجب عليك أولا العثور على عنوان الجهاز. في حال لم يكن لديك العديد من الأجهزة على الشبكة، قد تتمكن من معرفه عنوان الجهاز بدون عناء، ولكن في حال كنت ممن لديهم عدد كبير جدا من الأجهزة، يمكنك استخدام أداة للفحص. من ناحيتي استخدمت أداة nmap من خلال الأمر التالي:
nmap -sP 10.0.0.*
في حال تمكنت من ذلك، يمكنك الانتقال إلى الخطوة التالية.
تثبيت نظام الإقلاع
بعد إتمام الإقلاع والعثور على عنوان الجهاز، يمكنك الآن الاتصال به من خلال ssh:
ssh [email protected]
قم باستبدال 10.0.0.1 بعنوان الجهاز لديك.
كلمة مرور ssh هي “starfive”.
يمكنك الآن قطع الاتصال مع الجهاز والمتابعة بتحديث نظام الإقلاع في الجهاز.
قم بتنزيل الملف الذي يحمل الاسم “visionfive2_fw_payload.img” و “u-boot-spl.bin.normal.out”. بعد التنزيل، قم بفتح الطرفية ومن ثم انتقل إلى مسار تواجد الملفات التي قمت بتنزيلها.
الآن يتوجب عليك نسخ هذه الملفات إلى الجهاز من خلال الأمر SCP:
scp visionfive2_fw_payload.img [email protected]:/root/scp u-boot-spl.bin.normal.out [email protected]:/root/
في حال كنت من مستخدمي Arch، قد لا تتمكن من نقل الملفات بسبب التغييرات في برنامج OpenSSH وبالتالي يمكنك استخدام الأمر التالي لنقل الملفات:
scp -O visionfive2_fw_payload.img [email protected]:/root/scp -O u-boot-spl.bin.normal.out [email protected]:/root/
بعد نقل الملفات، يمكنك الاتصال بالجهاز من جديد والقيام بالأوامر التالية من داخل الجهاز:
flashcp -v u-boot-spl.bin.normal.out /dev/mtd0flashcp -v visionfive2_fw_payload.img /dev/mtd1
على الرغم من أن تحديث نظام الإقلاع ليس ضروري لتشغيل أنظمة التشغيل المختلفة، إلا أنه مستحسن وننصح به وبشدّة. تحديث نظام الإقلاع يساعد في تشغيل النظام بشكل أفضل ويوفر توافق أعلى مع أنظمة التشغيل الجديدة.
تثبيت نظام آخر على الجهاز
النظام الأصلي الذي يتم توفيره للجهاز لا يقوم بتوفير العديد من المميزات. هو بالكاد يعتبر نظام تشغيل أصلا. هذا النظام وظيفته هي الإقلاع والدخول إلى بيئة من خلالها يمكن الوصول إلى الجهاز والقيام ببعض العمليات مثل تحديث نظام الإقلاع.
مثل أي شخص آخر، قد ترغب في تشغيل نظام لينيكس متكامل على هذا اللوحي، وعلى الرغم من إمكانية تشغيل نظام رسومي كامل، إلا أننا سوف نشرح تثبيت نسخة الخادم فقط حيث أنها الأسهل والأسرع والأكثر توافق.
نظام Armbian
هذا النظام مبني على نظام Debian وهو موجه بشكل خاص للأجهزة التي تعمل بمعمارية ARM. على الرغم من أنه موجه لمعمارية ARM إلا انه تم توفير نسخة خاصة لمعمارية RISC-V. يمكنك تنزيل النظام من الرابط التالي:
من المُفضّل تنزيل نسخة Armbian 23.05 Lunar minimal.
بعد تنزيل الملف، لاحظ أن صيغة الملف هي xz، يجب عليك فك ضغط هذا الملف قبل أن تتمكن من حرقه على بطاقة SD. يمكنك فك الضغط من خلال الأمر التالي في الطرفية:
والآن يمكنك حرق النظام باستخدام البرنامج Etcher.
بعد الإقلاع، يمكنك الدخول باستخدام المستخدم root وكلمة المرور 1234. عند الدخول لأول مرة، يجب عليك تغيير كلمة المرور لأي شيء آخر ومن المُفضّل جدا استخدام كلمة مرور قوية.
نظام Armbian هو أحد أفضل الأنظمة الموجودة اليوم لجهاز VisionFive 2 فهو نظام خفيف ومتكامل وهو نظام ثابت بحكم انه مبني على Debian.
للأسف، الجهاز حاليا غير مدعوم من قبل أي نظام لينيكس آخر وهذا هو النظام الوحيد المتوفر للعمل من خلاله على هذا الجهاز. على الأرجح سيتوفر له العديد من الأنظمة في المستقبل، ولكن حاليا ليس لديك عدد كبير من الخيارات.
الإقلاع من NVMe
الإقلاع من NVMe مدعوم من قبل هذا الجهاز، ولكن العملية معقدة بعض الشيء للمبتدئين. على الرغم من أن العملية لن تتسبب بتلف دائم للجهاز في حال فشلت التجربة، نحن ننصحك وبقوة أن تقرأ الخطوات بالكامل قبل البدء بتنفيذ الأوامر.
الخطوة الأولى للبدء هي تثبيت قطعة NVMe في الجهاز. يمكنك تثبيت القرص الصلب من أسهل الجهاز كما في الصورة التالية:
بعد ذلك قم بتشغيل الجهاز ومن ثم قم بالاتصال بالجهاز من خلال ssh.
الآن بعد أن قمنا بالدخول والتحويل إلى المستخدم root، قم بتنفيذ الأمر التالي للتأكد من وجود القرص الصلب الجديد:
lsblk
في حال تم قراءة القرص الصلب بنجاح، سوف تشاهد قرص جديد في النظام يحمل الاسم nvme0n1. في حال وجدته، يمكنك المتابعة بالخطوات التالية، وفي حال لم تجده، تأكد من توصيل القرص بشكل صحيح وبأنك اشتريت النوع الصحيح من الأقراص وليس نوع غير مدعوم.
من أجل تقسيم القرص الصلب، أو بالأحرى حذف كل ما هو موجود على القرص الصلب، يجب تثبيت برنامج gdisk من خلال الأمر التالي:
sudo apt install gdisk
ومن ثم دخول القرص الصلب من خلال الأمر التالي:
sudo gdisk /dev/nvme0n1
في الصورة السابقة تجد مثال لقرص صلب جديد لم يتم استخدامه من قبل وبالتالي لا يوجد عليه ولا أي شيء ولا حتى جدول الأقسام. في حال كان القرص الصلب لديك هكذا، قم بالخروج من البرنامج ومتابعة الخطوات التالية، عدا عن ذلك، قم بحذف جميع الأقسام من خلال البرنامج.
عند التأكد من فراغ القرص الصلب من أي نوع بيانات أو أقسام، يمكنك المتابعة بتنفيذ الأمر التالي لاستنساخ بطاقة الذاكرة إلى قرص NVMe:
cat /dev/mmcblk1 > /dev/nvme0n1
للأسف ولأن البطاقة بطيئة جدا، هذه العملية سوف تستغرق الكثير من الوقت. يمكنك استغلال الوقت بالصلاة، التسبيح، أو حتى شرب القهوة. في الحقيقة، استنساخ بطاقة بحجم 64 جيجا يستغرق تقريبا 50 دقيقة. هذا وقت كاف للتسبيح والصلاة وشرب القهوة.
لاحظ أن الأمر السابق لا يقوم بعمل أي مخرجات. سوف تحصل على طرفية لا تقوم بعمل أي شيء ولا تعطي أي مؤشر على القيام بأي شيء لمدة 50 دقيقة متواصله. على الأرجح أن هذا بسبب استخدامي لقرص صلب رخيص وليس شيء ذو جودة مرتفعة. عند الانتهاء ستحصل على سطر جديد لا أكثر بدون أي معطيات ولا تلميحات عن نجاح أو فشل العملية. لا تقلق، في حال أن البطاقة لديك غير تالفه، العملية ستتكلل بالنجاح.
قبل أن تتابع، قم بتنفيذ الأمر التالي لتعلم ما هي هوية الأقسام الموجودة لديك:
lsblk
لاحظ أن القسم الأصلي لدي يحمل الاسم mmcblk1p1 والقسم الجديد يحمل الاسم nvme0n1p1 هذه التسميات سوف نستخدمها في الأوامر التالية لتمكين الإقلاع من القرص الجديد.
في حال نجحت العملية، سيكون لديك قرصين لديهم نفس الهوية. هذا الأمر غير صحيح وسوف يتسبب في فشل إقلاع النظام. بالتالي، سوف نقوم بتغيير هوية بطاقة الذاكرة من خلال الأمر التالي:
sudo tune2fs -U random /dev/mmcblk1p1
في حال فشل الأمر السابق، أو لاحظت خطأ خلال التنفيذ، قم باستخدام هذا الأمر بدلا من الأمر السابق:
sudo tune2fs -O metadata_csum_seed -U random /dev/mmcblk1p1
عند اكتمال الأمر، يمكنك التأكد من هوية الأقراص من خلال الأمر التالي:
blkid
لاحظ أن للقرص الصلب وبطاقة الذاكرة هويات مختلفة كما في الصورة التالية:
الآن نحتاج إلى إصلاح نظام الإقلاع من خلال ضبط ملف extlinux.conf. يمكنك عمل ذلك من خلال الأمر التالي:
sudo sed -i 's/mmcblk1p3/nvme0n1p1/g' /boot/extlinux/extlinux.conf
في حال لم يعمل معك الأمر، قم بتنفيذ الأمر التالي:
sudo sed -i 's/mmcblk1p3/nvme0n1p1/g' /boot/boot/extlinux/extlinux.conf
والآن يمكنك تشغيل برنامج تفقد وإصلاح الأخطاء في القرص الصلب. من المفضل القيام بهذا قبل محاولة إعادة تشغيل الجهاز:
sudo fsck -yf /dev/nvme0n1p1
عند الانتهاء، قم بإعادة تشغيل الجهاز. للأسف، الجهاز وعلى ما يبدو لا يعمل بدون بطاقة SD حتى عند الإقلاع من جهاز NVMe. ولكن بعد الإقلاع يمكنك التأكد من أنك تعمل من خلال NVMe من خلال فحص الأقراص عبر الأمر التالي:
lsblk
في حال شاهدت أن القرص nvme0n1p1 مُنصّب، هذا يعني أنك تعمل من خلال NVMe وأنك أتممت المهمة بنجاح!
في حين أن الجهاز يُعتبر أحد الأجهزة الثورية في هذا المجال، إلا انه لا زال ضعيف جدا مقارنةً بأجهزة ARM وغيرها من المعالجات. على الرغم من ذلك، عليك أن تعلم أن الهدف من الجهاز ليس توفير أداء فائق، ولكن توفير بيئة متكاملة للمطورين للعمل على المعمارية الجديدة بشكل ملائم ومتكامل حتى يتوفر لدينا عدد كبير من البرمجيات المتوافقة عندما يحين وقت نرى فيه أجهزة RISC-V تسيطر على العالم.