Update of NetBSD on the Raspberry Pi
Time has passed since
the last status update
of NetBSD on the Raspberry Pi, and things
have evolved:
Recent news include drivers for
USB with its many possible devices and display, allowing
X to be ran - check out
the screenshots provided by Jun Ebihara!
There is also
this posting on the port-arm mailinglist
that gives details on
an updates kernel image, Xorg.conf file to get X going
and more news hidden in that thread.
Anyone up for compiling a comprehensive
NetBSD/RaspberryPi webpage,
maybe on
the NetBSD Wiki?
NetBSD on the Raspberry Pi
The
Raspberry Pi
is a pretty recent, cheap ARM-based board, or as the
webpage
says: ``An ARM GNU/Linux box for $25''.
Shipping with today's Windows-for-embedde-boards
operating system (AKA Linux), there's also a port of
NetBSD on its way.
Nick Hudson is at it, and he has posted first
dmesg output
now, showing the machine going to multiuser mode.
The code's not integrated into mainline NetBSD-current yet,
but rest assured that that will happen when the code is ripe.
Good work, Nick!
Detailled setup instructions are available
on the port-arm mailing list
and
Paul's homepage.
Paul is also looking for feedback on the port, so if
you have a Mini2440 board, give it a spin and report back to Paul!
NetBSD ketchup - news from my mailbox
Here's another bunch of NetBSD-related news that has
been lingering in my inbox for far too long:
Izumi Tsutsui's
NetBSD/cobalt
restore CD is available based on NetBSD versions
5.0.25.1_RC2.
See the
for information on what it is and how to use it.
A negative symbol lookup cache was added
to NetBSD's loader
for shared libraries and shared objects, ld.so_elf, by
Roy Marples:
``I've been researching why Evolution from GNOME takes over 5 minutes to load on my quad core amd64 beast. It boils down to dlsym looking for a symbol that does not exist directly and as such examining every needed library. However, the current implementation does not remember what libraries it as already checked. Normally this isn't a problem, but with the way Evolution is built the search chain is massive.
[...]
With this patch, Evolution (without the patches to and a glib I added to pkgsrc a few days ago) loads in under 2 seconds (5 seconds with initial disk thrashing). ''
The NetBSD Logo
is available in many variants, but a new variant was submitted
via www@ these days by "Tim" - which is actually plain HTML,
no image:
⚑NetBSD Powered!
SafeNet's ProtectDrive is
``a full disk encryption solution that encrypts the entire hard drive of laptops, workstations and servers, as well as USB flash drives, to protect data in the case of the theft or loss of a hardware device.''
How do you implement such preboot authentication and
harddisk encryption software,
esp. if you want to provide thinks like LDAP integration for
the user/key handling and two-factor authentication?
Little is known, but rumors say the 32bit version of the software
is based on NetBSD, as is backed by
this worker bio info:
``Duties: Working on pre-boot restricted environment with loads before operation system and implemented on NetBSD.
Ported and optimized the KDrive X server to NetBSD.
Developed and implemented user secure authentication interface with smart card support.
Environment and tools : NetBSD (3.0), C/C++, FLTK''
A german-language introduction of pkgsrc on OpenSolaris
was given by Michael 'kvedulv' Moll at the Munich
OpenSolaris User Group back in march.
Slides
and a
video
are available.
Are you still looking for a nice small
ARM-based board to start hacking on NetBSD/arm?
The http://www.friendlyarm.net/products/mini2440
may be a good start, esp. after
Paul Fleischer is reaching completion of NetBSD support
for the board. Citing from
his mail to port-arm:
``I have now fairly good (i.e., it works for me) support for the
MINI2440 on NetBSD with support for the following:
- S3C2440 UART
- DM9000 (MAC+PHY)
- S3C2440 SD Controller
- S3C2440 DMA Controller
- S3C2440 IIS Controller
- FriendlyArm 3,5" LCD Display
- S3C2440 USB Host Controller (OHCI)
- S3C2440 Touch Screen
- UDA1341TS audio codec
Currently, support for three things on the S3C2440 are missing:
- S3C2440 NAND Controller
- S3C2440 USB Device Controller
- S3C2440 RTC
I've also created a stage2 bootloader for use with u-boot, which
ensures that the value of bootargs is passed to the NetBSD kernel.
At this point I have only tested the code with the 64Mb version of the
FriendlyArm MINI2440.
While talking about NetBSD on cool hardware:
How about NetBSD/hpcarm on
WILLCOM | W-ZERO3 (WS004SH) mobile devices?
Here is a screenshot of Ebihara-san's WS011SH with CCW screen,
and there is also a video "booting NetBSD/hpcarm on WILLCOM | W-ZERO3(WS004SH)"
posted on YouTube:
A colorful collection of NetBSD news from the past few weeks
AKA "I've been slacking again, and there's a whole pile of stuff
here now that I'm putthing into one blog posting". Here we go:
Force10 Networks Receives Common Criteria Security Certification for Its High-Performance Ethernet Switch/Router Products.
According to the article, ``Common Criteria evaluations entail formal rigorous analysis and testing to examine security aspects of a product or system. Extensive testing activities involve a comprehensive and formally repeatable process, confirming that the security product functions as claimed by the manufacturer. Security weaknesses and potential vulnerabilities are specifically examined during wide-ranging evaluation and testing.
FTOS is the operating system software that runs on Force10 switch/router product lines, including the E-Series, C-Series and S-Series platforms. Based on NetBSD, FTOS leverages a distributed, multiprocessor architecture that delivers highly scalable protocols and reliability. By delivering the same OS across its entire switch/router line, Force10 ensures that customers benefit from stable code, a consistent configuration environment and simpler software management. ''
While there:
Force10 Networks Delivers Ethernet-Optimized Platform for MPLS Core Networks:
``Force10 Networks, Inc. [...]
announced the immediate availability of MPLS (multi-protocol label switching) functionality for its ExaScale E-Series core switch/routers.
[...]
The ExaScale platform combines high-density, non-blocking, line-rate 10 GbE switching and routing with robust MPLS LSR support at 1/5th of the cost of a traditional core router, enabling carriers to fully capitalize on the economic advantages of Ethernet.''
Create Bootable Live Linux USB Drives with UNetbootin:
``UNetbootin allows you to create bootable Live USB drives for a variety of Linux distributions from Windows or Linux, without requiring you to burn a CD. You can either let it download one of the many distributions supported out-of-the-box for you, or supply your own Linux .iso file if you've already downloaded one or your preferred distribution isn't on the list.''
And of course we all know that NetBSD is Linux, right?
See the list of supported distributions:
The
homepage
mentions that NetBSD 4.0 is supported, maybe someone wants
to give them an update on what's up with NetBSD 5.0?
Would be nice to see that on the list!
Ever wondered what happened with the BSD Certification recently?
There's a video from the talk
BSD Certification Group: A Case Study in Open Source Certification
available that talks about the goal of the project,
the two exams (BSD Associate, BSD Professional), and what's
going on behind the scenes.
With the move from XFree to X.org, the X server for the DNARD Shark's
NetBSD/shark lost support for accelerated X.
Thanks to Michael 'macallan' Lorenz,
hardware-accelerated X for NetBSD/shark is back now:
``I finally got around to start working on an Xorg driver for the IGS CyberPro
20x0 family found in rev. 5 Sharks, Netwinder etc. - currently the driver is
built only on shark and supports only the VL variant found there. Adding
support for PCI chips is trivial though, just needs extra probing.
The driver supports autoconfiguration ( X -configure should yield something
almost usable, only DefaultDepth needs to be adjusted).''
Jed Davis has committed the
RAIDframe parity Summer-of-Code project.
See
his posting
for the details. The project
``drastically reduces
the time RAIDframe spends rewriting parity after an unclean shutdown by
keeping better track of outstanding writes (thus, "parity map"). The
tech-kern archives have more details [...]
This feature is enabled by default on all sets (other than RAID 0). It
can be administratively disabled with the new "raidctl -M" flag, which
is described in the changes to the raidctl(8) man page; however, the I/O
overhead for updating the parity map is expected to be unnoticeable in
practice.''
So much for now. There is more in the pipe, but that will have
to wait for now. Good night!
New hardware support: Gumstix Verde, Lenovo ThinkPad ethernet
After NetBSD supports the
Gumstix boards
for quite some time now, support for the
Gumstix Verde
models is on its way:
Kiyohara Takashi has
posted
that he has realized support for a number of hardware devices, including
USB host mode, LCD, ethernet, and a MicroSD card driver.
While talking about hardware support, an ever changing area is
the devices put into consumer hardware like laptops. So far,
the Intel 82567LM Gigabit card found in machines like the
Dell Optiplex 760 and Lenovo's ThinkPad T400 was not supported.
Support for that is now ported from OpenBSD to NetBSD by
Kouichirou Hiratsuka. See
his posting
for diffs and dmesg output.
Creating a bootable disk image (for shark/arm and i386)
I've added a SD-Card to IDE adapter to my shark some time ago,
and wanted to create an image for the SD-Card. Using Mac OS
as development platform prevented the use of NetBSD's vnd(4),
plus I wanted to do this without root privileges. NetBSD's
makefs(8) seemed like a nice tool, but how to add bootblocks,
partition tables, etc.? A script posted by Izumi Tsutsui
got me on track, and after looking a bit at some hexdumps
of various file system images, boot blocks, and BSD disk labels,
I managed to adjust Izumi's script enough to give me bootable
disk images for booth shar/arm and i386.
The script can be found
in the port-arm archive.
Lessons that I've learned by this (and that I'd like to share):
a MS-DOS MBR is 512 bytes (boring)
a BSD disklabel is some 300-400 bytes, apparently not really fixed in size.
The interesting part: if you create a BSD disk label on a image, the
first 512 bytes are left alone. Good to put a MBR in!
when you have a FFS file system image (e.g. created with mkfile), the
actual file system data only starts at byte 8192 - that's plenty of
space to put a BSD disk label in there. Oh, and a MBR, too, if needed! :-)
Catching up: portability, mult, Freescale i.mx31, fortunes, growfs, SMP, IIJ SEIL/X
I've had a bunch of things sit here, some a bit dated, some brand
new. I'll put them all into one item here due to lazyness:
Following Wikipedia, Portability is
``the general characteristic of being readily transportable from one location to another'', and it's also
a major goal of NetBSD.
Things start to get interesting when looking into details, e.g.
Wikipedia also
states that ``Software is portable when the cost of porting it to a new platform is less than the cost of writing it from scratch. The lower the cost of porting software, relative to its implementation cost, the more portable it is said to be.''
So there's some room for interpretation when defining what is
portable and what is not, and to what extent.
Besides my essay on
What makes an operating system portable,
there was a
posting
to the netbsd-advocacy mailing-list that goes into a few
details on NetBSD's current state of portability.
The posting lists a number of reasons why the author considers
NetBSD to be portable, including the low effort to start new
projects, central maintenance in one source tree, and the efforts
from machine-independent changes to all ports.
After reading about people doing research on how to
assess "security" of operating systems by counting number
of exploits and how quick they are patched, I wonder if
there are some metrics out there to also put "portability"
into numbers.
I've mentioned
the mult project
some time ago. In one of their latest recordings, there's also
a interview with its creator,
Kristaps Dzonsons, on it on
BSDtalk, available in
mp3
and
ogg formats. Thanks to Mark Weinem for the hint!
To give new users hints on how to use NetBSD, Jeremy C. Reed has
started
a netbsd-tips fortune database. It's part of NetBSD-current
and can be run from .login/.profile by running "fortune netbsd-tips".
There's also a
wiki page that allows easy submitting of
new entries. Feel free to contribute your special NetBSD gems!
NetBSD's handling of harddisks and file systems is pretty static
right now - while one can add additional disks to a system,
and even span them using RAIDframe and ccd(4), extending the
filesystem on top of it is a problem. This is being mitigated
by Juan Romero Pardines' port of growfs(8): ``I've just adapted growfs(8) from OpenBSD (they adapted the FreeBSD code),
which is able to grow FFSv1 and FFSv2 filesystems.
I tested growing a partition in FFSv1 and FFSv2 from 1GB to 4GB and the
process was smooth (and fast); after this I ran 'fsck_ffs -yf /fs' and it
found one error that was fixed correctly.''
For more information, including where to get the code and what
to test, see Juan's posting.
There were a few attempts to get logical volume management (LVM)
onto NetBSD, which were not successful so far. This may change
in the future, and when flexible handling of storage volumes,
with growfs(8) will be useful to manage FFS/UFS file system
sitting on top of them.
When needing sources for some Open Source package, I've used
"make extract NO_DEPENDS=1" with pkgsrc in the past. It
seems that was removed without further notice, and
Obata Akio was kind enough to
point out
that this can be done now by using SKIP_DEPENDS=yes.
Mmm, interface stability...
Last but not least a note from the "products based on NetBSD"
department:
Saitoh Masanobu from
IIJ, Japan, has
notified us that
the SEIL/X series that IIJ unveils at AsiaBSDCon 2008 is based on NetBSD.
There's a
brochure on SEIL/X that mentions a long
list of features supported by the machine, including all
state of chw art in routing, bridging, VPN, firewalling,
quality of service and more.
This is made possible by the "SEIL Engine", a software
architecture that's based on NetBSD that allows porting
the application stack to a number of hardware platforms
easily, while offering flexibility to add support for
custom hardware and software modules:
For more information on the SEIL Engine, see IIJ/SEIL's
homepage (Japanese).
and
PDF brochude (English).
Catching up on source-changes (Feb 21st - Mar 1st)
Mark Kirby's CVS digest is still down. I'd love for someone to continue this service - please
contact Mark and/or me for details! (I don't really have time to do this,
but will try to do so. Help is definitely appreciated!!!)
Catching up on NetBSD's
source-changes mailing list from
Feb 21st 2008 to Mar 1st 2008, here's what people not following
things closely may find interesting:
Chris Gilbert made process on the chris-arm-intr-rework
branch, which aims at reworking the ARM interrupt code to provide
a shared set of interrupt routines that can be used across
all ARM based machines.
The PowerPC routines for bcopy, memcmp, memcpy and memmove were
updated to use tuned versions that were written by IBM and released
under a 3-clause BSD license as part of the perflib project, see
http://sourceforge.net/projects/ppcperflib/.
Keiichi Shima has imported the Mobile IPv6 code developed by
the SHISA project. The
work can be found on the "keiichi-mipv6" branch.
Matt fleming has started work on a device file system that supports
dynamic device nodes, which is of relevance when loading kernel
modules for device drivers, so you don't have to run /dev/MAKEDEV
manually. The work is on the "mjf-devfs2" branch.
Nick Hudson is currently working on syncing NetBSD's WiFi (net80211)
code with FreeBSD, so that these two operating systems (and possibly
others) can share a common codebase. The work currently affects
only the kernel, but this may extend to the userland eventually.
The glob(3) wildcard extension routines got a new options
GLOB_NO_DOTDIRS added, which hides . and .. even if the pattern
would otherwise include them.
Juan Romero Pardines has ported the mfi(4) driver from OpenBSD. The
driver supports disk controllers with PowerPC IOSs such as the LSI
SAS1078 and the Dell PERC6.
The boot-only ISOs built for releases included several kernels
(with ACPI, without ACPI) for some time now. Stephen Borrill has
added a menu to make kernel selection easier. Mmm, user friendliness!
The machine-independent versions of strcspn(3), strpbrk(3) and
strpspn(3) were improved from O(mn) to O(n+m) based on ideas from
DragonFlyBSD.
Power management hooks for suspend, shutdown and resume were
added to many device drivers, to support the new power management
framework by Jared McNeill.
A whole lot of changes were pulled up from NetBSD's development
branch into the release branches for NetBSD 3.x and 4.x.
So much for this round of updates. A lot of work was not done on the
main trunk but on some branches. People interested to learn what branches
exist in NetBSD's source tree can check out src/doc/BRANCHES to do so.
Enjoy!
Instructions for installing NetBSD on the NSLU2
NetBSD/arm supports installing on the Linksys NSLU2 (also known as "slug")
for some time now. Installation's a bit bumpy though, and after some
experimenting Donald T. Hayford has
posted instructions
for building and installing NetBSD on the NSLU2
(and a minor update), including dmesg pr0n.
Embedded NetBSD HowTo: Porting NetBSD To A New ARM SoC
J. Sevy has
sent mail
about his efforts to port NetBSD to an
ARM926EJ-S based SoC, and
esp.
his experiences
that document this project.
The article starts easy with an overview
of poossible approaches, but then goes quickly into
details of the autoconfiguration system, kernel startup,
bus operations, interrupts and drivers
for the system clock and the serial chip.
He concludes with his
Observations and Comparison with Linux Porting Efforts:
``I've done a few Linux ports before, and the adaptation of NetBSD went at least as smoothly as any of the Linux efforts. In fact, I found NetBSD to have several advantages that made it substantially easier to port to a new platform than Linux, especially for a "newbie" like myself with no previous NetBSD porting experience.''
What else to say? (Nothing, right! :)
While at the topic of porting NetBSD and adding device drivers:
One thing that needs doing in that process is choosing major/minor
device numbers and sort them into tables for block/character
devices. The article mentions an interesting webpage that's
relevant here:
The Auto-Generation Block/Character Device Switch Tables by config(8)
by MAEKAWA Masahide. Yai!
Article: RPCEmu updated to run RISC OS 6 (and NetBSD) (Updated)
From the article
``RPCEmu updated to run RISC OS 6'':
``Following the release of RISC OS 6 Preview, the open source RiscPC emulator RPCEmu has been updated to run the new OS. Several bug fixes and updates were submitted by John-Mark Bell to the emulator project in order to boot RISCOS Ltd's latest operating system offering. Iyonix owner John-Mark said the work was done out of curiosity - allowing him to explore the various hardware abstractions in RISC OS 6 - and also to help debug programs such as the gnash Flash 7 player port.
[...]
As well as John-Mark's RISC OS 6-related work, a number of other enhancements have been committed into the emulator's source code vault by Tom: these include
[...]
improved support for running ARM Linux and ARM NetBSD, a rewritten timing system, and more. ''
Anyone got a package for this, plus instructions on how to
run NetBSD/acorn32?
Mesa Electronics Launches CPU with wireless support
Found by Google News found an item from the
"mmm, preinstalled NetBSD" department; Citing from the
ECNasiaMag article:
``The 4C81 from Mesa Electronics is a low cost, low power ARM based PC104-PCI CPU. Designed for networked applications, the 4C81 has two 10/100 baseT Ethernet interfaces and a slot for a WI-FI card or other Mini-PCI device. The 166 MHz CPU card consumes less than 2 watts total from a single 5V supply. System resources include 32M or 64M of RAM and 32M to 128M of NAND Flash memory. The Ethernet interfaces generates hardware TCP checksums allowing close to wire speed routing through the 4C81. An optional on card 200K or 400K gate Spartan3 FPGA with 32 bit local bus connection provides 36 bits of flexible user I/O or a custom processing accelerator.
Versions without the FPGA option supply 36 bits of general purpose digital I/O via a CPLD. PC/104-PCI expansion allows addition of high performance peripheral cards. Three bus master PCI devices can be used (including the MiniPCI). The 4C81 supports both Linux and NetBSD. Either operating system can be supplied pre-installed on the 4C81s flash memory. Price of the 4C81 in 100s is $149.00 (32M RAM 32M Flash). ''
NetBSD/evbarm now supports Gumstix
"Gumstix" is
a small ARM-based board that has the size of a chewing gum strip if
no external connectors for USB, ethernet or serial are used.
The machine's sold with Linux on-board, but a port to NetBSD is available now
as well, see
Kiyohara Takashi's mail to current-users
for more information on supported hardware, plus
his second mail
for where to find the code (which is currently not integrated
into the NetBSD source tree).
NetBSD on Olimex CS-EP930x board (Updated)
The
Olimex CS-EP930x boards
are development boards for EP9301 ARM920T microcontrollers with USB,
RS232, ethernet and SD/MMC connectors.
Ivan Vasilev got NetBSD/evbarm booting on such a board, see
the dmesg output
and
his mail netbsd-ports@
for more information.