--- wikisrc/ports/evbarm/raspberry_pi.mdwn 2013/03/03 22:29:07 1.8 +++ wikisrc/ports/evbarm/raspberry_pi.mdwn 2015/01/29 21:28:16 1.27 @@ -2,33 +2,131 @@ [[images/raspberrypi.jpg]] +[[!toc levels=2]] + 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) +([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 + - 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 + - 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. + +## 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: -# What works + - 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 in -current - 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 + - DMA controller driver and sdhc(4) support + - Audio: works. man page missing. - I²C: works, could use enhancements, man page - - SPI: works, could use enhancements, man page + - GPIO + - RNG + - SPI: could use enhancements, man page + - VCHIQ: man page missing. + - USB (host) - dwctwo(4) + - USB Ethernet - usmsc(4) + - X windows. # 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 + - USB (host); isochronous transfers.