This page attempts to document and coordinate efforts towards NetBSD/evbarm on Raspberry Pi. 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.


  1. Installation
  2. Installation with sshramdisk image
  3. Updating the firmware
  4. Updating the kernel
  5. Wireless Networking
  6. GPU
    1. Video playback
    2. OpenGL ES
    3. Quake 3
    4. RetroArch / Libretro
  7. What works (NetBSD 7.0+)
  8. What needs work

(Raspberry Pi image by Christopher Lee used under CC-By-2.0 license)


Installation with sshramdisk image

Updating the firmware

Updating the kernel

Wireless Networking


Video playback

Accelerated video playback is supported in NetBSD 7 with the OMXPlayer application and through GStreamer with the omx plugin.


Accelerated OpenGL ES is supported in NetBSD 7. The GL ES client libraries are included with the misc/raspberrypi-userland package.

Quake 3

A Raspberry Pi optimized build of ioquake3 is available in the games/ioquake3-raspberrypi package. To use it, the following additional resources are required:

Place the pak0.pk3 file in the /usr/pkg/lib/ioquake3/baseq3 directory.

RetroArch / Libretro

Using 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-* packages. To begin using retroarch:

$ retroarch-joyconfig -o gamepad.cfg
$ retroarch --appendconfig gamepad.cfg -L /usr/pkg/lib/libretro/ game.gbc

What works (NetBSD 7.0+)

What needs work


it seems one of the first steps during the installation process is misleading, on the evbarm / raspberry pi platform. I ran into the issue, so as two mailing lists members recently did (and probably more people giving a try to netbsd on raspberry pi).

I would like to edit this page and add a note about selecting the HEAD installation sets rather than the default:

(A) IP Address during setup: As the net_rp.img install image uses DHCP at boot time, you will need to select DHCP during network configuration, or give your initial setup the very same IP received at boot time. You could change this later, but not on first boot and install run, else it will disconnect your remote connection.

(B) Install sets: As the raspberry pi port is still not part the stable release, you will want to use the HEAD branch to download installation sets. Have a look at and watch for the current YYYYMMDDHHMMZ branch. Use this timestap to adjust host and directory settings:

a: Host b: Base directory pub/NetBSD-daily/HEAD/YYYYMMDDHHMMZ (it will look like pub/NetBSD-daily/HEAD/201305220150Z)

(C) Partitioning: 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.

When selecting partition types, remember you are using a SDCARD, nonvolatile flash memory wears slowly as writes are done. You may consider using non journaled filesystems (no log or LFS) and adjust mount options (noatime, nodevmtime).

Kind regards, Mat

Comment by mat [] early Saturday morning, June 1st, 2013
Hey I integrated some of your notes into the page.
Comment by mspo mid-morning Saturday, June 1st, 2013

I have successfully installed NetBSD to my pi from the supplied images, but it is just the core system with no X server. I am a relative newby to Linux, let alone BSD and am slowly working my way around it, but I am struggling with pkg_add because I can't find a source file to match...

I downloaded rpi.img.gz from here:

I followed the instructions on this page, but fall down when trying to add packages

but when following the instructions here: and here:

I cannot find a matching distribution.

uname -a reports: NetBSD rpi 7.0_BETA NetBSD 7.0_BETA (RPI_201501031030Z) evbarm

but the closest I can get is

Should I be looking elsewhere for the repository?

Comment by Jonathan Sunday night, January 4th, 2015
You might want to check out installing pkgsrc and building your own packages - this article may help
Comment by Nick late Monday afternoon, January 5th, 2015

if you get the following error while trying to fetch sets;

ftp: Can't LOOKUP `': Temporary failure in name resolution

Please use the nyftp's IP address instead:

As reported by

Comment by Youri Sunday afternoon, March 22nd, 2015
Can someone please post link to netbsd 7.0 sources? I want to compile latest netbsd for my raspberry pi 2 board.
Comment by alakesh late Sunday afternoon, April 5th, 2015

Can anyone explain if all files (including the subdirectory overlays/ ) need to be copied? "Copy all files except 'kernel*.img' into /boot and reboot"

Or would a subset be sufficient?

Thanks very much -- Tobi

Comment by Tobias N. Sasse at lunch time on Wednesday, April 15th, 2015

Thanks for all the great work and for updating your instructions to reflect the new RPI2 images. Which by the way are awesome and right on par now with what the top competition has, in other words *dora has nothing us now with regards to tuning with gcc on this arch.

Last week I took the armv7 gzimg and added the new RPI2 kernel from another snapshot. Wow it worked, and I felt pretty special until the next time I looked 5 minutes later...and I saw I had just took the long route to reproduce what was already done in the new armv7 rpi2 images. LOL.

On a site note. Please consider updating the "Installation" section example to clarify HEAD/Current images vs Stable. If it's important.

Currently it reads:

"The HEAD/current directory build will be under HEAD/YYYYMMDDHHMMZ/ (for example,"

I would change the "netbsd-7" to "HEAD" as below, if I'm understanding correctly.

"The HEAD/current directory build will be under HEAD/YYYYMMDDHHMMZ/ (for example,"

NetBSD 4 Ever!

Comment by George early Saturday morning, August 15th, 2015

Most of the userland and the kernel in NetBSD 7.0 seem to be built with -mfloat-abi=soft (this is from earmv6hf). Indeed, if you look at the Makefile generated when you're preparing to build a new kernel you will see -mfloat-abi=soft is defined. For example the openssl in base has the following performance characteristics:

Doing md4 for 3s on 16 size blocks: 91199 md4's in 2.68s

If I build a new openssl with -march=armv6k -mfloat-abi=hard -mfpu=vfp' in my/usr/pkg/etc/mk.conf`, I get the following:

Doing md4 for 3s on 16 size blocks: 221820 md4's in 2.85s

That's quite a substantial improvement. Could you please tell me the reasoning behind not doing this in the default distribution?


Comment by josh64 late Wednesday night, October 15th, 2015
Add a comment