بناء موديل بدون وجود ملفات السورس(لتعريف العتاد غير الموجود)
السلام عليكم ورحمة الله وبركاته
هذا الشرح لأخونا الغالي ... [email protected] وأستأذنه بنقلة من مدونته
---------------
هالموضوع املي الوحيد ,, يعني يا استمر مع لينكس او اجلس اتفرج فيه كل يوم بدون فايده
امنيتي من زمان استخدم لينكس ,,وتحققت بتركيبه على الجهاز فقط
ومصادرنا في التعلم هي النت ,, يعني بدون اتصال ما اعتقد بستفيد
وكوني مبتدا ارجوا من الاخوان شرح شوية تفصيل
لاني ناوي اطبق الشرح على تعريف مودم موتورولا
نوع التوزيعه فيدورا 5 والكيرنل 2.6.18
وللأسف مالقيت kernel-headers يتوافق مع الكيرنل اللي استخدمه
اللي فهمته الان اني انزل تعريف لمترولا متوافق مع لينكس ,, اوكي
طبعا امتداداه .c
افتح الملف >>> بستخدم الامر vi حتى احرره ببرنامج vi
----
اواجه صعوبه في فتح بعض الملفات او المجلدات في الواجهه الرسوميه
واشوف ان الاوامر النصية قويه وسريعه في تعاملها مع الملفات
الان كيف ادخل هذا الكود باستخدام meakfail
اخر شي ابي الخطوات بشرح مفصل اذا تكرمتووو اوكون شاااكر لكم يا اخون
واعذرووني على الاطاله
لو اطبق بعض هالاشياء والاقي نتيجه بيكون دافع قوي للاستمرارا
اتمنى الاقي شرح على قد فهمنا
ما اعرف في لينكس الا التريمنال >> لاني حاولت ارجع الكيرنل لأصدار سابق 2.4.5 لانه يدعم تعريف موترولا ولكن كان فيه ايرور عند بناء الموديل make modules_install والخطأ في ملف داخل مجلد net
و bzImage مالقيتها في المكان المطلوب
,, وخاب املي في اي طريقة ثانيه
السلام عليكم ورحمة الله وبركاته
غالبا عندما تأتي لتعرف قطع العتاد الموجودة على جهازك من خلال لينوكس تتعرف جميعها من خلال لينوكس نفسه والأمور تسير كلها على احسن حال … لكن !!! … بعض الأحيان تجد جهاز عليه مثلا كارت شاشة غريب أو غير مثبت تعريفه داخل التوزيعة التي قمت بتنصيبها … ولهذا ستحتاج أكيد الى تركيب هذا العتاد بنفسك من خلال تركيب الموديول الخاص به الى داخل الكيرنل الذي تعمل عليه … بعض المرات هذا الموديول متوفر وبعض المرات غير متوفر لديك سوى السورس له … هنا يأتي السؤال كيف أقوم ببناء هذا الموديول للكيرنل الحالي من دون أن يكون لدي السورس للكيرنل ؟ هذا ما سأجيب عليه الآن …
أول شي سنحتاج الى تنصيب الكيرنل هيدرز 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
أول شي سنحتاج الى تنصيب الكيرنل هيدرز 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
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 مالقيتها في المكان المطلوب


تعليق