首页
关于
文章打赏记录
Search
1
项目一:Revit电缆自动布置
50 阅读
2
如何使用 LoRA 微调 DeepSeek R1
11 阅读
3
revit二次开发入门
9 阅读
4
Dynamo 连缀属性
4 阅读
5
第十四章结课考试
4 阅读
linux
AI
Dynamo
Python
C#编程技术基础
C#实战项目
随笔
登录
Search
标签搜索
CSharp
基础知识
Dynamo
数据应用
AI
BIM管理
TomHanck4
累计撰写
35
篇文章
累计收到
6
条评论
首页
栏目
linux
AI
Dynamo
Python
C#编程技术基础
C#实战项目
随笔
页面
关于
文章打赏记录
搜索到
35
篇与
的结果
2026-02-26
如何在 Linux 中设置 SSH 免密码登录
第一步:在A中生成密钥在A进入~/.ssh文件夹,执行以下命令:ssh-keygen -t rsa一路回车后,在~/.ssh下会生成 id_rsa,和 id_rsa.pub,其中id_rsa是密钥,id_rsa.pub是公钥。第二步:把在 A 机生成的 id_rsa.pub 拷贝到 B 机上。怎么跨主机复制文件呢,下面的命令可以做到:(假设放在 B 的 tmp 目录中)scp id_rsa.pub root@B:/tmp //scp -r是拷贝文件夹 # 举个例子:将服务器的/www/api/ 复制到本地的~/www(在本地执行) scp -r root@101.200.52.143:/www/api/ ~/www 第三步:将刚才拷贝的 id_rsa.pub 公钥文件拷贝到 B 的 authorized_keys 目录中(没有就创建,注意权限不能是777,可以设置成700或者400):cd ~/.ssh cat /tmp/id_rsa.pub>>authorized_keys
2026年02月26日
0 阅读
0 评论
0 点赞
2026-02-24
vLLM双卡配置说明
双卡配置说明(3080 Ti 20G + 1070 8G)重要结论vLLM 不支持 GTX 1070:需要 Compute Capability 7.0+,1070 为 6.1,无法用 vLLM 跑推理或放 KV cache。推荐用法:仅用 3080 Ti 跑 vLLM,通过 CUDA_VISIBLE_DEVICES=0 指定(假设 3080 Ti 为 0 号卡)。1070:可留给 Ollama / 其他支持老显卡的推理、或桌面/显示用;当前方案下不参与 vLLM。指定使用 3080 Ti先确认哪张是 3080 Ti(通常 20G 的那张):nvidia-smi --query-gpu=index,name,memory.total --format=csv假设 3080 Ti 是 0,则所有 vLLM 命令前加:export CUDA_VISIBLE_DEVICES=0 # 然后正常启动 vllm serve ...或在 Python 里(在 import vllm 之前):import os os.environ["CUDA_VISIBLE_DEVICES"] = "0"16G 内存注意vLLM 主要吃 显存,16G 系统内存一般够用。避免同时开太多占内存的应用(浏览器、多个大模型服务等),否则易 OOM 或卡顿。推荐本地 Agent 模型(20G 显存)模型显存约说明Qwen2.5-7B-Instruct~16GB FP16通用、工具调用/agent 支持好Qwen2.5-14B-Instruct~28GB FP16 → ~18GB 量化能力更强,需 AWQ/GPTQ 等 4bitDeepSeek-R1-7B~16GB推理/思考链、agent 向Qwen2.5-1.5B/3B-Instruct很低轻量 agent/路由建议:主 agent 用 Qwen2.5-7B-Instruct 或 DeepSeek-R1-7B,20G 可轻松跑;若上 14B,需量化(如 TheBloke/Qwen2.5-14B-Instruct-AWQ)。再「挂一个 DeepSeek」若指再跑一个 DeepSeek(如 R1/CoT 等):同卡 3080 Ti:两个模型不能同时加载进 20G,可起两个 vLLM 服务不同端口、按需启停,或一个 vLLM + 一个用 API 调远程。1070:不能用 vLLM;可用 Ollama 在 1070 上跑小模型(如 qwen2.5:3b),与 3080 Ti 上的 vLLM 分工。一键只让 vLLM 用 3080 Ti 的示例# 仅用 0 号卡(请按 nvidia-smi 确认 3080 Ti 的 index) export CUDA_VISIBLE_DEVICES=0 source /home/fsy/Desktop/VLLM/.venv/bin/activate vllm serve Qwen/Qwen2.5-7B-Instruct --trust-remote-code --port 8000#!/usr/bin/env python3 """vLLM 本地离线推理示例。首次运行会从 HuggingFace 拉取模型。""" # 仅用 3080 Ti 时,在 import vllm 前设置(或在终端 export CUDA_VISIBLE_DEVICES=0) # import os; os.environ["CUDA_VISIBLE_DEVICES"] = "0" from vllm import LLM from vllm.sampling_params import SamplingParams # Agent 推荐(20G):Qwen/Qwen2.5-7B-Instruct、deepseek-ai/DeepSeek-R1-7B # 14B 需量化:如 TheBloke/Qwen2.5-14B-Instruct-AWQ MODEL = "Qwen/Qwen2.5-7B-Instruct" def main(): # 初始化引擎(首次会加载模型到 GPU) llm = LLM(model=MODEL, trust_remote_code=True) sampling_params = SamplingParams(temperature=0.7, max_tokens=256) prompts = ["你好,请用一句话介绍你自己。", "1+1=?"] outputs = llm.generate(prompts, sampling_params) for out in outputs: print("输入:", out.prompt) print("输出:", out.outputs[0].text) print("-" * 40) if __name__ == "__main__": main()#!/bin/bash # 仅用 3080 Ti(0 号卡)启动 vLLM,供 agent 使用 # 先运行: nvidia-smi 确认 3080 Ti 是 0 还是 1,再改下面 CUDA_VISIBLE_DEVICES export CUDA_VISIBLE_DEVICES=0 cd /home/fsy/Desktop/VLLM source .venv/bin/activate # 主 agent 模型:Qwen2.5-7B(可换成 DeepSeek-R1-7B 等) MODEL="${VLLM_MODEL:-Qwen/Qwen2.5-7B-Instruct}" PORT="${VLLM_PORT:-8000}" echo "Using GPU 0 only (3080 Ti). Model: $MODEL, port: $PORT" exec vllm serve "$MODEL" --trust-remote-code --port "$PORT" "$@"# 建议环境变量(GLM-4.7-Flash MoE 相关) export VLLM_USE_DEEP_GEMM=0 export VLLM_USE_FLASHINFER_MOE_FP16=1 export VLLM_USE_FLASHINFER_SAMPLER=0 export OMP_NUM_THREADS=4‵‵‵bash从 ModelScope 或 Hugging Face 下载到本地后,指向该路径vllm serve /path/to/cyankiwi/GLM-4.7-Flash-AWQ-4bit \ --max-model-len 65536 \ --gpu-memory-utilization 0.9 \ --tool-call-parser glm47 \ --reasoning-parser glm45 \ --trust-remote-code \ --host 0.0.0.0 \ --port 8000
2026年02月24日
1 阅读
0 评论
0 点赞
2026-02-24
GLM-4.7 部署 + llama.cpp 双卡
GLM-4.7 部署 + llama.cpp 双卡(3080 Ti 推理 / 1070 cache)一、GLM-4.7 有没有能部署的版本?有。GLM-4.7-Flash 已开源,适合本地部署:架构:30B MoE,约 3B 活跃参数,推理显存约等于 3B 级显存:4-bit 量化约 16–18GB,3080 Ti 20G 足够能力:200K 上下文、工具调用、思考链,适合 agent获取 GGUF(给 llama.cpp 用):lmstudio-community/GLM-4.7-Flash-GGUF:Q4_K_M / Q6_K / Q8_0bartowski/zai-org_GLM-4.7-Flash-GGUF:更多量化(Q2_K~Q8_0、IQ 系列等)推荐 20G 显存用 Q4_K_M 或 Q5_K_M。二、用 llama.cpp 实现「3080 Ti 推理 + 1070 做 cache」llama.cpp 支持多卡时:-ts / --tensor-split:按比例把模型层分到多张卡(如 -ts 1,0 = 全部在 GPU0)--main-gpu / -mg:指定哪张卡放 KV cache 和小张量(中间结果)因此可以:模型权重全部放在 3080 Ti(推理算力在这张卡)KV cache 和小张量放在 1070(--main-gpu 指向 1070)前提:3080 Ti 建议为 GPU 0,1070 为 GPU 1(用 nvidia-smi 看顺序,必要时在 BIOS/系统里调)。下面按 0=3080Ti、1=1070 写。1. llama.cpp 编译(CUDA)克隆与基础编译:git clone https://github.com/ggml-org/llama.cpp cd llama.cpp mkdir build && cd build cmake .. -DGGML_CUDA=ON cmake --build . --config Release -j可执行文件在 build/bin/,例如 llama-cli、server。若编译时出现 nvcc: Terminated / Compilation terminated,多为内存不足,改用少并行数:cmake --build . --config Release -j2 # 或 -j1若 CMake 报 CUDA Toolkit not found / Could not find nvcc,按下面处理。1.1 确认本机是否有 nvccwhich nvcc # 或 ls /usr/local/cuda*/bin/nvcc 2>/dev/null || ls /usr/bin/nvcc 2>/dev/null有输出则记下该路径的上一级目录(如 /usr/local/cuda 或 /usr/local/cuda-12.6),用作下面的 CUDAToolkit_ROOT。1.2 有 nvcc:指定 CUDAToolkit_ROOT 再配置cd ~/Desktop/llama.cpp/build rm -rf * # 把 /usr/local/cuda 换成你本机 CUDA 实际路径 cmake .. -DGGML_CUDA=ON -DCUDAToolkit_ROOT=/usr/local/cuda cmake --build . --config Release -j2若 CUDA 在其它路径,例如 /usr/local/cuda-12.6:cmake .. -DGGML_CUDA=ON -DCUDAToolkit_ROOT=/usr/local/cuda-12.61.3 没有 nvcc:安装 CUDA Toolkit# 先看驱动支持的 CUDA 版本 nvidia-smi # 右上角 "CUDA Version: 12.x" 表示驱动支持到该版本 # Ubuntu 安装 CUDA 12(按你系统选对应 repo) wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb sudo dpkg -i cuda-keyring_1.1-1_all.deb sudo apt-get update sudo apt-get -y install cuda-toolkit-12-6装好后可设置环境变量(可写入 ~/.bashrc):export PATH=/usr/local/cuda/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH再回到 llama.cpp/build 执行:cd ~/Desktop/llama.cpp/build rm -rf * cmake .. -DGGML_CUDA=ON -DCUDAToolkit_ROOT=/usr/local/cuda cmake --build . --config Release -j21.4 使用 conda 里的 CUDA若 nvcc 来自 conda 环境:which nvcc # 若类似 /home/xxx/miniconda3/bin/nvcc,则 CUDAToolkit_ROOT 设为上一级 cmake .. -DGGML_CUDA=ON -DCUDAToolkit_ROOT=/home/xxx/miniconda32. 双卡启动(3080 Ti 推理,1070 做 cache)适用:GPU 0 = 20G 主卡(推理)、GPU 1 = 1070(8G,做 cache)。用 nvidia-smi 确认顺序。内容放在哪张卡参数模型权重GPU 0(3080 Ti)-ts 1,0(1 份在 0,0 份在 1)KV cache / 小张量GPU 1(1070)--main-gpu 1命令行示例(按本机路径改 -m、-c):# 交互 ./llama-cli -m /path/to/GLM-4.7-Flash-xxx-Q4_K_M.gguf \ -ts 1,0 \ --main-gpu 1 \ -c 8192 \ -p "你好"Server 模式(OpenAI 兼容 API):./server -m /path/to/GLM-4.7-Flash-xxx-Q4_K_M.gguf \ -ts 1,0 \ --main-gpu 1 \ -c 8192 \ --host 0.0.0.0 \ --port 8080-ts 1,0:模型全在 GPU 0,GPU 1 不占权重--main-gpu 1:KV cache 和临时缓冲在 GPU 1(1070)-c 8192:上下文长度,显存够可改为 32768 等结果:3080 Ti 负责算力,1070 负责 cache,适合 20G+8G 双卡。3. 若 1070 是 0 号、3080 Ti 是 1 号把「推理」放在 3080 Ti 上更合理,则:用环境变量把「逻辑 GPU 0」映射到物理 3080 Ti,例如先只暴露 3080 Ti:CUDA_VISIBLE_DEVICES=1 ./server -m model.gguf ...这样只用到 3080 Ti,1070 不参与。若坚持双卡且 1070=0、3080Ti=1,则:模型放 3080 Ti:-ts 0,1(0 份在 0,1 份在 1)cache 放 1070:--main-gpu 04. 1070 与 llama.cppllama.cpp 对老显卡(如 1070,Compute 6.1)的支持比 vLLM 宽松,一般可以跑;若遇到不兼容再考虑只用 3080 Ti(CUDA_VISIBLE_DEVICES=0 或 1 单卡)。三、GLM-4.7-Flash 快速用上(单卡 3080 Ti)若先不折腾双卡,只验证 GLM-4.7 + 3080 Ti:下载 GGUF(任选其一)lmstudio-community/GLM-4.7-Flash-GGUFbartowski/zai-org_GLM-4.7-Flash-GGUF单卡运行(仅 3080 Ti,假设为 0 号卡)CUDA_VISIBLE_DEVICES=0 ./server -m GLM-4.7-Flash-xxx-Q4_K_M.gguf -c 8192 --port 8080用 vLLM 跑 GLM-4.7-Flash 若你更习惯 vLLM,也可用 vLLM 加载 HF 格式的 zai-org/GLM-4.7-Flash(需 20G 左右显存,3080 Ti 单卡可行),但此时无法把 1070 当 cache 用(vLLM 不支持 1070)。四、小结需求方案部署 GLM-4.7用 GLM-4.7-Flash 的 GGUF(Q4_K_M 约 16–18GB)3080 Ti 推理 + 1070 做 cache用 llama.cpp:-ts 1,0 + --main-gpu 1(0=3080Ti,1=1070)仅 3080 Ti、最简单vLLM 或 llama.cpp 单卡均可;GGUF 用 llama.cpp,HF 用 vLLM把上面命令里的 -m、-c、端口和 GPU 顺序按你本机改一下即可直接用。
2026年02月24日
1 阅读
0 评论
0 点赞
2026-02-24
通过 frp + SSH 远程操作本系统
通过 frp + SSH 远程操作本系统1. 前置本机已安装 frp 客户端 frpc,且服务端 vc.fangsiyuan.top:10070 已部署 frps 并允许你的 token。本机 SSH 服务 已安装并监听 22 端口(sudo systemctl status ssh)。2. 配置文件客户端配置:frp/frpc.toml(放在 frp 客户端目录中)当前包含:ssh — TCP 代理,服务端端口 10022 → 本机 127.0.0.1:22若本机 SSH 不在本机 22,或 NAS 的 IP/端口不同,在 frpc.toml 里改对应 localIP/localPort。3. 启动 frp 客户端# 前台运行(调试用) frpc -c /usr/local/bin/frpc.toml建议用 systemd 常驻(见下节)。4. 远程 SSH 连接frpc 正常连上服务端后,在任意一台能访问 vc.fangsiyuan.top 的电脑上执行:ssh -p 10022 你的本机用户名@vc.fangsiyuan.top例如本机用户名为 fsy:ssh -p 10022 fsy@vc.fangsiyuan.top即通过 frp 的 10022 端口连到本机 22,实现远程操作本系统。5. systemd 常驻(可选)若 frpc 安装在 PATH 中,可建服务:sudo tee /etc/systemd/system/frpc.service << 'EOF' [Unit] Description=frp client After=network.target [Service] Type=simple ExecStart=/usr/local/bin/frpc -c /usr/local/bin/frpc.toml Restart=on-failure RestartSec=5 [Install] WantedBy=multi-user.target EOF sudo systemctl daemon-reload sudo systemctl enable --now frpc sudo systemctl status frpc若 frpc 不在 /usr/bin/frpc,把 ExecStart 里的路径改成 which frpc 的结果。6. 注意服务端需在 frps 中开放 10022(或你用的 remotePort),否则 SSH 隧道不通。token 和端口仅作示例,实际部署注意安全与权限。
2026年02月24日
2 阅读
0 评论
0 点赞
2026-02-23
Ubuntu 24.04(内核 6.17)上对 UGREEN WiFi6 AX300(AIC8800)驱动的适配与安装过程
AIC8800 WiFi 驱动:6.17 内核适配与安装总结记一次在Ubuntu 24.04(内核 6.17)上对 UGREEN WiFi6 AX300(AIC8800)驱动的适配与安装过程。资源下载绿联官方驱动下载(Linux) 绿联 Wi-Fi 6 无线网卡 AX300 系列驱动(Linux 系统) 适用型号:CM760-25262、CM761-35263、CM860-75511、CM957-75614 | 文件版本:V1.6一、背景与问题终端沙箱报错 在 Cursor 中出现 “Terminal sandbox could not start”,与 Linux 6.2+ 的 AppArmor 有关。可安装官方 AppArmor 包或使用 ~/.cursor/sandbox.json 中 "type": "insecure_none" 临时关闭沙箱。驱动编译失败 执行 sudo apt install curl 时触发了未配置完成的 aic8800fdrvpackage,其 post-install 脚本在编译内核模块时失败,原因包括:内核 6.17 中 del_timer / del_timer_sync 已改为 timer_delete / timer_delete_sync5.4+ 中 wakeup_source_create/add/remove/destroy 已移除,需用 wakeup_source_register / wakeup_source_unregistercfg80211 回调 set_wiphy_params、set_tx_power 增加 radio_idx 参数cfg80211_rx_spurious_frame、cfg80211_rx_unexpected_4addr_frame 增加 link_id 参数定时器回调中 from_timer 需改为 container_of 等适配部分 switch 需要显式 fallthrough 以消除 -Wimplicit-fallthrough 报错二、源码修改清单(6.17 内核适配)驱动源码路径:aic8800_linux_drvier/drivers/aic8800/aic8800_fdrv/(及同目录下相关文件)。文件修改内容aicwf_tcp_ack.c增加 #include <linux/timer.h>rwnx_compat.h增加 #include <linux/timer.h>;6.2+ 用宏将 del_timer/del_timer_sync 映射为 timer_delete/timer_delete_sync;6.2+ 为 from_timer 提供兼容宏(实际多数处已改为 container_of)rwnx_wakelock.c5.4+ 使用 wakeup_source_register(dev,name) 与 wakeup_source_unregister(ws);rwnx_wakeup_init 改为接收 struct rwnx_hw * 以传入 dev;rwnx_wakeup_deinit 在 5.4+ 仅调用 wakeup_source_unregisterrwnx_wakelock.hrwnx_wakeup_init 声明改为 (struct rwnx_hw *, const char *);增加 struct rwnx_hw 前向声明rwnx_main.c增加 #include <linux/timer.h>;set_wiphy_params 在 6.2+ 增加 int radio_idx;set_tx_power 在 6.2+ 增加 int radio_idx;定时器回调中用 container_of(t, struct rwnx_hw, p2p_alive_timer) 等替代 from_timer;多处 switch 增加 fallthrough;rwnx_rx.c增加 #include <linux/timer.h>;6.2+ 对 cfg80211_rx_spurious_frame / cfg80211_rx_unexpected_4addr_frame 增加第三参数 link_id(传 -1);defrag_timeout_cb、reord_timeout_handler 中用 container_of(t, struct defrag_ctrl_info, defrag_timer) 等替代 from_timerrwnx_tx.c一处 switch 增加 fallthrough;aicwf_sdio.c定时器回调中用 container_of(t, struct aic_sdio_dev, timer) 替代 from_timer三、编译驱动在驱动目录下执行(需已安装对应内核头文件,如 linux-headers-$(uname -r)):cd /path/to/UGREEN_WiFi6_AX300_Driver_Linux_.../aic8800_linux_drvier/drivers/aic8800 make -C /lib/modules/$(uname -r)/build M=$(pwd) modules成功后会生成:aic_load_fw/aic_load_fw.koaic8800_fdrv/aic8800_fdrv.ko四、安装脚本说明原 install_setup.sh 使用 su -c,在无交互终端时无法输入密码。因此新增两个脚本,均在 项目根目录下的 aic8800_linux_drvier 中执行。1. install_with_sudo.sh(安装固件与 udev)复制 fw/aic8800DC 到 /lib/firmware/复制 tools/aic.rules 到 /etc/udev/rules.d/执行 udevadm trigger 与 udevadm control --reload若存在 /dev/aicudisk 等虚拟光驱设备则执行 eject使用:cd /home/fsy/Downloads/UGREEN_WiFi6_AX300_Driver_Linux_CM760-25262_CM761-35263_CM860-75511_V1.6/aic8800_linux_drvier ./install_with_sudo.sh按提示输入 sudo 密码即可。2. load_modules.sh(加载内核模块)先检查 aic_load_fw、aic8800_fdrv 是否已加载(lsmod)未加载则执行 sudo insmod ... 加载对应 .ko若已加载(例如之前装过 aic8800fdrvpackage),会提示“已在运行,跳过”,避免 “File exists” 报错使用:cd /home/fsy/Downloads/UGREEN_WiFi6_AX300_Driver_Linux_CM760-25262_CM761-35263_CM860-75511_V1.6/aic8800_linux_drvier ./load_modules.sh五、推荐操作顺序应用上述源码修改并完成编译(第三节)。在 aic8800_linux_drvier 目录执行:./install_with_sudo.sh。再执行:./load_modules.sh。使用 ip a 或 nmcli device wifi 等确认无线网卡是否出现并可用。六、若通过 deb 包安装若系统之前或之后通过 aic8800fdrvpackage 的 deb 安装,需保证其使用的源码与本次修改一致,或在安装前先移除该包再按本文档从源码编译并安装:sudo dpkg --remove --force-remove-reinstreq aic8800fdrvpackage # 仅当该包导致问题时然后再按第三、四节编译并运行 install_with_sudo.sh 与 load_modules.sh。文档基于当前驱动版本与内核 6.17.0-14-generic 整理。
2026年02月23日
0 阅读
0 评论
0 点赞
1
2
...
7