These are primarily the notes which accompany my "Disklessly booting Zeroes from Windows" adventure for those who want to join in with that -
https://www.raspberrypi.org/forums/view ... p?t=223336
Background
My original enquiry was where things stood regarding Windows use; whether a diskless Pi could be booted from Windows ? The answer is "Yes" for Windows XP and upwards.
That then expanded into whether it was possible to build one's own things to upload from Windows to a diskless Pi and the answer again is "Yes", and using Windows 10 and its Windows Subsystem for Linux turns out to be one way to do that.
It then gets a bit murky as to whether what's built and uploaded to a diskless Pi can interact as desired with Windows, and that's still being struggled with. It's partly working, and working in limited situations, but not all - Any help with that would be welcomed.
Rather than just ask the questions I set about trying to see what could be done, seeing what did work and what didn't.
I am currently wading through things so the adventure is by no means over but the following documents should help you get up to speed if you wish to follow in my footsteps, take it further, or somewhere else.
The journey so far has not been easy with plenty of detours, backtracking, tangential explorations and plenty of frustration along the way but the instructions below should help others get to something without the hard slog of getting there.
Hopefully this will be useful to someone some day but, even if not, documenting it means I know where to find the instructions when I come to do it again.
The documents are currently a work in progress but should be complete so far as what has been documented, but none the less - E&OE.
Comments, suggestions, improvements, additions and questions are welcomed. And please join in and have a go if you are feeling adventurous, at a loose end, or have a Pi Zero sitting there doing nothing.
Prerequisites for diskless booting
- A Windows PC running XP upwards
- A Pi Zero or Pi Zero W
- A blank SD Card
- A USB plug to micro-USB plug cable
- A Windows 10 PC with Windows Subsystem for Linux (WSL) installed.
- A HDMI or DVI-D monitor for the Pi
- A mini-HDMI to 'whatever the monitor expects' cable
- A terminal emulator installed on Windows ( eg Tera Term )
Phase 1 - Getting the basics to work
Phase 2 - Getting GPIO Expander booted
Phase 3 - Adding Lua and MicroPython
Phase 4 - Adding Full Python
Phase 5 - Adding an MSD device
Phase 6 - Enabling WiFi
Phase 7 - Enabling Bluetooth
Phase 8 - Adding our own application
Phase 9 - Booting from SD Card
Phase 10 - Other things to do
Phase 11 - The Windows side of things
Tips and Tricks
Notes
It may be possible to undertake development for a Pi A, Pi A+ and Compute Modules using the mechanism as described here, however I am currently restricting its scope to the Pi Zero and development is being undertaken with a Pi Zero W.
I am not going to update the history entries for the following documents for typo corrections or immaterial changes or minor clarifications, but I will note material changes, anything important added or noted. Unless I forget to.
Links
The original adventure : https://www.raspberrypi.org/forums/view ... p?t=223336
PHASE ONE - GETTING THE BASICS TO WORK
The first step is to ensure we can upload something to the Pi and have what is uploaded running. We will start by turning the Pi into a gadget which acts as an MSD device, something which is seen as a removable disk drive by Windows.
The 'rpiboot' software provided by the Raspberry Pi Foundation can do this by default out of the box.
Install rpiboot on Windows 10
1) Download rpiboot-setup.exe from -
https://github.com/raspberrypi/usbboot/ ... _setup.exe
2) Run rpiboot-setup.exe
The rpiboot software will be installed in -
C:\Program Files (x86)\Raspberry Pi
Check that rpiboot works
1) Put a blank SD card into your Pi
2) Don't connect the Pi to a power supply
3) Connect the Pi via USB cable to the PC
4) Go to C:\Program Files (x86)\Raspberry Pi
5) Run : rpiboot -d .\msd
Check the Pi has booted and running as an MSD device
If successful a new removable disk should be detected by Windows File Explorer
Windows may report errors with the disk but it seems that can be ignored and the Pi MSD removable disk will work despite whatever those errors are.
Go ahead; drag and drop things to it. Unplug it, re-insert it and rpiboot it again.
Notes
No output will appear on the monitor attached to the Pi.
The Pi must be unplugged from the PC's USB port and plugged back in for it to be able to accept a new rpiboot upload. This is because, as upload and booting progresses, the Pi changes its USB VID/PID identifier so is no longer seen as a Pi which can be used by rpiboot.
Do not drop any 'bootcode.bin' onto the MSD as, when the Pi is next powered-up with the card inserted, it will see that and try to boot from it rather than appearing as a bootable Pi. If you have done that; just remove the SD Card from the Pi and delete the bootcode.bin file.
Windows XP
The rpiboot executable should run on Windows XP upwards. In some cases there may be an issue with not being able to find BCM2708 or BCM2710 drivers when rpiboot is run.
If that is the case then it is worth rebooting, trying again, and if that doesn't fix things then for missing BCM2708 drivers -
Code: Select all
cd "\Program Files\Raspberry Pi\redist"
wdi-simple.exe -n "Raspberry Pi USB boot" -v 0x0a5c -p 0x2763 -t 0
Code: Select all
cd "\Program Files\Raspberry Pi\redist"
wdi-simple.exe -n "Raspberry Pi USB boot" -v 0x0a5c -p 0x2764 -t 0
Links
Details of rpiboot : https://www.raspberrypi.org/documentati ... lashing.md
Download rpiboot-setup.exe : https://github.com/raspberrypi/usbboot/ ... _setup.exe
wdi-simple : https://github.com/pbatard/libwdi/blob/ ... i-simple.c
Tera Term download : https://osdn.net/projects/ttssh2/releases
History
11 Oct 2018 - Original document