version 1.47, 2017/03/30 15:53:47
|
version 1.55, 2017/10/14 15:06:30
|
Line 2
|
Line 2
|
|
|
This page attempts to document and coordinate efforts towards NetBSD/evbarm on [Raspberry Pi](http://www.raspberrypi.org). All board variants are supported. |
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]] |
[[images/raspberrypi.jpg]] |
|
|
Line 10 Initial, limited, Raspberry Pi support w
|
Line 10 Initial, limited, Raspberry Pi support w
|
|
|
<small>([Raspberry Pi image](http://www.flickr.com/photos/42325803@N07/8118758647/) by Christopher Lee used under CC-By-2.0 license)</small> |
<small>([Raspberry Pi image](http://www.flickr.com/photos/42325803@N07/8118758647/) by Christopher Lee used under CC-By-2.0 license)</small> |
|
|
|
# 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 |
# 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-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 '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 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' |
- 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' |
- <i>gunzip and dd</i> this img to your sd card. For example, |
- <i>gunzip and dd</i> this img to your sd card. For example, |
|
|
Line 32 Initial, limited, Raspberry Pi support w
|
Line 65 Initial, limited, Raspberry Pi support w
|
|
|
In minicom, run "minicom -s" and set hardware flow control to "no" |
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**) |
## Installation with sshramdisk image |
- 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. |
- You may use the rpi_inst.img.gz file created by an evbarm build. |
- Connect Ethernet Cable to RPI. |
- Connect Ethernet Cable to RPI. |
- After starting DHCP client, SSH login to with user "sysinst", and password "netbsd". |
- After starting DHCP client, SSH login to with user "sysinst", and password "netbsd". |
Line 85 Initial, limited, Raspberry Pi support w
|
Line 74 Initial, limited, Raspberry Pi support w
|
- Also for after the sysinst is done and the system reboots |
- Also for after the sysinst is done and the system reboots |
- sysinst started! |
- sysinst started! |
|
|
# Updating the firmware |
## Installation via ebijun's image |
|
|
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 |
Jun Ebihara provides an install image for Raspberry Pi that includes |
- OMXPlayer (and [[!template id=man name="vchiq"]]) |
packages. It is based on NetBSD-current. This image is typically |
- Serial/framebuffer console |
updated every few weeks. |
- CPU frequency scaling |
|
|
|
That goes for all of `rpi[0123]`. |
- https://github.com/ebijun/NetBSD/blob/master/RPI/RPIimage/Image/README |
|
|
Upstream firmware releases are |
## Updating the kernel |
[on GitHub](https://github.com/raspberrypi/firmware/releases). |
|
Copy all files except `kernel*.img` into `/boot` and reboot. |
|
|
|
# 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. |
- Build a new kernel, e.g. using build.sh. It will tell you where the ELF version of the kernel is, e.g. |
|
|
... |
... |
Line 114 Copy all files except `kernel*.img` into
|
Line 92 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. |
- 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 |
- reboot |
|
|
# Wireless Networking |
# 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). |
- A Realtek 802.11n USB adaptor configures as urtwn(4). |
- Configure with wpa_supplicant in /etc/rc.conf - |
- Configure with wpa_supplicant in /etc/rc.conf - |
|
|
Line 160 $ retroarch-joyconfig -o gamepad.cfg
|
Line 141 $ retroarch-joyconfig -o gamepad.cfg
|
$ retroarch --appendconfig gamepad.cfg -L /usr/pkg/lib/libretro/gambatte_libretro.so game.gbc |
$ retroarch --appendconfig gamepad.cfg -L /usr/pkg/lib/libretro/gambatte_libretro.so game.gbc |
"""]] |
"""]] |
|
|
# What works (NetBSD 7.0+) |
# Developer notes |
- 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 |
|
|
|
# What needs work |
These notes are for people working on improvements to RPI support in NetBSD. |
- USB (host); isochronous transfers. |
|
|
## 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. |