Wol
From Foomagic
I have absolutely no idea why you *still* need to patch this module to enable WOL for the sis900 chip. Whilst trying to find a solution to this, I have found patches dating back many years, and as far back as kernel 2.4.20 as you can see here, here, and here. (this last one is the patch for the 2.6.13 kernel) As I am to lazy to post about this on the LKML, if you know a valid reason why the 2.6.13 kernel *still* has to be patched to provide this pretty basic capabilty, then please feel free to email liable at this hostname. (I really hope that there is a good reason for it!) Unfortunately I couldnt find a patch for the stock debian 2.6.8 kernel, so I had to upgrade and compile a kernel just for this capability... (not only that, but ethtool showed pretty much no info for this card with the 2.6.8 kernel, the 2.6.12 debian image supplied more info, but still no wol support)
Anyway, the procedure is pretty painless, and works. So if you need wake on lan for this module and dont mind patching and compiling a 2.6.13 kernel for your box, then keep reading. The patch can be downloaded from the last link above. Its marked as still pending, but it does work. Just in case the link for it goes down or whatever, there is a copy of it here.
For those that know how to patch and compile there own kernel, you can prolly leave now, and the only thing you need to do after compiling is to play with ethtool. All is pretty well explained in the man page. Unlike previous patches, you dont need to pass the 'enable_wol=1' option to the module at boot. (although if you do, there won't be any ill effects, i have loaded the module with and without the option, and it works both ways) My card doesn't need to have anything done to it once wol is set, except if it gets shutdown uncleanly, then it needs to be passed the ethtool paramater again during boot. I just added the ethtool bit to my networking init script to run at startup. Its all pretty well explained in this article. There is no work around for having the box shutdown uncleanly and then being able to wake on lan though. (as far as I can see) and therefore a good excuse to go out and buy yourself a linux supported ups :)
Getting and applying the patch is all pretty simlple, but the kernel config and compiling I will leave up to the reader. The code here is for downloading the 2.6.13.4 vanilla source, the patch and applying the patch.
foo$ wget www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.13.4.tar.bz2 foo$ wget www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.13.4.tar.bz2.sign foo$ wget www.brownhat.org/download/kpatches/sis900_c_127.diff foo$ gpg --keyserver wwwkeys.pgp.net --recv-keys 0x517D0F0E foo$ gpg --verify linux-2.6.13.4.tar.bz2.sign linux-2.6.13.4.tar.bz2 #hopefuly all is well.. foo$ tar -jxf ./linux-2.6.13.4.tar.bz2 foo$ cd ./linux-2.6.13.4 foo$ patch -p1 ../sis900_c_127.diff
Hopefully your patch applied cleanly and you are now ready to compile your kernel. No special options are created with the patch, so just choose the sis900 module as you normally would and once you boot into it, ethtool should show that you now have wake on lan support for your card. (dont forget to set it in the bios!)
