Skip to content

Troubleshooting

giri mugundan kumar edited this page Oct 20, 2025 · 1 revision

Troubleshooting

1.1 USB Pendrives

In the case that now USB pen-drives cannot be accessed anymore:

Check if your user is a member of the plugdev group

    id odroid

If plugdev is not listed and you need to add your user to the plugdev group, you can use the following command:

    sudo usermod -aG plugdev odroid

This should solve the issue, and you should be able now to access USB pen-drives.

1.2 Changing the kernel version

If you are faced with an error during the installation process that requires you change the kernel version, please follow these instructions. Here, the example talks about setting the kernel version to 5.15.0.

# Get the kernel version 
uname -r 

You can check the available kernels for the OS by running

apt-cache showpkg linux-image

Note

The kernel version 5.15.0 is chosen because all required packages in this guide are specifically built for this kernel version or require it.

We can now proceed to install the kernel version to 5.15.0 and have the system retain it.

# Choose kernel version to install
kernel_version='5.15.0'

# Install the old kernel
curl -sL https://raw.githubusercontent.com/pimlie/ubuntu-mainline-kernel.sh/master/ubuntu-mainline-kernel.sh | sudo bash -s -- -i "v$kernel_version"

Now, we need to configure grub.

# Get the Grub entry name
# Note: Do verify the value of `grub_entry_name`. The following command gets
#       the oldest kernel version Grub entry name that is not a recovery mode.
# Example value: `Ubuntu, with Linux 6.5.0-45-generic`
grub_entry_name="$(grep -Po "menuentry '\KUbuntu, [^(']+" /boot/grub/grub.cfg | sort -V | head -1)"

Update grub and force it to retain the kernel and not upgrade to the latest version.

# Update `grub`
sed -i "s/^\s*GRUB_DEFAULT=.*$/GRUB_DEFAULT='Advanced options for Ubuntu>$grub_entry_name'/" /etc/default/grub
sudo update-grub

```bash
# Disable the kernel package upgrade
sudo apt-mark hold $(dpkg --get-selections | grep -Po "^linux[^\t]+${grub_entry_name##* }")

Reboot the system and check the kernel version.

# Reboot system
reboot

# Check the currently booted Linux kernel version
uname -r    

1.3 Boost-python

After you have compiled and installed the boost libraries, go to the directory where you cloned boost libraries' repository

# Assuming you cloned it in the home folder
cd ~/boost

# Make sure python3 is installed but run the installation just in case
sudo apt install python3-dev

# Install numpy and scipy
sudo pip3 install numpy scipy

# Upgrade them to the latest version
sudo pip3 install --upgrade scipy numpy

# Run the boost python installation script
./bootsrap.sh --with-python
./b2 --with-python

# Finish installation
sudo ./b2 install

# Reload the linkers
sudo ldconfig

1.4 Installing CMake 3.26 from source

Note

To compile uXRCE in section about Setting up UXRCE-DDS in the ODroid Setup page, it is required to have CMake version 3.20 or above but not version 4.xx. This version is not hosted on the package manager for Ubuntu 20.04. Therefore, it must be installed directly from Kitware's stable repository.

Caution

At the time of writing (05/14/2025), Kitware has moved on to CMake version 4.0.1, which drops support for some older CMake features. Therefore, we need to download CMake 3.26 and compile and install it from source.

Before proceeding, check your current CMake version:

cmake --version

Note

  • If you already have CMake installed on your ODroid M1s and it the correct version - 3.20 and above but not version 4.xx, you can skip the instructions in this section.
  • If CMake is not installed on your ODroid M1s, please proceed with the instructions in this section
  • If your CMake version is not the one we are looking for, run the following commands in the terminal to purge this version and proceed with the instructions in this section.
# Remove CMake
sudo apt purge cmake
sudo apt-get autoremove

Download CMake 3.26 Source

First, we install some dependencies:

sudo apt install -y libgtk-3-dev build-essential gcc g++ pkg-config make hostapd libqrencode-dev libpng-dev

Go to the CMake download page and copy the link for the 3.26.x tar.gz source file. Then, on your ODROID:

# Go to home director
cd ~

# Download the tar file (here example given for v3.26)
wget https://github.com/Kitware/CMake/releases/download/v3.26.0/cmake-3.26.0.tar.gz

Note

The above link is for version 3.26.0, if you prefer other versions, go to the CMake download page and grab the github link for the tar.gz file.

Extract the Files

# Extract the files
tar zxvf cmake-3.26.0.tar.gz

# Navigate to the root
cd cmake-3.26.0

Build and Install

# Prep for building binaries
./bootstrap

# Build the binaries with all available logic processors
make -j$(nproc)

# Install cmake to /usr/local/include/
sudo make install

This process may take some time, depending on your ODROID M1S performance.

Verify Installation

cmake --version

Important

You should see CMake 3.26.x as the installed version.

Note

You can remove the tar.gz file as well as the cmake directory in the home folder if you want to.

🗺️ Wiki Navigation

📦 Setup Prerequisites

🔧 Setup

🛫 Flightstack Instructions

📑 Publications

⏳History and Fun Facts

Clone this wiki locally