先说解决方案
~~使用root权限编辑~/klipper/klippy/extras
目录下的temperature_sensors.cfg
文件
将33行[temperature_host]
注释掉
保存之后修改printer.cfg
将sensor_type:temperature_host
这部分注释掉,保存之后重启klipper即可正常工作
过程
最近家里网络出了点故障,临时将用于运行klipper的J1900机器拿来顶一下子,装上PVE之后在PVE里装iKuai用来上网。但是没有机器用来跑klipper做上位机了,所以直接在PVE里安装Ubuntu虚拟机并安装了klipper,将下位机直通到虚拟机并导入配置文件之后发现并不能正常工作,报错如下:
于是连接上Ubuntu查看,发现并没有温度传感器数据,怀疑是J1900没有温度传感器?但是后续在PVE的Shell中执行发现可以正常回显,于是乎确定温度传感器没有直通到虚拟机中。
这时候想到了一个邪招,既然你没法读取到传感器,那我直接给你屏蔽了不就好了
去找这个文件在哪个位置,找到该内容位于~/klipper/klippy/extras/temperature_host.py
进一步找,发现该文件被同目录下的temperature_sensors.cfg
所引用。打开该文件发现[temperature_host]
部分并将其注释掉,重启klipper试一下。
好吧,还是报错,但是这回错误不一样了。经过查询发现这部分内容是用来显示上位机的温度的,打开printer.cfg,找到上位机温度这部分,并将其注释掉。
保存并重启,这回可以直接工作了。
补充
后续发现直接注释掉printer.cfg中用来显示上位机的温度部分代码就可以了,不需要修改temperature_sensors.cfg
这部分也可以使用。
一开始有尝试通过PVE的qemu-guest-agent
将温度传感器通到虚拟机中,但是不知道是不是由于不支持VT-D的原因,在启动这个服务时一直有个硬件未响应。以后再尝试一下看看能不能直通进虚拟机。