Re: : booting openbsd on eee without cd-rom

Previous thread: Re: Recording OpenNTPd PID at daemon startup by Helmut Schneider on Tuesday, January 29, 2008 - 6:54 am. (3 messages)

Next thread: Re: Recording OpenNTPd PID at daemon startup by Helmut Schneider on Tuesday, January 29, 2008 - 7:19 am. (1 message)
From: frantisek holop
Date: Tuesday, January 29, 2008 - 6:59 am

hi there,

i was wondering if some of the boot sector/fdisk magicians
out there could lend me a hand in booting openbsd on the eee
without access to a cd-rom drive.

what i need is basically advice how to handcraft a boot sector
on an usb media with a snapshot for the boot process
to pick it up using exclusively xandros on the eee...

thanks in advance.

-f
-- 
RULE SIX: the winning team shall be the first team that wins.

From: Nick Holland
Date: Tuesday, January 29, 2008 - 7:45 am

see recent thread, "Install OpenBSD from USB".
Don't believe all of of what people said. :)

(short version: just do a normal install to the flash disk)

Nick.

From: frantisek holop
Date: Tuesday, January 29, 2008 - 8:05 am

how do i boot bsd.rd to make an install to the flash disk?
chicken egg.  i dont have an usb cdrom, nor floppy disk.
only usb media.  i need to create a bootable usb media...

-f
-- 
help you out?  certainly!  which way did you come in?

From: Mark Mathias
Date: Tuesday, January 29, 2008 - 8:50 am

drive, a minimal install should fit, unless you have a very small drive


-- 
Mark Mathias

From: Nick Holland
Date: Tuesday, January 29, 2008 - 9:21 am

see the referenced thread...

Prep the install device on another machine.  Other machine just needs
a USB port, doesn't need to be bootable there or USB2 or anything else
fancy, as long as OpenBSD recognizes it.

Either that, or get me an eeepc so I can see what the existing
environment is and what the BIOS can do, then we might be able to give
you specific instructions to build a boot environment on the eeepc,
but it would be cheaper to just prep it on another machine. :)

(some people will say dd the floppy image onto the flash device, but
the functionality of that depends upon your BIOS's USB boot code.
'course, the functionality of my process assumes a non-broken USB
boot code in the BIOS, and I should know better).

Nick.

From: frantisek holop
Date: Wednesday, January 30, 2008 - 5:16 am

should have been clearer probably...
i am on the road.  there is no other machine...
all i have is the eee and the internet and the usb media.


my understanding of the boot process process for i386 tells me,
all i need is ia bootsector from someone who already has an openbsd
bootable usb media and the instructions which bytes to change
based on what :) (where is boot(8) on my usb media)

OR

something like the zaurus process...  install a linux package
and can run bsd.rd directly from linux.  i think this one is
becoming more and more needed for i386 too, in this world of
floppyless, cdromless devices...  a little utility that

i definitely agree.  but if someone is so intimate with the
boot sector code that can give me this info, saves a lot of
hassle for me.  thats why i wrote to the list, maybe someone

i havent tried this one yet, but just for the kicks i tried
cd42.iso an that of course didnt work.

-f
-- 
recursive, adj.; see recursive

From: Richard Daemon
Date: Wednesday, January 30, 2008 - 6:14 am

What about PXE Booting?

From: Raimo Niskanen
Date: Wednesday, January 30, 2008 - 7:19 am

The problem is that installboot(8) writes biosboot(8) to the
partition boot record and in that process "inserts the block
number and offset of the inode of the second-stage boot
program boot(8) so that the biosboot(8) program can load it".

So although it is trivial to give you a PBR it is not 
simple to find out how to change it to load boot(8)
on your particular USB media.

Another problem is that for biosboot(8) and boot(8) to work
they and /bsd or /bsd.rd must be on a Berkley Fast File System,
OpenBSD's filesystem.

So, to create the filesystem and prepare it for boot, you
or someone else need both an OpenBSD machine and the
USB media. I know of no ISOLINUX loadable bsd.rd,
although it might be possible. The OpenBSD kernel is not
of the same executable format as the Linux kernel,

