FreeBSD 12 Desktop: A Journey

jardows

2[H]4U
Joined
Jun 10, 2015
Messages
2,313
With the FreeBSD 12.0 release coming soon, I've decided to give it a serious go as a desktop OS. There are two major things with this release that has me wanting to try this: Improved graphics drivers to support recent AMD and Intel video chips, and native SMB v2 and v3 support.

I just purchased a surplus Dell Precision M4800 with an i7-4610 CPU and a FirePro M5100 GPU. This will only have FreeBSD installed. I will also work with installing on my desktop system, which is a Xeon E3-1230 v2 with an AMD Radeon R9 285 GPU. I will install a separate hard drive on that system and dual boot through BIOS boot options.

Challenges to overcome for me to consider this a successful and usable project:
1. Properly working video and network drivers - might be the biggest challenge.
2. Ability to smoothly edit video files - this will be dependent on hardware support and the quality of the programs available on FreeBSD. I plan on initially trying Kdenlive for this.
3. Run Microsoft Office. There is no way to actually run modern Office on FreeBSD, so I will have to a VM (either the native bhyve or virtual box) or setup Remote Apps on a Windows server and access through xrdp.
4. Able to play some quality, though probably light games. There are several natively ported games, and FreeBSD works with a Linux compatibility layer that can help with others, and there are reports of Steam games working decently under Wine.

There are other things that I will need to do with my computers, but I have done them in the past with previous FreeBSD versions on test machines or in VM's, so I know they will work. (Audacity, Handbrake, VLC, etc.)

My purpose for this thread will be to document the process for anyone else who wants to give FreeBSD a try, as well as look for input when I get stuck.

I'm going to have fun, and I hope anyone reading this enjoys!
 
So the first thing I have to do is get the installation files and install! The latest release is 12.0-Beta3. The first release candidate is scheduled to be out this weekend, but I don't want to wait. This will also make some interesting additions to the journey, as I will be upgrading from beta to RC to eventual release. I downloaded the memstick image for AMD64, and used Rufus to create the installer. For what I want, I had to make sure I chose the GPT option in Rufus before selecting the installer image. I will be working first on the Dell laptop.

I first am setting the BIOS options to use UEFI boot, but disable secure boot. Secure Boot can work with FreeBSD, but it is something I don't want to mess with yet until I know I can use it as a "daily driver" on the system. I am also disabling the "switchable graphics" option, as I do not believe that is properly supported by FreeBSD radeon drivers.

Installation is fairly straightforward, and I follow the FreeBSD handbook instructions with the following particularities:
On the installation options, I enable the system source tree, in case I need to recompile the kernel for drivers.
I make sure to use GPT partitioning on the hard drive. Not sure if there is any particular advantage over MBR for this system, but I'm going for it anyway.
I enable powerd to adjust the CPU frequency dynamically
I am enabling all the system hardening options
When setting up my user account, I make sure to add the account to the "wheel" group so I can easily enter a root shell

Ok, now that I've run the installer, I'm having a little issue, which may be a blessing in disguise. For some reason, this install does not want to work in UEFI mode. Full "fix" will involve using legacy BIOS boot on the system, and partitioning the hard drive using MBR. I have actually done some testing with 12.0 BETA1 and BETA2 on this computer, and did not have this problem - UEFI boot worked fine. I say this may be a blessing in disguise, as the documentation on the newer AMD drivers advise it may have problems with UEFI mode (I had hoped that the 12.0 release would fix that). Oh well, the system is installed, now time to check the hardware drivers, install X and other useful programs. That's going to have to wait until tomorrow though.
 
Today's tasks will start out with hardware drivers. The installer did not automatically load the Wi-Fi driver or the AMD video drivers. I run the command

pciconf -lv | more

To see what hardware was detected by the system. For the Wi-Fi card, I see a Broadcom BCM4352 chip. For the GPU, it registers as 'Venus XT [Radeon HD 8870M / R9 M270X/M370X]'

The Wi-Fi card should be supported by the bhnd driver, so I add to the /boot/loader.conf

bhnd_load="YES"

This tells the system to load the driver on boot. To load the driver immediately, I run as root kldload bhnd
To check if the driver is loaded, I can run
sysctl net.wlan.devices

