Frontend per avrdude; cerco consigli

Più tardi vedo qual'è il problema, clono in locale e avvio il build e vediamo che esce fuori.
Comunque l'errore deriva dal fatto che non trova il file di libreria che si trova in avrdudequi/lib/libhexedit.so.xx.x o simili.

Ciao.

MauroTec:
Più tardi vedo qual'è il problema, clono in locale e avvio il build e vediamo che esce fuori.
Comunque l'errore deriva dal fatto che non trova il file di libreria che si trova in avrdudequi/lib/libhexedit.so.xx.x o simili.

Ciao.

Non so, io ho rifatto un checkout ed un pul, poi ho ricompilato.

Si ho risolto, però ora il tuo ramo si è sporcato.

Se il repo che hai clonato non ti serve, cioè se non hai fatto modifiche ti consiglio di rimuovere la directory e clonare nuovamente il repo. Diversamente devi ripulire il tree o con make clean e vedere se funziona oppure è necessario ripulirlo a mano.

Per non riclonare:
$make clean
se non funziona devi ripulirlo a mano, cioè rimuovi tutti i file .o ui_.h moc_* qrc_* da avrdudequi/src/app
$ git branch
Controlla che il branch devel è marcato con *
$ git pull
$ qmake-qt4 -r CONFIG+=debug
cambiando CONFIG+=release non ci sono più messagi di debug
$ make

Poi avvii sempre con LD_LIBRARY. ecc.

Ciao.

Ricevo sempre errore su hexedit:

avrdudequi/app/avrdudequi: error while loading shared libraries: libhexedit.so.1: cannot open shared object file: No such file or directory

LD_LIBRARY_PATH=lib/ ;app/avrdudequi

Io uso questo comando avviato da dentro la dir in cui c'è il file .git

LD è il linker dinamico di GNU/Linux, esso cerca le librerie dentro un file in /etc/ld.so.conf (o alcune varianti ), oppure nelle directory standard /lib /usr/lib. Ma il linker cerca anche nel percorso specificato nella variabile ambiente LD_LIBRARY_PATH.

Se trovi ulteriori difficolta, prova:
export LD_LIBRARY_PATH=path

path può essere assoluto o relativo alla directory in cui ti trovi, però visto le difficoltà che hai incontrato meglio usare un path
assoluto. libhexedit.soecc si trovano nella directory lib contenuta nella directory di progetto dove c'è anche .git, cioè avrdudequi/lib. quindi supponendo che hai dato il comando di clone nella tua home dovresti scrivere:

$ export LD_LIBRARY_PATH=/home/userleo/avrdudequi/lib
ora il path è assegnato e puoi avviare l'eseguibile che si trova in es /home/userleo/avrdudequi/app/avrdudequi

Ovvio che "userleo" lo devi sostituire con il nome della tua home.

Fammi sapere se riesci ad avviare, se trovi altre difficolta, posta ciò che scrivi in shell.

Ciao.

ho scaricato nuovamente tutto. ho ricompilato.
poi dentro /avrdudequi (la dir che contiene le altre sottocartelle nonché .git) ho dato

LD_LIBRARY_PATH=lib/ ;app/avrdudequi

ma ottengo sempre questo:

app/avrdudequi: error while loading shared libraries: libhexedit.so.1: cannot open shared object file: No such file or directory

Aspetta che sto clonando nuovamente in un nuova finestra di shell, perchè finche non la chiudi mantiene la variabile LD_LIB..ecc.

echo $LD_LIBRARY_PATH

Risposta in shell:

lib/

Ora clono, passo al ramo devel, avvio qmake-qt4 e make e poi provo ad avviare, se tutto è apposto, creo un post con il contenuto della shell.

Ciao.

