Personal tools

Difference between revisions of "PCI7600G LTE module setting"

From ICOP tech wiki

Jump to: navigation, search
(Created page with "=Recipe for building Yocto Linux for EBOX-IMX8MM= __FORCETOC__ <br /> '''Recipe for building Yocto Linux for EBOX-IMX8MM:''' https://ftp.icop.com.tw/share/q9dqbQS0 '''Che...")
 
 
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
−
=Recipe for building Yocto Linux for EBOX-IMX8MM=
+
=SIMCom SIM7600G MINI PCIE LTE Module driver setting under Yocto 2.5=
−
__FORCETOC__  
+
__FORCETOC__
−
 
 
−
<br />
 
−
'''Recipe for building Yocto Linux for EBOX-IMX8MM:'''
 
−
 
 
−
https://ftp.icop.com.tw/share/q9dqbQS0
 
−
 
 
−
 
 
−
'''Check the compiling method on the open document form NXP:'''
 
−
 
 
−
https://www.nxp.com/docs/en/user-guide/IMXLXYOCTOUG.pdf
 
−
<br />
 
−
<br />
 
−
 
 
−
<big>'''Suggest O/S''':Ubuntu 18.04 or later.</big>
 
−
 
 
−
Please comment out content to the local.conf to avoid the error during building the SDL.
 
−
<pre>
 
−
#PACKAGECONFIG_append_pn-qemu-native = " sdl"
 
−
#PACKAGECONFIG_append_pn-nativesdk-qemu = " sdl"
 
−
</pre><big>'''Storage:''' Please make sure the capacity of your storage has 120GB or bigger space</big>
 
−
<big>'''RAM:''' Please make sure the physical memory + swap has 16GB or bigger capacity.</big><br />
 
 
==<big>Procedure</big>==
 
==<big>Procedure</big>==
−
'''Step 1.''' Install Host packages:
+
'''Step 1.''' Installing USB serial driver
  
 
Essential Yocto Project host packages:
 
Essential Yocto Project host packages:
 
<pre>
 
<pre>
−
$ sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib \
+
    -   < > USB Serial Converter Support --- >
−
build-essential chrpath socat libsdl1.2-dev
+
    -   [ ] USB Generic Serial Driver
−
</pre>
+
    -   < > USB driver for GSM and CDMA modems
−
 
−
i.MX layers host packages for a Ubuntu 12.04 or 14.04 host setup are:<pre>
 
−
$ sudo apt-get install libsdl1.2-dev xterm sed cvs subversion coreutils texi2html \
 
−
docbook-utils python-pysqlite2 help2man make gcc g++ desktop-file-utils \
 
−
libgl1-mesa-dev libglu1-mesa-dev mercurial autoconf automake groff curl lzop asciidoc
 
−
</pre>
 
  
 +
    +    <*> USB Serial Converter Support --- >
 +
    +    [*] USB Generic Serial Driver
 +
    +    <*> USB driver for GSM and CDMA modems
  
−
'''Step 2.''' Insalling the repo utility:
 
−
 
−
Create the bin folder in the home directory:
 
−
<pre>
 
−
$ mkdir ~/bin (this step may not be needed if the bin folder already exists)
 
−
$ curl <nowiki>https://storage.googleapis.com/git-repo-downloads/repo</nowiki> > ~/bin/repo
 
−
$ chmod a+x ~/bin/repo
 
 
</pre>
 
</pre>
−
 
+
−
 
+
Revise the content in kernel/drivers/usb/serial/option.c<pre>
−
'''Step 3.''' Add the following line to the .bashrc file to make sure the ~/bin folder is in the PATH.
+
    /* SIM7600 */
−
<pre>
+
    #define SIMCOM_SIM7600_VID 0x1E0E
−
export PATH=~/bin:$PATH
+
    #define SIMCOM_SIM7600_PID 0x9001
 
</pre>
 
</pre>
  
−
 
+
Add the content below to option-ids list<pre>
−
'''Step 4.''' Ensure the git is properly set up by commands below:
+
{ USB_DEVICE(SIMCOM_SIM7600_VID, SIMCOM_SIM7600_PID)}, /*SIM7600 */
−
<pre>
 
−
$ git config --global user.name "Your Name"
 
−
$ git config --global user.email "Your Email"
 
−
$ git config --list
 
 
</pre>
 
</pre>
  
−
 
+
 Add the content below to option_probe<pre>
−
'''Step 5.''' Download the i.MX Yocto Project Community BSP recipe layers:
+
    /* SIM7600 */
−
<pre>
+
    if (serial->dev->descriptor.idVendor == SIMCOM_SIM7600_VID &&
−
$ mkdir imx-yocto-bsp
+
    serial->dev->descriptor.idProduct == SIMCOM_SIM7600_PID &&
−
$ cd imx-yocto-bsp
+
    serial->interface->cur_altsetting->desc.bInterfaceNumber == 5 )