But this isn't showing anything. So, it is possible this card is not properly supported, though the author of bhnd lists it on his webpage. It could also be the particular Dell implementation not working.
Something else I noticed, on that site, he lists the BCMA backplane for this particular chip, so maybe if I kldload bcma this will work?

Nope, nothing. Ok, one more thing to try, and that is compiling a custom kernel with bhnd and bcma built in.
Thankfully, this doesn't take much time, as I stripped out the drivers I know I don't need, but unfortunately, this doesn't change the situation.
This isn't too big of a setback, as I have other wi-fi cards at home that I know will work, but it is disappointing. Oh well, on to the video drivers!

For the FirePro M5100, it was suggest at one point to try the built-in 'radeonkms' driver, so I loaded it using kldload radeonkms and it seems to work. Setting it up to load at boot time by adding kldlist="radeonkms" to the /etc/rc.conf works too.
Works, as in it doesn't bomb out with errors, and the screen changes to a higher resolution. This was much simpler than I thought, but I still need to see if the driver actually works.
Reading through the boot log messages using dmesg | more, I found a message that the driver code is old, and recommended to install the package drm-legacy-kmod.
This seems to work good, and the only error I'm getting is "Cannot find a backlight controller." I'll revisit that one later.

Now that the video driver seems to be working, I'm going to install X. I would normally do this from packages, but previously when, out of curiosity I did an installation from ports, I noticed that VAAPI and VDPAU were not enabled by default in the mesa-dri package. Since I want to use the video hardware to its fullest, I will be installing X from ports so I can add in the video acceleration, which means compiling it and all the dependent programs. This is going to take some time, but I have the time to wait!
 
So, X is finished, and seems to be working fine. I was able to install glmark2, and got an overall score of 266, which seems low, but when compared to some other scores I've found, is about right where the M5100 would land, so I'm considering this a success! I'm not sure if I want to install a window manager or desktop environment yet, since I am compiling everything from ports, and even a smaller one like XFCE will take a while. I'll probably just install most of my programs first.
 
Good morning all! I started compiling firefox before leaving for work, and it's done, and I am typing out this message in firefox on my FreeBSD installation! I tested out a youtube video, and sound is working too, so we are in business!

Today, I'll be installing and testing some apps more than doing any configuration. If I have time, there are a couple of things I will be investigating:
1. "Prettier" fonts (should be straightforward, there is a chapter in the FreeBSD handbook about doing this)
2. Sleep and resume, especially when closing the laptop lid (I recall seeing some tutorials on the web that address this)
3. The big one - a bhyve or virtualbox installation of Windows.
 
So this is what I got done yesterday:
Installed a bunch of apps from ports. Some of the dependencies of the programs would fail to build, but I would install them using pkg, and then the rest of the program would finish installing.
The big one, is I decided to go ahead and install KDE5. Other than taking a long time for compiling, the installation went smoothly.
I tried to install some fonts, but X didn't like the one line xorg.conf file I made, I'll look into that later.

Setting up sleep on closing the lid was much easier than I had anticipated.
as root I run- sysctl hw.acpi.lid_switch_state=s3
to make persistent upon reboot, I simply add to /etc/sysctl.conf: hw.acpi.lid_switch_state=s3
The only problem right now is that when waking up from S3, the network does not want to reconnect. I could look into this further, or I may just do S1 state.

I decided to try VirtualBox instead of bhyve for the laptop, mainly because the setup and use appears to be simpler. I just follow the FreeBSD handbook instructions for installation and configuration.
Only problem I'm having now is on actually installing Windows 10 - the screen seems to get stuck at Getting files ready for installation (3%). This may be more a VB problem than a FreeBSD issue, but I will have to work on it some more. That's going to be my project for today.
 
Back at it a bit today. After a couple of ailed attempts using virtualbox, I decided to give the FreeBSD native bhyve a try. I was having problems getting it to recognize my Windows installer iso, but I re-downloaded and used the 64 bit version, and now all is peachy! I followed the guide on this page, installed Windows 10, and even got Office installed.

Over the weekend, 12.0-BETA4 was released, and I updated it using the instructions in the handbook, and that went well without any trouble as well. A few finishing configurations, and I should be good.
 
