Kernel'den dosyaları neden okuması/yazmaması gerektiği ile ilgili tüm tartışmaları biliyorum, bunun yerine nasıl/proc veya netlink kullanacağımı. Yine de okumak/yazmak istiyorum. Ayrıca Driving Me Nuts - Things You Never Should Do in the Kernel'u da okudum.Linux çekirdek modülündeki dosyalar nasıl okunur/yazılır?
Ancak, sorun 2.6.23 sys_read()
dışa aktarmıyor. Onun yerine SYSCALL_DEFINE3
. Benim modülünde olduğu kullanırsanız Yani, şu uyarıları alıyorum: bağlama doğru olmaz çünkü
WARNING: "sys_read" [xxx.ko] undefined!
WARNING: "sys_open" [xxx.ko] undefined!
Açıkçası
insmod
modülü yüklemek mümkün değil.
Sorular:
- Nasıl (
sys_read()
/sys_open()
ihraç edilmemektedir) 2.6.22 sonra çekirdek içindeki okuma/yazma için? - Genelde, makro içinde
SYSCALL_DEFINEn()
içine sistem çağrıları nasıl çekilir?
Teşekkür ederiz. Sys_read/sys_open işlevlerini çoğaltarak benzer bir şey yapmayı düşünüyordum. Ama bu harika bir yardım. Bir merak, SYSCALL_DEFINE kullanarak bildirilen sistem çağrılarını kullanmak için herhangi bir yolu var mı? – Methos
Bu kodu çekirdek 2.6.30'da (Ubuntu 9.04) denedim ve dosyayı okumak sistem çöküyor. Aynı sorunu yaşayan var mı? –
@Enrico Detoma? Vay canına. Bu bana kullandığınız modülü verebilmenin herhangi bir yolu var mı? Bunu daha önce hiç görmedin mi? – dmeister