−
$ repo init -u <nowiki>https://source.codeaurora.org/external/imx/imx-manifest</nowiki> -b \
+
    return -ENODEV;
−
imx-linux-sumo -m imx-4.14.98-2.0.0_ga.xml
 
−
$ repo sync
 
 
</pre>
 
</pre>
  
 +
Execute the command below and there will have 5 different devices:
  
−
'''Step 6.''' Unzip the Recipe for building Yocto Linux for EBOX-IMX8MM to the file ‘imx-yocto-bsp”
+
'''ttyUSB0 ttyUSB1 ttyUSB2 ttyUSB3 ttyUSB4'''<pre>
−
 
+
-C compile linux-imx && bitbake fsl-image-qt5-validation-imx  
−
 
 
−
'''Step 7.''' Create the setup environment by command below (You could change the file name as you want)
 
−
<pre>
 
−
$ DISTRO=fsl-imx-xwayland MACHINE=dm395b source fsl-setup-release.sh -b \
 
−
build-dmp
 
−
</pre>
 
−
 
 
−
Please input “y” when the EULA confirmation pop out.
 
−
 
 
−
 
 
−
'''Step 8.''' Edit conf/local.conf file and add the content below at the bottom:
 
−
<pre>
 
−
CORE_IMAGE_EXTRA_INSTALL += "chromium-ozone-wayland"
 
−
IMAGE_INSTALL_append += " \
 
−
    openssh-sftp-server \
 
−
    ppp \
 
−
    rng-tools \
 
−
    glibc-gconv-utf-16 \
 
−
    expand-rootfs \
 
−
"
 
−
</pre>
 
−
 
 
−
 
 
−
'''Step 9.''' Edit conf/bblayers.conf file and add the content below at the bottom:
 
−
<pre>
 
−
BBLAYERS += " ${BSPDIR}/sources/meta-custom-dmp "
 
−
</pre>
 
−
 
 
−
 
 
−
'''Step 10.''' Run the command below.
 
−
<pre>
 
−
$ bitbake fsl-image-qt5-validation-imx
 
 
</pre>
 
</pre>
  
  
−
The system will start to download and install source code, patch file, and compilation.
+
'''Step 2.''' Mounting the sim7600g.ko driver
  
−
=How to install the image file by UUU.=
+
#Unzip the sim7600g.zip(https://ftp.icop.com.tw/share/iDBN_fy-) to /BSP/source/poke/recipe-core/
−
After implemented bitbake fsl-image-qt5-validation-imx, it will generate an image file and be stored in the file under build-dmp/tmp/deploy/images/dm395b.
+
#Edit BSP/source/poky/meta-poky/conf/layer.conf
 +
#Add MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += “sim7600g”
 +
#Execute bitbake -C compile linux-imx && bitbake fsl-image-qt5-validation-imx
 +
#After the command execute, you will see wwan0 from command ifconfig -a
  
−
<br />In the build-dmp/tmp/deploy/images/dm395b file, we’ll need the file below for the image restoration.
 
−
<pre>
 
−
1. fsl-mage-qt5-validation-imx-dm395b.sdcard.bz2
 
−
2. imx-boot-dm395b-sd.bin-flash_evk
 
−
</pre>
 
  
 +
