Simcom SIM7600G-H alternative modem for L5 tested

Has anyone come across a good primer/manual on passing configuration settings to kernel from console? I want to modify driver temporarily (without creating a special kernel and driver). Has anyone done something like this?

Do you want to

  • change the source of a module
  • pass parameters to the kernel command line
  • automatically set parameters in sysfs

?

Something needs to change in driver file [linux-src]/drivers/usb/serial/option.c … Not sure if it’s “change whole line” or “change specific string”

Clone the repo in source.puri.sm, change the file, wait for the automatic build :upside_down_face:

Would not know where to start (or rather, would start and end up in the deep end for months) --> hence the request for detailed instructions for something very like this.

That being said, isn’t that overkill? Or is the temporary setting of config not possible?

1 Like

That question is not complete as you ask it :wink: . The kernel is configured through various interfaces:

  • kernel command line: parameters given to the kernel when loaded e.g. by the boot-loader or kexec
  • runtime configuration
    • /sys
    • options when a module is loaded (modinfo <module>, man, kernel docs)
    • /proc (sysctl)
  • compile time configuration

You need to know where to change something and then you can decide whether you need to compile anything.

This sounds very much like you want to change something that needs to be compiled and the most simple way is to do that in a repo, let source.puri.sm build the package and install it (or get the module(s) from the resulting package and load them with your running kernel).

  • if you do not have an account to source.puri.sm - open one and inform support@puri.sm, the forum here, some purism people on a matrix channel about that you wait to be approved
  • log in once approved and go to https://source.puri.sm/Librem5/linux
  • click on the fork button in the upper right corner (might need some time)
  • select branch pureos/byzantium in Repository/Files (you should have gotten that page after the forking succeeded)
  • click on the + beside pureos/byzantium and select new branch
  • give the branch some name and make sure it says Create from pureos/byzantium (please correct me @dos if that is not the right branch of the actual kernel :slight_smile: ) - click Create branch
  • now that created branch should be shown in the ‘click open list’ for branches/tags
  • navigate to the file you’d like to change
  • click the list beside Open in Web IDE open and select whatever you’ll like better (edit for me so far), click edit or Open in Web IDE to edit the file
  • scroll down the page to find the commit changes button (don’t forget to comment :slight_smile: )
  • in the menu to the left click on CI/CD/Pipelines - you should see a pipeline running for the changes you made
  • wait it to finish - use the time to configure your forked repository so that others might look at it if you want to share what you’re doing Settings/General/Visibility, project features, permissions: set Project visibility to public (like I did to let people without accounts to look at the repo) or Internal to share only with people logged in to source.puri.sm - scroll down and save changes
  • once the pipeline finished running, you can use the download button in the right column to get the result

Just to give you an example - while I wrote this I did this:

Pipeline is still running for the non-sense change and if there’ll not be an error you can download the new kernel package(s). From the package you’ll be able to extract the module to test it (if the kernel source had been exactly the one of the kernel you’re running) or you could just install the package if you’re sure it’ll not break you’re boot process (but that you could fix probably by using jumpdrive to re-install the original kernel package).

All new to you? Yes, for me it has been, too, two or three month ago. All the people on the matrix channels have been very kind and helpful and pointed me to the right resources. If you’re not on room: #librem-5-devkit:talk.puri.sm on matrix come and visit :slight_smile: .

1 Like

Thanks, this gets me started. May take a week or two but I’ll get back how this goes (failure is an option).

Hello @JR-Fi , as meanwhile the Librem 5 can be suspend, did you notice any difference in the standby time with your Simcom modem compared to the Broadmobi BM818?

I don’t know any AT command related to sleep/standby for the Simcom, but maybe it does that automatically?
The working command on Pinephone is this.
The BM818 modem may be not capable?

I never tested this back then since there were bigger issues. I have no idea and its not the modem I’ve been using.

Ah, ok, thanks for answering.

Maybe could you still put the modem in again? Just to check a full battery cycle in stand-by?

Because if it uses less battery by default, compared to the stock BM818, or can actually be put in some online-standby power saving state like the Pinphone modem, then it’s a real incentive for all others to also get the audio setup working, to get a better quality, multi-day-standby, global modem.

A SIM7600G-H voice call howto on the raspbian.

Maybe I misunderstood you, what modem have you been using meanwhile, yet another global one?

I went back to the regular. This was just an experiment when I had it on loan. Depending how things go, I might possibly have slight chance to do testing around December-January, maybe.
As a possible alternative, I think better might be: [Update: Mar 25th] Testing Quectel EM12-G WWAN 4G Modem on Librem 5

Thanks for that pointer, I think you’re right that it might possibly work better, beyond fitting without hardware modding. Because comparing the specs I now found that Simcom did not mention VoLTE anywhere, but the EM12-G does. However, both specs say <20mA in idle and <5mA in active sleep.

What about this bad boy, it’s 5G.

That model is 10mm too long to fit to L5. There are many modems that are 5G but have wrong dimensions or they have missing features because they are mostly not meant for voice calls (5G does not automatically mean it works).

1 Like

ah ok, too bad.

1 Like

And then there’s the question of the antenna… Wouldn’t 5G require a different kind?

3 Likes

I would think so, but it depends on which 5G, there is quite a spectrum of frequencies that are employed for 5G I think.

3 Likes

As long as it is a “5G NSA” (non-stand-alone) modem, I would pretty much expect there is some option to only use (or prefer) the LTE network. Even for modems supporting “5G SA”, I mean it has usually always been possible to switch back, e.g. to using only GSM service.

1 Like