Archive

Archive for the ‘FreeBSD’ Category

Falling off the FreeBSD bandwagon

August 25th, 2013 No comments

I’ll have to admit that during the previous week or so, I haven’t been able to exclusively use FreeBSD at home or Linux as a workstation in the office. Kayla and I have still been using Kubuntu (now with improved PulseAudio support) on the basement machine, and that’s been working quite well for both Netflix and media files stored over NFS. Even Dragon Player, the default KDE association for .avi and .mkv files, is quite reasonable for lightweight playback and has given us no issues.

Dragon Player

Here be dragons

It’s a combination of things that have contributed to my slide back to Windows/OS X. First has been time at the office. When there are several urgent projects, it’s significantly easier to use the tools and infrastructure that are already set up on a Windows partition by virtue of Group Policy or already-existing tools. Wasting several hours because you can’t access a DFS share that would take one click from Outlook on Windows is unproductive.

What’s more, my choice of Arch Linux meant that there were several “rough around the edges” spots where I was missing packages or things just weren’t as polished as something like Fedora or Ubuntu. Font smoothing, for example, wasn’t quite what I was expecting and replacing/editing complicated XML files was going to be very frustrating. Arch seems very powerful and customizable, but that’s not something I can justify when there is a corporate-provided Ubuntu image available for install at the office.

FreeBSD has been fairly standard, to say the least. It supports the usual assortment of desktop applications, but the missing 20% of things that I do under Windows start to really show after a few weeks. My large Steam library sitting on another drive becomes almost worthless, and tasks such as scanning a document are also painful – Brother, for example, does a great job of shipping OS X and Linux (.deb and .rpm-enclosed) drivers but when it comes down to just needing a PDF, it’s way easier to grab the nearest Windows laptop and get things done.

What am I going to try next? After some review, I will be installing PC-BSD 9.1 (based on FreeBSD) and seeing if there’s a more polished experience available out of the box. I’m also going to be reviewing and polishing some of my GitHub-hosted scripts for BSD compatibility.




I am currently running Ubuntu 14.04 LTS for a home server, with a mix of Windows, OS X and Linux clients for both work and personal use.
I prefer Ubuntu LTS releases without Unity - XFCE is much more my style of desktop interface.
Check out my profile for more information.
Categories: FreeBSD, Jake B Tags:

Getting FreeBSD up and running with X.org and nVidia drivers

July 27th, 2013 No comments

The Experiment has officially begun, and with that I’ve gone through the FreeBSD installation process. The actual install was fairly uneventful: apart from the fact that FreeBSD defaults to a different base filesystem and has partitioning identifiers, sysinstall did the trick without the same bootloader issues that Dave experienced.

The first major difference, coming from something like Ubuntu or Debian, is that FreeBSD uses a combination of both source packages and already-prepared binary packages. Ostensibly the binary packages are for the most popular software and source packages are provided for convenience when there is no dedicated package build/maintainer team. In practice, depending on what you need to install, there are several possible locations and methods:

  • As a package, which is the binary compiled version. Available with the pkg_add -r option that acts like apt-get install on Ubuntu. The next version of this is pkgng, but I haven’t had much luck with it so far.
  • As a port, the source version of the program with FreeBSD hints to make the software compile. There are stubs in /usr/ports for a wide variety of software, and the “make install clean” process performs what seems to be a level of dependency injection as well.
  • From source directly, where you download and compile the package directly from its creator’s website; I’m avoiding this unless absolutely necessary.

As a result, I just end up using Google to find the package and then installing using the suggested command line. Hilariously enough, when looking for “take screenshot FreeBSD”, the suggested package was called scrot. Here’s that result:

My FreeBSD/xfce4 desktop taken with 'scrot'.

In order to get the desktop working, I had to fight a bit with X.org. Reading the documentation was incredibly helpful in getting my mouse and keyboard to work – I needed to add hald and dbus to the /etc/rc.conf file:

hald_enable="YES"
dbus_enable="YES"

Once that was set up, I then embarked on the process of getting my monitor to display at native 2560×1600 resolution. First, I was stymied by the Xorg -configure process, which provided a number of created screens does not match number of detected devices error but still generated a configuration file. Copying that file into /etc/X11/xorg.conf and running startx subsequently gave a no screens detected message.

A number of suggestions online related to adding a preferred resolution as a “Modes” line to the Screen section in this file, but there was no change. What eventually worked was changing the Driver line from nv to vesa – clearly my GeForce 660 isn’t supported by the default open-source nVidia driver.

As a result, it was necessary to look at installing the closed-source binary nVidia driver. The first stumbling block in this process was during the make install clean command, where I was first told I’d have to install the FreeBSD kernel source. Using this forum article and adjusting the URL to reference 9.1-RELEASE, I successfully obtained and decompressed the code to /usr/src.

The next problem was with my choice of setup options. Initially during the make install process, I selected the default options, and was now blocked at:

===> Installing for nvidia-driver-304.60
===> nvidia-driver-304.60 depends on file: /compat/linux/etc/fedora-release - not found
===> Verifying install for /compat/linux/etc/fedora-release in /usr/ports/emulators/linux_base-f10
===> linux_base-f10-10_5 linuxulator is not (kld)loaded.
*** [install] Error code 1

Stop in /usr/ports/emulators/linux_base-f10.
*** [run-depends] Error code 1

Stop in /usr/ports/x11/nvidia-driver.
*** [install] Error code 1

Stop in /usr/ports/x11/nvidia-driver.

There didn’t seem to be a good way to get back to the options screen to deselect the Linux compatibility mode and make clean didn’t help the situation. Poking around, I was able to reselect the correct options (remove Linux, and also ensure not to select the FreeBSD AGP option) by running make config. A make install clean command after that, and I could continue to follow the rest of the instructions – creating /boot/loader.conf and adding nvidia_load="YES", editing xorg.conf to set the Driver to nvidia, and then it was time for a reboot.

As a side note, unlike other Linux distributions, the idea of installing proprietary drivers wasn’t portrayed as shameful and against Free Software ideals. The attitude and design of FreeBSD seems to be that you should be able to do what you want with it.

So after this work, what was the result when I ran startx again? Nearly flawless detection of multiple monitors, a readable desktop and non-balls graphics performance. A quick trip to sudo /usr/local/bin/nvidia-settings fixed the monitor alignment and was quite easy to use. Now to work on the rest of the desktop components to make this a more usable system, and I’ll be well on the way to future moments of rage.




I am currently running Ubuntu 14.04 LTS for a home server, with a mix of Windows, OS X and Linux clients for both work and personal use.
I prefer Ubuntu LTS releases without Unity - XFCE is much more my style of desktop interface.
Check out my profile for more information.
Categories: FreeBSD, Jake B, XFCE, Xorg/X11 Tags: