ODROID-C5: debian: Add Debian package scripts

- Update klipper to v0.13.0
- Use Python virtual environment

Signed-off-by: YoungSoo Shin <shinys000114@gmail.com>
Change-Id: I8847a248fb622a8944e07a1fd858949b93629b86
This commit is contained in:
2025-04-28 15:58:34 +09:00
parent f7d08a02bb
commit c789d93c05
9 changed files with 74 additions and 69 deletions

6
debian/changelog vendored
View File

@@ -1,3 +1,9 @@
klipper (0.13.0) stable; urgency=medium
* Version up
-- YoungSoo Shin <shinys000114@gmail.com> Wed, 04 Jun 2025 09:47:26 +0900
klipper (0.1) stable; urgency=medium
* Initial release.

35
debian/control vendored
View File

@@ -4,31 +4,26 @@ Uploaders: Dongjin Kim <tobetter@gmail.com>
Section: utils
Priority: optional
Build-Depends: debhelper (>=9),
python2,
python-setuptools,
pypy,
pypy-setuptools,
dh-python,
dh-systemd,
gcc-arm-none-eabi,
libnewlib-arm-none-eabi,
libnewlib-dev,
build-essential,
libc6-dev,
gcc-avr,
avr-libc
Standards-Version: 3.9.5
X-Python-Version: >= 2.7
Vcs-Browser: https://github.com/tobetter/klipper.git
Vcs-Git: https://github.com/tobetter/klipper.git
dh-virtualenv (>= 1.0),
python3,
python3-dev,
python3-pip,
libffi-dev,
Standards-Version: 3.9.5
Package: klipper
Architecture: any
Depends: ${misc:Depends}, ${python:Depends},
curl,
gcc-aarch64-linux-gnu,
python2-dev,
libffi-dev
Depends: ${misc:Depends},
python3,
python3-dev,
virtualenv,
libffi-dev,
build-essential,
libusb-dev,
libusb-1.0-0,
usbutils,
Description: Klipper Host software
...

View File

@@ -1,2 +1 @@
firmware/* /usr/share/klipper/firmware/
scripts/klipper-mcu /etc/init.d/
firmware/* /usr/share/klipper/firmware/

21
debian/klipper-mcu.service vendored Normal file
View File

@@ -0,0 +1,21 @@
#Systemd klipper linux mcu Service
[Unit]
Description=Starts the MCU Linux firmware for klipper on startup
Documentation=https://www.klipper3d.org/RPi_microcontroller.html
Before=klipper.service
ConditionFileIsExecutable=/usr/share/klipper/firmware/LINUX/klipper_mcu
[Install]
WantedBy=multi-user.target
[Service]
Type=simple
Environment=KLIPPER_HOST_MCU_SERIAL=/tmp/klipper_host_mcu
RemainAfterExit=yes
ExecStart=/usr/share/klipper/firmware/LINUX/klipper_mcu -r -I ${KLIPPER_HOST_MCU_SERIAL}
ExecStop=sh -c 'echo "FORCE_SHUTDOWN" > ${KLIPPER_HOST_MCU_SERIAL}'
ExecStop=sleep 1
TimeoutStopSec=2
Restart=always
RestartSec=5

View File

@@ -1,3 +1,3 @@
config/* /usr/share/klipper/config/
scripts/klippy-requirements.txt /usr/share/klipper/
scripts/klipper /etc/init.d/
config/* /var/printer_data/config/
klippy/* /usr/share/klippy
can.conf /lib/modules-load.d/

View File

@@ -1,22 +1,6 @@
#!/bin/sh
KLIPPER_CONFIG_PATH=/etc/klippy_config
DEFAULT_CONFIG=generic-bigtreetech-skr-v1.3.cfg
## Install required Python packages
if [ ! `which pip2` ]; then
curl https://bootstrap.pypa.io/get-pip.py --output /tmp/get-pip.py
python2 /tmp/get-pip.py
fi
/usr/local/bin/pip install -r /usr/share/klipper/klippy-requirements.txt
## Default printer configuration
mkdir -p ${KLIPPER_CONFIG_PATH}
if [ ! -f ${KLIPPER_CONFIG_PATH}/printer.cfg ]; then
ln -s /usr/share/klipper/config/$DEFAULT_CONFIG \
${KLIPPER_CONFIG_PATH}/printer.cfg
fi
mkdir -p "/var/printer_data/logs"
ln -s example-odroidc5.cfg /var/printer_data/config/printer.cfg
#DEBHELPER#

View File

@@ -1,5 +1,6 @@
#Systemd service file for klipper
[Unit]
Description=Klipper service
Description=Starts klipper on startup
After=network.target
[Install]
@@ -8,7 +9,8 @@ WantedBy=multi-user.target
[Service]
Type=simple
RemainAfterExit=yes
ExecStart=python2 /usr/lib/pypy/dist-packages/klippy/klippy.py \
/etc/klippy_config/printer.cfg \
-l /tmp/klippy.log \
-a /tmp/klippy_uds
ExecStart=/opt/venvs/klipper/bin/python3 \
usr/share/klippy/klippy.py \
/var/printer_data/config/printer.cfg \
-l /var/printer_data/logs/klippy.log \
-a /tmp/klipper.sock

38
debian/rules vendored
View File

@@ -1,35 +1,31 @@
#!/usr/bin/make -f
export PYBUILD_DESTDIR_pypy=debian/klipper
define firmware
make distclean
echo CONFIG_MACH_$(1)=y | tr -d '[[:space:]]' \
echo CONFIG_MACH_LINUX=y | tr -d '[[:space:]]' \
> $(shell pwd)/.config && make olddefconfig
TOPDIR=$(shell pwd) make
mkdir -p $(shell pwd)/firmware/$(1)
cp out/$(2) $(shell pwd)/firmware/$(1)/$(3)
mkdir -p $(shell pwd)/firmware/LINUX
cp out/klipper.elf $(shell pwd)/firmware/LINUX/klipper_mcu
endef
%:
dh $@ --with=python2 --buildsystem=pybuild --with=systemd
dh $@ --with python-virtualenv --with systemd
override_dh_auto_build:
dh_auto_build
override_dh_auto_configure:
$(call firmware,LINUX,klipper.elf,klipper_mcu)
$(call firmware,LPC176X,klipper.bin,FIRMWARE.BIN)
$(call firmware,at90usb1286,klipper.elf.hex,klipper.elf.hex)
$(call firmware,at90usb646,klipper.elf.hex,klipper.elf.hex)
$(call firmware,atmega1280,klipper.elf.hex,klipper.elf.hex)
$(call firmware,atmega1284p,klipper.elf.hex,klipper.elf.hex)
$(call firmware,atmega168,klipper.elf.hex,klipper.elf.hex)
$(call firmware,atmega2560,klipper.elf.hex,klipper.elf.hex)
$(call firmware,atmega328,klipper.elf.hex,klipper.elf.hex)
$(call firmware,atmega328p,klipper.elf.hex,klipper.elf.hex)
$(call firmware,atmega32u4,klipper.elf.hex,klipper.elf.hex)
$(call firmware,atmega644p,klipper.elf.hex,klipper.elf.hex)
dh_auto_configure
override_dh_virtualenv:
dh_virtualenv --requirements scripts/klippy-requirements.txt --no-package klipper-mcu --skip-install
override_dh_strip:
dh_strip --exclude=/site-packages/
override_dh_shlibdeps:
dh_shlibdeps --exclude=/site-packages/
override_dh_auto_install:
dh_auto_install
dh_systemd_enable || true
dh_systemd_start || true
dh_systemd_enable || false
dh_systemd_start || false