*** OpenBSD 3.5@ Strato Howto
*** (C)opyleft 2004 by Dettus
***   as of January, 9th 2005

0.) Disclaimer
Okay, here is a little howto to install OpenBSD Unix on a Strato root-server.
If you are impatient, you won't need more than a piece of paper, and a ssh 
If you got time, you will also need a local installation of OpenBSD to make
a bootable installation floppy. 

1.) Serial console
First of all, get an account. Strato has the nice feature of a remote serial
console, which actually CRIES out for installing a new Operating System. 
You have to activate it through the web-frontend. Do it, and read the 
instructions how to access your server.

2.) Write down network information
Boot your server into default mode. It is important that you write down all your
network information, because somehow the dhcp support failed. DON'T LOOSE IT!
We will destroy your system a little later.
Make sure you have:
  ipadress, broadcast, netmask -> run "ifconfig"
  hostname                     -> run "hostname"
  nameserver, dommainname      -> run "cat /etc/resolv.conf"
  defaultrouter                -> run "route -n"
  serial port speed            -> run "cat /etc/lilo.conf"

Got everything? Great! Check it again... ;-) And watch out that your serial 
speed is 57600 if you want to use my bootfloppy!

3.) Backing up
Now it is time to boot up the rescue system. Use the web-frontend to get it.
It may take a few minutes until you can type in "reboot" to fire it up. 
If you want to play it save, I recommend that you backup the first bytes of
/dev/hda, jsut in case you chicken out, or something goes wrong with the floppy

% dd if=/dev/hda of=harddiskbootimage.img bs=1k count=1440

Copy this image via scp to a save location. 

4.) Booting OpenBSD
Now it is time to boot up the rescue system. Use the web-frontend to get it.
It may take a few minutes until you can type in "reboot" to fire it up. Anyhow,
after it is done, you can write the image of an installation floppy directly to
the harddisk. FOR THE IMPATIENT ONES: Use my floppyimage. ALL THE OTHERS: I will
tell you later how to build up your own.

If you want to use my image, you can type in:
% wget -O- http://www.dettus.net/floppy35_seriell.fs.gz | gzip -d -f >/dev/hda
(Its MD5sum is: 1cde7d54182efdfd2fdcfd9b5905ba28)

All your other stuff will be lost on your harddrive. But who needs it anyway? ;)
(If anything goes wrong, you can still replace the first bytes by the backup you

Boot your computer in normal mode now, and it will show you the familiar OpenBSD
bootprompt. While the kernel boots, you will see a lot of broken characters, 
but don't worry, it will drop you off at the famous "(U)pgrade, (I)nstall or 
(S)hell" prompt.

5.) Testing the network
First of all, use the shell to setup all the network information you have 
written down. In my case, the netmask was brainfucked ( so I
ran into some trouble when I tried to setup up the default route. Don't worry
about this, just set it to the, and everything works out 
Leave the shell and choose "(I)nstall".

6.) Installing
Installing OpenBSD is straightforward, I recommend using the whole harddisk for
it. Read http://www.openbsd.org/faq4 for more information, if you like. Use the
network information you have written down (and verified *g*) and choose (f)tp 
as installation medium. 
Choose whatever package you like, and install it over the net. (This costs 
traffic, you know?) And wait. And choose your Timezone.

7.) Setting up OpenBSD for a serial console
After you have installed everything, and the devices are set up, change to
/mnt/etc and create a file called "boot.conf": 
  % echo "set tty com0" >>/mnt/etc/boot.conf
  % echo "stty com0 57600" >>/mnt/etc/boot.conf
This will boot up and all the standard output will pe written to the serial
console. The next part is a bit tricky: You have to activate the serial console
for a login. And you will have to use "ed" for that. 
  % ed /mnt/etc/ttys
Type in numbers to jump through all the lines in the file. Type "1" and press 
Enter to go to the first, type "2" to go to the second and so on. Line "19"
contained the following entry at my installation:
  tty00   "/usr/libexec/getty std.9600"   unknown off
You have to change this. Use the "c" command for that, and type in
  tty00   "/usr/libexec/getty std.57600"  vt220   on  secure
Press Enter and CTRL-D to exit the change mode. Then use "w" to write the file
and "q" to get the hell out of this editor. Other ed commands are "." to show 
the contents of the actual line, and "d" to delete a line. Well, better then
Use "cat /mnt/etc/ttys" to check if the file is broken. If not... hooray!

8.) Rebooting your system
After all this trouble you have bin through, you are finally able to reboot your
freshly handcrafted OpenBSD-Box. Just type in "reboot", and you'll be set.

9.) Setting up your netmask correctly (No guarantee and Strato-specific)
After booting up you maybe want to be able to reach all the users in your subnet
which is impossible if you still have the /24-netmask. You actually need the /32
netmask at strato!
So what Kili did was to write the following stuff into hostname.fxp0:

  inet 81.169.133.xxx 0xffffffff
  !route add -link \$if: -interface

