I am trying to set up of USB driver for module SIMCOM 8200EA according to the documentation SIM8200 Series_Linux_USB_User_Guide_V1.00.pdf (1.4 MB)
but the commands in this do not work properly. Anyone has figured out the driver for QUECTEL and SIMCOM 5G module for Jetson AGX Orin, please give me some advices. Thanks!
I don’t see any version information in that document relative to the required Linux kernel. Some of that won’t matter due to just adding some USB ID information, but do you have any information on which kernel the code is supposed to be compatible with?
L4T is what actually gets flashed to the Jetson, and this is just Ubuntu plus NVIDIA drivers. You can find the L4T release version with: head -n 1 /etc/nv_tegra_release
You might already have the correct source, but make sure you start with the kernel source from that. There is a larger sources file, and the kernel source is a package within that package.
It looks like they’ve done a fairly thorough job in describing this specifically for a Jetson. Their instructions are for an L4T R32.x installation (find this with “head -n 1 /etc/nv_tegra_release”), so can you verify if your Jetson is an R32.x release?
The exec format error is usually from the wrong architecture. You are cross compiling, so everything has to tell the compiler and tools that this is for arm64/aarch64 (64-bit ARM) rather the x86_64/amd64 (a desktop PC). I suspect that something you modified on the flashing host PC got 64-bit ARM code and 64-bit amd64 code swapped. I am confused though by this (try to copy and paste instead of screenshot, it is easier to quote):
./flash.sh: line 603: ./tegrarcm_v2: cannot execute binary file: Exec format error
Some QEMU tools are used during flash to work with the 64-bit ARM code, and if that isn’t correct, maybe you’d see that error (the QEMU emulator can exec arm64, but if it is missing and the flash software runs the command directly without that, then it tries to exec the wrong architecture).
I suggest carefully running that build and install process again, as you are probably close to having it work. Some line like “ARCH=arm64” is missing or in the wrong place, otherwise I think it would succeed (this assumes you are using a compatible L4T release, mentioned at the top of this post).
• kernel/kernel-5.10/drivers/net/usb/Makefile file.
3. Build the kernel, up to now, it was succussed.
And the problem, which I mentioned is when I tried to flash Jetson Orin to the USB and update the Jetson Module.
L4T R34.x is actually a pre-release. R35.x is the full release (the two are semi-interchangeable, but R35.x is the one which is supported for debugging and other purposes…the quality of R35.x is higher). I will suggest that regardless of what you are doing you start with the latest R35.x release.
That said, the documentation is likely still correct, but there might be patches to the source code fixing issues. Compiling against the R35.x kernel is more likely to succeed since there were a lot of fixes going from R34.x to R35.x.
On the host PC, what do you see from: dpkg -l | grep -i qemu
Basically, I’m curious if QEMU is installed since this is what would execute if ARM code is run.