Stampante Brother HL-2035

Usate questo forum per richieste di aiuto e consigli sull'hardware montato nelle vostre macchine con GNU/Linux Slackware.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata e la versione del Kernel. Questi dati aiutano le persone che possono rispondere.
2) Citare il tipo di hardware coinvolto in modo dettagliato.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT. Non usare termini gergali come procio, mobo e simili per identificare i componenti hardware.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Avatar utente
joe
Iper Master
Iper Master
Messaggi: 2922
Iscritto il: ven apr 27, 2007 11:21
Slackware: 14.2
Kernel: 4.4.38
Desktop: KDE-4.14.21

Stampante Brother HL-2035

Messaggioda joe » mer ott 05, 2016 18:55

Anni fà avevamo già parlato di questa stampante:
viewtopic.php?f=6&t=33276&hilit=brother&start=15

Da qualche settimana ho reinstallato il sistema operativo da zero, prima ero su slackware 14.0 32bit, ora sono su 14.2 a 64bit. Adesso sto tentando di installare la stampante che prima funzionava coi driver della brother (closed e relativi al modello hl-2030 che evidentemente andavano bene anche per la mia 2035).

Non riesco a capire perchè debba essere così maledettamente complicato far funzionare una stampante da 4 soldi come quella in oggetto...
Ecco cosa ho fatto:
- sono partito da openprint sperando che dopo tutti questi anni il supporto al pinguino fosse migliorato magari anche con una apertura dei driver: http://www.openprinting.org/printer/Bro ... er-HL-2035
quanto viene spiegato lì tuttavia è roba vechia, il tizio ha usato come avevo fatto io, i driver closed. Ma attualmente brother rilascia roba diversa, no più deb ed rpm. Forse è meglio così...
Viene anche raccomandato l'uso del driver "Recommended Driver: hl1250" come alternativa open.
Con questo, la stampante stampa "a calci", una volta si l'altra no ecc ecc (ho installato il file PPD da qui http://www.openprinting.org/ppd-o-matic ... 035&show=0 ).
Questo file PPD si può usare come driver sia importandolo da cups (che invece di suo attiverebbe un altro driver chiamato guteprint, ho testato anche quello, ma riesce solo a far girare la ventola della stampante... gira anche altro ma non voglio essere scurrile ). ho provato anche ad importarlo da system settings di KDE e riesce a far apparire la stampante come gestita dal driver in questione. In ogni caso nè hl1250 nè guteprint gestiscono la stampante come si deve.
lasciamo allora perdere openprint e soci.



Allora spulcio il sito brother. Dico subito che si trovano ancora i vecchi pacchetti rpm e deb:
http://support.brother.com/g/s/id/linux ... ml#HL-2035
link che rimanda ai pacchetti per la hl-2030, evidentemente compatibili anche con questo modello.
Nota, per farli funzionare sul mio sistema attuale che è a 64 bit penso che sia necessario qualche passaggio ulteriore in termini di librerie multilib o roba simile, non aazrdo di più perchè on ne ho avuto mai esperienza.

Tuttavia se si parte dal sito brother ci sono altre risorse, pare che distribuiscano i sorgenti del driver:
http://support.brother.com/g/b/download ... dlang=true
Da quella pagina è possibile accettare la licenza GPL2 e scaricare non più un rpm o un deb ma un tarball coi sorgenti del driver.


Qualcuno ha provato a far funzionare questa roba?
Mi interesserebbe crearne un pacchetto slackware, o meglio ancora uno slackbuild. Qualcuno può darmi una mano?

Avatar utente
ponce
Iper Master
Iper Master
Messaggi: 2496
Iscritto il: mer mar 05, 2008 16:45
Nome Cognome: Matteo Bernardini
Slackware: slackware64-current
Kernel: 4.19.0-rc8
Desktop: lxde
Località: Pisa
Contatta:

Re: Stampante Brother HL-2035

Messaggioda ponce » mer ott 05, 2016 19:07

forse questo topic puo' tornarti utile (ma devi leggerlo tutto)

https://www.linuxquestions.org/question ... 175588754/

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 2922
Iscritto il: ven apr 27, 2007 11:21
Slackware: 14.2
Kernel: 4.4.38
Desktop: KDE-4.14.21

Re: Stampante Brother HL-2035

Messaggioda joe » mer ott 05, 2016 19:15

Questo è il contenuto del tarball che ho scaricato:

Codice: Seleziona tutto

