[Gelistirici] Ağ aygıtlarının device_id özelliği

Ozan Çağlayan ozan at pardus.org.tr
25 Ağu 2009 Sal 09:59:31 EEST


Selam,

pardus/netutils.py'de, bir arayüze ait UID belirleyen bir metod var
ancak bu metod çok acayip bir şekilde yapıyor bu işi:

- arayüz adı eth0 olsun,
- /sys/class/net/eth0/device/modalias dosyası varsa;
    - modalias string'ini ":" işaretinden bölerek usb/pci ayrımını
yapıyor, daha sonra idVendor ve idProduct alanlarını ayıklıyor ve sonuçta
      bustype:vendorID_productID_interface gibi bir ID atıyor. Örnek:
pci:3033_1021_eth0

- /sys/class/net/eth0/device/modalias dosyası yoksa;
    - logic:eth0 döndürüyor (?)

Elimdeki kablosuz aygıt için /sys/class/net/ra0/device/modalias dosyası
yok, /sys/class/net/ra0/device/1-2\:1.0/modalias dosyası var. Bu
sebepten aygıtın ID'si : logic:ra0. Bunun ne zararı var?

1. Kodun geri kalanı çalışmadığından arayüzlerde product/vendor
bilgileri gözükmüyor. NM'de sadece ra0 görüyoruz,
2. link gittiğinde ifplugd betiği /etc/ifplugd.action ra0 down diye
çağırılıyor. Kod profilleri gezerken device_id özelliğini '_''den
bölüyor oysa bizim id sadece logic:ra0. Interface down edilmiyor.


Bir aygıtın bus'ını almanın çok daha kolay bir yolu vardır elbet ama
henüz bulamadım. Bunun için modalias'a dayanmamak gerekir diye
düşünüyorum, bu senaryoda çünkü modalias alt dizinde yer alıyor.





Gelistirici mesaj listesiyle ilgili daha fazla bilgi