Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 9 Next »

The SP7350 supports six root file systems:

  • BusyBox 1.31.1

  • Ubuntu Server 20.04

  • Ubuntu MATE 20.04

  • Ubuntu XFCE 20.04

  • Buildroot 2024.02

  • Yocto.

Users can choose a root file system based on their specific use case. The following sections provide detailed explanations of these root file systems.

Table of Contents

1. Choosing a Root File System

When you run 'make config' to configure your build environment, after selecting the board and boot device, you will be prompted to choose a root file system. Refer to the picture below:

image-20240604-080233.png

Please type the corresponding number to select one of the listed root file systems. For example, enter “3” to select “Ubuntu MATE 20.04”.

After completing the build process, the compiled root filesystem is located at:

linux/rootfs/initramfs/disk/

The image of the target root filesystem is then made and stored at:

out/rootfs.img

2. BusyBox 1.31.1

BusyBox constructs a lightweight root file system for embedded Linux systems by combining tiny versions of many common UNIX utilities into a single small executable, often just a few hundred kilobytes. This reduces the overall memory footprint and system overhead compared to having separate executables for each utility, contributing to faster boot times.

The source of BusyBox 1.31.1 is be downloaded from:

busybox-1.31.1.tar.bz2

Users can use menuconfig of BusyBox to select additional utilities. Navigate to the BusyBox directory (linux/rootfs/initramfs/busybox-1.31.1) and run:

make menuconfig

A BusyBox Configuration menu will appear:

image-20240604-084611.png

Users can move the cursor to enable the desired utilities. For example, to enable TFTP server support, navigate to 'Networking Utilities' and enable 'tftpd (10 kb)'.

image-20240604-085735.png

Exit BusyBox Configuration menu and choose ‘Save’ to save the changes to default configuration file ‘.config’. Run 'make' to rebuild the images. The 'tftpd' utility will be included in the new root file system:

wellslu@scdiu3:~/q654/test$ ll linux/rootfs/initramfs/disk/usr/sbin/tftp*
lrwxrwxrwx 1 wellslu sp 17 Jun  4 18:57 linux/rootfs/initramfs/disk/usr/sbin/tftpd -> ../../bin/busybox*
wellslu@scdiu3:~/q654/test$

To update your settings as the default configuration, copy the file 'linux/rootfs/initramfs/busybox-1.31.1/.config' to 'linux/rootfs/initramfs/configs/bbx_dynamic_defconfig':

wellslu@scdiu3:~/q654/test/linux/rootfs/initramfs/busybox-1.31.1$ cp .config ../configs/bbx_dynamic_defconfig 
wellslu@scdiu3:~/q654/test/linux/rootfs/initramfs/busybox-1.31.1$

Default account of virtual terminal is: root

Refer to the snapshot of the UART console when Linux has just started successfully:

image-20240627-022656.png

3. Ubuntu Server 20.04

Ubuntu Server is a popular open-source operating system designed to run on servers. Developed and maintained by Canonical Ltd., it provides a robust, secure, and versatile platform for various server tasks, from web hosting to cloud computing.

The base root file system of Ubuntu 20.04 is downloaded from:

ubuntu-base-20.04.5-base-arm64.tar.gz

The following packages or utilities are added to the base root file system:

  • ubuntu-standard

  • ubuntu-minimal

  • ubuntu-server

  • curl

  • iputils-ping

  • net-tools

  • network-manager

  • openssh-server

The pre-built root file-system has limited utilities or packages. Users can extend the functionality by installing extra utilities or packages from Ubuntu APT servers on the internet. For example, to install iperf3, users can issue the following commands:

sudo apt update
sudo apt install iperf3

This process can be repeated for any other required packages, ensuring the root file-system meets specific application needs.

The default account and password are: sunplus, sunplus

The initial size of the root file-system is approximately 1.9 GB.

This root file-system is created using the shell script located at ‘linux/rootfs/initramfs/ubuntu/make-ubuntu-rootfs.sh’. Users can modify it to pre-install some packages, utilities, or adjust system settings.

