FreeBSD Sammlung

Im folgenden werden zu ausgesuchten FreeBSD-Ports Lösungen für Installations- oder Anwendungsprobleme dargestellt. Außerdem finden sich Hinweise zu Ports, die entweder vom Autor geschrieben (math/saga, math/ggobi) oder fehlerbereinigt (sysutils/xosview, games/jools) wurden.

SAGA GIS 6.1.0

Mit SAGA GIS existiert eine leistungsfähige GIS-Version, die auf verschiedenen Plattformen (FreeBSD, Linux und Windows) lauffähig ist. SAGA GIS enthält nicht nur eine eigene grafische Oberfläche (GUI), sondern kann auch von der Kommandozeile (shell) aus angesprochen werden. Diese Funktionalität wird unter anderem gerne von R Usern mittels des R Package RSAGA genutzt, um rechenintensives Geo-Prozessing aus R auszulagern.

Um SAGA GIS nativ unter FreeBSD übersetzen und installieren zu können, waren nur wenige Anpassungen an den Linux-Sourcen notwendig (siehe SAGA Linux-Version 2.0.8). Diese Anpassungen wurden für mehrere SAGA GIS Versionen als offizielle Ports unter Bug 207693 (Drop LDFLAGS=opencv which causes overlinking), Bug 207565 (Version 2.2.4), Bug 205491 (Version 2.2.3), Bug 203899 (Version 2.2.2), Bug 203508 (Version 2.2.1), Bug 201329 (Version 2.2.0), Bug 198357 (Version 2.1.4), Bug 191491 (Version 2.1.2), PR 187795 (Version 2.1.1), PR 180366 (Version 2.1.0), PR 162858 (Version 2.0.8), PR 156948 (Version 2.0.7), PR 152410 (Version 2.0.6), PR 150157 (Version 2.0.5) und PR 140559 (Version 2.0.4) eingereicht. Der aktuelle Port findet sich im Portstree unter math/saga.

Ab Version 2.1.0 werden Multiprocessing, Unicode, LAS und OpenCV unterstützt. Karten (maps) können direkt als mehrseitige PDF-Datei zusammengestellt und gespeichert werden. Außerdem gibt es nun man-pages, eine Einbindung in Freedesktop-kompatible Oberflächen und die sogenannten SAGA-Tips, ein kleines Begrüßungsfenster mit interessanten und wissenswerten Kurzinformationen.

Ältere Unix-Versionen von SAGA GIS haben ein Problem mit der Lokalisation. Sie verwenden bei korrekt gesetzter nicht-englischer Lokalisation das Komma als Dezimalzeichen anstatt des Punktes. Die meisten Datenquellen definieren dagegen den Punkt als Dezimalzeichen.

Der Fehler tritt nicht auf (und einige weitere Ungereimtheiten im Zusammenhang mit Lokalisation auch nicht), wenn beim Aufruf älterer SAGA GIS Versionen die Lokalisation zurückgesetzt wird. Ich habe dafür ein kleines Script verwendet, über welches SAGA GIS aufgerufen wird:

#!/bin/sh
export LANG=C
/usr/local/bin/saga_gui &

Seit dem 16.01.2010 existiert zur Installation ein Wiki auf der SAGA-Projektseite, das ich für Anfänger bewusst einfach gehalten habe.


Quantum GIS 2.18.4

Seit Version 2.2.0 hat Wen Heping die 'maintainership' für Quantum GIS an mich abgetreten. Vielen Dank für seine langjährige Arbeit.


OpenJUMP 1.11.0

OpenJUMP ist ein Java-basiertes GIS-Werkzeug, welches den Vorzug hat, direkt aus GIS-Datenbanken wie PostGIS per SQL abgefragte GIS-Daten zu visualisieren.

Bis zur Version 1.4.0.3 waren noch einige Anpassungen notwendig, um OpenJUMP mittels OpenJDK lauffähig zu bekommen. Es wird empfohlen, die aktuelle Version 1.7.1 zu verwenden, da diese besser in das Dateisystem eingepasst wurde, zahlreiche Bugfixes enthält, PostGIS nun gut integriert ist und es auf Java-Seite einige Verbesserungen gibt, siehe Bug 193430 und PR 180093. Die aktuelle Version enthält neben einer aktualisierten Programmversion noch zahlreiche Plugins, eingebunden über die sogenannte Plus-Version von OpenJUMP.


