torsdag 9 oktober 2014

Improvements with Linux kernel 3.17


The Linux kernel 3.17 was recently released and I decided to test it on a Z30 which happens to be on my desk.
I am currently running Fedora 21 (which is still in Alpha I think?) on this unit.
Most things work fine, except for the backlight control.
This may not be the end of the world, but it still bugs me that I can't easily change the backlight by use of the hotkeys.
In Fedora 20 with kernel 3.13 this was no big deal - adding acpi_backlight=vendor as a boot argument resolved the non-working hotkeys.

In Fedora 21 with a later kernel this was no longer solving the issue.
I tried a few other variants found around the net, but nothing made the brightness hotkeys have any effect.
Funny enough, it was still possible to control the backlight by echo'ing different values to /sys/class/backlight/intel_backlight/brightness

Anyway, after testing the 3.17 I found that the brightness is yet again back in my control by use of the hotkeys without sending any special boot arguments.

As a extra bonus, the double mouse-setup (touchpad + accupoint) is also properly detected by the mouse-settings applet.

See the before vs after comparisons below.



måndag 19 maj 2014

Getting Ubuntu 14.04 to boot from internal HDD/SSD on Toshiba NB10-series

The Toshiba NB10-A and NB10T-A has some issues booting Ubuntu after having installed it onto the internal HDD/SSD.

I can't say I know much about EFI and it's specifications, but there seems to be some difference between the standard and how the firmware in the NB10 works.

Booting Ubuntu 14.04 from Live media (USB) works well most of the time, while after having installed it, the NB10 simply won't boot anymore.
So what's the difference between the Live media and the installed system?
Well, that's the thing – they are not similar as we'll see.

The EFI-folder structure and its contents differ between the Live-media and the installed system. This may well be as it should, but in the case of NB10, it will prevent a successful boot.

Look at the tree's below for an overview of the differences:

Live-media                                             Installed OS

/                                                                 /
/EFI                                                            /EFI
    /BOOT                                                      /ubuntu
        grubx64.efi                                               grubx64.efi
        BOOTx64.EFI                                            shimx64.efi
                                                                           MokManager.efi
                                                                           grubcfg

Summarizing the differences I see:
Live media has a BOOT-folder below EFI.
The installed OS does not. It has an ubuntu-folder.

Live-media has got a file (which I believe I see on most EFI-installations by the way) named BOOTx64.EFI while the installed system does not.

In total 2 small differences which turns out to make a big difference.

If you want to see the steps to fix this, continue reading.

What you will need:

- your non-booting NB10 with installed Ubuntu 14.04
- an Ubuntu 14.04 live media which has been created using the Ubuntu live media creation-tool.
Please note that live-media created by other tools probably will not work as described in this guide!

Steps to be taken:
- boot your PC on the Live-media
- make a copy of your ubuntu-folder and rename it.
- copy the bootx64.efi file from the live-media to your hdd/ssd.

So, go ahead and boot your NB10 on the live media.

Step 1) Access and browse the EFI folder of your HDD/SSD

Click the search-button (I think it's called Dash).
Enter disks in the search field that appears.
You should see one single application filtered out named Disks – click it.
Disks should start and show a list of attached storage devices on the left-hand side.
In my example below, I used an 180GB SSD which you can see in the top of the list.




On the right side you'll see partitions and other details of the selected drive.
I have selected the 180GB SSD and the partitions are shown on the right side.
Locate the 1st partition, usually around 500MB and using FAT filesystem.
It is probably described as EFI System as shown in my picture. I have highlighted it.

Now mount it by pressing the Play-arrow beneath it.
Once mounted, you'll find link to it in the lower right area of Disks. Locate this link and click it.

Your filemanager should open in that location. See my example below.












Step 2) Copy the ubuntu-folder with content to boot

Look at the folder names & structure and the contents of the folders in the shot below.
I've changed the view to list-view to make it easier to get an overview of the tree. 





Now, copy the ubuntu-folder by use of CTRL C and paste it to the same location by use of CTRL V (or use your favorite copy/paste method).

Below is what you'll see (if you have switched back to icon view like I did):



Rename the ubuntu (copy)-folder to boot.




Step 3) Access and browse the EFI folder of your Live-media

Start up the Disks-application again (in case you closed it) or ALT+TAB your way back to it.
Locate your live-media device in the left side. My media is a 2GB USB memory so it's easy to find.
Click it once.




Now you may see that this media has one partition only and it is already mounted at /cdrom. (look in the lower right section)
Click that link to open a filemanager in that location. Don't be confused about my view looks slightly different from what you'll see. I have moved to the place I'll talk about next.


Step 4) Copy the boot Efi file from your live media to you HDD/SSD.

