• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

(GELÖST !!!) WoL mit Marvell 88E8001 :)

Leu

Member
Hallo,
ich versuche Wake on Lan zu aktivieren.
Ich bin soweit gekommen, dass der Treiber sk98lin das nicht zu ermöglichen scheint und man den Treiber skge nehmen müsste.

System: opensuse 10.2; 2.6.18.8-0.5-default; x86_64; Treiber: sk98lin

lspci | grep Eth
Code:
00:0a.0 Ethernet controller: Marvell Technology Group Ltd. 88E8001 Gigabit Ethernet Controller (rev 13)
ethtool eth0
Code:
Supported ports: [ TP ]
        Supported link modes:   10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
                                1000baseT/Half 1000baseT/Full 
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
                                1000baseT/Half 1000baseT/Full 
        Advertised auto-negotiation: Yes
        Speed: 100Mb/s
        Duplex: Full
        Port: Twisted Pair
        PHYAD: 0
        Transceiver: internal
        Auto-negotiation: on
        Link detected: yes
In diesem Forum habe ich gefunden, dass man den Treiber austauschen sollte:http://www.linuxquestions.org/questions/showthread.php?t=444793
Ein neuerer Kernel bringe den Treiber skge gleich mit.

Wie wechsel ich die Treiber aus?


Bisher erledigt:
- BIOS WakeOnPCI und PS/2,keyboard enabled
- WakeUpOnPS/2 und Keyboard funktioniert

Vielen Dank, Leu
 
A

Anonymous

Gast
Leu schrieb:
In diesem Forum habe ich gefunden, dass man den Treiber austauschen sollte:http://www.linuxquestions.org/questions/showthread.php?t=444793
Ein neuerer Kernel bringe den Treiber skge gleich mit.

Code:
find /lib/modules/2.6.18.8*  -name "*skge*"
/lib/modules/2.6.18.8-0.5-default/kernel/drivers/net/skge.ko


Leu schrieb:
Wie wechsel ich die Treiber aus?

In den Hardwaredetails bei der Netzwerkeinrichtung unter YaST.

Die Frage ist nur, ob diese Karte mit dem Treiber aus dem Standard SuSE-Kernel keine Zicken macht, dazu wirst Du in diesem (und so manch anderem) Forum nämlich leider einiges finden.

Z.B. http://www.linuxforen.de/forums/showthread.php?t=240313&page=2

Könnte also ein Glücksspiel werden, "Mahatma Glück, Mahatma Pech"...

Greetz,

RM
 
OP
L

Leu

Member
Soweit, so gut. Ich habe mit yast skge ausgewählt.
lsmod | grep sk
Code:
skge                   58896  0 
ide_disk               34304  0 
ide_core              174720  3 ide_cd,via82cxxx,ide_disk
ethtool eth1
Code:
Supported ports: [ TP ]
        Supported link modes:   10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
                                1000baseT/Half 1000baseT/Full 
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
                                1000baseT/Half 1000baseT/Full 
        Advertised auto-negotiation: Yes
        Speed: 100Mb/s
        Duplex: Full
        Port: Twisted Pair
        PHYAD: 0
        Transceiver: internal
        Auto-negotiation: on
        Supports Wake-on: g
        Wake-on: g
        Current message level: 0x00000037 (55)
        Link detected: yes

Ein WakeonLan klappt noch nicht.

Internet funktioniert mit skge einwandfrei.

Was kann ich tun? Wo mag der Fehler sein?
 
OP
L

Leu

Member
Der Fehler könnte hier liegen:

Nach weiterer Suche im Internet bin ich darauf gestoßen, dass Linux die Netzwerkkarte beim shutdown komplett ausschaltet. So gehen auch das Netzwerklämpchen aus, das aber weiterhin leuchten müssten.
So sieht das dann aus vor dem Herunterfahren:
Code:
ethtool -s eth1 wol g
ethtool eth1 | grep Wake
 Supports Wake-on: g
        Wake-on: g
