Qualcomm Robotics RB5/RB6 - Installing SDK Manager
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