PostgreSQL 9.5.9

- PostgreSQL mit GEOS-Einbindung

Wenn die Erweiterung PostGIS ihre GEOS-basierten Fähigkeiten voll einsetzen soll, ist es ratsam, die Datenbank PostgreSQL mit gesetzter Umgebungsvariablen LDFLAGS -lstdc++ zu bauen und zu installieren. Ein entsprechender Hinweis findet sich unter databases/postgis/pkg-install. Bei der Erstinstallation kann folgendermaßen verfahren werden (hier für die tcShell dargestellt), ansonsten bei gesetzter Umgebungsvariable einfach per portupgrade oder portmaster neu übersetzen:

setenv LDFLAGS -lstdc++

cd /usr/ports/databases/postgresql90-server
make clean && make install

unsetenv LDFLAGS

- Datentyp "hstore" aktivieren

Der Datentyp hstore befindet sich in der Sammlung databases/postgresql90-contrib, die zunächst als Port installiert werden muss. Danach muss das Modul einmalig z. B. auf folgende Art in PostgreSQL geladen und aktiviert werden:

psql -e -d MYGISDATABASE -f '/usr/local/share/postgresql/contrib/hstore.sql'

Nun kann dieser Datentyp verwendet werden.

PostGIS 2.3.3

- ESRI-Shapefile Konverter mit grafischer Oberfläche aktivieren

PostGIS, installiert durch den Port databases/postgis, installiert das Tool shp2pgsql nun auch in der Version mit grafischer Oberfläche shp2pgsql-gui, siehe PR 157605.

Der Vorteil des grafischen Loaders shp2pgsql-gui ist, das er auch innerhalb des Verwaltungstools PgAdmin3 (databases/pgadmin3) verwendet werden kann. Außerdem scheint in der Textversion für die Shell ein Fehler enthalten zu sein, der bei gleichzeitiger Anwendung der Optionen -G und -g zu einem Absturz führt. In der grafischen Version können dagegen beide Optionen im selben Konvertierungsschritt verwendet werden, ohne dass es zu einem Absturz kommt.

- ESRI-Shapefile Konverter in PgAdmin3 einbinden

Nach erfolgreicher Installation von databases/pgadmin3 befindet sich in /usr/local/share/pgadmin3/ ein Skript plugins.ini. In diesem wird definiert, auf welche Plugins PgAdmin3 zugreift. Damit PgAdmin3 den grafischen Loader shp2pgsql-gui erkennt, sollten folgende Zeilen im Konfigurationsscript enthalten sein.

Dieser Patch wurde als PR 158599 beantragt und ist ab PgAdmin3 1.14.0 enthalten:

;
; PostGIS shp2pgsql-gui (Unix):
;
Title=PostGIS Shapefile and DBF loader
Command="$$PGBINDIR/shp2pgsql-gui" -h $$HOSTNAME -p $$PORT -U $$USERNAME -d $$DATABASE
Description=Open a PostGIS ESRI Shapefile or Plain dbf loader to the current database.
KeyFile=$$PGBINDIR/shp2pgsql-gui
Platform=unix
ServerType=postgresql
Database=Yes
SetPassword=Yes

Mit Hilfe dieser Angaben kann der Loader über den Menüpunkt Plugins in PgAdmin3 aufgerufen werden. Damit ist es nun auch unter FreeBSD möglich, ESRI-Shapefiles oder auch nur deren dbf-Dateien direkt in eine PostGIS-aktivierte PostgreSQL-Datenbank einzulesen.


GDAL 2.2.2

Mit dem Update von NetCDF (science/netcdf4) auf Version 4.1.3 wird auch ein Update von HDF5 (science/hdf5-18) benötigt. Bei beiden Programmen sollte die Option SZIP aktiviert sein. Es ist ratsam, zunächst die HDF5-Version zu aktualisieren, damit NetCDF4 gebaut werden kann:

# pkg_delete -f hdf5
# cd /usr/ports/science/hdf5-18
# make clean && make install
# portupgrade -o science/netcdf4 science/netcdf

