USB Disk mode
If you soft-brick the CM3, you can attach it as a USB disk device and then change files to get it back into working order or read/write the entire disk image.
- remove the bottom panel, toggle the switch (seen through a PCB cutout) from RUN to DISK.
- plug the usb power directly into a computer.
software
preliminaries
first you'll need to get rpiboot (or comparable) installed for your os.
linux
for debian-based distros,
sudo apt-get install libusb-1.0-0-dev
git clone --depth=1 https://github.com/raspberrypi/usbboot
cd usbboot
make(for other linux distros, see the rpi docs.)
mac os
this assumes homebrew is installed.
brew install libusb
git clone --depth=1 https://github.com/raspberrypi/usbboot
cd usbboot
makeboot
once installed, run rpiboot (note the sudo)
sudo ./rpibootoutput should look something like:
Waiting for BCM2835/6/7
Sending bootcode.bin
Successful read 4 bytes
Waiting for BCM2835/6/7
Second stage boot server
File read: start.elf
Second stage boot server done
next, find the name of the norns disk.
linux
a disk will show up in /dev/sd? (normally something like /dev/sdb).
mac os
run diskutil list and note the name (norns is 3.9 GB so that's a good clue). the name will be something like disk3.
on mac os, it's important to unmount the disk before imaging (diskutil unmountDisk /dev/disk<disk_name>). a successful command will look something like:
[~/norns] $ diskutil unmountDisk /dev/disk3
Unmount of all volumes on disk3 was successfulcopy the image
to copy image to norns:
linux
sudo dd if=image.img of=/dev/sdb bs=4MiB status=progress conv=sparse
syncmac os
sudo dd if=<my_img>.img of=/dev/r<disk_name> bs=4m conv=sparse
sync(note the r prefix — this is important. it specifies the raw disk and your transfer will be far slower without it; for details, see this thread.)
if you want to see progress (it will take a while!), type ctrl+t to send a SIGINFO command which will cause dd to dump status; for example, something like:
load: 2.24 cmd: dd 55210 uninterruptible 0.06u 7.48s
142+0 records in
141+0 records out
591396864 bytes transferred in 313.867907 secs (1884222 bytes/sec)copy the image (from norns)
reverse of/if to copy from norns