首页
关于
壁纸
直播
留言
友链
统计
Search
1
《三国志英杰传》攻略
6,208 阅读
2
Emby客户端IOS破解
6,062 阅读
3
白嫖Emby
6,052 阅读
4
《吞食天地1》金手指代码
5,760 阅读
5
破解emby-server
4,315 阅读
moonjerx
game
age-of-empires
zx3
san-guo-zhi
尼尔:机械纪元
net
emby
learn-video
docker
torrent
photoshop
route
minio
git
ffmpeg
im
vue
gitlab
typecho
svn
alipay
nasm
srs
mail-server
tailscale
kkfileview
aria2
webdav
synology
redis
oray
chemical
mxsite
math
π
x-ui
digital-currency
server
nginx
baota
k8s
http
cloud
linux
shell
database
vpn
esxi
rancher
domain
k3s
ewomail
os
android
windows
ios
app-store
macos
develop
java
javascript
uniapp
nodejs
hbuildx
maven
android-studio
jetbrain
jenkins
css
mybatis
php
python
hardware
hard-disk
pc
RAM
software
pt
calibre
notion
office
language
literature
philosophy
travel
登录
Search
标签搜索
ubuntu
mysql
openwrt
zerotier
springboot
centos
openvpn
jdk
吞食天地2
synology
spring
idea
windows11
吞食天地1
transmission
google-play
Japanese
xcode
群晖
kiftd
MoonjerX
累计撰写
379
篇文章
累计收到
465
条评论
首页
栏目
moonjerx
game
age-of-empires
zx3
san-guo-zhi
尼尔:机械纪元
net
emby
learn-video
docker
torrent
photoshop
route
minio
git
ffmpeg
im
vue
gitlab
typecho
svn
alipay
nasm
srs
mail-server
tailscale
kkfileview
aria2
webdav
synology
redis
oray
chemical
mxsite
math
π
x-ui
digital-currency
server
nginx
baota
k8s
http
cloud
linux
shell
database
vpn
esxi
rancher
domain
k3s
ewomail
os
android
windows
ios
app-store
macos
develop
java
javascript
uniapp
nodejs
hbuildx
maven
android-studio
jetbrain
jenkins
css
mybatis
php
python
hardware
hard-disk
pc
RAM
software
pt
calibre
notion
office
language
literature
philosophy
travel
页面
关于
壁纸
直播
留言
友链
统计
搜索到
53
篇与
moonjerx
的结果
2025-07-14
uni.getSystemInfoSync 全量信息解析
📱 uni.getSystemInfoSync 全量信息解析(iPhone 12 + iOS 18.5 示例)在开发基于 UniApp 的移动应用时,获取设备信息对于 UI 适配、安全区域计算、调试优化 至关重要。本文将基于一份真实的系统信息(以 iPhone 12 为例),完整解析 uni.getSystemInfoSync() 返回的数据结构,并提供适配建议。注:所有敏感信息如设备ID、AppID 等均已脱敏或替换。📦 基础信息字段示例值含义brand / deviceBrandapple设备品牌model / deviceModeliPhone 12设备型号platformios系统平台system / osVersioniOS 18.5系统版本language / osLanguagezh-Hans-HK当前系统语言(简体中文-香港)deviceTypephone设备类型📐 屏幕 & 像素信息字段示例值含义pixelRatio / devicePixelRatio3物理像素 / 逻辑像素比screenWidth390 px屏幕宽度screenHeight844 px屏幕高度windowWidth390 px可视区域宽度windowHeight844 px可视区域高度statusBarHeight47 px状态栏高度(刘海高度)🔒 安全区域信息安全区域对于适配刘海屏和底部 Home Indicator 非常重要。"safeArea": { "top": 47, "bottom": 810, "left": 0, "right": 390, "width": 390, "height": 763 }, "safeAreaInsets": { "top": 47, "bottom": 34, "left": 0, "right": 0 }字段示例值含义safeAreaInsets.top47 px顶部安全区(通常是状态栏)safeAreaInsets.bottom34 px底部安全区(通常是 Home Indicator 区域)safeArea.height763 px内容区高度(去除安全边距)🧱 App & UniApp 信息字段示例值含义appNameMyApp应用名称(已脱敏)appId__UNI__xxxxxxx应用 ID(已脱敏)appVersion14.75用户可见版本appVersionCode1475内部版本号(用于版本比较)appWgtVersion4.3.54资源版本(wgt 包)uniPlatformapp当前平台uniCompileVersion4.64编译时使用的 HBuilderX 版本uniRuntimeVersion4.75App 运行时版本browserNamewkwebviewiOS 内核类型browserVersion18.5WebView 版本(与系统一致)uaMozilla/5.0...uni-app浏览器 UserAgent(已截断)🧪 实际使用建议✅ 状态栏高度使用:padding-top: var(--status-bar-height); // 适配刘海屏✅ Bottom 安全区适配:padding-bottom: env(safe-area-inset-bottom); // 适配 Home Indicator✅ JS 动态计算 padding:const system = uni.getSystemInfoSync(); const paddingTop = system.statusBarHeight + 44; // 状态栏 + 自定义导航栏 const paddingBottom = system.safeAreaInsets.bottom + 55; // Home Indicator + 底部 tab🎯 调试辅助(推荐实践)在开发过程中你可以引入一个 浮动调试按钮,点击后显示当前系统信息及安全区计算值,便于测试不同设备的实际效果。例如:minHeight: 100vhpaddingTop: calc(var(--status-bar-height) + 44px)paddingBottom: calc(env(safe-area-inset-bottom) + 55px)🧾 总结本文详细解析了 uni.getSystemInfoSync() 的所有关键字段及含义,尤其针对 iPhone 12 的刘海屏、安全区域、底部指示器做了说明。了解这些参数,可以帮助我们开发时更好地进行:UI 适配页面布局计算自定义导航栏和底部栏浮动调试工具实现
2025年07月14日
3 阅读
0 评论
0 点赞
2025-06-23
Linux 命令行连接 Wi-Fi(适用于 PVE、Debian、Ubuntu)
最简单、最快速的方式只需一行命令:nmcli device wifi connect "Long" password "xiyang" iface wlo1✅ 说明:Long 是 Wi-Fi 名称(SSID)xiyang 是密码wlo1 是你的无线网卡名称,可用 ip link 或 nmcli device 查看📶 查看当前无线接口和状态nmcli device status🔍 查看可用 Wi-Fi 热点nmcli device wifi list📂 管理连接配置列出已保存的连接:nmcli connection show设置开机自动连接(通常默认已启用):nmcli connection modify "Long" connection.autoconnect yes删除旧配置(如需重连):nmcli connection delete "Long"⚙️ 设置静态 IP(可选)nmcli connection modify "Long" ipv4.method manual \ ipv4.addresses 192.168.1.100/24 \ ipv4.gateway 192.168.1.1 \ ipv4.dns "8.8.8.8 1.1.1.1"🚀 开机自动连接(脚本方案)创建脚本 /usr/local/bin/wifi-connect.sh:#!/bin/bash nmcli device wifi connect "Long" password "xiyang" iface wlo1加执行权限:chmod +x /usr/local/bin/wifi-connect.sh添加 systemd 服务实现开机连接(略)。📝 结语适用于没有桌面环境的 Linux 系统,如 PVE、Debian、服务器等环境下轻松连接 Wi-Fi。只需 nmcli,不必使用图形界面!
2025年06月23日
7 阅读
0 评论
0 点赞
2025-06-13
释放 PCI 直通网卡 enp4s0 并恢复给宿主机使用
在 Proxmox VE 中,我们经常会将某块物理网卡 PCI 直通给虚拟机(例如 iKuai、OpenWRT 等软路由),但一旦直通后,该网卡会被系统挂载到 vfio-pci 驱动中,宿主机无法再直接使用这块网卡。本文介绍如何将已直通的网卡(如 enp4s0)解绑 VFIO 并绑定回原生驱动,从而让 PVE 宿主机再次识别并使用。1️⃣ 查看当前网卡绑定状态lspci -nnk | grep -A3 -i ethernet示例输出:04:00.0 Ethernet controller [0200]: Intel Corporation Ethernet Controller I226-V [8086:125c] (rev 04) Subsystem: Intel Corporation Ethernet Controller I226-V [8086:0000] Kernel driver in use: vfio-pci Kernel modules: igc说明该网卡目前仍然在 vfio-pci 直通状态。2️⃣ 解绑 VFIO 驱动执行以下命令将设备从 vfio 中解绑:echo 0000:04:00.0 > /sys/bus/pci/drivers/vfio-pci/unbind其中 0000:04:00.0 是该网卡的 PCI 地址,可从 lspci 命令中获取。3️⃣ 绑定回宿主机原生驱动(igc)该设备是 Intel I226-V 网卡,使用的是 igc 驱动。执行绑定:echo 0000:04:00.0 > /sys/bus/pci/drivers/igc/bind4️⃣ 验证绑定状态再次运行:lspci -nnk | grep -A3 04:00.0期望输出应为:Kernel driver in use: igc5️⃣ 查看设备是否重新出现ip link你应该能看到 enp4s0 已经回归并可用于网络配置。6️⃣ 重载网络配置ifreload -a或者单独启用 bridge:ifup vmbr1🧹 可选清理:取消开机自动直通如果你不再打算将该网卡用于 PCI 直通,建议清除模块绑定配置:编辑模块配置文件(如存在):nano /etc/modprobe.d/vfio.conf注释掉以下内容:options vfio-pci ids=8086:125c然后更新 initramfs:update-initramfs -u✅ 总结操作步骤命令 查看驱动绑定状态`lspci -nnkgrep -A3 -i ethernet`解绑 vfio 驱动echo 0000:04:00.0 > /sys/bus/pci/drivers/vfio-pci/unbind 绑定 igc 驱动echo 0000:04:00.0 > /sys/bus/pci/drivers/igc/bind 检查是否回归系统ip link 重载网络配置ifreload -a 或 ifup vmbr1 现在,enp4s0 已可正常用于 Proxmox 的网络桥接(如 vmbr1),可以继续用于虚拟机内网或管理用途。
2025年06月13日
10 阅读
0 评论
0 点赞
2025-03-26
PVE开启IOMMU与硬件直通
硬件直通准备1. 确认主板支持主板BIOS/UEFI设置:启用 VT-d(Intel CPU) 或 AMD-V(AMD CPU)。禁用 CSM(仅限i440机型,需确保其他设置为UEFI模式)。ACS Enable(若存在,需启用,自动模式无效)。启用 4G解码(4G Decoding)。禁用 Resizable BAR/Smart Access Memory(AMD GPU直通时避免“代码43错误”)。启用 IOMMU(AMD主板需特别注意)。主显示器设置为CPU/iGPU(若CPU集成显卡)。预分配内存64M。启用IOMMU2. 配置内核参数编辑 /etc/default/grub 文件,修改 GRUB_CMDLINE_LINUX_DEFAULT 行:Intel CPU:GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt initcall_blacklist=sysfb_init pcie_acs_override=downstream,multifunction pci=nommconf"AMD CPU:GRUB_CMDLINE_LINUX_DEFAULT="quiet iommu=pt initcall_blacklist=sysfb_init pcie_acs_override=downstream,multifunction pci=nommconf"其他可选配置:# GVT-g模式(共享显卡) GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt i915.enable_gvt=1 video=efifb:off" # 独占模式(无PVE控制台输出) GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt video=efifb:off"3. 参数释义iommu=pt:启用IOMMU,PT模式优化未直通设备性能。initcall_blacklist=sysfb_init:解决PVE 7.2+的核显驱动冲突。i915.enable_gvt=1:启用Intel GVT-g虚拟显卡技术(需支持的CPU)。pcie_acs_override=downstream:拆分IOMMU组,避免直通导致物理机崩溃。pci=nommconf:禁用PCI配置空间的内存映射,提升稳定性。4. 更新GRUB并重启# 更新引导配置 proxmox-boot-tool refresh # 或 update-grub # 重启系统 reboot5. 验证IOMMU启用# 检查IOMMU状态 dmesg | grep -e DMAR -e IOMMU # 成功示例: # [ 0.000000] DMAR: IOMMU enabled # 验证IOMMU组 find /sys/kernel/iommu_groups/ -type l # 检查中断重映射 dmesg | grep remapping # 成功示例(Intel): # [ 0.175675] DMAR-IR: Enabled IRQ remapping in x2apic mode # 成功示例(AMD): # AMD-Vi: Interrupt remapping enabled显卡直通配置1. 屏蔽显卡驱动编辑 /etc/modprobe.d/pve-blacklist.conf:# NVIDIA blacklist nvidiafb blacklist nouveau blacklist nvidia # AMD blacklist amdgpu blacklist radeon # Intel blacklist snd_hda_codec_hdmi blacklist snd_hda_intel blacklist snd_hda_codec blacklist snd_hda_core blacklist i9152. 忽略显卡警告(NVIDIA专属)编辑 /etc/modprobe.d/kvm.conf:options kvm ignore_msrs=1 report_ignored_msrs=03. 配置VFIO获取设备ID:# 查找显卡及音频设备ID lspci -nn | grep VGA lspci -n -s <设备地址>配置vfio-pci:编辑 /etc/modprobe.d/vfio-pci.conf:options vfio-pci ids=1234:5678,1234:5678 disable_vga=1 # 替换为实际设备ID,多个ID用逗号分隔更新内核并重启:update-initramfs -u reboot4. 验证显卡接管lspci -nnk # 成功示例: # Kernel driver in use: vfio-pci添加显卡到虚拟机1. 创建虚拟机系统选项:机型:选择 q35。BIOS:选择 OVMF(UEFI)。CPU:选择 host 模式。内存:关闭 Ballooning设备。2. 直通显卡进入虚拟机管理界面,点击 硬件 → 添加 → PCI设备。选择目标显卡,勾选:启用所有功能。主GPU(可选,可能影响启动)。ROM-Bar 和 PCI-Express。Intel GVT-g虚拟化核显(Intel 5-10代CPU)1. 配置GRUBGRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt i915.enable_gvt=1 video=efifb:off"2. 加载内核模块编辑 /etc/modules:vfio vfio_iommu_type1 vfio_pci kvmgt3. 验证GVT-gls /sys/bus/pci/devices/0000:00:02.0/mdev_supported_types/ # 成功示例: # i915-GVTg_V5_1 i915-GVTg_V5_2 ...注意事项驱动冲突:确保所有显卡驱动被正确屏蔽。内核更新:每次内核升级后需重新运行 update-initramfs -u。日志排查:使用 dmesg | tail 或 journalctl 检查直通失败原因。额外笔记:一、开启iommu,打开编辑 nano /etc/default/grub GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on video=efifb:off" GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on" 二、加载vfio模块,打开编辑 nano /etc/modules 加上以下内容 vfio vfio_iommu_type1 vfio_pci vfio_virqfd 三、禁用驱动(不同PVE版本可能不同) nano /etc/modprobe.d/pve-blacklist.conf 加入以下内容: block AMD driver blacklist radeon blacklist amdgpu block NVIDIA driver blacklist nouveau blacklist nvidia block INTEL driver blacklist snd_hda_intel blacklist snd_hda_codec_hdmi blacklist i915 # Nvidia blacklist nvidiafb blacklist nouveau blacklist nvidia # AMD blacklist amdgpu blacklist radeon # Intel UHD blacklist snd_hda_codec_hdmi blacklist snd_hda_intel blacklist snd_hda_codec blacklist snd_hda_core blacklist i915 四、查询显卡的PCI ID lspci|grep 570 04:00.0 查看显卡的Device ID 显卡 root@pve:~# lspci -n -s 04:00.0 04:00.0 0300: 1002:67df (rev ef) 声卡 root@pve:~# lspci -n -s 04:00.1 04:00.1 0403: 1002:aaf0 五、编辑vfio nano /etc/modprobe.d/vfio.conf 将设备加入(两个ID就加两个) options vfio-pci 1002:67df options vfio-pci 1002:aaf0 或者: options vfio-pci ids=1002:67df,1002:aaf0 六、更新grub并重启 update-grub && reboot dmesg | grep -e DMAR -e IOMMU 从命令行运行 如果没有输出,则说明有问题。 root@pve:~# dmesg | grep -e DMAR -e IOMMU [ 0.141371] DMAR: IOMMU enabled root@pve:~# dmesg | grep iommu [ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-6.8.12-4-pve root=/dev/mapper/pve-root ro quiet intel_iommu=on video=efifb:off [ 0.141295] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-6.8.12-4-pve root=/dev/mapper/pve-root ro quiet intel_iommu=on video=efifb:off [ 0.621854] iommu: Default domain type: Translated [ 0.621854] iommu: DMA domain TLB invalidation policy: lazy mode 更新内核,重启 update-initramfs -u reboot
2025年03月26日
370 阅读
0 评论
0 点赞
2025-03-23
Proxmox VE 保姆级安装教程
一、硬件要求CPU:支持虚拟化技术(Intel VT-x/AMD-V)内存:至少 2GB(建议 4GB+)存储:至少 20GB 硬盘空间网络:需连接网络(安装依赖包)二、下载 Proxmox VE访问官网:https://www.proxmox.com选择 Download → Proxmox VE → 下载最新版 ISO 文件(如 proxmox-ve_7.4-1.iso)验证文件完整性(可选):sha256sum proxmox-ve_7.4-1.iso对比官网提供的 SHA256 值。三、制作启动U盘工具推荐:Rufus(Windows)或 Etcher(跨平台)以 Rufus 为例:插入空U盘(建议 4GB+)打开 Rufus → 选择下载的 ISO 文件格式选 FAT32,分区方案选 MBR 或 GPT(根据目标系统)点击开始 → 等待写入完成(此处插入图片:Rufus 配置界面截图)四、BIOS/UEFI 设置重启电脑 → 进入 BIOS/UEFI(开机时按 Del/F2/F12)禁用 Secure Boot(首次安装建议关闭)启用 Virtualization Technology(Intel VT-x/AMD-V)设置启动顺序:将U盘设为第一启动项五、开始安装1. 引导界面插入启动U盘 → 重启 → 选择 Install Proxmox VE(此处插入图片:Proxmox 引导界面截图)2. 安装配置Language:选择语言(中文需后续设置)Keyboard Layout:选择键盘布局Network:选择网卡 → 自动获取 IP 或手动配置Hostname:输入主机名(如 proxmox)Storage:选择存储类型(默认 ZFS 或 LVM)Partitioning:选择 Guided Storage → 全盘安装或手动分区3. 设置 root 密码输入并确认密码(后续登录需用此密码)4. 完成安装等待安装完成 → 重启 → 拔掉U盘六、首次登录1. Web 界面登录访问 https://<你的IP>:8006(浏览器输入)用户名:root密码:安装时设置的密码(此处插入图片:Proxmox Web 界面登录截图)2. SSH 登录(可选)ssh root@<你的IP>七、后续配置(必看)更新系统:apt update && apt upgrade -y配置防火墙:ufw allow 8006/tcp # Web 界面 ufw allow 22/tcp # SSH ufw enable创建存储库:Web 界面 → Datacenter → Storage → 添加 ZFS/LVM 存储添加虚拟机:Web 界面 → Create CT (LXC) 或 Create VM (KVM)八、常见问题无法进入 BIOS:重启时反复按 Del/F2/F12,不同主板按键不同。网络不通:检查网线 → 确保 DHCP 启用 → 手动配置 IP。存储配置失败:选择 LVM 替代 ZFS(新手建议)。提示:完整图文教程可参考官方文档或视频教程(搜索关键词:Proxmox 安装 7.4)。
2025年03月23日
141 阅读
0 评论
0 点赞
1
2
...
11
您的IP: