以下是定制一个基于 Debian Linux 系统、适用于 Orange Pi KunPeng Pro 开发板的系统镜像详细步骤:
准备工作
硬件准备
一台运行 Linux 的主机(推荐,因为部分工具在 Linux 环境下更方便使用。如果使用 Windows,可通过 WSL 模拟 Linux 环境)。
Orange Pi KunPeng Pro 开发板。
一张容量足够的 SD 卡(建议 8GB 或更大)。
软件准备
安装必要工具:在 Linux 主机上,打开终端并执行以下命令安装所需工具:
bash
sudo apt-get update
sudo apt-get install debootstrap qemu-user-static binfmt-support parted dosfstools kpartx
debootstrap
:用于创建基础的 Debian 文件系统。qemu - user - static
和binfmt - support
:允许在 x86 架构的主机上模拟 ARM 架构来构建系统。parted
、dosfstools
和kpartx
:用于磁盘分区和文件系统操作。
创建基础 Debian 文件系统
创建工作目录:在主机上选择一个合适的位置创建工作目录,例如:
bash
mkdir -p ~/orangepi_debian
cd ~/orangepi_debian
使用 debootstrap 创建基础系统:执行以下
debootstrap
命令来创建基础的 Debian 文件系统。这里假设使用 Debian Bullseye 版本,你可以根据实际需求更改版本。
bash
debootstrap --arch=arm64 --foreign bullseye debian_root http://deb.debian.org/debian
--arch=arm64
:指定目标系统的架构为 ARM64,适用于 Orange Pi KunPeng Pro 的处理器架构。--foreign
:表示这是一个交叉编译环境下的引导安装。bullseye
:Debian 版本代号。debian_root
:是创建的基础文件系统的目录名,可自行命名。http://deb.debian.org/debian
:Debian 官方软件源地址。
挂载必要的文件系统:为了能在这个基础文件系统中进行后续配置,需要挂载一些关键的文件系统:
bash
sudo mount --bind /dev debian_root/dev
sudo mount --bind /dev/pts debian_root/dev/pts
sudo mount --bind /proc debian_root/proc
sudo mount --bind /sys debian_root/sys
配置基础系统
进入基础系统环境:通过
chroot
进入刚刚创建的基础 Debian 系统环境:
bash
sudo chroot debian_root /debootstrap/debootstrap --second-stage
设置软件源:编辑
/etc/apt/sources.list
文件,更换为适合你所在地区的 Debian 软件源,例如:
bash
nano /etc/apt/sources.list
将文件内容替换为:
plaintext
deb http://deb.debian.org/debian bullseye main contrib non - free
deb - src http://deb.debian.org/debian bullseye main contrib non - free
deb http://deb.debian.org/debian bullseye - updates main contrib non - free
deb - src http://deb.debian.org/debian bullseye - updates main contrib non - free
deb http://security.debian.org/debian - security bullseye - security main contrib non - free
deb - src http://security.debian.org/debian - security bullseye - security main contrib non - free
按Ctrl + X
,然后按Y
,最后按Enter
保存并退出。
更新系统并安装基本工具:更新软件包列表并安装一些基本工具:
bash
apt - get update
apt - get install - y locales sudo net - tools vim
设置 locale:生成所需的 locale,例如:
bash
dpkg - reconfigure locales
在弹出的界面中,选择你需要的 locale(如en_US.UTF - 8 UTF - 8
),然后设置默认 locale。
创建用户:创建一个普通用户(避免直接使用 root 用户):
bash
adduser your_username
adduser your_username sudo
将your_username
替换为你想要的用户名。
设置 root 密码:为 root 用户设置密码:
bash
passwd root
配置内核与设备树
获取 Orange Pi KunPeng Pro 的内核和设备树文件:你可以从 Orange Pi 官方的 GitHub 仓库或其他官方资源获取适用于该开发板的内核和设备树文件。假设已经下载到
~/orangepi_debian
目录下,文件名为Image
(内核)和dtb.img
(设备树)。将内核和设备树文件复制到系统中:在
chroot
环境中执行以下命令:
bash
mkdir -p /boot
cp /path/to/Image /boot/
cp /path/to/dtb.img /boot/
将/path/to/
替换为实际存放Image
和dtb.img
文件的路径。
退出 chroot 环境并清理挂载
退出 chroot 环境:在
chroot
环境中,按Ctrl + D
或执行exit
命令退出。卸载挂载的文件系统:在主机的终端中执行以下命令卸载之前挂载的文件系统:
bash
sudo umount debian_root/sys
sudo umount debian_root/proc
sudo umount debian_root/dev/pts
sudo umount debian_root/dev
创建可引导的镜像文件
创建镜像文件:在
~/orangepi_debian
目录下创建一个空的镜像文件,例如大小为 4GB:
bash
dd if=/dev/zero of=orangepi_debian.img bs=1M count=4096
对镜像文件进行分区:使用
parted
工具对镜像文件进行分区:
bash
parted orangepi_debian.img mklabel msdos
parted orangepi_debian.img mkpart primary fat32 1MiB 100%
parted orangepi_debian.img set 1 boot on
将分区映射到系统:使用
kpartx
工具将镜像文件中的分区映射到系统:
bash
sudo kpartx - av orangepi_debian.img
假设映射后的设备名为/dev/mapper/loop0p1
(实际可能不同,根据终端输出确定)。
格式化分区:对映射后的分区进行格式化:
bash
sudo mkfs.vfat /dev/mapper/loop0p1
挂载分区:创建一个挂载点并挂载分区:
bash
mkdir -p ~/orangepi_mount
sudo mount /dev/mapper/loop0p1 ~/orangepi_mount
将定制的 Debian 系统复制到镜像分区:将之前创建的
debian_root
目录中的内容复制到挂载的分区中:
bash
sudo rsync -a debian_root/ ~/orangepi_mount/
卸载分区并删除映射:复制完成后,卸载分区并删除映射:
bash
sudo umount ~/orangepi_mount
sudo kpartx - dv orangepi_debian.img
此时,orangepi_debian.img
就是你定制的适用于 Orange Pi KunPeng Pro 开发板的 Debian 系统镜像,可以使用 Etcher 等工具将其烧录到 SD 卡,然后在开发板上启动。