Um graphics/gdal unter FreeBSD erfolgreich übersetzen zu können, muss graphics/jasper ab der Version 1.900 mit der Option UUID gebaut sein (siehe PR 146290).


LASzip 2.1.0

LASzip ist eine Bibliothek, um ASPRS LAS formatierte LIDAR-Daten zu komprimieren. LIDAR, Abkürzung für englisch Light Detection And Ranging, auch LADAR (Laser Detection And Ranging), ist eine dem Radar sehr verwandte Methode zur optischen Abstands- und Geschwindigkeitsmessung sowie zur Fernmessung atmosphärischer Parameter. Statt Funkwellen wie beim Radar werden jedoch Laserstrahlen verwendet.

Die LASzip-Bibliothek wird als LGPL-lizensierte Stand-alone Software bereitgestellt, um anderer mit LAS Daten arbeitender Software das Lesen und Schreiben LASzip-komprimierter Daten zu ermöglichen. Z.B. können das BSD-lizensierte Programm libLAS und das LGPL-lizensierte Programm LASlib von der Verwendung von LASzip profitieren. LASzip komprimiert vollständig verlustfrei. Unhandliche LAS Dateien werden in kompakte LAZ Dateien mit nur zehn bis zwanzig Prozent der Originalgröße gewandelt. Dabei wird jedes einzelne Bit unverändert bewahrt. Auch SAGA GIS kann LIDAR-Daten (unkomprimiert als LAS oder komprimiert als LAZ) verwenden.

Der FreeBSD-Port archivers/laszip (siehe PR 163956) wurde in Vorbereitung des erwarteten Updates von devel/libLAS auf Version 1.7.0 portiert, damit SAGA GIS ab der nächsten Version mit dem neuen Kompressionsalgorithmus arbeiten kann.


GGOBI 2.1.11

GGobi ist ein OpenSource Visualisierungssystem zum Analysieren mehrdimensionaler Daten. Es bietet hoch­dynamische und interaktive Graphiken sowie Touren, aber auch bewährte Diagrammtypen wie Scatterplots, Barcharts oder Parallel-Koordinaten-Plots. Verschiedene Plots können verlinkt, mit Labeln versehen und so interaktiv durchforscht werden.

Ich habe das Programm nach FreeBSD portiert, um diese Technologie über das R Package rggobi nutzen zu können. Die notwendigen Anpassungen am SourceCode können in Bug 193616, PR 157218 und PR 143405 nachgelesen werden. Installiert werden kann es durch den Port math/ggobi.


NVidia Grafiktreiber

Wie bereits auf der Hauptseite erwähnt, existieren für FreeBSD 32-bit und 64-bit Grafiktreiber, die binär von NVidia bereitgestellt werden. Diese binären Treiber ermöglichen hardwarebeschleunigtes 3D, so dass anspruchs­vollere Modelle, aber auch viele 3D-Spiele hochwertig funktionieren.

Jeweils kurz nach Erscheinen einer neuen Treiberversion steht diese auch im Portsystem x11/nvidia-driver zur Verfügung, so dass die Installation recht einfach von statten geht. Nach der Installation des Treibers muss nvidia_load="YES" in /boot/loader.conf eingetragen werden und danach unbedingt neu gebootet werden. Ab FreeBSD 9.0 ist auch das nachträgliche Laden und Entladen des Treibers mittels kldload möglich. In früheren Versionen funktioniert es wegen der Hardwarenähe des Treibers nicht.

