How To Install FreeBSD on Raspberry Pi 2 Model B

How do I install FreeBSD 10 or FreeBSD 11 (current) on Raspberry Pi 2 Model B? How do I flash the SD Card using Linux, OS X, FreeBSD or Unix-like operating system?

Tutorial details
Difficulty level Intermediate
Root privileges Yes
Requirements None
Est. reading time 20m
[/donotprint]You can easily install FreeBSD 10 or FreeBSD 11 (current) on Raspberry Pi 2 Model B. You can build a nice and easy to use Unix server using FreeBSD operating system. FreeBSD-CURRENT has supported Raspberry Pi since November, 2012 and Raspberry Pi 2 since March, 2015. In this quick tutorial I’m going to explain how to install FreeBSD 11 current arm port on RPI2.

1. Download FreeBSD-current image for arm

You can visit this page to grab pre built images for Raspberry Pi 2. Use wget or curl command to download image:
$ wget
$ curl -O

2. Decompress FreeBSD-current image

Type any one of the following command:
$ unxz FreeBSD-11.0-CURRENT-arm-armv6-RPI2-20151016-r289420.img.xz
$ xz --decompress FreeBSD-11.0-CURRENT-arm-armv6-RPI2-20151016-r289420.img.xz

3. SD Card Setup

You can flash the SD card using OS X, Linux, FreeBSD, MS-Windows and Unix-like operating system.

Flashing FreeBSD-current using Mac OS X

Type the following dd command:
$ diskutil list
$ diskutil unmountDisk /dev/diskN
$ sudo dd if=FreeBSD-11.0-CURRENT-arm-armv6-RPI2-20151016-r289420.img of=/dev/disk2 bs=64k

Sample outputs:

1024+0 records in
1024+0 records out
1073741824 bytes transferred in 661.669584 secs (1622776 bytes/sec)

Flashing FreeBSD-current using Linux/FreeBSD or Unix-like system

The syntax is:
$ dd if=FreeBSD-11.0-CURRENT-arm-armv6-RPI2-20151016-r289420.img of=/dev/sdb bs=1M
Make sure you replace /dev/sdb with actual SD card device name.

4. Boot FreeBSD

Insert in the SD card in your Raspberry Pi 2 Model B. You need to connect keyboard, mouse and display monitor. I’m using USB to serial cable to get output on screen:

Fig.01 RPi USB based serial connection

Fig.01 RPi USB based serial connection

In this following example, I’m connecting to my RPi using screen command:

## Linux version ##
screen /dev/tty.USB0 115200 
## OS X version ##
screen /dev/cu.usbserial 115200
## Windows user use Putty.exe ##

Sample FreeBSD RPI boot session:

Gif 01: Booting FreeBSD-current on RPi 2

Gif 01: Booting FreeBSD-current on RPi 2

5. FreeBSD username and password for RPi 2

The default passwords for the images are freebsd/freebsd and root/root.

And, there you have it, FreeBSD-current installed and running on RPi 2.

🐧 Get the latest tutorials on Linux, Open Source & DevOps via RSS feed or Weekly email newsletter.

🐧 8 comments so far... add one

CategoryList of Unix and Linux commands
Disk space analyzersncdu pydf
File Managementcat
FirewallAlpine Awall CentOS 8 OpenSUSE RHEL 8 Ubuntu 16.04 Ubuntu 18.04 Ubuntu 20.04
Network UtilitiesNetHogs dig host ip nmap
OpenVPNCentOS 7 CentOS 8 Debian 10 Debian 8/9 Ubuntu 18.04 Ubuntu 20.04
Package Managerapk apt
Processes Managementbg chroot cron disown fg jobs killall kill pidof pstree pwdx time
Searchinggrep whereis which
User Informationgroups id lastcomm last lid/libuser-lid logname members users whoami who w
WireGuard VPNAlpine CentOS 8 Debian 10 Firewall Ubuntu 20.04
8 comments… add one
  • bol0bal4 Oct 19, 2015 @ 3:50

    Thank you for tutorial, but I can’t bring X on RPI2 with FreeBSD, can you please help me?

    • 🐧 Vivek Gite Oct 19, 2015 @ 8:27

      I will add new tutorials for XOrg.

      • bol0bal4 Nov 20, 2015 @ 2:42

        Yup, Thank you! :)

  • illbert Nov 1, 2015 @ 17:17

    Does anybody know what other well supported ARM based boards are supported in FBSD?

    • 🐧 Vivek Gite Nov 2, 2015 @ 4:17
      Cores Supported
      Most XScale
      Marvel Feroceon
      Marvel Sheeva
      Cortex A5
      Cortex A7
      Cortex A8
      Cortex A9
      Cortex A12
      Cortex A15
      Allwinner A10/A20
      Atmel AT91RM92 and AT91SAM9 families
      Broadcom BCM2835 (used in Raspberry Pi)
      Cavium CNS11xx
      Freescale i.MX51, i.MX53, i.MX6 and Vybrid Family
      Intel XSCALE
      Marvell Orion, Kirkwood and Discovery Innovation families of systems-on-chip
      Marvell Armada 500 (ARMv6) and Armada XP (ARMv7)
      NXP LPC32x0
      Qualcomm Snapdragon
      Rockchip RK3188
      Samsung Exynos5 and S3C24xxx
      Texas Instruments DaVinci Digital Media SoC
      TI OMAP
      Xilinx Zynq7 family
      Note that not all peripherals are supported on all CPUs.
      ArndaleBoard (Samsung Exynos5250)
      Atmel AT91RM9200
      BeagleBoard and BeagleBoard-xM (TI OMAP3)
      Colibri VF50 Evaluation Board
      Cubieboard(1,2) (Allwinner A10/A20)
      Device Solutions Quartz
      Gateworks Avila GW2348 and Cambria GW2358
      Genesi Efika MX Smarttop and Smartbook
      Globalscale Technologies OpenRD platform
      Google Chromebook
      Kwikbyte KB9202B (as well as the older KB9202 and KB9202A)
      Linksys NSLU2
      Marvell DB-88F5182, DB-88F5281, DB-88F6281, RD-88F6281, DB-78100
      Marvell DB-88F6781 (ARMv6)
      Marvell DB-78460 (ARMv7)
      Marvell Sheeva Plug and Dream Plug
      Pandaboard (OMAP4)
      Phytec Cosmic Board (Freescale Vybrid Family)
      Raspberry Pi
      Radxa Rock (Work in progress)
      SBC6045 with Atmel at91sam9g45
      Technologic Systems TS-7200 and TS-7800
      Zedboard (Xilinx Zynq)
      Note that not all peripherals are supported on all boards.

      — Source: FreeBSD ARM WIKI

  • ptg Dec 7, 2015 @ 20:42

    does anybody have issues to run pftop ? of pfctl -ss ?

    the apps are crashing with core dump

  • Max Id Jan 10, 2016 @ 9:55

    Does this system ( for R PI ) already include compiler and all the necessary libs? Just in case I want to build something from ports?

  • Attila Sep 11, 2017 @ 16:23

    I wonder, have you had to install the drivers for the USB to TTL cable to work? I think I might be using the same cable as you but I don’t seem to have the device available and so screen won’t work.

    Also, the Pi2 draws more than 500mA of power and Adafruit isn’t recommending powering it via a sole USB cable.

Leave a Reply

Your email address will not be published.

Use HTML <pre>...</pre> for code samples. Still have questions? Post it on our forum