DebuggingNetworkManager

Differences between revisions 48 and 57 (spanning 9 versions)
Revision 48 as of 2014-07-05 22:07:32
Size: 4386
Editor: 50-1-89-34
Comment:
Revision 57 as of 2023-06-27 20:21:45
Size: 5239
Editor: hellsworth
Comment: Added brief section on netplan
Deletions are marked like this. Additions are marked like this.
Line 4: Line 4:
== Bug Summary ==
= Bug Summary =
Line 12: Line 13:
== Understanding your bug and getting more information == = Understanding your bug and getting more information =
Line 17: Line 18:
 * The similar reason/status code data for wpasupplicant is available here: [[http://hostap.epitest.fi/gitweb/gitweb.cgi?p=hostap.git;a=blob;f=src/common/ieee802_11_defs.h|ieee802_11_defs.h]]
Line 19: Line 19:
= Getting debug logs =
Line 20: Line 21:
== Getting debug logs == You can then follow developers' intructions on a bug report for the exact command line to use; or run it directly as such.
Line 22: Line 23:
First, make sure you have the debug helper script: [[http://cgit.freedesktop.org/NetworkManager/NetworkManager/plain/test/debug-helper.py]]. == Getting NetworkManager debug logs ==
Line 24: Line 25:
Download it with the following command: By default, the NetworkManager log level is set to info. You can use nmcli to modify the logging level:
Line 27: Line 28:
wget http://cgit.freedesktop.org/NetworkManager/NetworkManager/plain/test/debug-helper.py $ sudo nmcli general logging level DEBUG domains ALL
Line 30: Line 31:
You can then follow developers' intructions on a bug report for the exact command line to use; or run it directly as such:

=== Getting NetworkManager debug logs ===
You do not need to restart NetworkManager to begin seeing debug messages logged to journalctl. You can watch the NetworkManager logs:
Line 35: Line 34:
sudo python debug-helper.py --nm debug $ sudo journalctl -f -u NetworkManager
Line 38: Line 37:
Then get the logs which will be written to /var/log/syslog. To disable it, pass '''info''' instead of '''debug''' in the above command, or reboot. == Getting ModemManager debug logs ==
Line 40: Line 39:
=== Getting ModemManager debug logs === Manually run with debug enabled:
Line 43: Line 42:
sudo python debug-helper.py --mm debug $ sudo /usr/sbin/ModemManager --debug
$ sudo /usr/sbin/NetworkManager --debug --log-level=DEBUG
Line 46: Line 46:
Then get the logs which will be written to /var/log/syslog. To disable it, pass '''info''' instead of '''debug''' in the above command, or reboot. See also [[https://modemmanager.org/docs/modemmanager/debugging/|DebuggingModemmanager]].
Line 48: Line 48:
See also [[DebuggingModemmanager]].

=== Getting wpasupplicant debug logs ===
You do not need to restart ModemManager to begin seeing debug messages logged to journalctl. You can watch the ModemManager logs:
Line 53: Line 51:
sudo python debug-helper.py --wpa msgdump $ sudo journalctl -f -u ModemManager
Line 56: Line 54:
Then get the logs which will be written to /var/log/syslog. To disable it, pass '''info''' instead of '''debug''' in the above command, or reboot. == Getting wpasupplicant debug logs ==
Line 58: Line 56:
=== Getting a capture of syslog === Change the log level:
{{{
$ sudo wpa_cli log_level debug
}}}

You do not need to restart wpa_supplicant to begin seeing debug messages logged to journalctl. You can watch the wpa_supplicant logs:

{{{
$ sudo journalctl -f -u wpa_supplicant
}}}

== Getting a capture of syslog ==
Line 66: Line 75:
 tail -n0 -f /var/log/syslog > /tmp/syslog $ tail -n0 -f /var/log/syslog > /tmp/syslog
Line 81: Line 90:
=== Handling 3G / modem issues === == Handling 3G / modem issues ==
Line 83: Line 92:
An few extra things that are very helpful to add in case of issues with 3G: Here are a few extra things that are very helpful to add in case of issues with 3G.
Line 95: Line 104:
== A Testcase == == Captive portal ==

You can check the status from the cli using:
{{{
$ nmcli networking connectivity check
}}}

Since 1.38, you can set Environment=NM_LOG_CONCHECK=1 in NetworkManager.service and restart the service to get additional debug logging about connectivity checking.

= A Testcase =
Line 99: Line 117:
Stop NetworkManager
First, stop NetworkManager and unload your driver:
Line 102: Line 119:
  sudo stop network-manager $ sudo systemctl stop NetworkManager
$ sudo modprobe -r DRIVER
Line 105: Line 123:
To unload your driver {{{ sudo modprobe -r DRIVER }}}.

Then load the driver {{{ sudo modprobe DRIVER }}} and start NetworkManager:
Next, load the driver and start NetworkManager:
Line 110: Line 125:
  sudo start network-manager $ sudo modprobe DRIVER
$
sudo systemctl start NetworkManager
Line 113: Line 129:
= Netplan =
Line 114: Line 131:
== Debugging Cr A configuration abstraction mechanism has added to NetworkManager as of Ubuntu 23.10, called Netplan. There is a whole [[https://netplan.readthedocs.io/en/stable/|library of netplan documentation]] available. However here is a very basic amount of netplan debugging.

Netplan uses the files in /etc/netplan/*.yaml to generate the running profiles you find at /run/NetworkManager/system-connections/*.nmconnection. If you suspect a feature defined in your /etc/netplan/*.yaml files is not being used, it is a good idea to check that the content matches up.

If you find a netplan bug, please report it here: https://bugs.launchpad.net/netplan/+filebug

Available languages: Italiano,

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

Getting debug logs

You can then follow developers' intructions on a bug report for the exact command line to use; or run it directly as such.

Getting NetworkManager debug logs

By default, the NetworkManager log level is set to info. You can use nmcli to modify the logging level:

$ sudo nmcli general logging level DEBUG domains ALL

You do not need to restart NetworkManager to begin seeing debug messages logged to journalctl. You can watch the NetworkManager logs:

$ sudo journalctl -f -u NetworkManager

Getting ModemManager debug logs

Manually run with debug enabled:

$ sudo /usr/sbin/ModemManager --debug
$ sudo /usr/sbin/NetworkManager --debug --log-level=DEBUG

See also DebuggingModemmanager.

You do not need to restart ModemManager to begin seeing debug messages logged to journalctl. You can watch the ModemManager logs:

$ sudo journalctl -f -u ModemManager

Getting wpasupplicant debug logs

Change the log level:

$ sudo wpa_cli log_level debug

You do not need to restart wpa_supplicant to begin seeing debug messages logged to journalctl. You can watch the wpa_supplicant logs:

$ sudo journalctl -f -u wpa_supplicant

Getting a capture of syslog

Mixing and mashing the above is perfectly acceptable as well if you want to see how NetworkManager and other parts of the stack interact together.

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 ...
...

Handling 3G / modem issues

Here are a few extra things that are very helpful to add in case of issues with 3G.

The output of udevadm for tty devices, and output of lsusb:

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

$ lsusb

Captive portal

You can check the status from the cli using:

$ nmcli networking connectivity check

Since 1.38, you can set Environment=NM_LOG_CONCHECK=1 in NetworkManager.service and restart the service to get additional debug logging about connectivity checking.

A Testcase

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

First, stop NetworkManager and unload your driver:

$ sudo systemctl stop NetworkManager
$ sudo modprobe -r DRIVER

Next, load the driver and start NetworkManager:

$ sudo modprobe DRIVER
$ sudo systemctl start NetworkManager

Netplan

A configuration abstraction mechanism has added to NetworkManager as of Ubuntu 23.10, called Netplan. There is a whole library of netplan documentation available. However here is a very basic amount of netplan debugging.

Netplan uses the files in /etc/netplan/*.yaml to generate the running profiles you find at /run/NetworkManager/system-connections/*.nmconnection. If you suspect a feature defined in your /etc/netplan/*.yaml files is not being used, it is a good idea to check that the content matches up.

If you find a netplan bug, please report it here: https://bugs.launchpad.net/netplan/+filebug

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