• Some users have recently had their accounts hijacked. It seems that the now defunct EVGA forums might have compromised your password there and seems many are using the same PW here. We would suggest you UPDATE YOUR PASSWORD and TURN ON 2FA for your account here to further secure it. None of the compromised accounts had 2FA turned on.
    Once you have enabled 2FA, your account will be updated soon to show a badge, letting other members know that you use 2FA to protect your account. This should be beneficial for everyone that uses FSFT.

w00t netbooting working

unhappy_mage

[H]ard|DCer of the Month - October 2005
Joined
Jun 29, 2004
Messages
11,455
woohoo i have my server machine now doing netbooting into folding!
i can give instructions on how to do this for other n00b farmers if anyone's interested, but I don't want to type it all up if noone will read it...

i still have a couple things to work out before i have a real farm... i have my network configured like this:
Code:
internet
   V
 192.168.1.* -> fold-server -> 10.*
   V                            V
 me, rogue, etc              folding machines
and what I need to figure out is how to tunnel the requests from 10.* over to the 192 side through fold-server. it's a fedora-core 1 machine. all the faqs on this issue are fairly vague, like "then make the routes and you're good to go". if anyone could help out with this, I'd really appreciate it.
btw, the reason I want to have a seperate network for the folding machines is so when they do dhcp they won't interfere with the other static ip machines. just fyi.

fold on!
 
dude, if this'll help me set up a farm that can all fold of one 2gig HDD then hell yeah, tell me how, brother! :p
 
We can use whatever wisdom you have gained from your netbooting work! If everything's easy enough, it might just be enough to get me to try my hand at Linux.
 
There's also Overclockix_LTSP- LTSP/folding OS on a live CD. Easy to use, and already setup for you. Current release let's you use persistent home feature to rsync stuff in ramdrive to usb pen or hard drive. Next release (due out very soon) will be meant to work from hdd-install, and will have the newer folding client. Also the newer release will use wine/tty because the native linux client is still slow at folding tinkers.

PS- in your DHCP config, you can specify a higher address range on the asme subnet as your router-

example router gives out IPaddy's starting at 100, so you could use say 230-250 for diskless clients to netboot, and not have to put things on a seperate subnet.
 
first, install linux of some sort on your netboot server. the only real requirement is that it have sshd or some way to log into it. I used fedora core 1 cause I had it around, but whatever you prefer will probably work similarly.
whoah... just sshed into fold-server and it was broked. be aware that if you do this you will almost inevitably break the install you start with due to confusing up client and server installs. but that's ok.

ok, as a start, a little primer on netbooting. I'm using etherboot for my net booter thingy. to use this, go to rom-o-matic.net and select your ethernet card. then select "floppy image (zdisk)" and download it. this is a thing that goes out and looks for a dhcp server and asks it for an ip address and a boot file. use dd or cat (or rawrite on windows) to put it on a floppy.

ok, i mentioned a dhcp server before. here's the dhcp config for my machine.
Code:
allow booting; #we need this
allow bootp;  # optional
option domain-name "[H]"; #w00t
option domain-name-servers 10.1.1.15; # your server
option broadcast-address 10.1.1.255; # invert netmask: if nm is 255.0.0.0, this is 10.255.255.255
use-host-decl-names on; # i dunno but it works with it
ddns-update-style none; # don't talk to a dns server
ignore client-updates; # see above
subnet 10.1.1.0 netmask 255.255.255.0 { # rules for this subnet
        default-lease-time 604800; # clients can keep addresses for a week b4 getting new ones
        option routers                  10.1.1.15; # server = router in this case
        option subnet-mask              255.255.255.0; # same as netmask
        option time-offset              -18000; # Eastern Standard Time
        range dynamic-bootp 10.1.1.20 10.1.1.254; # only hand out dynamic ips in this range
        host athlon1 {
                hardware ethernet 00:D0:09:DA:87:F8; # mac address
                filename "/kernel"; # see next paragraph
                fixed-address 10.1.1.1; # not really necessary
        }
}
ok, now what this does. dhcp gives ip addresses to computers that ask for them, and optionally some other information, like what dns server to use. one of the options is what file to retrieve from a tftp server, and boot from. so, we make use of this.
a tftp server is pretty simple to set up; if you're using redhat it may already be installed just disabled. look in /etc/xinetd.d: is there a file called "tftp"? if so, then change it to look like below. if not, install the tftp rpm (or compile it, that's what I did) and create the file as below. this lets xinetd know to run it and how to run it.
Code:
# default: off
# description: The tftp server serves files using the trivial file transfer \
#       protocol.  The tftp protocol is often used to boot diskless \
#       workstations, download configuration files to network-aware printers, \
#       and to start the installation process for some operating systems.
service tftp
{
        disable = no
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /tftpboot
        per_source              = 11
        cps                     = 100 2
}
note the "disable=no" and "server_args= -s /tftpboot" above. the first enables it, obviously, and the second says the server will be chrooted into /tftpboot. this means that any paths tftp sees will be relative to /tftpboot. for example, /tftpboot/kernel is seen by tftp as "/kernel". this is actually the file I used for my netboot setup.

so now it's time for the files you need. well, for my basic configuration I used tomsrtbt, a single floppy linux. download tomstrbt and unbzip2 it (bzip2 -d filename). then do
Code:
mkdir /toms
mount -o loop toms.img /toms
cp /toms/initrd.bz2 ~; bzip2 -d ~/initrd.bz2
umount /toms
mount -o loop ~/initrd /toms
mkdir build
what this does is open up the floppy and mount the "initial ram disk" on /toms. continuing:
Code:
dd if=/dev/zero of=~/my.init.rd bs=1k count=24k
mke2fs ~/my.init.rd
(answer yes)
mount ~/my.init.rd /build -o loop
cp -a /toms/* /build
what this does is make our own initial ram disk, and mount it on /build. then it copies all of the stuff out of /toms so you have a real system. ok, now let's get a netboot going just like this and see if it works.
Code:
netstat -an | grep udp
should return something like
Code:
udp        0      0 0.0.0.0:32768           0.0.0.0:*
udp        0      0 0.0.0.0:67              0.0.0.0:*
udp        0      0 0.0.0.0:68              0.0.0.0:*
udp        0      0 0.0.0.0:69              0.0.0.0:*
udp        0      0 0.0.0.0:111             0.0.0.0:*
udp        0      0 0.0.0.0:631             0.0.0.0:*
udp        0      0 0.0.0.0:1021            0.0.0.0:*
but what we're interested in is ports 67, 68, and 69. that's dhcp and tftp. if they aaren't open like this, check your config, and make sure they're started. now what we'll do is make the "/kernel" file. you'll need a kernel for this, either use the one from /boot/vmlinuz (usually) or compile your own. I just called this "bzImage" so replace that with the location of your kernel.
Code:
cd /tftpboot
cp ~/my.init.rd .
gzip -f my.init.rd
mkelf-linux bzImage --output=kernel --rootdir=/dev/ram0 my.init.rd.gz
i forget if mkelf-linux comes with FC1, but here it is: mkelf-linux
my "kernel" file comes out to about 5 megs, but I built my kernel with all the ethernet drivers turned on so it'll work almost anywhere. that makes it about 3.5mb. ymmv.

now go to that client machine, pop in that floppy, and boot it. it should find the dhcp server, and then download the "kernel" file we just made. then it boots from the kernel, and reads "my.init.rd" as the "initial ram disk", and then runs. You should end up with a tomsrtbt login prompt.

Next time on the NETBOOT ZONE: How to actually install Folding! :D
 
sorry for the double post, but I didn't remember the post-length limit and I don't want to hit it.

Last time in the NETBOOT ZONE, we got our machines booting over network with etherboot. This time, we'll investigate how to put these machines to work folding. first, we'll assume that you're in the same state as you were last time, eg you have /build mounted, etc. what we need to do is put folding into our intial ramdisk. so:
Code:
cd /build
mkdir fold
cp ~/FAH500-Linux.exe fold/
if you have the FahCore's (65 & 78 (Linux cores only!)) then put those in there too so they don't have to get downloaded every time. Copy your client.cfg over too. Or you can use mine, just PM me and I'll send it to you. :D
Next, we want folding to start on boot. Tomsrtbt uses a custom rc file, called rc.custom.gz so we'll edit this.
Code:
gzip -d /build/rc.custom.gz
vi (or emacs) /build/rc.custom
what we want to do is change the end (we want folding to start after networking, etc) of rc.custom and add the command to start folding. I used this:
Code:
echo "Now starting Folding@Home 5.00: "
cd /fold
./FAH500-Linux.exe 2>&1 | tee fah.output &
This tells you what it''s doing, and writes the output of F@H to /fold/fah.output. It also backgrounds itself, so you won't accidentally kill it.

Note that every time you reboot the client machine, all your WU goes away :(. I'm working on a solution. For right now, though, just don't reboot.

Until next time: Stay [H]ard!
 
I see ramdisking happening, but what needs to happen is the servers has an NFS share for all the folding directories on its hard drives. Client machine's are set to connefct to this NFS share at boot, before launching folding. They then launch folding off the server's HDD.

I use a perl script so that the folding directories are created automatically, and are named by the last octet of the IP address. Rebooting does not cost you your current wu because all fold directories are on the server.

Also I use this on the server (since I let it run KDE and actually use it for web browsing and stuff).

http://overclockix.octeams.com/folding-karamba-0.5.tgz

It's a folding monitor theme for karamba/superkaramba.


Anyway everything but the karamba theme is in Overclocix LTSP if you care to examine the init scripts I used for server and clients for folding. Also there is a GUI for the terminial server config so its very easy to use.

Next release should have the karamba theme and should also be HDD-installable rather than meant to run from CD and serve folding directories from a usb or small HDD.
 
Back
Top