[kde-linux] knetworkmanager stopped working

Anton Moiseev benderamp at gmail.com
Wed Oct 1 21:11:48 UTC 2008


Hello,

I have posted this problem to opensuse mailing list, but there were no
response,
try to repost it here:

I have Opensuse 11 with kde4 and knetworkmanager 0.7r826733 from opensuse repo.

----------
Part1

I had to switch off the notebook in a bad way - by holding the power
key. After rebooting knetworkmanager
stopped connecting to wireless networks. I can see the network list,
but when I click on the network name
the tray icon just stays gray and nothing happens. It even does not
try to do anything - previously the tray icon changed to blue gear
at least for a half of second, even if the connection could not
be established - now it just remains gray all the time.

I did try to remove knetworkmanager config file from ~/.kde dir, tried
to login as another user, tried to remove
NetworkManager-kde package and install it again - nothing helped here.

I have installed gnome and tried its native networkmanaged applet -
this one did work. Knetworkmanager still does not.

------
Part2

Ok, I have started kneworkmanager from console. When I select network name
in the menu, I can see the message there:

Activate Connection
/org/freedesktop/NetworkManagerSettings/Connection/7 on Device
/org/freedesktop/Hal/devices/net_00_1f_3c_36_58_77

And nothing else happens - neither in the console, no in UI. So the gui does
react on my connection request, but somehow its HAL cooperation is broken.
Any ideas where to go further?

-------
Part 3
As soon as nobody suggested a simple solution, I have decided to go deeper

I have compiled networkmanager from source code (I have taken the opensuse
src.rpm as svn version did not compile). Then I have found a file with
"Activate Connection" string - that was knetworkmanager-wireless_menuitem.cpp

This is this part of code:

------------
void WirelessNetworkItem::slotActivate()
{
	NMProxy* nm = NMProxy::getInstance();
	int id;
	QDBusError err;
	if (_dev && nm)
	{
		if ( _conn )
		{
			printf("Activate Connection %s on Device %s\n",
_conn->getObjectPath().data(), _dev->getObjectPath().ascii());
			if (!nm->ActivateConnectionAsync(id, NM_DBUS_SERVICE_USER_SETTINGS,
_conn->getObjectPath(),
QDBusObjectPath(QCString(_dev->getObjectPath())),
_conn->getObjectPath(), err)) {
				printf("ActivateDevice failed\n");
			} else {
			  printf("Device activated!!! \n");
			}
...
---------------

Here nm->ActivateConnectionAsync(..) the main call - if it returns false
(device is not activated), the "ActivateDevice failed" message would be printed;
if it would return true (device is activated), nothing would be
printed by default,
but I have added another printf("Device activated!!! \n");, and in my case
I could see this message in the console output when tried to activate network
with knetworkmanager menu.

But even though it prints OK, the network is actually not activated - the
request went somewhere inside DBUS, the response is true, but
things still do not work.

So, it seems that the problem lays further at least somewhere at the DBUS level.
I have installed "kdbus" and could see

/org/freedesktop/NetworkManagerSettings and
/org/freedesktop/Hal/devices

items there, but I do not know what to do further with them.
------

Please help, I just want my internet in kde4 back, I would appreciate any help,
probably the solution is very simple and does not require exploring the source
code and debugging with DBUS

Thank's



More information about the kde-linux mailing list