kat
23.02.05, 11:35
Hallo!
Ich habe einen Unix Treiber für ein xscale board und die an einem i2c bus hängenden devices geschrieben. Dieser läuft auch soweit recht gut. Allerdings ist der Zugriff auf die devices nur über ein cat oder echo auf den node unter /dev/i2c oder auf eine implementierte Schnittstelle unter /proc/sys/dev/... möglich. Nun möchte ich aber eine "normale" Zugriffsmöglichkeit haben. Über ein user Programm kann ich den device node auch öffnen (das open des treibers wird verwendet). Aber sobald ich mich mit ioctl versuche, kommt nur der Fehler EINVAL zurück; das ioctl des Treibers wird gar nicht aufgerufen! Das release ist wieder das vom Treiber. Sobald ich "echo" auf den device node ausführe wird interessanterweise sehr wohl das ioctl des Treibers verwendet (dies habe ich durch printks getestet)!
Ich habe nicht die geringste Ahnung woran es liegen könnte, vielleicht ein Problem mit dem Kernel?! Ich verwende die Version 2.4.19.
Wäre super wenn hier jemand was weiß! Danke!
Ich habe einen Unix Treiber für ein xscale board und die an einem i2c bus hängenden devices geschrieben. Dieser läuft auch soweit recht gut. Allerdings ist der Zugriff auf die devices nur über ein cat oder echo auf den node unter /dev/i2c oder auf eine implementierte Schnittstelle unter /proc/sys/dev/... möglich. Nun möchte ich aber eine "normale" Zugriffsmöglichkeit haben. Über ein user Programm kann ich den device node auch öffnen (das open des treibers wird verwendet). Aber sobald ich mich mit ioctl versuche, kommt nur der Fehler EINVAL zurück; das ioctl des Treibers wird gar nicht aufgerufen! Das release ist wieder das vom Treiber. Sobald ich "echo" auf den device node ausführe wird interessanterweise sehr wohl das ioctl des Treibers verwendet (dies habe ich durch printks getestet)!
Ich habe nicht die geringste Ahnung woran es liegen könnte, vielleicht ein Problem mit dem Kernel?! Ich verwende die Version 2.4.19.
Wäre super wenn hier jemand was weiß! Danke!