DebuggingNetworkManager

Differences between revisions 35 and 36
Revision 35 as of 2009-09-09 10:37:03
Size: 7921
Editor: e177161054
Comment:
Revision 36 as of 2010-09-17 19:33:30
Size: 9518
Editor: modemcable251
Comment:
Deletions are marked like this. Additions are marked like this.
Line 11: Line 11:
== Understanding your bug and getting more information ==

 * There is a lot of debugging information available on the GNOME Live wiki: [[http://live.gnome.org/NetworkManager/Debugging|NetworkManager/Debugging]].
 * You can also take a look at [[http://live.gnome.org/DarrenAlbers/NetworkManagerFAQ|Darren Albers' FAQ]].
 * There is additional information on DebuggingNetworkManager/ReasonCodes for disconnection and network changes available.
Line 15: Line 21:
Kill NetworkManager With Karmic and above: Stop NetworkManager

{{{
  sudo stop network-manager
}}}

Prior to Karmic (9.10): Kill NetworkManager
Line 23: Line 35:

With Karmic and up:
{{{
  sudo start network-manager
}}}

Up until Karmic:
Line 36: Line 55:
Adding markers is just like adding new lines with an editor that show the triager what happened at what point of time. Adding markers is just like adding new lines with an editor that show the triager what happened at what point of time. You can also do this on the fly as you test with the command {{{logger "[ clicked on wireless network 'ubuntu']" }}}.
Line 43: Line 62:
Line 49: Line 69:
==== With ModemManager ====

{{{
# become root
sudo -i

# stop NM
stop network-manager

# stop ModemManager
killall -TERM modem-manager

# start ModemManager in debug mode
modem-manager --debug 2>&1 | tee ~/modemmanager.log

# In another terminal, start NetworkManager:
NM_PPP_DEBUG=1 /usr/sbin/NetworkManager --no-daemon 2>&1 | tee ~/networkmanager.log
}}}

Then retrieve both networkmanager.log and modemmanager.log from your home directory and attach them to your bug report.

==== Before ModemManager ====
Line 63: Line 105:
Line 212: Line 255:
It's often a good idea to check in the [[https://edge.launchpad.net/~network-manager/+archive/trunk|NM trunk PPA]] to see if an updated version of NetworkManager fixes the bugs you see. Be careful though, as those are daily builds that may break other things, and are to be considered unstable.

Debugging Central

This page is part of the debugging series — pages with debugging details for a variety of Ubuntu packages.

Bug Summary

If a network-manager bug report is about not being able to connect the title or summary should be in the format:

"[CHIPSET] cannot connect to (ENCRYPT_METHOD)"

where the CHIPSET is the wireless driver used and ENCRYPT_METHOD is the encryption method used by your wireless network.

Understanding your bug and getting more information

A Testcase

A good testcase is a step by step instruction to reproduce your bug starting with driver unloaded and NetworkManager stopped.

With Karmic and above: Stop NetworkManager

  sudo stop network-manager

Prior to Karmic (9.10): Kill NetworkManager

  sudo killall NetworkManager

To unload your driver  sudo modprobe -r DRIVER .

Then load the driver  sudo modprobe DRIVER  and start NetworkManager:

With Karmic and up:

  sudo start network-manager

Up until Karmic:

  sudo NetworkManager

Capture Log

In order to understand whats going on and track down issues, its good to have a full log. To do so, capture the complete test case and submit the whole file (don't cut out what you think is important). Please add markers in the log file so the bug triager can easily see what actions the user takes at what point of time (this isn't essential, but helps a lot).

To capture the syslog, do:

 tail -n0 -f /var/log/syslog > /tmp/syslog

and to stop capturing do Ctrl-C (you will have to type your other commands in an other window or tab)

Adding markers is just like adding new lines with an editor that show the triager what happened at what point of time. You can also do this on the fly as you test with the command logger "[ clicked on wireless network 'ubuntu']" .

Example marker:

Sep  6 08:12:30 ...

[ clicked on wireless network 'ubuntu']

Sep  6 08:12:31 ...
...

Serial Log (Mobile Broadband)

With ModemManager

# become root
sudo -i

# stop NM
stop network-manager

# stop ModemManager
killall -TERM modem-manager

# start ModemManager in debug mode
modem-manager --debug 2>&1 | tee ~/modemmanager.log

# In another terminal, start NetworkManager:
NM_PPP_DEBUG=1 /usr/sbin/NetworkManager --no-daemon 2>&1 | tee ~/networkmanager.log

Then retrieve both networkmanager.log and modemmanager.log from your home directory and attach them to your bug report.

Before ModemManager

# become root
sudo su

# stop NM
/etc/init.d/NetworkManager stop

# start with serial log and tee it in a log file
NM_SERIAL_DEBUG=1 NetworkManager --no-daemon 2>&1 | tee /tmp/nm-serial.txt

... reproduce and attach the nm-serial.txt

Debugging Crashes

To install debug symbols, add the following line to your /etc/apt/sources.list

deb http://ddebs.ubuntu.com/~ubuntu-archive/ddebs/ hardy main universe

or

deb http://ddebs.ubuntu.com/~ubuntu-archive/ddebs/ intrepid main universe

Then install the appropriate dbgsym packages:

  sudo apt-get update
  sudo apt-get install network-manager-dbgsym libnm-util0-dbgsym libnm-glib0-dbgsym libglib2.0-0-dbgsym

or from jaunty on:
  sudo apt-get install network-manager-dbgsym libnm-util1-dbgsym libnm-glib0-dbgsym libglib2.0-0-dbgsym

Then stop NetworkManager (hardy):

sudo /etc/dbus-1/event.d/25NetworkManager stop

or stop NetworkManager (intrepid):

sudo /etc/init.d/NetworkManager stop

Run NetworkManager in a debugger

sudo gdb /usr/sbin/NetworkManager
...
(gdb) run --no-daemon

Once it crashes get a backtrace

(gdb) bt
...
(gdb) bt full
...
(gdb) thread apply all bt full
...

and attach the backtrace above together with your /var/log/syslog to the bug.

Debugging 3G modems

Note: since karmic NM does not handle modems on its own, but uses modem-manager: follow the DebuggingModemmanager instructions.

In case your modem is not detected, open a bug and attach the following information:

if a modem is not detected, but the driver is loaded and so on, you should have /sys/class/tty/ttyUSB or ttyACM or other entries

run

$ /lib/udev/nm-modem-probe --verbose --export /sys/class/tty/ttyUSB
  • or

$ /lib/udev/nm-modem-probe --verbose --export /sys/class/tty/ttyACM
  • to see if it detects GSM or CDMA capabilities

File a bug by running

$ ubuntu-bug network-manager
  • and add the output of the previous nm-modem-probe command, complete syslog, output of

$ udevadm info --query=all --path=/sys/class/tty/... --attribute-walk
  • and

$ lshal

Driver Logs

When a bug appears to be driver related or you are asked by a bug triager to submit a driver enabled log, you need to enable driver logging right before you start to capture your testcase. How to do that depends on the driver you use and whether it has been with compiled with debug support.

Driver Specific Info

IPW (2100,2200, 3945)

Logging

# either during module load:
 modprobe ipw{2100,2200,3945} debug=65535

# or when already loaded you can change the debug_level through /sys/bus/.../drivers/
 echo 65535 > /sys/bus/pci/drivers/ipw{2100,2200,3945}/debug_level

Compiling Module Sources

For debugging purpose or to verify a fix, a developer might ask you to build your driver module from source. for ipwXXXX you can do that by:

# install required headers and build tools
sudo apt-get install module-assistant
sudo module assistant update
sudo module assistant prepare

# build the driver
cd /path/to/ipw-XXXX
make IEEE80211_IGNORE_DUPLICATE=y SHELL=/bin/bash

# backup your old ipw driver:
sudo cp /lib/modules/$(uname -r)/kernel/drivers/net/wireless/ipw3945/ipw3945.ko $HOME

# install the new driver
cp ipw3945.ko /lib/modules/$(uname -r)/kernel/drivers/net/wireless/ipw3945/
depmod -a

# kill regulatory daemon
ipw3945d-$(uname -r) --kill

#load new module
modprobe ipw3945

Bug Tags

These tags allow isolation of bugs into smaller groups, providing an easier and faster way to work on specific issues.

Tag

Use case

`driver-madwifi`

Bugs in which the madwifi driver is in use

`driver-ndiswrapper`

Bugs in which the ndiswrapper driver is in use

`vpn`

Bugs related to either openvpn, vpnc or pptp network-manager vpn modules

`encryption-wep`

Bugs in which WEP encryption is used

`encryption-wpa`

Bugs in which WPA encryption is used

`encryption-wpa2`

Bugs in which WPA2 encryption is used

The previously described tags are specific to the NetworkManager application, if you need more general tags please visit Bugs/Tags page.

Testing a patch

It's often a good idea to check in the NM trunk PPA to see if an updated version of NetworkManager fixes the bugs you see. Be careful though, as those are daily builds that may break other things, and are to be considered unstable.

Sometimes a developer might ask you to test a quick patch he came up with. Below an example how to do that for network-manager. If your bug is for network-manager-applet or some other package, just replace the package name

# get build dependencies
sudo apt-get install build-essential fakeroot devscripts
sudo apt-get build-dep network-manager

# get sources
sudo apt-get source network-manager

# cd into the source directory
cd network-manager-*/

# apply the patch (note that -p1 could also be -p0 if the patch was created without an extra prefix in the diff path)
patch -p1 < /tmp/yourdownloadedpatch.diff

# build binaries only without signing
debuild -b -uc

# packages are produced in parent directory
cd ../

# install all nm packages
sudo dpkg -i network-manager*.deb libnm-*.deb

Note that you didnt change the version of the package. so to get back to the "official" current version you need to do something like:

  sudo apt-get install --reinstall network-manager libnm-util0 libnm-glib0

or from jaunty on
  sudo apt-get install --reinstall network-manager libnm-util1 libnm-glib0

if you installed other packages from the build, do the same for them.


CategoryBugSquad

DebuggingNetworkManager (last edited 2023-06-27 20:21:45 by hellsworth)