Hallo,
Ich habe einen Suse 9.1 Rechner und will die darin integrierte Netzwerkkarte von 100 auf 10 Mbit runterschalten.
Hat jemand eine Lösung? Der Treiber meldet sich als Micro-Star International VT 6102 [Rhine-2] / via-rhine
Linux 15.070 Themen, 107.540 Beiträge
versuch mal
ifconfig eth0 media 10baseT
port: SIOCSIFMAP: Die Operation wird nicht unterstützt.
Mic, ist das dann dauerhaft?
Bei Novell hät ich ja noch nach der entsprechenden Zeile kramen kännen aber Linux? Ist das Obige genauer dokumentiert?
aus man ifconfig:
media type
Set the physical port or medium type to be used by the device.
Not all devices can change this setting, and those that can vary
in what values they support. Typical values for type are
10base2 (thin Ethernet), 10baseT (twisted-pair 10Mbps Ethernet),
AUI (external transceiver) and so on. The special medium type
of auto can be used to tell the driver to auto-sense the media.
Again, not all drivers can do this.
wenns nicht dauerhaft ist, muss man es halt in ein startskript schreiben ;-)
Ich wollte jetzt den passenden Treiber installieren und im Manual steht, ich müsste das Modul kompilieren.
Ich kapier das jetzt irgendwie nicht wie das gehen soll.
In der Linux-FAQ stand auch nix.
@mgmax - Zwischenfrage:
Läuft die NIC denn im 100MBit Modus? Irgendwie klingt das so als geht sie garnicht. Wozu benötigst du eigentlich die "Drosselung"? (würde mich mal interessieren)
@the mic
Ich finde "cat /dev/null > /dev/brain" würde in vielen Fällen fast besser in die Signatur passen. ;) Aber das ist jetzt nicht gegen dich oder deine Beiträge gerichtet, sondern eine Art Verbesserungsvorschlag.
Ja, die NIC funktioniert, aber "nur" im 100Mbit Modus.
Die Drosselung benötige ich, da der Elektriker nur Telefonkabel verlegt hat und ich sonst nen Kabelkanal durchs Treppenhaus legen und die massive Wand durchbohren müsste.
cat /dev/urandom > /dev/brain wäre natürlich auch nicht übel ;-)
@mgmax:
ich kenne zwar suse nicht - aber ich kann mir eigentlich nicht vorstellen, dass die alle netzwerktreiber fest einkompilieren.
mach mal ein
lsmod
das listet alle geladenen module auf. ist da nichts mit via oder rhine zu finden?
parameter kannst du dann in der /etc/modules.conf angeben (sofern diese datei unter suse existiert)
Treiber gibt es als monolitische Version oder als modulare Version.
Wenn der Treiber im Kern ist (monolitischer Treiber) , brauchst du keinen Treiber "installieren". Du kannst das herausfinden mit folgendem Befehl: "dmesg | grep eth0" . eth0 ist die Gerätedatei der ersten Netzwerkkarte. eth1 wäre die Gerätedatei der zweiten Netzwerkarte ...
Wenn der treiber als Module vorliegt, dann muß er mit "modprobe Treiber "erst noch in den Kern geladen werden.
Vielleich hast du aber auch den treiber nur als Programmcode. Dann muß der treiber erst noch kompiliert werden. Dabei wird eine binäre Datei erzeugt, die dann mit "modprobe Treiber" geladen werden kann, vorausgesetzt es sind keine Programmierfehler da.
Ich wollte den Treiber nur installieren, da man laut Treiber-Manual beim Einbinden via modprobe auch noch den 10baseT-Speed als Parameter eintragen kann.
Der Treiber liegt als einige .c und .h-Dateien und ein makefile vor.
Die im Treibermanual beschriebene einzubindende rhinefet.o ist nicht vorhanden; deshalb meine Idee mit dem kompilieren
Das Kompilieren ist nicht schwer. Du mußt ersteinmal alle Programmiertools installieren:
-Compiler gcc
-Programm make
-autoconf, automake
-eventuell das Paket binutils (weiß ich aber nicht genau).
Die zu installierenden Programmiertools müßten im Manual beschrieben sein.
Dann ist ein Shellscript configure meistens mit dabei.
Das Shellscript configure mußt du als root im aktuellen Verzeichnis starten: ./configure. Dieses Shellscript überprüft diverse Abhängigkeiten , damit der Compiler gcc den Treiber anschließend fehlerfrei übersetzen (kompilieren) kann.
Wenn das ohne Fehlermeldungen passiert ist , wird make als root auf der Konsole eingegeben. Dabei wird vom Programm make aus den Quellcodedateien .c und den Headerdateien .h eine ausführbare Datei (Treibermodule) erzeugt. make startet den C-Compiler gcc und übersetzt dem Makefile entsprechend das Programm automatisch.
Anschließend muß man noch den Befehl "make install" eingeben. Install ist ein Ziel in den Makefiles. Dabei wird ein Kopierbefehl ausgeführt und das fertige Treibermodul in die entsprechenden Verzeichnisse kopiert (müßte /lib/modules/... sein).
Wenn alles fehlerfrei passiert ist, dann kann man den treiber mit "modprobe Treiber" in den Kern laden und hoffentlich funktioniert der Treiber :-).
Das ist alles nicht schwer und müßte im Manual beschrieben sein.
Die fertige Binärdatei hat dann das Suffix .o. Ich glaube das ist dann ein kompilierter Objektcode, der dann zur Laufzeit zum laufenden Kern "hinzugelinkt"wird (mit "modprobe treiber").
Wird der Treiber denn von SuSE standardmässig mitgeliefert ?
make menuconfig ... und unter Netzwerkkarte nachschauen und ggf. die erforderliche als Modul markieren.
Danach make modules
dann make modules_install
Das Ganze vom Verzeichniss /usr/src/linux
Die Kernelquellen müssen installiert sein !
Gruß
repi