Ok, just for fun, here is a screenshot of the KDE5 desktop, with VLC, Audacity, Firefox, and the RDP into my VM running MS Word. I'm in business!

BSD12_KDE5_Laptop.png
 
I'm tinkering a little more today with the laptop. KDE was acting weird when I started the system up - firefox loaded, but would not display on the screen, and other applications followed suite. Instead of messing around with it (a simple exit and restart may have worked) I decided to install xfce, which I generally prefer anyway (not really sure why I decided to install KDE in the first place?).

Anyway, xfce installed and loads fine, so I'm going to work on getting some games running. Some guys in the office are playing Runescape, which I haven't touched for a while, but since I'll have some buddies to play with, am starting back up again. Runescape has several different clients - Java based browser, standalone Java, and their "NXT" client. There is a community made "RSU" (RuneScape Unix) client, but it is written to work with Linux systems. It could work with BSD, so I'll look into that. For now, though, I thought this would be a good chance to try out Wine and run the Windows client.

There is a port, playonbsd, which is made by the playonlinux people, to use Wine in installing and running windows programs. While this laptop doesn't have that great of video processing power to run anything too fancy, it will be a great opportunity to learn the process for when I start with my desktop computer.

Unfortunately, it isn't working. So much for the easy way. I tried the java client, and it does nothing when I run it. I tried installing the NXT client, and it wanted to install DX 9, and crashed. Then I pre-installed DX9 from the playonbsd launcher, now it is saying that the client is not supported on this version of windows. :( I'm going to check with some people over on the Runescape forums to see what they have done to get it working, as I have never gotten anything to work with Wine before, but so many people report it working, I must be doing something wrong.
 
I'm tinkering a little more today with the laptop. KDE was acting weird when I started the system up - firefox loaded, but would not display on the screen, and other applications followed suite. Instead of messing around with it (a simple exit and restart may have worked) I decided to install xfce, which I generally prefer anyway (not really sure why I decided to install KDE in the first place?).

Anyway, xfce installed and loads fine, so I'm going to work on getting some games running. Some guys in the office are playing Runescape, which I haven't touched for a while, but since I'll have some buddies to play with, am starting back up again. Runescape has several different clients - Java based browser, standalone Java, and their "NXT" client. There is a community made "RSU" (RuneScape Unix) client, but it is written to work with Linux systems. It could work with BSD, so I'll look into that. For now, though, I thought this would be a good chance to try out Wine and run the Windows client.

There is a port, playonbsd, which is made by the playonlinux people, to use Wine in installing and running windows programs. While this laptop doesn't have that great of video processing power to run anything too fancy, it will be a great opportunity to learn the process for when I start with my desktop computer.

Unfortunately, it isn't working. So much for the easy way. I tried the java client, and it does nothing when I run it. I tried installing the NXT client, and it wanted to install DX 9, and crashed. Then I pre-installed DX9 from the playonbsd launcher, now it is saying that the client is not supported on this version of windows. :( I'm going to check with some people over on the Runescape forums to see what they have done to get it working, as I have never gotten anything to work with Wine before, but so many people report it working, I must be doing something wrong.
If people think linux is hard, BSD is a step up in the demands. You probably have to configure something manually to get the stuff working.

As a sidenote, I just bought a HP probook G2 for 280 eur to my aunt to be used as a Facebook / Facebook games laptop. It has an i5, Radeon dedicated GPU, 16gb of ram and Win10 pro installed and after some tweaking I got it to recover in 3 seconds from hibernation and firefox to open in 2 seconds. It has a relatively slow Seagate SSHD. I set up a standard user account for her and set the sandbox mode to Windows defender, it will be a nice experiment to see how many weeks she'll manage to use it without calling me due to an infection. She's 70 years old btw :)

She took her two previous cheapo laptops to the service and paid over 300 eur for them to upgrade them to Win10 and basically report the machines are junk and cannot be helped. So sad.
 
Last edited:
If people think linux is hard, BSD is a step up in the demands. You probably have to configure something manually to get the stuff working.

