Raspberry Pi 5 اب بھی پہلے سے طے شدہ جواب ہے جب کوئی ایک چھوٹا لینکس بورڈ چاہتا ہے، اور اچھی وجہ سے۔ تاہم، بہت چھوٹے، بہت سستے بورڈز ہیں جو بہت سی خصوصیات میں اس سے آگے نکل جاتے ہیں جن کا شوقین سب سے زیادہ خیال رکھتے ہیں۔ نیا جاری کردہ اورنج پائی زیرو 3W. یہ جسمانی سائز میں Raspberry Pi Zero سے تقریباً یکساں ہے، 16GB تک LPDDR5 کے ساتھ ایک اوکٹا کور Allwinner A733 چلاتا ہے، اس میں Vulkan-enabled PowerVR GPU اور 3 TOPS NPU ہے، اور 1GB ماڈل کے لیے $25 سے شروع ہوتا ہے۔
لیکن ایک مسئلہ ہے۔ ایک بہت بڑا۔
بنیادی طور پر، ان میں سے دو سرخی کی خصوصیات کچھ نہیں کرتی ہیں۔ GPU بیکار ہے، ویڈیو انجن بیکار ہے، اور Orange Pi کی آفیشل امیجز سافٹ ویئر میں 3D کو راسٹرائز کرتی ہیں اور CPU پر ویڈیو کو ڈی کوڈ کرتی ہیں۔ چپس کو جو چیز دلچسپ بناتی ہے اس میں سے نصف یہ ہے کہ وہ کچھ نہیں کرتے ڈائی پر بیٹھتے ہیں۔ میں نے اپنے کام کو حقیقت میں کرنے کے لیے سلیکون کو حاصل کرنے میں کچھ وقت صرف کیا، اور نتیجہ ایک ایسی تصویر ہے جو اہم اشتہاری ایکسلریٹر بلاکس کو قابل بناتا ہے جن میں میری دلچسپی ہے: ولکن، اوپن سی ایل، ہارڈویئر ویڈیو ڈی کوڈ/انکوڈ، اور این پی یو۔
ابھی کچھ خالی جگہیں پُر کرنے ہیں، لیکن چند گھنٹوں کی ٹوئیکنگ کے بعد، یہ بورڈ پہلے سے کہیں زیادہ قابل استعمال ہے۔
اس بورڈ میں Raspberry Pi 5 سے بہتر سلکان ہے۔
کاغذ پر، یہ لڑائی نہیں ہے۔
Allwinner A733 ایک octa-core SoC ہے جس میں 2.0GHz تک کے دو بڑے Cortex-A76 cores اور چھ چھوٹے A55 ایفیشنسی کور ہیں۔ یہ وہی A76 فن تعمیر ہے جو Raspberry Pi 5 2.4GHz پر چل رہا ہے۔ کہ pi 5 نتیجے کے طور پر، اسے اب بھی بہت سے سنگل تھریڈڈ کاموں پر جیتنا پڑے گا، لیکن A733 کو مخلوط یا انتہائی متوازی کام کے بوجھ میں ایک حقیقی فائدہ ہے جو اضافی A55 کور استعمال کر سکتا ہے۔
اس کے بعد فاصلہ وسیع ہو جاتا ہے۔ OPi Zero 3W میں LPDDR5 میموری ہے جس میں LPDDR4X، WiFi 6 اور بلوٹوتھ 5.4 Pi 5 کے WiFi 5 اور بلوٹوتھ 5.4 کے لیے ہے، 32GB تک eMMC یا 128GB تک UFS 3.0 اسٹوریج ہے اور Pi 5 مائیکرو ایس ڈی کارڈ سے مقامی طور پر بوٹ کرتا ہے۔ اس میں DisplayPort 1.4 فال بیک موڈ کے ساتھ USB-C، دو MIPI CSI کنیکٹر، ایک MIPI DSI کنیکٹر، اور 4K- قابل منی HDMI آؤٹ پٹ ہے۔ Pi 5 ڈوئل 4Kp60 مائیکرو HDMI اور دو لچکدار MIPI کیمرہ/ڈسپلے ٹرانسیور کے ساتھ مضبوط مین اسٹریم ڈسپلے سپورٹ پیش کرتا ہے، لیکن USB-C ڈسپلے پورٹ فال بیک موڈ یا چھوٹے زیرو سائز کنیکٹرز کے اسی مرکب کے بغیر۔
دو چشمی جو واقعی اہم ہیں وہ ہیں GPU اور NPU۔ A733 میں امیجنیشن PowerVR B-Series BXM-4-64 MC1 Vulkan 1.3 کے لیے مکمل تعاون کے ساتھ اور INT8 تخمینہ کے لیے 3TOPS پر درجہ بندی کردہ VeriSilicon AIPU کی خصوصیات ہیں۔ Pi 5 میں ویڈیو کور VII GPU ہے جس میں مقامی Vulkan سپورٹ ہے اور کوئی NPU نہیں ہے۔ اگر آپ آن ڈیوائس ML کے ساتھ کچھ کرنا چاہتے ہیں، تو یہ اکیلے OPi کو زیادہ پرکشش بنا دیتا ہے۔
قیمت بھی بہت بڑی ہے۔. 1GB ماڈل $25، 4GB $50، 8GB $80، اور 12GB $99.90 ہے۔ 16GB کی قیمت کا ابھی اعلان نہیں کیا گیا ہے۔ Pi 5 کا 8GB ماڈل 12GB OPi سے زیادہ مہنگا ہے، اسے NPU، LPDDR5، یا وائی فائی 6 نہیں ملتا، اور اسے چار کور پر بند کر دیا گیا ہے۔
تاہم، سٹاک کی تصاویر صرف آدھی استعمال ہوتی ہیں کیونکہ کوئی صارف کی جگہ نہیں ہوتی۔
ایک ہی سلکان، مختلف OEM، مختلف سافٹ ویئر کے حقوق
اگر آپ بورڈ اور بوٹ میں اورنج پائی کی آفیشل اوبنٹو امیج (یہ اور ڈیبین امیج صرف دستیاب ہیں) پر مشتمل SD کارڈ لگاتے ہیں، تو زیادہ تر چپس کام کریں گی۔ سی پی یو عام سی پی یو کے کام انجام دیتا ہے۔ Wi-Fi کنیکٹیویٹی، بلوٹوتھ پیئرنگ اور HDMI کام۔ لیکن اگر آپ کوئی ایسی چیز چلاتے ہیں جس کے لیے GPU کی ضرورت ہو، تو آپ دیکھیں گے کہ GPU استعمال نہیں ہو رہا ہے۔ جب آپ 3D-ہیوی ویب صفحہ کھولتے ہیں، تو Chromium سافٹ ویئر راسٹرائزیشن پر واپس آجاتا ہے۔ 1080p ویڈیو چلانے کی کوشش کریں۔ پلیئر اس کے بعد ویڈیو کو سی پی یو کور پر مکمل استعمال کے لیے ڈی کوڈ کرے گا کیونکہ ویڈیو انجن بھی نہیں چل رہا ہوگا۔
مسئلہ یہ ہے کہ: اگرچہ سیلیکون جسمانی طور پر موجود ہے اور کرنل میں VPU لوڈ ہونے کے لیے ڈرائیورز ہیں، لیکن میں نے جن آفیشل امیجز کی جانچ کی ہے ان میں GPU ڈرائیورز اور یوزر اسپیس اسٹیک لوڈ نہیں ہے۔ PowerVR GPU کے کرنل ماڈیولز بالکل لوڈ نہیں ہوتے ہیں، اور کوئی Vulkan، OpenGL ES، یا OpenCL لائبریریاں نہیں ہیں۔ ویڈیو انجن میں کرنل ڈرائیور لوڈ ہوتے ہیں اور کریکٹر ڈیوائسز /dev کے تحت بے نقاب ہوتے ہیں، لیکن وہ صارف کی جگہ سے دستیاب نہیں ہیں۔ کسی بھی پروگرام کے نقطہ نظر سے جو اسے استعمال کرنے کی کوشش کرتا ہے، اسے مؤثر طریقے سے بلاک کر دیا جاتا ہے۔
تو اورنج پائی صرف ڈرائیور کیوں فراہم نہیں کرتا؟ یہ کہنا مشکل ہے۔ یہ لائبریریاں ملکیتی بلاب ہیں جو ان کے اپنے EULA کے تحت فراہم کی جاتی ہیں، اور دوبارہ تقسیم وینڈر کے مخصوص معاہدوں یا پیکیجنگ کے فیصلوں کے تابع ہو سکتی ہے۔ Radxa ایک بورڈ بناتا ہے جسے Cubie A7S کہا جاتا ہے جو وہی Allwinner A733 چپ استعمال کرتا ہے، اور ویڈیو اسٹیک دستیاب PowerVR یوزر اسپیس اسٹیک، ایک ورکنگ Vulkan، اور ایک فعال BSP ویڈیو پاتھ کے ذریعے تصاویر پر کام کرتا دکھائی دیتا ہے۔
اورنج پائی اپنی لینکس امیج میں آل ونر بی ایس پی بلاب فراہم نہیں کرتا ہے۔ فرض کرتے ہوئے کہ لائسنسنگ شامل ہے، میں اندازہ لگا رہا ہوں کہ Orange Pi کا Radxa جیسا معاہدہ نہیں ہوگا۔ تاہم، یہ صرف ایک اندازہ ہے اور اس کی تصدیق نہیں کی گئی ہے۔ جو بات یقینی ہے وہ یہ ہے کہ اوپی کی طرف ایک دانا ہے جو سلیکون اور کئی اوبنٹو اور ڈیبین امیجز کو بغیر کسی ایسی چیز کے چلانے میں بہت خوش ہے جو صارف کی جگہ سے رابطہ کر سکے۔ لہذا میں نے دونوں کو ملانے کا فیصلہ کیا۔
Radxa کی صارف کی جگہ اورنج پائی سے ملتی ہے۔
ہائبرڈ تصویر
اصل آپریشن میں جانے سے پہلے، میں نے پہلے GPU اور ویڈیو انجن کے ساتھ Radxa کی ایک تصویر پکڑی جو مقامی طور پر چل رہی تھی اور اس کے اوپر OPi کے بوٹ لوڈر کو پلگ کیا۔ یہ وہی چپ ہے، یہ کام کیوں نہیں کرتا؟ بدقسمتی سے، چپ مسئلہ نہیں تھا. میرے ارد گرد سب کچھ ایسا ہی تھا۔ OPi کا وائی فائی SDIO سے منسلک ہے، لیکن Radxa کا Cubie A7S USB کی AIC8800 چپ استعمال کرتا ہے، اس لیے Radxa کا پہلے سے بنایا ہوا Wi-Fi ماڈیول OPi کے ذریعے استعمال ہونے والی بس کی جانچ نہیں کر سکتا، اور OPi کا پہلے سے بنایا ہوا SDIO ماڈیول Radkernelxa میں لوڈ نہیں ہے۔ Radxa کی تصویر صارف کے اکاؤنٹس بنانے کے لیے ایک انٹرایکٹو فرسٹ بوٹ وزرڈ کی بھی توقع کرتی ہے، اور وہ وزرڈ صرف سیریل کے بغیر ہیڈ لیس بوٹ پر نہیں چلتا ہے، اس لیے /etc/shadow میں موجود تمام اکاؤنٹس شروع سے ہی مقفل ہیں۔ بوٹ لوڈر کی شکل مختلف تھی، کنسول کا نام مختلف تھا، اور بہت کچھ دستی طور پر پیچ کرنا تھا۔ میں نے زیادہ تر اس کی تشخیص سیریل سے یو ایس بی اڈاپٹر کے ذریعے کی، اور چمکنے، ڈیبگ کرنے، ٹھیک کرنے اور دوبارہ چمکنے کے بعد، آخرکار یہ بوٹ ہوگیا۔ وائی فائی ابھی تک مردہ تھا اور روٹف ایک گندگی تھی۔ چند گھنٹے گزر گئے اور میں نے ایک نیا منصوبہ طے کیا۔
منصوبہ کافی آسان نکلا اور کاش میں نے اسے شروع کیا ہوتا۔ میں نے اورنج پائی کی تصویر کو بیس کے طور پر استعمال کیا۔ اس کی وجہ یہ ہے کہ امیج میں پہلے سے ہی مناسب بوٹ، وائی فائی، ڈیفالٹ یوزر، اور وائی فائی ڈرائیور اسٹیک موجود ہیں۔ پھر ہم نے Radxa کی تصویر سے صرف وہی حصے ادھار لیے جو OPi امیج میں غائب تھے: ملکیتی صارف کی جگہ اور GPU کے لیے کرنل ماڈیول کے ذرائع۔
GPUs کے لیے، Radxa 6.8 تک لینکس ورژن کوڈ ریزولوشن کے ساتھ پورٹیبل سورس کے طور پر کرنل ماڈیول فراہم کرتا ہے، اس لیے DKMS کو OPi کرنل کے لیے صاف ستھرا دوبارہ بنایا گیا ہے چاہے آپ Radxa پر 5.15 امیج سے Orange Pi پر 6.6 تک جائیں۔ یوزر اسپیس لائبریریاں فائلوں کی فہرست کے ساتھ باقاعدہ ڈیبین پیکیجز کے طور پر آتی ہیں، لہذا یہ زیادہ تر صرف فائل کی فہرست سے گزرنے اور مواد کو اسی راستے پر OPi rootfs میں کاپی کرنے کا معاملہ ہے۔ ویڈیو انجنوں میں ایک ہی چال ہے۔ سب کچھ کاپی کرنے اور SD کارڈ کو ری فلیش کرنے کے بعد، OPi کے پاس اچانک کام کرنے والا OMX نفاذ، ایک رجسٹرڈ GStreamer پلگ ان، اور اس کا بیک اپ لینے کے لیے ایک کوڈیک لائبریری موجود تھی۔
راستے میں کچھ عجیب و غریب حصے تھے۔ اگرچہ کرنل کنفیگریشن میں اس کی درخواست کی گئی تھی، OPi کے کرنل ہیڈر پیکج (bsp/include/sunxi-sid.h) سے ایک ہیڈر فائل غائب تھی، لہذا GPU کو دوبارہ بنانے کے لیے اس فائل کو Radxa کی تصویر سے درآمد کرنے کی ضرورت تھی۔ Radxa کی GStreamer کنفیگریشن میں 10 میں سے صرف 3 مطابقت والے جھنڈے تھے جن کو پلگ ان کے ذریعے سپورٹ کیا گیا تھا، اور ہمیں انہیں دوبارہ لکھنا پڑا تاکہ تمام 10 کو ویڈیو ڈی کوڈنگ کے لیے فعال کیا جا سکے۔
اس وقت، ہارڈ ویئر کے سیٹ اپ کے ساتھ، سیریز میں کام کرنے والی ہر چیز، اور OPi کے Wi-Fi سے منسلک ہونے کے ساتھ، میں نے سوچا کہ میں پروجیکٹ کو مکمل کرنے کے لیے تیار ہوں۔ پھر میں نے اسے ایک مانیٹر سے منسلک کیا اور ان مسائل کو دیکھا جن کا میں نے اسٹاک امیج کے ساتھ تجربہ نہیں کیا تھا۔ Xorg غلط DRM ڈیوائس پر خود بائنڈنگ کر رہا تھا، خاص طور پر Sunxi-drm نوڈ کی بجائے پاور وی آر رینڈرنگ صرف نوڈ جس میں اصل میں HDMI کنیکٹر تھا۔
اس مسئلے کو حل کرنا آسان تھا، لیکن ہم نے دریافت کیا کہ ماؤس کرسر ایک پگڈنڈی چھوڑ رہا ہے کیونکہ Allwinner کے KMS ڈرائیور نے صرف پورے اسکرین والے صفحے کے موڑ کو دوبارہ پینٹ کیا اور کرسر کی حرکت سے پیدا ہونے والے چھوٹے گندے چوکوں کو نظر انداز کیا۔ حل Xorg کو سافٹ ویئر شیڈو فریم بفر پاتھ پر مجبور کرنا تھا۔ یہ راستہ تمام اسکرین اپ ڈیٹس کو پورے فریم بفر کی ایک کاپی کے ذریعے KMS فریم بفر تک لے جاتا ہے، جو کہ اصل میں Allwinner KMS ڈرائیور کے ذریعہ پیش کردہ واحد راستہ ہے۔ ایک ضمنی اثر کے طور پر، یہ موڈ سیٹنگ ڈرائیورز کی اپیل کو غیر فعال کر دیتا ہے، لہذا کوئی بھی GL کلائنٹس جو X سرور سے گزرتے ہیں (جیسے Firefox) اپنی HW ایکسلریشن بفر شیئرنگ سے محروم ہو جاتے ہیں اور سافٹ ویئر کی ترکیب پر واپس آ جاتے ہیں۔ کرومیم اسے ANGLE-on-Vulkan کے ذریعے روکتا ہے، جو براہ راست DRM ڈیوائس کے ساتھ بات چیت کرتا ہے اور X سے GPU بفر کمپوزٹنگ کے لیے نہیں پوچھتا ہے۔ فائر فاکس ایسا نہیں کر سکتا۔
پھر بھی، ہمارے پاس اب ایک بہت طاقتور SBC ہے جو حقیقت میں کام کرتا ہے۔ ایک کرنل ماڈیول کی دوبارہ تعمیر، دو یوزر اسپیس پورٹس، اور کچھ کنفیگریشن ٹویکس کے ساتھ، بورڈ اسی اورنج پائی اوبنٹو ڈیسک ٹاپ پر بوٹ کرتا ہے جو آپ کو آفیشل امیج سے ملتا ہے۔ سوائے اب سلیکون اشتہار کے مطابق کارکردگی کا مظاہرہ کرتا ہے۔
یہ وہی ہے جو اصل میں کھولتا ہے
ولکن، اصلی ویڈیو، اور کرومیم دستیاب ہے۔
GPU اور ویڈیو انجن کے چلنے کے ساتھ، بورڈ بہت کچھ کر سکتا ہے۔ کرومیم کینوس، کمپوزٹنگ، راسٹرائزیشن، WebGL، WebGL 2، WebGPU، اور ANGLE-on-Vulkan کے ذریعے لاگو کردہ ویڈیو ڈی کوڈنگ کے لیے ہارڈویئر ایکسلریشن کی اطلاع دیتا ہے، اور chrome://gpu پاور وی آر B-سیریز BXM-4-64 MC1 کو ایک فعال Vulkan ڈیوائس کے طور پر درج کرتا ہے۔ WebGPU کے نمونے جو اسٹاک امیج میں بالکل نہیں چلتے ہیں، بالکل ٹھیک چلتے ہیں، اور WebGL ایکویریم ٹیسٹ دراصل چلتے ہیں۔ ANGLE-on-Vulkan پہلے سے ہی Windows، macOS اور Android پر متوقع GL پاتھ ہے، لیکن لینکس پر ڈیفالٹ نہیں ہے۔
براؤزرز کے علاوہ، کوئی بھی چیز جو پاور وی آر ای جی ایل یا ولکن اسٹیک کو براہ راست استعمال کر سکتی ہے اب اس کے پاس ایک حقیقی سرعت کا راستہ ہے۔ اس میں وہ 3D گیمز شامل ہیں جو GLES یا Vulkan کا استعمال کرتے ہیں، انہیں سافٹ ویئر رینڈرنگ میں ناقابل پلے سے لے کر اصل میں کھیلنے کے قابل بناتا ہے۔ اس میں llama.cpp، ML inference فریم ورک جیسے ncnn اور MNN میں ولکن بیک اینڈ شامل ہے، اور اب CPUs کے اوپر کمپیوٹنگ کے لیے GPUs کا استعمال کر سکتا ہے (حالانکہ اس کے لیے جدید ترین Vulkan ہیڈرز کی ضرورت ہوتی ہے)۔ اس میں ffmpeg کی سکیل_اوپینکل اور سکیل_ولکن فلٹر چینز بھی شامل ہیں، لہذا اس بورڈ پر ویڈیو پروسیسنگ کے لیے ایک GPU کمپیوٹ پاتھ موجود ہے۔
ویڈیو انجن دوسرے نصف کو شامل کرتا ہے۔ میری GStreamer ٹیسٹنگ میں، BSP اسٹیک H.264, H.265, VP9, VP8, MPEG, MJPEG, AVS، اور AVS2 کے لیے ہارڈویئر ڈی کوڈ کے راستوں کو بے نقاب کرتا ہے، لیکن عوامی A733/Radxa مواد بنیادی طور پر H.264, H.265, VP9 اور VP9 کی تشہیر کرتے ہیں۔ GStreamer وہ راستہ ہے جو GST-play اور Totem جیسے ٹولز کے ساتھ ساتھ GStreamer سپورٹ کے ساتھ بنائے گئے دیگر پلیئرز کے ذریعے لیا جاتا ہے۔ لہذا آپ بنیادی طور پر ایک چھوٹے سے لونگ روم میڈیا پلیئر کو Pi زیرو کے سائز کا بنا سکتے ہیں جو CPU استعمال کیے بغیر 1080p ویڈیو کو ڈی کوڈ کرتا ہے، ایک ایسے بورڈ پر جس کی قیمت Pi 5 سے کم ہو۔ ہمارے ٹیسٹوں میں، H.264 میں ایک 1080p Big Buck Bunny کلپ (10 سیکنڈ، 60fps، ہائی پروفائل) کو انکوڈ کیا گیا تھا جس میں CPU کے ساتھ تقریباً ڈی کوڈ ڈی کوڈ 264 پر لازمی تھا۔ تاہم، ffmpeg استعمال کرنے والی کوئی بھی چیز اب بھی کام نہیں کرتی ہے کیونکہ کوئی VAAPI/V4L2-M2M بیک اینڈ نہیں ہے۔
NPU ایک اور خصوصیت ہے جو Pi 5 سے غائب ہے۔. لیکن یہاں اورنج پائی کی عجیب نگرانی ہے، جو اس تمام پروجیکٹ کے ساتھ فٹ بیٹھتی ہے جو میں نے اس پروجیکٹ میں محسوس کی ہے۔ /opt/yolov5/yolov5 میں yolov5 ڈیمو ہے، لیکن میں اسے اصل میں نہیں چلا سکتا۔ وجہ بہت مضحکہ خیز ہے۔ libopencv_imgcodecs.so.4.5 کے خلاف بنایا گیا جب بنیادی تصویر libopencv_imgcodecs.so.4.5d کے ساتھ بھیجی جاتی ہے۔ ڈیمو نہیں چلے گا کیونکہ اسے لائبریری نہیں مل سکتی۔ میں نے تین الگ الگ لائبریریوں کے لیے علامتی روابط بنائے اور انہیں چلانے کے لیے کہا، جو کہ پہلی جگہ عجیب طور پر ایک غلطی تھی۔ ایک بار چلنے کے بعد، بنڈل شدہ YOLOv5 ڈیمو AIPU پر 429 ملی سیکنڈز پر ہوتا ہے۔ بذات خود، یہ ہموار ویڈیو کے لیے کافی نہیں ہے، لیکن یہ دروازے کی گھنٹی والے کیمرے سے موشن ٹرگر کا پتہ لگانے کے لیے کافی ہے، یا اگر آپ آن ڈیوائس ایم ایل کو کلاؤڈ یا USB کورل پر آف لوڈ کیے بغیر چاہتے ہیں۔
VPUs اور NPUs کے ساتھ GPUs کا امتزاج ہلکے وزن والے AirPlay ریسیورز، ہارڈ ویئر سے ڈی کوڈ شدہ 1080p پلے بیک، مقامی Vulkan گیمز، مقامی ML ڈیمو، اور بہت کچھ کے لیے بیک اینڈ فراہم کرتا ہے۔ اور یہ سب کچھ $25 سے شروع ہونے والے SBCs کے ساتھ ہو رہا ہے۔
ابھی تک کیا کام نہیں کر رہا ہے اور کیوں؟
یہ ایک مختصر فہرست ہے۔
بدقسمتی سے، ابھی تک سب کچھ تیار نہیں ہے۔ mpv ایک سافٹ ویئر فال بیک ہے کیونکہ یہ صرف ffmpeg کے libavcodec hwaccel API کے ذریعے ہارڈویئر ویڈیو ایکسلریشن کے بارے میں جانتا ہے اور Allwinner کے BSP ویڈیو اسٹیک کے لیے اس کا کوئی بیک اینڈ نہیں ہے۔ Allwinner نے کبھی بھی VAAPI ڈرائیور نہیں لکھا، upstream V4L2 cedrus ڈرائیور ابھی تک A733 کے بارے میں نہیں جانتا، اور ffmpeg کا h264_omx انکوڈر بھی مدد نہیں کرتا ہے۔ BSP میں واحد OMX IL کور Allwinner’s libOmxCore.so ہے، اور h264_omx libomxil-bellagio کے لیے ہارڈ کوڈ کیا گیا ہے، اس لیے یہ GStreamer کے استعمال کردہ اجزاء کو بھی لوڈ نہیں کر سکتا۔
کام کرنے والا OMX راستہ GStreamer کے gst-omx پلگ ان کے پیچھے ہے، جو libOmxCore.so کے ساتھ gstomx.conf کے ذریعے براہ راست بات چیت کرتا ہے۔ اس کا مطلب یہ ہے کہ GStreamer کے مقامی ٹولز (Totem، gst-play، GStreamer پر بنی کوئی بھی چیز) ہارڈویئر ڈی کوڈ حاصل کرتے ہیں، لیکن ffmpeg پر مبنی کھلاڑی ایسا نہیں کرتے، بشمول Jellyfin جیسی چیزیں۔ Firefox WebGL وہی سافٹ ویئر ہے جو پہلے بیان کردہ شیڈو فریم بفر وجوہات کے لیے پیش کیا گیا ہے۔ یہ آپ کو اس کے ارد گرد حاصل کرنے میں مدد نہیں کرے گا کیونکہ Firefox لینکس پر ANGLE فراہم نہیں کرتا ہے۔ Chromium کام کرتا ہے، لہذا Chromium کام کرتا ہے۔ لیکن وہی VAAPI مسئلہ وہاں بھی لاگو ہوتا ہے، لہذا Chromium ویڈیو ڈی کوڈنگ کام نہیں کرتی ہے اور Radxa بورڈ پر بھی یہی کہانی ہے۔
Raspberry Pi 5 اب بھی جیتتا ہے جہاں یہ ہمیشہ جیتتا ہے: پالش شدہ تصاویر جہاں ہر چیز کام کرتی ہے جس دن آپ اسے فلیش کرتے ہیں، تقریباً کامل دستاویزات، اور اتنی بڑی کمیونٹی کہ آپ جو چاہیں، کسی نے پہلے کر لیا ہو۔ اس نے کہا، موجودہ Orange Pi Zero 3W پیک پر ہارڈ ویئر بہت بہتر ہے۔ مزید کور، تیز RAM، NPU، کوڈیکس کی زیادہ ہارڈویئر ویڈیو رینج، سب کچھ چھوٹے فارم فیکٹر میں اور کم قیمت پر۔ اسٹاک امیج میں، اس ہارڈ ویئر اور صارف کے درمیان صرف ایک ہی چیز کھڑی ہے یوزر اسپیس اسٹیک، جو OEM کے ذریعہ فراہم نہیں کیا گیا ہے۔ صارف کی جگہ کو واپس رکھیں اور یہ بورڈ اپنے سائز اور قیمت کے ٹیگ سے مختلف گفتگو کرتا ہے۔
یہاں تک کہ اگر آپ کو اسی مسئلے کے ساتھ کوئی دوسرا بورڈ ملتا ہے، تب بھی یہاں استعمال کیے گئے طریقے ممکنہ طور پر لاگو ہوں گے۔ یہ عجیب بات ہے کہ اسے خود ٹھیک کرنا پڑتا ہے، لیکن درستگی موجود ہے، تعمیر کی اسکرپٹ دوبارہ پیدا کرنے کے قابل ہے، اور نتیجہ تھوڑا سا ایس بی سی ہے جو باکس پر موجود ہر قیاس میں جو کہتا ہے وہی کرتا ہے۔ میں واقعی میں یہی چاہتا تھا۔