Annotation of wikisrc/ports/evbarm/raspberry_pi.mdwn, revision 1.33

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

CVSweb for NetBSD wikisrc <wikimaster@NetBSD.org> software: FreeBSD-CVSweb