一、关于linux开发板上移植ubuntu根文件系统并配置桌面环境笔记记录

1、使用 STM32MP157 开发板

使用正点原子提供的 SDK 包。

其中:

使用该 shell 脚本初始化 SD 卡设备。

得到:

后续基本操作针对 rootfs。

删除其中内容,等待后续操作。

sudo fdisk -l

可看到 SD 卡设备位置。

2、虚拟机:deepin 系统

获取并解压 Ubuntu Base

选择版本:根据开发板内核版本(可通过 uname -r 在开发板串口终端查看),从 Ubuntu 官方镜像站下载 Ubuntu Base 20.04.5 LTS (Focal Fossa) 对应的 armhf 架构基础包。对于 5.4.31 内核,推荐使用 Ubuntu Base 20.04 LTS 或 22.04 LTS。

在 Ubuntu 主机上,将下载的根文件系统解压到一个目录,然后使用 chroot 进入该环境进行配置

c 复制代码
# 创建目录并解压
mkdir ./ubuntu-rootfs
sudo tar -xzf ubuntu-base-*.tar.gz -C ./ubuntu-rootfs

# 安装 QEMU 以模拟 ARM 环境
sudo apt-get install qemu-user-static
sudo cp /usr/bin/qemu-arm-static ./usr/bin/

# 挂载必要的文件系统

sudo mount -t proc /proc ./proc
sudo mount -t sysfs /sys ./sys
sudo mount -o bind /dev ./dev
sudo mount -o bind /dev/pts ./dev/pts

# 进入 chroot 环境
sudo chroot ./

uname -m

1.基础网络配置

配置 DNS 和软件源(用国内源加速)

c 复制代码
echo "nameserver 8.8.8.8" > /etc/resolv.conf
cat > /etc/apt/sources.list << EOF
deb http://mirrors.aliyun.com/ubuntu-ports/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu-ports/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu-ports/ focal-security main restricted universe multiverse
EOF

安装一些基础工具

apt update

c 复制代码
apt install -y locales sudo ssh net-tools iputils-ping vim nano
locale-gen en_US.UTF-8
update-locale LANG=en_US.UTF-8
apt install -y 
    net-tools \
    iproute2 \
    curl \
    wget \
    openssh-server \
    minicom \
    dialog \
    systemd \
    udev \
    netplan.io \
    isc-dhcp-client
apt install neofetch
apt install -y language-pack-zh-hans

2.安装桌面环境(XFCE + LightDM)

安装核心组件

c 复制代码
apt install -y xfce4 xfce4-goodies xfce4-terminal thunar mousepad \
  lightdm lightdm-gtk-greeter \
  xserver-xorg xserver-xorg-video-fbdev xserver-xorg-video-modesetting \
  fonts-wqy-zenhei fonts-wqy-microhei

 配置 LightDM
mkdir -p /var/lib/lightdm
chown -R lightdm:lightdm /var/lib/lightdm
chmod 750 /var/lib/lightdm
# 强制指定 greeter 和会话
cat > /etc/lightdm/lightdm.conf.d/60-greeter.conf << EOF
[Seat:*]
greeter-session=lightdm-gtk-greeter
user-session=xfce
EOF

# 配置自动登录(可选,避免 greeter 高 CPU 占用)
cat > /etc/lightdm/lightdm.conf.d/70-autologin.conf << EOF
[Seat:*]
autologin-user=root
autologin-user-timeout=0
autologin-session=xfce
EOF
# 设置默认显示管理器
dpkg-reconfigure lightdm   # 选择 lightdm

3.安装常用桌面应用软件