In bestimmten Fällen kommt es vor, dass die Installation des Treibers zwar reibungslos verläuft, der Treiber beim Starten von Xorg trotzdem nicht vorhanden ist oder nicht funktioniert. Hier sind vor allem zwei typische Fehlerursachen zu unterscheiden:

  1. Das Modul nvidia.ko wurde tatsächlich nicht geladen. Das kann mittels kldstat geprüft werden. Als Ursache kommt häufig in Betracht, dass die Version des laufenden Kernels älter ist als die Kernelsourcen. Der NVidia-Treiber greift während der Installation auf die Kernelsourcen zurück, hinterher erwartet er einen Kernel dieser Version. Abhilfe schafft hier das Neuübersetzen des Kernels. Danach sollte nach einem Neustart das Treibermodul geladen werden.
  2. Das Modul nvidia.ko ist geladen, Xorg bricht beim Hochfahren mit einer Fehlermeldung ab. Für dieses Verhalten können verschiedene Ursachen in Frage kommen. Häufig sind jedoch Unstimmigkeiten der 3D-Grafikroutinen verantwortlich. Z.B. kann durch Aktualisieren von Xorg-Treibern oder durch mehr­faches Installieren/Deinstallieren des NVidia-Treibers der Fall auftreten, das nicht mehr die von NVidia ausgetauschten GL-Libraries verwendet werden. Abhilfe schafft kann folgende Vorgehens­weise schaffen: zunächst wird der NVidia-Treiber deinstalliert; danach werden die Xorg-Ports xorg-server, libGL und libglut neu- bzw. reinstalliert; dann kann auch der NVidia-Treiber wieder installiert werden. Neustart des Rechners bei FreeBSD < 9.0 nicht vergessen!


Surround Sound 5.1

Das ASUS Mainboard M4A88TD-V EVO/USB3 (siehe Eingesetzte Hardware) enthält in der AMD Southbridge SB600 den Soundchip Realtek ALC892. Mit diesem Chip kann Surround Sound 7.1 erzeugt werden.

Die hier aufgeführten Erläuterungen gelten für FreeBSD 11.0-CURRENT. Der HDA Soundtreiber wurde von Alexander Motin Anfang 2012 vollständig überarbeitet. Prinzipiell sind die meisten Aussagen aber zumindest auf FreeBSD 9.x übertragbar.

Der Soundtreiber snd_hda aktiviert standardmäßig 2.0 Sound, also Stereo. Sollen weitere Kanäle verwendet werden, muss entsprechend konfiguriert werden. Für die Einrichtung von Surround Sound 5.1 über die analogen Buchsen des Mainboards ASUS M4A88TD-V EVO/USB3 werden vier weitere Kanäle benötigt: hinten links und rechts, vorne Mitte und der Subwoofer. Das FreeBSD Handbuch enthält Tipps zur allgemeinen Vorgehensweise bei der Einrichtung von Soundkarten. Bei meinem System mussten mehrere Aspekte berücksichtigt werden, die von der Standard­konfi­guration nicht beachtet werden.

Mittels cat /dev/sndstat kann die vom System gefundene Sound-Hardware angezeigt werden. Wenn diese Informationen für die Verfeinerung der Konfiguration nicht ausreichen, kann der Verbose-Level mittels sysctl hw.snd.verbose=[123] erhöht werden.

Die im Sytem zusätzlich vorhandene NVidia-Grafikkarte enthält ebenfalls einen Audiocontroller, um im Falle der Ausgabe von verschlüsseltem Videomaterial auch Ton durchschleifen zu können. Der NVidia-HDA-Chip gibt an den auf der Grafikkarte vorhandenen Displayport aus. Während des Bootvorgangs wird dieser Chip vor dem Realtek-Chip des Mainboards gefunden und bekommt damit auch eine niedrigere Controller-Bezeichnung (hdac0) als der Realtek-Chip (hdac1). Jeder der beiden Audio-Controller wird mit vier Devices aufgeführt: #cat /dev/sndstat
FreeBSD Audio Driver (newpcm: 64bit 2009061500/amd64)
Installed devices:
pcm0: <NVIDIA (0x0011) HDA CODEC PCM (HDMI/DP 8ch)> on hdaa0 kld snd_hda (1p:1v/0r:0v)
pcm1: <NVIDIA (0x0011) HDA CODEC PCM (HDMI/DP 8ch)> on hdaa1 kld snd_hda (1p:1v/0r:0v)
pcm2: <NVIDIA (0x0011) HDA CODEC PCM (HDMI/DP 8ch)> on hdaa2 kld snd_hda (1p:1v/0r:0v)
pcm3: <NVIDIA (0x0011) HDA CODEC PCM (HDMI/DP 8ch)> on hdaa3 kld snd_hda (1p:1v/0r:0v)
pcm4: <Realtek ALC892 HDA CODEC PCM (Rear Analog 7.1/2.0)> on hdaa4 kld snd_hda (1p:1v/1r:1v)
pcm5: <Realtek ALC892 HDA CODEC PCM (Front Analog)> on hdaa4 kld snd_hda (1p:1v/1r:1v)
pcm6: <Realtek ALC892 HDA CODEC PCM (Rear Digital)> on hdaa4 kld snd_hda (1p:1v/0r:0v)
pcm7: <Realtek ALC892 HDA CODEC PCM (Onboard Digital)> on hdaa4 kld snd_hda (1p:1v/0r:0v)

