Saturday, December 26, 2009

Getting Bluetooth A2DP to work in Mandriva 2010

One of the grips I've always had with KDE4 is it's rather poor bluetooth integration. For most of 2008 and 09, I've tried in vain to make my really nice bluetooth stereo headphones to work on Linux. I started to see a glimpse of it in 2009.1 where it would work for 2 minutes before crashing pulseaudio.

Now with 2010 out I decided to give it another go. Finding instructions for doing it is not particularly easy. There is no single place that provided something that will just work on Mandriva. So I decided to document my steps here.

Lets start with the require packages you will need to install.
*There's much more, but they should already be installed.

Start kbluetooth (it's somehow under the Internet category)
Make sure your bluetooth adapter is detected & showing a MAC address. Give it a sensible name.
The kbluetooth device manager gui only works for input devices. So don't bother trying to pair the headphones with it. We'll need to do it from a konsole.

Put you bluetooth headphones into pairing mode. (usually done by holding the power button until it blinks) Then do this:
$ hcitool scan

This should discover your headphones and list it's MAC address. Now connect to the MAC. (seems like only root can do these steps)
# hcitool cc 00:00:00:00:00:00

kbluetooth should now popup and request for the pin. (It's usually 0000)
Now lock down the pairing:
# hcitool auth 00:00:00:00:00:00

That's it for pairing. Now we need to tell alsa about the new audio device. Open up the file .asoundrc in your home directory (create it if it's not there), and put this in it:

pcm.bluetooth {
type bluetooth
device "00:00:00:00:00:00"

Replace with the MAC address of your headphones of course.

Now you need to reboot. Next you'll need to tell pulseaudio about your new output device.

$ pactl load-module module-alsa-sink device="bluetooth"

Now open the PulseAudio Volume Control. (pavucontrol) You should see bluetooth listed as another output device. You can now make it the default or you could assign the output device on a per application basis.

Now, the part the sucks. Pulseaudio will not remember these setting across reboots, you will need to rerun the pactl command everytime you want to use the headphones. One easy way to do this is to put an icon on the panel to run the command.

Another thing to be aware of is if you are playing something & you disconnect the headphones somehow, pulseaudio will segfault. So remember to stop playback and switch the default output back to your soundcard before turning off your headphones.

Enjoy. :)

Friday, November 27, 2009

Moving up to Mandriva 2010

Just upgraded my Dell Mini to Mandriva 2010. Been running it for a few weeks and working through the issues. I must say, although I welcome the improvements that KDE 4.3 brings, this release was nowhere near as solid as 2009.1. It's riddled with many serious bugs and annoyances.
One bug that seems to still be unresolved is the haldaemon bug where the system will sometimes fail to mount external drives, requiring a restart of haldaemon.

A quick rundown of some of the things needed to make this release fully functional on a Dell Vostro A90 (Inspiron Mini 9):
- Audio still didn't work. I still had to add the following line into /etc/modprobe.conf
options snd-hda-intel index=0 model=dell
- I used the same method as before to install aircraft-manager. This worked just fine.
- Disable speedboot by editing /etc/sysconfig/speedboot. Setting "speedboot=no". This stops some weird ACPI bugs.

Some observations:
- The intel driver has stabilized and no longer freezes
- Idle CPU is generally lower & better behaved than KDE 4.2

All the bugs are reported & being worked on, so lets hope that in the following weeks updates will work out all the issues. Overall, I'd say if you are already running 2009.1 and are thinking of upgrading. Wait a month or so, you'll have better experience by then.

Monday, July 13, 2009

Mandriva 2009.1 on Dell Mini 9 - More tweeking required

Only while trying to play a video did I realise that there was no sound coming from the speakers. So a quick search revealed the solution.
I had to add the following line into /etc/modprobe.conf
options snd-hda-intel index=0 model=dell

Reboot, open the mixer and turn up the volume for the channel Speaker. There will be a loud buzzing noise after you do this. To stop it, disable the channel Capture 2 (untick the checkbox).

So far, I've tested the boot speed versus Ubuntu MID, It is actually quite fast to boot & only ends up being < 10 secs slower due KDE4's longer startup time.

Power consumption has also been quite good, averaging about 3 hours. I could get 3.5 hours from Ubuntu MID, so I'll definitely have to see what I can tweek to make this better.

Sunday, July 12, 2009

Mandriva 2009.1 on Dell Mini 9

I got my hands on a Vostro A90 (Black clone of the Dell Inspiron Mini 9) from a friend in the states. It came with Ubuntu MID 8.04.1 preinstalled with the custom Dell launcher. I've been using it for a while now, it works perfectly as expected since the distro was heavily customized.

Lately I decided to try out something else on it. Since I've always loved Mandriva, I decided to give it a go, I knew it wouldn't be so simple.

From the LiveCD boot, it was already clear that WiFi and Bluetooth both did not work. I installed it anyway into an SD card & proceeded to try various things to try to make it work.

But whatever I did, nothing worked. I booted back into Ubuntu MID to check the setting there, nothing much helped. I rebooted into Mandriva again, but this time everything magically worked.

Bluetooth & WiFi was detected & worked nicely. The only thing I couldn't do was use my Bluetooth stereo headset. This is mainly down to kdebluetooth4 being still quite new. It had worked in Ubuntu, but it's no big loss.

Most of the important shortcut keys worked, namely brightness & volume control. Keys that didn't work are, Sleep, Wifi toggle, Battery Status & Toggle VGA. Of these, I only cared for the Wifi toggle.

To make Wifi toggle work, I needed to install aircraft-manager. Unfortunately, this was only available as a deb. I extracted the files out the deb & tried to figure it out.
It was basically written in python, so it wasn't too hard. This is roughly what I needed to do:
1. Extract the data.tar.gz out of the deb
2. Extract the data.tar.gz into /
3. Move from /usr/lib/python2.6/dist-packages to /usr/lib/python2.6/site-packages
4. Install (through rpmdrake) python-dbus, pygtk2.0-libglade and gksu.

That's it, after that you can simply use KDE's System Settings -> Input Actions to configure a shortcut for running aircraft-manager.

You might see this message when booting the system:
Configuring wireless regulatory domain nl80211 not found. [FAILED]

This can be fixed by commenting out the line CRDA_DOMAIN=XX in /etc/sysconfig/network

The intel driver will exhibit some artifacts especially if you are using kwin effects. This can be solved by adding the line:
Option "MigrationHeuristic" "greedy"
to the Device section of the /etc/X11/xorg.conf file.

That's as far as I got for now. I'll update as I go along.

Wednesday, June 3, 2009

Mandriva 2009.1 - Smoothing things out

I posted last time that I went back to using Kwin effects with the UXA workaround for xorg. However, I have since switched back to using compiz with EXA instead. Why?

Because Kwin with UXA was causing performance issues. The CPU usage of Kwin will hover at around 30-40% all the time, this was sucking the battery dry & causing my laptop to heat-up. Kwin with EXA is still the same, it will freeze 2-3 times a day. Compiz won't run at all with UXA, so I had to go back to EXA to use compiz.

So far compiz is performing very well. CPU usage is low, video playback is smooth and battery life is acceptable. The IaOra theme is still broken, the titlebar still dissapears, so I'll be using Ozone for while.

Sunday, May 17, 2009

Mandriva 2009.1 - Working out the kinks

I've made some discoveries and found some weird problems here & there with my newly installed Mandriva 2009.1. So I'm documenting my findings and fixes/workarounds as I needed.

1. Kwin effects when enabled will make X freeze up intermittently . There is already a bug report on this issue & it seems to be caused by the intel driver. The workaround is to change the default Render acceleration mode from EXA to UXA. This is done by editing /etc/X11/xorg.conf and adding the following line into the "Device" section:

Option "AccelMethod" "UXA"

This did solve the freeze problem, but video playback was a little choppy when using some desktop effect. I can live with this since it's about the same on compiz as well.

2. The default IaOra window decoration had a display bug when using compiz on KDE4. Whenever the window was maximised, the titlebar would disappear. (It actually became tranparent). I saw this bug when I used compiz instead of Kwin during the time I was still investigating the Kwin bug. I did not find this bug reported, I asked around, but no one else had this bug. It might be caused by residual config from my old compiz. (I didn't do a clean install) Anyhow, this problems goes way then I use a different window decoration theme. So I've switched to using Ozone.

3. I didn't like any of the plasmoids for system monitoring. I was very used to using superkaramba's cynapsys theme. I found that I can still install & use superkaramba & run my favorite sys_mon theme. This is a pleasant surprise. I also found the yaWP and ktorrent plasmoids to be very useful.

4. Virtually all the hotkeys on my laptop worked out of the box. Volume control, media playback control, LCD brightness control & wireless switch are all working perfectly and with OSD to boot. The only one that didn't work was the 'launch media player' key, which I've never used anyway.

That's all I can remember for now. These are all very minor issues, overall this release has been awesome.

Saturday, May 16, 2009

Mandriva One 2009.1 Spring

Wow. It's be a while since my last blog.

I was holding out upgrading to Mandriva 2009 because I found KDE4 to be not functional enough for my everyday use. But a few weeks ago Mandriva 2009.1 Spring was released & I just had to give it a test drive.

I bit the bullet & immediately upgraded my laptop to 2009.1 from 2008.1. This was skipping a release, so I thought wise not to do an online upgrade, but simply to format the root partition & reinstall fresh, but keeping my old home partition.

This ran into a snag as I was installing from LiveCD & it did not manage to migrate my KDE3 setting & left me with a very messed up desktop. To fix it. I had to logout, delete my old .kde directory in my home & login again.
This fixed everything up but also managed to wipe out all my KDE settings. Which I believe is fine because KDE4 should not be using them anyway.

Overall I found Mandriva 2009.1 to be another solid release. I'll still be holding out for my main desktop cuz I have alot of custom hacks that I need to research b4 bitting the bullet.

Monday, February 16, 2009

Setting up a Linux Practice Lab (Part 4)

6. Setup PXE boot server
Link the source location to the web server:
# cd /var/www/html
# ln –s /install install

Install & enable tFTP server & DHCP server:
# yum install tftp-server dhcp
# chkconfig tftp on
# chkconfig dhcp on
# service tftp start

Install Kickstart Configurator:
# yum install system-config-kickstart

Download & install system-config-netboot to configure the PXE (This tool is not shipped with RHEL5)

Install the packages:
# rpm -Uvh system-config-netboot*.rpm
(If there are any listed dependencies like alchemist or gnome-python2, install them with yum)

Configure Kickstart
# system-config-kickstart
Configure these options:
Basic configuration – Perform Installation in interactive mode
Installation Method – HTTP Server:, Directory: install
Display Configuration – 24bit, 1024x768, Start X on boot.
Save as ks.cfg in /var/www/html

Configure the PXE Boot:
# system-config-netboot
(If starting the Network Booting Tool for the first time, select Network Install from the First Time Druid. Otherwise, select Configure => Network Installation from the pull down menu, and then click Add.)

Configure these options:
Operating system identifier: RHEL5.1
Description: Redhat Enterprise Linux 5 U1
Selects protocol for installation: NFS
Location: /install

Configure DHCP Server:
# vi /etc/dhcpd.conf

Insert the following contents:
ddns-update-style none;
allow booting;
allow bootp;
default-lease-time 21600;
max-lease-time 43200;

option routers;
option subnet-mask;
option domain-name "";
option time-offset -18000;
subnet netmask {



class "pxeclients" {

match if substring(option vendor-class-identifier, 0, 9) = "PXEClient";


filename "linux-install/pxelinux.0";


# Repeat the following section as necessary for every student machine used in the class

host machine1 {

hardware ethernet 00:0b:db:e9:77:54;

option host-name "";


Save the file.

Start the service:
# service dhcpd start

That's it for the PXE installation server. I went on to configure more NFS and Samba shares for the students to practice on. It is all very simple, so I'll end this topic here. Cheers.

Setting up a Linux Practice Lab (Part 3)

4. Creating the Yum Repository
Install the yum repository builder.
# cd /repo/Server
# rpm –ivh createrepo-*.rpm

Create the repository.
# cd /repo
# createrepo -g repodata/comps-rhel5-server-core.xml Server
# cp /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release Server

5. Setup web server to host the repository
Make sure you've installed the web server during installation, then proceed with these.
# cd /var/www/html
# ln –s /repo/Server server
# chkconfig httpd on
# service httpd start

Open the browser & browse to http://localhost/server to check that the web server is running (you should see the rpm files listed)

Now to setup yum to point to the new web repository
# cd /etc/yum.repos.d
# cp rhel-debuginfo.repo trainingserver.repo
# vi trainingserver.repo

Modify the file to look like this:
name=Red Hat Enterprise Linux Training Server

Save the file. :wq
# yum update

Note: You can get the students to copy the yum setup to their systems with this command:
# scp root@ /etc/yum.repos.d/

That's it for making your local yum repository. Next I'll talk about setting up the server for PXE boot installations.

Thursday, February 12, 2009

Setting up a Linux Practice Lab (Part 2)

Installing the Server

This is the main server used throughout the class for remote installation & as a yum repository.

1. Installation
Install using CD boot method. The required setting changes are listed below in order of appearance. All other options are to be left at default.
Skip entering Installation Number
Partitioning: Create custom layout









Network Devices: Edit - Disable DHCP and IPv6.
IPv4 address: Netmask:
Set hostname manually to:
Set root password to: redhat
Select to install the Web Server. No need to customize software selection
During first boot setup: Disable Firewall and SELinux
Set Up Software Updates: Select: “No, I prefer to register at a later time” and “No thanks, I’ll connect later”
Create User: user with Password: password

2. Installation source setup
Extract content of all 5 CDs into a single directory called /install

# unalias cp
# cp –r /media/RHEL-5\ i386\ Disc\ X/* /install
(Where X is the number of the disk that you are copying, beginning with 1 for the first disk, and so on)

Copy contents the Server directory on all 5 CDs into the /repo/Server directory. This can be done using either cp or simply drag & drop in Nautilus.

# cp –r /media/RHEL-5\ i386\ Disc\ X/Server/* /repo/Server

3. NFS Setup
# vi /etc/exports

Add the following line:
/install *(ro,no_root_squash)
/repo/Server *(ro,no_root_squash)

Save the file. :wq

Check the syntax:
# exportfs –a
Start-up the NFS Service:
# service nfs start
Set the NFS Service to start-up on boot:
# chkconfig nfs on
Confirm NFS shares are exported:
# showmount -e

In part 3, I'll go into setting up a local yum repository. (Because my lab is in an isolated LAN)

Setting up a Linux Practice Lab (Part 1)

As part of my job, I needed to setup a lab for teaching RHEL5. After much trial and error, I managed to setup a fairly decent Linux lab. I've decided to post all my notes and self documenting setup guides to this blog, at least so that I have access to it wherever I go. A bonus if it helps someone else. So here goes:

Lab Equipment Notes

Common Requirements for all systems used in this Lab:
* Intel Chipset Motherboard (Avoid ATI/NVIDIA/VIA)
* Intel or Broadcom Gigabit/100/10 Ethernet card
* Integrated Intel Graphics GMA950 or older (avoid GMA 3100)
* If a graphic card is needed, use NVIDIA (avoid ATI)
* PS/2 or USB keyboard and mouse (avoid Wireless or Bluetooth)
* DVD/CD-ROM Drive (IDE, avoid SATA or SCSI)

1 unit Server with the following minimum hardware requirements:
* Intel Pentium 4 with HT/Dual Core running at minimum 2 GHz
* 2GB of Dual Channel DDR2 SDRAM
* 80GB Hard Disk Drive (SATA or IDE, avoid SCSI or SAS)

A desktop or notebook computer for each student with the following hardware requirements:
* Intel Pentium 4 with HT/Dual Core running at minimum 1.20 GHz
* 512MB of DDR SDRAM
* 20GB Hard Disk Drive (SATA or IDE, avoid SCSI or SAS)

1 unit Gigabit/100Base-T unmanaged switch with enough ports for all the students PCs and the server.

Ethernet cables to connect all the systems to the switch.

Lab Setup Notes

1. Connect all the systems together using the switch into a simple LAN setup
2. Follow the next section on installing the Server
3. Once the Server is properly setup, test all the students systems for hardware compatibility by performing a test installation on all systems.
4. Change out any problem units that fail to install properly.
5. Common issues faced are:
- Incompatible disk drive controller (no disks detected)
- Incompatible BIOS Assisted RAID (disks detected instead of array, disable these in the BIOS)
- Incompatible video card (blank screen or corrupted video)
- Incompatible optical drives (usually SATA)

Monday, February 2, 2009

FLOSS Awareness in Malaysia

Over 2 years ago when I started this blog I wrote about the state of FLOSS awareness in this country. 2 years on, looking at where we're at now, it's depressing to see not much has changed.

I've been doing what I can, helping out in the local groups & forums. Educating & offering help, especially to newbies and easing them in on the ideals of Free Software. It's an uphill struggle & I'm pretty sure will continue to be so for a long time.

Of course, don't forget to bring a towel.