If someone would create a bootable USB media containing just
a ffs root partition with /boot and /bsd (renamed bsd.rd),
about 6 MByte should suffice, would it be enough to
dd it into a binary image for you to somehow (have you
got the means?) write it onto the USB media? If your
Eee runs Linux as they are supposed to, it should be
as simple as dd.


If you haven't, try floppy42.fs instead.

-- 

/ Raimo Niskanen, Erlang/OTP, Ericsson AB

From: Stefan Kell
Date: Wednesday, January 30, 2008 - 7:29 am

Hello,


see man installboot and man biosboot: you can't do this easily because
installboot will patch biosboot for the locationinfo of boot. And you don't

dd floppy image does boot on the eee, but biosboot stops with "ERR M".
Installing OpenBSD to an USB stick definitly works. One other solution might be
"flashboot", see "http://www.mindrot.org/projects/flashboot/". There are binary
images available at "http://tilde.se/flashboot/". "zcat GENERIC-RD.image | dd
of=/dev/sd0" under Linux on the eee should give you a bootable USB-Stick
(/dev/sd0 as an example). But I didn't try this myself.

Anyway, OpenBSD will boot but ethernet does not work: The wired adapter is not
suppoerted, and the wireless driver reports an error and does not work :-(

Regards

Stefan Kell

From: Raimo Niskanen
Date: Wednesday, January 30, 2008 - 7:50 am

Then one could create such a bootable image and throw in the file sets too,
that is: most of the /4.2/i386 download directory except install42.iso,
but the size would be about 250 MByte.


-- 

/ Raimo Niskanen, Erlang/OTP, Ericsson AB

From: Dennis Davis
Date: Wednesday, January 30, 2008 - 8:26 am

"wireless driver reports an error and does not work" is short on
detail.  It might just be that non-free firmware needs installing
(eg the firmware for the iwi driver) to get it to work.
-- 
Dennis Davis, BUCS, University of Bath, Bath, BA2 7AY, UK
D.H.Davis@bath.ac.uk               Phone: +44 1225 386101

From: Stuart Henderson
Date: Wednesday, January 30, 2008 - 9:46 am

people with Eee PC need to test -current snapshots, the wd/wdc
changes which are in them (not yet committed) will affect you
(hopefully to your advantage, there should be much lower cpu
use during disk activity).

http://marc.info/?l=openbsd-tech&m=120159790520579&w=2

From: Stefan Kell
Date: Wednesday, January 30, 2008 - 2:47 pm

Thanks for that info, I will check how -current works on the eee, if I got some time for this.

Regards

Stefan Kell


From: Andre Naehring
Date: Thursday, January 31, 2008 - 3:02 am

So, installed current from Jan 28 on an usb stick and booted. Ethernet
works fine on the eee, but the wireless always reports

ath0: unable to reset hardware; hal status 4096

when I want to set something.

according to the manpage, this should not happen.

dmesg follows...

OpenBSD 4.2-current (GENERIC) #652: Mon Jan 28 14:04:36 MST 2008
     pvalchev@i386.openbsd.org:/usr/src/sys/arch/i386/compile/GENERIC
     cpu0: Intel(R) Celeron(R) M processor 900MHz ("GenuineIntel"
     686-class) 631 MHz
     cpu0:
     FPU,V86,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,TM,SBF
     real mem  = 527527936 (503MB)
     avail mem = 502153216 (478MB)
     mainbus0 at root
     bios0 at mainbus0: AT/286+ BIOS, date 01/04/08, BIOS32 rev. 0 @
     0xf0010, SMBIOS rev. 2.5 @ 0xf06c0 (37 entries)
     bios0: vendor American Megatrends Inc. version "0703" date
     01/04/2008
     bios0: ASUSTeK Computer INC. 701
     apm0 at bios0: Power Management spec V1.2
     apm0: AC on, battery charge unknown
     acpi at bios0 function 0x0 not configured
     pcibios0 at bios0: rev 3.0 @ 0xf0000/0x10000
     pcibios0: PCI IRQ Routing Table rev 1.0 @ 0xf76b0/176 (9 entries)
     pcibios0: PCI Interrupt Router at 000:31:0 ("Intel 82801FB LPC" rev
     0x00)
     pcibios0: PCI bus #5 is the last bus
     bios0: ROM list: 0xc0000/0xf800!
     cpu0 at mainbus0
     pci0 at mainbus0 bus 0: configuration mode 1 (no bios)
     pchb0 at pci0 dev 0 function 0 "Intel 82915GM Host" rev 0x04
     agp0 at pchb0: aperture at 0xd0000000, size 0x10000000
     vga1 at pci0 dev 2 function 0 "Intel 82915GM Video" rev 0x04
     wsdisplay0 at vga1 mux 1: console (80x25, vt100 emulation)
     wsdisplay0: screen 1-5 added (80x25, vt100 emulation)
     "Intel 82915GM Video" rev 0x04 at pci0 dev 2 function 1 not
     configured
     azalia0 at pci0 dev 27 function 0 "Intel 82801FB HD Audio" rev 0x04:
     irq 5
     azalia0: codec[s]: Realtek/0x0662
     audio0 at ...
From: Richard Daemon
Date: Thursday, January 31, 2008 - 6:18 am

Did you have to do boot> boot -a to get it to boot properly off of sd0a,
recompile kernel or something else?

When I try, I never get it to see "root on sd0a swap on sd0b dump on sd0b"
by itself, at least without boot -a or a kernel recompile...

By chance, have you tried the same with non -current - just wondering if it
boots and detects ok with root on sd0a?

Thanks!

From: Andre Naehring
Date: Thursday, January 31, 2008 - 6:29 am

Okay, this is what I did. Got the snapshot from ftp2.de.openbsd.org and
booted a pc with the iso image mounted. I used the complete stick for
OpenBSD, creating 827mb for / and 128m for swap (a & b).
Installed the whole set (except game*) on my 1gb usb stick (which was sd1 during install) and rebooted
the pc. After that I mounted the stick and edited fstab and changed sd1a
to sd0a.

Took the stick, told the eee to boot from usb and the snapshot was up
and running. Tried to access web and ssh via the integrated lii0
ethernet, it worked. Starting up X, using startx with no config file, it
came up and runs. Nice.

So, there was no need to recompile the kernel in the snapshot from the
ftp mentioned above.

If you are interested, I can take an original 4.2 and install it on the
stick tomorrow and can than post the dmesg.

-- 

andre

From: Richard Daemon
Date: Thursday, January 31, 2008 - 2:52 pm

If you can, so long as it's not trouble for you that would be great!

For me, it's on two standard PCs (i386 & AMD64 x2) that I've been having
these weird issues with booting from USB after installing to sd0a, where it
goes into ddb> unless I do the boot -a (or recompile kernel accordingly) and
only then it sees the proper "root on sd0a", rather than trying "root wd0a".


I didn't do a swap, but from the man pages should just exit with a >= 1 code
and I wouldn't think that would be the cause.

If you do test with standard release, please let me know the results,
especially if it's on a standard PC - I'm out of systems to test with... :-(

Thank you very much!

From: Andre Naehring
Date: Friday, February 1, 2008 - 1:29 am

Here it comes, the following dmesg is again from eee, installed an
original 4.2 from cd on the usb stick. 
While trying to use the ethernet, it didn't work, I was unable to see
the interface. According to the manual of the lii, this driver will be
new in 4.3, so it's nice that the driver in the snapshot is already
working.

The wireless is identified as ath0 again but setting it up freezes the
eee. This didn't happen with the snapshot, but there I was unable to set
it, too (hardware reset...).

Short description for you, I booted the 4.2 install cd i386 in a vmware
workstation and chose sd1 as install destination. Created the same as
with the snapshot and rebooted again. Mount the stick an changed again
in /etc/fstab from sd1a to sd0a an the 4.2 booted on the eee.

So if you want to use OpenBSD on the eee, you should take the actual
snapshot, maybe there will be some changes according to the wireless
driver. If someone needs tests with changed drivers or anything, I can
take a snapshot each week an try again if the wireless starts working.

Oh yes, the dmesg... (original 4.2 CD-release)


OpenBSD 4.2 (GENERIC) #375: Tue Aug 28 10:38:44 MDT 2007
     deraadt@i386.openbsd.org:/usr/src/sys/arch/i386/compile/GENERIC
cpu0: Intel(R) Celeron(R) M processor 900MHz ("GenuineIntel" 686-class) 631 MHz
cpu0: FPU,V86,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,TM,SBF
real mem  = 527527936 (503MB)
avail mem = 502427648 (479MB)
mainbus0 at root
bios0 at mainbus0: AT/286+ BIOS, date 01/04/08, BIOS32 rev. 0 @ 0xf0010, SMBIOS rev. 2.5 @ 0xf06c0 (37 entries)
bios0: vendor American Megatrends Inc. version "0703   " date 01/04/2008
bios0: ASUSTeK Computer INC. 701
apm0 at bios0: Power Management spec V1.2
apm0: AC on, battery charge unknown
apm0: flags 30102 dobusy 0 doidle 1
pcibios0 at bios0: rev 3.0 @ 0xf0000/0x10000
pcibios0: PCI IRQ Routing Table rev 1.0 @ 0xf76b0/176 (9 entries)
pcibios0: PCI Interrupt Router at 000:31:0 ("Intel ...
From: Richard Daemon
Date: Friday, February 1, 2008 - 1:31 pm

[Empty message]
From: Stefan Kell
Date: Wednesday, January 30, 2008 - 2:50 pm

Hello Denis,


Of course this is way too short, but I wanted to check the archives beforehand wether I did make a stupid error somewhere. Wireless is an ath-device which does not need non-free firmware AFAIK.

Regards

Stefan Kell

From: Stefan Kell
Date: Wednesday, January 30, 2008 - 2:51 pm

To get this nice little thingy working, of course.

From: Richard Daemon
Date: Wednesday, January 30, 2008 - 12:39 pm

booting that is) if it's not supported by OpenBSD. If so, then maybe you
could PXE boot and install OpenBSD onto the USB media that way?

From: frantisek holop
Date: Thursday, January 31, 2008 - 1:46 am

as far as i know, pxe needs another computer with openbsd or unix
and i have no access to that.  i am in inet cafes and libraries.

nevertheless, the previous post very well pointed out that i will
need to work with ffs from linux, and i dont know anything about that,
not even if it is supported.

-f
-- 
our world: a 8000 mile in diameter spherical pile of dirt.

From: ropers
Date: Thursday, January 31, 2008 - 4:27 pm

Like most BSDs, OpenBSD uses the Berkeley Fast File System. By
default, GNU/Linux^W^W^WLinux (yes, Linux, motherfucker, Linux!)
allows you to mount Fast File System partitions, but (at least on
Ubuntu 7.10) it can by default only mount them read-only.

For instance to mount an OpenBSD floppy on an Ubuntu 7.10 box, try this:

sudo mkdir /media/floppy
sudo mount -t ufs -o ufstype=44bsd -r /dev/fd0 /media/floppy

Obviously,
sudo umount /media/floppy
when finished, and adapt the above as necessary if you're dealing with
HDDs/USB sticks.

Now you would have been able to figure this out by yourself with man
mount -- but that requires the prior knowledge that (Berkeley) Fast
File System = FFS = UFS = Unix File System to clue in to selecting the
ufs type, and you then have to know that you need to also set the
ufstype option to 44bsd. Thankfully, dmesg|tail is helpful if you
don't set the ufstype option:

[15809.331413] You didn't specify the type of your ufs filesystem
[15809.331417]
[15809.331418] mount -t ufs -o
ufstype=sun|sunx86|44bsd|ufs2|5xbsd|old|hp|nextstep|nextstep-cd|openstep
...
[15809.331421]
[15809.331421] >>>WARNING<<< Wrong ufstype may corrupt your
filesystem, default is ufstype=old


If I read the above correctly, then it should even be possible to
mount the ufs type with the ufstype=44bsd option as read+write, but
when I tried this on Ubuntu 7.10, I got this:

ropers@tranquility:~/Desktop$ sudo mount -t ufs -o ufstype=44bsd
/dev/fd0 /media/floppy
mount: wrong fs type, bad option, bad superblock on /dev/fd0,
       missing codepage or helper program, or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

ropers@tranquility:~/Desktop$ dmesg|tail
(...)
[16157.855996] ufs was compiled with read-only support, can't be
mounted as read-write
ropers@tranquility:~/Desktop$

So maybe it's possible to compile in r+w support into your Linux
kernel, or maybe your favourite distro already comes with write
support ...
From: frantisek holop
Date: Friday, February 1, 2008 - 4:31 am

thans for the research...
i am by no means a linux head,
and i find their (eee xandros) man pages ...  painful to read.

so making kernels is way out of my league, done it for the last
time maybe in 1999...  and have no wish to start again.

my aim is to create a kind of dual boot system with a usb stick
until openbsd support is improved.

doing high level stuff (opera, xterm) is acceptable, but
since i left the linux  world it became much more complicated,
but much more user friendly admittedly.

-f
-- 
girls just wanna have fun...  guys just wanna have girls.

From: frantisek holop
Date: Thursday, January 31, 2008 - 5:27 am

i am trying to make this one work.  but i dont know how the openbsd dd
example translates into the linux one, there is no 'c' for all disk.
if i do a

# zcat image | dd of=/dev/sdd

linux fdisk reports an invalid partition table.
i tried to create an a6 bootable partition and then

# zcat image | dd of=/dev/sdd1

but neither of these boot.  the second one hangs, the first one
gives a partition error...


could someone please upload somewhere a basic install or just bsd.rd
as an image already installed on the media?  and the linux dd/fdisk
dance around it?

-f
-- 
pi seconds is a nanocentury.

From: Raimo Niskanen
Date: Thursday, January 31, 2008 - 6:26 am

Since you probably will need the install sets as well, I have
posted a compressed filesystem image of size 199864838 bytes at 
http://www.erlang.org/~raimo/OpenBSD/snapshots/i386/hd.fs.gz
It contains the same as install42.iso snapshot Jan 29.

Gunzip it (becomes 262144000 bytes).
Load it to the USB media (in Linux):
# dd if=hd.fs of=/dev/sdf bs=51200 count=5120
Change 'sdf' to what your USB media shows up as in dmesg.
After that, cfdisk /dev/sdf should show an OpenBSD

-- 

/ Raimo Niskanen, Erlang/OTP, Ericsson AB

From: frantisek holop
Date: Thursday, January 31, 2008 - 8:40 am

will try asap, thanks a lot.

otherwise i'll ask the Andre chap with the usb install to
post an image :)))