Und nach dem Neustart (ohne WoL) sieht man, dass Wake-on ausgeschaltet wurde!
Code:
ethtool eth1 | grep Wake
        Supports Wake-on: g
        Wake-on: d

Fährt man den Rechner mit Windows herunter und aktivierte vorher in den Netzwerkeinstellungen das WoL, kann der Rechner per MagicPacket hochgefahren werden.

Was tun?

Man muss nun das komplette Ausschalten der Karte beim shutdown verhindern.
Wie das z.B. geht, steht hier:
http://www.darkblue.de/content/index.php?dir=Projekte/Linux/Marvell+88E8001+und+WOL&opage=0
In der Datei /etc/init.d/halt steht folgende Zeile:
halt -d -f -i $poweroff $hddown
ließt man dazu die man page aufmerksam durch, stellt man fest, dass der -i Parameter eben der entscheidende, alle Netwerkkarten ausschaltende, Faktor ist.
Einfache Lösung: den Parameter entfernen - damit steht dann nur noch
halt -d -f $poweroff $hddown
da. Weil aber die meisten Ethernet Karten dummerweise standardmäßig das WOL Feature deaktiviert haben, benötigen wir noch folgende Zeile in in der /etc/init.d/halt, die wir vor der obrigen einzufügen:
ethtool -s eth0 wol g

Meine halt-Datei sieht aber so aus:
Code:
#! /bin/sh
# Copyright (c) 1996-2002 SuSE Linux AG, Nuernberg, Germany.
# All rights reserved.
#
# Author: Florian La Roche, 1996
#	  Werner Fink <werner@suse.de>, 1996-2001
#
# Please send feedback to http://www.suse.de/feedback
#
# /etc/init.d/halt (and symlinked to reboot)
#

. /etc/rc.status
. /etc/sysconfig/clock
. /etc/sysconfig/shutdown

#
# Avoid being interrupted by child or keyboard
#
trap "echo" SIGINT SIGSEGV SIGQUIT SIGTERM
set +e

case "$0" in
	*halt)
		message="The system will be halted immediately."
		case `/bin/uname -m` in
                    i?86)
                        command="halt"
                        if test -e /proc/apm -o -e /proc/acpi -o -e /proc/sys/acpi ; then
                            command="halt -p"
                        else
                            read cmdline < /proc/cmdline
                            case "$cmdline" in
                                *apm=smp-power-off*|*apm=power-off*)  command="halt -p" ;;
                            esac
                        fi
                        ;;
                    *)
                        command="halt -p"
                        ;;
                esac
		;;
	*reboot)
		message="Please stand by while rebooting the system..."
		command="reboot"
		;;
	*)
		echo "$0: call me as \"halt\" or \"reboot\" please!"
		exit 1
		;;
esac

#
# first do local stuff
#
rc_reset
test -e /etc/init.d/halt.local && {
    echo Running /etc/init.d/halt.local
    /bin/sh /etc/init.d/halt.local
    rc_status -v1 -r
}

# Write to wtmp file before unmounting /var
$command -w 

# Set a flag that we had success upto this point
> /success

# Stop blogd before umounting /var
test -x /sbin/blogd && killproc -QUIT /sbin/blogd

echo "Sending all processes the TERM signal..."
killall5 -15
echo -e "$rc_done_up"

sleep 1
test "$1" = "fast" -o -e /fastboot || sleep 4

echo "Sending all processes the KILL signal..."
killall5 -9
echo -e "$rc_done_up"

# Redirect our mesages to default console
test -n "$REDIRECT" && exec 0<> $REDIRECT 1>&0 2>&0

#
# call modules in boot.d via K* symlinks
# (reverse sequence)
#

if test -d /etc/init.d/boot.d/ ; then
    for i in /etc/init.d/boot.d/K*; do
        test -f $i || continue
        if test -x "$i" ; then
            # Active boot scripts, should have their own messages
            $i stop
        else
            # Old boot scripts, may not have any message
            echo Skipping $i, not executable
        fi
    done
