|
|
Riga 90: |
Riga 90: |
|
| |
|
| == Ultimi ritocchi == | | == Ultimi ritocchi == |
| Ora, se il PC è partito, noterete che lanciando nuovamente <pre>ethtool eth0</pre> il metodo di wake-on è tornato a <code>d</code>. | | Ora, se il PC è partito, potrebbe capitare che, lanciando nuovamente <pre>ethtool eth0</pre>, il metodo di wake-on è tornato a <code>d</code>.<br/> |
| Per far si che ogni volta che accendete il computer il metodo usato sia <code>g</code> ci sono varie strade; di seguito spiegherò quella che ho scelto ovvero | | Per far si che ogni volta che accendete il computer il metodo usato sia <code>g</code> , è sufficiente modificare il file <code>/etc/rc.local</code> inserendo, subito prima dell'istruzione "exit 0", la riga: |
| la modifica del file di avvio della rete.
| |
| | |
| Aprite il file <code>'''/etc/init.d/networking'''</code> e modificatelo come segue:
| |
| <pre> | | <pre> |
| #!/bin/sh
| | ethtool -s eth0 wol g |
| #
| |
| # manage network interfaces and configure some networking options
| |
| | |
| PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
| |
| | |
| if ! [ -x /sbin/ifup ]; then
| |
| exit 0
| |
| fi
| |
| | |
| spoofprotect_rp_filter () {
| |
| # This is the best method: turn on Source Address Verification and get
| |
| # spoof protection on all current and future interfaces.
| |
|
| |
| if [ -e /proc/sys/net/ipv4/conf/all/rp_filter ]; then
| |
| for f in /proc/sys/net/ipv4/conf/*/rp_filter; do
| |
| echo 1 > $f
| |
| done
| |
| return 0
| |
| else
| |
| return 1
| |
| fi
| |
| }
| |
| | |
| spoofprotect () {
| |
| echo -n "Setting up IP spoofing protection: "
| |
| if spoofprotect_rp_filter; then
| |
| echo "rp_filter."
| |
| else
| |
| echo "FAILED."
| |
| fi
| |
| }
| |
| | |
| ip_forward () {
| |
| if [ -e /proc/sys/net/ipv4/ip_forward ]; then
| |
| echo -n "Enabling packet forwarding..."
| |
| echo 1 > /proc/sys/net/ipv4/ip_forward
| |
| echo "done."
| |
| fi
| |
| }
| |
| | |
| syncookies () {
| |
| if [ -e /proc/sys/net/ipv4/tcp_syncookies ]; then
| |
| echo -n "Enabling TCP/IP SYN cookies..."
| |
| echo 1 > /proc/sys/net/ipv4/tcp_syncookies
| |
| echo "done."
| |
| fi
| |
| }
| |
| | |
| doopt () {
| |
| optname=$1
| |
| default=$2
| |
| opt=`grep "^$optname=" /etc/network/options`
| |
| if [ -z "$opt" ]; then
| |
| opt="$optname=$default"
| |
| fi
| |
| optval=${opt#$optname=}
| |
| if [ "$optval" = "yes" ]; then
| |
| eval $optname
| |
| fi
| |
| }
| |
| | |
| case "$1" in
| |
| start)
| |
| doopt spoofprotect yes
| |
| doopt syncookies no
| |
| doopt ip_forward no
| |
| | |
| echo -n "Configuring network interfaces..."
| |
| ifup -a
| |
| ethtool -s eth0 wol g
| |
| echo "done."
| |
| ;;
| |
| stop)
| |
| if sed -n 's/^[^ ]* \([^ ]*\) \([^ ]*\) .*$/\1 \2/p' /proc/mounts |
| |
| grep -q "^/ nfs$"; then
| |
| echo "NOT deconfiguring network interfaces: / is an NFS mount"
| |
| elif sed -n 's/^[^ ]* \([^ ]*\) \([^ ]*\) .*$/\1 \2/p' /proc/mounts |
| |
| grep -q "^/ smbfs$"; then
| |
| echo "NOT deconfiguring network interfaces: / is an SMB mount"
| |
| elif sed -n 's/^[^ ]* \([^ ]*\) \([^ ]*\) .*$/\2/p' /proc/mounts |
| |
| grep -qE '^(nfs[1234]?|smbfs|ncp|ncpfs|coda|cifs)$'; then
| |
| echo "NOT deconfiguring network interfaces: network shares still mounted."
| |
| else
| |
| echo -n "Deconfiguring network interfaces..."
| |
| ifdown -a --exclude=lo
| |
| echo "done."
| |
| fi
| |
| ;;
| |
| force-reload|restart)
| |
| doopt spoofprotect yes
| |
| doopt syncookies no
| |
| doopt ip_forward no
| |
| echo -n "Reconfiguring network interfaces..."
| |
| ifdown -a --exclude=lo
| |
| ifup -a
| |
| ethtool -s eth0 wol g
| |
| echo "done."
| |
| ;;
| |
| *)
| |
| echo "Usage: /etc/init.d/networking {start|stop|restart|force-reload}"
| |
| exit 1
| |
| ;;
| |
| esac
| |
| | |
| exit 0
| |
| | |
| </pre>
| |
| | |
| Le uniche due modifiche che ho fatto sono le due aggiunte del comando <code>'''ethtool -s eth0 wol g'''</code> nella sezione di start e restart delle interfacce di rete. Copiate solo quel comando nel vostro file nel punto corrispondente; evitate di fare il copia e incolla dell'intero file.
| |
| | |
| {{ Warningbox | gli utenti k/ubuntu hanno una versione leggermente diversa; il comando sopracitato va messo dopo il blocco "if" }}
| |
| | |
| '''Esempio estratto dal file networking di Kubuntu:'''
| |
| <pre>
| |
| if [ "$VERBOSE" != no ]; then
| |
| ifup -a
| |
| else
| |
| ifup -a >/dev/null 2>&1
| |
| fi
| |
| ethtool -s eth0 wol g
| |
| </pre> | | </pre> |
|
| |
|
| '''Metodo alternativo''' | | '''Metodo alternativo''' |
|
| |
|
| Un metodo alternativo che non richiede la modifica dello script di avvio è quello di inserire l'abilitazione della funzione wake quando l'interfaccia | | Un metodo alternativo che non richiede la modifica dello script di avvio è quello di inserire l'abilitazione della funzione wake quando l'interfaccia di rete viene tirata su. Per fare questo si può inserire l'istruzione <code>'''ethtool -s eth0 wol g'''</code> direttamente in <code>'''/etc/network/interfaces'''</code>. Ad esempio: |
| di rete viene tirata su. Per fare questo si può inserire l'istruzione <code>'''ethtool -s eth0 wol g'''</code> direttamente in <code>'''/etc/network/interfaces'''</code>. Ad esempio: | |
|
| |
|
| <pre> | | <pre> |
Riga 231: |
Riga 107: |
| gateway 192.168.1.1 | | gateway 192.168.1.1 |
| </pre> | | </pre> |
| diventa | | diventa: |
| <pre>
| | |
| auto eth0 | | auto eth0 |
| iface eth0 inet static | | iface eth0 inet static |
| address 192.168.1.2 | | address 192.168.1.2 |
| netmask 255.255.255.0 | | netmask 255.255.255.0 |
| gateway 192.168.1.1 | | gateway 192.168.1.1 |
| up ethtool -s eth0 wol g | | '''up ethtool -s eth0 wol g''' |
| </pre>
| | |
| | |
| Notare l'aggiunta della direttiva <code>'''up'''</code> per l'interfaccia <code>'''eth0'''</code>. | | Notare l'aggiunta della direttiva <code>'''up'''</code> per l'interfaccia <code>'''eth0'''</code>. |
|
| |
|