[user@localhost ~]$ cd Sviluppo/QtC++/git-avrdudequi-devel/clone-test/
[user@localhost clone-test]$ git clone git://gitorious.org/avrdudequi/avrdudequi.git
Cloning into avrdudequi...
remote: Counting objects: 429, done.
remote: Compressing objects: 100% (425/425), done.
remote: Total 429 (delta 235), reused 0 (delta 0)
Receiving objects: 100% (429/429), 259.99 KiB | 199 KiB/s, done.
Resolving deltas: 100% (235/235), done.
[user@localhost avrdudequi]$
[user@localhost clone-test]$ cd avrdudequi/
[user@localhost avrdudequi]$
[user@localhost avrdudequi]$ git checkout devel
Branch devel set up to track remote branch devel from origin.
Switched to a new branch 'devel'
[user@localhost avrdudequi]$ qmake-qt4 -r CONFIG+=debug
Reading /home/user/Sviluppo/QtC++/git-avrdudequi-devel/clone-test/avrdudequi/src/src.pro
 Reading /home/user/Sviluppo/QtC++/git-avrdudequi-devel/clone-test/avrdudequi/src/lib/lib.pro
  Reading /home/user/Sviluppo/QtC++/git-avrdudequi-devel/clone-test/avrdudequi/src/lib/hexedit/hexedit.pro
 Reading /home/user/Sviluppo/QtC++/git-avrdudequi-devel/clone-test/avrdudequi/src/app/app.pro
[user@localhost avrdudequi]$ make

....build completo, ultime due linee

make[2]: Leaving directory `/home/user/Sviluppo/QtC++/git-avrdudequi-devel/clone-test/avrdudequi/src/app'
make[1]: Leaving directory `/home/user/Sviluppo/QtC++/git-avrdudequi-devel/clone-test/avrdudequi/src'
[user@localhost avrdudequi]$
[user@localhost avrdudequi]$ 
[user@ocalhost avrdudequi]$ echo $LD_LIBRARY_PATH
/home/user/Sviluppo/QtC++/GCF-2.6.0-GPL-Source/bin:/home/user/Sviluppo/QtC++/GCF-2.6.0-GPL-Source/lib:/home/user/Sviluppo/QtC++/GCF-2.6.0-GPL-Source/bin:/home/user/Sviluppo/QtC++/GCF-2.6.0-GPL-Source/lib:

[user@localhost avrdudequi]$ app/avrdudequi 
app/avrdudequi: error while loading shared libraries: libhexedit.so.1: cannot open shared object file: No such file or directory
[user@localhost avrdudequi]$ 

[user@localhost avrdudequi]$ export LD_LIBRARY_PATH=lib/
[user@localhost avrdudequi]$ app/avrdudequi 
binPath "/home/user/Sviluppo/QtC++/git-avrdudequi-devel/clone-test/avrdudequi/app" 
dataPath "/home/user/Sviluppo/QtC++/git-avrdudequi-devel/clone-test/avrdudequi"

Quelle due righe sopra sono i messagi di debug, quindi a me il programma si avvia.

Ora posso supporre che:
La variabile LD_LIBRARY_PATH punta già a qualcosa di vitale, cioè non è vuota o come nel mio caso piena ma non punta a nulla di vitale. Per evitare problemi il comando cambia e diventa così:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/user/avrdudequi/lib

Ora LD_LIBRARY_PATH punta a ciò che puntava prima più l'ultimo percorso dopo il :

Ora puoi avviare il programma da qualunque directory, specificando il percorso avrdudequi/app/avrdudequi o entrando nella
dir avrdudequi/app/ e eseguendo ./avrdudequi

PS: non usare release perchè non l'ho provato e anche se non c'è alcun motivo per il quale non debba funzionare tu
usa debug come nel comando di shell che ho dato.

PS1: chiudi il terminale virtuale e aprilo nuovamente

Ciao.

Mi spiace, non riesco ad avviarlo.

avrdudequi/app/avrdudequi: error while loading shared libraries: libhexedit.so.1: cannot open shared object file: No such file or directory

u la peppa, com'è possibile, dopo tutta quella tiritera?

Vabbe posta un po di output da shell.

cd avrdudequi
ls lib
ls src/app
ls src/lib
echo $LD_LIBRARY_PATH
ldd app/avrdudequi

Il contenuto di LD_LIBRARY_PATH mi serve quello di default, quindi non midificarlo come nel post precedente