4. Ubuntu MATE 20.04

Ubuntu MATE is a user-friendly, open-source operating system that combines the robust foundation of Ubuntu with the MATE desktop environment. This combination offers a traditional, highly customizable desktop experience suitable for users of all levels, from beginners to experienced Linux enthusiasts.

The MATE desktop environment allows users to utilize graphical user interface (GUI) applications and utilities. GUIs are generally more intuitive and user-friendly than command-line interfaces (CLIs). Icons, buttons, and visual indicators simplify system navigation, application access, and task execution without needing to memorize commands. Features such as window management, taskbars, and application launchers enable quick task switching and easier organization of open applications.

The base root file system of Ubuntu 20.04 is downloaded from:

ubuntu-base-20.04.5-base-arm64.tar.gz

The following packages are added to the base root file system:

  • ubuntu-standard

  • ubuntu-minimal

  • ubuntu-mate-desktop

  • curl

  • iputils-ping

  • net-tools

  • openssh-server

  • oem-config-gtk

The pre-built root file-system has limited utilities or packages. Users can extend the functionality by installing extra utilities or packages from Ubuntu APT servers on the internet.

The default account and password are: sunplus, sunplus

The initial size of the root file-system is approximately 6.2 GB.

This root file-system is created using the shell script located at ‘linux/rootfs/initramfs/ubuntu/make-ubuntu-rootfs.sh’. Users can modify it to pre-install some packages, utilities, or adjust system settings. For example, users can add to run ‘oem-config-prepare' to arrange for 'oem-config-firstboot’ to be run when the system first boots.

# Prepare oem-config to run at first boot
chroot ${UBUNTU_ROOTFS} /usr/sbin/oem-config-prepare

This is particularly helpful for OEM installations where end-users need to complete the initial setup.

Refer to the snapshot of the UART console when Linux has just started successfully:

image-20240627-021504.png

The snapshot of the MATE 20.04 Desktop:

image-20240627-015932.png

5. Ubuntu XFCE 20.04

Ubuntu XFCE, also known as Xubuntu, is an official flavor of Ubuntu that features the lightweight XFCE desktop environment. It is designed to provide a fast, stable, and visually appealing user experience, making it an excellent choice for users seeking efficiency and performance, especially on less powerful hardware. It consumes less system resources than MATE desktop environment.

The base root file system of Ubuntu 20.04 is downloaded from:

ubuntu-base-20.04.5-base-arm64.tar.gz

The following packages are added to the base root file system:

  • ubuntu-standard

  • ubuntu-minimal

  • xubuntu-desktop

  • curl

  • iputils-ping

  • net-tools

  • openssh-server

  • oem-config-gtk

The following packages are removed:

  • light-locker

  • xfce4-screensaver

The pre-built root file-system has limited utilities or packages. Users can extend the functionality by installing extra utilities or packages from Ubuntu APT servers on the internet.

This root file-system is created using the shell script located at ‘linux/rootfs/initramfs/ubuntu/make-ubuntu-rootfs.sh’. Users can modify it to pre-install some packages, utilities, or adjust system settings.

The default account and password are: sunplus, sunplus

The initial size of the root file-system is approximately 6.1 GB.

Refer to the snapshot of the UART console when Linux has just started successfully:

image-20240627-020923.png

The snapshot of the XFCE 20.04 Desktop:

image-20240627-020049.png

6. Buildroot 2024.02

Buildroot is a popular open-source tool used for building embedded Linux systems. It automates the process of compiling and configuring various components to create a custom Linux distribution tailored for embedded devices. Buildroot uses a configuration file where you specify the target architecture, desired packages, filesystem layout, kernel configuration, and other parameters. It includes a package management system that allows you to select which components to include in your embedded Linux system.

The source of Buildroot is downloaded from:

buildroot-2024.02.tar.xz

SP7350 integrates Buildroot for generating the root file system. Depending on your computer's performance, downloading and compiling Buildroot sources may take several tens minutes.

