赞
踩
平台:orangepi4 rockchip rk3399 LPDDR4 4G eMMC 16G
系统:ubuntu 20.04
ubuntu-base是一个基础的Ubuntu系统,可以理解为最小的Ubuntu系统,本文适用所有arm/aarch64,这里我使用的是ubuntu2020.04版本
wget http://cdimage.ubuntu.com/ubuntu-base/releases/20.04/release/ubuntu-base-20.04.3-base-arm64.tar.gz
解压:
- mkdir ubuntu2020.04
- sudo tar -xzvf http://cdimage.ubuntu.com/ubuntu-base/releases/20.04/release/ubuntu-base-20.04.3-base-arm64.tar.gz -C ubuntu2020.04/
为系统增加dns域名地址,否则在apt-update的时候可能会报错
- sudo vi vi /etc/resolv.conf
- nameserver 8.8.8.8
- nameserver 192.168.1.1
在进行制作文件系统镜像之前需要先对系统安装一些必要的工具,这时候需要用到qemu虚拟机工具,通过虚拟机工具挂载到chroot。chroot命令用来在指定的根目录下运行指令。chroot,即 change root directory (更改 root 目录)。在 linux 系统中,系统默认的目录结构都是以/
,即是以根 (root) 开始的。而在使用 chroot 之后,系统的目录结构将以指定的位置作为/
位置。
安装qemu
sudo apt-get install qemu-user-static
通过以下脚本挂载
- #!/bin/bash
- mnt ()
- {
- echo "MOUNTING"
- sudo mount -t proc /proc ${2}proc
- sudo mount -t sysfs /sys ${2}sys
- sudo mount -o bind /dev ${2}dev
- sudo mount -o bind /dev/pts ${2}dev/pts
- sudo chroot ${2}
- }
- umnt ()
- {
- echo "UNMOUNTING"
- sudo umount ${2}proc
- sudo umount ${2}sys
- sudo umount ${2}dev/pts
- sudo umount ${2}dev
- }
-
- if [ "$1" = "-m" ] && [ -n "$2" ];
- then
- mnt $1 $2
- echo "mnt -m pwd"
- elif [ "$1" = "-u" ] && [ -n "$2" ];
- then
- umnt $1 $2
- echo "mnt -u pwd"
- else
- echo ""
- echo "Either 1'st, 2'nd or bothparameters were missing"
- echo ""
- echo "1'st parameter can be one ofthese: -m(mount) OR -u(umount)"
- echo "2'nd parameter is the full pathof rootfs directory(with trailing '/')"
- echo ""
- echo "For example: ch-mount -m/media/sdcard/"
- echo ""
- echo 1st parameter : ${1}
- echo 2nd parameter : ${2}
- fi
执行挂载
- sudo sh ms.sh -m ubuntu2020.04
-
- MOUNTING
- root@work-B85M-D3V:/#
安装必要工具
- apt-get update
- apt-get install python3 vim net-tools iputils-ping iproute2 isc-dhcp-client telnetd
可安装图形界面:
- apt-get install ubuntu-gnome-desktop
- apt-get install xubuntu-desktop
安装图形界面比较久,如果只是验证可不安装
设置密码
passwd root
根据需要修改/etc/fstab,/etc/fstab是用来存放文件系统的静态信息的文件,当系统启动的时候,系统会自动地从这个文件读取信息,并且会自动将此文件中指定的文件系统挂载到指定的目录。
- # stock fstab - you probably want to override this with a machine specific one
-
- /dev/root / auto defaults 1 1
- proc /proc proc defaults 0 0
- devpts /dev/pts devpts mode=0620,gid=5 0 0
- tmpfs /run tmpfs mode=0755,nodev,nosuid,strictatime 0 0
- tmpfs /var/volatile tmpfs defaults 0 0
-
- # uncomment this if your device has a SD/MMC/Transflash slot
- dev/mmcblk0p3 /media/card ext4 defaults 0 0
-
退出绑定,退出时一定要执行,否则会导致系统出错
- root@work-B85M-D3V:/# exit
- sudo sh ms.sh -u ubuntu20.04
使用以下脚本
- #!/bin/bash
- rm -rf rootfs.ext3
- rm -rf fs
- dd if=/dev/zero of=./rootfs.ext3 bs=1M count=$2
- mkfs.ext3 rootfs.ext3
- mkdir fs
- mount -o loop rootfs.ext3 ./fs
- cp -rf ./$1/* ./fs
- umount ./fs
- gzip --best -c rootfs.ext3 > rootfs.img.gz
我们制作一个ext3文件系统的镜像
sudo sh mkfs.sh ubuntu2020.04 4096
可根据生成的文件夹大小来调整文件系统的大小,生成成功后得到rootfs.ext3文件,将这个文件系统下载到开发板开机:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。