Laptop Linux Adventures
The beginning
Between Edward Snowden and various Windows problems, I had decided to give Linux another try on my desktop. I had always had an entire harddrive dedicated to Linux, but quite often things didn't just work.
Booting up into Ubuntu, I was greeted with a garbled mess on the GUI. That is, there was no GUI, essentially the entire screen was static. I immediately remembered why I gave up last time. I figured I'd run apt-get update, fiddle around for half an hour and give up again. Instead, apt-get update fixed everything.
The success
3d acceleration was enabled and not messing up my screen, WiFi worked (I was on ethernet to get the update to run). It was all there. Plus, Steam for Linux was a new thing. This all started to sound promising.
The expansion
After a few months of using Linux exclusively (aside from switching to Windows to demo the Oculus Rift for friends), I decided to put Linux on both of my laptops and force my wife into the world of Linux. Considering 99% of what she does on a computer is web based, it didn't affect her much. "The button to start Firefox is in a different spot, but otherwise everything is the same." The primary laptop being used here was my Samsung Series 7 Chronos (780Z5E).
The problems
Everything was going smoothly, until after one update, the screen backlight became non-adjustable. No brightness control at all. The solution was to shine a flashlight into the sensor near the webcam during POST. This triggered auto brightness control, but once Linux started up, the brightness level was locked in. This made moving between rooms with the laptop difficult. This felt like the first major roadblock for Linux... Except my dad has the exact same model of laptop, and a recent update on Windows had broken HIS brightness control.
Linux side it was a kernel change, Windows side the update made the Samsung special software unusable. This was unpleasant, but not a negative for Linux it seems. After digging through hundreds of forum posts, no solution could be found. I gave up.
Then the second problem arose. My dad wanted to switch to Linux, but he needed the laptop to be his primary gaming machine. This meant that the dedicated GPU needed to work. It didn't. Nothing I did could get it to activate. Messing around with vga switcheroo for hours yielded nothing. Again, hundreds of forum posts, dozens of solutions... nothing. Switcheroo seemed to think there was 2 graphics cards, but with a mux-less setup, switcheroo did nothing. X was not seeing the second card.
The solutions.
The entire point of this ranty blog post is to document the solutions I found. I could not find them anywhere and had to piece things together myself.
The first one I solved was the GPU. Modern PRIME offloading (having a second discrete GPU do the work while the first integrated GPU runs the display) works automagically if you can get X to detect the GPU. Every guide everywhere says to remove all xorg.conf files. I had a /etc/X11/ directory clear of *.conf. I couldn't figure this out for the life of me. The solution was highly disappointing. I could follow the step by step instructions given elsewhere (which are basically run xrandr --listproviders
to verify you have multiple cards then use DRI_PRIME=1 command
to run things on the second GPU), BUT Ubuntu stores it's xorg.conf files in /usr/share/X11/xorg.conf.d/
... I removed an entry for amdgpu.conf and everything automagically worked on reboot.
The brightness solution came soon after. Once again, I tried following all the recommendations verbatim to no success. After digging into specific model info in Ubuntu bug tickets, I found the solution was a slight modification to the recommendations. Most say to add acpi_osi= acpi_backlight=vendor
to /etc/default/grub
on the GRUB_CMDLINE_LINUX_DEFAULT line. Then run sudo update-grub
... However that didn't do anything either. The final 780Z5E specific solution was acpi_osi=linux acpi_backlight=video
. Never once elsewhere did I see "video" as a valid option mentioned. Once again, a slight deviation from the commonly recommended solution.
The result
I finally fixed all the issues I had with the laptop. Issues that my dad still has with his laptop on Windows. I'm sure there are solutions on Windows as well, but if you have to go jumping through hoops to get things working on Windows, then the user friendliness benefit has gone out the Window.
These aren't things that you should have to deal with on a laptop, on Windows or Linux. My research on these topics lead me to see that there were a LOT of resources available for solving Linux problems. My issue was distro and model specific. Most people would have these problems solved with the very first Google result. I had unique hardware, so those didn't work for me. I had to dig deeper, and since I rarely used the laptop, I procrastinated.
As you can see, this is a long, rambling post, and yet the solution only takes up a sentence or two each. The solutions are VERY simple. On desktop hardware, where things have far less variables, I've never had these problems (since coming back to Linux, all the modern drivers have been great on desktop). The only hard part was finding the information. But the solutions WERE available.
Conversely, I'm not sure what the solution would be on Windows other than "Reinstall the drivers, and hope that Samsung still provides a tool to handle that." No thanks. Samsung had some real cool stuff on there when I got the laptop, but took forever to update anything for Windows 8.1. I wouldn't hold my breath on getting support in future Windows versions.