Users can use menuconfig to select extra utilities, packages, or libraries. From the project top directory, run:

make bconfig

Alternatively, navigate to the Buildroot directory (linux/rootfs/initramfs/buildroot) and run:

make menuconfig

A Buildroot Configuration menu will appear:

image-20240604-065901.png

Users can move cursor and press ‘space’ or 'y' key to enable the desired packages, libraries, or utilities. For example, to enable DRM library 'libdrm' support, navigate to 'Target packages' → 'Libraries' → 'Graphics' and enable 'libdrm':

image-20240604-070452.png

Also enable libdrm’s test program:

image-20240604-071302.png

Save before leave the configuration menu. Run ‘make’ to build images again. The new DRM library will be included in root file-system:

wellslu@scdiu3:~/q654/test$ ll linux/rootfs/initramfs/disk/lib64/libdrm*
lrwxrwxrwx 1 wellslu sp    11 Jun  3 17:34 linux/rootfs/initramfs/disk/lib64/libdrm.so -> libdrm.so.2*
lrwxrwxrwx 1 wellslu sp    15 Jun  3 17:34 linux/rootfs/initramfs/disk/lib64/libdrm.so.2 -> libdrm.so.2.4.0*
-rwxr-xr-x 1 wellslu sp 91952 Jun  3 17:34 linux/rootfs/initramfs/disk/lib64/libdrm.so.2.4.0*
wellslu@scdiu3:~/q654/test$ 
wellslu@scdiu3:~/q654/test$ ll linux/rootfs/initramfs/disk/usr/bin/modetest
-rwxr-xr-x 1 wellslu sp 83864 Jun  3 17:34 linux/rootfs/initramfs/disk/usr/bin/modetest*
wellslu@scdiu3:~/q654/test

To save the modifications to the defconfig file, go to the Buildroot directory and run 'make savedefconfig':

wellslu@scdiu3:~/q654/test$ cd linux/rootfs/initramfs/buildroot/
wellslu@scdiu3:~/q654/test/linux/rootfs/initramfs/buildroot$
wellslu@scdiu3:~/q654/test/linux/rootfs/initramfs/buildroot$ make savedefconfig

Run ‘git diff’ to show the changes:

wellslu@scdiu3:~/q654/test/linux/rootfs/initramfs/buildroot$ git diff
diff --git a/initramfs/buildroot/configs/sp7350_defconfig b/initramfs/buildroot/configs/sp7350_defconfig
index 428643a0..b13475db 100644
--- a/initramfs/buildroot/configs/sp7350_defconfig
+++ b/initramfs/buildroot/configs/sp7350_defconfig
@@ -6,6 +6,8 @@ BR2_TOOLCHAIN_BUILDROOT_CXX=y
 BR2_GCC_ENABLE_GRAPHITE=y
 BR2_INIT_SYSTEMD=y
 BR2_SYSTEM_BIN_SH_BASH=y
+BR2_PACKAGE_LIBDRM=y
+BR2_PACKAGE_LIBDRM_INSTALL_TESTS=y
 BR2_PACKAGE_BC=y
 BR2_PACKAGE_DHCP=y
 BR2_PACKAGE_DHCP_RELAY=y
wellslu@scdiu3:~/q654/test/linux/rootfs/initramfs/buildroot$

Two new items:

+BR2_PACKAGE_LIBDRM=y
+BR2_PACKAGE_LIBDRM_INSTALL_TESTS=y

are added to defconfig file: initramfs/buildroot/configs/sp7350_defconfig

Default account is: root

The initial size of the root file-system is approximately 815 MB.

Refer to the snapshot of the UART console when Linux has just started successfully:

image-20240627-022400.png

6. Yocto

This is a pre-built 32-bit root file system created by the Sunplus Yocto server. Currently, it supports a limited set of packages and utilities. Sunplus plans to update this root file system in the future to make it user-configurable, similar to Buildroot.

  • No labels