lunedì 10 marzo 2014

Ubuntu su MacBook Late 2007 A1151

Seguendo il post precedente ho provato ad installare Linux su una macchina Apple piu' recente ed in particolare un MacBook Late 2007 A1151.
Si tratta di due macchine completamente differenti in quanto l'A1151 e' praticamente un PC con un architettura Intel completa




L'installazione e' iniziata partizionando da Disk Utility (ovvero sotto OS X) il disco fisso per fare spazio alla partizione Linux ed alla Swap Linux.
A questo punto e' stato inserito un CD x86 32 bit di Ubuntu 12.04 ed e' stato effettuato il boot da CD tenendo premuto il tasto C in partenza. L'installazione e' avvenuta in modo identico a come si farebbe su normale PC. L'unica accortezza e' il posto dove salvare il grub che deve essere la partizione in cui e' stata installato Linux

A questo punto pero' Ubuntu non e' ancora avviabile in quanto e' neccario installare il software rEFind semplicemente scaricando il pacchetto e lanciando lo script ./install
Al successivo riavvio si mostrera' la schermata sottostante che permette di scegliere quale sistema avviare




Cosa non funziona subito:
ISight
La webcam non funziona di default con Ubuntu. Come indicato da questo link, Ho cercato su Google la parola AppleUSBVideoSupport, scaricato il file Isight.fw e successivamente installato il pacchetto

sudo apt-get install isight-firmware-tools

a questo punto si indica al programma dove trovare il file .fw e si riavvia.
A questo punto la webcam funziona normalmente

Trackpad
al termine dell'installazione il trackpad non sembra funzionare. In realta' il driver e' caricato ma sono sballate le configurazioni. E' sufficiente inserire nel file .bashrc i seguenti settaggi

synclient FingerLow=10
synclient FingerHigh=20

o valori simili a seconda del gusto per rendere utilizzabile il trackpad

Altri problemi
1) in alcuni casi non viene effettuato lo shutdown completo. L'utente deve spengere manualmente la macchina
2) in avvio in alcuni casi si ha il messaggio "impossibile montare la directory /tmp". Non ho capito cosa genera l'errore ma il sistema si avvia comunque normalmente

Documentario sui Frattali

Frugando su Internet ho trovato questo video ed e' stato un salto nel passato.
Correvano i primi anni 90 (non ricordo bene ma doveva essere 91-92) quando con due amici matematici lo comprammo via posta da LeScienze


Ci capii poco allora (come adesso) ma ricordo bene i tentativi di fare musica frattale con Olivetti M24 (e prima con un Commodore 64)

Target Mode su Mac