fi

# kill splash animation
test "$SPLASH" = yes && /sbin/splash -q

umount -anvt proc

# on umsdos fs this would lead to an error message, so direct errors to
# /dev/null
mount -no remount,ro / 2> /dev/null
sync

# show "the system is down" message
if test "$SPLASH" = yes ; then
    mount -nt proc proc /proc
    /sbin/splash -q -p 65535 -t "isdown"
    umount -n /proc
fi

# Make reboot noise and wait a few seconds to give harddisks the chance
# to really flush their buffers before power goes down.
if test -n "$REDIRECT" ; then
    sleep 1
    case "$HALT_SOUND" in
    "yes"|"quint")
	echo -en "\033[10;393]\a\033[10;262]"
	sleep 1
	;;
    "octave")
	for tone in 524 491 440 393 349 328 295 ; do
	    echo -en "\033[10;${tone}]\a"
	    usleep 125000
	done
	echo -en "\033[10;262]"
	;;
    "no")
	;;
    *)
    	echo -en "\033[10;440]\a"
	usleep 250000
	;;
    esac
else
    test "$HALT_SOUND" = "no" || echo -en "\a"
    sleep 2
fi
echo $message
test "$HALT_SOUND" = "no" || echo -en "\a"

test -n "$HALT_POWERDOWN_INSERT" && $HALT_POWERDOWN_INSERT

# Set system console back to intial value
test -n "$REDIRECT" -a -n "$CONSOLE" && setconsole $REDIRECT < $CONSOLE

# Now talk to kernel
exec $command -d -f

Wo kann ich das Ausschalten der Karte verhindern?
 
OP
L

Leu

Member
Beim Shutdown kommt folgende Meldung:
Code:
Networkmanager: deactivating device eth1

Ich schaue mir gerade die Skripte in /etc/sysconfig/network und /etc/init.d an...

Hat denn niemand eine Idee oder einen Tipp, wo man das Ausschalten der NIC verhindern könnte ?
 
A

Anonymous

Gast
Leu schrieb:
Beim Shutdown kommt folgende Meldung:
Code:
Networkmanager: deactivating device eth1

Es könnte sein, daß Du Dich da verrennst, denn das ist IIRC nur ein Deaktivieren des Interfaces ohne Entladen des Kernelmoduls (="rcnetwork stop").

Geh mal in RL1 (dann dürfte diese Meldung auch auftauchen) und schau mit lsmod nach, ob das Kernelmodul noch geladen ist.

Greetz,

RM
 
OP
L

Leu

Member
# init 1
# lsmod
ergibt, dass das Modul skge noch geladen ist.

Aber eine Meldung "Networkmanager: deactivating device eth1" kommt nicht.
Sieht doch nach einem shutdown-Problem aus, oder?
 
A

Anonymous

Gast
Versuch mal klassisch mit ifup.

Ist bei einer "feststehenden" Kiste eh sinnvoller.

Greetz,

RM
 
OP
L

Leu

Member
Nach stundenlangem rumprobieren ...

Ich habe in die /etc/init.d/halt.local folgende Zeilen eingefügt:
Code:
ifup eth1
ethtool -s eth1 wol g

Damit lässt sich der Rechner per Wake on Lan wieder hochfahren !!
Das ganze funktioniert mit dem NetworkManager.

Um nach dem Hochfahren auch die Netzwerkkarte auf Wake on Lan "set g" zu haben, muss man noch
Code:
ethtool -s eth1 wol g
in die /etc/init.d/boot.local eintragen.

Das war's. Der Rechner lässt sich jetzt immer per MagiqPacket hochfahren!!

Puuh...

(Danke Rain_Maker für die Unterstützung und Anregungen!)
 
Magste denn deine Erfahrungen und Lösung ins Wiki stellen? So eine Frage kommt immer mal wieder und es hilft denne, die nach dir fragen.

Grüße
Carsten
 
Oben