~/build/brother-laser-cups-driver-2.0.1-1$ tree
.
├── Copying
├── brcupsconfig3
│   ├── brcups_commands.h
│   └── brcupsconfig.c
└── scripts
    ├── cupswrapperDCP7010-2.0.1
    ├── cupswrapperDCP7020-2.0.1
    ├── cupswrapperDCP7025-2.0.1
    ├── cupswrapperDCP8060-2.0.1
    ├── cupswrapperDCP8065DN-2.0.1
    ├── cupswrapperFAX2810-2.0.1
    ├── cupswrapperFAX2820-2.0.1
    ├── cupswrapperFAX2920-2.0.1
    ├── cupswrapperHL2030-2.0.1
    ├── cupswrapperHL2040-2.0.1
    ├── cupswrapperHL2070N-2.0.1
    ├── cupswrapperHL5240-2.0.1
    ├── cupswrapperHL5250DN-2.0.1
    ├── cupswrapperHL5270DN-2.0.1
    ├── cupswrapperHL5280DW-2.0.1
    ├── cupswrapperMFC7220-2.0.1
    ├── cupswrapperMFC7225N-2.0.1
    ├── cupswrapperMFC7420-2.0.1
    ├── cupswrapperMFC7820N-2.0.1
    ├── cupswrapperMFC8460N-2.0.1
    ├── cupswrapperMFC8660DN-2.0.1
    ├── cupswrapperMFC8860DN-2.0.1
    └── cupswrapperMFC8870DW-2.0.1

2 directories, 26 files

Non ho ben capito il ruolo di quei files e come fare a creare i driver da installare, a partire da quel contenuto.
Forse si deve usare un'altro script che brother fornisce sotto il nome di:
Driver Install Tool
The tool will install LPR, CUPSwrapper driver and scanner driver (for scanner models).

http://support.brother.com/g/b/download ... &type3=625


EDIT
Scusa ponce non avevo letto il la tua risposta.
Tuttavia avevo già aperta quella pagina nel browser, anche se non vi ero arrivato in fondo, vedo che sono tre pagine e io sono ancora alla prima! :)

Quello che mi premeva raccontare è che adesso Brother rilascia drivers in modo differente con tarball di sorgenti rilasciati sotto GPL2.
Mi pare una novità importante di per se.
Poi avrà anche ricadute sulla modalità d'installazione e compilazione.

Secondo te quella roba lì si può compilare direttamente per architettura 64bit?

Avatar utente
ponce
Iper Master
Iper Master
Messaggi: 2496
Iscritto il: mer mar 05, 2008 16:45
Nome Cognome: Matteo Bernardini
Slackware: slackware64-current
Kernel: 4.19.0-rc8
Desktop: lxde
Località: Pisa
Contatta:

Re: Stampante Brother HL-2035

Messaggioda ponce » mer ott 05, 2016 20:16

credo che anche la risposta a questa tua ultima domanda sia nel topic in questione.

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 2922
Iscritto il: ven apr 27, 2007 11:21
Slackware: 14.2
Kernel: 4.4.38
Desktop: KDE-4.14.21

Re: Stampante Brother HL-2035

Messaggioda joe » gio ott 06, 2016 11:29

Ho letto la discussione su linux question che hai linkato e ho posto là la stessa questione.

Da quanto ho capito l'utente vonbiber con il contributi di altri ha creato e pubbica sul suo repo gli slackbuilds per i driver di due modelli della brother:
- HLL-2300D
- DCP7030
http://vonbiber.byethost17.com/slackware/SlackBuilds/

Come funzionano:
- per quei modelli brother rilascia solo pacchetti rpm o deb contenenti i binary 32bit precompilati del driver.
- lo slackbuild parte dagli rpm rilasciati da brother, li rielabora e crea un pacchetto slackware conforme alla nostra distribuzione
- questi pacchetti installano quindi un driver per sistemi a 32bit, ma è possibile farli funzionare anche su un sistema 64bit puro: occorre installare alcuni altri pacchetti:

Codice: Seleziona tutto

cups-compat32-2.1.4-x86_64-1compat32.txz
cups-filters-compat32-1.9.0-x86_64-2compat32.txz
glibc-solibs-2.23_multilib-x86_64-1alien.txz


In questo senso potrei anche io usare quegli slackbuilds come base di partenza e adattarli agli RPM che brother rilascia per il modello HL-2030 (anche se ho una HL-2035 la stessa brother reindirizza verso i drivers della 2030, i due modelli sono pressochè identici probabilmente):
http://support.brother.com/g/s/id/linux ... ml#HL-2035

Però come ho spiegato se si parte dal sito brother e si cerca hl-2035 alla fine si arriva qui:
http://support.brother.com/g/b/download ... _as&os=127

E lì Brother mette a disposizione due soli downloads:
1. Driver Install Tool - The tool will install LPR, CUPSwrapper driver and scanner driver (for scanner models).
2. CUPS wrapper Printer driver Source Codes

Il primo è uno script bash che dovrebbe scaricare e installare tutto l'occorrente per far funzionare la stampante. Però non ho ben capito, mi sembra di capire che parta da rpm e binari 32bit, ma varia a seconda dei modelli. Non l'ho testato perchè non vorrei spargere files inutili nel mio sistema...
Il secondo è invece un tarball con un codice sorgente in C e headers più degli script penso per produrre files PPD da imoportare poi con CUPS.

