Qualcomm Robotics RB5/Software Support/SDK/Installing SDK: Difference between revisions

From RidgeRun Developer Wiki
No edit summary
mNo edit summary
 
(20 intermediate revisions by 4 users not shown)
Line 2: Line 2:
{{Qualcomm Robotics RB5/Head|previous=Software_Support/SDK/Getting_started|next=Software_Support/SDK/Generate_flash_SDK|metakeywords=thundercomm sdk,configure,configuration}}
{{Qualcomm Robotics RB5/Head|previous=Software_Support/SDK/Getting_started|next=Software_Support/SDK/Generate_flash_SDK|metakeywords=thundercomm sdk,configure,configuration}}
</noinclude>
</noinclude>
__TOC__
__TOC__
{{DISPLAYTITLE:Qualcomm Robotics RB5/RB6 - Installing SDK Manager|noerror}}
{{DISPLAYTITLE:Qualcomm Robotics RB5/RB6 - Installing SDK Manager|noerror}}


In this section, you will find a guide on how to get the SDK Manager installed and ready to generate an Image for your Robotics RB5/RB6 board<ref name="userguide">Qualcomm® Robotics SDK Manager User Guide. Retrieved January 18, 2023, from [https://thundercomm.s3.ap-northeast-1.amazonaws.com/uploads/web/common/TurboX_SDK%20Manager_User%20Guide.pdf]</ref>. This section assumes that you already have the Thundercomm SDK Manager downloaded in your host computer, if not, please check our [[Qualcomm Robotics RB5/Software_Support/SDK/Getting_started|Downloading SDK]] section.
In this section, you will find a guide on how to get the SDK Manager installed and ready to generate an Image for your Robotics RB5/RB6 board<ref name="userguide">Qualcomm® Robotics SDK Manager User Guide. Retrieved January 18, 2023, from [https://thundercomm.s3.ap-northeast-1.amazonaws.com/uploads/web/common/TurboX_SDK%20Manager_User%20Guide.pdf]</ref>. This section assumes that you already have the Thundercomm SDK Manager downloaded in your host computer, if not, please check our [[Qualcomm Robotics RB5/Software_Support/SDK/Getting_started|Downloading SDK]] section.


We have three main sections, the first one we describes the steps needed if you are working on a host computer with Ubuntu 18.04, next section describes the steps if instead your host computer has another Ubuntu version (16.04, 20.04), finally, last section are the common steps for either Ubuntu version.
==Thundercomm SDK 3.0.0==
 
We have three main sections, the first one we describe the steps needed if you are working on a host computer with Ubuntu 18.04, next section describes the steps if instead your host computer has another Ubuntu version (16.04, 20.04), finally, last section are the common steps for either Ubuntu version.
<br>
<br>


==On Ubuntu 18.04 Host==
===On Ubuntu 18.04 Host===
'''1'''. Install the needed libraries in the host computer:
'''1'''. Install the needed libraries in the host computer:
<syntaxhighlight lang=bash>
<syntaxhighlight lang=bash>
Line 30: Line 34:


'''2'''. From the TC-sdkmanager-x.x.x directory, install the SDK Manager with the following command:
'''2'''. From the TC-sdkmanager-x.x.x directory, install the SDK Manager with the following command:
{{Colored box|background-title-color=#6586B9|title-color=#FFFFFF|title='''Note'''|icon=notice-icon-white.png
{{Colored box|background-title-color=#6586B9|title-color=#FFFFFF|icon=notice-icon-white.png
   |title='''Note'''
   |title='''Note'''
   |content=Make sure to replace the <tc-sdkmanager-vx.x.x_amd64.deb> with the version you downloaded.}}
   |content=Make sure to replace the <tc-sdkmanager-vx.x.x_amd64.deb> with the version you downloaded.
  |style=overflow:hidden;
}}
 
<syntaxhighlight lang=bash>
<syntaxhighlight lang=bash>
sudo dpkg -i tc-sdkmanager-vx.x.x_amd64.deb
sudo dpkg -i tc-sdkmanager-vx.x.x_amd64.deb
Line 38: Line 45:


If you have downloaded the 3.0.0 version, you can use:
If you have downloaded the 3.0.0 version, you can use:
<syntaxhighlight lang=bash>
<syntaxhighlight lang=bash>
sudo dpkg -i tc-sdkmanager-v3.0.0_amd64.deb
sudo dpkg -i tc-sdkmanager-v3.0.0_amd64.deb
Line 44: Line 52:


'''3'''. Launch the SDK Manager
'''3'''. Launch the SDK Manager
<syntaxhighlight lang=bash>
<syntaxhighlight lang=bash>
sdkmanager
sdkmanager
Line 52: Line 61:
<br>
<br>


==On other Ubuntu Hosts(Ubuntu 16.04, 20.04)==
===On other Ubuntu Hosts(Ubuntu 16.04, 20.04)===


'''1'''. Install the following packages:
'''1'''. Install the following packages:
<syntaxhighlight lang=bash>
<syntaxhighlight lang=bash>
sudo apt-get install qemu-user-static openssh-server udev -y
sudo apt-get install qemu-user-static openssh-server udev -y
Line 60: Line 70:
<br>
<br>


'''2'''. Download and install Docker from the following [https://developer.ridgerun.com/wiki/index.php/Docker_Tutorial link].
'''2'''. Download and install Docker from the following [[Docker_Tutorial | link]].
<br>
<br>


'''3'''. Generate the Docker Image for Ubuntu 18.04
'''3'''. Generate the Docker Image for Ubuntu 18.04
{{Colored box|background-title-color=#6586B9|title-color=#FFFFFF|title='''Note'''|icon=notice-icon-white.png
 
{{Colored box|background-title-color=#6586B9|title-color=#FFFFFF|icon=notice-icon-white.png
   |title='''Note'''
   |title='''Note'''
   |content=This command can take up to 30min in a computer with Intel® Core™ i7-1065G7 CPU @ 1.30GHz × 8}}
   |content=This command can take up to 30min in a computer with Intel® Core™ i7-1065G7 CPU @ 1.30GHz × 8
{{Colored box|background-title-color=#6586B9|title-color=#FFFFFF|title='''Note'''|icon=notice-icon-white.png
  |style=overflow:hidden;
}}
 
{{Colored box|background-title-color=#6586B9|title-color=#FFFFFF|icon=notice-icon-white.png
   |title='''Note'''
   |title='''Note'''
   |content=Do not forget the space and full stop at the end of the command: .}}
   |content=Do not forget the space and full stop at the end of the command: .
  |style=overflow:hidden;
}}
 
<syntaxhighlight lang=bash>
<syntaxhighlight lang=bash>
cd TC-sdkmanager-x.x.x/
cd TC-sdkmanager-x.x.x/
Line 76: Line 93:
<br>
<br>


'''4'''. To check if the Docker Image was generated successfully, you can run the following command and should see: <code><ubuntu:18.04-sdkmanager></code>
'''4'''. To check if the Docker Image was generated successfully, you can run the following command and should see:  
<syntaxhighlight lang=bash><ubuntu:18.04-sdkmanager></syntaxhighlight>
 
<syntaxhighlight lang=bash>
<syntaxhighlight lang=bash>
sudo docker images
docker images
</syntaxhighlight>
</syntaxhighlight>
After running the above command, you should see an output similar to the following:
After running the above command, you should see an output similar to the following:
Line 85: Line 104:
ubuntu          18.04-sdkmanager  9be63766537a  6 days ago      556MB
ubuntu          18.04-sdkmanager  9be63766537a  6 days ago      556MB
</syntaxhighlight>
</syntaxhighlight>
Where the one with the TAG name '''18.04-sdkmanager''' is the one of interest. Please have in mind that if you have more than one docker image, your output will have more options.
Where the one with the TAG name '''18.04-sdkmanager''' is the one of interest. Please have in mind that if you have more than one docker image, your output will have more options.
<br>
<br>


'''5'''. Create the Docker container. The container has the Ubuntu image we created previously:
'''5'''. Create the Docker container. The container has the Ubuntu image we created previously:
{{Colored box|background-title-color=#6586B9|title-color=#FFFFFF|title='''Note'''|icon=notice-icon-white.png
 
{{Colored box|background-title-color=#6586B9|title-color=#FFFFFF|icon=notice-icon-white.png
   |title='''Note'''
   |title='''Note'''
   |content=You can change the name of your container replacing <b>sdkmanager_container</b> with a name of your choice.}}
   |content=You can change the name of your container replacing <b>sdkmanager_container</b> with a name of your choice.
  |style=overflow:hidden;
}}


<syntaxhighlight lang=bash>
<syntaxhighlight lang=bash>
Line 97: Line 120:
</syntaxhighlight>
</syntaxhighlight>


To check if the docker container was created succesfully you can run the following command:
To check if the docker container was created successfully you can run the following command:
 
<syntaxhighlight lang=bash>
<syntaxhighlight lang=bash>
sudo docker container ls -a
docker container ls -a
</syntaxhighlight>
</syntaxhighlight>


Line 116: Line 140:
To check if everything went fine, you can run the following command:
To check if everything went fine, you can run the following command:
<syntaxhighlight lang=bash>
<syntaxhighlight lang=bash>
sudo docker container ls -a
docker container ls -a
</syntaxhighlight>
</syntaxhighlight>


Line 146: Line 170:


==Setting up SDK Manager==
==Setting up SDK Manager==
1. Provide Thundercomm login credentials, you should see something like this:
1. Provide Thundercomm login credentials, you should see something like this:
<syntaxhighlight lang=bash>
<syntaxhighlight lang=bash>
Credential Checking ...
Credential Checking ...
Line 153: Line 179:
</syntaxhighlight>
</syntaxhighlight>


<br>
If you do not have one, please register to Thundercomm in their [https://www.thundercomm.com/ official page].
If you do not have one, please register to Thundercomm in their [https://www.thundercomm.com/ official page].
<br>
<br>


'''2'''. Now, the SDK Manager will ask for a target directory for the Image resources. The default directory is <source lang="mylanguage" enclose="none">/root/</source>. In case you want to change the path of installation, provide a another working directory.
'''2'''. Now, the SDK Manager will ask for a target directory for the Image resources. The default directory is  
{{Colored box|background-title-color=#6586B9|title-color=#FFFFFF|title='''Note'''|icon=notice-icon-white.png
<syntaxhighlight lang=bash>/root/</syntaxhighlight>.  
 
In case you want to change the path of installation, provide a another working directory.
<be>
{{Colored box|background-title-color=#6586B9|title-color=#FFFFFF|icon=notice-icon-white.png
   |title='''Note'''
   |title='''Note'''
   |content=If you are not working inside Docker, we suggest to specify another target directory instead of <source lang="mylanguage" enclose="none">/root/</source>, like <source lang="mylanguage" enclose="none">/home/$USER/</source>.]}}
   |content=If you are not working inside Docker, we suggest to specify another target directory instead of  
{{Colored box|background-title-color=#6586B9|title-color=#FFFFFF|title='''Note'''|icon=notice-icon-white.png
  '''/root/''', like '''/home/$USER/'''
  |style=overflow:hidden;
}}
 
{{Colored box|background-title-color=#6586B9|title-color=#FFFFFF|icon=notice-icon-white.png
   |title='''Note'''
   |title='''Note'''
   |content=When asked if you want to proceed, please enter "y" or "Y" if yes and press enter, since it is no set as default.}}
   |content=When asked if you want to proceed, please enter "y" or "Y" if yes and press enter, since it is no set as default.
  |style=overflow:hidden;
}}
<br>
<syntaxhighlight lang=bash>
<syntaxhighlight lang=bash>
Enter absolute target directory for Image resources (overwrites existing files, default: /root/):
Enter absolute target directory for Image resources (overwrites existing files, default: /root/):
Line 171: Line 209:


'''3'''. Choose a product. In this case we are choosing RB5 (option 1).
'''3'''. Choose a product. In this case we are choosing RB5 (option 1).
<syntaxhighlight lang=bash>
<syntaxhighlight lang=bash>
Choose a product
Choose a product
Line 179: Line 218:
'''4'''. Choose an available platform for Robotics RB5 device. The LU platform is for an image based on Ubuntu. On the other hand, LE platform is an image based on Open Embedded. Both of them are based on Linux Kernel 4.19. The LU platform has an Ubuntu rootfs, the apt-get package manager and on-device compilation, while the LE platform is based on the Yocto build system and offers a toolchain for off target compilation. In this guide, we are using the LE platform option.
'''4'''. Choose an available platform for Robotics RB5 device. The LU platform is for an image based on Ubuntu. On the other hand, LE platform is an image based on Open Embedded. Both of them are based on Linux Kernel 4.19. The LU platform has an Ubuntu rootfs, the apt-get package manager and on-device compilation, while the LE platform is based on the Yocto build system and offers a toolchain for off target compilation. In this guide, we are using the LE platform option.


{{Colored box|background-title-color=#6586B9|title-color=#FFFFFF|title='''Note'''|icon=notice-icon-white.png
{{Colored box|background-title-color=#6586B9|title-color=#FFFFFF|icon=notice-icon-white.png
   |title='''Note'''
   |title='''Note'''
   |content=If the product only supports single platform, the SDK Manager will automatically skip this step and go directly to the next one.}}
   |content=If the product only supports single platform, the SDK Manager will automatically skip this step and go directly to the next one.
  |style=overflow:hidden;
}}
 
<syntaxhighlight lang=bash>
<syntaxhighlight lang=bash>
Choose a platform for Robotics RB5 device
Choose a platform for Robotics RB5 device
Line 198: Line 240:


'''6'''. The SDK is now set up and ready to be used. You should be able to see something similar to this if you chose LU platform:
'''6'''. The SDK is now set up and ready to be used. You should be able to see something similar to this if you chose LU platform:
{{Colored box|background-title-color=#6586B9|title-color=#FFFFFF|title='''Note'''|icon=notice-icon-white.png
 
{{Colored box|background-title-color=#6586B9|title-color=#FFFFFF|icon=notice-icon-white.png
   |title='''Note'''
   |title='''Note'''
   |content=Type <help> to use the available options.}}
   |content=Type <help> to use the available options.
  |style=overflow:hidden;
}}
 
<syntaxhighlight lang=bash>
<syntaxhighlight lang=bash>
--------------------------------------------------------
--------------------------------------------------------
Line 229: Line 275:
>  
>  
</syntaxhighlight>
</syntaxhighlight>
<br>
 
==Thundercomm SDK 4.0.1==
As of January 2024, Thundercomm released a new SDK version 4.0.1. This version can be installed on a Ubuntu 20.04 host. RidgeRun tested this SDK version to flash a LU2.0 image. Most of the steps are very similar to SDK 3.0.0, however, make sure to run the following commands (taken from the SDK's README) before launching the sdkmanager to avoid known issues:
 
<syntaxhighlight lang=bash>
sudo rm -rf /lib/ld-linux-aarch64.so.1
sudo ln -sf /usr/aarch64-linux-gnu/lib/ld-2.31.so /lib/ld-linux-aarch64.so.1
sudo ln -sf /bin/bash /bin/sh
sudo dpkg -P qemu-user-static
wget http://archive.ubuntu.com/ubuntu/pool/universe/q/qemu/qemu-user-static_6.2+dfsg-2ubuntu6_amd64.deb
sudo dpkg -i qemu-user-static_6.2+dfsg-2ubuntu6_amd64.deb
</syntaxhighlight>
 
{{Colored box|background-title-color=#6586B9|title-color=#FFFFFF|icon=notice-icon-white.png
  |title='''Note'''
  |content=in the SDK README there is a missing hyphen in the quemu-user-static name used for the wget that will cause a 404 Not Found error.
  |style=overflow:hidden;}}
 
==Known Issues==
While testing Thundercomm's SDK version 4.0.1 we encountered a few issues and documented their solution in this section. The issues appeared when trying to install a LU 2.0 image using Ubuntu 20.04 on the host.
 
===Missing file===
<syntaxhighlight lang=bash>
Start generating system image...
 
/lib/ld-linux-aarch64.so.1: No such file or directory
THIRD_PARTY_TARGET_SOURCELIST:
THIRD_PARTY_TARGET_SOURCELIST not set
/lib/ld-linux-aarch64.so.1: No such file or directory
 
Error happend: You may have encountered Network connection failed or a build Environment error
If an environment error, Please check your build environment.
If an Internet connection timeout. RETURN to MAIN MENU directly, run Step 1 again
 
Checking system.img ...
ls: cannot access '/home/jcaballero/devdirs/TC-sdkmanager-4.0.1/QRB5165.LU2.0_20231103.090618_debug/rootfs/*.ext4': No such file or directory
 
system image repack failed, check errors above
</syntaxhighlight>
 
This happens because the sdk manager creates a symbolic link to ld 2.27 but Ubuntu 20 has ld 2.31 installed:
<syntaxhighlight lang=bash>
jcaballero@jcaballero-work:~/devdirs/TC-sdkmanager-4.0.1$ ls -alh /lib/ld-linux-aarch64.so.1
lrwxrwxrwx 1 root root 37 ene  8 16:22 /lib/ld-linux-aarch64.so.1 -> /usr/aarch64-linux-gnu/lib/ld-2.27.so
jcaballero@jcaballero-work:~/devdirs/TC-sdkmanager-4.0.1$ ls /usr/aarch64-linux-gnu/lib/ld*so
/usr/aarch64-linux-gnu/lib/ld-2.31.so
</syntaxhighlight>
 
To avoid this issue run:
<syntaxhighlight lang=bash>
sudo rm -rf /lib/ld-linux-aarch64.so.1
sudo ln -sf /usr/aarch64-linux-gnu/lib/ld-2.31.so /lib/ld-linux-aarch64.so.1
</syntaxhighlight>
 
===Function not implemented===
 
<syntaxhighlight lang=bash>
Start generating system image...
 
semop(1): encountered an error: Function not implemented
THIRD_PARTY_TARGET_SOURCELIST:
THIRD_PARTY_TARGET_SOURCELIST not set
semop(1): encountered an error: Function not implemented
 
Error happend: You may have encountered Network connection failed or a build Environment error
If an environment error, Please check your build environment.
If an Internet connection timeout. RETURN to MAIN MENU directly, run Step 1 again
 
Checking system.img ...
ls: cannot access '/home/jcaballero/devdirs/TC-sdkmanager-4.0.1/QRB5165.LU2.0_20231103.090618_debug/rootfs/*.ext4': No such file or directory
 
system image repack failed, check errors above
>
</syntaxhighlight>
 
To avoid this error, run the following:
<syntaxhighlight lang=bash>
sudo dpkg -P qemu-user-static
wget http://archive.ubuntu.com/ubuntu/pool/universe/q/qemu/qemu-user-static_6.2+dfsg-2ubuntu6_amd64.deb
sudo dpkg -i qemu-user-static_6.2+dfsg-2ubuntu6_amd64.deb
</syntaxhighlight>


==References==
==References==

Latest revision as of 09:32, 8 April 2024



Index






In this section, you will find a guide on how to get the SDK Manager installed and ready to generate an Image for your Robotics RB5/RB6 board[1]. This section assumes that you already have the Thundercomm SDK Manager downloaded in your host computer, if not, please check our Downloading SDK section.

Thundercomm SDK 3.0.0

We have three main sections, the first one we describe the steps needed if you are working on a host computer with Ubuntu 18.04, next section describes the steps if instead your host computer has another Ubuntu version (16.04, 20.04), finally, last section are the common steps for either Ubuntu version.

On Ubuntu 18.04 Host

1. Install the needed libraries in the host computer:

sudo apt-get install coreutils fakechroot fakeroot kmod \
libc6-arm64-cross python2.7 qemu-user-static wget udev openssh-server

The required minimum package versions are:

  • coreutils 8.28
  • fakechroot 2.19
  • fakeroot 1.22
  • kmod 24-1ubuntu3.2
  • libc6-arm64-cross2.27
  • python 2.7.15
  • qemu-user-static 1:2.11+dfsg-1ubuntu7.28
  • wget 1.19.4
  • udev 237-3ubuntu10.42


2. From the TC-sdkmanager-x.x.x directory, install the SDK Manager with the following command:

Note
Make sure to replace the <tc-sdkmanager-vx.x.x_amd64.deb> with the version you downloaded.
sudo dpkg -i tc-sdkmanager-vx.x.x_amd64.deb

If you have downloaded the 3.0.0 version, you can use:

sudo dpkg -i tc-sdkmanager-v3.0.0_amd64.deb


3. Launch the SDK Manager

sdkmanager


4. Go to section Setting up SDK Manager to continue with the setup of your SDK Manager.

On other Ubuntu Hosts(Ubuntu 16.04, 20.04)

1. Install the following packages:

sudo apt-get install qemu-user-static openssh-server udev -y


2. Download and install Docker from the following link.

3. Generate the Docker Image for Ubuntu 18.04

Note
This command can take up to 30min in a computer with Intel® Core™ i7-1065G7 CPU @ 1.30GHz × 8
Note
Do not forget the space and full stop at the end of the command: .
cd TC-sdkmanager-x.x.x/
sudo docker build -t ubuntu:18.04-sdkmanager .


4. To check if the Docker Image was generated successfully, you can run the following command and should see:

<ubuntu:18.04-sdkmanager>
docker images

After running the above command, you should see an output similar to the following:

REPOSITORY      TAG                IMAGE ID       CREATED         SIZE
ubuntu          18.04-sdkmanager   9be63766537a   6 days ago      556MB

Where the one with the TAG name 18.04-sdkmanager is the one of interest. Please have in mind that if you have more than one docker image, your output will have more options.

5. Create the Docker container. The container has the Ubuntu image we created previously:

Note
You can change the name of your container replacing sdkmanager_container with a name of your choice.
docker create --privileged -v /dev/:/dev -v /run/udev:/run/udev --name sdkmanager_container -p 36000:22 ubuntu:18.04-sdkmanager

To check if the docker container was created successfully you can run the following command:

docker container ls -a

And the output should be similar to this:

CONTAINER ID   IMAGE                     COMMAND               CREATED         STATUS                     PORTS     NAMES
02cf200582b8   ubuntu:18.04-sdkmanager   "/usr/sbin/sshd -D"   2 seconds ago   Created                              sdkmanager_container


6. Now that our docker is created, we can start it. You can run this command every time you need to start your docker container again.

docker start sdkmanager_container

To check if everything went fine, you can run the following command:

docker container ls -a

Now the status of the container should say Up.

CONTAINER ID   IMAGE                     COMMAND               CREATED         STATUS                     PORTS                                     NAMES
02cf200582b8   ubuntu:18.04-sdkmanager   "/usr/sbin/sshd -D"   5 minutes ago   Up 13 seconds              0.0.0.0:36000->22/tcp, :::36000->22/tcp   sdkmanager_container


7. Now that our docker container is ready, we can launch the SDK Manager. For this, we will use the following command that will execute the sdkmanager inside the container:

sudo docker exec -it sdkmanager_container sdkmanager

You should see something similar to this:

******************************************************************
Welcome to SDKmanager version 3.0.0
This software is designed for resource download/management.
You can repack system image and flash image builds
The full process of LU image generation takes at least 40 minutes, depending on the internet speed
You will need a valid Thundercomm user account to continue
******************************************************************


8. Go to section Setting up SDK Manager to continue with the setup of your SDK Manager.

Setting up SDK Manager

1. Provide Thundercomm login credentials, you should see something like this:

Credential Checking ...
Enter your Thundercomm username:
Enter your Thundercomm password:


If you do not have one, please register to Thundercomm in their official page.

2. Now, the SDK Manager will ask for a target directory for the Image resources. The default directory is

/root/

.

In case you want to change the path of installation, provide a another working directory. <be>

Note

If you are not working inside Docker, we suggest to specify another target directory instead of

/root/, like /home/$USER/
Note
When asked if you want to proceed, please enter "y" or "Y" if yes and press enter, since it is no set as default.


Enter absolute target directory for Image resources (overwrites existing files, default: /root/):
You are about to install the SDK to '/root/'. Proceed [Y/n]? y
Setting it up ... done


3. Choose a product. In this case we are choosing RB5 (option 1).

Choose a product
Enter 1 to use RB5, 2 to use RB6: 1


4. Choose an available platform for Robotics RB5 device. The LU platform is for an image based on Ubuntu. On the other hand, LE platform is an image based on Open Embedded. Both of them are based on Linux Kernel 4.19. The LU platform has an Ubuntu rootfs, the apt-get package manager and on-device compilation, while the LE platform is based on the Yocto build system and offers a toolchain for off target compilation. In this guide, we are using the LE platform option.

Note
If the product only supports single platform, the SDK Manager will automatically skip this step and go directly to the next one.
Choose a platform for Robotics RB5 device
Enter 1 to use LU platform, 2 to use LE platform:

5. Enter the number of available version for image repack. For this guide, we use the version QRB5165.UBUN.1.0-220711_debug for LU and QRB5165.LE.1.0-220721 for LE.

Checking current versions of release ...
Available versions:
1: QRB5165.x.x.x-xxxxxx
... ...
Select one number of available version ( 1 | 2 | 3 ...) to continue with:


6. The SDK is now set up and ready to be used. You should be able to see something similar to this if you chose LU platform:

Note
Type <help> to use the available options.
--------------------------------------------------------
SDK has been successfully set up and is ready to be used
Type 'help' for commands
--------------------------------------------------------
> help
commands:
help = Show usage help for LU platform
1 = Download LU resources and generate system.img with current release
2 = Flash full build (require system.img generation first)
q = exit sdk manager
>

If instead you chose LE platform, you should see something similar to this:

--------------------------------------------------------
SDK has been successfully set up and is ready to be used
Type 'help' for commands
--------------------------------------------------------
> help
commands:
help = Show usage help for LE platform
1 = Download LE resources
2 = Flash full build
3 = Download LE SDK toolchain
q = exit sdk manager
>

Thundercomm SDK 4.0.1

As of January 2024, Thundercomm released a new SDK version 4.0.1. This version can be installed on a Ubuntu 20.04 host. RidgeRun tested this SDK version to flash a LU2.0 image. Most of the steps are very similar to SDK 3.0.0, however, make sure to run the following commands (taken from the SDK's README) before launching the sdkmanager to avoid known issues:

sudo rm -rf /lib/ld-linux-aarch64.so.1
sudo ln -sf /usr/aarch64-linux-gnu/lib/ld-2.31.so /lib/ld-linux-aarch64.so.1
sudo ln -sf /bin/bash /bin/sh
sudo dpkg -P qemu-user-static
wget http://archive.ubuntu.com/ubuntu/pool/universe/q/qemu/qemu-user-static_6.2+dfsg-2ubuntu6_amd64.deb
sudo dpkg -i qemu-user-static_6.2+dfsg-2ubuntu6_amd64.deb
Note
in the SDK README there is a missing hyphen in the quemu-user-static name used for the wget that will cause a 404 Not Found error.

Known Issues

While testing Thundercomm's SDK version 4.0.1 we encountered a few issues and documented their solution in this section. The issues appeared when trying to install a LU 2.0 image using Ubuntu 20.04 on the host.

Missing file

Start generating system image...

/lib/ld-linux-aarch64.so.1: No such file or directory
THIRD_PARTY_TARGET_SOURCELIST: 
THIRD_PARTY_TARGET_SOURCELIST not set
/lib/ld-linux-aarch64.so.1: No such file or directory

Error happend: You may have encountered Network connection failed or a build Environment error
If an environment error, Please check your build environment.
If an Internet connection timeout. RETURN to MAIN MENU directly, run Step 1 again

Checking system.img ...
ls: cannot access '/home/jcaballero/devdirs/TC-sdkmanager-4.0.1/QRB5165.LU2.0_20231103.090618_debug/rootfs/*.ext4': No such file or directory

system image repack failed, check errors above

This happens because the sdk manager creates a symbolic link to ld 2.27 but Ubuntu 20 has ld 2.31 installed:

jcaballero@jcaballero-work:~/devdirs/TC-sdkmanager-4.0.1$ ls -alh /lib/ld-linux-aarch64.so.1
lrwxrwxrwx 1 root root 37 ene  8 16:22 /lib/ld-linux-aarch64.so.1 -> /usr/aarch64-linux-gnu/lib/ld-2.27.so
jcaballero@jcaballero-work:~/devdirs/TC-sdkmanager-4.0.1$ ls /usr/aarch64-linux-gnu/lib/ld*so
/usr/aarch64-linux-gnu/lib/ld-2.31.so

To avoid this issue run:

sudo rm -rf /lib/ld-linux-aarch64.so.1
sudo ln -sf /usr/aarch64-linux-gnu/lib/ld-2.31.so /lib/ld-linux-aarch64.so.1

Function not implemented

Start generating system image...

semop(1): encountered an error: Function not implemented
THIRD_PARTY_TARGET_SOURCELIST: 
THIRD_PARTY_TARGET_SOURCELIST not set
semop(1): encountered an error: Function not implemented

Error happend: You may have encountered Network connection failed or a build Environment error
If an environment error, Please check your build environment.
If an Internet connection timeout. RETURN to MAIN MENU directly, run Step 1 again

Checking system.img ...
ls: cannot access '/home/jcaballero/devdirs/TC-sdkmanager-4.0.1/QRB5165.LU2.0_20231103.090618_debug/rootfs/*.ext4': No such file or directory

system image repack failed, check errors above
>

To avoid this error, run the following:

sudo dpkg -P qemu-user-static
wget http://archive.ubuntu.com/ubuntu/pool/universe/q/qemu/qemu-user-static_6.2+dfsg-2ubuntu6_amd64.deb
sudo dpkg -i qemu-user-static_6.2+dfsg-2ubuntu6_amd64.deb

References

  1. Qualcomm® Robotics SDK Manager User Guide. Retrieved January 18, 2023, from [1]


Index