'''Step 3.''' Testing SIM7600G (Will return an ok if succeed.
  
−
Input command to get the image file - fsl-mage-qt5-validation-imx-dm395b.sdcard
+
#Plugin SIM7600G before booting up the board.
−
 
+
#Open the terminal and enter minicom -d /dev/ttyUSB2.
−
(In this file, there are packaged kernel and rootfs):<pre>
+
#Enter at (Ensuring the AT testing command); it will return an ok if it’s working.
−
$ bzip2 -d fsl-mage-qt5-validation-imx-dm395b.sdcard.bz2
+
#Enter at+cpin? (Checking the status of the SIM card); it will return a “READY” if it’s working, and if return +CME ERROR: SIM not inserted means the SIM card is not plugged in.
−
</pre>Download the UUU.auto sample:https://ftp.icop.com.tw/share/MT0Eqdo6
+
#Enter at+csq (Checking the strength of the signal, and the antenna should be installed on the MAIN of SIM7600G); If it returns +CSQ: 0~31.99 means it’s normal, and 99.99 means it’s an error.
−
 
+
#Enter at+cops? (Checking the telecom)
−
 
+
#Enter at+cpsi? ( Checking UE system data )
−
 
+
#Enter at+cmgs=“+8869xxxxxxxx”(Phone number), and it will return >; enter some content like “testing” and press ctrl+z to send it out. You will receive the message on your phone.
−
If you have requirement to change the file name, please follow the steps below to change your file name (You could choose not changing the file name.)<pre>
+
#Using a phone and dial the number the sim card you used in SIM7600G, and if the minicom shows RING means the testing passed.
−
SDP: boot -f XXX.bin-flash_evk
+
#Open another terminal and enter echo “at\$qcrmcall=1,1” > /dev/ttyUSB3, and the minicom will return $QCRMCALL:1,V4
−
SDPU: write -f XXX.bin-flash_evk -offset 0x57c00
+
#Enter ifconfig wwan0 up
−
SDPS: boot -f XXX.bin-flash_evk
+
#Enter udhcpc -i wwan0
−
SDPV write -f XXX.bin-flash_evk -skipspl
+
#Enter ping 8.8.8.8 -c 5 to test 4G internet.
−
FB: flash bootloader XXX.bin-flash_evk
 
−
XXX.bin-flash_evk = imx-boot-dm395b-sd.bin-flash_evk 
 
−
 
 
−
FB: flash -raw2sparse all XXX.image 
 
−
XXX.image = fsl-mage-qt5-validation-imx-dm395b.sdcard
 
−
</pre>After you have set your own file name, you could input the command below to install the Yocto Linux<pre>
 
−
uuu uuu.auto
 
−
</pre>
 

Latest revision as of 13:01, 30 March 2022

SIMCom SIM7600G MINI PCIE LTE Module driver setting under Yocto 2.5

Procedure

Step 1. Installing USB serial driver

Essential Yocto Project host packages:

    -    < > USB Serial Converter Support --- >
    -    [ ] USB Generic Serial Driver
    -    < > USB driver for GSM and CDMA modems

    +    <*> USB Serial Converter Support --- >
    +    [*] USB Generic Serial Driver
    +    <*> USB driver for GSM and CDMA modems

Revise the content in kernel/drivers/usb/serial/option.c

    /* SIM7600 */
    #define SIMCOM_SIM7600_VID 0x1E0E
    #define SIMCOM_SIM7600_PID 0x9001

Add the content below to option-ids list

{ USB_DEVICE(SIMCOM_SIM7600_VID, SIMCOM_SIM7600_PID)}, /*SIM7600 */ 

 Add the content below to option_probe

    /* SIM7600 */
    if (serial->dev->descriptor.idVendor == SIMCOM_SIM7600_VID && 
    serial->dev->descriptor.idProduct == SIMCOM_SIM7600_PID &&
    serial->interface->cur_altsetting->desc.bInterfaceNumber == 5 )
    return -ENODEV; 

Execute the command below and there will have 5 different devices:

ttyUSB0 ttyUSB1 ttyUSB2 ttyUSB3 ttyUSB4

-C compile linux-imx && bitbake fsl-image-qt5-validation-imx 


Step 2. Mounting the sim7600g.ko driver

  1. Unzip the sim7600g.zip(https://ftp.icop.com.tw/share/iDBN_fy-) to /BSP/source/poke/recipe-core/
  2. Edit BSP/source/poky/meta-poky/conf/layer.conf
  3. Add MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += “sim7600g”
  4. Execute bitbake -C compile linux-imx && bitbake fsl-image-qt5-validation-imx
  5. After the command execute, you will see wwan0 from command ifconfig -a


Step 3. Testing SIM7600G (Will return an ok if succeed.

  1. Plugin SIM7600G before booting up the board.
  2. Open the terminal and enter minicom -d /dev/ttyUSB2.
  3. Enter at (Ensuring the AT testing command); it will return an ok if it’s working.
  4. Enter at+cpin? (Checking the status of the SIM card); it will return a “READY” if it’s working, and if return +CME ERROR: SIM not inserted means the SIM card is not plugged in.
  5. Enter at+csq (Checking the strength of the signal, and the antenna should be installed on the MAIN of SIM7600G); If it returns +CSQ: 0~31.99 means it’s normal, and 99.99 means it’s an error.
  6. Enter at+cops? (Checking the telecom)
  7. Enter at+cpsi? ( Checking UE system data )
  8. Enter at+cmgs=“+8869xxxxxxxx”(Phone number), and it will return >; enter some content like “testing” and press ctrl+z to send it out. You will receive the message on your phone.
  9. Using a phone and dial the number the sim card you used in SIM7600G, and if the minicom shows RING means the testing passed.
  10. Open another terminal and enter echo “at\$qcrmcall=1,1” > /dev/ttyUSB3, and the minicom will return $QCRMCALL:1,V4
  11. Enter ifconfig wwan0 up
  12. Enter udhcpc -i wwan0
  13. Enter ping 8.8.8.8 -c 5 to test 4G internet.