Install FE Debian Bookworm Core eMMC
A guide to installing FriendlyElec's version of Debian Bookworm Core onto the eMMC of a CM3588.
CM3588 - Install FE Debian Bookworm Core to eMMC
Overview
This guide will walk you through the process of installing FriendlyElec's version of Debian Bookworm Core onto the eMMC of a CM3588 using a MicroSD card. FriendlyElec maintains a few custom eflasher images for the CM3588, which are used to flash the eMMC storage. These images are handy as once the MicroSD card has been prepared and installed into the CM3588, the eMMC will be automatically flashed when the system is powered on.
This version comes with Debian 12 but without a desktop environment, it is a minimal installation of Debian Bookworm with CLI only. This is ideal for users who want to set up a server or a headless system, or those who prefer to install their own desktop environment later on.
If you want a desktop environment, FriendlyElec also offers Debian Bullseye (with desktop) and Ubuntu Noble images for the CM3588.
Prerequisites
- A CM3588 (of course)
- A MicroSD card (at least 16GB recommended)
- A MicroSD card reader (if your PC does not have a slot)
- The OS image you wish to install (in this case, FriendlyElec's Debian Bookworm Core)
Download the Debian Image
Navigate to the FriendlyElec wiki and click the download link.

Then select the Google Drive

Select 01_Official images

Debian will be installed to the eMMC of the CM3588, so select 02_SD-to-eMMC images.

There are a lot of images listed here, however this guide is specifically for rk3588-eflasher-debian-bookworm-core-6.1-arm64-20250123.img.gz.

Flash the Image
Now that the image has been downloaded, you will need to flash it to a MicroSD card. You can prepare the MicroSD card using either Ubuntu or Windows depending on your operating system.
Flash the eMMC
If you have a monitor hooked up to the CM3588, note that 1 of the HDMI ports is an input, and 2 are outputs. To be sure you are using an output, use the middle port. Otherwise you may get a black screen on boot.
Flashing the eMMC on the CM3588 happens automatically when the system is powered on. With the system powered off, simply insert the MicroSD card into the CM3588 and power it on. The system will automatically detect the MicroSD card and begin flashing the eMMC.
Once complete, the system will prompt you to shut it down. I typically do not even attach a keyboard and just hit the power button to turn it off as I manage nearly everything over SSH after the installation.
After the system is powered off, remove the MicroSD card before you power it back on. The system should now boot from the eMMC. If you do not remove the Micro SD card, the system will boot and flash the eMMC storage again.
First boot
I typically SSH into the system on the first boot as it is easier to copy and paste commands over the terminal from my main PC. The instructions may be slightly different if you plug directly into the system with a keyboard and monitor.
Find the IP address of the system. This can be done by logging into your router and checking the DHCP leases. Look for the CM3588 label, here is an example of what it looks like on my router:

Once you have the IP address, SSH into the system using the root user:
ssh root@<ip_address>The default password is fa.
I use an application called Termius for SSH, which is available on Windows, Mac, Linux, iOS, and Android. It is a great application that allows you to save your SSH connections and easily manage them.
User Management
First, update the password for the root user:
passwdYou will be prompted to enter a new password for the root user. Make sure to choose a strong password and remember it, as you may need to log into the root user in the future.
The FriendlyElec version of Debian already has a user: pi. However, I prefer to create my own user and delete the default pi user. Use pkill to kill any processes that are running under the pi user before deleting it.
pkill -u piThen delete the user and ensure the home directory is removed as well
deluser --remove-home piNext, create a new user and put it in the sudo group. This can be done with the following command:
adduser <username>You will be prompted to enter a password for the new user, as well as some additional information (which can be left blank).

Next, add the new user to the sudo group:
usermod -aG sudo <username>This will allow the new user to execute commands with superuser privileges so you do not need to log into root. Now that the new user is set up, log out of the root session and log back in with the new user:
exitThen SSH back into the system using the new username:
ssh <username>@<ip_address>You will be prompted to enter the password for the new user. Once logged in, you can now use sudo to execute commands with superuser privileges. I usually like to update the sshd_config to prevent root login over SSH for security reasons. This can be done by editing the /etc/ssh/sshd_config file and setting PermitRootLogin to no. This change will likely automatically be made when performing the update in the next step, but to be sure you can easily change it.
sudo nano /etc/ssh/sshd_config
Press Ctrl + x and then y to save, then restart the SSH service to apply the changes:
sudo systemctl restart sshUpdate Sources
By default FriendlyElec does not use the official repos for Debian. Instead, it uses a custom repository. First backup the old sources list
sudo mv /etc/apt/sources.list /etc/apt/sources.list.oldThen create a new sources list file.
sudo nano /etc/apt/sources.listYou can use Ctrl + Shift + V to paste in the terminal.
deb http://deb.debian.org/debian bookworm main non-free-firmware
deb-src http://deb.debian.org/debian bookworm main non-free-firmware
deb http://deb.debian.org/debian-security/ bookworm-security main non-free-firmware
deb-src http://deb.debian.org/debian-security/ bookworm-security main non-free-firmware
deb http://deb.debian.org/debian bookworm-updates main non-free-firmware
deb-src http://deb.debian.org/debian bookworm-updates main non-free-firmware
deb http://deb.debian.org/debian bookworm-backports main non-free-firmware
deb-src http://deb.debian.org/debian bookworm-backports main non-free-firmwareThis will set your system to use the official Debian repositories for updates and package installations. This will likely be much faster for updates.
Update the system
Next, update the system to ensure you have the latest packages and security updates. Run the following commands:
sudo apt update && sudo apt upgrade -yThis command will update the package lists for the repositories and then upgrade all the installed packages to their latest versions. The -y flag automatically answers "yes" to any prompts, allowing the upgrade to proceed without user intervention.
There may be multiple prompts regarding keeping existing configuration files or replacing them with the package maintainer's version. I usually always choose the package maintainer's version.

Install Additional Packages
After updating the system, you may want to install some additional packages that are commonly used. Here are a few suggestions:
sudo apt install -y htop iftop nmap tmux- htop - Interactive system monitor (better top), great for viewing CPU, memory, and process usage.
- iftop - Real-time bandwidth monitor for network interfaces. Think htop for network traffic.
- nmap - Network scanning and security auditing tool. Great for discovering devices and services on a network.
- tmux - Terminal multiplexer that allows you to manage multiple terminal sessions from a single window. This is especially useful for managing long-running processes or multiple SSH sessions.
Clean Up Packages
After installing and updating packages, it's a good idea to clean up any unnecessary packages that are no longer needed. You can do this by running:
sudo apt autoremove -yThis command will remove any packages that were automatically installed to satisfy dependencies for other packages and are now no longer needed. This helps to keep your system clean and free up disk space. It is possible that nothing will need to be removed.
Hostname
The default hostname for the FriendlyElec Debian image is CM3588. You can change this to something more meaningful for your setup. Update the hosts file by finding the entry for CM3588 and changing it to your desired hostname
sudo nano /etc/hosts
Press Ctrl + x and then y to save. Finally, update the hostname file to match your desired hostname:
sudo nano /etc/hostnameThis file should only contain the hostname, so update it to your desired hostname. Press Ctrl + x and then y to save. After making these changes, you will need to reboot the system for the changes to take effect:
sudo reboot nowSet Timezone and Locales
By default the timezone will be UTC. It is best to set the local timezone, if you are unsure what to choose list the possible timezones
sudo timedatectl list-timezonesYou can scroll through the list or search for your timezone. For example, if you are in New York, you would look for America/New_York. Once you find your timezone, set it with:
sudo timedatectl set-timezone America/New_YorkThis will set the system timezone to your local timezone. You can verify the change by running:
timedatectlThis will display the current system time, timezone, and other related information. You should see your new timezone reflected in the output.

Next, set the locales for bash. This will ensure that the system uses the correct locale settings for things like date and time formatting, currency, and language. You can do this by running:
sudo dpkg-reconfigure localesThis command will open a dialog where you can select the locales you want to generate. You can use the arrow keys to navigate and the spacebar to select or deselect options.
In the dialog, you will see a list of available locales. You can select multiple locales if needed, but for most users, selecting your local locale (e.g., en_US.UTF-8) should be sufficient. Once you have made your selection, press Enter to continue.

After selecting the desired locales, you will be prompted to choose the default locale for the system. This is the locale that will be used by default for things like date and time formatting. Again, use the arrow keys to select your preferred option and press Enter to continue.

Once you have completed the configuration, the system will generate the selected locales. This may take a few moments, depending on the number of locales you selected and the speed of your system. For the changes to take effect, you may need to restart your terminal session or log out and log back in. You can also reboot the system to ensure that all services are using the new locale settings.
You can verify that the locales have been set correctly by running:
locale
Conclusion
Congratulations! You have successfully installed FriendlyElec's version of Debian onto the eMMC of your CM3588. This guide walked you through the process of flashing the image, updating the system, installing additional packages, and configuring the hostname and locales. Your system should now be ready for further customization and use.