micolous.id.au

The result of a blogging accident

ddrlan-linux

Making a small Linux distribution based on ucLibc, to run ddrgen and a BitTorrent tracker. Having a bit of an interesting time cross compiling the system (as it’s on my desktop, which is x86_64-pc-linux-gnu, versus the target which is i386-pc-linux-gnu. There was a good cross compilation mini-howto I found, and I ended up making a ‘smake’ shell script for the system:

#!/bin/sh
make ARCH=i386 CROSS_COMPILE=i386-linux-uclibc- $*

I also had to make links in /usr/bin from i386-linux-uclibc-ld to ld, i386-linux-uclibc-ar to ar and i386-linux-uclibc-nm to nm to make the kernel happy. Then a simple smake menuconfig started off the configuration in the correct i386 mode. There were probably other links I added, but I forgot what they were.

At present, I have a read-only system booting, with a ASCII art bootsplash. I have udhcpd, nmap, ddrgen, minimal samba client, and djbdns installed, and mostly setup. All in 128MB. And there’s a complier and sshd. One minor catch is that the compiler needs includes that I’ve removed.

I’ve built a nice Makefile for ddrgen, and I’m also testing djbdns support. I’m now upto a point where I’m writing another program, azfinder, which will eventually look in a SMB share for some settings then go and connect to the Azureus inbuilt tracker and leech it’s torrents.