Antje Bendrich wrote:
Jochen Strohbeck schrieb am 17.05.01 18:25:26: nachdem ich jetzt einen ganzen Tag lang mit unterschiedlichen Kernelversion experimentiert habe gibt es keine andere Erklärung für mich: irgendwas hat sich an 2.4.x gegenüber 2.2.x geändert - und zwar so, dass ich meine selbstgebastelten Kernelmodule nicht mehr ansprechen kann.
Hast Du auch die modutils erneuert? Ist beim Wechsel von 2.2.x auf 2.4.x notwendig.
Ist alles aktuell. Danke trotzdem. Habe die Ursache dann doch noch gefunden. Bisher verwendete ich immer die nachfolgende Struktur über die der Kernel auf die Funktionen eines Treibers zugreifen kann. struct file_operations ivdl8sd_fops = { ivdl8sd_lseek, ivdl8sd_read, ivdl8sd_write, NULL, NULL, ivdl8sd_ioctl, NULL, ivdl8sd_open, ivdl8sd_release, }; Den Aufbau dieser Struktur habe ich A.Rubinis 'Linux Gerätetreiber' entnommen. Ich habe mir jetzt von oReilly die aktuellsten Beispielprogramme von Rubini heruntergeladen. Den Funktionszeigern werden dort jetzt Schlüsselworte vorangestellt, so dass meine Struktur analog jetzt so aussieht: struct file_operations ivdl8sd_fops = { llseek: ivdl8sd_lseek, read: ivdl8sd_read, write: ivdl8sd_write, NULL, NULL, ioctl: ivdl8sd_ioctl, NULL, open: ivdl8sd_open, release: ivdl8sd_release, }; Jetzt gehen meine Treiber auch unter 2.4.x. Gruss & danke, Jochen