Bu proje, Linux karakter cihaz sürücüsü (char device driver) yazımı için temel bir örnek sunar. Proje, cihaz dosyası üzerinden okuma ve yazma işlemlerini gerçekleştiren bir sürücü içerir. Bu çalışma, Linux kernel modülü geliştirme ile ilgilenen geliştiriciler için hazırlanmıştır.
Okuma İşlevi: Cihazdan veri okunabilir. Yazma İşlevi: Cihaza veri yazılabilir. Loglama: dmesg ile cihazın kullanımı sırasında loglar görüntülenebilir. Tampon Bellek: Kullanıcı verileri sürücünün tamponunda saklanır.
Linux Kernel Headers (Kernel sürümünüze uygun başlık dosyaları) GCC ve Make (Derleme araçları)
- Kaynak Kodların Derlenmesi Proje dizininde aşağıdaki komutu çalıştırarak modülü derleyin:
make
Başarılı bir şekilde derlendikten sonra char_driver.ko dosyası oluşacaktır.
- Kernel Modülünü Yükleme
Modülü Linux kerneline yüklemek için:
sudo insmod char_driver.ko
- Cihaz Dosyasını Oluşturma
dmesg komutu ile major numarasını öğrenin:
dmesg | grep "char_device"
Cihaz dosyasını oluşturmak için:
sudo mknod /dev/char_device c <major_number> 0
- Cihaza Veri Yazma ve Okuma
Veri Yazma:
echo "Merhaba Dünya" > /dev/char_device
Veri Okuma:
cat /dev/char_device
- Kernel Modülünü Kaldırma
Modülü sistemden kaldırmak için:
sudo rmmod char_driver
Cihaz dosyasını silmek için:
sudo rm /dev/char_device
char_driver.c Karakter cihaz sürücüsünün kaynak kodu. Temel okuma ve yazma işlevlerini içerir.
Makefile Kernel modülünü derlemek için kullanılan Makefile.
Cihaz sürücüsüyle ilgili detaylı loglar dmesg komutuyla izlenebilir:
dmesg | grep char_device
[12345.678901] char_device: Cihaz 1 kez açıldı.
[12345.678902] char_device: 13 bayt cihaza yazıldı.
[12345.678903] char_device: 13 bayt cihazdan okundu.
[12345.678904] char_device: Cihaz kapatıldı.