--- wikisrc/ports/evbarm/raspberry_pi.mdwn 2017/03/30 15:53:47 1.47 +++ wikisrc/ports/evbarm/raspberry_pi.mdwn 2017/10/14 15:06:30 1.55 @@ -2,7 +2,7 @@ This page attempts to document and coordinate efforts towards NetBSD/evbarm on [Raspberry Pi](http://www.raspberrypi.org). All board variants are supported. -Initial, limited, 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. +Initial, limited, 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. Raspberry Pi 3 support was added for NetBSD 8, and backported to NetBSD 7 in July of 2017. [[images/raspberrypi.jpg]] @@ -10,12 +10,45 @@ Initial, limited, Raspberry Pi support w ([Raspberry Pi image](http://www.flickr.com/photos/42325803@N07/8118758647/) by Christopher Lee used under CC-By-2.0 license) +# What works (and what doesn't yet) + +## NetBSD 7 before July, 2017 + + - RaspberryPi 1, and 2 (including SMP) + - 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 + - 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. + +## NetBSD 7 after July, 2017 and NetBSD 8 + + - Raspberry Pi 3 (excluding WiFi and bluetooth) + +## NetBSD current + + - Raspberry Pi 3 bluetooth + - Raspberry Pi 3 new SD host controller driver + +## What needs work + + - USB (host); isochronous transfers. + - WiFi + # Installation - - The automatic nightly builds on [nyftp.netbsd.org](http://nyftp.netbsd.org/pub/NetBSD-daily/) provide image files that can be used for installation. The Raspberry Pi and Pi 2 ports will be part of the NetBSD 7 release. + + - The automatic nightly builds on [nyftp.netbsd.org](http://nyftp.netbsd.org/pub/NetBSD-daily/) provide image files that can be used for installation. The Raspberry Pi and Pi 2 ports are part of the NetBSD 7 release. - The 'evbarm-earmv6hf/binary/gzimg/' directory contains an rpi.img file that can be used as a single image for both boards. - The 'evbarm-earmv7hf/binary/gzimg/' directory, as of August 6th 2015, contains an armv7.img file that is optimized for Raspberry Pi 2. - The stable build directory will be under netbsd-7/YYYYMMDDHHMMZ/ (for example, http://nyftp.netbsd.org/pub/NetBSD-daily/netbsd-7/201412161700Z/evbarm-earmv6hf/binary/gzimg/) - - The HEAD/current directory build will be under HEAD/YYYYMMDDHHMMZ/ (for example, http://nyftp.netbsd.org/pub/NetBSD-daily/netbsd-7/201508062150Z/evbarm-earmv7hf/binary/gzimg/) + - The HEAD/current directory build will be under HEAD/YYYYMMDDHHMMZ/ (for example, http://nyftp.netbsd.org/pub/NetBSD-daily/netbsd-7/201508062150Z/evbarm-earminstv7hf/binary/gzimg/) - You can build your own version of these images using (for example) './build.sh -m evbarm -a earmv6hf -u release', or './build.sh -m evbarm -a earmv7hf -u release' - gunzip and dd this img to your sd card. For example, @@ -32,52 +65,8 @@ Initial, limited, Raspberry Pi support w In minicom, run "minicom -s" and set hardware flow control to "no" - - Growing the root file-system (**not required with NetBSD -current after 2015-04-07, or by NetBSD 7 after 2015-08-06**) - - 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 +## Installation with sshramdisk image - - 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". @@ -85,27 +74,16 @@ Initial, limited, Raspberry Pi support w - Also for after the sysinst is done and the system reboots - sysinst started! -# Updating the firmware - -You probably don't want to do this. Firmware updates can break things, -and the latest firmware that's been tested is already included in the -NetBSD build you installed. - -If you're feeling adventurous (or are the port maintainer), here's what -to test whenever you try new firmware: +## Installation via ebijun's image -- Audio -- OMXPlayer (and [[!template id=man name="vchiq"]]) -- Serial/framebuffer console -- CPU frequency scaling +Jun Ebihara provides an install image for Raspberry Pi that includes +packages. It is based on NetBSD-current. This image is typically +updated every few weeks. -That goes for all of `rpi[0123]`. + - https://github.com/ebijun/NetBSD/blob/master/RPI/RPIimage/Image/README -Upstream firmware releases are -[on GitHub](https://github.com/raspberrypi/firmware/releases). -Copy all files except `kernel*.img` into `/boot` and reboot. +## Updating the kernel -# Updating the kernel - Build a new kernel, e.g. using build.sh. It will tell you where the ELF version of the kernel is, e.g. ... @@ -114,10 +92,13 @@ Copy all files except `kernel*.img` into ... - Besides the "netbsd" kernel in ELF format, there is also a "netbsd.bin" kernel that is in a format that the Raspberry can boot. - - Depending on your hardware version, copy this either to /boot/kernel.img (old/V1 hardware) or to /boot/kernel7.img (new/V2 hardware) + - Depending on your hardware version, copy this either to /boot/kernel.img (First generation Pi, Pi Zero hardware) or to /boot/kernel7.img (Pi 2, Pi 3 hardware) - reboot # Wireless Networking + + Note that the built-in WiFi in the RPI3 is not yet supported. + - A Realtek 802.11n USB adaptor configures as urtwn(4). - Configure with wpa_supplicant in /etc/rc.conf - @@ -160,20 +141,26 @@ $ retroarch-joyconfig -o gamepad.cfg $ retroarch --appendconfig gamepad.cfg -L /usr/pkg/lib/libretro/gambatte_libretro.so game.gbc """]] -# 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 - - 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. - - RaspberryPi 2 SMP +# Developer notes -# What needs work - - USB (host); isochronous transfers. +These notes are for people working on improvements to RPI support in NetBSD. + +## Updating the firmware + +You probably don't want to do this. Firmware updates can break things, +and the latest firmware that's been tested is already included in the +NetBSD build you installed. + +If you're feeling adventurous (or are the port maintainer), here's what +to test whenever you try new firmware: + +- Audio +- OMXPlayer (and [[!template id=man name="vchiq"]]) +- Serial/framebuffer console +- CPU frequency scaling + +That goes for all of `rpi[0123]`. + +Upstream firmware releases are +[on GitHub](https://github.com/raspberrypi/firmware/releases). +Copy all files except `kernel*.img` into `/boot` and reboot.