一、关于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

相关推荐
FakeOccupational32 分钟前
【电路笔记 STM32】Cortex-M7 UART 中断模式(串口接收中断+串口空闲中断)
笔记·stm32·单片机
小李不想当小白43 分钟前
USART串口协议(STM32标准库学习笔记)
经验分享·笔记·stm32·单片机·嵌入式硬件·学习
无垠的广袤1 小时前
拆解电子价签
单片机·蓝牙·diy·调试器·jlink·墨水屏
小何好运暴富开心幸福2 小时前
嵌入式历史与生态
stm32·单片机·mcu
甜甜的大香瓜2 小时前
【MT32F006】MT32F006之Stimer延时(轮询)
单片机
辰哥单片机设计3 小时前
MP3播放器模块(STM32)
stm32·单片机·嵌入式硬件
Brilliantwxx3 小时前
【STM32】 工程实战 WS2812B 全彩 LED 灯控制(DMA 驱动)
stm32·单片机·嵌入式硬件·mcu
科芯创展4 小时前
10~120V宽压1.5A降压DC-DC XZ1830技术特性与应用解析
单片机
逐步前行4 小时前
ESP32-S3-PCNT(脉冲计数控制器)
单片机·嵌入式硬件
咖丨喱5 小时前
【中断与收包】
单片机·嵌入式硬件