Monday, March 21, 2011

Configuring my new FreeBSD install

OK, so this is a continuation of my attempts to thoroughly, but simply, configure FreeBSD 8.2-RELEASE on my Dell Dimension 9200.
Last time, I had just started an upgrade of installed ports using the *portupgrade -a* command.
This went fine for a long time (at least 10 hours) but then stopped on an error similar to this one:

/usr/lib/libarchive.so: undefined reference to `lzma_stream_encoder@XZ_5.0'
/usr/lib/libarchive.so: undefined reference to `lzma_alone_decoder@XZ_5.0'
/usr/lib/libarchive.so: undefined reference to `lzma_memusage@XZ_5.0'
/usr/lib/libarchive.so: undefined reference to `lzma_stream_decoder@XZ_5.0'
/usr/lib/libarchive.so: undefined reference to `lzma_code@XZ_5.0'
/usr/lib/libarchive.so: undefined reference to `lzma_end@XZ_5.0'
/usr/lib/libarchive.so: undefined reference to `lzma_lzma_preset@XZ_5.0'
/usr/lib/libarchive.so: undefined reference to `lzma_alone_encoder@XZ_5.0'
gmake[4]: *** [gvfsd-archive] Error 1
Stop in /usr/ports/devel/gvfs.
*** Error code 1

Stop in /usr/ports/devel/gvfs.

Just to be sure, I once again ran *pkg_version -vl "<"* and was very surprised to find about 80 ports still needed to be updated.
What went wrong?
Well, luckily I found this post which suggests deinstalling xz-5.0.0 and then installing, also from /usr/ports/archivers/, lzma.
So, I did this and tried *portupgrade -a* again and this time I got a different error which mentioned a Stale Dependency and recommended running *pkgdb -F* to fix the problem.
I ran it and subsequently *portupgrade -a* ran to completion without any errors and all of the updates were installed.
I'm surprised that such a major error, although readily overcome, should occur on a new clean install.
I checked in /usr/ports/UPDATING on my other computer and found a reference to xz and lzmautils (not lzma) from late 2009 stating that the XZ Utils distribution has superseded LZMA Utils and the lzmautils port had been removed.

Now this computer has a nVidia GeForce 210 card and two monitors of different sizes (1680x1050 and 1280x1024). With the native nVidia driver, both monitors were detected by the nVidia configuration tool. However, without installing and then altering the /etc/X11/xorg.conf file, a maximum resolution of 1680x1050 was available and this was for BOTH monitors together. So, I ended up with 1050x768 on the first and 640x480 on the second.
Clearly, this is unsatisfactory.
To rectify this, I first installed the 256.53 driver from nVidia using the instructions in the Additional Information tab of the linked page.
As I already had Ubuntu running on the same machine with dual monitor operation, I tried the xorg.conf from Ubuntu in FreeBSD and it worked perfectly.
For the record, I provide this file here:
# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings: version 1.0 (buildd@palmer) Fri Apr 9 10:35:18 UTC 2010

Section "ServerLayout"
Identifier "Layout0"
Screen 0 "Screen0" 0 0
# commented out by update-manager, HAL is now used and auto-detects devices
# Keyboard settings are now read from /etc/default/console-setup
# InputDevice "Keyboard0" "CoreKeyboard"
# commented out by update-manager, HAL is now used and auto-detects devices
# Keyboard settings are now read from /etc/default/console-setup
# InputDevice "Mouse0" "CorePointer"
Option "Xinerama" "0"
EndSection

Section "Files"
EndSection

# commented out by update-manager, HAL is now used and auto-detects devices
# Keyboard settings are now read from /etc/default/console-setup
#Section "InputDevice"
# # generated from default
# Identifier "Mouse0"
# Driver "mouse"
# Option "Protocol" "auto"
# Option "Device" "/dev/psaux"
# Option "Emulate3Buttons" "no"
# Option "ZAxisMapping" "4 5"
#EndSection

# commented out by update-manager, HAL is now used and auto-detects devices
# Keyboard settings are now read from /etc/default/console-setup
#Section "InputDevice"
# # generated from default
# Identifier "Keyboard0"
# Driver "kbd"
#EndSection

Section "Monitor"
# HorizSync source: edid, VertRefresh source: edid
Identifier "Monitor0"
VendorName "Unknown"
ModelName "DELL E197FP"
HorizSync 31.0 - 80.0
VertRefresh 56.0 - 75.0
Option "DPMS"
EndSection

Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce 210"
EndSection

Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
Option "TwinView" "1"
Option "metamodes" "CRT: nvidia-auto-select +1680+0, DFP: nvidia-auto-select +0+0"
SubSection "Display"
Depth 24
EndSubSection
EndSection


It's worthwhile reading this page from the FreeBSD Handbook which deals with setting up /etc/X11/xorg.conf which is not included by default in FreeBSD.
OK, getting late here so I'll stop for now. But I still want to tell you about how I set up compiz-fusion 3D effects on the dual monitors and how I got wallpaper to span both monitors (bear in mind that they're both of different sizes) as well as some other minor hiccups I met along the way.

1 comment:

  1. Thank you for this post. With your writing and a little noodling then tweaking some /dev perms, I was able to get gvfs reinstalled and then get my CD audio back!

    NickZ - Boston

    ReplyDelete