i guess it wouldnt be really hard to provide these images
along with the cd/floppy boot images, what's the official
stance on this by the devs?

as the subnotebook business gona explode after the eee's
success this will be a really handy thing to do i think...

-f
-- 
i'm feeling rather blonde today.

From: Stefan Kell
Date: Thursday, January 31, 2008 - 1:13 pm

Hello,


I made some experiments booting the eee with following results:

- installing OpenBSD to USB-stick on an other machine and then boot ist
   on the eee works. Release 4.2 has some problems with ethernet,
   -current might be better.

- Using flashboot and dding Generic-rd.image from http://tilde.se to an
   USB-stick works but init-script inside this kernel has some problem
   with fsck. But this is an easy method for you to get a bootable
   USB-stick with only Linux running on the eee.

- The eee CAN boot via PXE if you enable this option in the bios. This
   might be the most easy solution if you have the PXE-infrastructure.

I will try a current snapshot and see how well this works in the next
days. So in principle you don't need special images somewhere for
download, it is all there already.

Regards

Stefan Kell

From: frantisek holop
Date: Monday, February 4, 2008 - 2:48 am

it works, thanks very much!
now i can experiment some more.

-f
-- 
i'm feeling rather blonde today.

From: Raimo Niskanen
Date: Monday, February 4, 2008 - 5:53 am