c 复制代码
浏览器
apt install -y midori
验证:在桌面环境或终端执行 midori,能打开窗口并访问简单网页(如 http://example.com)即正常。

中文输入法
apt install -y fcitx fcitx-pinyin fcitx-config-gtk fcitx-frontend-gtk3
配置环境变量:
cat >> /etc/environment << EOF
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
EOF
验证:重启后,在 XFCE 中启动 fcitx,按 Ctrl+Space 可切换拼音输入法。

视频播放
apt install -y mpv
验证:mpv --vo=x11 --hwdec=no --framedrop=yes test.mp4,能播放 480p 视频且音画基本同步。(在开发板上进行验证测试)

音频工具
apt install -y alsa-utils
验证:
aplay /usr/share/sounds/alsa/Front_Right.wav   # 听到声音
alsamixer                                      # 可调节音量

压缩工具
apt install -y file-roller unzip zip p7zip-full
验证:在 Thunar 中右键压缩/解压文件,或命令行 unzip、7z 正常。

系统监控
apt install -y htop xfce4-taskmanager
验证:终端运行 htop 显示进程,或菜单中打开任务管理器。

远程访问
apt install -y openssh-server
验证:systemctl status ssh 为 active,主机可 ssh root@192.168.137.100 登录。

网络工具
apt install -y net-tools iproute2 ifupdown
验证:ifconfig、ip addr、ifup eth0 均可用。

开发工具
apt install -y build-essential python3-pip git
验证:
gcc -o hello hello.c && ./hello   # 编译运行成功
pip3 --version                    # 显示版本
git --version

文本编辑与图片查看
apt install -y vim nano mousepad ristretto galculator
验证:分别启动,能正常编辑文本、查看图片、计算。

远程桌面(可选)
apt install -y x11vnc
验证:x11vnc -display :0 -forever -shared -passwd 123456,主机用 VNC Viewer 连接。

中文支持(已装字体,可选输入法)
apt install -y fonts-wqy-zenhei fonts-wqy-microhei
验证:网页或文档中中文显示正常,无方块乱码。

设置 root 密码和主机名

c 复制代码
echo "root:123456" | chpasswd
echo "stm32mp1" > /etc/hostname
echo "127.0.1.1  stm32mp1" >> /etc/hosts

配置完成后,退出并卸载挂载点:

c 复制代码
exit
sudo umount ./proc
sudo umount ./sys
sudo umount ./dev/
sudo umount ./dev/pts
sync

3、开发板网络配置

在退出后:

将上面的文件移动到/rootfs里即可,

之后开发板启动改为有sd卡启动,

并根据开发板接入的网络进行

c 复制代码
apt update
apt install -y iproute2 ifupdown

cat > /etc/network/interfaces << EOF
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
    address 192.168.137.100
    netmask 255.255.255.0
    gateway 192.168.137.1
    dns-nameservers 192.168.137.1 8.8.8.8
EOF
验证
bash
ping www.baidu.com      # 若能通,则网络通信完全正常

当下载中存在传输异常时,

c 复制代码
降低并发 + 增加重试
cat > /etc/apt/apt.conf.d/99safety << 'EOF'
Acquire::Queue-Mode "access";
Acquire::http::Pipeline-Depth "0";
Acquire::Retries "5";
Acquire::http::Timeout "120";
Acquire::https::Timeout "120";
Acquire::http::Dl-Limit "200";
EOF

rm -rf /var/lib/apt/lists/*

mkdir -p /var/lib/apt/lists/partial

4、启动

7、效果

桌面上播放mp4视频

上网:看视频就别想了,网页能打开搜索,不容易了。

终端下载包软件

图片浏览

根文件压缩包:要求至少8g的sd卡

压缩包

链接: https://pan.baidu.com/s/1tHkbkKWjk2P2XVv7ZDjXog?pwd=96ee

相关推荐
临期冰淇淋1 小时前
Unisoc 展锐平台Camera摄像头分辨率适配
linux·c语言·驱动开发
Rsingstarzengjx2 小时前
第二十八章 Linux 并发与竞争实验
驱动开发·嵌入式硬件·stm32mp157
辰域电子2 小时前
STM32项目开源:实验室消防预警控制系统(代码 + 原理图 + 仿真)
stm32·单片机·嵌入式硬件·开源·proteus
老当益壮梁奶奶2 小时前
ARM汇编学习笔记(四):i.MX6ULL裸机开发:从汇编点灯到C语言BSP工程管理
c语言·arm开发·单片机·嵌入式硬件·51单片机
ysu_031413 小时前
TinyML 模型部署:从 Edge Impulse 到 STM32F103
驱动开发·stm32·嵌入式硬件·mcu·硬件架构·硬件工程·dsp开发
zjxtxdy16 小时前
SPI通信协议
笔记·单片机
朝发如雪20 小时前
快速掌握单片机基础(8)(内存映射与启动寻址方式)(编译工具链与构建流程)(C语言操作寄存器)
单片机
糖糖单片机设计20 小时前
基于STM32的电子密码锁设计与实现(矩阵键盘+防拆检测+GSM远程报警)
人工智能·stm32·单片机·嵌入式硬件
充哥单片机设计21 小时前
【STM32开源项目】智能家电控制系统
stm32·单片机·嵌入式硬件·毕业设计·智能家电控制·家电控制