Als erstes muss festgelegt werden, welches Device die Standardausgabe übernehmen soll. Außerdem soll jetzt die Anzahl gewünschter Kanäle, die Anzahl virtueller Kanäle sowie die Vorverstärkung konfiguriert werden. Dazu werden folgende Zeilen in /etc/sysctl.conf eingetragen: hw.snd.default_unit=4
hw.snd.verbose=1
dev.pcm.4.play.vchanformat=s16le:5.1
dev.pcm.4.play.vchans=6
dev.pcm.4.eq_preamp=+5

Nach Neustart des Rechners sehen die Sounddevices jetzt so aus: #cat /dev/sndstat
FreeBSD Audio Driver (newpcm: 64bit 2009061500/amd64)
Installed devices:
pcm0: <NVIDIA (0x0011) HDA CODEC PCM (HDMI/DP 8ch)> on hdaa0 kld snd_hda (1p:1v/0r:0v)
pcm1: <NVIDIA (0x0011) HDA CODEC PCM (HDMI/DP 8ch)> on hdaa1 kld snd_hda (1p:1v/0r:0v)
pcm2: <NVIDIA (0x0011) HDA CODEC PCM (HDMI/DP 8ch)> on hdaa2 kld snd_hda (1p:1v/0r:0v)
pcm3: <NVIDIA (0x0011) HDA CODEC PCM (HDMI/DP 8ch)> on hdaa3 kld snd_hda (1p:1v/0r:0v)
pcm4: <Realtek ALC892 HDA CODEC PCM (Rear Analog 7.1/2.0)> on hdaa4 kld snd_hda (1p:6v/1r:1v) default
pcm5: <Realtek ALC892 HDA CODEC PCM (Front Analog)> on hdaa4 kld snd_hda (1p:1v/1r:1v)
pcm6: <Realtek ALC892 HDA CODEC PCM (Rear Digital)> on hdaa4 kld snd_hda (1p:1v/0r:0v)
pcm7: <Realtek ALC892 HDA CODEC PCM (Onboard Digital)> on hdaa4 kld snd_hda (1p:1v/0r:0v)

Die Kontrolle der sechs Kanäle (5+1) erfolgte mittels speaker-test, einem nützlichen Tool aus audio/alsa-utils. Gibt man dort z.B. speaker-test -Dsurround51 -c 6 -twav ein, wird nacheinander an den vorhandenen Audiokanälen passender Sound ausgegeben: speaker-test -Dsurround51 -c 6 -twav

speaker-test 1.0.23

Wiedergabe-Gerät ist surround51
Stream-Parameter sind 48000 Hz, S16_LE, 6 Kanäle
WAV-Datei(en)
Rate ist 48000 Hz (angefordert: 48000 Hz)
Puffergröße von 3 bis 10922
Periodengröße von 1 bis 5461
Verwende maximale Puffergröße 10920
Perioden = 4
gesetzt: period_size = 2730
gesetzt: buffer_size = 10920
0 - Vorne links
4 - Mitte
1 - Vorne rechts
3 - Hinten rechts
2 - Hinten links
5 - Bass
Zeit pro Periode = 8,413922

Dieser Test zeigte für mein System, daß die vorderen Lautsprecher rechts und links korrekt angesprochen wurden, die hinteren dagegen stumm blieben. Center und Subwoofer wiederum gaben Sound ab. Zusammen (getestet z.B. mit multimedia/vlc) klang der Sound aus vier von sechs Lautsprechern allerdings nicht korrekt, so als wären zusätzlich noch Kanäle vertauscht. Um herauszubekommen, ob Kanäle vertauscht sind, muss etwas tiefer in die Trickkiste gegriffen werden.

