martedì 15 gennaio 2013

Errore su punto di ingresso Qt4Core.dll

Una volta scritta e testata una applicazione in Qt su Windows ho voluto provare a fare una build release per provare a lanciare direttamente il file eseguibile dall'esterno dell'ambiente di sviluppo

Il risultato e' stato a dir poco scoraggiante "Impossibile trovare il punto di ingresso della procedura nella libreria a collegamento dinamico QtCore4.dll"


Dopo qualche ricerca su Internet ho trovato che il problema deriva dal fatto che il fatto eseguibile cerca di eseguire una Dll QtCore4 differente da quella con cui e' stato compilato all'interno dell'ambiente di sviluppo

Certo che imbroccare quale sia la libreria QtCore4.dll che crea confusione e quale sia l'ordine preciso con cui Windows elegge la prima della lista e' piuttosto problematico e non e' possibile tentare un approccio di tipo try and test (sospetto comunque che sia quella legata a Python)

Elenco delle librerie QtCore4.dll installate sul mio sistema

Ovviamente questo problema non si presenta in Linux :>>>

Creare eseguibile da QT/QML

I programmi scritti in QtQuick sono visibili all'interno di Qmlviewer
C'e' pero' la possbilita' di creare delle applicazioni stand-alone creando una applicazione Qt che di fatto e' un viewer per QtQuick

questa procedura e' resa automatica all'interno di Qt SDK creando un Nuovo progetto e selezionando Qt Quick Application.


Al termine della procedura guidata viene chiesto di selezionare il file qml di interesse (o di crearne uno nuovo)


Viene cosi' creato in automatico un progetto che ha come funzione main la seguente
----------------------------------

#include <QtGui/QApplication>
#include "qmlapplicationviewer.h"

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    QmlApplicationViewer viewer;
    viewer.setOrientation(QmlApplicationViewer::ScreenOrientationAuto);
    viewer.setMainQmlFile(QLatin1String("qml/gg/gg.qml"));
    viewer.showExpanded();

    return app.exec();
}


----------------------------------
si vede chiaramente il funzionamento del programma e dove viene referenziato il file qml

Montare SD Card su Linux



in alcuni casi il montaggio automatico di una SD Card su Linux non funziona
si procede quindi assicurandosi di avere il modulo installato mediante

modprobe mmc_block

a questo punto si inserisce la SD Card nel lettore e leggendo le ultime righe di /var/log/messages si deve trovare qualcosa del tipo

mmcblk0:mmc0:ebaf SR01G 945 MiB
mmcblk0: p1

in particolare si deve fare attenzione alla seconda riga
a questo punto

mkdir /media/sdcard
mount -t vfat /dev/mmcblk0p1 /media/sdcard

dove il nome del device e' composto dalla somma di mmcblk0 e p1 come indicato in /var/log/messages (ovviamente tali valori possono mutare a seconda delle impostazioni)

IBM X40

