Kann eigene Module unter 2.4.0 nicht verwenden
Hallo, 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. Doch der Reihe nach: - ich kompiliere mein Modul passend zum Kernel - ich lade mein Modul mit 'insmod modulname.o' -> ich sehe anhand meiner Meldungen in /var/log/messages dass das Modul ohne Fehler geladen wurde - ich mache ein 'cat /proc/devices' und sehe mein Modul als Character device 254 modulname - ich mache 'mknod /dev/modulname0 c 254 0', 'chgrp users /dev/modulname0', 'chmod 664 /dev/modulname0' - ich bastle mir ein C-Programm und bekomme bei 'hdl = open("/dev/modulname0"), O_RDWR);' ein invalid handle (-1) zurück. - in '/var/log/messages' steht dann 'modprobe:modprobe: Can't locate module char-major-254' Mit 2.2.14 / 2.2.18 geht's prima, mit 2.4.0 geht's nicht, weder mit dem Original SuSE Kernel noch mit meinem selbstgebrannten. Woran könnte das liegen ? Wo könnte ich weitere Infos finden ? In /usr/src/linu/doc/changes habe ich nichts gefunden. Gruss & danke, Jochen
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. Gruss, Antje -- Antje M. Bendrich list@bendrich.de http://www.bendrich.de
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
Hi, wenn ich einen neuen Benutzer anleg, hatt er das Recht über Telnet zu connecten, wie kann ich es Usern verbieten, über telnet zu connecten ? Mfg andré
Hallo Andre, On Fri, May 25, 2001 at 06:56:46PM +0200, Andre Frimberger wrote:
Hi,
wenn ich einen neuen Benutzer anleg, hatt er das Recht über Telnet zu connecten, wie kann ich es Usern verbieten, über telnet zu connecten ?
Keine Ahnung, aber wenn du eine Frage hast, öffne bitte eine neue Mail und trage dein Subject ein, statt bei irgendeiner Mail auf reply zu drücken. Es gibt nämlich viele, die die antowrten gethreaded lesen und da kommt es nicht gut, wenn auf einmal ein Thread innerhalb eines Threads läuft. gruss Udo
Hallo Andre Frimberger ... On Fri, 25 May 2001, dpa@frimberger.de wrote:
wenn ich einen neuen Benutzer anleg, hatt er das Recht über Telnet zu connecten, wie kann ich es Usern verbieten, über telnet zu connecten ?
Ob es möglich ist einzelne User selektiv nicht über Telnet einloggen zu lassen ist mir nicht genau bekannt. Imho aber nicht. Du kannst den Telnetd ganz deaktivieren, dann kann es niemand mehr. Brauchst Du eine gute Kontollte darüber, wer sich aus der Ferne einloggen darf und wer nicht, schau Dir Openssh an. Bye, Michael
Hi Andre,
From: Andre Frimberger
wenn ich einen neuen Benutzer anleg, hatt er das Recht über Telnet zu connecten, wie kann ich es Usern verbieten, über telnet zu connecten ?
Telnet sollte nicht mehr verwendet werden, da eine Telnet-session Daten & Passwoerter unverschluesselt uebertraegt. Besser waere es ssh zu verwenden. Um Telnet zu deaktivieren brauchst Du lediglich in der /etc/inetd.conf die Zeile mit Telnet zu kommentieren. Fuer ssh gibt es eine Vielzahl von Moeglichkeiten Benutzern ssh zu ermoeglichen oder auch nicht. Auf neueren Systemen sollte zudem der TCP wrapper installiert sein. Damit kannst Du in den Dateien hosts.allow und hosts.deny differenzierte Zugriffrechte auf die einzelnen Dienste gewaehren. Das setzt aber voraus das diese Dienste ueber den inetd gestarted werden und nicht als Daemons laufen. man ssh man inetd man hosts_access mit freundlichen Grüßen Jörg Zimmermann ------------------------------------------- .xsiteing agentur für netzkommunikation 42117 wuppertal - friedrich-ebert-str. 141b tel: 0202/3097070 - fax: 0202/3097072
--On Sonntag, Mai 27, 2001 22:05:14 +0200 Joerg Zimmermann
Hi Andre,
From: Andre Frimberger
Sent: Friday, May 25, 2001 6:56 PM wenn ich einen neuen Benutzer anleg, hatt er das Recht über Telnet zu connecten, wie kann ich es Usern verbieten, über telnet zu connecten ?
Telnet sollte nicht mehr verwendet werden, da eine Telnet-session Daten & Passwoerter unverschluesselt uebertraegt. Besser waere es ssh zu verwenden. Um Telnet zu deaktivieren brauchst Du lediglich in der /etc/inetd.conf die Zeile mit Telnet zu kommentieren.
Falls Du es aber weiterhin nutzen willst, setz einfach den Eintrag
für die Shell der neuen Benutzer auf /bin/true.
Dirk
--
Dirk Hartmann
* Jochen Strohbeck:
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.
Wobei du bei dieser Notation die NULLs weglassen kannst oder sogar
solltest. Entweder das eine (richtige Reihenfolge, wie du's unter
2.2 gemacht hast, mit NULLs dazwischen) oder das andere (Reihenfolge
egal, mit Membername davor). Letzteres ist natürlcich erweiterbarer.
Thorsten
--
Thorsten Jens
participants (8)
-
Andre Frimberger
-
Antje Bendrich
-
Dirk Hartmann
-
Jochen Strohbeck
-
Joerg Zimmermann
-
Nightshade@os-net.de
-
Thorsten Jens
-
Udo Müller