In the filemanager above, locate the folder EFI and open it. Also open the subfolder BOOT.
Path /cdrom/EFI/BOOT
In that location, find the file BOOTx64.EFI and copy that file to you HDD/SSD EFI/BOOT folder (remember that we mounted the EFI partition in step 1 above? That's were this file it going).
In my example, my EFI-partition is mounted as 6692-6CE3 in the filemanager-tree on the left side.
Click it and browse all the way down to the boot-folder as shown below.
That's where we should paste the BOOTx64.EFI-file.



Next step is just for safety – don't know if this is really necessary. You can choose to follow or not.
Go one step up, back into EFI, then down in ubuntu and paste the BOOTx64.EFI file there too.




That's it. You should now be able to choose to reboot the PC and remove the live-media before the PC starts booting up again.

Hope this helps.

tisdag 25 mars 2014

Fedora 20 on the Portégé Z30

The last incarnation of the Z ultrabook-series is named Z30.
It has the same footprint as the previous Z830 and Z930, but has a different chassis and is slightly thicker.
To put it short - it's a really nice unit with both looks and power.
The new design is really attractive and as with every new generation, there are new components raising the bar for the combination of power vs energy consumption.

See some Z30-sku's here: http://www.toshiba.eu/laptops/portege/portege-z30-a/

In the unit currently in my lap we have the following stuff:
CPU: Intel Core i7-4500
Chipset : Intel HM86 Chipset
GPU: Intel 4400
8GB DDR3L 1600 memory
Primary storage: 256GB SSD
Wireless: Intel Wilkins peak 1 (802.11 ac + agn) including Bluetooth 4

Other highlights are a backlit keyboard, SD-host, 3 USB3 ports, an HDMI-out port along with a VGA-port.
It also has a built-in port for a system docker - something which was not available in the earlier Z-series.

As to be expected, everything feels solid, well built and sturdy.
My personal opinion is that unit could have been a bit heavier...

So how does the combination Z30 and Fedora work?
Well, I have come to understand that Intel components tend to run very well under Linux.
Also as with the B2B models from Toshiba, they tend to work well under Linux.
So also in this case.
All devices worked apart from the backlight-control.
However this was easily fixed.

Booting, running and installing Fedora 20 on the unit on worked fine and both mice (touchpad and trackpoint) works perfect.
As mentioned above, the backlight was not possible to control by FN + F6 / F7.
It's easy to find solutions for this and once implemented, it works great.

The solution is to add a kernel argument in GRUB2 at boot time.
GRUB2 is the bootloader used by many distributions.

What need to be done is to add the following argument which fixes the non-working backlight control

acpi_backlight=vendor

to the end of the current GRUB commandline found in the file 

/etc/default/grub

And then we need to ask GRUB2 to incorporate our changes to the current boot-menu.

Now, I am assuming you are a "sudo'er" - means you're in the sudo-group which lets you do administrative tasks by use of sudo.
I like the feature a lot and it actually helps if GUI based programs are needed to be run as root.

If you are not in the sudo'ers group here's a guide to fix this:
http://fedoraproject.org/wiki/Configuring_Sudo


Ok, so assuming you're a sudo'er and prefer working in a GUI - open the terminal (yes, that's true).
In the terminal enter:

sudo gedit /etc/default/grub

You'll be prompted with a request for your sudo-password.
Enter it and gedit should start looking like the below:

 


Don't be confused or intimidated by the content of the file. Just look for the line starting with 

GRUB_CMDLINE_LINUX=

Now find the end of that line and make sure there's a space between the last arguments and this which you should add:

acpi_backlight=vendor

You should have something like the below:


Don't forget that the line need to end with "

Once done, save and exit. If you want to do it my way, press CTRL+S and then ALT+F4.
Now stay in the terminal and write the following command:

sudo grub2-mkconfig -o /boot/grub2/grub.cfg

This will add your change to the current boot-menu.
You should see something like:

Generating grub.cfg ...
Found linux image: /boot/vmlinuz-3.13.6-200.fc20.x86_64
Found initrd image: /boot/initramfs-3.13.6-200.fc20.x86_64.img
Found linux image: /boot/vmlinuz-3.11.10-301.fc20.x86_64
Found initrd image: /boot/initramfs-3.11.10-301.fc20.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-7edae5ea237e4249ad70613908f4c1b3
Found initrd image: /boot/initramfs-0-rescue-7edae5ea237e4249ad70613908f4c1b3.img
done

Now you should be able to reboot your unit and test the backlight with the help of FN+F6/F7.

Finally, see below for an overview of the tests and results running F20 on the Z30.

BR Tom




Cold booted Resumed from Standby
Hardware features

Full native resolution on display OK OK
SD host OK OK
WLAN OK OK
Bluetooth OK OK
LAN OK OK
Touchpad  OK OK
Mic OK OK
Sound OK OK
HDMI-out OK OK
HDMI sound OK OK
Webcam OK OK
Hotkeys

Instant lock FN + F1 Ok OK
Power meter – FN + F2 OK OK
Standby – FN + F3 OK OK
Hibernation – FN +F4 Ok Ok
Display change - FN + F5 OK* OK*
Brightness - FN + F6 / F7 OK Ok
Radio On/Off - FN + F8 OK OK
Touchpad On/Off - FN + F9 NG NG
Volume control - FN + 3 / 4 OK OK
Mute On/Off - FN + ESC OK OK
Keyboard backlight Ok OK

tisdag 4 februari 2014

WB335 bluetooth finally supported

Atheros QCWB335 is a so called combo card including both WLAN and Bluetooth function.

This combo-card has until recently only been partially supported by popular distro's.

Fedora 20 with a current kernel 3.12.9-something does not support this card's Bluetooth features.

The Bluetooth is somehow recognized as it is possible to launch the bluetooth device-discovery (Buetooth new device setup).
Although the search runs forever, no other devices are found, nor is it discovered by other bluetooth devices.

Good news is that recently kernel 3.13.1 was released and with that kernel installed, the bluetooth will now behave as expected.
Devices are found, and the QCWB335-equipped PC is being spotted by other Bluetooth devices. File-transfers works back and forth...

If your distro does not yet ship kernel 3.13.1 as an update (none I looked at does), maybe you're lucky, and the fix may be backported and delivered as a minor kernel update.

If not, and you wish to get the Bluetooth to work, you may wish to download, set up and compile kernel 3.13.1 yourself.

For Fedora users it's quite easy.

In short:

- Download and extract the kernel sources.

- Install necessary tools for compiling (done once only!)

- Copy your current kernel configuration-file - used as a base for your new kernel.

- Configure the kernel

- compile the kernel & modules

- install the kernel

First download the current kernel from kernel.org

Extract it to some folder of choice. There will be a lot of files!.

Example ~/Downloads/linux-3.13.1

Install the development group. It contains some necessary tools to configure and compile the kernel.

From a terminal, if you're not in SUDO'ers group type (note the ending '):

su -c 'yum groupinstall "Development tools"'

A long set of packages may be listed to be installed.

Accept.

Copy the current kernel configuration-file to the downloaded directory.

First, we want to figure out which which kernel we're running so we can get the proper config-file. In the terminal, type

uname -r

You will be prompted with your current kernel version.

In my case it is

3.12.9-201.fc19.i686

That's the actual kernel-version and will also be part of the name of the config-file we want to copy.

Open a filemanager and go to /boot

You should find a number of files, and one with the name (in my case)

config-3.12.9-201.fc19.i686

As you may notice, the running kernel version we got previously is a part of the file-name above. That's how we can locate the proper file.

Copy that one to your folder where your downloaded kernel was extracted.

Example

~/Downloads/linux-3.13.1

Move over to that folder and rename the file config-3.12.9-201.fc19.i686 to

.config

Note that we're adding a . in front of the file and use no extension.

Don't be surprised if your filemanager don't display your .config file after the rename.

The leading . tells many filemanagers that the file should be hidden.

Configure the new kernel

Now, if you're lazy like me, you can configure only the NEW features of the kernel.
This method will look at your current kernels features, and stop only at the new features which have been added since.
This will save a lot of work but also take away some fun.

type

su -c 'make oldconfig'

As I am lazy (ok I mentioned that before), I "ENTER my way" through most questions.
This will use the recommended settings for the choices that come up.
That is what I would consider the safe way through most kernel-settings.

Depending on your current kernel-version, the number of questions will vary.
If there were many releases in between, there will be more questions...I got around 40-50 perhaps.

When done, most of the manual labour is over.

Compiling and installing the kernel

Now it's time for compilation and this goes on forever! (at least that's how it feels) Depending on CPU it will take a couple of hours to more than half a day.
Before starting, you may want to check how many cores your CPU has.
If you don't need to use your PC while compiling, you can speed it up a lot by using all cores for the job.

Starting "make" with a -j# (# = number of cores) will enable more jobs running simultaneously.
I know my brief description does not come near to explain, or utilize the -j option for make, but it's enough for me.

So when ready, in a terminal type (replace # with your number of cores, and if you don't want to use more than 1 core, leave out the -j# option)

su -c 'make -j#'

When this is done, continue with the faster job:

su -c 'make modules'

and when that's done
 
su -c 'make modules_install'

next

su -c 'make install'

Finallly do

su -c 'grub2-mkconfig -o /boot/grub2/grub.cfg'

And that should be it.

Your kernel should now be set up, compiled and installed.

Reboot your machine and look for available kernels when GRUB has loaded.
Normally the latest kernel is the topmost one and the default choice.

If everything runs well, your unit should boot and run kernel 3.13.1 (or whatever you downloaded and installed).

If the system does not boot properly with the new kernel, don't panic.
The previous, original kernels are still there.
If necessary, just force off the computer and start it again.
Choose your previous kernel.

Good luck & have fun