Annotation of wikisrc/ports/evbarm/raspberry_pi.mdwn, revision 1.40
1.1 jakllsch 1: [[!meta title="NetBSD/evbarm on Raspberry Pi"]]
2:
1.39 wiki 3: This page attempts to document and coordinate efforts towards NetBSD/evbarm on [Raspberry Pi](http://www.raspberrypi.org). All board variants are supported.
4:
5: Initial Raspberry Pi support was introduced in NetBSD 6.0. NetBSD 7.0 adds complete support for the board, along with introducing support for the quad-core Raspberry Pi 2 board.
6:
1.3 wiki 7: [[images/raspberrypi.jpg]]
8:
1.26 wiki 9: [[!toc levels=2]]
10:
1.14 wiki 11: <small>([Raspberry Pi image](http://www.flickr.com/photos/42325803@N07/8118758647/) by Christopher Lee used under CC-By-2.0 license)</small>
1.3 wiki 12:
1.7 wiki 13: # Installation
1.36 wiki 14: - 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.
1.38 wiki 15: - The Raspberry Pi and Pi 2 ports will be part of the NetBSD 7 release.
1.34 wiki 16: - 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/).
17: - The stable build will be under netbsd-7/YYYYMMDDHHMMZ/evbarm-earmv6hf/binary/gzimg/
1.23 skrll 18: - The HEAD/current build will be under HEAD/YYYYMMDDHHMMZ/evbarm-earmv6hf/binary/gzimg/
19: - For example, http://nyftp.netbsd.org/pub/NetBSD-daily/netbsd-7/201412161700Z/evbarm-earmv6hf/binary/gzimg/
1.19 wiki 20: - 'releasedir/evbarm/binary/gzimg/' if you run (for example) './build.sh -m evbarm -a earmv6hf -u release'
1.23 skrll 21: - <i>gunzip and dd</i> this img to your sd card.
1.10 wiki 22:
1.14 wiki 23: dd if=rpi.img of=/dev/disk1
24:
25: - Using a serial console
1.19 wiki 26: - 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)
1.14 wiki 27:
28: edit cmdline.txt and remove '"console=fb"'
29:
1.40 ! wiki 30: - Growing the root file-system (**not required with NetBSD -current after 2015-04-07**)
1.17 wiki 31: - During the partitioning process, do not delete or format the
32: first MSDOS (FAT) partition, as the Raspberry pi firmware is
33: hard coded to boot on the SDCAD / 1st MSDOS partition / Firmware
34: updates and boot loader.
1.10 wiki 35: - Copy /boot/cmdline.txt to /boot/cmdline.txt.orig
1.15 wiki 36: - Edit /boot/cmdline.txt and add the '-s' flag to the end of the first line of text to boot into single-user mode.
1.20 wiki 37: - For the next steps, the root filesystem mustn't be mounted rw. So reboot, and at the prompt to enter the pathname of shell,
38: press return for the default (/bin/sh).
1.10 wiki 39: - At the # prompt, type
40:
41: "disklabel -i ld0" and press return.
1.19 wiki 42:
1.15 wiki 43: - At the partition> prompt type "A" and press return.
1.10 wiki 44:
45: Adjust disklabel sector from 4194304 to 62333952 [n]?
46: Type "y" and press return.
1.19 wiki 47:
1.15 wiki 48: - partition> prompt type "a" and press return.
1.12 wiki 49:
1.11 wiki 50: Filesystem type prompt, press return to use the current value (4.2BSD).
51: Start offset prompt, press return to use the current value.
52: Partition size prompt, type "$" and press return to grow the
53: partition to use all available free space.
1.19 wiki 54:
1.15 wiki 55: - partition> prompt type "W" to save the changes to the disklabel.
1.11 wiki 56:
57: Confirm this choice by typing "y" at the Label disk prompt.
1.12 wiki 58: Type "Q" and press return to quit disklabel.
1.19 wiki 59:
1.15 wiki 60: - At the # prompt (shell), type
1.11 wiki 61:
62: fsck -fy /dev/rld0a
63: resize_ffs -y /dev/rld0a
1.19 wiki 64:
1.11 wiki 65: - This may take a few minutes, be patient!
66:
67: fsck -fy /dev/rld0a
1.18 wiki 68: mount_msdos /dev/ld0e /boot
1.11 wiki 69: mv /boot/cmdline.txt.orig /boot/cmdline.txt
70: reboot
1.19 wiki 71:
1.11 wiki 72: - When the system comes back up, the root file-system will have been expanded to
1.10 wiki 73: fill the SD card.
1.7 wiki 74:
1.16 wiki 75: # Installation with sshramdisk image
76: - You may use the rpi_inst.img.gz file created by an evbarm build.
77: - Connect Ethernet Cable to RPI.
1.19 wiki 78: - After starting DHCP client, SSH login to with user "sysinst", and password "netbsd".
1.17 wiki 79: - Be careful to note the ip address given during DHCP so you don't lose your connection
80: - Also for after the sysinst is done and the system reboots
81: - sysinst started!
1.16 wiki 82:
1.7 wiki 83: # Updating the firmware
1.8 wiki 84: - [rpi firmware files](https://github.com/raspberrypi/firmware/tree/master/boot)
1.19 wiki 85: - Copy all files except 'kernel*.img' into /boot and reboot
1.7 wiki 86:
1.24 wiki 87: # Wireless Networking
88: - A Realtek 802.11n USB adaptor configures as urtwn(4).
1.25 wiki 89: - Configure with wpa_supplicant in /etc/rc.conf -
1.24 wiki 90:
91: ifconfig_urtwn0=dhcp
92: dhcpcd=YES
93: dhcpcd_flags="-q -b"
94: wpa_supplicant=YES
95: wpa_supplicant_flags="-B -i urtwn0 -c /etc/wpa_supplicant.conf"
1.25 wiki 96: - A sample wpa_supplicant.conf can be found at /usr/share/examples/wpa_supplicant/wpa_supplicant.conf
1.24 wiki 97:
1.27 wiki 98: # GPU
99:
100: ## Video playback
1.29 wiki 101: 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.
1.27 wiki 102:
103: ## OpenGL ES
104: 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.
105:
1.28 wiki 106: ## Quake 3
1.27 wiki 107: 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:
108:
109: - pak0.pk3 from Quake 3 CD
1.31 snj 110: - additional pak files from the [games/ioquake3-pk3](http://pkgsrc.se/games/ioquake3-pk3) package
1.27 wiki 111: - read/write permissions on /dev/vchiq and /dev/wsmouse
112:
1.31 snj 113: Place the pak0.pk3 file in the /usr/pkg/lib/ioquake3/baseq3 directory.
1.27 wiki 114:
1.32 wiki 115: ## RetroArch / Libretro
116: 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:
117:
118: - Install [emulators/retroarch](http://pkgsrc.se/emulators/retroarch)
119: - 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).
120: - Plug in a USB HID compatible Gamepad, such as the Logitech F710 in "DirectInput" mode (set "D/X" switch to "D").
121: - Create a config file for your gamepad using *retroarch-joyconfig*.
122: [[!template id=programlisting text="""
1.35 wiki 123: $ retroarch-joyconfig -o gamepad.cfg
1.32 wiki 124: """]]
125: - Launch the emulator from the command-line (no X required):
126: [[!template id=programlisting text="""
127: $ retroarch --appendconfig gamepad.cfg -L /usr/pkg/lib/libretro/gambatte_libretro.so game.gbc
128: """]]
129:
1.30 wiki 130: # What works (NetBSD 7.0+)
1.6 wiki 131: - multi-user boot with root on SD card
132: - serial or graphics console (with EDID query / parsing)
1.23 skrll 133: - DMA controller driver and sdhc(4) support
134: - Audio: works. man page missing.
1.21 skrll 135: - I²C: works, could use enhancements, man page
136: - GPIO
137: - RNG
138: - SPI: could use enhancements, man page
1.29 wiki 139: - GPU (VCHIQ) - 3D and video decode. man page missing.
1.19 wiki 140: - USB (host) - dwctwo(4)
141: - USB Ethernet - usmsc(4)
1.21 skrll 142: - X windows.
1.1 jakllsch 143:
144: # What needs work
1.19 wiki 145: - USB (host); isochronous transfers.
1.37 wiki 146: - MULTIPROCESSOR support for Raspberry Pi 2
CVSweb for NetBSD wikisrc <wikimaster@NetBSD.org> software: FreeBSD-CVSweb