--- wikisrc/ports/evbarm/raspberry_pi.mdwn 2013/11/22 16:12:19 1.19 +++ wikisrc/ports/evbarm/raspberry_pi.mdwn 2015/03/09 10:43:59 1.36 @@ -2,19 +2,22 @@ [[images/raspberrypi.jpg]] -This page attempts to document and coordinate efforts towards NetBSD/evbarm on [Raspberry Pi](http://www.raspberrypi.org). +[[!toc levels=2]] + +This page attempts to document and coordinate efforts towards NetBSD/evbarm on [Raspberry Pi](http://www.raspberrypi.org). All board variants are supported. ([Raspberry Pi image](http://www.flickr.com/photos/42325803@N07/8118758647/) by Christopher Lee used under CC-By-2.0 license) # Installation - - Use the latest HEAD/-current which builds for install - - As the Raspberry Pi port is still not part the stable release, you will want to use the - HEAD branch to download installation sets. - - You may use the rpi.img file created by an evbarm build - evbarm-earmv6hf is recommended, but this is not currently available on nyftp. For now, evbarm-earmhf is best. - - An example can be found in the 'evbarm-earmhf/binary/gzimg/' directory under releng.netbsd.org - - On nyftp.netbsd.org/pub/NetBSD-daily/HEAD/YYYYMMDDHHMMZ (it will look like pub/NetBSD-daily/HEAD/201305220150Z) + - You may use the rpi.img file created by an evbarm build - evbarm-earmv6hf is recommended. This isn't optimized for Raspberry Pi 2, but allows a single image to be used for all boards. + - The Raspberry Pi port will be part of the NetBSD 7 release. + - The Raspberry Pi 2 port is only in HEAD at present. + - The automatic nightly builds can be found in the 'evbarm-earmv6hf/binary/gzimg/' directory on [nyftp.netbsd.org](http://nyftp.netbsd.org/pub/NetBSD-daily/). + - The stable build will be under netbsd-7/YYYYMMDDHHMMZ/evbarm-earmv6hf/binary/gzimg/ + - The HEAD/current build will be under HEAD/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. + - gunzip and dd this img to your sd card. dd if=rpi.img of=/dev/disk1 @@ -30,8 +33,8 @@ This page attempts to document and coord 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. - - Reboot, and at the prompt to enter the pathname of shell, press - return for the default (/bin/sh). + - 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. @@ -80,23 +83,62 @@ This page attempts to document and coord - [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) +# 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 the [games/ioquake3-pk3](http://pkgsrc.se/games/ioquake3-pk3) package + - read/write permissions on /dev/vchiq and /dev/wsmouse + +Place the pak0.pk3 file in the /usr/pkg/lib/ioquake3/baseq3 directory. + +## RetroArch / Libretro +Using [emulators/retroarch](http://pkgsrc.se/emulators/retroarch) it is possible to run many emulators at full speed the Raspberry Pi. Emulator cores for various gaming consoles are available in the [emulators/libretro-*](http://pkgsrc.se/search.php?so=libretro-) packages. To begin using retroarch: + + - Install [emulators/retroarch](http://pkgsrc.se/emulators/retroarch) + - Install the libretro core for the system you would like to emulate (lets take [emulators/libretro-gambatte](http://pkgsrc.se/emulators/libretro-gambatte), a GameBoy Color emulator, as an example). + - Plug in a USB HID compatible Gamepad, such as the Logitech F710 in "DirectInput" mode (set "D/X" switch to "D"). + - Create a config file for your gamepad using *retroarch-joyconfig*. +[[!template id=programlisting text=""" +$ retroarch-joyconfig -o gamepad.cfg +"""]] + - Launch the emulator from the command-line (no X required): +[[!template id=programlisting text=""" +$ retroarch --appendconfig gamepad.cfg -L /usr/pkg/lib/libretro/gambatte_libretro.so game.gbc +"""]] -# What works +# What works (NetBSD 7.0+) - multi-user boot with root on SD card - serial or graphics console (with EDID query / parsing) - - X windows. + - DMA controller driver and sdhc(4) support + - Audio: works. man page missing. + - I²C: works, could use enhancements, man page + - GPIO + - RNG + - SPI: could use enhancements, man page + - GPU (VCHIQ) - 3D and video decode. man page missing. - USB (host) - dwctwo(4) - USB Ethernet - usmsc(4) - - RNG: works - - I²C: works, could use enhancements, man page - - SPI: works, could use enhancements, man page - - VCHIQ: work in progress. man page missing. (-current) - - Audio: works. man page missing. (-current) + - X windows. # What needs work - USB (host); isochronous transfers. - - DMA controller driver / dmover(9) backend - - Teach sdhc(4) about dmover; not Raspberry Pi specific - - GPIO