MilkV Duo 运行 Ubuntu
上次成功把板子点亮了,也刷入了官方系统,但是却不太满意。
因为后续使用发现,官方系统似乎并不是完整的 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 | cd Milk-V_Duo_Linux2SD |
选择要构建的系统镜像,我选的是 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,结果设置完直接无法启动了,串口也连不上,害得我又刷了一遍系统。
索性就不管了。
至此,我就有了一个迷你服务器了。