Quello che non ho capito è se questo secondo pacchetto sia sufficiente per ottenere un driver che faccia funzionare la stampante. O se invece si debba anche usare l'install tool.
Ho posto la stessa domanda anche su linuxquestions:
https://www.linuxquestions.org/question ... ost5614420

Spero che o qui o su linuxquestions qualcuno possa aiutarmi a capire se per il mio modello di stampante vi sia qualche alternativa rispetto a dover partire da un rpm di binari a 32bit. Spero di aver chiarito meglio anche la domanda.

Avatar utente
ponce
Iper Master
Iper Master
Messaggi: 2496
Iscritto il: mer mar 05, 2008 16:45
Nome Cognome: Matteo Bernardini
Slackware: slackware64-current
Kernel: 4.19.0-rc8
Desktop: lxde
Località: Pisa
Contatta:

Re: Stampante Brother HL-2035

Messaggioda ponce » gio ott 06, 2016 11:41

joe ha scritto:Spero che o qui o su linuxquestions qualcuno possa aiutarmi a capire se per il mio modello di stampante vi sia qualche alternativa rispetto a dover partire da un rpm di binari a 32bit.

a quello che mi sembra di aver capito la soluzione che funziona (e quella che hanno seguito i partecipanti a quel topic) e' questa.
mi spiace ma non ho idea se vi sia un'alternativa percorribile, devi tenere di conto che e' la Brother che non rilascia piu' driver per cups dal 2007 e gli utenti si arrangiano come possono...

pino
Linux 3.x
Linux 3.x
Messaggi: 591
Iscritto il: ven gen 18, 2008 15:34
Nome Cognome: Pino
Slackware: 14
Desktop: kde
Località: Torino

Re: Stampante Brother HL-2035

Messaggioda pino » gio ott 06, 2016 12:32

Non so se puo servirti
Io ho una brothr dcp 1512 e sul sito della casa ci sono i driver a 64 bit per lo scanner e solo i 32 per la stampante, ma visto che la mia è una installazione a 64 della 14.2 di prova ho provato comunque a procedere come per la 14.0 a 32 che uso conrentemente. Usando i pacchetti rpm 64 per lo scanner, 32 per la stampante e l'installer forniti dalla brother
Risultato. la stampante funziona come sullla 14.0 a 32, bene, ma lo scanner funziona decisamente meglio, sulla 14.0 funziona ma con qualità infima.
Sul sistema ho le normali multilib di aliebob

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 2922
Iscritto il: ven apr 27, 2007 11:21
Slackware: 14.2
Kernel: 4.4.38
Desktop: KDE-4.14.21

Re: Stampante Brother HL-2035

Messaggioda joe » lun ott 10, 2016 20:17

Ho fatto alcune prove utilizzando drivers open per la stampante e pare che due drivers, di cui ho generato i files PPD dal sito openprinting, siano in grado di gestire la mia stampante, seppure con qualche limitazione.

Ho comunque partecipato alla discussione suggerita anche da ponce sulla pacchettizzazione dei drivers proprietari rilasciati dalla Brother. E vorrei provare ad installare anche quelli... magari per lo scopo chiederò aiuto direttamente in quella discussione su LQ, visto che c'è già il tizio che se n'è occupato e saprà quasi sicuramente darmi qualche dritta. Riporterò anche qui i progressi appena otterrò dei pacchetti per i drivers Brother della mia 2035, funzionanti e un minimo adattati all'ambiente Slackware.

Nel frattempo da buon ignorante in materia, mentre cercavo informazioni sul far funzionare la stampante sotto linux, ho incontrato diversi termini e aspetti che mi sfuggono. Vi faccio qualche esempio.
Brother rilascia due pacchetti di drivers, uno è un driver "lpr" mentre l'altro è il "cosiddetto cups-wrapper".
Da quel poco che ho capito, il primo si riferisce alla tradizionale "infrastruttura" di stampa in ambiente unix. Il secondo invece dovrebbe servire per utilizzare la stampante sotto CUPS. Ora non so se riesco a rendere il senso della domanda.... ma ci provo:
- ma cosa è "lpr" in pratica
- serve ancora oggi, perchè io ho fatto funzionare la stampante coi drivers open importando da CUPS solo un file PPD senza installare alcun driver "lpr"... E comunque riesco a stampare senza problemi da riga di comando usando sia lpr che il più versatile "lp".
- Allora mi chiedo, perchè invece brother pubblica un driver per lp e altra roba per cups? funzionerebbe la stampa solo col pacchetto cups?

Altro esempio:
Poi ho notato che vi sono drivers piuttosto diversi in base alla stampante... alcune stampanti infatti supportano un certo linguaggio per descrivere la pagina da stampare altre altri. Ne ho visto almeno 3: GDI, PCL, PS
La mia stampante è in teoria una economica GDI... se non sbaglio.
Però funziona anche con il driver "hpijs-pcl5e " che dovrebbe essere per stampanti PCL. Funziona anche con il driver "hl1250" che invece dovrebbe essere per ghostscript (quindi PS?).

Spero di aver reso l'idea di quanto abbia le idee confuse in merito al discorso stampanti, linguaggi di stampa, infrastrutture di stampa e tipi di drivers....
Chi mi aiuta a capirci qualcosa di più?
Anche con qualche link a risorse esterne... capisco che l'argomento sia abbastanza vasto.
A me farebbe comodo solo una panoramica..

Grazie in anticipo! :)

Avatar utente
ponce
Iper Master
Iper Master
Messaggi: 2496
Iscritto il: mer mar 05, 2008 16:45
Nome Cognome: Matteo Bernardini
Slackware: slackware64-current
Kernel: 4.19.0-rc8
Desktop: lxde
Località: Pisa
Contatta:

Re: Stampante Brother HL-2035

Messaggioda ponce » lun ott 10, 2016 21:06

joe ha scritto:- ma cosa è "lpr" in pratica

https://en.wikipedia.org/wiki/Line_Prin ... n_protocol ormai superato da cups pressoche' ovunque.
- serve ancora oggi, perchè io ho fatto funzionare la stampante coi drivers open importando da CUPS solo un file PPD senza installare alcun driver "lpr"... E comunque riesco a stampare senza problemi da riga di comando usando sia lpr che il più versatile "lp".

sono emulazioni di cups (funzionanti) per i software che tentano di usare il vecchio protocollo

Codice: Seleziona tutto

# ls -la /usr/bin/lp
lrwxrwxrwx 1 root root 7 Jun 15 12:42 /usr/bin/lp -> lp-cups
# ls -la /usr/bin/lpr
lrwxrwxrwx 1 root root 8 Jun 15 12:42 /usr/bin/lpr -> lpr-cups

- Allora mi chiedo, perchè invece brother pubblica un driver per lp e altra roba per cups? funzionerebbe la stampa solo col pacchetto cups?

in realta' usa solo cups adesso, il driver per lp non e' piu' usato perche' lpd non c'e' piu'.

Altro esempio:
Poi ho notato che vi sono drivers piuttosto diversi in base alla stampante... alcune stampanti infatti supportano un certo linguaggio per descrivere la pagina da stampare altre altri. Ne ho visto almeno 3: GDI, PCL, PS
La mia stampante è in teoria una economica GDI... se non sbaglio.
Però funziona anche con il driver "hpijs-pcl5e " che dovrebbe essere per stampanti PCL. Funziona anche con il driver "hl1250" che invece dovrebbe essere per ghostscript (quindi PS?).

come ti ha scritto SeB su LQ la tua stampante supporta sia GDI che il driver generico PCL (lo ha trovato sul manuale della stessa stampante), non ho idea se supporti postscript (non credo).
Spero di aver reso l'idea di quanto abbia le idee confuse in merito al discorso stampanti, linguaggi di stampa, infrastrutture di stampa e tipi di drivers....
Chi mi aiuta a capirci qualcosa di più?
Anche con qualche link a risorse esterne... capisco che l'argomento sia abbastanza vasto.
A me farebbe comodo solo una panoramica..

https://en.wikipedia.org/wiki/Printer_Command_Language
https://en.wikipedia.org/wiki/PostScript
https://en.wikipedia.org/wiki/Graphics_Device_Interface

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 2922
Iscritto il: ven apr 27, 2007 11:21
Slackware: 14.2
Kernel: 4.4.38
Desktop: KDE-4.14.21

Re: Stampante Brother HL-2035

Messaggioda joe » mar ott 11, 2016 0:52

ponce ha scritto:in realta' usa solo cups adesso, il driver per lp non e' piu' usato perche' lpd non c'e' piu'.


Ok, bè in realtà si trova ancora qualcosa: http://support.brother.com/g/s/id/linux ... ml#HL-2035
che poi rimanda ai drivers della hl-2030, dove ci sono i seguenti rpm (ci sono anche i .deb ma va bè):
http://www.brother.com/pub/bsc/linux/dl ... 1.i386.rpm
http://www.brother.com/pub/bsc/linux/dl ... 1.i386.rpm

Come vedi il primo è il driver per lpr, dicevi che questo non servirebbe. Però se vedi poco più in basso ci sono le istruzioni per l'installazione su varie distro rpm based, sia per il driver lpr che cupswrapper. Consideriamo solo il secondo allora:
http://support.brother.com/g/s/id/linux/en/instruction_prn1a.html ha scritto:Step 3. Download drivers
Download LPR driver and cupswrapper driver.

Step 4. Install LPR driver and cupswrapper driver
4-1. Turn on the printer and connect the USB cable.
4-2. Open the terminal and go to the directory where the drivers are.
4-3. Install LPR driver.The install process may take some time. Please wait until it is complete.
Command (for dpkg) : dpkg -i --force-all (lpr-drivername)
Command (for rpm) : rpm -ihv --nodeps (lpr-drivername)
4-4. Install cupswrapper driver.The install process may take some time. Please wait until it is complete.
Command (for dpkg) : dpkg -i --force-all (cupswrapper-drivername)
Command (for rpm) : rpm -ihv --nodeps (cupswrapper-drivername)
4-5. Check if the LPR driver and cupswrapper driver are installed
Command (for dpkg) : dpkg -l | grep Brother
Command (for rpm) : rpm -qa | grep -e (lpr-drivername) -e (cupswrapper-drivername)


Le istruzioni sopra dovrebbero riferirsi alla sola installazione del driver per cups, non lpr. Eppure viene riportata anche l'installazione del pacchetto contenente il driver lpr. Pacchetto che stando a quanto dicevi non dovrebbe servire a nulla proprio perchè lpd non c'è più.
Ma come te lo spieghi allora?
Non dovrei aspettarmi solo un pacchetto per cupswrapper e stop?


PS.
come ho già scritto nei post precedenti, a dire il vero al momento si trova anche un pacchetto sorgente per cups: http://support.brother.com/g/b/download ... ng=English
Che appunto dovrebbe essere sufficiente per far funzionare la stampante sotto cups, inclusi i vari lp-cups e lpr-wrapper mantenuti per supportare compatibilità con vecchi programmi che si aspettano di trovare lp e lpr, come hai ben spiegato.
Ciò che sta volta non è ben spiegato è come installare la stampante a partire da quei sorgenti:
http://support.brother.com/g/b/downloadhowto.aspx?c=it&lang=it&prod=hl2035_eu&os=127&dlid=dlf006674_000&flang=4&type3=576 ha scritto:Come effettuare l'installazione
1. Download the file.
2. Run the command.
Command :

Codice: Seleziona tutto

gunzip (filename)


:-k
Ma quello scaricato è un tarball tar.gz...
Va bè per il momento lasciamo in sospeso questo punto, anche se poi dovrebbe essere il punto interessante, perchè come dicevo da quel pacchetto targz si dovrebbe riuscire sia ad installare la stampante completamente che a creare un pacchetto txz slackware compatibile per fare una cosa più pulita e integrata con la nostra distribuzione.
Vi chiederò qualche consiglio in modo più chiaro e mirato prossimamente....




come ti ha scritto SeB su LQ la tua stampante supporta sia GDI che il driver generico PCL (lo ha trovato sul manuale della stessa stampante), non ho idea se supporti postscript (non credo).

Darò una letta ai links ai vari linguaggi di stampa. Ma allora il driver hl1250 è per stampanti GDI? Eppure viene indicato come "Type: Ghostscript built-in". Credevo significasse in pratica PostScript... Deduzione azzardata probabilmente.

Per il momento grazie mille Ponce, ora le idee sono più chiare, a parte ancora qualche dubbio che ho riportato lì sopra. Per i quali sarei grato se poteste darmi una risposta. :)

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 2922
Iscritto il: ven apr 27, 2007 11:21
Slackware: 14.2
Kernel: 4.4.38
Desktop: KDE-4.14.21

Re: Stampante Brother HL-2035

Messaggioda joe » mar ott 11, 2016 21:24

Lascio aperte le questioni del post precedente e proseguo a riportarvi ciò che ho appreso a partire dai sorgenti del cupswrapper per la mia HL-2035, sebbene ancora non sia riuscito a venire a capo di come funziona di preciso il pacchetto, eccolo:
http://download.brother.com/welcome/dlf ... 1-1.tar.gz

Contiene i seguenti files

Codice: Seleziona tutto

brother-laser-cups-driver-2.0.1-1
├── Copying
├── brcupsconfig3
│   ├── brcups_commands.h
│   └── brcupsconfig.c
└── scripts
    ├── cupswrapperDCP7010-2.0.1
    ├── cupswrapperDCP7020-2.0.1
    ├── cupswrapperDCP7025-2.0.1
    ├── cupswrapperDCP8060-2.0.1
    ├── cupswrapperDCP8065DN-2.0.1
    ├── cupswrapperFAX2810-2.0.1
    ├── cupswrapperFAX2820-2.0.1
    ├── cupswrapperFAX2920-2.0.1
    ├── cupswrapperHL2030-2.0.1
    ├── cupswrapperHL2040-2.0.1
    ├── cupswrapperHL2070N-2.0.1
    ├── cupswrapperHL5240-2.0.1
    ├── cupswrapperHL5250DN-2.0.1
    ├── cupswrapperHL5270DN-2.0.1
    ├── cupswrapperHL5280DW-2.0.1
    ├── cupswrapperMFC7220-2.0.1
    ├── cupswrapperMFC7225N-2.0.1
    ├── cupswrapperMFC7420-2.0.1
    ├── cupswrapperMFC7820N-2.0.1
    ├── cupswrapperMFC8460N-2.0.1
    ├── cupswrapperMFC8660DN-2.0.1
    ├── cupswrapperMFC8860DN-2.0.1
    └── cupswrapperMFC8870DW-2.0.1