Mi sono comprato usato un IBM X40 2371-67U...ed ho violato la legge che dice di non comprare mai computer usati ma riceverli solo come regalo.
La spesa di 150 euro e' ridicola ai 2200 euro necessari nel 2004 per comprare la macchina nuova ma purtroppo il portatile e' molto rovinato dato che

  • ha battuto almeno una volta con lo spigolo anteriore destro
  • connettendo l'alimentazione si sente un sinistro sibilo che scompare solo dopo aver aggeggiato sul connettore
  • l'hard disk ha diversi settori rotti ed emette qualche click (si consideri che questa macchina utilizza dei quasi introvabili dischi da 1.8 pollici per cui la riparazione e' piuttosto difficile)
  • lo schermo occasionalmente lampeggia
  • la tastiera non e' italiana
  • solo 512 Mb di Ram (mi e' stato venduto per un 1 Giga ma quando lo ho aperto e' risultato chiaro che non e' espandibile....256 Mb sono saldati alla scheda madre)
pero' cosa dire di
  • uno schermo da 12.1 pollici con risoluzione XGA (dimensione praticamente perfetta)
  • un peso di 1.2 Kg
  • uno chassis con materiali al magnesio per aumentare resistenza e diminuire il peso
  • una tastiera IBM e quindi fantastica
  • una porta Ethernet da Gb ed un ingresso per SD Card (quando e' uscito era il 2004 e tale dotazione era letteralmente fantascienza)
  • una durata della batteria di oltre 4 ore reali
  • disco da 40 gb (un lusso all'epoca)
  • Pentium M Centrino da 1.2 GHz (Cpu Family 6 Model 9 Stepping 5 1196 BogoMips)
Tra le curiosita' c'e' una porta speciale che assomiglia ad una USB per connettere un disco ottico esterno in formato proprietario




Ho provato in prima istanza ad installare una CrunchBang, tutto e' andato a buon fine e tutto l'hardware e' stato riconosciuto al volo. Purtroppo i repository di CrunchBang non sono granche' ed in fondo se voglio una Debian e' bene che installi una Debian e poi la personalizzi

Quindi sono passato ad un Debian Testing con XFCE e sono ovviamente iniziati i problemi
La scheda di rete wireless, una Intel 2000 Pro, non e' configurata in fase di installazione a causa di firmware proprietari per cui dopo aver installato il sistema di devono aggiungere i repository contrib non-free e poi si aggiorna il sistema come segue

apt-get update
apt-get install firmware-ipw2x00
modprobe ipw2100

Una volta installato stranamente si e' spenta la retroilluminazione (che puo' essere riattivata con il tasto FN e Home ed End)

Per finire fighissima la combinazione FN+PgUp che accende una lucetta che illumina la tastiera per la scrittura al buio





lunedì 14 gennaio 2013

Hacking IRig per Ipod Touch 2 Gen

Mi sono comprato su un sito cinese l'IRig, un connettore che permette di utilizzare l'Ipod Touch/IPhone come Stomp Box ed amplificatore per chitarra utilizzando il software Amplitube. L'affare era conveniente perche', spese di spedizione inclusa, il costo e' stato di circa 1/3 inferiore a quello di negozio

IRig
Il problema e' che una volta collegata al mio IPod Touch il software non riconosceva l'ingresso microfonico a cui e' attaccata di fatto la chitarra
Lasciata passare una notte di pensatoio ho inserito il jack di un auricolare di un telefono Samsung ed improvvisamente il software ha individuato il nuovo ingresso...era rotto l'IRig????

dal confronto della foto sottostante si vede che il jack dell'IRig (a sinistra) e dell'auricolare (a destra) sono differenti e considerando la curvatura dello chassis dell'Ipod Touch questo poteva dare qualche problema

Confronto tra jack (notare la differente lunghezza della parte metallica)
Mi sono dotato quindi di un taglierino ed ho tagliato circa 3 mm di plastica al jack dell'IRig (fortunatamente la plastica e' di tipo morbido e quindi non ci sono stati problemi)


Una volta collegato l'IRig modificato all'Ipod Touch l'ingresso della chitarra viene riconosciuto con la richiesta se utilizzare le cuffie o lo speaker dell'Ipod



Ed ecco alla fine il tutto assemblato

All'interno di un IPod 5 Generazione

Mi e' stato regalato, ovviamente rotto, un Ipod Video 5 generazione (A1136) da 30 Gb peraltro gia' aperto da qualcuno nella speranza di capirci qualcosa

Ovviamente non emette segni di vita ad eccezione di un lampeggio al momento di connettere l'alimentazione.
E' comunque una occasione per vedere cosa c'e' dentro
La maggior parte dello spazio e' occupata dall'hard disk e ci sono tre flat cable di lunghezza tale che non e' possibile esporre completamente l'interno senza disconnetterli
Il sistema di aggancio dei gusci e' completamente a scatto

Il posteriore

L'elettronica di controllo interna

Hard Disk

Visione Frontale (ampiamente graffiata)

La batteria con il suo circuito di controllo

Giusto per avere un'idea delle dimensioni dello schermo metto per confronto la foto del mio funzionante A1059 (Ipod 4° generazione da 20 Gb) modello U2





giovedì 10 gennaio 2013

Errore session bus in Debian con utente root

Mi e' capitato, usando l'utente root da shell e lanciando un programma (nello specifico Gedit) di incorrere nell'errore sotto riportato
----------------------------------------------

root@debian:/var/www/hello/touch# gedit 

** (gedit:3364): WARNING **: Could not connect to session bus
----------------------------------------------

come indicato qui la soluzione consiste nell'utilizzare il comando (da utente normale)

gksu gedit

dato che l'utente root non puo' utilizzare una sessione grafica

Debugger integrato ESP32S3

Aggiornamento In realta' il Jtag USB funziona anche sui moduli cinesi Il problema risiede  nell'ID USB della porta Jtag. Nel modulo...