[mythtv-users] HOW TO: Early boot backend server from frontend
Bill
level42 at sympatico.ca
Tue Mar 25 00:53:21 UTC 2008
Reposting this with a different title and some new info.
I've come up with a way to send a WOL packet to my master backend server
almost immediately after the frontend boots. This gains about 15-20 seconds
on the backend boot time, compared to using an init.d script to wake the
server. This way the frontend and server boot together, and the frontend
does not have to wait long for the backend to be up and running.
I use gpxe on a USB key modified to send a WOL packet. The frontend first
boots gpxe off the USB key, then continues a normal boot from the harddrive.
Normally gxpe will try to boot off the network, but I disable this portion
of the code and use it strictly for sending the WOL packet to the backend.
The wol code is now available on contrib/wakeonlan of the gpxe code base
(http://www.etherboot.org/wiki/download). The file wol.c needs to be put in
src/util and wol.h in src/include/usr. The make scripts will automatically
generate the rules to build wol.c. I can post my main.c, but essentially I
comment out the code that calls shell() and autoboot() and then add a call
to wakeup_server with the mac address as the parameter.
I've only tested the code with the e1000 driver, but it is generic and
should work with other drivers.
Note that gxpe has a limited set of ethernet drivers, and you may want to
check if your ethernet chip is supported first. If your using the e1000
driver, there are a few bugs when using it with a 82573 (and likely with
many other intel chips) that I have posted a fix to the etherboot mailing
list, but can also send that to those in need.
Bill
More information about the mythtv-users
mailing list