lunedì 18 febbraio 2019

SmartMatic A4-210: le famigerate Voting Machine

Dopo litri e litri di mesi di assenza, ritorno a scrivere sul blog di un progetto che sto portando avanti per una scuola delle mie zone.
Ricordate le voting machine del referendum lombardo? Quelle per le quali si sono spesi un sacco di soldi, date poi in comodato gratuito alle scuole una volta "riconvertite" in normali tablet? Ecco quelle.
Rimosso il software e tutti i device per il voto, i signori della Smartmatic hanno installato Ubuntu 16.04 LTS, facendo qualche setup custom, visto le scarse dotazioni dell'oggetto, per renderlo usabile.
A parte gli ovvi problemi di aggiornamento (Ubuntu 16 anche se LTS non è proprio così recente), il problema fondamentale è che un sistema operativo così configuarato non è adatto a un uso scolastico: la tastiera on screen, le applicazioni sviluppate per desktop rendono l'uso macchinoso e quindi molto difficoltoso se si pensa a studenti con qualche disabilità.

L'alternativa Tablet-Friendly

Se si pensa a un device senza tastiera fisica con un touchscreen, l'alternativa a Ubuntu come sistema operativo è abbastanza scontata: Android. Nello specifico, essendo un sistema a 64bit, ho optato per Android-x86, uno dei porting del robottino su x86.

 Preparare USB

Prima di procedere con l'installazione è necessario preparare un supporto USB con l'immagine di installazione. Al momento in cui scrivo è presente nella sezione Download la versione 8.1 RC2 (oreo). Scaricata la .iso, da Windows è possibile utilizzare rufus per scrivere l'immagine su USB. Da Linux invece possiamo tranquillamente utilizzare dd.

Accesso al BIOS

Il device è equipaggiato con efi, per cui si deve predisporre il boot da lì.
Armiamoci di una tastiera usb da collegare, che ci servirà per premere CANC all'avvio e accedere al bios. La password è smart?ecp. Una volta entrati nell'ultima schermata si deve selezionare il boot da EFI.
Una volta lanciata la shell efi, col comando map si dovrebbe vedere, tra le varie voci, quella dell'usb (di solito fs1). Per lanciare il boot:
fs1:
cd \efi\boot\

BOOTx86.EFI
Partirà il bootmanager android che consente l'avvio come Live o l'installazione.

Ecco un video che spiega come fare:


Setup del wifi

La scheda wifi del device (una broadcom) necessita di un file di configurazione aggiuntivo che va copiato in /system/lib/firmware/brcm/
Il file si deve chiamare brcmfmac43430-sdio.txt (come il nome del modulo). Ecco quello originale recupato dall'installazione linux:

#AP6212_NVRAM_V1.0_20140814_WIN8.1
# 2.4 GHz, 20 MHz BW mode

# The following parameter values are just placeholders, need to be updated.
manfid=0x2d0
prodid=0x0726
vendid=0x14e4
devid=0x43e2
boardtype=0x0726
boardrev=0x1101
boardnum=22
macaddr=00:90:4c:c5:12:38
sromrev=11
boardflags=0x00404201
xtalfreq=26000
nocrc=1
ag0=255
aa2g=1
ccode=CN

pa0itssit=0x20
extpagain2g=0

#PA parameters for 2.4GHz, measured at CHIP OUTPUT
pa2ga0=-168,7161,-820
AvVmid_c0=0x0,0xc8
cckpwroffset0=5

# PPR params
maxp2ga0=90
txpwrbckof=6
cckbw202gpo=0x5555
legofdmbw202gpo=0x77777777
mcsbw202gpo=0xaaaaaaaa

# OFDM IIR :
ofdmdigfilttype=7
# PAPD mode:
papdmode=2

il0macaddr=00:90:4c:c5:12:38
wl0id=0x431b

#OOB parameters
hostwake=0x40
hostrdy=0x41
usbrdy=0x03
usbrdydelay=100
deadman_to=0xffffffff
# muxenab: 0x1 for UART enable, 0x10 for Host awake
#muxenab=0x10
# CLDO PWM voltage settings - 0x4 - 1.1 volt
#cldo_pwm=0x4
glitch_based_crsmin=1

#sd_oobonly=1
sd_gpout=0
sd_gpval=1
sd_gpdc=0
Dopo aver creato sulla USB il file di testo con la configurazione della scheda wifi (brcmfmac43430-sdio.txt), ad esempio nella directory /wifi, procediamo a installarlo sul sistema.
Si va in console con Ctrl+Alt+F1.
cd /storage/
dovrebbe esserci una directory con un numero di serie (es F654-DAB8) o un nome che identifica la chiavetta USB (questo dipende dalla chiavetta).
cd F654-DAB8/wifi/
cp brcmfmac43430-sdio.txt /system/lib/firmware/brcm/
reboot
Il Tablet a questo punto si riavvia e tutto dovrebbe funzionare a dovere!

10 commenti:

  1. Buongiorno, la ringrazio per la spiegazione. Volevo essere sicuro di aver scaricato la versione corretta di Android...
    Quindi le chiedo se la versione corretta è quella a 64 bit nello specifico:
    android-x86_64-8.1-r2.iso
    859MB per capirci...

    RispondiElimina
  2. Buongiorno sono un Prof. delle superiori di Milano.
    Anch'io sto smanettando con queste macchinette.
    Lei ha una casistica degli utilizzi scolastici? Noi ne avevamo una ventina in magazzino e adesso siamo alla ricerca di idee e knowhow.
    Io su una sono riuscito a installare un windows 10 compattato, ma non mi funziona bene il touch, su un'altra mi si è bloccato il BIOS e non so come ricaricarlo....

    RispondiElimina
  3. E su una, anche grazie a quest'articolo, ho installato Android. Adesso scaricherei l'app del registro elettronico e proverei a usarla in una classe in modo sperimentale

    RispondiElimina
  4. ho provato ad installare android su smartmathic...tutto ok, ma il quando vado ad installare il firmware delle rete non mi compare nessuna chiavetta usb, nonostante sia presente nella console...non riesco a capire perchè....

    RispondiElimina
    Risposte
    1. ciao! credo di aver già risposto su YouTube, comunque il discorso è che in /storage/ compare una folder con un nome che dipende dalla label del disco usb. Nel mio caso era un numero di serie. Se non si sa come viene montata, basta dare un 'ls /storage/'

      Elimina
  5. Fatto tutto,android installato chiave non rimossa,cd/storage/ mi risponde not found, come risolvo?

    RispondiElimina
  6. si può ripristinare il Bluetooth come il wifi?

    RispondiElimina
    Risposte
    1. Ciao! Il bluetooth funzionicchia, nel senso che vedo i device, fa il pairing ma ha qualche problema, ad esempio con l'audio

      Elimina
  7. Ciao, grazie! fatto tutto ok. Per il bluetooth si può fare qualcosa o è impossibilie ?

    RispondiElimina
    Risposte
    1. Non saprei. Magari con un adattatore bluetooth USB?

      Elimina