Mais je l'ai vite éloigné à cause de la première phrase : est-ce spécifique à cette carte ?
c'est peut être spécifique à cette carte mais il doit exister des options équivalentes pour
d'autre type de cartes
je cite (le lien que je t'avais donné plus haut):
Q1: If I shutdown my PC under Windows I can wake it up. When I shut it with Linux down, it doesn't work! What's up?
A: Get ethtool and try this one as root:
$ ethtool -s ethX wol umbg
Replace "ethX" with your WOL-capable NIC. This will enable WOL on your NIC, since most drivers in Linux turn WOL off per default. Then turn off your PC and try it again. It should work now. To enable it every time you boot see this FAQ entry.
La question que je me pose : en quoi est-ce que l'OS peut influer sur le WOL ? C'est qqchose qui se passe hors OS non ?
oui c'a se passe bien hors OS mais l'état de ta carte réseau peut dépendre de l'état dans lequel l'a laissé l'OS en question.... cf plus haut
ton paquet Magic tu l'envoie sur quelle adresse de broadcast??
sur ta Mandrake essayes d'exécuter le script perl (collé + loin) pour réveiller ta machine windows si ça marche ça veut bien dire que sur ton Linux le WOl est désactivé et qu'il faut le réactiver...
Cdt,
Pietre
----script perl--couper---
#!/usr/bin/perl
#
# little perl script to send a wake-up "magic" packet via lan to power-on
# a PC. This is only supported by new BIOS versions, and must be supported
# by the LAN adapter.
#
# (c) 1999 by Marc Heuse <mheuse@kpmg.com>, the GPL applies to this code.
#
$IP="255.255.255.255"; # limited broadcast ip (default)
$PORT="9991"; # udp port (default)
$INIT_STREAM="\377\377\377\377\377\377"; # (don't change this)
require 5.002;
use Socket;
if (not defined $ARGV[0]) {
print "(c) 1999 by Marc Heuse <mheuse\@kpmg.com>\n\n";
print "Syntax: $0 ethernet_id [ip-address] [udp-port]\n\n";
print "Sends a magic wakeup packet to turn on a PC via the LAN\n";
print "Example: $0 00:80:c9:d1:e0:eb 10.70.82.255 53\n\n";
exit(1);
}
$ETHERNET_ID = $ARGV[0];
$IP = $ARGV[1] if defined $ARGV[1];
$PORT = $ARGV[2] if defined $ARGV[2];
print STDOUT "Sending to Ethernet-ID $ETHERNET_ID, using destination
$IP:$PORT\n";
$protocol = getprotobyname('udp');
socket(S, &PF_INET, &SOCK_DGRAM, $protocol) || die "can't create socket\n";
setsockopt(S, SOL_SOCKET, SO_REUSEADDR, 1);
setsockopt(S, SOL_SOCKET, SO_BROADCAST, 1);
bind(S, sockaddr_in(0, INADDR_ANY)) || die "can't bind\n";
$ipaddr = inet_aton($IP) || die "unknown host: $IP\n";
$paddr = sockaddr_in($PORT, $ipaddr) || die "sockaddr failed\n";
$ETHERNET_ID =~ s/[:-]//g;
$ETHERNET_ID = pack "H12", $ETHERNET_ID;
$WAKE_UP = $INIT_STREAM; $i=0;
while ($i<16) {
$WAKE_UP = $WAKE_UP . $ETHERNET_ID;
$i++;
}
# send three times to be sure the system gets the packet
send (S, $WAKE_UP,0,$paddr) || die "send failed.\n";
send (S, $WAKE_UP,0,$paddr);
send (S, $WAKE_UP,0,$paddr);
----couper