Compare commits
2 Commits
a93b098a34
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b002fa6e56 | ||
|
|
1c6b377160 |
34
.obsidian/workspace.json
vendored
34
.obsidian/workspace.json
vendored
@@ -4,17 +4,21 @@
|
|||||||
"type": "split",
|
"type": "split",
|
||||||
"children": [
|
"children": [
|
||||||
{
|
{
|
||||||
"id": "1c80e301e5336e31",
|
"id": "9b7963e42793abf4",
|
||||||
"type": "tabs",
|
"type": "tabs",
|
||||||
"children": [
|
"children": [
|
||||||
{
|
{
|
||||||
"id": "3a2bf412478b4ef6",
|
"id": "c926a1cc9fc50f7f",
|
||||||
"type": "leaf",
|
"type": "leaf",
|
||||||
"state": {
|
"state": {
|
||||||
"type": "empty",
|
"type": "markdown",
|
||||||
"state": {},
|
"state": {
|
||||||
|
"file": "零碎的知识/mac安装ubuntu.md",
|
||||||
|
"mode": "source",
|
||||||
|
"source": false
|
||||||
|
},
|
||||||
"icon": "lucide-file",
|
"icon": "lucide-file",
|
||||||
"title": "新标签页"
|
"title": "mac安装ubuntu"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -176,12 +180,19 @@
|
|||||||
"pdf-plus:PDF++: Toggle auto-paste": false
|
"pdf-plus:PDF++: Toggle auto-paste": false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"active": "8e9bf87d81cab358",
|
"active": "c926a1cc9fc50f7f",
|
||||||
"lastOpenFiles": [
|
"lastOpenFiles": [
|
||||||
"conflict-files-obsidian-git.md",
|
"零碎的知识/vscode免密.md",
|
||||||
|
"零碎的知识/mac安装ubuntu.md",
|
||||||
"超级备忘/粤嵌实训/正常开发流程.md",
|
"超级备忘/粤嵌实训/正常开发流程.md",
|
||||||
"超级备忘/粤嵌实训",
|
|
||||||
"超级备忘/择校方面.md",
|
"超级备忘/择校方面.md",
|
||||||
|
"技能树/校园网/校园网通过openwrt绕过校园网多设备检测.md",
|
||||||
|
"技能树/frp内网穿透技术/frp内网穿透.md",
|
||||||
|
"技能树/moonlight-sunshine串流/moonlight-sunshine.md",
|
||||||
|
"技能树/fireceawl api.md",
|
||||||
|
"个人日记/2026-05-11.md",
|
||||||
|
"conflict-files-obsidian-git.md",
|
||||||
|
"超级备忘/粤嵌实训",
|
||||||
"个人总纲和进度监督/英语六级/2026-06-12/2026-06-12.md",
|
"个人总纲和进度监督/英语六级/2026-06-12/2026-06-12.md",
|
||||||
"个人总纲和进度监督/英语六级/2026-06-12",
|
"个人总纲和进度监督/英语六级/2026-06-12",
|
||||||
"个人总纲和进度监督/英语六级/2026-06-07/2026-06-07.md",
|
"个人总纲和进度监督/英语六级/2026-06-07/2026-06-07.md",
|
||||||
@@ -203,24 +214,17 @@
|
|||||||
"零碎的知识/设置ipv4自动设置.md",
|
"零碎的知识/设置ipv4自动设置.md",
|
||||||
"零碎的知识/嵌入式实验室设备使用指南.md",
|
"零碎的知识/嵌入式实验室设备使用指南.md",
|
||||||
"零碎的知识/设置代理.md",
|
"零碎的知识/设置代理.md",
|
||||||
"零碎的知识/vscode免密.md",
|
|
||||||
"零碎的知识/数学建模导论 -2025年2月学习笔记.md",
|
"零碎的知识/数学建模导论 -2025年2月学习笔记.md",
|
||||||
"超级备忘/课内备忘/Pasted image 20260313115708.png",
|
"超级备忘/课内备忘/Pasted image 20260313115708.png",
|
||||||
"超级备忘/课内备忘/课表.md",
|
"超级备忘/课内备忘/课表.md",
|
||||||
"零碎的知识/ppo算法.md",
|
"零碎的知识/ppo算法.md",
|
||||||
"零碎的知识/ros1禁用gazebo的gpu功能.md",
|
"零碎的知识/ros1禁用gazebo的gpu功能.md",
|
||||||
"零碎的知识/ubuntu设置swap交换内存.md",
|
|
||||||
"零碎的知识/clould code.md",
|
|
||||||
"rm常用库/c板常用接口.md",
|
|
||||||
"技能树/jetson orin nx surper开发/未命名.md",
|
|
||||||
"个人总纲和进度监督/英语六级/2026-05-13/file_other/2025.12六级真题第3套.webp",
|
"个人总纲和进度监督/英语六级/2026-05-13/file_other/2025.12六级真题第3套.webp",
|
||||||
"个人总纲和进度监督/英语六级/2026-05-13/file_other/2025.12六级真题第3套 5.webp",
|
"个人总纲和进度监督/英语六级/2026-05-13/file_other/2025.12六级真题第3套 5.webp",
|
||||||
"个人总纲和进度监督/英语六级/2026-05-13/file_other/2025.12六级真题第3套 3.webp",
|
"个人总纲和进度监督/英语六级/2026-05-13/file_other/2025.12六级真题第3套 3.webp",
|
||||||
"个人总纲和进度监督/英语六级/2026-05-13/file_other/2025.12六级真题第3套 4.webp",
|
"个人总纲和进度监督/英语六级/2026-05-13/file_other/2025.12六级真题第3套 4.webp",
|
||||||
"个人总纲和进度监督/英语六级/2026-05-13/file_other/2025.12六级真题第3套 2.webp",
|
"个人总纲和进度监督/英语六级/2026-05-13/file_other/2025.12六级真题第3套 2.webp",
|
||||||
"个人总纲和进度监督/英语六级/2026-05-13/file_other/2025.12六级真题第3套 1.webp",
|
"个人总纲和进度监督/英语六级/2026-05-13/file_other/2025.12六级真题第3套 1.webp",
|
||||||
"个人总纲和进度监督/英语六级/2026-05-13/2026-05-13.md",
|
|
||||||
"个人总纲和进度监督/英语六级/2026-05-12/2026-05-12.md",
|
|
||||||
"个人总纲和进度监督/英语六级/2026-05-10/file_other/2025.12六级真题第1套.webp",
|
"个人总纲和进度监督/英语六级/2026-05-10/file_other/2025.12六级真题第1套.webp",
|
||||||
"个人总纲和进度监督/英语六级/2026-05-10/file_other/2025.12六级真题第1套 1.webp",
|
"个人总纲和进度监督/英语六级/2026-05-10/file_other/2025.12六级真题第1套 1.webp",
|
||||||
"超级备忘/课内备忘/微信图片_20260320233205_9_4.jpg"
|
"超级备忘/课内备忘/微信图片_20260320233205_9_4.jpg"
|
||||||
|
|||||||
BIN
技能树/.DS_Store
vendored
Normal file
BIN
技能树/.DS_Store
vendored
Normal file
Binary file not shown.
@@ -4,4 +4,6 @@
|
|||||||
在配置sunshine网络的面板上,你看到的所有的tcp和udp的端口都需要进行转发,因为sunshine是通过不同的通道来融合串流才有这么高的速度的
|
在配置sunshine网络的面板上,你看到的所有的tcp和udp的端口都需要进行转发,因为sunshine是通过不同的通道来融合串流才有这么高的速度的
|
||||||
有的通道是鼠标键盘,有的通道是图像,同时,你可以通过控制数据量和清晰度来控制正律和流畅度,目前测试来看,它跟你外接的显示器的分辨率大小保持一致是串流效果还不错的选择。
|
有的通道是鼠标键盘,有的通道是图像,同时,你可以通过控制数据量和清晰度来控制正律和流畅度,目前测试来看,它跟你外接的显示器的分辨率大小保持一致是串流效果还不错的选择。
|
||||||
我目前是通过frp[[frp内网穿透]]将其所有用到的端口都进行内网穿透来实现的,其实其穿过了 本地1->路由器->公网服务器->本地2,延迟很高也正常,很多情况下还不如todesk
|
我目前是通过frp[[frp内网穿透]]将其所有用到的端口都进行内网穿透来实现的,其实其穿过了 本地1->路由器->公网服务器->本地2,延迟很高也正常,很多情况下还不如todesk
|
||||||
但是在哦局域网内部的表现利还不错,同局域网下可以实现用mac串流win来打黑猴,基本感觉不到什么延迟,它也能同步转发声音。
|
但是在哦局域网内部的表现利还不错,同局域网下可以实现用mac串流win来打黑猴,基本感觉不到什么延迟,它也能同步转发声音,优点是todesk(节点满了)无法使用时,任然有第二条数据通路
|
||||||
|
|
||||||
|
还可以试试皎月连p2p打洞
|
||||||
|
|||||||
@@ -99,3 +99,40 @@ buff保存需要发送的命令字节(用户码+命令码)
|
|||||||
在循环里面调用学习模式,把数据存储进来,发送模式把数据发送到另外一个模块上
|
在循环里面调用学习模式,把数据存储进来,发送模式把数据发送到另外一个模块上
|
||||||
|
|
||||||
学习模式发送到字节为:0xa1 0x
|
学习模式发送到字节为:0xa1 0x
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
项目要求:
|
||||||
|
在文件夹mini_desktop中新建项目,可以把原来test里面的device.c/.h和依赖复制过来,成为独立的项目
|
||||||
|
能够设计一个桌面,桌面上有两个功能
|
||||||
|
1.可以滑动的电子相册,显示图片,滑动切换图片,存储多张照片(字符串数组存储路径设置
|
||||||
|
pathname:)
|
||||||
|
图片位置在/Users/chenyouyuan/cyy_ws/mac_share/mini_desktop/images
|
||||||
|
图标和桌面背景的路径在/Users/chenyouyuan/cyy_ws/mac_share/mini_desktop/icon
|
||||||
|
|
||||||
|
2.红外功能:
|
||||||
|
可以参考/Users/chenyouyuan/cyy_ws/mac_share/gec6818_docker_test/ir_control
|
||||||
|
一个是发射功能,一个是接收功能,一个是学习功能
|
||||||
|
按下发射功能时,进入到发射页面,通过按下对应的按钮(多个发送功能按钮,可以发射不同的指令,默认四个功能:上下左右四个按键),可以发射固定的红外指令
|
||||||
|
学习功能时,跳转到学习页面,可以选择学习发送还是接收,并且选择之后可以选择对应的四个功能,按下开始屏幕上学习的按钮可以跟具别人发送过来的指令进行解析学习并存储,之后的发送都参考刚刚学习到的功能,可以做一个列表对应查找,已经学习到的功能可以标注一个绿色的点,并且可以在显示出学习到的命令内容(三字节)
|
||||||
|
接收功能,除了在学习到时候默认开启接收,并且点击接收功能之后,进入到接收页面,右边是屏幕打印出来接收到的调试数据,同样的左侧显示四个接收到指令,点那个收到对应的指令后闪烁(绿色)一下(与发送的不一定相同,建议分开存储,解析功能一和二接收到后进行左右翻页,功能三和四是控制板子上的led灯开关/每次收到命令蜂鸣器在500ms内滴滴两次
|
||||||
|
|
||||||
|
按钮设计:
|
||||||
|
get _bottom()当到达某一个范围时候触发,判断触摸的坐标
|
||||||
|
注意屏幕坐标范围和lcd显示的范围,可以加一个按钮初始化,给出按钮中心坐标和范围即可初始化按钮,默认的按钮都是方形的白色为底色,黑色为文字
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
分步测试(注意以上功能应当均可以在/Users/chenyouyuan/cyy_ws/mac_share/gec6818_docker_test中找到,除了按钮的功能没有实现),但是要求在mini_desktop中新建独立的测试文件夹test:
|
||||||
|
测试图片显示功能(轮播形式)
|
||||||
|
测试左右滑动功能和触摸屏按钮的功能
|
||||||
|
结合图片测试桌面和点击图标跳转,相册滑动功能
|
||||||
|
测试点击桌面红外图标进入红外的各种ui显示功能
|
||||||
|
测试红外功能
|
||||||
|
综合联调形成桌面+相册+红外功能
|
||||||
|
|
||||||
|
黄炫齐:制作相册app可以滑动的电子相册,显示图片,滑动切换图片,存储多张照片(字符串数组存储路径
|
||||||
|
|
||||||
|
肖宇轩:按钮设计:
|
||||||
|
get _bottom()当到达某一个范围时候触发,判断触摸的坐标
|
||||||
|
注意屏幕坐标范围和lcd显示的范围,可以加一个按钮初始化,给出按钮中心坐标和范围即可初始化按钮,默认的按钮都是方形的白色为底色,黑色为文字
|
||||||
170
零碎的知识/mac安装ubuntu.md
Normal file
170
零碎的知识/mac安装ubuntu.md
Normal file
@@ -0,0 +1,170 @@
|
|||||||
|
好的,我们来把整个过程中的问题点和最终解决方案做一个清晰的总结,方便你日后参考。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📋 完整问题回顾与解决总结
|
||||||
|
|
||||||
|
### 一、环境背景
|
||||||
|
- **宿主机**:M4 芯片 Mac(ARM64 架构)
|
||||||
|
- **虚拟机软件**:UTM
|
||||||
|
- **虚拟机系统**:Ubuntu 22.04.5 LTS(ARM64 架构)
|
||||||
|
- **目标**:配置宿主机与 Ubuntu 虚拟机的共享文件夹
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 二、问题与解决过程全记录
|
||||||
|
|
||||||
|
#### 阶段1:获取 ARM64 镜像
|
||||||
|
**问题**:在清华镜像站 `ubuntu-releases/22.04.5/` 只看到 `amd64` 镜像,找不到 `arm64`。
|
||||||
|
|
||||||
|
**原因**:`amd64` 和 `arm64` 镜像分开放置:
|
||||||
|
- `amd64` → `ubuntu-releases/`
|
||||||
|
- `arm64` → `ubuntu-ports/` 或 `ubuntu-cdimage/`
|
||||||
|
|
||||||
|
**解决方案**:
|
||||||
|
- **下载安装镜像**:前往 `https://mirrors.tuna.tsinghua.edu.cn/ubuntu-cdimage/releases/22.04.5/release/`,选择 `ubuntu-22.04.5-live-server-arm64.iso`(标准版,支持 ≤64GB 内存)。
|
||||||
|
- **配置 APT 软件源**:使用 `http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/` 作为 `jammy` 的软件源地址。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
#### 阶段2:尝试 VirtIO-FS 共享(失败)
|
||||||
|
**问题**:执行 `sudo mount -t virtiofs share ~/shared` 报错:
|
||||||
|
```
|
||||||
|
mount: /home/cyy/shared: wrong fs type, bad option, bad superblock on share...
|
||||||
|
```
|
||||||
|
|
||||||
|
**排查过程**:
|
||||||
|
1. 尝试安装 `virtiofsd`:`sudo apt install virtiofsd` 提示 `E: Unable to locate package virtiofsd`。
|
||||||
|
2. 启用 `universe` 仓库后仍找不到该包。
|
||||||
|
|
||||||
|
**结论**:`virtiofsd` 在 Ubuntu 22.04 ARM64 架构的软件源中**不存在**,`virtiofs` 方案在 ARM64 上不可用。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
#### 阶段3:改用 SPICE WebDAV 共享(成功)
|
||||||
|
**最终方案**:使用 UTM 推荐的 **SPICE WebDAV** 方式。
|
||||||
|
|
||||||
|
**步骤**:
|
||||||
|
|
||||||
|
1. **在 Ubuntu 中安装 WebDAV 相关软件包**:
|
||||||
|
```bash
|
||||||
|
sudo apt update
|
||||||
|
sudo apt install spice-vdagent spice-webdavd davfs2
|
||||||
|
```
|
||||||
|
|
||||||
|
2. **在 UTM 中启用 WebDAV**(虚拟机需关机状态):
|
||||||
|
- 编辑虚拟机 → “共享”选项卡
|
||||||
|
- 确保 “SPICE WebDAV” 已启用
|
||||||
|
- 添加要共享的 macOS 文件夹
|
||||||
|
|
||||||
|
3. **在 Ubuntu 中挂载**:
|
||||||
|
```bash
|
||||||
|
# 创建挂载点
|
||||||
|
mkdir -p ~/shared
|
||||||
|
# 挂载(关键:使用 uid/gid 指定用户权限,并跳过认证)
|
||||||
|
sudo mount -t davfs http://127.0.0.1:9843 ~/shared -o uid=1000,gid=1000
|
||||||
|
```
|
||||||
|
**⚠️ 注意**:提示 `Username:` 和 `Password:` 时,**直接按回车跳过**,不要输入任何内容。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
#### 阶段4:解决权限问题(Permission denied)
|
||||||
|
|
||||||
|
**问题表现**:
|
||||||
|
- 挂载后只能以 `root` 写入,普通用户 `cyy` 无法创建文件。
|
||||||
|
- 执行 `touch ~/shared/test.txt` 报 `Permission denied`。
|
||||||
|
|
||||||
|
**原因**:
|
||||||
|
- 挂载时未指定 `uid`/`gid`,默认以 `root` 身份挂载。
|
||||||
|
- 用户输入了认证信息(`cyy`/密码),导致挂载状态异常。
|
||||||
|
|
||||||
|
**解决方案**:
|
||||||
|
|
||||||
|
1. **卸载时确保不在挂载目录内**:
|
||||||
|
```bash
|
||||||
|
cd ~
|
||||||
|
sudo umount ~/shared
|
||||||
|
```
|
||||||
|
如果提示 `target is busy`,使用惰性卸载:
|
||||||
|
```bash
|
||||||
|
sudo umount -l ~/shared
|
||||||
|
```
|
||||||
|
|
||||||
|
2. **重新挂载并指定用户权限**:
|
||||||
|
```bash
|
||||||
|
sudo mount -t davfs http://127.0.0.1:9843 ~/shared -o uid=1000,gid=1000
|
||||||
|
```
|
||||||
|
**认证环节必须直接回车跳过**。
|
||||||
|
|
||||||
|
3. **验证**:
|
||||||
|
```bash
|
||||||
|
touch ~/shared/test.txt
|
||||||
|
ls -l ~/shared
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
#### 阶段5:配置文件语法错误排查
|
||||||
|
|
||||||
|
**问题**:修改 `/etc/davfs2/davfs2.conf` 后挂载报错:
|
||||||
|
```
|
||||||
|
/sbin/mount.davfs: /etc/davfs2/davfs2.conf:78: unknown option
|
||||||
|
```
|
||||||
|
|
||||||
|
**原因**:`davfs2` 的全局配置文件不支持 `uid`/`gid` 选项(某些版本限制)。
|
||||||
|
|
||||||
|
**解决方案**:
|
||||||
|
- **方式一**(推荐):注释掉配置文件中添加的 `uid`/`gid` 行,改用**命令行参数**指定:
|
||||||
|
```bash
|
||||||
|
sudo sed -i '78,79s/^/#/' /etc/davfs2/davfs2.conf
|
||||||
|
```
|
||||||
|
- **方式二**:将 `uid`/`gid` 写入 `/etc/fstab`(见下文永久挂载方案)。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 三、最终稳定方案总结
|
||||||
|
|
||||||
|
#### ✅ 每次手动挂载(已验证)
|
||||||
|
```bash
|
||||||
|
cd ~ # 先退出挂载目录
|
||||||
|
sudo umount ~/shared # 如果已挂载,先卸载
|
||||||
|
sudo mount -t davfs http://127.0.0.1:9843 ~/shared -o uid=1000,gid=1000
|
||||||
|
# 遇到 Username/Password 提示时,直接按 Enter 跳过
|
||||||
|
```
|
||||||
|
|
||||||
|
#### ✅ 永久挂载(推荐)
|
||||||
|
编辑 `/etc/fstab`,添加一行:
|
||||||
|
```
|
||||||
|
https://127.0.0.1:9843 /home/cyy/shared davfs rw,noauto,user,uid=1000,gid=1000 0 0
|
||||||
|
```
|
||||||
|
之后每次挂载只需:
|
||||||
|
```bash
|
||||||
|
mount ~/shared
|
||||||
|
```
|
||||||
|
无需 `sudo`,无认证提示,权限自动生效。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 四、关键经验与避坑指南
|
||||||
|
|
||||||
|
| 问题 | 原因 | 正确做法 |
|
||||||
|
|------|------|----------|
|
||||||
|
| 找不到 `arm64` 镜像 | 镜像分开放置 | 去 `ubuntu-cdimage` 或 `ubuntu-ports` 找 |
|
||||||
|
| `virtiofsd` 无法安装 | ARM64 软件源无此包 | 放弃 `virtiofs`,改用 SPICE WebDAV |
|
||||||
|
| 挂载后无法写入 | 未指定 `uid`/`gid` | 挂载时用 `-o uid=1000,gid=1000` |
|
||||||
|
| 认证弹窗干扰 | 输入了用户名/密码 | **直接回车跳过**(本地服务无需认证) |
|
||||||
|
| 卸载提示 `busy` | 终端在挂载目录内 | 先 `cd ~`,再 `umount` |
|
||||||
|
| 配置文件报错 | `davfs2.conf` 不支持 `uid`/`gid` | 注释掉,改用命令行或 `/etc/fstab` |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 五、最终环境状态
|
||||||
|
|
||||||
|
- ✅ UTM 虚拟机运行 Ubuntu 22.04.5 ARM64
|
||||||
|
- ✅ SPICE WebDAV 共享文件夹正常工作
|
||||||
|
- ✅ 普通用户 `cyy` 可读写共享目录
|
||||||
|
- ✅ 可选用 `fstab` 自动挂载方案
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
如果你后续需要配置 YOLOv8 环境或其他开发工具,这份总结可以作为你的基础环境配置文档。有问题随时再问! 🚀
|
||||||
Reference in New Issue
Block a user