and the router (

went into /etc/mygate. Replace 81.169.133.xxx with your ip-adress and with your routers. And done!

Have fun!


APPENDIX A: Setting up your own bootfloppy
As I told you before here are some tips for making your own bootfloppy: Some of
them are quite hazardous, and could be done in a much more proper way. Anyhow, 
this is how I did it:

A0.) The simple way
Theoretically it is enough if you download the floppy35.fs from your favourite
OpenBSD-mirror and set up a file /etc/boot.conf on it. To do this, mount it:
  % vnconfig svnd0 floppy35_serial.fs
  % mount /dev/svnd0a /mnt
create a directory /etc:
  % mkdir /mnt/etc
and setup a file called "boot.conf" in it:
  % echo "set tty com0" >/mnt/etc/boot.conf
  % echo "stty com0 57600" >>/mnt/etc/boot.conf
unmount it:
  % umount /mnt
  % vnconfig -u svnd0
If you don't have any operating system at had which is able to read the OpenBSD
filesystem, just use the bootdisk itself. Simply boot your computer up with it,
wether directly or in VMWare. Choose S)hell, and then type 
  % mount /dev/fd0c /mnt
  % mkdir /mnt/etc
  % echo "set tty com0" >/mnt/etc/boot.conf
  % echo "stty com0 57600" >>/mnt/etc/boot.conf
  % umount /mnt
to get the same effect.

And now write it into your bootsector as described in step 4. I don't know if
this works, I did it the complicated way. If it's not working for you, keep 

A1.) Get src.tar.gz and sys.tar.gz
You need a running installation of OpenBSD at home for this. Get both the 
src.tar.gz and sys.tar.gz packages for this. Install them to /usr/src and 

A2.) Configuring the Kernel
Go to /usr/src/sry/arch/i386/conf and copy the RAMDISK config to RAMDISK.orig.
Edit RAMDISK after that (I know, I know...). Comment out the following devices:
pckbc0, pckbd* wskbd*, vga0, vga*, pcdisplay0, wsdisplay*, wsdisplay*. That way
you make sure that booting the floppy will print out as much as possible on the
serial console.
NAnT told me, that you also need the option PCIBIOS_INTR_FIXUP_FORCE in your 
kernel, if you are running into problems with some fxp0 timeout messages.

A3.) Compiling Crunch
Crunch is a tool needed for the creation of the bootdisks. Go to the directory
/usr/src/distrib/crunch and run
  % make ; make install

A4.) Editing the miniroot partition.
Go to /usr/src/distrib/miniroot, and create a file called "boot.conf" with the
following entries:
  set tty com0
  stty com0 57600
(The number "57600" is the baudrate of the serial console, it should match the
value that you have written down from /etc/lilo.conf on your rootserver!)
Make sure that boot.conf gets onto your disk: Edit the file located in the 
/usr/src/distrib/i386 directory, called "common". Find the line with "protocols"
and duplicate it. After that replace "protocols" with "boot.conf" in one of 

A5.) Compilation
Now it is time to build the bootfloppy: Go to "/usr/src/distrib/i386/ramdiskA"
and type in "make". When everything works smoothely, you'll have a file called
"floppy35.fs" at your hands. If it complains about some missing ".c"-files, it
could be because those files are located somewhere beneath "/usr/src/sys" in the
kernel sources. Find them and copy them to where the compilation failed. Re-run
When it's done, move the "floppy35.fs" file to "floppy35_serial.fs" or something
so that you won't be confused.

A6.) Mount your floppy
Mount your bootfloppy. Type in 
  % vnconfig svnd0 floppy35_serial.fs
  % mount /dev/svnd0a /mnt
and copy /usr/src/distrib/miniroot/boot.conf to /mnt/etc/boot.conf
  % mkdir /mnt/etc
  % cp /usr/src/distrib/miniroot/boot.conf
and unmount the imagefile
  % umount /mnt
  % vnconfig -u svnd0

And your bootfloppy is ready!!! Write it onto the harddrive in your rootserver
like I mentioned before. 

Have fun with your OpenBSD at Strato!

A7.) Again: If you keep getting a "fxp0: device timeout" and you are not able to
get your network running, try compiling the kernel with 
"PCIBIOS_INTR_FIXUP_FORCE". (Thank you Markus and Marcus for that hint)

(Get the newest version at http://www.dettus.net/openbsd_at_strato.txt )

________          __    __                 .____  ____  ___          ___\./
\______ \   _____/  |__/  |_ __ __  ______ |   _| \   \/  /___  ___ |_  /|\ 
 |    |  \_/ __ \   __\   __\  |  \/  ___/ |  |    \     / \  \/  /   |  |
 |    `   \  ___/|  |  |  | |  |  /\___ \  |  |    /     \  >    <    |  |
/_______  /\___  >__|  |__| |____//____  > |  |_  /___/\  \/__/\_ \  _|  |
        \/     \/                      \/  |____|       \_/      \/ |____|
openbsd_on_soekris_quickinstall.txt openbsd_at_strato.txt openbsd_at_strato2.txt ;-) dmesg.txt

ninvaders OpenBSD port md5sum: 7e52f8e42d41c418f4f368d3c09ab9f0