目录
下载安装脚本
- 安装git
root@hi3798mv100:~# apt update
root@hi3798mv100:~# apt install git
- 克隆kiauh的gitee镜像,注意klipper安装不能以root账号进行,需要先切换到普通用户
root@hi3798mv100:~# su marsa
marsa@hi3798mv100:/root$ cd
marsa@hi3798mv100:~$ git clone https://gitee.com/miroky/kiauh
使用脚本安装klipper
虽然说的都是安装kliper,但实际上需要安装三个软件
- Klipper 一款高性能的 3D 打印机固件,读取gcode文件,解析后通过串口发送到下位机
- Moonraker Web 服务,提供API接口,通过API接口可以对klipper上位机进行操作,读取klipper工作状态,管理gcode文件,修改配置文件等等
- Fluidd 轻量级的 Web 前端,用户自己写代码调用Moonraker的API接口操作klipper不大显示,所以需要一个用户友好的Web前端来提供直观的用户界面,方便用户操作和监控 3D 打印机。
执行kiauh脚本
marsa@hi3798mv100:~$ cd kiauh
marsa@hi3798mv100:~/kiauh$ . kiauh.sh
安装Klipper
- 进行安装操作,输入1然后回车
- 安装Klipper,输入1然后回车
- 选择要安装的python版本,默认是python3,这里直接回车
- 因为一个klipper上位机可以同时连接多个下位机,所以需要设置要连接的下位机数量,默认是1,这里直接回车
- 用户组设置,直接回车
等待klipper安装完成
安装Moonraker
- 在选择安装Klipper的界面,输入Moonraker的代号2,然后回车即可
- 安装时间较长需要耐心等待
- 最后需要输入一遍当前用户的登录密码
安装Fluidd
ps:klipper有两个Web接口,Fluidd和Mainsail,根据用户使用习惯可以自行选择
- 在选择安装Klipper的界面,输入Moonraker的代号4,然后回车即可
- 在安装过程中可能会出现下面的报错
- 修改安装脚本文件,添加 --no-check-certificate
marsa@hi3798mv100:~$ vi ./kiauh/scripts/fluidd.sh
修改与下面一致
function download_fluidd() {
local url
url=$(get_fluidd_download_url)
status_msg "Downloading Fluidd from ${url} ..."
if [[ -d ${FLUIDD_DIR} ]]; then
rm -rf "${FLUIDD_DIR}"
fi
mkdir "${FLUIDD_DIR}" && cd "${FLUIDD_DIR}"
if wget "${url}" --no-check-certificate; then
ok_msg "Download complete!"
status_msg "Extracting archive ..."
unzip -q -o ./*.zip && ok_msg "Done!"
status_msg "Remove downloaded archive ..."
rm -rf ./*.zip && ok_msg "Done!"
else
print_error "Downloading Fluidd from\n ${url}\n failed!"
exit 1
fi
}
- 再次安装,默认使用推荐宏,直接回车
至此,klipper所需软件全部安装完成
- 在浏览器中打开机顶盒的ip地址,能够显示web界面了
联通下位机与上位机
笔者这里使用的下位机是FLY-D5五轴主板
连接
使用一个USB-A转USB-C的数据线连接FLY-D5下位机主板与Hi3798mv100机顶盒
查看连接状态
- 插拔数据线之前分别执行lsub,观察输出的差异性
marsa@hi3798mv100:~$ lsusb
- 可以发现在插入数据线后多出了一行输出,表示识别到了USB设备
Bus 003 Device 002: ID 1d50:614e OpenMoko, Inc. stm32f072xb
- 插拔数据线之前分别执行ls /dev,观察输出的差异性
marsa@hi3798mv100:~$ ls /dev
- 结果输出前后没有变化,表示并没有识别到串口驱动。在前面的笔记中,打开了ch340的串口驱动,但是这次使用的FLY-D5主板并不是使用ch340的串口,而是用的是USB虚拟串口,所以识别不到串口设备
修改机顶盒的内核,打开USB虚拟串口
- 修改内核
$ pwd
/home/marsa/hi3798mv/HiSTBLinuxV100R005C00SPC060
$ source env.sh
$ make linux-menuconfig
- 打开USB_ACM,编入内核
- 编译内核
$ make linux -j16
- 烧写内核镜像
(偷懒不想写了,前面的笔记中有提及)
再次查看连接状态
- 插拔数据线之前分别执行ls /dev,观察输出的差异性
marsa@hi3798mv100:~$ ls /dev
- 可以发现多出了/dev/ttyACM0设备,也就是下位机的串口设备
- 同时也出多了/dev/serial目录,下面存放了/dev/ttyACM0的链接
marsa@hi3798mv100:~$ ll /dev/serial/by-id/usb-Klipper_stm32f072xb_12345-if00
lrwxrwxrwx 1 root root 13 Mar 22 22:20 /dev/serial/by-id/usb-Klipper_stm32f072xb_12345-if00 -> ../../ttyACM0
设置klipper连接的串口号
机顶盒可以连接了多个串口设备,需要在klipper的配置文件中指定下位机的串口号
- 切换到配置界面
- 点击编辑printer.cfg文件
- 把上文的/dev/serial/by-id/usb-Klipper_stm32f072xb_12345-if00填入到serial中
- 重启固件
- 查看系统信息,可以看到已经识别到了stm32f72xb的下位机MCU型号
至此已经完成了klipper安装,剩下的就是具体根据打印机的实际硬件环境以及下位机的引脚资源分配来编辑printer.cfg文件。
printer.cfg配置3D打印机后文再说。