Great! Good for you.

What kind of USB stick did you use? I used an old
265MByte stick I found in a pile of dust at home
and mimiced its C/H/S values, so I am a bit curious
to know how generally usable this image is. That
it only works for BIOSes that are capable of
booting from "USB hard drive" I know, but if
it works for any size (>= 256MByte) USB sticks

-- 

/ Raimo Niskanen, Erlang/OTP, Ericsson AB

From: Richard Daemon
Date: Tuesday, January 29, 2008 - 12:15 pm

a generic bsd kernel ok, or needs to boot bsd.rd or similar?

In other words, I can see it being able to boot bsd.rd without a problem,
but will it load the root device ok with just /bsd?

From: Stuart Henderson
Date: Tuesday, January 29, 2008 - 12:50 pm

From: Stefan Kell
Date: Tuesday, January 29, 2008 - 2:54 pm

Hi,


Might be interesting on the eee, what boot device will be selected. AFAIK the internal disk ist master on the secondary IDE-channel. But of course you have "boot -a" at the boot prompt for selecting the root device. And I want to try the same the next days :-)

Regards

Stefan Kell

From: Richard Daemon
Date: Tuesday, January 29, 2008 - 8:31 pm

That brings up another question, hopefully there's an answer... rather than
having to do boot -a (even from boot.conf) and be present to hit <enter>
during root device selection, is there an easy way to tell it, yes, choose
the default it sees after this?

