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