As a sidenote, I just bought a HP probook G2 for 280 eur to my aunt to be used as a Facebook / Facebook games laptop. It has an i5, Radeon dedicated GPU, 16gb of ram and Win10 pro installed and after some tweaking I got it to recover in 3 seconds from hibernation and firefox to open in 2 seconds. It has a relatively slow Seagate SSHD. I set up a standard user account for her and set the sandbox mode to Windows defender, it will be a nice experiment to see how many weeks she'll manage to use it without calling me due to an infection. She's 70 years old btw :)
It could be a lot easier, if I 1.) was using pkg to install everything instead of compiling from ports, 2.) used hardware known to work (btw, the Ubuntu 17.10 diagnostics boot USB at work doesn't recognize the wi-fi card either!) and 3.) waited for 12.0-RELEASE instead of messing around with the beta's!

My experience has been that, once it's set up, FreeBSD is very stable and usable. The developers are mainly focused on the server, networking, and storage aspects, and it really shines in those functions. Desktop functionality is much less a focus, but it still works. Even though the configuration is mostly done by editing config files, the documentation is usually pretty good and thorough. I'd feel confident and comfortable with the system (based on how it works, not just my familiarity) in an office setting, though I don't know if I'd recommend it generally for home computing.

She took her two previous cheapo laptops to the service and paid over 300 eur for them to upgrade them to Win10 and basically report the machines are junk and cannot be helped. So sad.
I gotta figure out how to convince people to pay me that kind of money to service their systems! Only difference is, I'd actually get it to work if I charged that much!
 
It could be a lot easier, if I 1.) was using pkg to install everything instead of compiling from ports, 2.) used hardware known to work (btw, the Ubuntu 17.10 diagnostics boot USB at work doesn't recognize the wi-fi card either!) and 3.) waited for 12.0-RELEASE instead of messing around with the beta's!

My experience has been that, once it's set up, FreeBSD is very stable and usable. The developers are mainly focused on the server, networking, and storage aspects, and it really shines in those functions. Desktop functionality is much less a focus, but it still works. Even though the configuration is mostly done by editing config files, the documentation is usually pretty good and thorough. I'd feel confident and comfortable with the system (based on how it works, not just my familiarity) in an office setting, though I don't know if I'd recommend it generally for home computing.


I gotta figure out how to convince people to pay me that kind of money to service their systems! Only difference is, I'd actually get it to work if I charged that much!
Yes they key words were 'once it's set up' :D
 
The pain you're going though reminds me of early 2000s linux. Good on you for sticking with it. I like FreeBSD as a server OS for sure. Desktop.. I'm just too damn busy.
 
The pain you're going though reminds me of early 2000s linux. Good on you for sticking with it. I like FreeBSD as a server OS for sure. Desktop.. I'm just too damn busy.
Remember, I'm installing on Beta, not release. I expected some things to not work out of the box, and the only real issues I have had have been due to either incompatible hardware, or me choosing the harder way. Using a release version, on supported it is fairly simple. Run the installer, boot into the system, switch to root, run "pkg install xorg" and "pkg install kde" and if you want a graphical login screen, "pkg install slim". Then add a couple lines to the startup script, and you have a fully functional desktop computer system. Install drivers from Nvidia (or from FreeBSD if using newer Intel or AMD graphics) and one more edit line to the system startup file to use the drivers, and you have 3D acceleration.

Sure, FreeBSD doesn't do everything for you like Windows or Ubuntu, but it is easier (or at least no harder than) Gentoo or Arch, and certainly easier than Hackintosh!
Plus, my issues with Wine aren't limited to FreeBSD implementation - I have never successfully ran any program that I want to run using Wine, be it on Linux or BSD.
 
Remember, I'm installing on Beta, not release. I expected some things to not work out of the box, and the only real issues I have had have been due to either incompatible hardware, or me choosing the harder way. Using a release version, on supported it is fairly simple. Run the installer, boot into the system, switch to root, run "pkg install xorg" and "pkg install kde" and if you want a graphical login screen, "pkg install slim". Then add a couple lines to the startup script, and you have a fully functional desktop computer system. Install drivers from Nvidia (or from FreeBSD if using newer Intel or AMD graphics) and one more edit line to the system startup file to use the drivers, and you have 3D acceleration.

Sure, FreeBSD doesn't do everything for you like Windows or Ubuntu, but it is easier (or at least no harder than) Gentoo or Arch, and certainly easier than Hackintosh!
Plus, my issues with Wine aren't limited to FreeBSD implementation - I have never successfully ran any program that I want to run using Wine, be it on Linux or BSD.
I have successfully run many programs and games using Wine. Some required some extras from winetricks and to some I used PlayOnLinux.
 
I have successfully run many programs and games using Wine. Some required some extras from winetricks and to some I used PlayOnLinux.
Yeah, I'm going to read through the Linux gaming thread - most of it should be applicable to FreeBSD, as it will mainly be Wine configuration, and most Linux native stuff works fine with the compatibility layer. Shoot, I couldn't even get WordPad from WindowsXP to work properly in Wine, so there certainly is some configuring I'm not doing right.
 
Yeah, I'm going to read through the Linux gaming thread - most of it should be applicable to FreeBSD, as it will mainly be Wine configuration, and most Linux native stuff works fine with the compatibility layer. Shoot, I couldn't even get WordPad from WindowsXP to work properly in Wine, so there certainly is some configuring I'm not doing right.
One thing to check first is to use a 32-bit wine prefix. Many applications won't work with the default 64-bit one. I was banging my head to the wall with this the first time I tried wine. The 32-bit prefix will also install the 32-bit subsystem on your computer which current vanilla 64-bit distros won't have preinstalled.
 
One thing to check first is to use a 32-bit wine prefix. Many applications won't work with the default 64-bit one. I was banging my head to the wall with this the first time I tried wine. The 32-bit prefix will also install the 32-bit subsystem on your computer which current vanilla 64-bit distros won't have preinstalled.
32 bit Wine is what is generally recommended in the FreeBSD community posts I've read.

I was just browsing through the FreeBSD forums, and came across a thread indicating that the Wine port build on the 12.0-Beta versions is broken. Should all be fixed up once 12.0-RELEASE is out, but there are some work-arounds for now. I Installed RC2 on a spare hard drive for my home desktop computer this weekend, but haven't had time to do much more than a basic install. Wine will be more important here than on the laptop, and I will work some more on that when I have time.
 
If people think linux is hard, BSD is a step up in the demands. You probably have to configure something manually to get the stuff working.

As a sidenote, I just bought a HP probook G2 for 280 eur to my aunt to be used as a Facebook / Facebook games laptop. It has an i5, Radeon dedicated GPU, 16gb of ram and Win10 pro installed and after some tweaking I got it to recover in 3 seconds from hibernation and firefox to open in 2 seconds. It has a relatively slow Seagate SSHD. I set up a standard user account for her and set the sandbox mode to Windows defender, it will be a nice experiment to see how many weeks she'll manage to use it without calling me due to an infection. She's 70 years old btw :)

