Recent Updates |
![]() |
| archhurd-artwork 1 | extra |
| More… | |
Roadmap:
- Natively build packages:
- Get makepkg and pacman running
- Build all packages required for a bootable system
- Start populating repositories
- Installation media
- Party!
Installing Arch Hurd
First build Arch Hurd using the latest crosshurd script available from http://files.archhurd.org/crosshurd. The current stable version is crosshurd-20100121.tar.gz, crosshurd-20100213.tar.gz is still under development and should only be used if you're going to be working on the crossbuild scripts.
mkdir crosshurd
tar xvf /path/to/crosshurd-20100121.tar.gz
# Now you need to set important variables in the prepare script:
# $ROOT needs to be set to where you extracted the tarball (ie: the current directory)
# $HOST needs to be set to your current system (i686-pc-linux-gnu for i686, x86_64-unknown-linux-gnu for x86_64).
# Note: currently building the cross-toolchain fails on x86_64.
# $TARGET needs to be set to what you're building for. You shouldn't need to change this.
# You can also edit the version numbers of the programs used in the cross-compile, but the default versions are known to work.
nano ./scripts/prepare
source ./scripts/makeall
mkdir $HURD_DIR/servers
touch $HURD_DIR/servers/exec
mkdir $HURD_DIR/servers/socket
mkdir $HURD_DIR/tmp
chmod 1777 $HURD_DIR/tmp
And, here is how to build a qemu image:
# Create the image
qemu-img create -f raw hurd.img 1GB
# Make and format partition
losetup /dev/loop0 hurd.img
fdisk /dev/loop0
losetup -d /dev/loop0
# partition should start at sector 63. Check with fdist -ul hurd.img
losetup -o 32256 /dev/loop0 hurd.img
mkfs.ext2 -b 4096 -I 128 -o hurd -F /dev/loop0
# mount image
mkdir $ROOT/mnt
mount -o loop /dev/loop0 /mnt
# Then, build hurd and copy to /mnt
# Unmount
umount /mnt
losetup -d /dev/loop0
# Download a grub boot image
wget http://www.dolda2000.com/~fredrik/grub.img
# Note: Networking doesn't seem to work in qemu 0.12.1, downgrade to 0.11.1
qemu -boot a -fda grub.img -hda hurd.img -net nic,vlan=1 -net user,vlan=1
You should now be able to boot! The commands you'll need to give to GRUB (and which can later be put into your menu.lst) can be found on the Debian GNU/Hurd install page.
After booting, you'll probably notice that it complains about /dev/console being missing. So, let's make a few devices:
# To stop things complaining about pipes:
settrans -c /servers/socket/1 /hurd/pflocal
# Now for devices:
cd /dev
./MAKEDEV console null zero time hd0 hd0s1
Let's set up various configuration files now:
echo "/dev/hd0s1 / ext2 defaults 1 1" > /etc/fstab
echo "root:x:0:0:root:/root:/bin/bash" > /etc/passwd
# For qemu networking:
echo "nameserver 10.0.2.3" > /etc/resolv.conf
And, to start up the network:
settrans -afgp /servers/socket/2 /hurd/pfinet -i eth0 -a 10.0.2.15 -g 10.0.2.2 -m 255.255.255.0
You now have an Arch Hurd system up and running! Admittedly, it's fairly useless at the moment and lacking some important things, but it boots.
Archlinux Copyright © 2002-2009 Judd Vinet and Aaron Griffin.
The Arch Linux name and logo are recognized trademarks. Some rights reserved.
The registered trademark Linux® is used pursuant to a sublicense from LMI, the exclusive licensee of Linus Torvalds, owner of the mark on a world-wide basis.
