Paul Kocialkowski's coding blog

Free software, programming and stuff

Intel

Asus N56VB-S3055H laptop and Debian installation

Written by Paul Kocialkowski - 20 july 2013 - 4 comments

Asus N56VB-S3055H

Along with moving on to new studies (I'm done with High School), I got a brand new laptop: an Asus N56VB-S3055H. The hardware specs are really nice, with a quad-core i7-3630QM CPU, 6Gb RAM, 1Tb HDD. I was worried about the integrated nVidia card (GeForce GT 740M) at first, that I suspected to be a cause of problems on GNU/Linux. Thankfully, it does not bother me and the Intel Ivy-bridge card works just fine. I also had the great suprise of finding an ath9k WiFi card shipped with the laptop! You can find a complete hardware review at h-node: Asus N56VB-S3055H

Debian installation

I used to install every new machine with Trisquel GNU/Linux, however I don't really agree with the Linux-libre policy that is about blocking the firmwares load. Moreover, Debian recently made great efforts towards being a fully free distro. So basically, my Debian installation is fully free and the hardware doesn't require loaded non-free firmwares (which means I don't have to use the non-free Debian repo).

Setting up the BIOS

However the BIOS is non-free and it ships with Secure Mode enabled. The BIOS can be accessed by booting with the ESC key pressed and then selecting the option to access Setup. Make sure that you do not let it boot the preinstalled Windows 8 as there is no way to soft turn the computer off if you don't agree to the license terms.

In order to install GNU/Linux, make sure you disable the following options in the BIOS:

  • Intel Anti-theft technology
  • Fast Boot
  • Secure Boot Control

Then enable the following options:

  • Launch CCSM (you might want to disable PXE then)

UEFI boot with the Debian installer

With such options in the BIOS, you should be able to boot a GNU/Linux installation disc (and probably an USB install media too). However, be very careful: the BIOS only support UEFI boot from the HDD, so you have to install GRUB with UEFI support. In the debian-installer, I only had to create an UEFI partition (at the begining of the disk) and the installer did the rest. It also set the mountpoint to /boot/uefi. Keeping the Windows UEFI partition (make sure to format it though) would probably work too. As a matter of fact, I failed the installation the first time because I removed the partition (and the Debian installer warned me that it was a bad idea). So things aren't so bad in the end, since there is free software support for UEFI booting.

Setting up the touchpad correctly

The laptop has a synaptics touchpad which didn't work correctly at first: drag'n'drop was not at all possible and both click buttons triggered a left click. After some online research, I found one solution that is to use one-finger click for left click and two-finger click for right click. However, this was far from perfect since this is not the expected behavior and drag'n'drop was still impossible. Here is some documentation about how to set that up though: Left-, Right-, and Middle-click on Clickpad .

The real complete solution was adding some options to the synaptics Xorg input driver so that it handles soft buttons, clickpad and multi-touch.
It consists in creating /usr/share/X11/xorg.conf.d/75-synaptics.conf with the following contents:

Section "InputClass"
        Identifier "Default clickpad buttons"
        MatchDriver "synaptics"
        Option "SoftButtonAreas" "50% 0 82% 0 0 0 0 0"
	Option "ClickPad"         "true"
	Option "EmulateMidButtonTime" "0"
EndSection

Enabling the external subwoofer

Another feature that was missing was the external subwoofer. A couple of steps are required to enable it, described on the ArchWiki page for another Asus laptop: Asus N55SF Audio. However with strictly this, it still didn't work: I had to step up the Bass Speaker volume in alsamixer (make sure to select the Intel HDA card first) and obviously select the newly created 2.1 Output profile on the GNOME sound config app.

Tuning up GNOME

Since the main graphics chip is an Intel one, graphics acceleration worked out of the box on Debian, and I just ignore the nVidia card for now. That means I had the great pleasure of enjoying the use of GNOME-Shell for some time, but quickly went back to the traditional GNOME-Panel, that I find a lot more convenient for developing. Obviously, a lot of tuning up is needed to make the experience perfect.

Backlight, backlight…

I was very surprised with the way GNOME handles both the panel backlight and the keyboard backlight. Basically, these can be dynamically tuned with the media keys (Fn+Something combination keys), which works fine, but none of these changes are kept between sessions and reboots. That means I have to change these after every single login: that is so annying. So my solution was to create an init.d script that stores the backlight values at poweroff and to use a script launched at the GNOME session startup to bring back the previously stored values. It's a shame I have to do this, such basic support should come out of the box with software as popular as GNOME is.

Themes, icons, compositing

Collins desktop

Even though it has glitches, I always prefer enabling compositing in metacity so that stuff looks better (transparency, round angles, etc). Since GNOME switched to dconf, here is how I enabled compositing: using dconf-editor: org > gnome > metacity > compositing-manager.

As for the themes I use: Shiki-Colors-Metacity, which is packaged in Debian for window borders, Gnome-brave for icons (packaged as well) and Zukitwo-Sark for GTK+. For the latter, make sure to install its dependencies to avoid unexpected results:

sudo apt-get install gtk2-engines-murrine gtk2-engines-pixbuf

Screen flickering with Intel HD Graphics 2000 on SandyBridge Intel i3 2120

Written by Paul Kocialkowski - 11 august 2012 - no comments

During this summer period, temperatures are starting to get really high, and often higher than what my computer can handle, apparently. Since a couple of weeks, I noticed a nasty white flickering taking over the screen after hours of use, with my integrated Intel HD Graphics 2000 on SandyBridge Intel i3 2120.

I tried to search for a solution but couldn't find anything that helps, except turning the computer off for some hours, thus letting it cool down. So this happens more and more often as uptime increases and at some point, it gets so frustrating that my only solution is to turn the computer down and do some other business. It happens more when running 3D games and also continues on tty sessions (even with X not running at all).

So I made a video to explain the situation to Intel GFX people on IRC, who sadly couldn't bring me much more help.

Running on new hardware, with Trisquel 5.5

Written by Paul Kocialkowski - 05 july 2012 - no comments

As I am doing software development that sometimes requires a lot of resources (mainly when building Android/Replicant), I recently decided to get myself some new hardware. I was previously running with a dual-core Pentium 4 running at 3.00Ghz, along with 4G RAM (the motherboard chipset is limited to 4G), two Hard Drive Disks and an nVidia graphical card. All was running under Trisquel 5.0, with the nouveau driver for nvidia cards, that didn't permit outstanding hardware acceleration (though it was fairly good enough to play 720p videos).

Finally I decided to get an Intel i3 CPU, dual core at 3.30Ghz and an adequate motherboard, both coming with SandyBridge support. I ended up buying 8G of DDR3 RAM, which is fairly enough for Android/Replicant build to stay on RAM (it finished on SWAP with my old hardware). I'm particularly amazed of SandyBridge, that technology that permits the CPU to hold an Intel GPU that can be used with an appropriate motherboard. It is very-well supported by Linux (and by Linux-libre as well), Xorg and Mesa (compared to all of what I've tested with Linux-libre). I was able to play Nexuiz at 1280x800 with nice effects, 0 A.D. with shades and water reflection disabled and a few other ones (Mania Drive, OpenArea, etc).
All that came with a 60GB SSD used as rootfs. It really speeds up the boot process alot! (The BIOS is actually taking longer than grub up to gdm)

On the software side, I stick to distributions promoting and distributing only free software. I thought about getting to Debian as I mostly agree with their decision to distribute a kernel free of firmwares, but that will load them when present (which is what we do in Replicant too). Though, I'm using Trisquel since a year now, and I kinda got used to it. As usual, it is very usable, ready and nice-looking! As I have no hardware requiring non-free software to be loaded, I'm totally fine with Linux-libre, even though I agree more with the Debian way of things regarding the kernel.

Desktop

Let's cut-off the long and boring text and get to serious matters. Trisquel decided to stick with gnome-panel while Gnome 3 features the new gnome-shell interface. I'm very pleased with that decision, as I already tried gnome-shell and find it less usable than good-old gnome-panel, mainly because there is no really quick way to have the windows listed, to switch from one to another and to reduce them.
DesktopWhen I first ran into Gnome "fallback" experience (that is what gnome-panel is called now), I got very disappointed by the unavailability of right click on bars to customize them (move stuff, add widgets, etc). I though it was the end of the gnome-panel era and sincerely thought that this fallback experience was just a quick hack, with no possible customization. Thankfully, I was wrong. You can actually do the very same changed in that GTK3 gnome-panel by holding the Alt key while doing right-click on a panel. After discovering that, I quickly got back into my old setup, with some adjustments.
The main bummer I faced is that Trisquel theme was apparently not designed to be used with the "menu bar" applet, that holds Apps and Places. It was really ugly-looking, so I strongly recommend you to use this css layout (in /usr/share/themes/Trisquel/gtk-3.0/apps/): gnome-panel.css

As you can see on the screenshot up there, I am using conky to display time, date and various infos about the system. Here is the conkyrc, designed (with absolute values) for a 1680x1050 screen: conkyrc, draw_bg.lua.
Also, if it turns out conky won't stop flickering, even if you're using double buffer and all, make sure that maximum_width is greater than the actual width conky uses. If you didn't define maximum_width anywhere and conky won't stop flickering, that may very well be the reason. Define it with an appropriate size and it may help to sort things out. That's one problem I had while doing that conkyrc.

DesktopAs for an icon theme, I'm using elementary, with the Trisquel logo on top. It has a huge benefit: the icon that shows up when changing the volume will no longer be ugly as it's obviously resized from a non-vectorial image. It'll show a nice and clean white speaker icon. When I was doing that conkyrc, I also turned on metacity compositing, that is a very unknown feature but permits some nice stuff while remaining simple (no outrageous effect that will slow you down). For instance, it gives that volume popup clean round edges, instead of the sharp ones, as well as some nice transparency. If your GPU can handle it, I strongly advise to turn metacity compositing on. That's just one gconf key to set: gconftool-2 -s '/apps/metacity/general/compositing_manager' --type bool true