Created attachment 200722 [details]
patch to add product id
Adds new product id to support Sierra Wireless EM7455 modem by u3g kernel module. Tested on Lenovo Thinkpad T470p. Please note, because of lack of support QMI protocol by default device is in Low Power Mode, so it need special nvu-file which sends FCC_AUTH=0 to modem. On Linux it can be done by qmicli --dms-set-fcc-authentication command.
root@thinkpad:/usr/src # usbconfig -d 0.3 dump_device_desc
ugen0.3: <Sierra Wireless, Incorporated Sierra Wireless EM7455 Qualcomm Snapdragon X7 LTE-A> at, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (500mA)
bLength = 0x0012
bDescriptorType = 0x0001
bcdUSB = 0x0200
bDeviceClass = 0x0000 <Probed by interface class>
bDeviceSubClass = 0x0000
bDeviceProtocol = 0x0000
bMaxPacketSize0 = 0x0040
idVendor = 0x1199
idProduct = 0x9079
bcdDevice = 0x0006
iManufacturer = 0x0001 <Sierra Wireless, Incorporated>
iProduct = 0x0002 <Sierra Wireless EM7455 Qualcomm Snapdragon X7 LTE-A>
iSerialNumber = 0x0003 <LF75061727011022>
bNumConfigurations = 0x0001
> need special nvu-file which sends FCC_AUTH=0 to modem
Can you expand on this note (i.e., how to obtain or create the nvu-file)
Created attachment 200778 [details]
FCC_auth disabled carrier config
I didn't find a way to disable LPM vi AT-commands and found special nvu-file on russian-speaking technical forum and upload it with new GENERIC firmware to modem using qmi-firmware-update from Ubuntu Live USB.
This python script automates the engineering challenge response via AT commands for many S.W. devices
Having entered engineering mode, you can use cu or similar to connect to the usb serial of the device and issue these commands
The S.W. device will reset and the FCC low power mode will remain disabled forever after.
Further, this at command will list the available usb modes for the device
As far as i can tell the QMI, RMNET and MBIM protocols arent supported in freebsd so ppp via the USB serial port is the only option. Which is available in the 6,7 and 8 modes.
The above can be manipulated in QMI only mode with the script https://git.mork.no/wwan.git/plain/scripts/swi_setusbcomp.pl - which you will need to run on linux. But once AT commands are exposed via usb serial devices you can plug on to BSD.
The above is taken from my personal notes on S.W. devices. There is a lot of arcane magic involved, as you can flash vendor badged devices to generic SW firmware, change their usb VID and PID so that freebsd recognizes it etc. But once you have a generic firmware presenting as a generic USB device - youre in business with the above.
I would be delighted to be proven wrong that QMI, RMNET and MBIM arent supported.
I have Sierra EM7305 on Panasonic Toughbook CF-MX4 and the same problem - the VID/PID is known but the modem is not operational, it needs some additional setup.
In older laptop Panasonic Toughbook CF-C2 also I had Sierra WWAN modem with the same problem. There I have replaced it with another device that was working out of the box.
I know Frank Harvey (firstname.lastname@example.org) is Sierra expert and offered help in solving the problem on the forum nickname phishfry. Maybe we could write a simple libusb based application that would switch these modems into operational state for FreeBSD :-)
There is modeswitch in the ports, but it is better when the kernel handles it.
Is there any progress?
I am a user of OpnSense. And it appears EM7455 is the only LTE card I can use in US.
Not on my side, sorry, eaten up by some other tasks, will get into it maybe in two months, also would like to have it working on my laptop :-)
I can see two problems to solve:
1. Modeswitch so modem works in a way that FreeBSD can make use of. Either userland libusb based or Kernel mode?
2. Device firmwares / binary configs needs to be provided in order to get it into a state that FreeBSD can make use of. Can we provide such binaries with system or as a Port?
Appreciate your feedback.
I think there are two separated problems.
BSD certainly will have to provide a modeswitch utility.
As for the firmware, it should be user's responsibility. As long as there are utilities to flash firmware on any platform, it should ne sufficient.