Der Rechner wird neu gestartet, die Bootoption 7 (verbose) wird gesetzt und die mit hdaa4 beginnenden Zeilen werden untersucht. Interessant in Zusammenhang mit der Reihenfolge von Kanälen ist für mein ASUS-Board vor allem folgender Ausschnitt: hdaa4: at nid 1 on hdacc4
hdaa4: Audio Function Group at nid=1: 37 subnodes 2-38
hdaa4: NumGPIO=2 NumGPO=0 NumGPI=0 GPIWake=0 GPIUnsol=1
hdaa4: GPIO0: disabled
hdaa4: GPIO1: disabled
hdaa4: Original pins configuration:
hdaa4: nid   0x    as seq device    conn  jack    loc        color   misc
hdaa4: 17 99430140 4  0  SPDIF-out  Fixed ATAPI   Onboard    Unknown 1
hdaa4: 18 411111f0 15 0  Speaker    None  1/8     Rear       Black   1
hdaa4: 20 01014010 1  0  Line-out   Jack  1/8     Rear       Green   0
hdaa4: 21 01011012 1  2  Line-out   Jack  1/8     Rear       Black   0
hdaa4: 22 01016011 1  1  Line-out   Jack  1/8     Rear       Orange  0
hdaa4: 23 01012014 1  4  Line-out   Jack  1/8     Rear       Grey    0
hdaa4: 24 01a19850 5  0  Mic        Jack  1/8     Rear       Pink    8
hdaa4: 25 02a19c60 6  0  Mic        Jack  1/8     Front      Pink    12
hdaa4: 26 0181305f 5  15 Line-in    Jack  1/8     Rear       Blue    0
hdaa4: 27 02214c20 2  0  Headphones Jack  1/8     Front      Green   12
hdaa4: 28 411111f0 15 0  Speaker    None  1/8     Rear       Black   1
hdaa4: 29 4005e601 0  1  Line-out   None  Optical 0x00       White   6
hdaa4: 30 01456130 3  0  SPDIF-out  Jack  Optical Rear       Orange  1
hdaa4: 31 411111f0 15 0  Speaker    None  1/8     Rear       Black   1
hdaa4: Patching widget caps nid=29 0x00400400 -> 0x00700400
hdaa4: Patching pin config nid=21 0x01011012 -> 0x01012014
hdaa4: Patching pin config nid=23 0x01012014 -> 0x01011012
hdaa4: Patched pins configuration:
hdaa4: nid   0x    as seq device    conn  jack    loc        color   misc
hdaa4: 17 99430140 4  0  SPDIF-out  Fixed ATAPI   Onboard    Unknown 1
hdaa4: 18 411111f0 15 0  Speaker    None  1/8     Rear       Black   1 DISA
hdaa4: 20 01014010 1  0  Line-out   Jack  1/8     Rear       Green   0
hdaa4: 21 01012014 1  4  Line-out   Jack  1/8     Rear       Grey    0
hdaa4: 22 01016011 1  1  Line-out   Jack  1/8     Rear       Orange  0
hdaa4: 23 01011012 1  2  Line-out   Jack  1/8     Rear       Black   0
hdaa4: 24 01a19850 5  0  Mic        Jack  1/8     Rear       Pink    8
hdaa4: 25 02a19c60 6  0  Mic        Jack  1/8     Front      Pink    12
hdaa4: 26 0181305f 5  15 Line-in    Jack  1/8     Rear       Blue    0
hdaa4: 27 02214c20 2  0  Headphones Jack  1/8     Front      Green   12
hdaa4: 28 411111f0 15 0  Speaker    None  1/8     Rear       Black   1 DISA
hdaa4: 30 01456130 3  0  SPDIF-out  Jack  Optical Rear       Orange  1
hdaa4: 31 411111f0 15 0  Speaker    None  1/8     Rear       Black   1 DISA
hdaa4: 6 associations found:
hdaa4: Association 0 (1) out:
hdaa4: Pin nid=20 seq=0
hdaa4: Pin nid=22 seq=1
hdaa4: Pin nid=23 seq=2
hdaa4: Pin nid=21 seq=4

