Finalmente, alguns progressos, mas ainda não são suficientes. Como eu estou no kernel "3.19.0-32-generic" eu baixei o código fonte para o drive alx do kernel.org, editei os arquivos para aplicar o patch ( clique aqui para o patch ) muito recomendado por @MariusMatutiae, então compilado e substituído o driver com o novo corrigido. Agora posso finalmente ver "Supports Wake-on: pg" na saída do comando ethtool, mas não consigo ativar a máquina (shutdown, hibernate, suspend). Já tentei com meu roteador (ambos com a funcionalidade aiCloud e o wake on lan nativo do roteador) e etherwake de outra caixa linux. Vou continuar cavando, por enquanto, veja abaixo o que eu fiz. Outra coisa é que depois de inicializar o driver alx não carregaria, então eu criei um script no rc.local para carregá-lo. Provavelmente estou fazendo da pior maneira possível, mas vou chegar lá.
Faça o download do kernel (o mesmo que eu uso atualmente)
cd ~/Downloads
wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.19.tar.gz
Descompacte apenas os arquivos do driver alx
tar xf linux-3.19.tar.gz linux-3.19/drivers/net/ethernet/atheros/alx
Vá para a pasta com o código-fonte
cd linux-3.19/drivers/net/ethernet/atheros/alx
IMPORTANTE : Aqui é necessário editar os arquivos de código-fonte alx conforme link
Compile
sudo make -C /lib/modules/$(uname -r)/build M=$(pwd) modules
sudo make -C /lib/modules/$(uname -r)/build M=$(pwd) modules_install
Remova o driver alx (se você for remoto / ssh, sua conexão irá cair e precisará fazer login diretamente na máquina)
sudo rmmod alx
Reinsira o driver alx
sudo insmod alx.ko
Apague e copie o arquivo alx.ko
sudo cp /lib/modules/$(uname -r)/kernel/drivers/net/ethernet/atheros/alx/alx.ko /lib/modules/$(uname -r)/kernel/drivers/net/ethernet/atheros/alx/alx.ko.good
sudo rm /lib/modules/$(uname -r)/kernel/drivers/net/ethernet/atheros/alx/alx.ko
sudo cp alx.ko /lib/modules/$(uname -r)/kernel/drivers/net/ethernet/atheros/alx/alx.ko
Neste momento, se você tentar "ethtool -s eth0 wol pg", ele deve funcionar, mas isso não vai durar até você inicializar novamente. Então eu tive que adicionar o seguinte ao meu arquivo /etc/rc.local (por favor, note o arquivo criado 'alx.ko' eu mudei para /Drivers/alx.ko):
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
#
exec 2> /tmp/rc.local.log
exec 1>&2
set -x
####################################################
# Enable WOL on eth0 at start-up
rmmod alx
insmod /Drivers/alx.ko
rm /lib/modules/$(uname -r)/kernel/drivers/net/ethernet/atheros/alx/alx.ko
cp /Drivers/alx.ko /lib/modules/$(uname -r)/kernel/drivers/net/ethernet/atheros/alx/alx.ko
ethtool -s eth0 wol pg
iw phy0 wowlan enable magic-packet
# End
####################################################
exit 0