2 directories, 26 files


Praticamente è un tarball generico contenente diversi scripts, ciascuno in grado di configurare una specifica stampante, nel mio caso si possono buttare tutti tranne quello relativo alla HL2030. La situazione diventerebbe:

Codice: Seleziona tutto

brother-laser-cups-driver-2.0.1-1
├── Copying
├── brcupsconfig3
│   ├── brcups_commands.h
│   └── brcupsconfig.c
└── scripts
    └── cupswrapperHL2030-2.0.1

2 directories, 4 files

Quindi si ha un sorgente in C di un programma che dal nome sembrerebbe un file di configurazione per cups, o forse un configuratore che si occupa di configurare la stampante per farla dialogare con CUPS. Ci sono anche i suoi headers e il tutto è facilmente compilabile specificando anche alcune opzioni in stile slackware. Si ottiene così un file eseguibile "brcupsconfig3".
Su LQ mi hanno proposto uno script bash che fà proprio questa cosa, cioè compila il sorgente e ne ottiene l'eseguibile. La riporto anche qui, il tutto non è testato ecc ecc:

Codice: Seleziona tutto

#!/bin/sh

ARCH=$(uname -m)
PARCH=$ARCH
LIBDIRSUFFIX=""
case "$ARCH" in
  i586|i686) SLKCFLAGS="-O2 -march=$ARCH -mtune=i686"; PARCH=i586;;
  x86_64) SLKCFLAGS="-O2 -fPIC"; LIBDIRSUFFIX=64;;
  *) echo "'$ARCH': this architecture is not recognized"; exit 1;;
esac

sed -i 's?/usr/local?/usr/share/?' brcupsconfig.c || exit 1

cat > Makefile<<EOM
CFLAGS = $SLKCFLAGS
bin = brcupsconfig3

bin: brcups_commands.h brcupsconfig.c
        gcc brcupsconfig.c \$(CFLAGS) -s -o \$(bin)
EOM

make

Sinceramente non ho ben capito il ruolo di questo eseguibile. Se vada fatto girare a mano, oppure se venga richiamato da cups... Nè qule funzione abbia...
La cosa interessante è che è un eseguibile a 64bit quindi può girare con le librerie native glibc ecc ecc.
(anni fa per questo modello avevo trovato solo gli rpm coi binari unicamente a 32bit).

Il secondo file, cioè: "cupswrapperHL2030-2.0.1" è uno script di shell.
Fa diverse cose, ma in sintesi pare che scriva alcuni files nel sistema:

Codice: Seleziona tutto

# dir   :  /usr/local/Brother/filter
# dir   :  /usr/lib/cups/filter
# file  :  /usr/share/cups/model/HL2030.ppd
# file  :  /usr/lib/cups/filter/brlpdwrapperHL2030
# file  :  /usr/lib64/cups/filter/brlpdwrapperHL2030

E alla fine aggiunge la stampante a CUPS usando il file PPD.

Codice: Seleziona tutto

lpadmin -p HL2030 -E -v $port -P /usr/share/cups/model/HL2030.ppd


Dando un'occhiata allo script si vede che il file PPD e il "filtro brlpdwrapper", sono entrambi hardcoded nello script e vengono scritti nei files sopraelencati attraverso degli "here document" (tipo cat <<EOF > /path/to/outputfile).
Cosa sia e a cosa serva quel "filtro brlpdwrapper" non l'ho capito... alla fine è uno script di shell, niente di che. Ma non mi pare che venga eseguito dopo essere stato creato.

Secondo voi per fare uno slackbuild o anche solo un pacchetto txz per installare la stampante e poterla usare con CUPS sfruttando il driver Brother, come potrei procedere?
Quale struttura dovrebbe avere il pacchetto finale? Cioè intendo quali files sono realmente necessari a CUPS per far pilotare la stampante al driver della Brother?
Basta mica solo il PPD? (ne dubito sarebbe troppo facile...).

Se avete voglia di darmi una mano penso sia utile anche per capirci qualcosa di più su cups e su come interagisce coi drivers proprietari delle stampanti.
Vi ringrazio in anticipo :)

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 2922
Iscritto il: ven apr 27, 2007 11:21
Slackware: 14.2
Kernel: 4.4.38
Desktop: KDE-4.14.21

Re: Stampante Brother HL-2035

Messaggioda joe » mar ott 25, 2016 19:25

Ricapitolo un attimo la questione in sintesi.
brother rilasciava solo due pacchetti rpm per configurare la stampante in questione:

Codice: Seleziona tutto

brhl2030lpr-2.0.1-1.i386.rpm 
cupswrapperHL2030-2.0.1-1.i386.rpm

Contengono dei binari a 32bit.
Adesso rilascia anche un pacchetto tarball coi sorgenti del "cupswrapper". Questo ci consente di ottenere un pacchetto cupswrapper compilabile anche per architettura a 64 bit. Tuttavia sembra sia necessario installare entrambi i pacchetti in quando gli script presenti nel secondo richiamano software che sta nel primo... Quindi è richiesta in ogni caso l'installazione del software presente nel primo pacchetto "brhl2030lpr-2.0.1-1-i386.rpm"... E siccome sono binari a 32bit per funzionare su un sistema a 64 bit hanno anche bisogno di qualche pacchetto multilib, nel caso di slackware 14.2 a 64bit ho installato i seguenti tre pacchetti reperiti dal repo di AlienBob:

Codice: Seleziona tutto

cups-compat32-2.1.4-x86_64-1compat32.txz
cups-filters-compat32-1.9.0-x86_64-2compat32.txz
glibc-solibs-2.23_multilib-x86_64-1alien.txz


Sia sulla documentazione debian, che sul repo AUR di arch si trovano tentativi di patch del contenuto dei pacchetti in modo da ottenere un pacchetto .deb o un .pkg.tar.xz coerenti e integrati rispetto alle "specifiche" debian e archlinux rispettivamente...
In altro topic Ansa89 mi ha suggerito uno slackbuild che replicasse le operazioni eseguite da un PKGBUILD AUR:
viewtopic.php?f=2&t=38880&p=347865#p347860

Tuttavia dopo aver aggiustato quello script in qualche punto e installato il tutto, il test della stampante fallisce. Non stampa.

Anche su LinuxQuestions l'utente "vonbiber" ha postato qualche slackbuild in grado di ripacchettizzare gli rpm brother per slackware, tuttavia non per il mio modello di stampante. Brother rilascia pacchetti fatti in modo diverso a seconda del modello di stampante.

Alla fine leggendo questo: https://github.com/illwieckz/debian_cop ... drivers.md
The LPD binaries have hardcoded paths (like /opt/brother or /usr/local/Brother), so its impossible to package them following the Debian Guidelines.

Ho realizzato che forse i precedenti tentativi di estrarre i files e metterli semplicemente nelle directory previste da slackware, potrebbero portare a binari brother non funzionanti, proprio perchè cercano files in percorsi fissi diversi da quelli in cui prevederebbe la logica slackware (o debian o arch.. il discorso vale anche per loro...).

Così ho fatto una prova molto molto semplice: lasciamo perdere i percorsi che siamo soliti utilizzare quando creiamo pacchetti per Slackware e semplicemente creiamo un pacchetto contenente gli RPM brother estratti brutalmente, con i files nelle directories da loro previste.
Ecco come appare il pacchetto installato:

Codice: Seleziona tutto

# cat /var/log/packages/brother-hl2030-2.0.1-i386-1hb
PACKAGE NAME:     brother-hl2030-2.0.1-i386-1hb
COMPRESSED PACKAGE SIZE:     32K
UNCOMPRESSED PACKAGE SIZE:     150K
PACKAGE LOCATION: ../brother-hl2030-2.0.1-i386-1hb.txz
PACKAGE DESCRIPTION:
brother-hl2030: brother-hl2030 proprietary drivers
brother-hl2030:
brother-hl2030: Released by Brother for printer models HL-2030 and HL-2035
brother-hl2030:
brother-hl2030: http://support.brother.com/
brother-hl2030:
brother-hl2030:
brother-hl2030:
brother-hl2030:
brother-hl2030:
brother-hl2030:
FILE LIST:
./
install/
install/slack-desc
usr/
usr/bin/
usr/bin/brprintconfiglpr2
usr/bin/brprintconflsr2
usr/lib/
usr/lib/libbrcomplpr2.so
usr/local/
usr/local/Brother/
usr/local/Brother/cupswrapper/
usr/local/Brother/cupswrapper/brcupsconfig3
usr/local/Brother/cupswrapper/cupswrapperHL2030-2.0.1
usr/local/Brother/inf/
usr/local/Brother/inf/brHL2030func
usr/local/Brother/inf/brHL2030rc
usr/local/Brother/inf/braddprinter
usr/local/Brother/inf/paperinf
usr/local/Brother/inf/setupPrintcap
usr/local/Brother/lpd/
usr/local/Brother/lpd/filterHL2030
usr/local/Brother/lpd/psconvert2
usr/local/Brother/lpd/rawtobr2
var/
var/spool/
var/spool/lpd/
var/spool/lpd/HL2030/

Come si vede avremo directories tipo /usr/local/Brother/ che non ovviamente non seguono la logica Slackware. Però alla fine, se è l'unico modo di far funzionare le cose, ci si può anche accontentare...
Il problema è che il pacchetto così creato, di suo non installa un paio di files necessari alla stampante:
- il file .PPD
- il filtro per cups richiamato nel file PPD sopra

