version 1.2, 2013/01/07 16:30:58
|
version 1.32, 2015/02/05 23:39:59
|
Line 1
|
Line 1
|
[[!meta title="NetBSD/evbarm on Raspberry Pi"]] |
[[!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). |
This page attempts to document and coordinate efforts towards NetBSD/evbarm on [Raspberry Pi](http://www.raspberrypi.org). |
|
|
# What works |
<small>([Raspberry Pi image](http://www.flickr.com/photos/42325803@N07/8118758647/) by Christopher Lee used under CC-By-2.0 license)</small> |
- multi-user boot with root on SD card and serial console |
|
|
# 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' |
|
- <i>gunzip and dd</i> 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 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 -a |
|
"""]] |
|
- 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 |
|
"""]] |
|
|
|
# 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 |
- I²C: works, could use enhancements, man page |
- SPI: 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) |
|
- X windows. |
|
|
# What needs work |
# What needs work |
- USB (host); work in progress |
- USB (host); isochronous transfers. |
- USB Ethernet; work in progress |
|
- DMA for SDHCI |
|
- GPIO |
|
- framebuffer; work in progress |
|
- almost everything relating to working with the VideoCore IV |
|