Ti allego uno script bash da mettere nella directory avrdudequi, cioè dove c'è il .git

devi renderlo eseguibile con

chmod +x app.sh

e poi lo avvii, da qualunque directory parti dovrebbe funzionare, almeno ho lavorato a tal fine con successo.

Ciao.

app.sh (280 Bytes)

Con il tuo script il programma parte.

Ti allego gli output che avevi chiesto:

[leo@leo-portatile avrdudequi]$ ls lib
libhexedit.so  libhexedit.so.1  libhexedit.so.1.0  libhexedit.so.1.0.0
[leo@leo-portatile avrdudequi]$ ls src/app
app.pro         device.h            editdialog.ui     fusewidget.cpp  lockbit.h  mtfusearray.cpp         programmer.h            runprocessdialog.h  udevqt.h
avrdudequi.cpp  devicenotifier.cpp  eepromeditor.cpp  fusewidget.h    main.cpp   mtfusearray.h           programmersettings.cpp  sysdevices.cpp      udevqt_p.h

avrdudequi.h    devicenotifier.h    eepromeditor.h    global.cpp      Makefile   programmer.cpp          programmersettings.h    sysdevices.h
avrdudequi.ui   devicenotifier_p.h  fusebyte.cpp      global.h        mcu.cpp    programmerdataview.cpp  resources               udevqtclient.cpp
device.cpp      device_p.h          fusebyte.h        lockbit.cpp     mcu.h      programmerdataview.h    runprocessdialog.cpp    udevqtdevice.cpp
[leo@leo-portatile avrdudequi]$ ls src/lib
hexedit  lib.pro  Makefile
[leo@leo-portatile avrdudequi]$ echo $LD_LIBRARY_PATH
lib/
[leo@leo-portatile avrdudequi]$ ldd app/avrdudequi
	linux-vdso.so.1 (0x00007fffd31fe000)
	libudev.so.1 => /usr/lib/libudev.so.1 (0x00007fd5d7207000)
	libhexedit.so.1 => not found
	libQtXml.so.4 => /usr/lib/libQtXml.so.4 (0x00007fd5d6fc5000)
	libQtGui.so.4 => /usr/lib/libQtGui.so.4 (0x00007fd5d6322000)
	libQtCore.so.4 => /usr/lib/libQtCore.so.4 (0x00007fd5d5e4b000)
	libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007fd5d5b48000)
	libm.so.6 => /usr/lib/libm.so.6 (0x00007fd5d584a000)
	libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007fd5d5635000)
	libc.so.6 => /usr/lib/libc.so.6 (0x00007fd5d5288000)
	libdl.so.2 => /usr/lib/libdl.so.2 (0x00007fd5d5084000)
	librt.so.1 => /usr/lib/librt.so.1 (0x00007fd5d4e7c000)
	/lib64/ld-linux-x86-64.so.2 (0x00007fd5d7418000)
	libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007fd5d4c60000)
	libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0x00007fd5d496a000)
	libpng15.so.15 => /usr/lib/libpng15.so.15 (0x00007fd5d473d000)
	libz.so.1 => /usr/lib/libz.so.1 (0x00007fd5d4527000)
	libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x00007fd5d426e000)
	libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0x00007fd5d4020000)
	libSM.so.6 => /usr/lib/libSM.so.6 (0x00007fd5d3e18000)
	libICE.so.6 => /usr/lib/libICE.so.6 (0x00007fd5d3bfc000)
	libXrender.so.1 => /usr/lib/libXrender.so.1 (0x00007fd5d39f1000)
	libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0x00007fd5d37b6000)
	libXext.so.6 => /usr/lib/libXext.so.6 (0x00007fd5d35a3000)
	libX11.so.6 => /usr/lib/libX11.so.6 (0x00007fd5d326a000)
	libpcre.so.1 => /usr/lib/libpcre.so.1 (0x00007fd5d3007000)
	libbz2.so.1.0 => /usr/lib/libbz2.so.1.0 (0x00007fd5d2df7000)
	libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0x00007fd5d2bf5000)
	libffi.so.6 => /usr/lib/libffi.so.6 (0x00007fd5d29ed000)
	libuuid.so.1 => /usr/lib/libuuid.so.1 (0x00007fd5d27e8000)
	libexpat.so.1 => /usr/lib/libexpat.so.1 (0x00007fd5d25be000)
	libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00007fd5d239f000)
	libXau.so.6 => /usr/lib/libXau.so.6 (0x00007fd5d219b000)
	libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00007fd5d1f95000)
[leo@leo-portatile avrdudequi]$ echo $LD_LIBRARY_PATH
lib/

Questo è strano, aprendo un nuovo terminale virtuale, quella variabile dovrebbe puntare a nulla e invece punta ad un percorso
relativo che ha senso solo se esegui il programma con app/avrdudequi.

È strano anche perchè l'ouput di "ldd" fa vedere che libhexedit.so.1 non viene trovata.

[leo@leo-portatile avrdudequi]$ ldd app/avrdudequi
	linux-vdso.so.1 (0x00007fffd31fe000)
	libudev.so.1 => /usr/lib/libudev.so.1 (0x00007fd5d7207000)
	libhexedit.so.1 => not found             !*!*!*! invece dovrebbe essere => /home/leo/avrdudequi/lib/libhexedit.so.1

L'appunto accanto a libhexedit è valido solo nel caso ha dato il comando git clone da dentro la tua home

Comunque l'importante che lo script lavori correttamente e dovrebbe lavorare anche se mandi in esecuzione lo script da una
directory diversa da avrdudequi, chessò dalla home o altro.

Per il resto gli altri output sono come me li aspettavo, tranne per il fatto che mi sono accorto di aver messo sotto
git dei file di test che comunque non vengono compilati, ma sporcano il repo.

Lo script lo aggiungo nel repo per comodità si avviare questo fintanto che il programma non viene installato nei percorsi
standard, poi ci pensa automaticamente il make install a fare tutto e il programma sarà avviabile come tutti gli altri.
Ci vorrebbe una icona e una voce nel menu per completare l'opera, mi sa che chiedo a pighxxx di fare una icona svg.

Come va la finestra sul portatile, e sempre troppo grande?
I caratteri nell'eprom editor sono troppo piccoli perchè il codice originale non prende le impostazioni del sistema, questa la metto tra le cose da fare.

Ciao e ancora grazie per i test, perché senza questi non sarei andato lontano e il programma avrebbe finito per lavorare solo nel mio computer.

Mauro in questi giorni vorrei ripristinare ubuntu sul mio PC. Se ti fa piacere posso provare anche io a farti un test. Purtroppo non sono sveglio come voi su linux, mi dici per passi come dovrei installare il tuo programma ?

Testato:
Mauro in questi giorni vorrei ripristinare ubuntu sul mio PC.

Non installare 12.10, metti la 12.04 lts.

MauroTec:

[leo@leo-portatile avrdudequi]$ echo $LD_LIBRARY_PATH

lib/



Questo è strano, aprendo un nuovo terminale virtuale, quella variabile dovrebbe puntare a nulla e invece punta ad un percorso 
relativo che ha senso solo se esegui il programma con app/avrdudequi.

Scusami. Ti ho postato l'output DOPO aver compilato.
Se stampo LIBRARY_PATH aprendo un terminale nuovo, quella variabile è vuota.

È strano anche perchè l'ouput di "ldd" fa vedere che libhexedit.so.1 non viene trovata.

[leo@leo-portatile avrdudequi]$ ldd app/avrdudequi
linux-vdso.so.1 (0x00007fffd31fe000)
libudev.so.1 => /usr/lib/libudev.so.1 (0x00007fd5d7207000)
libhexedit.so.1 => not found             !*!*!*! invece dovrebbe essere => /home/leo/avrdudequi/lib/libhexedit.so.1



L'appunto accanto a libhexedit è valido solo nel caso ha dato il comando git clone da dentro la tua home

No, git clone io lo do da dentro la cartella /avrdudequi.

