FreeBSD Unix on Dell Precision M4800
I installed FreeBSD 10.3 on the laptop I recently acquired and
almost eveything worked out of the box. The gigabit ethernet and
wi-fi coards worked fine and by setting the BIOS to discrete graphics
only, the nVidia Quadro was recognized.
I installed the binary driver from nVidia, because they support FreeBSD
because they're awesome like that. The nvidia-xconfig(1) program was
useful to streamline the process of getting X.org to use the Quadro.
There were a few things that did need some tewaking though. First
there's the sound card. Because the quadro supports HDMI (in addition to
VGA and DisplayPort), it includes an HDA-compliant sound card. This card
is recognized before the primary HDA-compliant sound card in the
machine, the one that's actually connected to the speakers.
I did some research and there were some suggestions about using
sysctl(8) to control soundcard GPIO pins to connect the nVidia sound
device to the speackers but what ultimately worked was using sysctl(8)
to change the default primary sound device to the dedicated card. There
were a few ways to make this happen but the one I found that actually
worked was to place sysctl(8) command lines in /etc/rc.local.
First I found the device I wanted as the default:
mforde@gaz:~> cat /dev/sndstat
Installed devices:
pcm0: (play) default
pcm1: (play)
pcm2: (play)
pcm3: (play)
Device pcm2 was the one I wanted so I added the following lines to
/etc/rc.local
sysctl hw.snd.default_unit=2
sysctl hw.snd.default_auto=2
Now when boot completes pcm2 is set to my default and sound "just
works" and sndstat shows pcm2 as the default.
I found ACPI support has some weirdness as ACPI support often does. What
I found was that Suspend works from console, but resume doesn't...
HOWEVER After I start X ACPI suspend
and resume work just
fine. Normally I prefer to boot into a console and only start X if I
really need it, but because I want suspend and resume to work "by
default" I've enabled X to start at boot by allowing the xdm console in
/etc/ttys.
But this had one last issue. See, when manually starting X, I added the
-dpi 143 option to get graphics and text to be appropriately sized for
my screen. XDM needed to know about this.
This probably wasn't the best place to do it, but I edited
/usr/local/lib/X11/xdm/XServers and modified the call to X(7) to add the
-dpi 143 option. Now when Xdm loads at start up, the DPI is set
correctly.
The function keys for adjusting the screen brightness don't work;
however, xbacklight(1) works just fine. Similarly the volume keys don't
work but I can adjust the volume quite easily with aumix(1).
I've submitted my dmesg output to
NYCBUG's
dmesgd repository.
I suppose I've posted this for two reasons. The first is so I have a
record of how I eventually got these little things working in case I
have to do it again. The second is in case anyone has similar issues
with their hardware; if they happen to stumble upon this, it might give
them some hints.
[/unix]
[permanent link]