FreeBSD on RaspberryPi

Tim Kientzle kientzle at freebsd.org
Wed Nov 7 16:01:11 UTC 2012


WARNING:  This is still highly experimental and by no
means ready for "production use", but some folks might
find it interesting.

To boot FreeBSD on your RaspberryPi, you'll need:
  1) A RaspberryPi.
  2) A serial cable similar to this one:  www.adafruit.com/products/954
  3) An SD card of 2GB or larger

Download this 111MB file (~1.6G uncompressed):
   http://people.freebsd.org/~kientzle/FreeBSD-RPI-B-r242362-2012-10-30.img.xz

Uncompress it, dd it onto your SD card, pop it in and apply power.
(The serial cable above can also provide power; just leave the red
lead disconnected until you get the SD card plugged in.)


KNOWN BROKEN STUFF

  * There's no framebuffer/syscons yet.  Hence the need for a serial cable.

  * The memory is mis-probed (actually a boot loader problem,
     not a FreeBSD kernel issue), so you'll only get to use 128MB
     (you might be able to change this for a single boot by breaking
     into ubldr and editing the FDT by hand)

  * There has been NO attempt to reduce the footprint of this image.
    It's a completely stock build of FreeBSD-CURRENT.
    (Actually, I have turned off sendmail and a few other things in rc.conf,
    but compensated by building world with full debug enabled.)

  * I've personally not tried USB or Ethernet and have no idea if they work.


HOW TO BUILD YOUR OWN IMAGE

The script I used to build this image is at:
   github.com/kientzle/freebsd-beaglebone
(It was originally developed for BeagleBone.)


Enjoy!



Boot message (edited for length):


DRAM:  128 MiB
WARNING: Caches not enabled
MMC:   bcm2835_sdh: 0
Using default environment

In:    serial
Out:   serial
Err:   serial
Net:   Net Initialization Skipped
No ethernet found.
Hit any key to stop autoboot:  0 
reading uEnv.txt

74 bytes read
Importing environment from mmc ...
reading ubldr

728201 bytes read
## Starting application at 0x02000054 ...
Consoles: U-Boot console  
Compatible API signature found @7b75220
Number of U-Boot devices: 1

FreeBSD/armv6 U-Boot loader, Revision 1.2
(root at fci386.localdomain, Wed Nov  7 01:54:47 PST 2012)
DRAM:	 128MB

Device: disk
-
/boot/kernel/kernel data=0x300238+0x1ec7c syms=[0x4+0x70f80+0x4+0x56d3c]
Hit [Enter] to boot immediately, or any other key for command prompt.
Booting [/boot/kernel/kernel]...               
fdt_start: 0x003DC138
fdt_reg_valid():  reg#0 (start: 0x0 size: 0x8000000) valid!
Kernel entry at 0x100100...
Kernel args: (null)

 …

Copyright (c) 1992-2012 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
	The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 10.0-CURRENT #3: Wed Nov  7 04:23:11 PST 2012
    root at fci386.localdomain:/usr/obj/arm.armv6/usr/src/sys/RPI-B arm
CPU: Sheeva 88SV581x rev 7 (Marvell core)
 Supported features: ARM_ISA THUMB2 JAZELLE ARMv4 Security_Ext
 WB enabled LABT branch prediction enabled
  16KB/32B 4-way instruction cache
  16KB/32B 4-way write-back-locking-C data cache
real memory  = 134217728 (128 MB)
avail memory = 125685760 (119 MB)

  … 

FreeBSD/arm (raspberry-pi) (ttyu0)

login: root
FreeBSD 10.0-CURRENT (RPI-B) #3: Wed Nov  7 04:23:11 PST 2012

Welcome to FreeBSD!

  …

root at raspberry-pi:/root # top

last pid:   490;  load averages:  0.63,  0.30,  0.12    up 0+00:01:32  12:47:50
7 processes:   1 running, 6 sleeping
CPU:  0.4% user,  0.0% nice,  0.8% system,  2.3% interrupt, 96.5% idle
Mem: 59M Active, 7312K Inact, 8136K Wired, 10M Buf, 47M Free
Swap: 

  PID USERNAME  THR PRI NICE   SIZE    RES STATE    TIME   WCPU COMMAND
  488 root        1  16    0 10808K 10280K pause    0:00  5.27% csh
  490 root        1  41    0 10940K 10080K RUN      0:00  4.84% top
  487 root        1   8    0 10980K 10164K wait     0:00  4.31% login
  484 root        1  -8    0  9848K  9596K piperd   0:00  0.67% logger
  452 root        1  42    0 14724K  2208K select   0:00  0.00% sshd
  486 root        1   8    0  1656K  1396K nanslp   0:00  0.00% sleep
  483 root        1   8    0 10416K  1128K wait     0:00  0.00% sh




More information about the freebsd-hackers mailing list