Comunque l'importante che lo script lavori correttamente e dovrebbe lavorare anche se mandi in esecuzione lo script da una
directory diversa da avrdudequi, chessò dalla home o altro.

Difatti lo fa. Attualmente è in ~/desktop/avrdudequi e lo lancia senza problemi.

Come va la finestra sul portatile, e sempre troppo grande?

Sì, appena aperta sborda sul lato inferiore. Anche portandola in alto non riesco a farcela entrare tutta. Preciso che uso XFCE e che ho solo la barra in alto attiva (24 px) mentre quella in basso è nascosta.
Ma lo schermo mi pare sia un classico 1366x768 quindi in altezza non ho molti pixel.

Ciao e ancora grazie per i test, perché senza questi non sarei andato lontano e il programma avrebbe finito per lavorare solo nel mio computer.

E' il rischio che si corre quando si sviluppa, sul proprio PC si ha tutto il necessario, poi ti accorgi che dando il programma a qualcuno poi non gira o gira male :sweat_smile:

Testato:
Mauro in questi giorni vorrei ripristinare ubuntu sul mio PC.

Ho tolto Ubuntu perché non mi piaceva l'indirizzo che stava prendendo con la sua interfaccia utente, poco adatta all'uso sui desktop e più adatta all'uso su tablet.
Se comunque ti va di provare, scaricati l'ISO della distribuzione e scrivila su una chiavetta USB. Poi avvii Ubuntu in modalità grafica. Se ti piace, c'è il tool di installazione che permette anche di crearti una partizione accanto a Windows per installare Linux. Un consiglio spassionato che ti do: prima di fare questa operazione, da Windows lancia un defrag in modo da compattare tutti i file nella parte bassa del disco, e non avere così roba a giro che, una volta partizionato, perdi per sempre.

Con Ubuntu non ho esperienze dirette recenti, quindi non posso darti suggerimenti precisi.
Dovrebbe bastare eseguire l'installazione del pacchetto qtcreator, il quale si tira gli altri pacchetti,
cioè build-essential, qt4-dev-tools ecc. Di default il pacchetto udev-devel dovrebbe essere già installato, nel caso
mancasse il programma non potrebbe essere compilato e devi un po arrangiarti a trovare il nome del pacchetto
quasi da solo, perchè con precisione non so come si chiama (udev-dev, libudev-dev, systemd-devel).

L'installazione di qtcreator potrebbe tirarsi dietro anche git, ma lo escludo, per tanto devi installare anche il pacchetto "git"

In questo momento non posso aggiornare il repo per inserire lo script bash che serve per avviare il programma, pertanto dovrai scaricare lo script da qui Frontend per avrdude; cerco consigli - #67 by Maurotec - Generale - Arduino Forum
e seguire le ultime istruzioni di quel post, se hai difficolta chiedi.

Scrivo un procedura standard per scaricare il repo a partire dalla creazione delle directory come se iniziassi a lavorare su una distro appena installata. Tutte le operazioni vengono effettuate tramite un terminale virtuale su cui è avviata una bash di login, gnome e penso anche ubuntu chiama questo programma semplicemente "Terminale".

Il terminale mostra un prompt di comando il quale termina con carattere "$" ciò che ci sarà scritto prima sarà diverso da quello che appare nelle istruzioni seguenti. Il simbolo "~" dentro le quadre indica che la directory dell'utente $HOME è quella corrente.

Crea le directory

[user@localhost ~]$ mkdir -p devel/qtc++/git-avrdudequi

Cambia la directory corrente

[user@localhost ~]$ cd devel/qtc++/git-avrdudequi

Clona il repositor git in locale e poi cambia la directory corrente

[user@localhost git-avrdudequi]$ git clone git://gitorious.org/avrdudequi/avrdudequi.git
[user@localhost ~]$ cd avrdudequi

Attendere che il comando git termini con successo.

Cambia il ramo corrente, passa da origin a devel, ciò che segue dovrebbe essere simile a ciò che accadrà nella vostra shell

[user@localhost avrdudequi]$ git checkout devel
Branch devel set up to track remote branch devel from origin.
Switched to a new branch 'devel'

