Mar 29 2007
12:01 GMT
Baby steps with DragonFly BSD 1.8.1 bsd 

The recently released DragonFly BSD 1.8.1-REL incited me to give it a very quick try. I always loved their logo and I was curios about how can act an OS forked from FreeBSD 4.8 — see Wikipedia for a short history of the DragonFly.

The 1-yr old Quick Review of DragonFly BSD 1.4 wasn't very encouraging, and neither was the First look of DragonFly BSD 1.4 on Distrowatch, but I have to say that I love their logo.

Oh well. Know what? At least, it has an excellent installer, which has not changed since version 1.2 — it looks exactly like in this article! (Now, why can't OpenBSD come with a similar installer?! Just to scare the users?!)

For a 10 GB HDD and 256 MB of RAM, the partitioning proposed by default was OK:
  • /dev/ad0s1a: / = 256M
  • /dev/ad0s1b: swap = 512M
  • /dev/ad0s1d: /var = 256M
  • /dev/ad0s1e: /tmp = 256M
  • /dev/ad0s1f: /usr = 3072M
  • /dev/ad0s1g: /home = *
A good thing is that you are asked whether you want or not to have the bootblock(s) installed in the MBR, and you can even install them on several disks. For slices that start beyond the 1023 cylinder, a "Packet Mode" is proposed to fix the possible annoyances.

You can find further documentation here: Chapter 2 Installation from CD.

The initial configuration of the installed system (BEFORE the reboot!) is friendly enough (again, look into this article from 2005, nothing has changed). People coming from Linux should pay attention when asked about what network interface to configure — for instance, from the choice of: lp0, sl0, faith0, lo0, ppp0 and rl0, you will want rl0 (in my case it was a Realtek-based PCMCIA card that was detected absolutely fine). Configuring with DHCP works, and I have not tried anything else.

A little fuzzy is the choice of the keyboard. Which one should you choose for a US keyboard?
  • us.iso.kbd
  • us.pc-ctrl.kbd
  • us.unix.kbd
I have chosen the second one.

The last option before the reboot was to install "extra software packages" from the CD. 3 out of the 9 packages failed to install, but nothing essential anyway.

Reboot.

Unlike OpenBSD and NetBSD (for instance), DragonFly doesn't come with any xserver.tgz on the CD. You'll have to get it from the online repositories. There are about 6 GB of binary packages (i386) available!

As shown in A Quick Start on DragonFly, by Justin Sherrill (August 30, 2004), pkg_add is smart enough to take an online package and to resolve the dependencies from the same repository. You could set an environment variable PKG_PATH, but this is not mandatory.

Here are the two repositories I have tried: The problem with these packages is that they're still tagged "1.6.1" internally, but they'll install anyway. Replacing "RELEASE" with "DEVELOPMENT" in the URLs didn't change anything.

Now, I noticed that DragonFly is more advanced than NetBSD. Where NetBSD still has xservers-3.3.6.5nb2.tgz, DragonFlyBSD has xorg-6.9.0nb3.tgz (this is a meta-package).

Don't ask me why I don't compare DragonFly with FreeBSD: I tend to compare it with NetBSD because they do have something in common: they don't come with that much on the CD! (And FreeBSD has 2 CDs, or even 3 CDs now, when the documentation couldn't fit anymore.)

Say we want to install X. On a single line:
pkg_add -v ftp://packages.stura.uni-rostock.de/pkgsrc-current/ DragonFly/RELEASE/i386/All/xorg-6.9.0nb3.tgz
It took some time, but it worked.

