Lenovo branded EM160R-GL not detected in any way

Hello I recently bought a new 4g module and I can’t get it to be recognized at all. When plugged in the activity light flashes then immediately turns off and never does anything again. I’m reasonably new to this so any help would be appreciated.

1 Like

What does dmesg and lsusb say ?

I belive this modem will be PCIe conncted in a Lenovo laptop. Not sure it shows up as a USB device at all?

In any case, the FCC has tricked Lenovo into crippling modems with an "FCC unlock" procedure. Aleksander has documented the current status very well here: https://modemmanager.org/docs/modemmanager/fcc-unlock/

This is a problem when using a Lenovo modem on OpenWrt. Some of the older ones can be unlocked easily with a simple QMI request, implemented in libqmi and uqmi. But the newer ones are worse. Don't expect unlocking of those to ever become available on non-PC platforms.

In short: Don't buy Lenovo/HP/Dell/etc modems. This implies being careful with unofficial dsitribution channels unfortunately. Most modems there are either engineering samples, fakes or laptop parts. Buy modules intended for embedded devices directly from official distributors instead. Or buy known good second hand modems.

1 Like

Googled the model specified, spec says pcie or USB, I'm just carpet bombing.... ,)

I would think about eFuse first. Quoting EM120R-GL&EM160R-GL Hardware Design document:

EM120R-GL and EM160R-GL can also be reprogrammed to PCIe mode based on eFuse. If the
communication is switched to PCIe mode by burnt eFuse, the communication cannot be switched back to USB mode.

I had found a Linux program that says it supports unlocking the specific module and it seems to be from Lenovo I’ll let you know what it was called when I get back home

I have no idea what that is. Is there a way to fix it?

I’ll let you know when I get back home.

Yes, but that will be a binary intended for a PC. It won't run on most OpenWrt targets. Except x86 of course. EDIT: But don't get high hopes for wrt x86 OpenWrt either. The program verifies that it is running on one of the laptops approved with that modem. This will fail unless you happen to run OpenWrt on such a laptop.

I do have an x86 machine running openwrt but sadly I don’t have one of the supported laptops. Do you think it’s possible to trick it into thinking it’s running on the right device? Or maybe bypass the check all together?

I think you should read the link I poined to. It explains both why this can't be done and what you can do about it for your specific case.

For anyone else: Don't buy FCC locked modems. You can assume that any modem with a laptop vendor part number is locked. It's really that simple.

(unless you are getting a modem for a laptop with a modem whitelist of course - then you don't have any choice)

lsusb just says -ash: lsusb: not found

Not sure what I should be looking for in dmesg

I’m probably just being an idiot but I don’t really see anything talking about my specific case. I tried doing on of the commands listed and it says /use/share/ModemManager/fcc-unlock.available.d/1eac:1001: No such file or directory. That one said it was for a different quectel modem but I thought I would try it anyway.

That command is part of the usbutils package. Install usbutils and try lsusb again.

Ok I installed it. It doesn’t show the model at all. When I plug another module into the same adapter then that module is detected just fine.

lspci then?

1 Like

Neither module shows up in lspci

If you're talking about a PCIe to USB modem adapter, those require the USB bus to be active on the module. The PCIe pins in the slot are not connected. The PCIe mode of the module requires a slot that has an active PCIe bus, such as one on a motherboard.

I am using an m.2 to mini pcie adapter and also have an m.2 to USB adapter I’ve tried and neither work.