BM818-tool does not catch firmware version

I updated the package today, and it no longer pulls the Broadmobi modem details after entering the root password (the old version ran as a regular user (which may be partially why this occurred)). This is not a deal-breaker since the modem’s operations and calling are not affected.

3 Likes

The old version relies on having access to the device, which is owned by group dialout, from user purism, which is in group dialout - hence why it worked. Example:

$ ls -l /dev/ttyUSB1
crw-rw---- 1 root dialout 188, 1 Jun  5 10:16 /dev/ttyUSB1
$ groups
purism dialout sudo audio video systemd-journal render netdev feedbackd

So either something with the above has changed or the implementation of bm818-tool has changed or something else has gone wrong.

Note that the value that is displayed by bm818-tool is the “software version” in the parlance of the BM818, as distinct from the “firmware version” that is displayed by
mmcli -m any | grep firmware

You can get the software version with an AT command, if you want to go down that road.

2 Likes

FWIW, I just let mine upgrade bm818-tools from 0.7-0pureos1 to 0.8-0pureos1 (and that was the only package that was upgraded) and I now see the same misbehaviour.

You can workaround all the authentication stuff by running the tool from the terminal, but it still doesn’t actually work. So I guess something is just broken. If you speak Python, you might try to follow
/usr/bin/bm818-tool

2 Likes

Apparently serial port is not found… Wierd.

1 Like

Looks as if ID_MM_PORT_TYPE_AT_PPP is not getting set for any of the four ttyUSBn devices. I have exactly no idea how that gets set. So it loops through (enumerates) the devices correctly but does not find favour with any device and therefore doesn’t attempt to communicate with the device using AT commands. The problem may not be with the tool itself.

My guess is that if you don’t already have VoLTE set then you won’t be able to set it, which would be a problem for new users!

2 Likes

Thankfully for me, VoLTE is set and works fine from the previous version. But the tool was a nice GUI for when you want to turn the brain off.

1 Like

It will be annoying to have to do this every time now, no doubt.

2 Likes

But even then it doesn’t run right lol

2 Likes

It’s because of a patch that’s present in crimson’s ModemManager package but is missing in byzantium. Update’s incoming.

May I ask what does “every time” mean? It’s pretty much a one-time use tool.

The user should not be in the dialout group. Such configuration is insecure.

5 Likes

modemmanager 1.18.6-1pureos5 is now in byzantium-updates.

3 Likes

I believe that the installer itself (for the package bm818-tools) plonks the user (purism, or more specifically, whichever user is installing that package) into the dialout group. I think you can find discussion in this forum to support that assertion.

I’m inclined to agree with you that it is preferable security not to set things up this way. (It is possible that the installer has subsequently been fixed not to require that, one way or another, but that doesn’t necessarily reverse the earlier addition of the user into the group.)

For enabling VoLTE, yes, but I don’t know of any easy alternative way of getting the BM818 software version(s), and that’s the sort of thing that could come up more than once.

2 Likes

It did in the past, but doesn’t anymore.

4 Likes

To get the details, you need to perform an exorcism. (Because that’ where the devil is of course.)

1 Like

Verifying VoLTE during a call, troubleshooting VoLTE when it’s not working, reading the modem firmware version, enabling/disabling CBS.

I’m already logged in twice, after all (luks, user account). Lol. A password isn’t required to change other communication settings.

It’s not a huge deal, just annoying. However, I can live with it.

4 Likes

Every time the tool is opened, root auth is required.

1 Like

Yes, that’s how it should work right now.

2 Likes

This appears to have been fixed now (after the update to ModemManager, as adumbrated by @‍dos).

Yes, it doesn’t exhibit the usual (default) 15 minute sudo credentials cache time. C’est la vie. At least it works now. :wink:

Indeed. However it is a natural consequence of the Linux security model.

The issue here is not that settings are being changed. The issue is that the program communicates directly with a device. So the program needs access to the device one way or another. There are multiple ways of addressing that but in terms of priority, I would rather Purism devote software engineering cycles to fixing other things.

I could be wrong but I think that because this is a Python program there is no way to use the setuid bit functionality directly (or, technically, no secure way). This limitation applies to all executables that rely on an interpreter or, in any case, run a general executable in order to execute the actual program, hence also true of shell scripts, awk scripts and Java programs (as contrasted with native binary executables).

I think another issue here is that the program has a GUI. If it were command line then at least you could use and get the normal sudo behaviour.

I suspect that in the not too distant future, VoLTE will be required everywhere on the planet, and so Purism might just ship phones with VoLTE already enabled and/or make the setting disappear into automatic functionality, so the user would never ordinarily need to check or change the VoLTE setting (because it would be pointless to do so).

Yes, I would like the modem software version to be available somewhere else, without running this tool.

I don’t think CBS actually works yet (work-in-progress) but when CBS does work, Purism might look at this again (as this ought to be a setting that users do have control over c.f. VoLTE).

I think the overall design approach is (or should be?) … Purism does what regular users can’t reasonably be expected to do. Regular users don’t know the magic AT command to enable VoLTE (or CBS) - and may find it cumbersome to execute AT commands even when they do know the command. Regular users are capable of typing their own password. :wink:

3 Likes

CBS apparently will work in Dawn

3 Likes

Well, I’d say it’s more a consequence of things like IMS settings not being properly exposed via ModemManager’s APIs. bm818-utils package is a stop gap that talks directly to the modem using vendor-specific AT commands - ideally nothing would need to do that at all, but we are where we are.

I believe that’s what already happens (it didn’t in the past though).

3 Likes