Ancora una volta mi sono trovato a dover passare dati tra il Mac Mini ed un altro computer.
In precedenza avevo utilizzato una Debian Box su cui avevo montato un FTP Server ed avevo scaricato i dati via rete mediante cavo cross (su PPC e' disponibile Transmission)

(ps sconsigliatissimo anche solo provare a copiare 100 Giga di dati usando dischi esterni USB)

Stavolta pero' il passaggio era Mac2Mac (da MacMini a MacBook late 2007) per cui ho voluto provare il trasferimento via cavo FireWire


Mediante il Target Mode e' possibile infatti che il computer sorgente dei dati venga avviato solo come se fosse un disco esterno. La procedura prevede di accendere la macchina target tenendo premuti i tasti CTRL+T. Se il comando e' riconosciuto a monitor si osserva l'icona dell'immagine sovrastante e compare una nuova unita' nel Finder

La velocita' di trasmissione e' stata di leggermente superiore ad 1Gigabyte/minuto

Nota bene: di solito non uso tastiera Apple connesse a Mac. Nel caso in esame, ho sempre utilizzato una tastiera Logitech Internet Navigator connessa al Mac Mini

Con questa tastiera mi e' stato impossibile entrare in Target Mode. Sostituendo con una tastiera USB con funzionalita' di base invece tutto ha funzionato

lunedì 3 marzo 2014

Linux su IBook A1054

Giusto per divertimento ho voluto provare a montare Linux su un IBook G4 A1054 che attualmente monta Mac OS X 10.4 e che svolge ancora decentemente il suo lavoro

Per rendere la cosa piu' semplice mi sono indirizzato su una distribuzione LUbuntu


Gia' dai primi passi iniziano i problemi. Il live CD entra in errore e stalla completamente con l'errore Fixing recursive fault but reboot is needed


Dopo qualche ricerca il sistema si e' avviato digitando al boot la seguente strina

live video=radeonfb:1024x768-32 snd-powermac.blacklist=yes

la prima parte rende utilizzabile X (altrimenti parte in modalita' 8 colori e l'installer si blocca) mentre la seconda risolve il problema sulla scheda audio che blocca il boot

Arrivati al momento di effettuare le partizioni si vede che non c'e' il supporto per il ridimensionamento delle partizioni HFS+. Sono ripartito sotto Mac OS X ed ho cercato di dividere il disco mediante Disk Utility ma con Mac OS X 10.4 non e' prevista questa opzione (presente sicuramente su 10.6)



Alla fine dei conti ne vale la pena formattare un disco di un calcolatore funzionante di cui non ho i dischi di reinstallazione (ho perso il DVD di installazione di 10.4) solo per provare una Ubuntu sicuramente poco supportata....diciamo di no. Mi sono tenuto il Mac funzionante con Os X anche se fa un certo effetto Linux anche su hardware Apple

giovedì 13 febbraio 2014

"Unable send data to printer" dopo aggiornamento

Dopo un aggiornamento di Cups ho perso il controllo della stampante Samsung ML-2160


L'unica soluzione che ho trovato e' stata quella di entrare nell'amministrazione di CUPS http://localhost:631/admin) e ricreare una nuova stampante. A questo punto e' stato possibile stampare ed eliminare la precedente stampante che risulta bloccata

lunedì 10 febbraio 2014

Kinect su Debian


Grazie ad un amico che e' passato su XBoxOne ho potuto provare la vecchia versione di Kinect da XBox360.

Per interagire con il dispositivo si deve usare (su computer non Windows) la libreria OpenKinect che ho compilato dai sorgenti mediante i comandi

apt-get install cmake libglut3-dev pkg-config build-essential libxmu-dev libxi-dev libusb-1.0-0-dev

git clone https://github.com/OpenKinect/libfreenect.git 
cd libfreenect
mkdir build
cd build
cmake .. 
make
sudo make install
sudo ldconfig /usr/local/lib64/

per verificare che il tutto funzioni si puo' lanciare il comando glview



Il sistema funziona ma l'aspetto piu' interessante e' quello delle interpretazioni delle gesture in modo da rendere veramente interattivo il kinect.
La soluzione piu' semplice e' quella di usare Processing con la libreria Simple OpenNI (che si installa dall'interno di Processing con il menu Sketch->Import Library->Add Library. Esistono molti esempi in questo campo ed anche un libro (sull'interazione tra Kinect ed Arduino) ma con la versione 2 della libreria gli sketch non sembrano funzionare ed e' bene usare gli esempi legati alla libreria scaricata)





Funziona tutto tranne il fatto che viene mostrato questo errore

Listening for transport dt_socket at address: 8276
libEGL warning: failed to create a pipe screen for i965
Smooth is not supported by this hardware (or driver)

per questo motivo non e' possibile vedere il tracking delle mani nel video sottostante (esempio Hands3D)


venerdì 7 febbraio 2014

Trasduttore lineare potenziometrico con Arduino Uno e ADS1115


La prova effettuata in questo post e' stata ripetuta con uno strumento della ditta Controls model 82 P0330, questo perche' il calibro centesimale e' specifico per questo strumento



Il trasduttore presenta un connettore a 6 poli come quello dello schema sottostante. Di fatto i poli utili sono solo 3 


e questa e' la pedinatura dei colori
5V = colore rosso
Segnale = marrone
GND = blu

lo strumento e' stato collegato ad una Arduino Uno mediante un ADC a 16 bit ADS1115
A differenza del precedente strumento il segnale oscilla tra 5 V (pistone completamente esteso) a 0 V (pistone completamente compresso)




lo sketch impiegato e' stato il seguente (gain a 2/3) vista l'uscita dello strumento
-----------------------------------------------
#include <Wire.h>
#include <Adafruit_ADS1015.h>

Adafruit_ADS1115 ads;  /* Use this for the 16-bit version */

void setup(void) 
{
  Serial.begin(9600);
  //                                                                ADS1015  ADS1115
  //                                                               -------  -------
  ads.setGain(GAIN_TWOTHIRDS);  // 2/3x gain +/- 6.144V  1 bit = 3mV      0.1875mV (default)
  // ads.setGain(GAIN_ONE);        // 1x gain   +/- 4.096V  1 bit = 2mV      0.125mV
  // ads.setGain(GAIN_TWO);        // 2x gain   +/- 2.048V  1 bit = 1mV      0.0625mV
  // ads.setGain(GAIN_FOUR);       // 4x gain   +/- 1.024V  1 bit = 0.5mV    0.03125mV
  // ads.setGain(GAIN_EIGHT);      // 8x gain   +/- 0.512V  1 bit = 0.25mV   0.015625mV
  // ads.setGain(GAIN_SIXTEEN);    // 16x gain  +/- 0.256V  1 bit = 0.125mV  0.0078125mV
  
  ads.begin();
}

void loop(void) 
{
  int16_t adc0, adc1, adc2, adc3;

  adc0 = ads.readADC_SingleEnded(0);
  Serial.print("AIN0: "); Serial.println(adc0);
  delay(100);
}

-----------------------------------------------

questa e' la tabella delle misure


Le misure erano stabili fino alle decine mentre le unita' non possono considerate rappresentative

Ed ecco i grafici (una serie in compressione, l'altra in distensione)



In conclusione si e' vista una ottima linearita' dei dati. Considerando che per un millimetro cambiano circa 2645 DN e dato che le unita' sono poco significative si puo' dire che la minima variazione letta con sicurezza e' 1mm/264 = 0.004 mm. Dato che il calibro e' di tipo centesimale si ha che il traduttore legge tranquillamente dati precisi al centesimo di millimetro

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...