Karmen Connector - Klipper (Moonraker)

Pro české uživatele jsme připravili návod, jak propojit tiskárnu s Klipperem s Karmen. Budeme velice rádi, pokud nám dáte vědět, jak vám vše funguje.

https://karmen.tech/cs/docs/karmen-connector-klipper

Aktualizovaný odkaz na instalaci do Klippru zde: Klipper plugin

Zároveň prosím o kontrolu scriptu případně o jeho úpravu - při snaze o instalaci Karmen do Klippru se mi nedaří obejít očekávání scriptu, že bude instalace probíhat z /home/pi/ - pokud mi běží tiskárna na MansailOS, kde mám zvoleného uživatele například Admin, instalace vždy selže.

Preparing config for websocket proxy
tee: /home/pi/printer_data/config/websocket-proxy.conf: No such file or directory

@semik dá se s tím něco vymyslet, případně jen upravit proměnou? Předem děkuji.

1 Like

Moc díky za zpětnou vazbu a info o “nefunkčnostech”. U odkazu na dokumentaci jsem opravil “redirect” na novou URL. Co se týká skriptu, tak ho moc rádi upravíme. Blokuje tě nyní, že skript nefunguje nebo jsi schopen si ho pro účel instalace upravit? Ptám se proto, abych věděl zda se má smysl poslat upravenou verzi skriptu sem, než vše upravíme na githubu, což zabere určitě o trochu více času, jelikož to bude potřeba více otestovat.

Ještě jednou moc díky!

P.S.: Případně, pull request by byl samozřejmě ideální :slight_smile: Klidně jen upravená verze skriptu, která funguje pro instalaci u tebe, abychom věděli, na co vše bude potřeba se zaměřit.

Já jsem několik možností zkoušel, ale nepovedlo se mi script ručně vyvolat. Určitě bych nasměrování uvítal, rád pak vyzkouším možnosti.

Jak elegantně zjistit do proměné jméno aktivního uživatele Home User Folder, teď ale nevím:

řádky 44-45
LOGIN=pi
GROUP=pi
USER_HOME=/home/$LOGIN

AS_PI_USER="sudo -u $LOGIN"

Možná by bylo fajn zkusit se spojit a přidat instalátor přímo do KIAUH (kde už podobné služby propojené jsou).

Zkusíme to určitě vylepšit, na KIAUH se podívám. :+1:

Teď, pokud to ještě nemáš nainstalované, tak bych asi postupoval následovně:

  • na tiskárně stáhnout instalační skript:
    wget https://raw.githubusercontent.com/fragaria/karmen-gists/main/ws-install.sh

  • upravit skript podle potřeby, tj. asi změnit řádky 44-45, tak jak píšeš

  • upravený skript z terminálu spustit příkazem
    bash ./ws-install.sh

Dej vědět, zda se to povedlo nainstalovat. Pokud by byly nějaké problémy, tak prosím přilož výstup v terminálu nebo nějaký screenshot apod.

Případně ještě doplním, že pokud bys chtěl nastavit proměnné programově, tak by to mohlo jít takto:

USER=$(whoami)
GROUP=$(id -g -n $USER)

A to je vlastně možná i celá úprava, která je ve skriptu potřeba, takže když to vyzkoušíš, tak to pak můžeme takto opravit i na Githubu (až to pak otestujeme u nás).

1 Like

Zkoušel jsem několik možností, ale vždy instalace selhala na dvou bodech:

This script must be run as root. Cancelling
nebo
Could not cd to home dir, exitting.

Takže jsem musel natvrdo napsat uživatele Login=admin, žádná forma zápisu LOGIN=$(whoami) nebo s jinou proměnou $ADMIN prostě neprošlo bez chyby… Což je mi sice záhadou, ale chyba bude spíše mezi mojí židlí a klávesnicí :slight_smile: Kouknu na to ještě jednou s čistou hlavou a zkusím jiný postup.

LOGIN=admin
GROUP=$(whoami)
USER_HOME=/home/$LOGIN

AS_PI_USER="sudo -u $LOGIN"

# download latest release

cd $USER_HOME || die "Could not cd to home dir, exitting."

Výsledek tohoto zápisu po spuštění pod ROOTem sudo su tedy je funkční Karmen včetně plné instalace. Jdu si zkusit pohrát s API a v mezičase zkusím jiný zápis ve scriptu. Děkuji za postrčení.

Já jsem chybně napsal, jak spustit ten stažený skript, chybělo mi tam “sudo”. Správně se tedy měl spustit: bash ./ws-install.sh

Každopádně, jestli už se to povedlo nainstalovat, tak to znovu raději na stejné tiskárně nespouštěj, mohlo by se zbytečně něco rozbít.

1 Like

$whoami se snaží skript instalovat do /home/root/ - což je pochopitelné. Tedy je potřeba zjistit vlastníka souboru a ne zrovna elegantně to jde vyřešit nějak takto:

LOGIN=$(stat -c "%U" ~/ws-install.sh)
GROUP=$(id -g -n $USER)
USER_HOME=/home/$LOGIN

AS_PI_USER="sudo -u $LOGIN"

což ale nefunguje, protože to není napsané správně. Nechím to už raději na tobě, protože by to chtělo udělat s IF pouze pokud selže USER=pi. Kdyby mě napadlo něco lepšího tak vyzkouším, jinak počkám na testovací script od tebe který vyzkouším.
(instalaci jsem provedl několikrát, pokud nechám stejný klíč, problém nevznikne, doufám :slight_smile: - i když - když to funguje, nešahej na to se neříká jen tak :slight_smile:

1 Like

Kdyžtak k API jsem psal něco tady. Budu moc rád za případnou zpětnou vazbu. Pokud jsi tedy psal o tom, že si jdeš pohrát s naším API :slight_smile:

1 Like