Von diesen Meldungen sind in unserem Zusammenhang die Zeilen wichtig, in denen nid 20 bis nid 23 vorkommt. Diese entsprechen den Buchsen für externe Lautsprecher mit den Farben Green, black, orange und grey. Auf den ersten Blick ist fast alles in Ordnung. Es irritiert nur, dass die seq Nummerierung der nids 20 bis 23 in der Reihenfolge 0,2,1,4 verläuft. Und tatsächlich liegt hier auch der Fehler. Die Beschaltung der Farben black und grey ist vertauscht.

Ein Tausch der Kanäle 21 und 23 kann über folgende sysctl-Sequenzen erreicht werden, die beim Systemstart in /boot/device.hints übergeben werden: # Anschluesse 'black' und 'gray' tauschen
hint.hdac.1.cad0.nid20.config="as=1 seq=0"
hint.hdac.1.cad0.nid21.config="as=1 seq=4 device=Line-Out color=Grey"
hint.hdac.1.cad0.nid22.config="as=1 seq=1"
hint.hdac.1.cad0.nid23.config="as=1 seq=2 device=Line-Out color=Black"
hint.pcm.4.eq=1
hint.pcm.4.vpc=1

Nach dem nächsten Rechnerstart funktionieren alle 5+1 Kanäle wie erwartet.


Firefox Plugins

- Flashplayer 11.2

Nach der erfolgreichen Installation des Ports (www/linux-f10-flashplugin11) und des Wrappers (www/nspluginwrapper) muss dem Browser noch beigebracht werden, wie er auf das Plugin zugreifen kann. Dafür wird als normaler User (also nicht superuser) noch folgender Link erzeugt:

> cd /usr/local/lib/browser_plugins
> nspluginwrapper -i /usr/local/lib/npapi/symlinks/linux-firefox/libflashplayer.so

Im User-Verzeichnis für Mozilla-Plugins habe ich dann noch folgenden Link gesetzt: > ln -s /usr/local/lib/browser_plugins/npwrapper.libflashplayer.so ~/.mozilla/plugins/npwrapper.libflashplayer.so

Weiterführende Informationen sind im Web zu finden, z.B. unter Aragorn's Blog


JDK18 unter 11.0-CURRENT

Eine Zeit lang konnte das Java Delevopment Kit von Sun nicht mehr unter 11.0-CURRENT übersetzt werden. Der Grund dafür ist ein geändertes Signal-Handling des Systems ab Revision r199827, was unter ports/141105 auch beschrieben wird. Für von diesem Verhalten betroffene FreeBSD-Revisionen kann Java dank des von Dima Panov angebotenes Patches funktionsfähig gemacht werden. Folgende Änderungen genügen, um das JDK erfolgreich bauen und installieren zu können.

Das Makefile (java/jdk18/Makefile) sollte ohne Leerzeile direkt im Anschluß an Zeile 286 die Zeilen 287 bis 290 neu eingefügt bekommen: .if (${OSVERSION} > 900002)
@cd ${WRKDIR} && \
${PATCH} -p2 < ${FILESDIR}/extrapatch-j2se-make-common-Defs-bsd.gmk
.endif

Unter java/jdk18/files sollte die Patch-Datei mit dem Namen extrapatch-j2se-make-common-Defs-bsd.gmk neu hinzugefügt werden: $FreeBSD: ports/java/jdk18/files/extrapatch-j2se-make-common-Defs-bsd.gmk,v 1.0 1970/01/01 10:00:00 fluffy Exp $

--- ../../j2se/make/common/Defs-bsd.gmk.orig Wed Dec 02 17:58:29 2009
+++ ../../j2se/make/common/Defs-bsd.gmk Wed Dec 02 18:50:16 2009
@@ -311,7 +311,7 @@
 override HAVE_FILIOH = false
 override HAVE_GETHRTIME = false
 override HAVE_GETHRVTIME = false
-ifeq ($(OS_VENDOR),NetBSD)
+ifeq ($(OS_VENDOR),FreeBSD)
 override HAVE_SIGIGNORE = true
 endif
 ifeq ($(OS_VENDOR),Apple)


Logitech QuickCam Pro 9000

Seit dem 17.01.2010 sind angepasste Ports vorhanden, mit denen eine Vielzahl moderner WebCams den aktuellen USB-Stack von FreeBSD verwenden kann. Im folgenden wir anhand der Quickcam Pro 9000 von Logitech gezeigt, wie die Konfiguration aussehen kann. Die Website des Autors Hans-Peter Selasky gibt weitere Hinweise.

