发布于 

MilkV Duo 运行 Ubuntu

上次成功把板子点亮了,也刷入了官方系统,但是却不太满意。

MilkV-Duo折腾小计

因为后续使用发现,官方系统似乎并不是完整的 Linux,功能较少,而且好像也无法直接通过命令行安装软件。

而我的本意是想拿它当个小服务器来用,现在似乎无法满足我的需求。

于是便想着刷个别的系统,然后在 MilkV 论坛上找到了一篇自己构建系统镜像的文章。

Milk-V Duo Debian/Ubuntu Image builder

以下整个构建过程,都在我的 Ubuntu 虚拟机上完成。

需要 docker,先装个 docker。

1
apt-get install -y docker.io

安装完开始下载仓库。

1
git clone https://github.com/logicethos/Milk-V_Duo_Linux2SD.git

然后进入目录,并运行脚本。

1
2
cd Milk-V_Duo_Linux2SD
./run.sh

选择要构建的系统镜像,我选的是 Ubuntu,也可以选 Debian。

当时构建镜像的时候没注意修改配置,登录之后发现整个系统分区大小才 1G,害得我又重新构建一次。

需要修改 ubuntu-milkv-duo256m 文件夹下的 ENV 文件,将 export ROOTFS_SIZE=”1G” 这一行改掉,我的 SD 卡是 29G 的,保险起见我就改成了 export ROOTFS_SIZE=”25G”,Debian 的话就是改 debian-milkv-duo256m_TEST 文件夹下的 ENV 文件。

为镜像的 root 用户设置密码,我设置为 123。

确定然后开始构建,等待构建完成。期间可能由于各种原因会卡住,解决办法是直接 Ctrl + C 然后重新再来,多试几次就好了。

大概需要二十多分钟,会消耗 10G 左右硬盘容量。

等待期间先将读卡器插入电脑,并分配给虚拟机。需要确保虚拟机正常连接到读卡器,一开始我连不上,后面发现是虚拟机设置中 USB 兼容性设置的是 2.0,而我的读卡器是 3.0 的,修改兼容性就解决了。

构建完会提示是否写入到 SD 卡。

选择 SD 卡确定后开始写入。

等待写入完成即可。

至此系统刷入完成。

将 SD 卡插入板子,启动后会自动开启 SSH。但是这个系统并不像官方系统那样支持 RNDIS,所以还得通过串口来连接登录。

花 4 块钱在淘宝买了一个 CH340G 模块,送了 5 根杜邦线。

把 3 根杜邦线接到模块的 TXD、RXD、GND,并把杜邦线另一边的头剪掉,将裸线漏出。

其实正常应该往板子上焊排针,在把杜邦线接到排针,但是我懒得也不会焊接哈哈。

参考 MilkV 官方引脚图。

开始接线。

TXD 接到 GP13(UART0/1_RX),RXD 接到 GP12(UART0/1_TX),GND 接到 GND。

通电,接上电脑,此时设备管理器已经可以看到串口了。

打开 xhell,新建连接,协议选择 SERIAL 即串口。

设置串口,选择端口号,设置波特率为 115200。

连接。

正常可以看到启动日志,但是也可能这个时候已经启动完了,就看不到启动日志了。此时可以先给板子断电,然后再接电,就可以完整的看到启动日志打印了。

提示登录,但是 ttyS0 是无法登录的,输入不了任何内容,解决办法是关闭当前连接,再次连接。

然后直接输入用户名 root,回车,输入密码,再次回车,登录成功!

但是此时板子还是无法上网,ifconfig 显示的也是一个保留地址。

参考论坛大佬的文章:《网线直接连接Milkv-Duo》

剪掉网线一边水晶头,露出裸线,接到板子上。

根据 MilkV 官方引脚图,找到对应的引脚。

橙白颜色接 TXP(TX+),橙色接 TXN(TX-),绿白色接 RXP(RX+),绿色接 RXN(RX-)。

一共 8 根线,但是只需要接这 4 根。

再次 ifconfig,居然真的连上网了!ping 也可以 ping 通。

试了一下 ssh 连接,也能连上。

看来,最高端的联网,往往只需要最朴素的接线方式哈哈。

不过每次板子重启之后,内网 IP 会变,我照着网上教程为它设置静态 IP,结果设置完直接无法启动了,串口也连不上,害得我又刷了一遍系统。

索性就不管了。

至此,我就有了一个迷你服务器了。


——end——