Search This Blog

Saturday, November 26, 2011

Plasma NM 0.8.98


Plasma NM 0.8.98 (AKA 0.9.0_rc3) is now available.

MD5Sum: e730805567a771506cb18c0a825738ef
SHA1Sum: f46274c4cca722f37eef7418144c0c04bfe21e24

Changelog:


286855: Refuses to create VPNC connections without user or group info since vpnc-0.5.3 refuses to connect without them.
287531: Add some checks to prevent crash when PolicyKit denies connection editing.
287076: Report error message on VPN activation failure.
285637: Fix icons for bluetooth interface item and system tray (when the bluetooth interface is the default interface).
286424: Try to prevent gsm connection access technology change from freezing plasma-desktop for a few seconds.
285637: Fix creation of NAP/PAN bluetooth connections.
286856: Show user and group names in vpnc authentication dialog.
283204: Set Bluetooth DUN's passwords as AgentOwned by default.
286666: Do not reset username and password fields when changing Dynamic WEP's authentication method.
. Always asks secrets from user if NM requested new secrets.
286243: prevent crash when resuming from RAM.
283241: fix random crash.
. Add check for minimum openconnect version required (3.03).


The following languages have more than 80% of the strings translated:

ca cs da de el hr it lt nb nds nl pt pt_BR ro ru sv uk zh_CN zh_TW

Tuesday, November 22, 2011

NetworkManager: per device routing tables


Today Alex Fiestas told me about one problem he has and that I had long ago.

Everybody uses Internet nowadays and probably most of you know what IP address, netmask, gateway address mean. For example, my notebook is using this configuration right now:

eth0
IP address: 192.168.1.10
Netmask: 255.255.255.0
Gateway: 192.168.1.1

wlan0
IP address: 192.168.1.12
Netmask: 255.255.255.0
Gateway: 192.168.1.1

Yes, two devices in the same local network, but that does not invalidate this post :-)

Although I have the same IP as gateway for my two devices the Linux kernel sees 192.168.1.1/eth0 and 192.168.1.1/wlan0, not 192.168.1.1 alone. When there is only one active device there is no problem, but what happens if you have two, like my notebook?

Only one of those two IP address/device pairs is the default route, that is, the IP address/device pair the Linux resorts to when it cannot find the computer to connect to. Now enters NetworkManager. NetworkManager sorts devices by type when deciding which one to configure as default route. If I am not mistaken it sorts like this: wired, wifi, mobile broadband.

Now the problem:

Suppose you are connected using wlan0 only, with Kmail, Kopete, Konversation, etc up and running. Then you decide to plug the ethernet cable (eth0) and keep wlan0 also active. NetworkManager will switch the default route from wlan0 to eth0. Now what happens with the connections Kmail, Kopete, Konversation opened when eth0 was the default route? Well, if you do not have a proper routing table configuration they will stop working because the Linux kernel, by default, does not expect receiving IP packets from the old gateway's IP address/device pair anymore, only from the new gateway's IP address/device pair.

When the connections time out (in a couple of minutes or so) the Linux kernel will close them, but not before you get annoyed by seeing your connections closing in front you even though you have two, not only one, active connections.

Long ago I created a script similar to this one to solve this problem for me. I have even forgotten that I had this configuration in my notebook. If you have this same problem just do:

Code
$ wget http://kde-mg.org/wp-content/uploads/2011/11/per_device_routing_tables.txt
$ sudo chown root:root per_device_routing_tables.txt
$ sudo chmod 700 per_device_routing_tables.txt
$ sudo mv per_device_routing_tables.txt \
  /etc/NetworkManager/dispatcher.d/per_device_routing_tables.sh

Add one line per device to file /etc/iproute2/rt_tables like this:
File /etc/iproute2/rt_tables
100     eth0
101     wlan0

The first column contains the table's id, they just need to be different from each other. The second column contains the table's name. The script above assumes the table's name is equal to the device's interface name.

Finally, restart all your connections. When when NM switches the default route all existing connections will keep working.

