--- wikisrc/ports/evbarm/raspberry_pi.mdwn 2013/01/01 05:34:36 1.1
+++ wikisrc/ports/evbarm/raspberry_pi.mdwn 2015/01/30 12:01:26 1.30
@@ -1,14 +1,132 @@
[[!meta title="NetBSD/evbarm on Raspberry Pi"]]
+[[images/raspberrypi.jpg]]
+
+[[!toc levels=2]]
+
This page attempts to document and coordinate efforts towards NetBSD/evbarm on [Raspberry Pi](http://www.raspberrypi.org).
-# What works
- - multi-user boot with root on SD card and serial console
+([Raspberry Pi image](http://www.flickr.com/photos/42325803@N07/8118758647/) by Christopher Lee used under CC-By-2.0 license)
-# What needs work
- - USB (host): work in progress
- - I²C: work in progress
- - SPI: work in progress
+# Installation
+ - You may use the rpi.img file created by an evbarm build - evbarm-earmv6hf is recommended.
+ - The Raspberry Pi port will be part of the NetBSD 7 stable release,
+ but you may want to use the HEAD branch for the latest development code.
+ - The automatic nightly builds can be found in the 'evbarm-earmv6hf/binary/gzimg/' directory under on [nyftp.netbsd.org](http://nyftp.netbsd.org/pub/NetBSD-daily/).
+ - The HEAD/current build will be under HEAD/YYYYMMDDHHMMZ/evbarm-earmv6hf/binary/gzimg/
+ - The stable build will be under netbsd-7/YYYYMMDDHHMMZ/evbarm-earmv6hf/binary/gzimg/
+ - For example, http://nyftp.netbsd.org/pub/NetBSD-daily/netbsd-7/201412161700Z/evbarm-earmv6hf/binary/gzimg/
+ - 'releasedir/evbarm/binary/gzimg/' if you run (for example) './build.sh -m evbarm -a earmv6hf -u release'
+ - gunzip and dd this img to your sd card.
+
+ dd if=rpi.img of=/dev/disk1
+
+ - Using a serial console
+ - By default the rpi.img is set to use the HDMI output; to change to using a serial console first mount rpi.img (it's a FAT filesystem)
+
+ edit cmdline.txt and remove '"console=fb"'
+
+ - Growing the root file-system
+ - During the partitioning process, do not delete or format the
+ first MSDOS (FAT) partition, as the Raspberry pi firmware is
+ hard coded to boot on the SDCAD / 1st MSDOS partition / Firmware
+ updates and boot loader.
+ - 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 to boot into single-user mode.
+ - For the next steps, the root filesystem mustn't be mounted rw. So reboot, and at the prompt to enter the pathname 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.
+
+ Adjust disklabel sector from 4194304 to 62333952 [n]?
+ Type "y" and press return.
+
+ - partition> prompt type "a" and press return.
+
+ Filesystem type prompt, press return to use the current value (4.2BSD).
+ Start offset prompt, press return to use the current value.
+ Partition size prompt, type "$" and press return to grow the
+ partition to use all available free space.
+
+ - 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 (shell), type
+
+ fsck -fy /dev/rld0a
+ resize_ffs -y /dev/rld0a
+
+ - This may take a few minutes, be patient!
+
+ fsck -fy /dev/rld0a
+ mount_msdos /dev/ld0e /boot
+ mv /boot/cmdline.txt.orig /boot/cmdline.txt
+ reboot
+
+ - When the system comes back up, the root file-system will have been expanded to
+ fill the SD card.
+
+# Installation with sshramdisk image
+ - You may use the rpi_inst.img.gz file created by an evbarm build.
+ - Connect Ethernet Cable to RPI.
+ - After starting DHCP client, SSH login to with user "sysinst", and password "netbsd".
+ - Be careful to note the ip address given during DHCP so you don't lose your connection
+ - Also for after the sysinst is done and the system reboots
+ - sysinst started!
+
+# Updating the firmware
+ - [rpi firmware files](https://github.com/raspberrypi/firmware/tree/master/boot)
+ - Copy all files except 'kernel*.img' into /boot and reboot
+
+# Wireless Networking
+ - A Realtek 802.11n USB adaptor configures as urtwn(4).
+ - Configure with wpa_supplicant in /etc/rc.conf -
+
+ ifconfig_urtwn0=dhcp
+ dhcpcd=YES
+ dhcpcd_flags="-q -b"
+ wpa_supplicant=YES
+ wpa_supplicant_flags="-B -i urtwn0 -c /etc/wpa_supplicant.conf"
+ - A sample wpa_supplicant.conf can be found at /usr/share/examples/wpa_supplicant/wpa_supplicant.conf
+
+# GPU
+
+## Video playback
+Accelerated video playback is supported in NetBSD 7 with the [OMXPlayer](http://pkgsrc.se/multimedia/omxplayer) application and through GStreamer with the [omx](http://pkgsrc.se/multimedia/gst-plugins1-omx) plugin.
+
+## OpenGL ES
+Accelerated OpenGL ES is supported in NetBSD 7. The GL ES client libraries are included with the [misc/raspberrypi-userland](http://pkgsrc.se/misc/raspberrypi-userland) package.
+
+## Quake 3
+A Raspberry Pi optimized build of *ioquake3* is available in the [games/ioquake3-raspberrypi](http://pkgsrc.se/games/ioquake3-raspberrypi) package. To use it, the following additional resources are required:
+
+ - pak0.pk3 from Quake 3 CD
+ - additional pak files from http://ioquake3.org/extras/patch-data/
+ - read/write permissions on /dev/vchiq and /dev/wsmouse
+
+Place the .pk3 files in ~/.q3a/baseq3 and ~/.q3a/missionpack directories.
+
+# Additional links
+ - [ARM userland utilities](https://github.com/jaredmcneill/userland)
+
+# What works (NetBSD 7.0+)
+ - multi-user boot with root on SD card
+ - serial or graphics console (with EDID query / parsing)
+ - DMA controller driver and sdhc(4) support
+ - Audio: works. man page missing.
+ - I²C: works, could use enhancements, man page
- GPIO
- - framebuffer
- - almost everything relating to working with the VideoCore IV
+ - RNG
+ - SPI: could use enhancements, man page
+ - GPU (VCHIQ) - 3D and video decode. man page missing.
+ - USB (host) - dwctwo(4)
+ - USB Ethernet - usmsc(4)
+ - X windows.
+
+# What needs work
+ - USB (host); isochronous transfers.