Kullanıcıdan Alınan 2 Sayının Kernel Modül Üzerinde Toplatılması





                                                   
Öncelikle kendi modülümüzü eklemek için Linux kernel'in kaynak kod ile derlenmesi lazımdır eğer bunu uygulamadıysanız önce ki yazıma bir göz atabilirsiniz.

1.Kaynak Kodlarında Derlenen Linux Klasörüne Girilmesi

Öncelikle kullandığımız kernel'e sağ tıklayarak uç birimde aç veya terminalde aç seçeneği ile açıyoruz veya 

#cd /home/burak/Downloads/linux-4.13.4 

yazarakta girebiliriz terminal üzerinden.

#su komutu ile root'unuza girebilirsiniz bu size her konuda erişime hak tanır.

2.Modülleri İçeren Klasörlerin Oluşturulması

Burda kendi istediğiniz bir isim kullanabilirsiniz ben Modules'i tercih ediyorum

#mkdir Modules

3.Oluşturduğumuz Modül İçin Klasör Oluşturulması

İlk başta daha demin oluşturduğumuz Modules klasörünün içine girmemiz gerekmektedir.Bunun için:

#cd Modules

Daha sonra yeni klasörümüzü açmak için:

#mkdir Sum

4.Toplama İşlemi İçin Kullanacağımız C Kodunun Oluşturulması

#gedit Toplam.c


Kernel üzerinden C kütüphaneleri kullanamayacağımızdan burda kernel cekirdeğine ait özel kütüphaneler vardır.
Burda dikkat etmeniz gereken konulardan bir tanesi türkçe karakter kullanımıdır çoğu kullanıcı bundan dolayı hata almaktadır buna dikkat etmenizi öneririm.

5.Makefile Dosyasının oluşturulması

#gedit Makefile  

Burdada dikkat edilmesi gereken konulardan biriside make'in önünde ki boşluktan dolayı genelde hata alınmaktadır o boşluğu silip tab ile boşluk kullanmanız en sağlıklısıdır.

6.Modulun Derlenmesi

#make 

ile modulümüzü derleriz.Bunu yaptıktan sonra altta dosyalar olusmaktadır bunları #ls yazarak görebiliriz.Bu oluşa dosyalar şunlardır:
-Makefile
-ModuleSymvers
-Toplam.ko
-Toplam.mod.o
-modules.order
-Toplam.c
-Toplam.mod.c
-Toplam.o

Artık tek yapmamız gereken modulun çalıştırılmasıdır.

7.Modulun Çalıstırılması

#insmod Toplam.ko birince=110 ikinci=15

#lsmod komutuyla çalısıp çalısmadığını görebiliriz.


#dmesg ile kernel mesajlarını görüntüleriz


#rmmod -rf Toplam 

Komutu ile kernel modulumuzu devre dışı bırakabiliriz.


Yorumlar

Bu blogdaki popüler yayınlar

Yazılımda Kalite Metrikleri

LINUX KERNEL ILE RASPBERRY PI 3'DEN TCP PROTOLÜ ILE SENSÖR VERILERI ALINMASI