Zunächst müssen einige Ports installiert werden, damit der Kontakt zwischen USB-Stack und Videotreiber hergestellt werden kann. Als Programm zur Bilddarstellung habe ich pwcview verwendet.

  • multimedia/v4l_compat
  • multimedia/cuse4bsd-kmod
  • multimedia/libv4l
  • multimedia/webcamd
  • multimedia/pwcview

Damit die installierten Ports verwendet werden, müssen in drei Dateien noch Zeilen hinzugefügt werden.

Bereits während des Boot-Vorganges werden der Video4BSD- und der USB-Soundtreiber (für das Mikrofon der WebCam) geladen: /boot/loader.conf
cuse4bsd_load="YES"
snd_uaudio_load="YES"

In der rc.conf wird die Erlaubnis erteilt, dass der WebCam-Daemon gestartet werden darf: /etc/rc.conf
webcamd_enable="YES"

Damit pwcview mit normalen User-Rechten auf die WebCam-Schnittstelle zugreifen darf, müssen dieser noch die passenden Rechte erteilt werden: /etc/devfs.conf
perm video0 0666

Danach sollte ein Reboot durchgeführt werden, damit das System alle Änderungen ausführen kann. Als normaler User kann nun mittels pwcview -s vga die WebCam gestartet und dargestellt werden.


WindowMaker Network Devices

WMND (WindowMaker Network Devices) ist ein hochgradig anpassbares Netzwerk-Monitoring DockApp für WindowMaker und kompatible Oberflächen.

Seitdem 2009 größere Änderungen im amd64 Zweig von FreeBSD CURRENT stattfanden, war dieses nützliche Tool nicht mehr lauffähig. Mit PR 152580 wurde ein im Internet bereits länger vorliegender Patch in das Ports System integriert, um WMND wieder unter FreeBSD (amd64) einsetzen zu können.


Xorg 7.7

- Mauserkennung und Deutsche Tastatur

Um in Xorg ab 7.4 bei aktiviertem HAL-Treiber weiterhin die Maus und eine deutsch belegte Tastatur verwenden zu können, mussten folgende Dateien erzeugt werden. In der Datei 101-keyboard-input.fdi ist insbesondere der Eintrag mit nodeadkeys wichtig, damit Tasten wie Tilde und Backslash funktionieren. Der Tip stammt aus einschlägigen Foren im Internet.

# cd /usr/local/etc/hal/fdi/policy/

# ls
100-x11-input.fdi 101-keyboard-input.fdi 102-mouse-input.fdi

# cat 100-x11-input.fdi
<?xml version="1.0" encoding="ISO-8859-1"?>
<deviceinfo version="0.2">
<device>
<match key="info.capabilities" contains="input.keyboard">
<merge key="input.x11_driver" type="string">kbd</merge>
</match>
<match key="info.capabilities" contains="input.mouse">
<merge key="input.x11_driver" type="string">mouse</merge>
</match>
</device>
</deviceinfo>

# cat 101-keyboard-input.fdi
<?xml version="1.0" encoding="UTF-8"?>
<deviceinfo version="0.2">
<device>
<match key="info.capabilities" contains="input.keyboard">
<merge key="input.x11_driver" type="string">kbd</merge>
<merge key="input.xkb.Model" type="string">pc105</merge>
<merge key="input.xkb.Layout" type="string">de</merge>
<merge key="input.xkb.Rules" type="string">xorg</merge>
<merge key="input.xkb.Variant" type="string">nodeadkeys</merge>
<merge key="input.xkb.Options" type="string">grp:caps_toggle</merge>
</match>
</device>
</deviceinfo>

# cat 102-mouse-input.fdi
<?xml version="1.0" encoding="utf-8"?>
<deviceinfo version="0.2">
<device>
<match key="info.capabilities" contains="input.mouse">
<merge key="input.x11_options.Protocol" type="string">auto</merge>
<merge key="input.x11_options.Device" type="string">/dev/sysmouse</merge>
<merge key="input.x11_options.ZAxisMapping" type="string">4 5</merge>
</match>
</device>
</deviceinfo>