出于研究ROS2、Apollo等自动驾驶相关系统,需要安装一个ubuntu系统。Apollo显示要求Ubuntu18.04以上系统,ROS Humble版本要求Ubuntu 22.04。综合两者的要求,选择的最新的LTS版,Ubuntu 22.04.1 LTS进行安装。

操作步骤

具体操作步骤如下:

  1. 在Virtualbox新建虚拟机,注意以下两点:

    (1)在设置内存、处理器时,选中Enable EFI,以便将来系统既可以在UEFI下启动,也可以在Legacy BIOS下启动。

    (2)需要在新建虚拟磁盘时,选中Pre-allocate Full Size,新建固定大小的vdi文件。

  2. 启动虚拟机,安装系统,完成设置。根据ventoy的文档,完成安装后,部分linux系统需要Legacy BIOS启动的补充包(比如Deepin),Ubuntu不需要这一步就省略了。为了让ubuntu顺利支持ventoy,需要从https://github.com/ventoy/vtoyboot/releases下载一个压缩包,并解压后执行脚本,然后关机即可。

  3. 在Virtualbox的虚拟介质管理中,释放新建虚拟机的虚拟硬盘。然后在文件资源管理器中找到这个文件,将文件后缀名由.vdi改为.vdi.vtoy。再在Virtualbox中注册这个虚拟硬盘。注意,由于后缀名改了,注册时,文件类型要选择所有文件才能找到改后缀名后的虚拟硬盘文件。

  4. Ventoy官方网站下载最新版的Ventoy。自从 Ventoy 1.0.66 版本开始,Ventoy 支持启动本地硬盘中的镜像文件,这也是我们能使用Ventoy实现虚拟机、真机双启动的基础。

  5. 找一个不用的U盘,容量无所谓,使用Ventoy将其制作为启动U盘。再使用VentoyVlnk.exe程序,创建一个虚拟硬盘的链接文件,后缀为.vdi.vlnk.vtoy。将这个链接文件复制到Ventoy启动U盘的中。重启电脑,在启动选项中使用这个U盘作为启动盘,就会进入Ventoy界面,在Ventoy界面中,选择刚才复制过来的链接,就会从vdi虚拟硬盘中启动系统,从而实现真机上运行Ubuntu的功能,发挥其最大性能。

  6. 重启进入windows系统,仍然可以从Virtualbox中启动虚拟机运行Ubuntu。

至此,目标完成。

Read More

今天领导布置了一个在CCTV-1上看节目的任务,我急忙在电脑上搜CCTV,结果央视的网站居然打不开了。赶快上搜一下,结果有的指向了知乎,结果发现知乎也打不开了。

ping了一下,发现打不开的网站ping到的都是ipv6的地址。

1
2
3
4
5
6
7
8
9
10
11
12
PS C:\WINDOWS\system32> ping tv.cctv.com

正在 Ping g2.ctc.cctvcdn.net.lxdns.com [240e:918:1a00:201::15] 具有 32 字节的数据:
来自 240e:918:1a00:201::15 的回复: 时间=13ms
来自 240e:918:1a00:201::15 的回复: 时间=13ms
来自 240e:918:1a00:201::15 的回复: 时间=13ms
来自 240e:918:1a00:201::15 的回复: 时间=13ms

240e:918:1a00:201::15 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 13ms,最长 = 13ms,平均 = 13ms
1
2
3
4
5
6
7
8
9
10
11
12
PS C:\WINDOWS\system32> ping www.zhihu.com

正在 Ping 1595096.sched.d0-dk.tdnsdp1.cn [240e:925:2:730::40] 具有 32 字节的数据:
来自 240e:925:2:730::40 的回复: 时间=2ms
来自 240e:925:2:730::40 的回复: 时间=2ms
来自 240e:925:2:730::40 的回复: 时间=2ms
来自 240e:925:2:730::40 的回复: 时间=2ms

240e:925:2:730::40Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 2ms,最长 = 2ms,平均 = 2ms

而能打开的网址ping到的都是ipv4地址

1
2
3
4
5
6
7
8
9
10
11
12
PS C:\WINDOWS\system32> ping www.baidu.com

正在 Ping www.a.shifen.com [180.101.49.11] 具有 32 字节的数据:
来自 180.101.49.11 的回复: 字节=32 时间=34ms TTL=52
来自 180.101.49.11 的回复: 字节=32 时间=34ms TTL=52
来自 180.101.49.11 的回复: 字节=32 时间=34ms TTL=52
来自 180.101.49.11 的回复: 字节=32 时间=34ms TTL=52

