هنا طريقة كتابة موديل (module) للنواة.
لن اتطرق في الشرح (شرحه طويل وفيه كثير من الامور التي قد تكون معقدة لمبتديء او لشخص لا يعرف كيف يبرمج او لا يعرف ان شيء عن الهاردوير)
لذا هنا فقط الطريقة، لتكون نقطة بداية لمن يريد ان ينطلق في هذا المجال:
كود PHP:
#include <linux/module.h>
#include <linux/kernel.h>
int init_module(void)
{
printk(KERN_INFO "Hi! Thank you for loading me into your linux kernel!\n");
return 0;
}
void cleanup_module(void)
{
printk(KERN_INFO "Fine as you wish :( I just hope I was usefull for your linux kernel\n");
}
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Muslim Adel");
MODULE_DESCRIPTION("Just a test, don't think it will do BIG things");
الان افتح ملف اخر يحتوي على التالي:
كود PHP:
obj-m += mymodule.o
all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
(ضع الملفين معا في مجلد مستقل)
الان افتي سطر الاوامر واكتب:
كود PHP:
make clean
make
كود PHP:
insmod mymodule.ko
كود PHP:
lsmod | grep mymodule
كود PHP:
dmesg
كود PHP:
modinfo mymodule.ko
كود PHP:
rmmod mymodule
فعلت هذا لان هذا الموديل غير موجود في الدليل الصحيح الذي يجب ان يكون فيه، لذا حتى لو حاولت استخدام الامر modprobe فانه سيفشل.
لاستخدام الامر modprobe اعمل الاتي:
كود PHP:
mkdir -p /lib/modules/`uname -r`/kernel/mymodules
cp mymodule.ko /lib/modules/`uname -r`/kernel/mymodules/
depmod -a
كود PHP:
modprobe mymodule
تعليق