What the script does is create one routing table for each device (one for eth0 and one for wlan0 in the example above). There is one default route in each routing table and the global default route (the one NM changes) still exists. Even when the global default route is changed the per device default routes continue intact and let the existing connections to reach the Internet using the correct IP address/device pair.

Enjoy :-)

Sunday, November 20, 2011

Installing libnm-qt in a different prefix


Some people have some problems installing libmm-qt and libnm-qt in a different prefix than /usr. Today I have finished to implement pkgconfig support and now you can install libmm-qt and libnm-qt in a different prefix:

. PREFIX="/opt"
. export PKG_CONFIG_PATH="$PREFIX/lib/pkgconfig:$PREFIX/lib32/pkgconfig:$PREFIX/lib64/pkgconfig"

. git clone git://anongit.kde.org/libmm-qt
. mkdir libmm-qt_build
. cd libmm-qt_build
. cmake -DCMAKE_INSTALL_PREFIX=$PREFIX ../libmm-qt
. make && make install

. git clone git://anongit.kde.org/libnm-qt
. mkdir libnm-qt_build
. cd ../libnm-qt_build
. cmake -DCMAKE_INSTALL_PREFIX=$PREFIX ../libnm-qt
. make && make install

Compiling master branch is still the same:

. git clone git://anongit.kde.org/networkmanagement
. mkdir networkmanagement_build
. cd networkmanagement_build
. cmake -DCMAKE_INSTALL_PREFIX=/usr ../networkmanagement
. make && make install

Tuesday, November 8, 2011

Bluetooth tethering video

There is some time I wanted to create this video explaining how to create bluetooth connections in Plasma NM using Bluedevil-1.2. Here it is:




Bluetooth tethering is not exactly new feature in Plasma NM, it was added almost seven months ago, yet some people still have difficult adding connections.

Unfortunately for devices that use NAP, like iPhone, there is a bug in Bluedevil that prevents Bluedevil from dectecting the NAP service from the phone. For now you can use networkmanagement_configshell to create a NAP-type bluetooth connections. Bluedeveil-1.2 works for DUN-type connections, like it is shown in the video.

Sunday, November 6, 2011

Help KDE e.V. secure funding for a sprint with just a few clicks

Some weeks ago Lydia blogged about a German bank giving away 1000 euros for each 1000 associations who can get the most votes. Well, until eight days ago we were at postion 320, now we are at 1155, as you can see:



If the poll finished today we would be out :-( The poll finishes tomorrow, so we need the votes now. Please, read Lydia's post about how to vote and help KDE e.V., it is just a few clicks.

Just the poll page is in German, but the poll is not limited to German citizens. Anyone can vote three times using your e-mail.

I would like to thank who have voted in the last days. Unfortunately we still need more votes since the poll finishes tomorrow. In the last 24h we have lost several positions, we need to keep the pace we were before to reach our goal.

Friday, November 4, 2011

Plasma NM 0.8.95

Plasma NM 0.8.95 (AKA 0.9.0_rc2) is now available.

MD5Sum: 14f4051446a33be9bd46b34763acd760
SHA1Sum: 43df2e26acb1b96f3b5e394568a25d04036a085b

Changelog:

284743: fix crash after installing updates with apper.
284717: fix crash when browsing bluetooth device.
283017: fix crash after bluetooth teathering failure.

. use network.svgz as default icon path for svg icons again. Svg icons are themed, so we need to keep this filename. We will the new network2.svgz for mobile icons until the changes in network2.svgz are integrated into network.svgz.

285069: add tooltip explaining how to use wifi security's alternate subject matches in Plasma NM's wifi edit dialog.
285255: fix crash after resume from suspend.
285406: enable VPN Interface item in activating and activated connection states.

The following languages have more than 80% of the strings translated:

ca cs da de hr lt nb nds nl pt pt_BR sv uk zh_TW

PS: for the braves that use Plasma NM master branch there is a fix for a crash in bluetooth tethering support in libnm-qt. The bug does not affect nm09 branch since it does not use libnm-qt.