当前位置:首页 > 技术 > LINUX > 正文内容

Ubuntu 运行在 Milk-V Duo上

Watrt2年前 (2024-05-15)LINUX12140

设置

我们需要在内核配置中启用几个模块,然后才能继续,

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

打赏 支付宝打赏 微信打赏
分享给朋友:

相关文章

Deepin Linux修复grub引导

Deepin Linux修复grub引导

环境说明:一直使用的是Win7+Deepin 15.5。后来全新安装了Win 10,需要修复grub第一步:在Windows操作系统下使用深度官方的U盘启动制作器 制作U盘第二步:开机U盘启动进入Deepin linux安装界面,待进入到安装界面选择语言时,按住Crtl+Alt+F2/F1进入Linux tty终端。并执行以下命令完成修复sudo fdisk -l/*根据查询结果确定deepin 的/目录和/boot目录所在的分区编号*/sudo mount&nbs...

buildroot编译中的问题

buildroot编译中的问题

在编译中遇到flex 报错。一直过不了。后来发现安装flex bison两个包后解决sudo apt-get install flex bison...

[转]《保姆级教程》全志F1C100S/F1C200S spi-flash 启动全流程适配烧录及踩坑指南

[转]《保姆级教程》全志F1C100S/F1C200S spi-flash 启动全流程适配烧录及踩坑指南

转自哇酷网=丨晋丨通过参考荔枝派nano官方和论坛大佬的帖子,总结了烧录 spi-flash 启动的方法。通过搜寻资料,把其中有错误或者做了多余的操作的步骤做了修正,以免大家再次踩坑,耗费青春。以下包括 uboot、kernel、buildroot 和 烧录的详细步骤和需要注意的问题,尽量精简方法,以期容易上手和理解。各种配置项也做了详细注释,要知其然,也知其所以然。最理想的状态应该是是:有的坑,踩的人多了,也便没有了坑。论坛不太好排版,有需要的也可以去我的博客看:P:全志F1C100S/F1C...

修改U-BOOT,输出信息在LCD上显示,并使用USB连接键盘使用控制台

修改U-BOOT,输出信息在LCD上显示,并使用USB连接键盘使用控制台

修改方法:一:修改U-BOOT   include/configs/suniv.h#define CONFIG_BOOTCOMMAND"fatload mmc 0:1 0x80800000 zImage; "  \              &nb...

Configure & Build

Configure & Build

Configure and build Linux kernel for Surface RTEditing kernel build configurationFirst run the command make ARCH=arm tegra_defconfigThis will create a standard kernel config for tegra SoC's.Open the file .config in the kernel source directory wit...

荔枝派Nano的linux5.2版本主线下载及编译(支持USB设备与主机模式)

荔枝派Nano的linux5.2版本主线下载及编译(支持USB设备与主机模式)

安装必须的库:sudo apt-get install gcc make cmake rsync wget unzip build-essential git bc swig libncurses-dev libpython3-dev libssl-dev python3-distutils android-tools-mkbo...

从Ubuntu-base构建ubuntu rootfs系统

从Ubuntu-base构建ubuntu rootfs系统

1.介绍ubuntu-base 是Ubuntu官方构建的ubuntu最小文件系统,包含debain软件包管理器,基础包大小通常只有几十兆,其背后有整个ubuntu软件源支持,ubuntu软件一般稳定性比较好,基于ubuntu-base按需安装Linux软件,深度可定制…,常用于嵌入式rootfs构建。嵌入式常见的几种文件系统构建方法:busybox、yocto、builroot,我觉得它们都不如Ubuntu方便,强大的包管系统,有强大的社区支持,可以直接apt-get install来安装新软件...

Ubuntu+Openbox_还原_安装_脚本

Ubuntu+Openbox_还原_安装_脚本

第一步:安装UBUNTU基本系统安装基本的命令行系统,选英文。装好重启后马上把系统tar备份(只有186M),下次重装1分钟就可以解压第二步:执行脚本#!/bin/bash #联网----------->卸载DHCP、配置拨号、解决掉线、网络接口 sudo apt-get -y purge isc-dhcp-client && sudo pppoeconf && s...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。