Ora siete pronti per avviare il processo di building, il quale è composto dalle fasi "prepare-project" e "build-project".
Preparare il progetto, può essere fatto in due modalità, una"debug" e/o "release". Non siamo in fase di rilascio per cui il modo debug è quello che si dovrebbe scegliere perchè nella shell di avvio il programma stampa dei messagi, cosa che non avviene nella modalità release, comunque seguono entrambe i comandi, usarene solo uno.

Prepare il progetti in modalità "release" ( occhio al parametro -r )

[user@localhost avrdudequi]$ qmake-qt4 -r CONFIG+=release

Prepare il progetti in modalità "debug" ( occhio al parametro -r )

[user@localhost avrdudequi]$ qmake-qt4 -r CONFIG+=debug

Avviare la fase build-project

[user@localhost avrdudequi]$ make

Se la fase di build termina con successo siete pronti per avviare il programma attraverso lo script app.sh
se questo file non è presente in /home/user/devel/qtc++/git-avrdudequi/avrdudequi lo dovete scaricare da qui:
Frontend per avrdude; cerco consigli - #67 by Maurotec - Generale - Arduino Forum e copiare dentro la directory
di progetto /home/user/devel/qtc++/git-avrdudequi/avrdudequi
Il file appena copiato lo si deve rendere eseguibile, questo lo si può fare anche usando il mouse, tramite le finestre di gnome o altro desktop environment. Segue la procedure per rendere eseguibile il file da comando shell.

Rende eseguibile lo script app.sh

[user@localhost avrdudequi]$ chmod +x app.sh

Adesso si può avviare il programma con:

[user@localhost avrdudequi]$ ./app.sh

oppure se si è scelta la modalità release:

[user@localhost avrdudequi]$ ./app.sh &

In questo caso dopo l'avvio potete chiudere la finestra del terminale.

Spero di non aver dimenticato nulla, eventualmente postate l'errore in shell. ah si per chi non è sveglio con la shell, il comando "ls" lista i file nella directory corrente, "cd /mio/path" cambia la dir corrente.

Ciao.

Come va la finestra sul portatile, e sempre troppo grande?

Sì, appena aperta sborda sul lato inferiore. Anche portandola in alto non riesco a farcela entrare tutta. Preciso che uso XFCE e che ho solo la barra in alto attiva (24 px) mentre quella in basso è nascosta.
Ma lo schermo mi pare sia un classico 1366x768 quindi in altezza non ho molti pixel.

Nel costruttore AvrDudeQui::AvrDudeQui(QWidget *parent) presente nel file avrdudequi c'è la seguente parte
finale:

   connect(ui->actionOpenHexProgram, SIGNAL(triggered()), this, SLOT(loadHex()));
    connect(ui->tbBrowseFile, SIGNAL(clicked()), this, SLOT(loadHex()));
    connect(ui->flashFile, SIGNAL(textChanged(QString)), this, SLOT(noEdit()));

    theMcu->loadEmptyWidget();

    resize(QSize(955,850));
    //connect(ui->splitter, SIGNAL(splitterMoved(int,int)), this, SLOT(splitterMoved(int,int)));
    connect(ui->actionWhat_s_This, SIGNAL(triggered()),this, SLOT(enterWhatThisMode()));

    initToolbar();

Cambia la riga resize(QSize(955,850)); in resize(QSize(800,600));

Comunque ora la puoi ridimensionare con il mouse prima no. Purtroppo i widget sono tanti e lo spazio e poco. Avrei potuto fare un tab per ogni fuse ma ho preferito avere la vista dei fuse insieme così da non dovere passare di tab in tab per essere sicuri di non aver commesso errori.

Ciao.

leo72:

Testato:
Mauro in questi giorni vorrei ripristinare ubuntu sul mio PC.

Se comunque ti va di provare, scaricati l'ISO della distribuzione e scrivila su una chiavetta USB.

intendo dire che non so come installare il sw di Mauro, non che non so installare Ubuntu sul mio quadriboot :slight_smile:
grazie Mauro per le info, vedo appena ho un attimo di farlo, metto la longterm come suggerito da astro