dspace-group / dsV2Gshark

Free Wireshark plugin to analyze ISO15118 V2G communication between electric vehicles (EV) and charging stations (EVSE).
https://www.dspace.com/en/pub/home/news/wireshark-charging-plug-in.cfm
Other
37 stars 11 forks source link

WireShark Linux Ubuntu 22.04 #7

Closed dfdias closed 4 months ago

dfdias commented 4 months ago

Hello

When I try to open a capture file there is a dissector problem at Lua: Error during execution of initialization: /home/duarte/.local/lib/wireshark/plugins/v2gmsg.lua:133: bad argument #2 to 'add' (DissectorTable_add: must be either Proto or Dissector)

/home/duarte/.local/lib/wireshark/plugins/v2gmsg.lua: attempt to index global 'p_v2gmsg' (a nil value)

I know the windows version works, so do you have any reports in similar problems ?

Thanks in advance.

barsnick commented 4 months ago

Same here. I get it as a modal popup (which hides some of the message), with another message popup on top. But the dissector does seem to work.

Did you get it to work with Wireshark 4.2? I needed to change a lot of code for the binary plugin to load properly.

TGruett commented 4 months ago

Hi,

I have tried to reproduce your errors on a clean Ubuntu 22.04 installation, but everything works perfectly for me. I have tried using Wireshark 3.6.2 from the default apt sources and I also tried Wireshark 4.2.4 (built locally via 'cmake .. && make install'). The only things I have come up with are the following:

If any of this helps you with your problem, i'll be happy about some feedback. Otherwise, could you provide me some more details about your full setup and captured file?

TGruett commented 4 months ago

UPDATE: if finally managed to get the same error message: ~/.local/lib/wireshark/plugins/v2gmsg.lua:133: bad argument to 'add' (DissectorTable_add: must be either Proto or Dissector)

This only seems to happen if you put the .lua file in the ~/.local/lib/wireshark directory. I've tested the Linux plugin version by putting the .lua files in /usr/lib/x86_64-linux-gnu/wireshark or /usr/local/lib/wireshark (whatever $whereis wireshark told me).

I will take a closer look at this, but for now i recommend to remove the files from the ~/.local/lib/wireshark and use the "Global Lua Plugins" directory. You can find the specific path in the Wireshark GUI -> Help -> About Wireshark -> Folders.

barsnick commented 4 months ago

This only seems to happen if you put the *.lua file in the ~/.local/lib/wireshark directory.

Interesting, I would never have guessed this. Same for the shared objects - these can usually be located in ~/.local/lib/wireshark/plugins.bak/{3.6,4.0}/epan/, making it a classical "plugin", unlike an integrated dissector. Using this location does not work for the libraries in your binary package (at least for Wireshark 4.x) or compiled from source, as these "local" binaries require additional symbols. (I have a local patch for that.) It would be great to be able to use this like a classic plugin (just through the files into these user-owned locations).

TGruett commented 4 months ago

If you add the additional (dummy?) symbols to the binaries, doesn't it make the binaries Wireshark version dependend (like 'classical plugins')? This was actually the reason i have not done that

barsnick commented 4 months ago

I'm thinking in terms of being able to compile and install something as a user without system privileges. That's why I'm aiming at this approach. (Install wireshark-dev or wireshark-devel, make, copy to ~/.local/ as a process. I consider having to install to /usr as root a hack.)

In terms of distributed "generic" binaries, you're probably correct regarding 3.x vs. 4.x and the Wireshark API - you would have to distribute different binaries. I don't see an issue though using a plugin compiled against e.g. 4.0 with 4.2.x. (I don't actually know whether you can make 4.x plugins binary compatible with 3.x. I looked into Wireshark plugins a lot when reviewing CHARGEPOINT's, but my knowledge is mostly Google and trial-and-error.)

Yes, that would imply different conditional code paths and compile paths (and CI workflows). Not sure you want to go that path. 😉

TGruett commented 4 months ago

Fixed in Release 1.3.1

dfdias commented 4 months ago

Thanks Mates :) well done :+1: