Qualcomm Robotics RB5/Software Support/SDK/Installing SDK: Difference between revisions
No edit summary |
mNo edit summary |
||
(22 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 | ==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 31: | 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 | {{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 39: | 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 45: | Line 52: | ||
'''3'''. Launch the SDK Manager | '''3'''. Launch the SDK Manager | ||
<syntaxhighlight lang=bash> | <syntaxhighlight lang=bash> | ||
sdkmanager | sdkmanager | ||
Line 53: | 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 61: | Line 70: | ||
<br> | <br> | ||
'''2'''. Download and install Docker from the following [ | '''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 | |||
{{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 | |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 77: | Line 93: | ||
<br> | <br> | ||
'''4'''. To check if the Docker Image was generated successfully, you can run the following command and should see: <ubuntu:18.04-sdkmanager> | '''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> | ||
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 86: | 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 | '''5'''. Create the Docker container. The container has the Ubuntu image we created previously: | ||
{{Colored box|background-title-color=#6586B9|title-color=#FFFFFF | |||
{{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 98: | Line 120: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
To check if the docker container was created | To check if the docker container was created successfully you can run the following command: | ||
<syntaxhighlight lang=bash> | <syntaxhighlight lang=bash> | ||
docker container ls -a | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 117: | 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> | ||
docker container ls -a | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 147: | 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 154: | 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 < | '''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 | <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 | |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 | '''/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 172: | 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 180: | 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 | {{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 199: | 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 | |||
{{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 230: | Line 275: | ||
> | > | ||
</syntaxhighlight> | </syntaxhighlight> | ||
< | |||
==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
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:
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
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:
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>
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.
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:
-------------------------------------------------------- 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
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