Raspberry Pi Model A USB Boot
Andrew Conroy (370) 740 posts |
If the Model A Raspberry Pi is started up without a formatted SD card, it will default to USB Boot mode. In this mode, you can install a “first stage bootloader” via USB from another computer running the necessary Boot Server code This then turns the Pi into a Mass Storage Device, which you can either keep plugged in, or even unplug (keeping power connected) and move to another system. You can then copy your disc image to the SD card as though the Pi was a simple card reader. I’ve installed this code on Raspbian on a Pi, and sure enough, plugging in a Model A causes the server to find the Model A and send the bootloader code to it, turning it into a Mass Storage device. Plugging the unformatted Model A into a PC (not running the Boot Server code) causes the PC to see an unknown USB device. It is still possible to read the USB Descriptors from it through. Now we come to the problem. Plugging an unformatted Model A into a RISC OS Pi causes the Pi to become unresponsive for around 7secs (mouse moves on screen, but keyboard and mouse buttons unresponsive), then control is returned, but the Pi doesn’t report the Model A as being present (!USBInfo does not show it, nor does it acquire a USB$Device system variable). Is there any obvious reason why RISC OS is not seeing the Model A as a USB device? If it did, then it should (hah!) be fairly easy to port the Boot Server code and allow us to boot a Model A via RISC OS. The USB Descriptors are as below:
|
Jeffrey Lee (213) 6048 posts |
I assume you’ve got it plugged in via a powered hub? Although it claims it only draws 100mA and is self-powered I doubt that’s the case. If using a hub doesn’t fix it, you’ll probably have to resort to using a debug build of the USB modules to find out what’s going wrong. |
Andrew Conroy (370) 740 posts |
I’d got the Model A powered in the usual way, via the microUSB socket, using a 4A PSU! Oh, and it’s 18s that RISC OS is unresponsive for, not 7s as previously stated. If there’s a debug version of the USB modules you could point me towards (and some idiot-proof instructions), I’ll have a play when I’m back after Easter. Thanks. |
Jeffrey Lee (213) 6048 posts |
Ah, I’d assumed that the microUSB would be being used for both power and programming. But I guess it makes sense for them to use the USB A socket instead.
Sure, I can upload a build of the modules (or possibly just a full ROM) for you. |
Andrew Conroy (370) 740 posts |
The microUSB data lines aren’t connected, it’s only ever used for power!
Great, thanks. |
Jeffrey Lee (213) 6048 posts |
Over here is a debug build of the USB modules for the Pi. Try doing the following:
*usbdebug 10 10 *dwcdebug 11 0
*usbdebug 0 0 *dwcdebug 0 0 *dadprint For the *dadprint you might want to send the output straight to a file, e.g. |
Andrew Conroy (370) 740 posts |
Thanks Jeffrey, I’ll be home again tomorrow so will give it a go soon. What’s your email address? |
Jeffrey Lee (213) 6048 posts |
me at phlamethrower dot co dot uk |
Andrew Conroy (370) 740 posts |
Thanks! |
Andrew Conroy (370) 740 posts |
Debug info emailed. |