Ubuntu 运行在 Milk-V Duo上
设置
我们需要在内核配置中启用几个模块,然后才能继续,
nano ~/duo-buildroot-sdk/build/boards/cv180x/cv1800b_milkv_duo_sd/linux/cvitek_cv1800b_milkv_duo_sd_defconfig
# and add at the end: CONFIG_CGROUPS=y CONFIG_CGROUP_FREEZER=y CONFIG_CGROUP_PIDS=y CONFIG_CGROUP_DEVICE=y CONFIG_CPUSETS=y CONFIG_PROC_PID_CPUSET=y CONFIG_CGROUP_CPUACCT=y CONFIG_PAGE_COUNTER=y CONFIG_MEMCG=y CONFIG_CGROUP_SCHED=y CONFIG_NAMESPACES=y CONFIG_OVERLAY_FS=y CONFIG_AUTOFS4_FS=y CONFIG_SIGNALFD=y CONFIG_TIMERFD=y CONFIG_EPOLL=y CONFIG_IPV6=y CONFIG_FANOTIFY # optional (enable zram): CONFIG_ZSMALLOC=y CONFIG_ZRAM=y
重要提示:要减少ram使用量,,要增加rootfs分区大小,您可以编辑duo-buildroot-sdk/milkv/genimage-milkv-duo.cfg在第16行替换为size = 256M或者size = 1G或更高的值,重新打包
创建文件系统
安装必备组件
sudo apt install debootstrap qemu qemu-user-static binfmt-support dpkg-cross --no-install-recommends
生成最小的引导根文件
sudo debootstrap --arch=riscv64 --foreign jammy ./temp-rootfs http://ports.ubuntu.com/ubuntu-ports
chroot进入我们刚刚创建的rootfs
sudo chroot temp-rootfs /bin/bash
运行第二阶段
/debootstrap/debootstrap --second-stage
添加源
cat >/etc/apt/sources.list <<EOF deb http://ports.ubuntu.com/ubuntu-ports jammy main restricted deb http://ports.ubuntu.com/ubuntu-ports jammy-updates main restricted deb http://ports.ubuntu.com/ubuntu-ports jammy universe deb http://ports.ubuntu.com/ubuntu-ports jammy-updates universe deb http://ports.ubuntu.com/ubuntu-ports jammy multiverse deb http://ports.ubuntu.com/ubuntu-ports jammy-updates multiverse deb http://ports.ubuntu.com/ubuntu-ports jammy-backports main restricted universe multiverse deb http://ports.ubuntu.com/ubuntu-ports jammy-security main restricted deb http://ports.ubuntu.com/ubuntu-ports jammy-security universe deb http://ports.ubuntu.com/ubuntu-ports jammy-security multiverse EOF
更新源
apt-get update apt-get install --no-install-recommends -y util-linux haveged openssh-server systemd kmod initramfs-tools conntrack ebtables ethtool iproute2 iptables mount socat ifupdown iputils-ping vim dhcpcd5 neofetch sudo chrony
# 优化内存占用
apt-get install zram-config systemctl enable zram-config
创建基础配置文件
mkdir -p /etc/network cat >>/etc/network/interfaces <<EOF auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp EOF cat >/etc/resolv.conf <<EOF nameserver 1.1.1.1 nameserver 8.8.8.8 EOF
将文本写入fstab(这是在启用了交换的情况下进行的,如果您想禁用它,只需在交换行前加一个#即可)
cat >/etc/fstab <<EOF # <file system><mount pt><type><options><dump><pass> /dev/root/ext2rw,noauto01 proc/procprocdefaults00 devpts/dev/ptsdevptsdefaults,gid=5,mode=620,ptmxmode=066600 tmpfs/dev/shmtmpfsmode=077700 tmpfs/tmptmpfsmode=177700 tmpfs/runtmpfsmode=0755,nosuid,nodev,size=64M00 sysfs/syssysfsdefaults00 /dev/mmcblk0p3 none swap sw 0 0 EOF
设置主机名
echo "milkvduo-ubuntu" > /etc/hostname
设置密码
echo "root:riscv" | chpasswd
开启SSH登陆
sed -i "s/#PermitRootLogin.*/PermitRootLogin yes/g" /etc/ssh/sshd_config
# 退出chroot
exit sudo tar -cSf Ubuntu-jammy-rootfs.tar -C temp-rootfs . gzip Ubuntu-jammy-rootfs.tar rm -rf temp-rootfs
制作镜像
接下来,我们像这样刷新sd卡上的图像:
dd if=milkv-duo.img of=/dev/sdX status=progress #replace X with your device name
我们挂载rootfs分区并删除其中的所有文件bash sudo rm -r /media/yourusername/rootfs然后创建一个目录mkdir ubunturootfs提取我们的Ubuntu-jammy-rootfs.tar然后跑
tar -xf Ubuntu-jammy-rootfs.tar -C ubunturootfs
现在我们将rootfs复制到我们挂载的分区:
sudo cp -r ubunturootfs/* /media/yournamehere/rootfs/
仅此而已!你现在应该可以毫无问题地启动到ubuntu了
引用位置:https://github.com/bassusteur/milkv-duo-ubuntu