الصفحة الرئيسية » howto » كيفية تثبيت برنامج إضافي على جهاز التوجيه المنزلي (DD-WRT)

    كيفية تثبيت برنامج إضافي على جهاز التوجيه المنزلي (DD-WRT)

    هل رغبت في الحصول على وظائف إضافية مثل البريد الإلكتروني أو Bit-torrent أو MySQL مباشرة على جهاز التوجيه؟ حسنا ربما الآن يمكنك ذلك. كيف إلى المهوس الغوص في كيفية تثبيت برنامج Opkg على DD-WRT.

    صورة جان سبيكتور وأفيراز رافيف

    إذا لم تكن قد قمت بذلك بالفعل ، فاحرص على مراجعة المقالات السابقة في السلسلة:

    • قم بتشغيل جهاز التوجيه المنزلي الخاص بك إلى جهاز توجيه يعمل بشكل ممتاز مع DD-WRT
    • كيفية إزالة الإعلانات مع Pixelserv على DD-WRT

    على افتراض أنك معتاد على تلك المواضيع ، استمر في القراءة. ضع في اعتبارك أن هذا الدليل أكثر تقنيًا قليلاً ، ويجب أن يكون المبتدئون حريصين عند تعديل جهاز التوجيه الخاص بهم.

    المحن

    لقد قمت مؤخرًا بشراء جهاز Buffalo WZR-HP-AG300H جديد والذي يأتي مع إصدار DD-WRT من جديد. نظرًا لحقيقة أن هذا الموجه يحتوي على منفذ USB ، اتصلت على الفور بجهاز HD وحاولت استخدام دليل wiki “Optware، The Right Way”. لسوء الحظ ، سرعان ما اكتشفت أن الموجه الذي حصلت عليه ، والذي يعتمد على Atheros والسيناريو من صفحة wiki هذه ، لا يدعمه. لذا بدأت في الحفر (كما أفعل دائماً) ووجدت العديد من الأدلة (1 و 2 و 3 و 4) التي تهدف إلى شرح كيفية عمل Opkg يدوياً. في حين أن مساهمتهم (من بين مصادر أخرى على شبكة الإنترنت) إلى هذا الدليل كانت لا تقدر بثمن ، إلا أن بعض الإرشادات (IMHO) ليست بسيطة إلى الأمام بشكل كاف. على سبيل المثال ، إعطاءك ملفات "lib" ، ولكن لا تعلمك كيفية اصطيادها من المصدر. أيضا الاضطرار إلى الاستفادة من لينكس HD مهيأ أو على الأقل قسم واحد (وهو في الواقع لا يعمل حتى على البرامج الدائمة لقد اختبرت مع). ولهذا السبب ، شعرت بالحاجة إلى إنشاء الإجراء الموجز والإيجابي والمباشر أدناه والذي يمكن اتباعه للحصول على مدير حزمة OpenWRT Opkg للعمل على أجهزة التوجيه هذه.

    تحديث: لقد تم إعادة إنشاء إمكانية تقسيم الأقسام في الإصدار المعاد تسميته على إصدار 17798 ألفا.

    ما هو Opkg?

    Opkg هو مدير حزم مثل aptitude / aptitude و yum. يعمل كبديل لمدير حزمة Ipkg ، ويمكن استخدامه لتثبيت برامج مثل: برنامج BitTorrent daemon للإرسال ، ومرسل البريد ssmtp و Knockd a daemon التي تقوم بتنفيذ البرامج النصية بعد تشغيل منفذ معين ، على سبيل المثال لا الحصر. من موقع OpenWRT:

    الأداة المساعدة opkg (شوكة ipkg) هي مدير حزمة خفيفة الوزن تستخدم لتنزيل وتثبيت حزم OpenWrt من مستودعات الحزم المحلية أو تلك الموجودة على الإنترنت. Opkg محاولات حل تبعيات مع الحزم في المستودعات - إذا فشل ذلك ، فسوف يقوم بالإبلاغ عن خطأ ، وإلغاء تثبيت هذه الحزمة.

    إذاً باستخدام Opkg ، يمكننا تثبيت أشياء مثلما فعلنا مع Ipkg على دليل “Unleash Even More Power from Your Home Router”. الاختلافات الرئيسية ، هي:

    1. من أجل إعطاء أمثلة SSMTP و Knockd ، يجب عليك حقًا معرفة الاعتماديات يدويًا. الإجراء للقيام بذلك يدويا مزعج وليس مستقيم جدا. Opkg يقوم بذلك تلقائيا.
    2. هذه المرة سنكون مضيفا على البرامج الثابتة الموجودة في مكانها ، بدلاً من استبدالها. في حين كان استبدالها ممارسة مهوس ممتازة ، كان من دون شك: خطير ، عرضة للمشاكل ، لا رجعة فيها وأسوأ من جميع الموجه محددة. وغني عن القول أن هذا هو وسيلة أبسط وأكثر أمنا.

    المتطلبات الأساسية

    لإكمال مذكرة هذا الدليل ، قم بما يلي:

    1. كما تم ذكره أعلاه ، تم إنشاء هذا الدليل واختباره على Buffalo WZR-HP-AG300H مع إصدار البرامج الثابتة "Pro" الخاص بـ Buffalo في 17135. يجب أن يعمل على أي من أجهزة التوجيه المعتمدة على Atheros (ar71xx) مع أي إصدار من DD-WRT لنفس المراجعة أو أعلى ، لكن الأميال الخاصة بك قد جدا.
    2. ستحتاج إلى تمكين SSH على جهاز التوجيه ، وكذلك تثبيت WinSCP واستخدامه للاتصال به. تم شرح هذا في دليل "كيفية إزالة الإعلانات مع Pixelserv على DD-WRT". في الواقع ، سيتم افتراض أنك قادر على القيام بكل ما هو موضح في هذا الدليل.
    3. يجب أن تكون قادرًا على الاتصال بجهاز التوجيه باستخدام جهاز طرفي (يُنصح باستخدام SSH). بعض المؤشرات حول كيفية القيام بذلك ، هي على ويكي DD-WRT.
    4. مساحة لـ JFFS وحوالي 4 ميغابايت لمساحة مهيأة بعد الإعداد الأساسي. لا تعد مساحة JFFS شرطًا أساسيًا فحسب ، بل هي ساتر عرض. هذا لأن ، إذا كان جهاز التوجيه لديك لا يقل عن 4 ميغابايت من المساحة المنسقة المذكورة أعلاه ، فلن تحصل على أي فائدة حقيقية من هذا الدليل ، وسيكون من الأفضل استخدام "Unleash Even More Power from Your Home Router" دليل لتثبيت حزم Ipkg مباشرة في البرامج الثابتة أو تثبيت حزم Ipkg يدوياً. اتبع التعليمات الموجودة في دليل "كيفية إزالة الإعلانات مع Pixelserv على DD-WRT" لتمكين JFFS ، وشاهد مقدار المساحة المتوفرة لديك بعد يتم تنسيقه.

    ملحوظة: من الممكن القيام بذلك من خلال مساحة 2 ميغابايت فقط للإعداد ، لكننا سنخسر نتيجة "/ etc" لتصبح قابلة للقراءة ، وسيتعين عليك استدعاء Opkg ، مع تحديد ملف التكوين يدويًا في كل مرة ... وهو ما يشبه سو اعرج ...  

    فلنسرع

    في هذه المرحلة ، يجب تمكين JFFS وتكون قادرًا على SSH / WinSCP في جهاز التوجيه.

    1. افتح جلسة طرفية لجهاز التوجيه.
    2. قم بإنشاء دليل مؤقت سوف نعمل فيه:

      مكدير / تمة / 1
      مؤتمر نزع السلاح / تمة / 1

    استخدم Ipkg لتثبيت Opkg
    بينما سنحل محل Ipkg كمدير الحزم ، سنستخدمه لتثبيت حزمة تثبيت Opkg يدويًا.

    1. للقيام بذلك ، قم بتنزيل حزمة تثبيت Opkg للبنية ar71xx من صندوق مشروع OpenWRT:

      wget http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/opkg_618-2_ar71xx.ipk

      NOTE1: في وقت كتابة هذه السطور ، 618 هو الإصدار الأحدث ، قد يكون هذا عرضة للتغيير في المستقبل ، لذلك قم بالتعديل وفقًا لذلك.
      ملاحظة 2: قد يكون من الممكن أن يكون الاختلاف الوحيد في الحصول على هذا الدليل للعمل في البنى الأخرى هو الحصول على مثبت Opkg من البنية المناسبة لجهاز التوجيه الخاص بك ... إلا أن ذلك لم يتم اختباره من قبل مؤسستك بالفعل..

    2. استدعاء Ipkg لتثبيت Opkg يدويًا باستخدام:

      ipkg تثبيت opkg_618-2_ar71xx.ipk

      ملحوظة: يمكنك ، إذا أردت ، أيضًا تثبيت كل حزمة في المستودع يدويًا بهذه الطريقة. ومع ذلك ، فإن هذا يعني أنه سيتعين عليك حل تبعياتك الخاصة ... وماذا ستكون المتعة في ذلك?

    الحصول على ملفات المكتبة الديناميكية ("lib" s)
    تعد ملفات "lib" المطلوبة لجعل عمل Opkg جزءًا من توزيع OpenWRT. للحصول عليها ، على المرء أن يستخرجها من "Root FileSystem" للتوزيع المذكور.

    1. للقيام بذلك ، قم بتنزيل أحدث "Root FileSystem" الأساسي من أجل openWRT distrebution التي تحتوي على "lib" المطلوب من صندوق مشروع OpenWRT:

      wget http://downloads.openwrt.org/snapshots/trunk/ar71xx/openwrt-ar71xx-generic-rootfs.tar.gz

    2. استخرجها باستخدام:

      tar xvzf openwrt-ar71xx-generic-rootfs.tar.gz

    3. انسخ ملفات "libs" من "rootfs" التي قمنا باستخلاصها أعلاه إلى دليل "libs" على JFFS لدينا ، مع الحفاظ على سماتها والروابط الرمزية:

      cp -Pp / tmp / 1 / lib / * / jffs / usr / lib /

      ملحوظة: ستحصل على رسائل تفيد بأن الأدلة الفرعية يتم حذفها. وبما أننا لا نحتاج إلى أي شيء سوى ملفات "lib" ، فهذا أمر جيد ويمكنك تجاهل هذه الرسائل بأمان.

    إصلاح LATLABRARY "PATH"
    نحن بحاجة إلى إخبار الموجه ، أين نبحث عن المكتبات المشتركة (libs) التي قمنا بتثبيتها فقط ، وأنه يجب القيام بذلك قبل تلك التي جاءت مع البرامج الثابتة.

    1. للقيام بذلك ، قم بتعيين متغير البيئة LD_LIBRARY يدويًا (في الوقت الحالي) ، لجعله بحيث يكون الموقع الذي نسخت فيه ملفات lib الجديدة هو الأول في "PATH":

      تصدير LD_LIBRARY_PATH = / jffs / usr / lib: $ LD_LIBRARY_PATH

    قراءة قابلة للكتابة "/ الخ"
    سنقوم بنسخ "/ etc" إلى JFFS ثم نضع نقطة التثبيت "/ etc" العادية ، أشر إلى ذلك. يؤدي القيام بذلك إلى فتح عالم من الاحتمالات ، لأن "/ etc" سيصبح قابلاً للقراءة (وهو ما كنت أنتظره شخصياً لأعطيه أو خذ 7 سنوات الآن) وتمكن الحزم التي تتوقع هذا السلوك ، للعمل بشكل صحيح.

    1. قم بإنشاء الدليل الذي يحمل "/ etc":

      mkdir -p / jffs / geek / etc

    2. نسخ كامل "/ etc" بشكل متكرر مع الحفاظ على جميع الأدلة الفرعية ، وسمات الملفات والروابط الرمزية.

      cp -a / etc / * / jffs / geek / etc /

    3. يدويا (حاليا) "ربط التحميل" الدليل "/ etc" إلى JFFS واحد:

      mount -o bind / jffs / geek / etc / / etc /

    ضبط دليل Optware ("/ opt")
    يتوقع Opkg من OpenWRT أن يتم استخدامه عندما يتم إنشاء البرنامج الثابت الخاص بالموجه. في مثل هذا الوقت ، لا يكون FileSystem على الموجّه بعد ، وبالتالي لا يزال عرضة للتغيير ، لا توجد مشكلة في التثبيت لأي موقع في نظام الملفات. لهذا السبب يقوم ملف تكوين Opkg بتثبيت حزم لتثبيت "root" (/) من FileSystem. ومع ذلك ، نحن نستخدم Opkg بعد تم إنشاء البرامج الثابتة وتثبيتها على جهاز التوجيه ، ولأننا لا نستطيع تغيير جذر نظام الملفات بحيث يكون قابلاً للقراءة ، سنقوم بوضع جميع التركيبات ليتم تثبيتها تحت "/ opt". ومع ذلك ، يشير "/ opt" حاليًا إلى موقع للقراءة فقط على البرنامج الثابت الخاص بالموجه. للتغلب على هذا ، سنجعل "/ opt" يشير إلى JFFS ، والتي تكون قابلة للقراءة.

    1. للقيام بذلك ، قم بإنشاء الدليل الذي سيحتوي على حزم Optware:

      mkdir -p / jffs / opt

    2. يدوياً (حتى الآن) "ربط التحميل" دليل "/ opt" إلى JFFS واحد:

      mount -o bind / jffs / opt / / opt /

      ملاحظة: بينما خارج نطاق هذا الدليل, قد يرغب المستخدمون الأكثر تقدمًا في تغيير نقطة التحميل هذه ، للإشارة إلى HD.

    ضبط ملف تكوين Opkg
    نريد أن يكون ملف تكوين Opkg هو المكان الذي يبحث فيه Opkg عنه بشكل افتراضي (وهو "/ etc") ويتم ضبطه ليتم التثبيت على "/ opt".

    1. للقيام بذلك ، قم بنقل ملف تكوين opkg المثبت بحزمة Opkg إلى الموقع "etc /" القابل للقراءة:

      mv /jffs/etc/opkg.conf / etc /

    2. تغيير وجهة تثبيتات برنامج Optware لتكون "/ opt" بدلاً من "root" (/).
      للقيام بذلك ، من خلال المحرر "vi" أو WinSCP ، انتقل إلى "/ etc /" وقم بإنشاء محتوى الملف "opkg.conf":

      vi /etc/opkg.conf

      اجعلها تبدو كالتالي:

      src / gz snapshots http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages
      جذر dest / اختيار
      dest ram / tmp
      lists_dir ext / var / opkg-lists
      الخيار overlay_root / overlay

      ملحوظة: يمكنك تغيير التوجيه "lists_dir" للإشارة إلى موقع ليس في ذاكرة الوصول العشوائي ، ولكن بدلاً من ذلك على JFFS. في حين أن هذا من شأنه أن يعفيك من تحديث القوائم ، قبل أن تتمكن من تثبيت برامج إضافية (إذا تم إعادة تشغيل جهاز التوجيه الخاص بك من آخر مرة) ، فستفقد حوالي 1.5 ميغابايت من مساحة JFFS الشحيحة وسوف تتضاعف مع تآكله.

    مرحبا طفل
    يجب أن تكون قادراً على رؤية أن Opkg يعمل عن طريق إصدار أوامر التحديث والقوائم.

    1. إذا سار كل شيء بشكل جيد ، يجب أن ترى أن قوائم Opkg قد تم تحديثها بدون أخطاء وأنك جاهز لتطبيق النص البرمجي في الخطوة التالية:

      تحديث opkg قائمة opkg

    2. خذ الوقت الكافي لبدء استكشاف الحزم المتوفرة في المستودع ... .

    البرنامج النصي لبدء التشغيل
    نحتاج الآن إلى جعله يتم إجراء جميع عمليات التثبيت والتوجيه المطلوبة تلقائيًا عند تشغيل جهاز التوجيه. تحقيقا لهذه الغاية ، أنشأنا لك ، هذا البرنامج النصي gek-init التهيئة.

    1. تحميل ، ثم استخراجها ووضعها تحت عنوان "/ jffs / geek / etc /". (النظر في القيام بذلك مع WinSCP).
    2. جعل البرنامج النصي قابل للتنفيذ عن طريق الخوض في خصائصه مع WinSCP أو تنفيذ:

      chmod + x /jffs/geek/etc/geek-init.sh

    3. اجعل البرنامج النصي يتم تنفيذه على بدء تشغيل الموجه ، باستخدام WebGUI. تحت الإدارة -> أوامر ، في مربع النص ، ضع:

      /jffs/geek/etc/geek-init.sh web-gui

      انقر فوق "حفظ بدء التشغيل".

    رفس الإطارات
    إذا سار كل شيء بشكل جيد ، فيجب أن تتمكن الآن من إعادة تشغيل جهاز التوجيه واستخدام مدير حزمة Opkg. هذا هو لتحديث وقائمة وتثبيت التطبيقات.
    دعونا اختبار أن كل شيء يعمل عن طريق تثبيت الأمر "netstat" ، والتي تم حذفها لسبب ما في DD-WRT في الآونة الأخيرة. قبل القيام بذلك ، قم بتنفيذ الأمر netstat في الوحدة الطرفية وسوف ترى أنك مبشور بخطأ من shell ، بقول "-sh: netstat: not found".

    1. ستكون خطوتك الأولى دائمًا ، لتحديث قوائم Opkg ، للحصول على أحدث قوائم الحزم من المستودع:

      تحديث opkg

    2. إذا لم تكن تعرف الحزمة التي تحتوي على الأمر "netstat" ، فيمكنك تصفية النتائج باستخدام.

      قائمة opkg | grep netstat

    3. والآن قم بتثبيت "netstat" باستخدام:

      opkg install net-tools-netstat

      والآن ، عند تنفيذ الأمر netstat مرة أخرى أنه يعمل ... أنيق هكتار؟ :)

    حتى المقالات المستقبلية التي سنقوم بتثبيت حزم البرامج وتكوينها باستخدام هذه الطريقة ، قد يكون لديك الكثير من المرح المهووس استكشاف كمية هائلة من البرامج التي هي الآن في متناول يديك.


    إذا كان هذا الجهاز مستحيلًا افتراضيًا ، فيجب أن يكون منطقياً احتمالًا محدودًا. لذلك كل ما عليّ القيام به من أجل صنع واحدة هو تحديد كيف هو غير محتمل بالضبط ، تغذية هذا الرقم إلى مولد الاحتمال المتناهي ، إعطائه كوب طازج من الشاي الساخن حقا وتشغيله ...…… الشيء الوحيد الذي حقا لا أحب ، هو "الحمار الذكي".