Canonscan 200 Lide con Debian

Cosa c’è di più ovvio da fare in questi giorni di quarantena che andare a frugare tra le vecchie cose con il velleitario intento di mettere un po’ di ordine?
Ecco che su uno scaffale a prendere polvere trovo un vecchio scanner Canon, un Canoscan 200 Lide.

Collegato all’ancor più vecchio iMac su cui è installata Debian Bullseye, viene riconosciuto immediatamente. Bingo!

La prima scansione di prova però presenta una barra nera che si estende verticalmente su tutta l’immagine, più o meno così:

https://i.stack.imgur.com/b3gij.jpg


Collegato a Mac OS lo scanner funziona invece regolarmente, così da poter escludere che sia un problema hardware.

Tornato a Linux, dopo aver installato sane riesco a far diventare la barra verticale da nera a semplicemente più chiara, ma sempre molto fastidiosa.

Qualche ricerca su Internet mi porta a ritenere che il problema sia nella versione più recente del pacchetto sane-backends, così decido di provare con l’ultima versione che sembra funzionare, la 1.0.25 .

Decido di provare con i sorgenti Debian con l’ultima versione disponibile, così come suggerito qui:

$ sudo apt-get source libsane

L’installazione potrebbe chiedere il pacchetto dpkg-dev, nel caso installatelo.

A questo punto dobbiamo editare un file

$ cd sane-backends-1.0.27/backend/

$ nano -c genesys.c

le righe da modificare sono quelle dalla 2075 alla 2077 e vanno modificate così (in neretto le modifiche da applicare):

if (dev->model->flags & GENESYS_FLAG_SHADING_REPARK && dev->model->cmd_set->slow_back_home)
    {
      status = dev->model->cmd_set->slow_back_home (dev, dev->model->flags );

Salviamo, usciamo dall’editor e compiliamo (installate eventuali dipendenze necessarie):


$ sudo apt-get build-dep libsane
$ cd sane-backends-1.0.27
$ dpkg-buildpackage -rfakeroot -uc -b

Qui il mio vecchio iMac di 12 anni ha lavorato per un po’, su un computer più recente la compilazione non dovrebbe richiedere troppo tempo.
Se tutto va come previsto, dovreste avere il pacchetto pronto da installare:

$ sudo dpkg -i libsane_1.0.27-3.2_amd64.deb

Se richiesto, nella stessa cartella troverete anche i .deb con le necessarie dipendenze.

Alla prima prova lo scanner funzionava già perfettamente, ma potrebbe essere opportuno un riavvio del sistema.

Non resta che impedire che il pacchetto venga sostituito con un aggiornamento successivo:

$ sudo apt-mark hold libsane

Comandare Raspberry Pi usando Telegram

Ho tirato fuori dalla polvere una vecchia Raspberry Pi e, grazie a motionEye, l’ho trasformata in un sistema di videosorveglianza artigianale più che adatto alle mie esigenze.
Usando il rilevatore di movimento combinato con Pushover, ho un sistema che mi avvisa nel caso qualcuno entrasse in casa mentre non ci sono. Fortunatamente fino ad adesso ho collezionato solo molti scatti dei viaggi del mio gatto fino alla sua ciotola e documentato i suoi invidiabili pisolini pomeridiani.

Disattivare però motionEye quando mi trovo in casa per evitare che scatti l’allarme ogni volta che passo dal soggiorno è abbastanza scomodo: devo loggarmi al Raspberry Pi via ssh e digitare ogni volta il comando di stop.
Stavo cercando se ci fosse il modo di creare un bottone fisico, quando mi sono imbattuto in un articolo che spiega come sia possibile impartire comandi a distanza usando il sistema di messaggistica Telegram.

La configurazione è abbastanza agevole, ma la parte di compilazione, su una board di prima generazione ha richiesto ben di più della classica pausa caffè.
(Se la compilazione non andasse a buon fine con un errore simile:

telegram-cli: tgl/mtproto-utils.c:101: BN2ull: Assertion 0' failed. SIGNAL received

date un’occhiata a questa soluzione, basta commentare una riga e ricompilare).

Una volta effettuati tutti i test del caso, ho voluto trovare il modo di automatizzare anche l’avvio di Telegram.
Le istruzioni di configurazione del demone mi hanno demoralizzato quasi subito, cosìho optato per una soluzione meno elegante ed efficiente, ma decisamente più alla mia portata.

L’opzione -d permette di lanciare il client come demone, non resta quindi che farlo partire in automatico all’avvio e il gioco è fatto.

$ bin/telegram-cli -k tg-server.pub -d -v -s action.lua

Quindi usiamo cron per lanciare il comando all’avvio:

$ crontab -e
# lancia telegram demonizzato all'avvio
@reboot /home/pi/tg/bin/telegram-cli -k tg-server.pub -d -v -s action.lua

Editando poi il file action.lua è poi abbastanza facile creare tutti i comandi che si vogliono.

if (msg.text=='start-motion') then
   os.execute('systemctl start motioneye')
   send_msg (msg.from.print_name, 'motionEye avviato!', ok_cb, false)
end

Aggiornamento del 27 dicembre 2022:
– corretto il link all’articolo originale purtroppo andato offline con un altro che lo riporta fedelmente
– corretti i caratteri accentati che non si vedevano correttamente

Ubuntu 7.10: davvero per tutti

Che fine farà la nostra cara, vecchia Debian, se Ubuntu è così bella da sedurre anche i debianisti più accaniti?

Un punto a favore di Debian: il marrone-Ubuntu è davvero triste… e se per tutti questi anni non ci fosse stata Debian, con la sua comunità di sviluppatori e di utenti, Ubuntu non sarebbe diventata quello che è: un sistema operativo davvero per tutti, smanettoni e persone normali che vogliono usare Linux.

Technorati tags: , ,