2012-10-25 25 views
7

Çalışan bir Linux sisteminde, hangi aygıt sürücüsü modülünün belirli bir sysfs girdisi oluşturduğunu bilmek istiyorum. Bilmek mümkün mü? Kernel kaynağındaki ilgili dizeleri grepleyebileceğimi ve tanımlamaya çalıştığımı biliyorum. Ama bunu yapmanın bir yolu var mı?Bir sysfs girişi oluşturan çekirdek modülünü tanımlayın

+0

Bu, C veya C++ ile mi? – vdbuilder

cevap

2

Kaynağından geçerek hangi sürücünün sysfs girdisi oluşturduğunu bulabilirsiniz. Sürücü, init/exit dizilerinde device_create_file()/device_remove_file() kullanıyorsa, bir sysfs öznitelik dosyasının sürücü tarafından oluşturulduğundan emin olabilirsiniz. Sysfs dosyası tarafından hangi işlevlerin sağlandığını öğrenmek için kaynağa DEVICE_ATTR (_name, _mode, _show, _store) makrosunu da bulabilirsiniz. Genellikle dosyayı kedi ya da bir dizeyi yankılayabilirsiniz. A cat /sys/.../file, _show işlevine karşılık gelir ve echo /sys/.../file, makroda belirtilen _store işlevine karşılık gelir.

+0

Cevabınız için teşekkürler sanrio. Bahsettiğin şeyi biliyordum. Benim sorum, bir sysfs girişi verildiğinde, hangi sürücü modülünün (eğer lsmod tarafından listelenmişse) çalışan bir Linux sistemine ait olduğunu söylemek mümkün. – Sann

+0

Ben bunu yapmak için doğrudan bir yol olduğundan şüpheliyim .. Biri ile karşılaşırsanız o zaman lütfen burada paylaşın :) – shinymetal

İlgili konular