[[!meta title="NetBSD/evbarm on Raspberry Pi"]]
[[images/raspberrypi.jpg]]
This page attempts to document and coordinate efforts towards NetBSD/evbarm on [Raspberry Pi](http://www.raspberrypi.org).
(Raspberry Pi [image](http://www.flickr.com/photos/42325803@N07/8118758647/) by Christopher Lee used under CC-By-2.0 license)
# Installation
- You may use the rpi.img file created by an arm build.
- An example can be found in the '/evbarm/binary/gzimg/' directory under releng.netbsd.org
- gunzip and dd this img to your sd card.
- Growing the root file-system
- Copy /boot/cmdline.txt to /boot/cmdline.txt.orig
- Edit /boot/cmdline.txt and add the '-s' flag to the end of the first line of text.
- Reboot, and at the prompt to enter the passname of shell, press
return for the default (/bin/sh).
- At the # prompt, type
"disklabel -i ld0" and press return.
- At the partition> prompt, type "A" and press return. You will see
a message like:
Adjust disklabel sector from 4194304 to 62333952 [n]?
Type "y" and press return.
- At the partition> prompt, type "a" and press return.
- At the Filesystem type prompt, press return to use the current value (4.2BSD).
- At the Start offset prompt, press return to use the current value.
- At the Partition size prompt, type "$" and press return to grow the
partition to use all available free space.
- At the partition> prompt, type "W" to save the changes to the
disklabel. Confirm this choice by typing "y" at the Label disk
prompt.
- Type "Q" and press return to quit disklabel.
- At the # prompt, type "fsck -fy /dev/rld0a" and press return.
- At the # prompt, type "resize_ffs -y /dev/rld0a" and press return.
This may take a few minutes, be patient!
- At the # prompt, type "fsck -fy /dev/rld0a" and press return.
- At the # prompt, type "mount /dev/ld0e /boot" and press return.
- At the # prompt, type "mv /boot/cmdline.txt.orig /boot/cmdline.txt"
and press return.
- At the # prompt, type "reboot" and press return. When the system
comes back up, the root file-system will have been expanded to
fill the SD card.
# Updating the firmware
- [rpi firmware files](https://github.com/raspberrypi/firmware/tree/master/boot)
- Copy all files except 'kernel*img' into /boot and reboot
# Additional links
- [ARM userland utilities](https://github.com/jaredmcneill/userland)
- [Additional kernel drivers for VCHIQ](https://github.com/jaredmcneill/vchiq-netbsd)
# What works
- multi-user boot with root on SD card
- serial or graphics console (with EDID query / parsing)
- X windows.
- USB (host); control, interrupt and bulk transfers. Has some stability issues that are being worked on. man page missing.
- USB Ethernet
- RNG: works
- I²C: works, could use enhancements, man page
- SPI: works, could use enhancements, man page
# What needs work
- VCHIQ; work in progress - will provide audio.
- USB (host); isochronous transfers. DMA support.
- DMA controller driver / dmover(9) backend
- Teach sdhc(4) about dmover; not Raspberry Pi specific
- hardfloat; not Raspberry Pi specific
- earm ABI; not Raspberry Pi specific
- GPIO