إعـــــــلان

تقليص
لا يوجد إعلان حتى الآن.

بناء موديل بدون وجود ملفات السورس(لتعريف العتاد غير تاموجود)

تقليص
X
 
  • تصفية - فلترة
  • الوقت
  • عرض
إلغاء تحديد الكل
مشاركات جديدة

  • بناء موديل بدون وجود ملفات السورس(لتعريف العتاد غير تاموجود)

    بناء موديل بدون وجود ملفات السورس(لتعريف العتاد غير الموجود)

    السلام عليكم ورحمة الله وبركاته


    غالبا عندما تأتي لتعرف قطع العتاد الموجودة على جهازك من خلال لينوكس تتعرف جميعها من خلال لينوكس نفسه والأمور تسير كلها على احسن حال … لكن !!! … بعض الأحيان تجد جهاز عليه مثلا كارت شاشة غريب أو غير مثبت تعريفه داخل التوزيعة التي قمت بتنصيبها … ولهذا ستحتاج أكيد الى تركيب هذا العتاد بنفسك من خلال تركيب الموديول الخاص به الى داخل الكيرنل الذي تعمل عليه … بعض المرات هذا الموديول متوفر وبعض المرات غير متوفر لديك سوى السورس له … هنا يأتي السؤال كيف أقوم ببناء هذا الموديول للكيرنل الحالي من دون أن يكون لدي السورس للكيرنل ؟ هذا ما سأجيب عليه الآن …

    أول شي سنحتاج الى تنصيب الكيرنل هيدرز kernel-headers الخاصة بنسخة الكيرنل التي لدينا … ويمكنك إيجادها من هنا أو من هنا طبعا لمن يسأل ما هي الـــ kernel-headers … فهي المكتبات التي تستعملها لغة سي c لتركيب وبناء الكيرنل وغيرها من البرامج … طبعا لمعرفة ما هي نسخة الكيرنل التي لديك نفذ التالي: uanme -r

    الآن يجب أن نغيير ال Makefile الخاص بالموديول الذي تريد بناءه لكي يقوم بإستعمال مجلد البناء build الخاصة بالكيرنل الحالي … لمعرفة ما هو المجلد نفذ التالي: ls -d /lib/modules/$(uname -r)/build هذا سيرجع لك المجلد الذي يحتوي على ملفات البناء الذي سنحتاجها في بناء الموديول module …

    الآن لو نفرض إنه الملف الذي لديك هو driver.c … قم بفتح ملف ال Makefile بأي محرر ترغب به … بالنسبة لي دائما أفضل ال vi ولهذا سأكمل عليه كالتالي: vi Makefile ومن ثم ضع فيه الكود التالي:

    obj-m := driver.o
    KDIR := /lib/modules/$(shell uname -r)/build
    PWD := $(shell pwd)
    default:
    $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules


    الأن أغلق وأحفظ الملف … وبعد ذلك نفذ الأمر make ليقوم ببناء ال driver.ko الي هو الموديول المطلوب … الآن قمنا ببناء الكيرنل كل ما علينا فعله هو تركيبه على الكيرنل من خلال الأمر التالي: modprobe driver

    هذا الشرح لأخونا الغالي ... [email protected] وأستأذنه بنقلة من مدونته
    ---------------
    هالموضوع املي الوحيد ,, يعني يا استمر مع لينكس او اجلس اتفرج فيه كل يوم بدون فايده

    امنيتي من زمان استخدم لينكس ,,وتحققت بتركيبه على الجهاز فقط

    ومصادرنا في التعلم هي النت ,, يعني بدون اتصال ما اعتقد بستفيد

    وكوني مبتدا ارجوا من الاخوان شرح شوية تفصيل

    لاني ناوي اطبق الشرح على تعريف مودم موتورولا

    نوع التوزيعه فيدورا 5 والكيرنل 2.6.18

    وللأسف مالقيت kernel-headers يتوافق مع الكيرنل اللي استخدمه



    الآن لو نفرض إنه الملف الذي لديك هو driver.c … قم بفتح ملف ال Makefile بأي محرر ترغب به … بالنسبة لي دائما أفضل ال vi ولهذا سأكمل عليه كالتالي: vi Makefile ومن ثم ضع فيه الكود التالي:

    obj-m := driver.o
    KDIR := /lib/modules/$(shell uname -r)/build
    PWD := $(shell pwd)
    default:
    $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
    اللي فهمته الان اني انزل تعريف لمترولا متوافق مع لينكس ,, اوكي

    طبعا امتداداه .c
    افتح الملف >>> بستخدم الامر vi حتى احرره ببرنامج vi
    ----
    اواجه صعوبه في فتح بعض الملفات او المجلدات في الواجهه الرسوميه

    واشوف ان الاوامر النصية قويه وسريعه في تعاملها مع الملفات

    الان كيف ادخل هذا الكود باستخدام meakfail

    اخر شي ابي الخطوات بشرح مفصل اذا تكرمتووو اوكون شاااكر لكم يا اخون

    الأن أغلق وأحفظ الملف … وبعد ذلك نفذ الأمر make ليقوم ببناء ال driver.ko الي هو الموديول المطلوب … الآن قمنا ببناء الكيرنل كل ما علينا فعله هو تركيبه على الكيرنل من خلال الأمر التالي: modprobe driver
    واعذرووني على الاطاله

    لو اطبق بعض هالاشياء والاقي نتيجه بيكون دافع قوي للاستمرارا

    اتمنى الاقي شرح على قد فهمنا

    ما اعرف في لينكس الا التريمنال >> لاني حاولت ارجع الكيرنل لأصدار سابق 2.4.5 لانه يدعم تعريف موترولا ولكن كان فيه ايرور عند بناء الموديل make modules_install والخطأ في ملف داخل مجلد net
    و bzImage مالقيتها في المكان المطلوب ,, وخاب املي في اي طريقة ثانيه
    التعديل الأخير تم بواسطة خيالي...; الساعة 10-07-2007, 03:40 PM.

  • #2
    شباب موضوعي ماله اجابه

    او غير واضح

    تعليق


    • #3
      اذكر اني عملت compile لتعريف كاميرا الويب للابتوب على سلاكس ولما كان مسار الكرنال غلط اعطاني رسالة بتحديد المكان كتبته وخلاص تم التبثبيت ..............

      وتشكر على طريقتك .......سلام

      تعليق


      • #4
        شاكر مرورك اخي الكريم

        ولكن موضوعي فيه عدة اسئلة ,, احتاج لاجابه

        1- صيغه الامر meakfail

        لادخال كود داخل ملف معين

        2- حاولت ارجع الكيرنل لأصدار سابق 2.4.5 لانه يدعم تعريف موترولا ولكن كان فيه ايرور عند بناء الموديل make modules_install والخطأ في ملف داخل مجلد net
        و bzImage مالقيتها في المكان المطلوب


        كيف اعرف مكان الكيرنل بالضبط

        قرأت انه في اثنين واحد داخل مجلد boot ولما دخلت للمسار وصلت الى مجلد اسمه redhat ولايحتوي على كيرنل
        والأخر داخل proc وهذا الاخر ماقدرت استعرضة

        تعليق


        • #5
          أخي خيالي :
          أعتقد إني مش فاهم رسالتك قوي ... بس هحاول أرد
          بداية واضح إن المدونة اللي بتتكلم عن موضوع تحميل الModules .. فارضة إنك عندك تعريف الكارت يعني yourmotoralacard.c

          هل ده موجود ؟

          موجود يبقى تمام جدا ... هتدخل المجلد بتاع الشفرة المصدرية ده وتعمل ملف اسمه Makefile وبعدين تضيف فيه الكام سطر دول الموجود من المدونة اللي حضرتك لقيتها

          هتعمل الملف ده ازاي وهتضيف فيه السطور دية ازاي بقية حاجة يا سيدي ميهمكش vi or any text editor you have

          بس كده .. مفروض أول لما تخش المجلد ده من على سطر اﻷوامر طبعا
          تكتب أمر make
          وبعدين تحمل الModule اللي هينتج عن عملية الMake باﻷمر المذكور أعلاه Modprobe or modinsert

          بس خلاص ... انتهي

          ناقص حاجة واحد ... هل انت عندك الشفرة المصدرية للنواة Kernel مظنش ... ومفروض تنزلها ومن غيرها هتقابل مشاكل كتيرة جدا

          سلام
          --------------------------------------------------------------------
          قد تجد ما يفيدك على صفحات هذا الموقع
          أسهل شئ في الكون ...كتنابة مقالة تقنية باﻷنجليزي:no:
          النادر والغير مألوف ... توطين لغة تقنية بالعربية :reading:

          تعليق


          • #6
            كيف اعرف مكان الكيرنل بالضبط

            قرأت انه في اثنين واحد داخل مجلد boot ولما دخلت للمسار وصلت الى مجلد اسمه redhat ولايحتوي على كيرنل
            والأخر داخل proc وهذا الاخر ماقدرت استعرضة
            هذا مسار النواة بسلاكوير ---- ماادري عن الباقي
            كود:
            /lib/modules/2.6.*/kernel/

            تعليق


            • #7
              مشكورين يا اخون على الردود والمساعده


              الافضل لي تركيب مودم اخر ,,واختضار الجهد والوقت وعشان ما اتعقد من لينوكس

              وعلى قولهم اكل العنب حبه حبه

              تعليق


              • #8
                المشاركة الأصلية بواسطة خيالي... مشاهدة المشاركة
                مشكورين يا اخون على الردود والمساعده


                الافضل لي تركيب مودم اخر ,,واختضار الجهد والوقت وعشان ما اتعقد من لينوكس

                وعلى قولهم اكل العنب حبه حبه
                اسأل عن نوع المودم ونوع اﻻتصال قبل ماتشتريه اذا ماعندك خلفية عن المودمات المتوفقه مع لينكس

                تعليق


                • #9
                  عزيزي dark2x3d

                  المودمات اللي ماشيه عندنا موترولا وكريتيف غالباً

                  هذا بالنسبة للديل اب

                  يعني مجبرً اخاك لابطل في اختيار المودم

                  شاكر تواجدك

                  تعليق

                  يعمل...
                  X