ie: if I do a full install on a USB flash, boot up normal, it panics into
ddb> mode because of root device as wd0 when it should be sd0. If I do boot
-a, it asks for default of sd0 rather than wd0 but expects manual
intervention, such as pressing <enter>. Is there a way to bypass this other
than recompile a new, custom kernel?

TIA.

From: Raimo Niskanen
Date: Wednesday, January 30, 2008 - 1:44 am

Not that I am certain it would solve your problem completely,
but I would love having a boot(8) prompt command
	boot [image [root] [-acds]]
and
	set root [value]
It would then also be possible to set it in /etc/boot.conf.

But as far as I know it is a missing feature. And I
do not think the kernel is able to get root device
as an argument (yet).

Another not as good and still missing feature would be

-- 

/ Raimo Niskanen, Erlang/OTP, Ericsson AB

From: Stefan Kell
Date: Wednesday, January 30, 2008 - 7:35 am

Hello,


The Generic kernel on i386 tries hard to find the correct boot device and 
assumes the the rootfilesystem is on partition "a" on this device. So if 
your kernel and boot files are on the USB-stick, the kernel should not 
panic but use sd0a as rootfilesystem.

Regards

Stefan Kell

From: Richard Daemon
Date: Wednesday, January 30, 2008 - 12:35 pm

