分类 疑难杂症 下的文章

j4125 软路由折腾日记

ESXi 篇

ESXi下载地址

https://customerconnect.vmware.com/en/evalcenter?p=free-esxi8

ESXi安装的时候提示“Shutting down firmware services...Relocating modules and starting up the kernel...”

在安装程序引导界面出现以后按Shift + O,加入参数

ignoreHeadless=TRUE

即可解决。

ESXi网卡直通以后,爱快无法启动,同时直通的网卡提示“已开启/需要重新引导”

解决办法是在ESXi的 主机 - 管理 - 高级设置 里,将

VMkernel.Boot.disableACSCheck

设置为True。

ESXi核显直通给群晖以后,重启后群晖无法启动,同时核显提示“已开启/需要重新引导”

原因是ESXi开机的时候会强制占用核显,导致直通失效,解决办法是在ESXi的 主机 - 管理 - 高级设置 里,将

VMkernel.Boot.vga

设置为False。

PVE 篇

PVE 如何将img导入磁盘

qm importdisk <虚拟机ID> <img文件路径> local-lvm

PVE 网口直通报错

nano /etc/default/grub

修改GRUB_CMDLINE_LINUX_DEFAULT为以下值

GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt pcie_port_pm=off"

更新grub并重启

update-grub
reboot

PVE 核显直通

nano /etc/default/grub

修改GRUB_CMDLINE_LINUX_DEFAULT增加以下参数

video=efifb:off

修改

nano /etc/modules

添加

vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

用以下命令查看PCI设备ID并记下来

lspci -nn

可以看到核显ID为8086:3185

00:02.0 VGA compatible controller [0300]: Intel Corporation GeminiLake [UHD Graphics 600] [8086:3185] (rev 06)

添加到vfio的配置中

nano /etc/modprobe.d/vfio.conf

添加

options vfio-pci ids=8086:3185

修改

nano /etc/modprobe.d/blacklist.conf

添加

blacklist snd_hda_intel
blacklist snd_hda_codec_hdmi
blacklist i915

更新引导

update-initramfs -u
update-grub

PVE 硬盘直通

查询硬盘列表

ls -l /dev/disk/by-id/

直通

qm set <虚拟机ID> -<sata|scsi|ide><序号> <硬盘设备路径>

解决python安装ta-lib报错的问题

问题

Failed to build ta-lib
ERROR: Could not build wheels for ta-lib, which is required to install pyproject.toml-based projects

原因

通过pip安装python的ta-lib包需要调用Visual Studio编译ta-lib库,若没有安装visual studio或者ta-lib库就会编译失败

解决办法

由于安装ta-lib库和visual studio太过麻烦,
https://www.lfd.uci.edu/~gohlke/pythonlibs/#ta-lib
提供了预编译的python包,
下载对应版本以后,使用pip安装即可,注意把TA_Lib‑0.4.24‑cpXXX‑cpXXX‑XXX.whl替换为实际的文件名

pip install TA_Lib‑0.4.24‑cpXXX‑cpXXX‑XXX.whl

解决精简版系统Arduino驱动安装问题

问题

一部分人反馈说他们无法正常安装Arduino的驱动,安装完Arduino驱动以后,设备管理器里Arduino设备出现感叹号,无法正常启用。设备状态中出现错误信息:

Windows 无法加载这个硬件的设备驱动程序。驱动程序可能已损坏或不见了。 (代码 39)

找不到对象名。

或者:

Windows 无法验证此设备所需的驱动程序的数字签名。某软件或硬件最近有所更改,可能安装了签名错误或损毁的文件,或者安装的文件可能是来路不明的恶意软件。 (代码 52)

解决

出现这个问题的主要原因是:Arduino的驱动程序依赖于Windows系统自带的USB串口驱动,精简版系统精简或者替换了USB串口驱动,导致Arduino的驱动无法加载这个依赖而工作不正常。为此我封装了一个Arduino的驱动程序,并且自带修复Windows自带串口驱动程序的功能,涵盖Windows XP、Windows Vista、Windows 7、Windows 8、Windows 8.1、Windows 10等系统,包括各个SP版本。
下载地址:https://pan.baidu.com/s/1gfaPp4n
使用方法:下载以后,直接运行压缩包中的程序即可,修复系统自带驱动以及安装Arduino驱动过程中,可能会有安全软件提示修改系统文件,请选择允许。

cnpm的坑导致部分模块工作不正常

问题

在使用cnpm install部署项目环境以后,发现browserify工作不正常,产生如下错误:

> browserify src/ui/index.js -o dist/index.js -t [babelify browserify minifyify]

Error: Cannot find module '../../../../_is-buffer@1.1.5@is-buffer/index.js' from                     'E:\Data\Projects\Git\Project\node_modules\_core-util-is@1.0.2@core-util-is\lib'
    at E:\Data\Projects\Git\Project\node_modules\_resolve@1.1.7@resolve\lib\async.js:55:21
    at load (E:\Data\Projects\Git\Project\node_modules\_resolve@1.1.7@resolve\lib\async.js:69:43)
    at onex (E:\Data\Projects\Git\Project\node_modules\_resolve@1.1.7@resolve\lib\async.js:92:31)
    at E:\Data\Projects\Git\Project\node_modules\_resolve@1.1.7@resolve\lib\async.js:22:47
    at FSReqWrap.oncomplete (fs.js:123:15)

- 阅读剩余部分 -

迅雷路由器刷华硕固件重启wifi不启动的问题

问题

迅雷路由器刷了华硕RT-AC56U路由器固件以后,就算设置里面开启了WIFI,每次重启也必须手动开启,而不会自动开启。
带来了很大的不方便。

临时解决办法

没有工夫去研究华硕固件的源码,最简单的办法就是写一个脚本,开机自动执行该脚本启动WIFI。

echo '#!/bin/sh
sleep 10
nvram set wl0_radio=1
nvram set wl1_radio=1
nvram commit
service restart_wireless'>/jffs/scripts/init-start
chmod +x /jffs/scripts/init-start

这样重启以后开机就会自动打开wifi了