These instructions only works for Debian/Squeeze or later as debirf was neither included nor working... 1) Install DNSmasq 2) Configure DNSmasq in /etc/dnsmasq.conf 2.1) enable line dhcp-range=192.168.5.100,192.168.5.200,12h 2.2) add line dhcp-boot=pxelinux.0,master,192.168.5.1 2.3) remember to only bind to one interface interface=eth1 2.4) DNSmasq contains a built-in TFTP server - uncomment enable-tftp 2.5) set TFTP root tftp-root=/var/lib/tftpboot 3) reboot to ensure dnsmasq gets free access to network 4) Install pxelinux 4.1) copy pxelinux.0 to TFTP home cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot/ 5) PXElinux needs a config dir in /var/lib/tftpboot/ with PXE boot info mkdir /var/lib/tftboot/pxelinux.cfg/ cat <>/var/lib/tftboot/pxelinux.cfg/C0A805 DISPLAY boot.txt DEFAULT linux LABEL linux kernel vmlinuz append initrd=initrd.gz EOF Now we need to prepare a initrd that only runs in RAM - a small, nice script for this is included in Debian: debirf The example "minimal" from /usr/share/doc/debirf/example-profiles/minimal.tgz is a good starting point Build it using "debirf make minimal" Two new files are made that contains an initrd and a kernel for PXE booting - copy those to /var/lib/tftpboot and test booting. Time to customize debirf: 1) Network is in "minimal" not enabled at boot 1.1) change minimal/modules/network from a link to a file: rm network && cp .../network . 1.2) Update the etc/network/interfaces embedded in network-script -iface dhcp inet dhcp +auto eth0 +iface eth0 inet dhcp EOF # reset /etc/resolv.conf > "${DEBIRF_ROOT}/etc/resolv.conf" -# add network note to /etc/motd.tail -cat <> "${DEBIRF_ROOT}/etc/motd.tail" -If you have a network interface (ie. "eth0"), you can bring it up with: -ifup eth0=dhcp -(you can list available network interfaces with 'ifconfig -a') -================================================== -EOF 2) Create a new file in minimal/modules called distcc: <<>> #!/bin/bash debirf_exec aptitude --assume-yes install gcc distcc cat < "${DEBIRF_ROOT}/etc/default/distcc" STARTDISTCC="true" ALLOWEDNETS="127.0.0.1 192.168.5.0/24" JOBS="3" ZEROCONF="true" EOF <<>>