On Sun, Mar 05, 2017 at 07:00:46PM +1100, Jonathan Gray wrote:

> On Sun, Mar 05, 2017 at 08:37:30AM +0100, Otto Moerbeek wrote:
> > On Sat, Mar 04, 2017 at 06:40:57PM -0500, Joe Gidi wrote:
> > 
> > > After jsg@ mentioned that booting a Raspberry Pi 3 from a USB device
> > > might be
> > > possible, I decided to find out how deep the rabbit hole is.
> > > As it turns out,
> > > it's currently a bit convoluted, but it can be made
> > > to work with OpenBSD.
> > > First off, USB boot support is just now getting fully ironed out.
> > > You'll need
> > > to update the firmware on your Pi to make it work. I
> > > installed the latest
> > > (2017-03-02) Raspbian image to an SD card and
> > > booted the Pi from that. While
> > > booted in Raspbian, update the
> > > firmware:
> > > 
> > > sudo apt-get update
> > > sudo apt-get
> > > install rpi-update
> > > sudo rpi-update
> > > 
> > > It's then necessary to actually enable USB
> > > boot support. Add the
> > > following 2 lines to /boot/config.txt to enable USB boot
> > > mode and set
> > > a 5-second timeout to allow time for USB device initialization:
> > > program_usb_boot_mode=1
> > > program_usb_boot_timeout=1
> > > 
> > > NOTE: Apparently these
> > > variables are set in the Pi's OTP memory, which
> > > means once they're set, they
> > > can't ever be unset.
> > > 
> > > Reboot for the changes to take effect. At this point the
> > > Pi should be
> > > ready to support USB booting.
> > > 
> > > While you still have a working
> > > Raspbian install, grab a copy of the
> > > /boot/bootcode.bin and /boot/start.elf
> > > files for later use; apparently
> > > we need these special versions of those two
> > > files for USB boot
> > > support. At this point we're done with Raspbian and can
> > > shut it down
> > > to install OpenBSD.
> > > 
> > > Next, write the OpenBSD miniroot60.fs to an
> > > SD card, plug in your USB
> > > drive, and boot the Pi. You should be greeted with
> > > the usual OpenBSD
> > > installer, and you should be able to install to your USB
> > > drive
> > > (probably sd0). Once the installer is done, run 'halt', unplug the Pi,
> > > and remove the SD card and USB drive.
> > > 
> > > To make your USB drive bootable, you'll
> > > need to plug it into another
> > > system and mount its 'i' partition (the FAT32
> > > boot partition) to make
> > > a few changes. Replace the bootcode.bin and start.elf
> > > files with the
> > > ones from Raspbian, and add the u-boot.bin file from the 'i'
> > > partition
> > > of your miniroot60.fs SD card.
> > > 
> > > With those changes made, your Pi
> > > should be able to boot OpenBSD
> > > directly from a USB drive with no SD card
> > > needed. Note that it seems
> > > to take around 10 seconds for the Pi to reach the
> > > OpenBSD bootloader
> > > and fire up the kernel.
> > > 
> > > Hope this information is helpful
> > > to someone...
> > > 
> > > -- 
> > >  Joe Gidi
> > >  j...@entropicblur.com
> > > 
> > >  "You cannot buy skill."
> > > -- Ross Seyfried
> > 
> > Thanks, I'll try this out soon,
> > 
> > Some notes of things I saw when trying to boot from a sd-card using
> > various a USB devices to install to:
> > 
> > Some USB devices do seem to hang the rpi3 sometimes while u-boot is
> > scanning the usb bus, in my case an old USB flash stick.
> > 
> > With a disk enclosure (2.5" usb bus powered with spinning disk), the
> > hangs did not occur. But I saw another problem that looked to be
> > caused by the reset of the usb bus while the kernel was booting (from
> > sd-card). The disk enclosure did not get recognized in time when the
> > kernel reached the ask root device questions, making it imposible to
> > select the usb drive as boot device.
> > 
> > I manged to boot the machine using an externally powered enclosure
> > with a 3.5 disk. I'll be buying a SSD today to see how that goes.
> > 
> >     -Otto
> > 
> 
> You don't need to bother with linux, the files are in the
> raspberrypi-firmware package with version 1.20170215.  And the next
> snapshot will include the newer firmware.
> 
> Though that will take a few days, due to -current moving to 6.1 a
> xenocara build will have to be done as well and that tends to trigger
> problems with stuck and segfaulting processes.

Will the fidding with

> > program_usb_boot_mode=1
> > program_usb_boot_timeout=1

still be neccesary?

        -Otto

Reply via email to