180.101.49.11Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 34ms,最长 = 34ms,平均 = 34ms

尝试根据以前的方法清除DNS缓存,通过管理员权限打开CMD

1
2
3
4
5
# 清除DNS缓存信息
ipconfig /flushdns

# 重置winsock 目录设置
netsh winsock reset

重启之后,没有解决问题

后来我在搜索时找到这篇文章使用IPv6后一些网站无法访问,有时能访问有时无法访问问题解决-次世代BUG池 (neucrack.com)

文章中说:

Read More

虽然我已经有了一个Microsoft 365 的个人帐号,但是365个人帐号的Onedrive只有1G的容量,而E5开发帐号的Onedrive可以达到5T的容量,况且可以白嫖,拿来备份一下电影、视频什么的最合适不过了。

激活E5的方法,网上已经的教程很多了,我就不重复一遍了。我是参考2022 免费申请永久正版 Office E5 开发者订阅+ 5T 不限速网盘教程 (mspace.cc)操作的,大家也可以参考。

下面把我在操作中遇到的问题说一下。

手机收不到激活码

注册的过程中,有一步是要输入手机号接收验证码,但是我始终无法收到验证码。网上搜了一下,都说是接收验证码使用了Google的服务,需要解决访问海外网站的问题。

我在实践中发现,除了需要能访问谷歌的服务之外,还需要把中文页面换成英文页面,才能收到验证码。也就是把https://developer.microsoft.com/zh-cn/microsoft-365/profile中间的zh-cn改成en-us就可以了,即访问https://developer.microsoft.com/en-us/microsoft-365/profile

涉及到的一些网站

  1. 仪表板 - Microsoft 365 开发人员中心 :用于注册,及查看剩余天数。
  2. SharePoint 管理中心:可以设置Onedrive容量。
  3. Microsoft 365 admin center:管理用户
  4. Microsoft Azure :注册应用、API等,用于访问微软的API以延长续订。
  5. E5续订 (qyi.io) :一个访问outlook API 以续订E5的网站。
  6. E5 Renew Plus 官方网站 : 一个续订E5的桌面版软件。

之前的文章「自己制作的第一个WEB应用 | 吕旭说 (lvxu.site)」里描述了我的第一个网页应用。页面开发出来一开始是发布在Github上的。在Github上一切正常。但是这个页面要给别人用,考虑到访问速度,就用Gitee的导入功能,从Github复制了一份到Gitee上。

没想到在Github上一切正常的网页,在Gitee上就成了乱码。

在网上搜了一下,都说是中文编码的问题,如果网页HTML文件的编码和文件中<meta charset="">里面不一致的话,就会有这种情况。比如网页HTML文件的编码是GBK(在Windows下,ANSI即为GBK),而文件中将编码规定为UTF-8(<meta charset="UTF-8">),则中文会呈现为乱码。

而我这个显然不是这种情况。我的HTML文件是用notepad++编写的,一开始就是UTF-8编码格式,况且网页在Github Page里面显示是正常的。同时,我点右键打开乱码网页的源代码,发现源代码就是乱码的。

我又考虑到,是否是换行码的问题。我尝试将HTML文档的Windows换行符CR LF改成了Unix换行符 LF,重新上传,没有解决问题。

最后,我尝试在windows下,先用系统自带的记事本将HTML的编码转为ANSI,再重新保存为UTF-8,发现页面里多出来几个「?」,删除这几个问号后,再上传,问题解决。

前两天自己完成了第一个HTML5+JavaScript的Web应用,发文纪念一下。

应用的作用

很多使用多连杆后桥的汽车,由于配置或预留了后桥转向功能,因此后桥的前束控制臂无法用于四轮定位参数的调整。此时,后桥的两个调整螺栓调整时,会使得前束和外倾同时变化,导致不太容易调整。

传统上,需要在一张特定的坐标图上根据当前的四轮定位外倾值、前束值和目标外倾值、前束值根据规定的斜率规律进行绘图,找到一个中间值。这样就能分两步,先调整到中间值,再调整到目标值,实现两步调整。如果不这样的话可能会导致反复调整,效率较低。

我之前是做了一个EXCEL文档,用数学方式代替作图,实现输入数据自动计算中间值和调整顺序。但是在手机上,这个文档需要用WPS手机版打开,不太方便,因此萌生了用网页实现这个功能的想法。

页面开发

基本思路就是HTML5搭建页面框架,用JavaScript进行计算。

Read More