release(8)) and previous versions, all using GENERIC kernel.

As a test, I install OpenBSD onto the USB Flash, using the whole device
(sd0a) as /.
Set the BIOS to boot off of USB, the install completes ok, then after the
initial reboot, during bootup, it panics into ddb> mode and a few lines
above, it shows "root device on wd0a" rather than sd0a.

When I do a boot -a, it detects the proper root device and works ok this
way, but of course requires the manual intervention of having to press
<enter> or to be physically at the console.

I've tried with boot sd0a:/bsd, boot hd0a:/bsd, etc. still no luck unless I
do a boot -a.

Is there a way to save the dmesg once in ddb> to a file on floppy or USB?

On this system, I have OpenBSD running on a HD as well - and the other weird
thing I noticed is that when I boot -a in order to properly boot off of the
USB device, it sees it's own dmesg and a pre-pended dmesg of the OpenBSD
install on the local HDD. Is the problem some how inter-related with already
having an install on a local drive, on the same system?

From: frantisek holop
Date: Thursday, January 31, 2008 - 2:57 am

i had a nother idea today, the eee comes with grub...
the more knowledgable are already holding their heads :]

because i dont have the boot sector and /boot, i thought
grub could maybe load bsd.rd

but all i got was the 'boot too old' message
well known from the archives.

it was worth a shot...  is there another boot loader
that can boot bsd.rd wihout chainbooting?

i can use everything available in the linux world
to boot a single bsd.rd: does bsd.rd work without /boot?
until recently i thought /boot just handles the file system
and starts /bsd but now i see some posts that it is handing
over some bios data too...

-f
-- 
two most common in the universe elements: hydrogen, stupidity.

Previous thread: Re: Recording OpenNTPd PID at daemon startup by Helmut Schneider on Tuesday, January 29, 2008 - 6:54 am. (3 messages)

Next thread: Re: Recording OpenNTPd PID at daemon startup by Helmut Schneider on Tuesday, January 29, 2008 - 7:19 am. (1 message)