Nel caso dei drivers per la 2030, Brother ha messo uno script bash che attraverso due "here documents" scrive i due files sopra. Questo script è il seguente file:

Codice: Seleziona tutto

/usr/local/Brother/cupswrapper/cupswrapperHL2030-2.0.1

come utente root va eseguito dopo aver installato il pacchetto e scrive i files seguenti:

Codice: Seleziona tutto

/usr/lib/cups/filter/brlpdwrapperHL2030
/usr/lib64/cups/filter/brlpdwrapperHL2030
usr/share/cups/model/HL2030.ppd

Quello script esegue poi qualche comando per riavviare il servizio CUPS e aggiungere la stampante con "lpadmin".
In fase di disinstallazione sarebbe pulito prevedere la rimozione anche di questi files.
Non posso escludere che eseguendo lo script in questione non vengano installati anche altri files qua e là, dovrei rileggermelo meglio.


Per concludere da questo test ho ottenuto delle stampe valide, alla massima qualità della stampante (ovvero 1200HQ). La guida che più si avvicina a questo test che ho fatto è la seguente:
https://docs.slackware.com/howtos:hardw ... stallation

TODO:
- Scrivere uno slackbuild per riprodurre la creazione del pacchetto a partire dagli RPM.
- Aggiungere qualche ritocco ai permessi dei files installati
- Aggiungere la possibilità di eseguire lo script automaticamente in fase di post installazione dell pacchetto (questo non lo so fare molto bene, dovrei gestirlo con uno script doinstall.sh?

Se avete qualsiasi consiglio sarebbe graditissimo, perchè non sono un pacchettizzatore abituale e sicuramente qualcuno potrà darmi utili suggerimenti.
So che ho scritto troppo, ma volevo spiegare bene anche i dettagli della situazione, anche per me stesso che nel giro di pochi giorni mi dimenticherei tutti...

Avatar utente
Blallo
Packager
Packager
Messaggi: 3298
Iscritto il: ven ott 12, 2007 11:37
Nome Cognome: Savino Liguori
Slackware: 14.2 / 12.2
Kernel: 4.4.14-smp
Desktop: DWM
Località: Torino / Torremaggiore (FG)
Contatta:

Re: Stampante Brother HL-2035

Messaggioda Blallo » mer ott 26, 2016 12:04

Se può servirti, io li ho sempre convertiti con alien: https://sourceforge.net/projects/alien-pkg-convert/
Li installi, riavvii il server cups e li installi dall'interfaccia web.

Mi pare servissero le multilib ma non ne sono sicuro.
Usavo su linux una brother HL-2030 e funzionavano da dio.

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 2922
Iscritto il: ven apr 27, 2007 11:21
Slackware: 14.2
Kernel: 4.4.38
Desktop: KDE-4.14.21

Re: Stampante Brother HL-2035

Messaggioda joe » mer ott 26, 2016 13:21

Grazie per la risposta!
Per quanto riguarda le multilib come ho scritto sopra, io su slack 64 ho installato i seguenti tre pacchetti:

Codice: Seleziona tutto

cups-compat32-2.1.4-x86_64-1compat32.txz
cups-filters-compat32-1.9.0-x86_64-2compat32.txz
glibc-solibs-2.23_multilib-x86_64-1alien.txz

E i drivers funzionano, nonostante siano coinvolti eseguibili a 32bit, segno che quei tre pacchetti sono sufficienti.
Inoltre ho creato uno slackbuild + slack-desc + doinst.sh per automatizzare sia la creazione del pacchetto che l'esecuzione dello script Brother che va a creare i files necessari (PPD e relativo filtro CUPS).
Ho testato il tutto e funzionare funziona. La stampante stampa, l'unica cosa da fare "a mano" dall'interfaccia web di CUPS, se si vuole è impostare la risoluzione massima per la qualità di stampa a 1200HQ.

Se volete darci un'occhiata, siccome personalmente non sono un esperto di SlackBuilds e pacchettizzazione in genere, trovate i files allegati a questa discussione su LinuxQuestions (metto il link al messaggio che contiene in allegato i tre files SlackBuild, slack-desc e doinst.sh):
https://www.linuxquestions.org/question ... ost5623114

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 2922
Iscritto il: ven apr 27, 2007 11:21
Slackware: 14.2
Kernel: 4.4.38
Desktop: KDE-4.14.21

Re: Stampante Brother HL-2035

Messaggioda joe » gio ott 27, 2016 16:06

Allego anche qui l'ultima versione dello slackbuild e degli altri files per creare il pacchetto slackware dei drivers per i modelli Brother HL-2030 e HL-2035.
Metto un tarball che ho caricato su dropbox pechè non riesco ad allegare più di tre files al messaggio:
https://www.dropbox.com/s/6mqm03is3i14f ... 030.tar.gz

In particolare Blallo se hai ancora a disposizione la stampante per testare direttamente i drivers così pacchettizzati.
Saluti! :)