Eponymous
   



About
My Infrequently Updated Blog. The web-based journal of M. Forde, computer nerd, endurance athlete, and DeLorean owner


contact

Subscribe
Subscribe to a syndicated feed of my weblog, brought to you by the wonders of RSS.

Flavours
There's more than one way to view this weblog; try these flavours on for size.

  • index
  • circa 1993
  • Sections

  • main
  • musings
  • running
  • DeLorean
  • code
  • unix
  • album
  • TBM
  • Archives

  • 2021
  • 2020
  • 2019
  • 2018
  • 2017
  • 2016
  • 2015
  • 2014
  • 2013
  • 2012
  • 2011
  • 2010
  • 2009
  • 2008
  • 2007
  • Disclaimers, Copyrights, Privacy, Etc.

  • ToS
  • Copyrights
  • Links

  • olix0r.net
  • netmeister.org
  • Giraffes
  • Eat. Run. Sleep.
  • Lord Omlette

  •        
    18 Jun 2016

    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]