NOTE: Getting the packages from chlamydia.fs.ei.tum.de raised this kind of warnings/errors, but it eventually worked:
ftp: Connect to address `2001:4ca0:22ff:10::14': No route to host
Why did it try to use IPv6?!

Hint for the lazy:
pkg_add -v ftp://packages.stura.uni-rostock.de/pkgsrc-current/
DragonFly/RELEASE/i386/All/mc-4.6.1nb3.tgz

To start X, you have to configure it first:
# Xorg -configure > xorg.conf.new
# X -config /root/xorg.conf.new
Nay, it couldn't find a... serial mouse in /dev/mouse!

The fix was to tell it my mouse is on USB, i.e. /dev/ums0.

The next glitch: the screen was 640x480, although the correct "savage" driver was loaded (I tested it on a 7-yr old Omnibook XE3-GC).

Adding a
Mode "1024x768"
to the corresponding section (I deleted all the subsections that were not "Depth 16") didn't help. I had to manually add a full set of timings to the monitor description:
HorizSync 31.5-50
VertRefresh 50-70
Modeline "1024x768" 64.11 1024 1080 1184 1344 768 769 772 795 -HSync
This time it worked.

I mean... hello, TWM! Comment vas-tu?

It's time to get KDE.

Unlike some other sister distros, I couldn't find a convenient meta-package. Say, NetBSD has kde-3.5.5.tgz, but here I couldn't find a KDE3 meta-package! There is a kdevelop-3.3.5.tgz one, but you don't have something like kde-3.5.5.tgz, duh... According to A Quick Start on DragonFly, it should have been a kde.tgz, but it's not.

I eventually added (which brought the required dependencies): kdeadmin-3.5.5.tgz (it required kdebase-3.5.5.tgz and so on), and kdegraphics-3.5.5nb1.tgz (for KSnapshot :-)).

echo "startkde" > ~/.xinitrc

Oh, there is one more thing. After the successful KDE configuration, the X server aborted right after the KDE splash screen has reached the third icon:
ERROR: Owner of /tmp/.ICE-unix must be set to root
...
KSMServer: Error listening for connections: Cannot establish any listening sockets

The fix is in this FreeBSD forum thread:
# chmod 1777 /tmp/.ICE-unix
# chown root:wheel /tmp/.ICE-unix

Now KDE was successful:


Yes, there wasn't any sound, and I don't even know where to look for it, as this is my first contact with DragonFly BSD.

The fonts were ugly, without any smoothing/antialiasing. The above screenshot was therefore taken after I changed this in the KDE Control Center.

For an antique 4MB S3 Savage IX/MV video card that can get something like 80...130 FPS with Direct rendering, what I got here was 90...147 FPS without Direct rendering!

Cool.

Oh, and I had to add myself to wheel /etc/group to be able to su, and this is how I noticed that returning to X is CTRL+ALT+F9, not CTRL+ALT+F7 like the default in Linux.

DragonFly BSD is something to explore. As it's still an immature technology, it may become something worthy, or not. Matt Dillon, the DragonFly-guy, said that DragonFly is being developed in an entirely different direction from FreeBSD 5, including a new Light Weight Kernel Threads (LWKT) implementation and a lightweight ports/messaging system, with many concepts inspired by AmigaOS. With emphasis on multiprocessor systems and clustering, DragonFly BSD might not be for your desktop, although it's something that works, should you have the time to tweak it.

It might be however a reasonable choice for an experimental server, as it offers for instance all the Apache versions: apache-1.3.37, apache-2.0.59nb3, apache-2.2.3. PHP is at 4.4.4 and 5.2.0, MySQL is at 4.1.21 and 5.0.27, all as precompiled binary packages for i386!

Should you be brave and inquisitive enough, it should be usable on the desktop too: it features a reasonable deal of multimedia applications. Should you need more, DragonFly uses the NetBSD Packages Collection pkgsrc for third-party applications.

A nice bit from the DragonFly Design Goals:
    «A message-based API would allow these entities to run in userspace for debugging or even in a deployment when one absolutely cannot afford a crash. Why run msdosfs or cd9660 in the kernel and risk a crash when it would operate just as well in userland? Debugging and filesystem development are other good reasons for having a messaging API rather than a massively reentrant API.»
Not a useless idea.

It's just that the Handbook has only a few pages that make it different from the FreeBSD one. This has to change.

So far, these were my first baby steps with DragonFly BSD 1.8.1. The tagline: it can work, but don't expect it to be like Ubuntu :-)

P.S.: I just noticed a review of QEMU / VMware installations of DragonFly BSD 1.8.1: Review: DragonFlyBSD 1.8.1. Installing blackbox70-0.70.1.tgz is not a bad choice, yep. And yes, the PS/2 mouse is /dev/psm0. The bottom line: "It isn't something I would use on a regular basis but maybe the advancements made to DragonFlyBSD, if they are really good and worth porting, will make it to the other BSD operating systems and possibly Linux. If you want a BSD that is ready to go for the desktop user, check out PC-BSD instead.".

UPDATE 04/01: As a reader pointed out (thanks!), there are some packages built for 1.8.1 too. The URL for the repository from uni-rostock.de has to have "pkgsrc-current" changed to "pkgsrc-modular". There is a lot of interesting stuff there, including a kde-3.5.6.tgz metapackage! Unfortunately, when I tried it, it eventually failed with:
pkg_add: autoload of dependency 'kdewebdev-3.5.6{,nb[0-9]*}' failed.
Too bad, because... the file is there! Does this error have anything to do with a previous message saying this?
increasing RLIMIT_NOFILE to max. 3607 open files

4 (+0) comments so far      [view/add comments]       [permalink]