# Ubuntu mate 21.4, package Wireshark 3.2.7-1~ubuntu20.04.0+wiresharkdevstable1won't start

I installed the latest revision from PPA. Getting the same error as with the repository.

This thing won't let me upload the error screen but in essence it says that

/usr/lib/x86_64-linux-gnu/wireshark/plugins/3.0/ndpi.lua line 54. Bad argument to NEW field.

And on the command line this message displays "XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'"

I've spent quite a bit of time googling to no avail. No idea what to do next. Wireshark worked fine on Ubuntu 16.04 LTS. Something got broken between then and now.

OK, I renamed ndpi.lua to something else. Now the program will start but when I try to monitor a USB channel, it tells me I lack permission. The error message suggested doing the things suggested here. Now what?

More info. When I acknowledge the USB permission, the following appears on the command line.

17:00:49.200 Main Warn QXcbConnection: XCB error: 3 (BadWindow), sequence: 938, resource id: 19495943, major code: 40 (TranslateCoords), minor code: 0

Any other suggestions? I am not trying to run as root.

UPDATE

I tried running wireshark as root and it opened the USB ports as it should. So it looks like a USB port open routine. Any suggestions?

Also, it only showed 5 ports. Is that a hard-coded limit?

Thanks, John

edit retag close merge delete

1. Related question asking about XDG_RUNTIME_DIR.

2. Temporarily move ndpi.lua out of the plugins directory and check for no error or different error.

( 2020-12-20 15:39:44 +0000 )edit

Also I suspect you try to run Wireshark as root. Do not do that, see here why and how to run it as normal user.

( 2020-12-20 19:20:31 +0000 )edit

Perhaps one of the moderators can change the title of this to something about don't run as root.

Have you done the setup for USB Capture?

Then ensure that non-superusers are allowed to capture packets in wireshark.

( 2020-12-21 17:18:05 +0000 )edit

Sort by » oldest newest most voted

(Aha, you're trying to capture on the USB monitor port. See how important it is to be complete in your question? This kind of information is relevant to be able to help you, since we assumed you were capturing on a network interface.)

To be able to capture on USBmon interfaces you'll need to setup a proper File Access Control List (FACL). This is a (relative) new feature in Linux kernels, so that could explain why this was not problem before with 16.04 LTS (disclaimer: I'm not sure when FACLs came into effect in Ubuntu distributions).

This is the command to use to allow yourself to open the USBmon device file:
$sudo /usr/bin/setfacl -m u:$USER:r /dev/usbmon*

This assume the usbmon kernel module is either build in or already loaded at system start. Otherwise you can load it into the kernel as follows:
\$ sudo /sbin/modprobe usbmon

Furthermore, the fact that you only see 5 ports is that these represent the USB busses, not ports. The first represents the 'all busses' monitor device. For further details see here.

more