She took her two previous cheapo laptops to the service and paid over 300 eur for them to upgrade them to Win10 and basically report the machines are junk and cannot be helped. So sad.

No, what is sad is she still had to pay the money even though they did not do the work. :( I really hate that.
 
No, what is sad is she still had to pay the money even though they did not do the work. :( I really hate that.

Jobs take time, time that could have been used on more productive work. I'd never, ever deliberately rip a client off. But in the very rare instance that hardware has gone way past it's expiry date and the client doesn't want to upgrade, I have to at least charge a diagnosis fee - Which is minimal in the grand scheme of things and far lower than the normal hourly rate.

However, there's too many tech's willing to just write off perfectly good hardware because it's not the latest thing out and there's so many techs out there that simply don't have a clue, make things worse and charge top dollar for the service! If I muck up, there's no charge. However that's pretty damn rare.
 
Jobs take time, time that could have been used on more productive work. I'd never, ever deliberately rip a client off. But in the very rare instance that hardware has gone way past it's expiry date and the client doesn't want to upgrade, I have to at least charge a diagnosis fee - Which is minimal in the grand scheme of things and far lower than the normal hourly rate.

However, there's too many tech's willing to just write off perfectly good hardware because it's not the latest thing out and there's so many techs out there that simply don't have a clue, make things worse and charge top dollar for the service! If I muck up, there's no charge. However that's pretty damn rare.

My aunt got ripped off by a tech, they charged her around 400 euros total for 2-3 visits of 'cleaning up' and upgrading Win10 to a HP 255G2 laptop that is worth 50 eur if even that. It's a total heap of garbage (1Ghz AMD cpu). I convinced her to let me buy her a preowned HP probook and after being suspicious she laughed out loud when she saw how much better result she got for 280 eur. The computer now wakes from hibernation in 1 second where it took almost half a minute using the previous laptop.

I couldn't believe my eyes when I tested the 255G2, it's only a couple of years old machine she bought from her ISP webshop. They should be sued for selling industrial waste.
 
couldn't believe my eyes when I tested the 255G2, it's only a couple of years old machine she bought from her ISP webshop. They should be sued for selling industrial waste

In my experience, these are the types of devices I'd estimate 70% of all Windows users are utilizing these days. Performance is so poor that it should literally be illegal to sell them as they're barely usable for simple web browsing with anti virus installed.
 
In my experience, these are the types of devices I'd estimate 70% of all Windows users are utilizing these days. Performance is so poor that it should literally be illegal to sell them as they're barely usable for simple web browsing with anti virus installed.
It was unusable even with Ubuntu Mate. Just opening Firefox took 15 seconds. Candy Crush took 5 minutes to load on the browser. The I/O on that machine was simply abysmally bad.
 
In my experience, these are the types of devices I'd estimate 70% of all Windows users are utilizing these days. Performance is so poor that it should literally be illegal to sell them as they're barely usable for simple web browsing with anti virus installed.

Not really sure where you live but, from my experience, those cpu's have not been used in years, literally, in anything that is sold in a while. Also, no Windows 10 machine has ever been sold with an AMD cpu of that level, ever. (The 255G2 Level.)

Oh, and at best, the 255G2 is a 4 year old Windows 8.1 era machine.
 
Not really sure where you live but, from my experience, those cpu's have not been used in years, literally, in anything that is sold in a while. Also, no Windows 10 machine has ever been sold with an AMD cpu of that level, ever. (The 255G2 Level.)

Oh, and at best, the 255G2 is a 4 year old Windows 8.1 era machine.

And that's the era of machine that most are using. Why is the fact that most Windows are not power users something you struggle so hard to accept? What does it matter if the machine was released before Windows 10? Are people supposed to upgrade because 'Windows 10' even if the upgrade was offered to them on their current hardware for free?

When I was talking about the abysmal performance of most mass produced, commonly sold laptops out there, I wasn't relating specifically to B00nie's example. I was talking in a general sense and including current generation hardware in my context.
 
And that's the era of machine that most are using. Why is the fact that most Windows are not power users something you struggle so hard to accept? What does it matter if the machine was released before Windows 10? Are people supposed to upgrade because 'Windows 10' even if the upgrade was offered to them on their current hardware for free?

When I was talking about the abysmal performance of most mass produced, commonly sold laptops out there, I wasn't relating specifically to B00nie's example. I was talking in a general sense and including current generation hardware in my context.

It matters because II am telling you facts about that cpu, you are simply not agreeing with the facts. Those cpu's have not been in use in years before Windows 10 and those cpu's never ran Windows 10 at all, in any computers. (Ran worse than poor when I attempted an upgrade once or twice and rolled back.)

This has nothing to do with users being a power user or not and what is actually sold in stores.

Edit: Also, current hardware and even most of what was sold in the last few years is fine. The only issue is when a slow Seagate 1TB hard drive is sold in the computer, which no piece of software can overcome. :)
 
Hey, guys, I appreciate the discussion about slow CPUs and service, but let's try to keep this thread focused on FreeBSD, okay?
 
  • Like
Reactions: Meeho
like this
Had some time yesterday to do some more working. I was using my laptop, which I have updated to 12.0-RELEASE, and wanted to try some older games. I installed dosbox, and was able to install and run Master of Orion 2 without any issues. Only thing was that the location of the dosbox.config file wasn't well documented, but I was able to find it is installed as a hidden file in the user profile, so named .dosbox.config. After that, everything was a breeze.

I also had my first "success" with running something in Wine! Using the PlayonBSD port, I was able to successfully install RedAlert 2 from my C&C: The First Decade disk. The only thing not working with this game, is when I edit the RA2.ini file to use higher than 1024x768 resolution (my laptop uses 1920x1080) the game crawls. There is a general fix by adding a line to the .ini file, VideoBackBuffer=no, which worked on my Windows installation, but not here. I'll have to do some more digging on this one.
 
Back
Top