Sound support superior

Thanks to Emiel Kollof (sorry I screwed up attribution!), AC97 support has been synced up with FreeBSD, plus support for the following devices has been added by Jeroen Ruigrok:

Diamond Technology Monster (DT0398)
Intersil (Harris) HMP9701
Integrated Technology Express (ITE) ITE2226E and ITE2646E
Texas Instruments TLC320AD90
Winbond W83971D
Asahi Kasei AK4544A and AK4545
Realtek ALC850
Wolfson WM9711L, WM9712L, and WM9709
Texas Instruments’ TLV320AIC27
Conexant SmartDAA HSD11246

Make upgrade

Because of the GCC2/GCC3 work (which, incidentally, will allow other compilers like TenDRA to be used in system compilation), do a “make upgrade” after your next installworld. This will clean up now-stale compiler files, plus update files in rc.d and so on.

ssh bug fixed

Matt Dillon fixed an apparently long-term problem in OpenSSH where a server can hang because it has a lot of data to send, but no immediate resources to do it with.

Reproduce it like so:
limit filesize 64k
ssh remotebox -n cat /usr/share/dict/words | cat > junkfile

Paying off already

David Rhodus imported Hyperthreading changes from FreeBSD which allow you to automatically use Hyperthreading on supported CPUs with just the regular multiprocessor options turned on in your kernel; e.g. options SMP, options APIC_IO.

However, the DragonFly version has no idling loops in it to reduce CPU resource contention. Because of the way DragonFly schedules per-CPU/sends IPI messages, there’s no performance issue caused by multiple CPUS HLTing. Already, a benefit.

Hostname, mixer, sound

A bunch of changes came in:

hostname now takes a -r option that will set the hostname based on reverse lookup of an IP address, or -i which does the same using the computer’s primary IP. It also works on IPv4 or IPv6. This very good idea comes from Kent Ibbetson.

mixer has had FreeBSD-5 changes added in. It now can take relative volume changes, thanks to Craig Dooley.

Jeroen Ruigrok added in support for the SoundBlaster Audigy and Audigy 2, apparently sourced from “patches by Orlando Bassotto, which were taken from the ALSA Project and the SoundBlaster OSS repository”.

Booting Fun

Aaron Malone created a patch for src/sys/boot/forth/beastie.4th (now committed) that replaces the ‘beastie’ boot with a dragonfly. He’s working on a dragonfly ASCII console screen saver, too. Now we just need a graphical one too…

New-SB, clones

The USB system from FreeBSD-5 has been brought in wholesale. Matt Dillon reports his camera, hard drive, mouse, and memory key all working and un/repluggable.

Also, the network interface cloning API from FreeBSD-5 has been brought in, from work by Max Laier and David Rhodus.

Promises, promises

David Rhodus added the pst driver to the GENERIC kernel, so if you are trying to install to a machine using a Promise card as disk controller (for RAID, I assume), it oughta work.

RCNG revs up

Matt Dillon’s updated RCNG in a big way. You can now check the status of, or start, stop, etc. different system services using appropriate single commands like rcstart, rcstop, rcrestart, and so on. varsym -sa will list service status.

The old way had you looking for the appropriate file in /etc/rc.d and issing commands for it, and having to poke throught ps -ax or /var/run/ to see what’s going.

To get this running, do make upgrade_etc in /usr/src/etc, or a regular build/installworld. Also, install /usr/src/sbin/rcrun, and reboot.

lnc and vx in

Code to add the lnc and vx network drivers from FreeBSD-5 is in, put together by Joerg Sonnenberger. This is part of the PCI compat cleanup, though these just-added drivers just use newbus.

Libcaps update

Libcaps, the library for userland threading, has been updated. Work is still proceeding on fp stave/restore, and some other tasks, including Galen Sampson’s work. Matt Dillon’s commit message sums it up as neatly as possible, so I’ll just paste it:

Major update to libcaps. Implement support for virtual cpus using
rfork_thread() and implement IPIs, per-virtual-cpu globaldata areas,
and per-virtual-cpu LWKT scheduling.