Mövzunu Açan #1
udevadm ile Aygıt Olayları

Anlık donanım değişimleri ve olay akışı, modern Linux sistemlerinde kullanıcı ve sistem yöneticileri için kritik bir gözlem alanıdır. udev ve udevadm komutları bu akışı yapılandırmak, izlemek ve otomasyona dönüştürmek için temel araçlardır. Bu yazıda, temel kavramlardan başlayıp günlük operasyonlara kadar somut örneklerle ilerleyeceğiz.


1) Neden udevadm?
  • Linux çekirdeğinin aygıt olaylarını kullanıcı alanına iletmesi için udev mekanizması kullanılır. udevadm, bu mekanizmayı interrogate etmek, yapılandırmaları incelemek ve etkinlikleri test etmek için bir ara yüz sağlar.
  • Temel hafıza: /sys ve /dev arasındaki köprü, udev ile dinamik olarak güncellenir; cihaz bağlandığında veya çıkarıldığında udev olayları tetiklenir.


2) Temel kavramlar ve akış
  • Olay akışı: kernel uyarısı (add/remove/change) -> uevent üretimi -> udevd tarafından işlenen olaylar -> kullanıcı alanına neticeler (symlink, cihaz dosyası yaratma/yeniden bağlama).
  • Kurallar: /etc/udev/rules.d/ içindeki dosyalar, hangi cihaz için hangi adı ya da simgelenmiş yolün oluşturulacağını belirler. Örneğin, belirli bir USB disk için sabit bir ataşa noktası ve isimlendirme nasıl sağlanır.
  • Sorgulama: udevadm info --query=all --name=/dev/sdb1 komutu ile bir aygıtın tüm özelliklerini keşfetmek mümkündür. Bu, seri numaraları, üretici bilgileri ve sınırlı güvenlik etiketlerini görmek için kullanışlıdır.
  • Dinamik izleme: udevadm monitor komutu, bağlanma ve ayrılma olaylarını gerçek zamanlı olarak gösterir; bu, cihaz bağlama senaryolarını test ederken özellikle yararlı olur.


3) Günlük kullanım senaryoları
  • Yeni bir USB depolama aygıtı bağlandığında hangi adın verildiğini öğrenmek için udevadm info ile mevcut aygıtın özelliklerini karşılaştırıp sabit adlandırma kuralı yazmak.
  • Önyüklü hizmetler için aygıt değiştikçe tetiklenen bir udev kuralı yazmak: belirli bir cihaz bağlandığında belirli bir mount noktası veya servis yeniden başlatma.
  • Özelleştirilmiş cihaz isimlendirme: UART seri portları veya özel ses kartları için stabil sembolik bağlantılar (symlinks) oluşturmak.


4) Güvenlik ve kararlılık ipuçları
  • Kuralların hassasiyeti: ATTRS ve KERNEL gibi alanlar üzerinden eşleşmeyi dikkatli yapmak gerekir; gereğinden fazla geniş kurallar güvenlik risklerini artırabilir.
  • Olay sırası: Aynı anda birden fazla kurala ihtiyaç duyulduğunda, HIERARCHY ve IMPORT kullanımı ile önce birincil işlevli kuralların uygulanması sağlanır.
  • Güncellemeler: /usr/lib/udev/rules.d ile sistem paketleri tarafından getirilen kurallar dikkatle incelenmelidir; çakışan kurallar ile aygıt adları değişebilir.


5) Kod ve yapılandırma örneği
KOD
12345# Basit bir kurala örnek
SUBSYSTEM=="block", KERNEL=="sdb", SYMLINK+="external_usb_disk%n", OWNER="kullanici"

[b]Bağlandığında otomatik mount (örneğin systemd otomasyonuyla)[/b]
ACTION=="add", KERNEL=="sd[b-z]", ENV{ID_BUS}=="usb", RUN+="/path/to/mount_script %N"


Sonuç ve kapanış
udevadm, aygıt olaylarını anlamak ve güvenilir, tekrarlanabilir yapılandırmalar kurmak için vazgeçilmez bir araçtır. Aygıt bağlandığında veya çıkarıldığında sistem davranışını net bir şekilde kontrol etmek isteyen herkesin, kuralları dikkatli tasarlayarak gerçek dünya senaryolarında kullanması gerekir. Siz hangi günlük senaryolarda udevadm ile otomasyon kurdunuz veya hangi kurallar sizin için en yararlı oldu?

Cavab vermək üçün daxil olmalısınız.

Bu mövzunu görüntüləyən istifadəçilər (Cəmi: 5, Üzvlər: 5, Qonaqlar: 0)
Cəmi: 5 (üzvlər: 5, qonaqlar: 0)
0 sitat seçildi