2018-04-23 22:59:00 +02:00
# Materiale per le Voting Machine SmartMatic #
2018-04-24 00:11:45 +02:00
## Hardware ##
Le cosiddette Voting Machine sono, più correttamente, dei sistemi SmartMatic
VIU-800 (Voter Identification Unit).
Alcune informazioni sull'hardware:
* [Pagina della CPU su sito Intel ](https://ark.intel.com/it/products/87383/Intel-Atom-x5-Z8300-Processor-2M-Cache-up-to-1_84-GHz )
* [FCC-ID: Materiale su VIU-800 ](https://fccid.io/2AGVK-VIU-800 )
* [FCC-ID: Disassemblamento del VIU-800 ](https://fccid.io/2AGVK-VIU-800/Internal-Photos/Internal-photos-3266464.html );
* [Pagina del dispositivo su SmartMatic ](http://www.smartmatic.com/voting/hardware/detail/viu-800/ )
2018-04-24 00:37:22 +02:00
* [Pagina di Scuola Linux sulle Voting Machine ](http://wiki.scuola.linux.it/doku.php?id=voting_machine_lombardia )
2018-04-24 00:11:45 +02:00
2018-04-24 00:37:22 +02:00
## Avvio e utilizzo della piattaforma EFI ##
2018-04-24 00:11:45 +02:00
2018-04-24 00:37:22 +02:00
Si può accedere direttamente alla configurazione del firmware della VM
utilizzando il tasto **Canc** di qualsiasi tastiera collegata via USB. Dopo
essere entrato nel firmware, il sistema è preimpostato con una password, che,
come riportato dal [Wiki Scuola Linux ](http://wiki.scuola.linux.it/doku.php?id=voting_machine_lombardia ) è `smart?ecp` .
2018-04-23 22:59:00 +02:00
2018-04-24 00:37:22 +02:00
In alternativa, come consigliato nella pagina sopra indicata, utilizzare il
menù di GRUB di Ubuntu-GNOME per accedere alle impostazioni del firmware.
2018-04-23 22:59:00 +02:00
2018-04-24 00:37:22 +02:00
Dall'interno delle impostazioni del firmware è pressoché impossibile scegliere
un dispositivo di boot differente da quelli già impostati; più semplice
2018-04-24 00:53:55 +02:00
utilizzare *EFI Shell* (qualche istruzione per l'utilizzo
[qui ](https://downloadmirror.intel.com/16018/eng/EFI_Deployment.pdf )),
attendere il caricamento e puntare direttamente il file `.efi` contenuto nel
dispositivo da avviare.
2018-04-23 22:59:00 +02:00
2018-04-24 00:37:22 +02:00
Per esempio, se sto utilizzando una chiavetta USB (dispositivo esterno) per
effettuare il boot con un'altro sistema operativo, dovrò accedere al
dispositivo **blk1** e poi navigare fino al percorso dove esiste il file .efi:
2018-04-23 22:59:00 +02:00
2018-04-24 00:37:22 +02:00
blk1:
cd efi/boot
grubx86.efi
2018-04-23 23:13:03 +02:00
2018-04-24 00:37:22 +02:00
Personalmente, ho eseguito almeno 4 sistemi operativi differenti (tutti
necessariamente con supporto EFI, l'avvio in modalità *legacy* **non** è supportato).
## Stato del supporto hardware per GNU/Linux ##
La piattaforma hardware ha alcuni grossi problemi anche su Linux.
Fondamentalmente, non sono supportati kernel precedenti alla versione 4.11;
anche versioni più aggiornate hanno necessità di essere configurate
manualmente con alcuni file/driver aggiuntivi per permettere al sistema di
utilizzarli correttamente.
In particolare, parliamo dei seguenti dispositivi:
* Scheda wireless: il chipset è Broadcom 43430 su bus SDIO, quindi non compare
nell'output di `lspci` né `lsusb` (lo si può tuttavia vedere abbozzato
utilizzando `hwinfo` ). Il driver è nel kernel almeno dalla versione 4.9 in su
2018-04-24 00:47:04 +02:00
(`brcmfmac`), ma necessita di alcuni [file
aggiuntivi](http://jwrdegoede.danny.cz/brcm-firmware/) che non vengono
2018-04-24 00:37:22 +02:00
distribuiti con i firmware né con i driver del kernel;
2018-05-05 20:50:45 +02:00
* Scheda audio: il chipset è Realtek 5645, il driver è nel kernel
(`snd_soc_rt5645`) ma viene caricato assieme ad un altro e sia alsa chee
PulseAudio non sono in grado di utilizzarlo correttamente. È necessario
caricare l'uno e blacklistare l'altro, quindi configurare correttamente il
dispositivo di output da PulseAudio (si veda parte sottostante).
2018-04-24 00:47:04 +02:00
* Stampante termica: ND
* Regolazione della luminosità: non funzionante con sistema nativo. Non sono
2018-04-30 23:10:19 +02:00
stati effettuati altri test.
2018-04-23 23:13:03 +02:00
2018-05-05 20:50:45 +02:00
## Attivazione dell'audio ##
Il kernel `linux` in versione 4.15 ha internamente i driver per la scheda
audio integrata (il chipset è Realtek 5645 e il driver relativo è
`snd-soc-rt5645` ), ma viene caricato contemporaneamente ad un altro driver
(che sfortunatamente ha la priorità) la quale scheda non è presente a sistema
e pertanto non funziona correttamente.
È pertanto possibile correggere il funzionamento della scheda audio
effettuando le seguenti modifiche:
* Nel file `/etc/modules` , che indica quali driver del kernel caricare
all'avvio, forzare il caricamento del driver `snd_soc_rt5645` :
```
echo 'snd_soc_rt5645' | sudo tee -a /etc/modules
```
* Nel file `/etc/modprobe.d/blacklist.conf` , aggiungere un'esclusione per il
driver confliggente:
```
cat < EOF | sudo tee -a / etc / modprobe . d / blacklist . conf
# Blacklisto il driver intel hdmi
blacklist snd_hdmi_lpe_audio
EOF
```
* Riavviare il sistema;
* Dopo il riavvio, accedere al pannello di configurazione dell'audio (clic
sinistro, *Mixer audio* oppure a linea di comando lanciando il comando
`pavucontrol` ) e selezionare come dispositivo di output per la riproduzione
*Speaker* (con gli altri canali non funziona).
2018-04-24 00:11:45 +02:00
## Linuxium ##
2018-04-23 23:13:03 +02:00
2018-04-24 00:37:22 +02:00
Il sito web [Linuxium ](http://linuxiumcomau.blogspot.com/ ) si presenta come
una buona fonte di informazioni sul supporto con Linux delle piattaforme Intel
2018-04-30 23:10:19 +02:00
Cherry Trail (Atom Z8500). L'autore ha lavorato su diversi fix per i
principali problemi segnalati sopra e ha preparato uno script (`isorespin.sh`)
per *patchare* l'immagine ISO di installazione di diversi sistemi Ubuntu-based
(anche Mint).
2018-05-05 20:50:45 +02:00
Utilizzando lo script indicato con l'immagine iso di Xubuntu 18.04 LTS «Bionic
Beaver» a 64 bit, l'unico risultato che si ottiene è quello di avere la scheda
wireless funzionante già dall'installazione.
2018-04-24 00:37:22 +02:00
2018-05-05 20:50:45 +02:00
## Altre risorse ##
2018-04-24 00:37:22 +02:00
2018-04-24 00:47:04 +02:00
* [Linuxium `isorespin.sh` script ](http://linuxiumcomau.blogspot.com/2018/04/latest-improvements-to-isorespinsh.html ): aggiunge supporto per Intel Cherry Trail, su cui si basa la VM alle distro Ubuntu-based e Mint;
2018-04-24 00:11:45 +02:00
* [Documentazione dello script `isorespin.sh` ](http://linuxiumcomau.blogspot.com/2017/06/customizing-ubuntu-isos-documentation.html )
2018-04-24 00:47:04 +02:00
* [File dei firmware per BCM43430 ](http://jwrdegoede.danny.cz/brcm-firmware/ )
2018-04-24 00:37:22 +02:00
* [Repository dei fix per l'audio ](https://github.com/plbossart/UCM )
2018-04-30 23:10:19 +02:00
* [Repository per i fix BlueTooth ](https://github.com/lwfinger/rtl8723bs_bt )
2018-04-24 00:37:22 +02:00
## Fix personali per Ubuntu ##
Eseguire lo script come segue:
sudo bash fixes.sh < oggetto >
Dove `<oggetto>` può essere uno dei seguenti fix:
* `wireless` : scarica il file mancante che istruisce il firmware a caricarsi,
quindi scarica e ricarica il modulo del kernel;
2018-04-30 23:10:19 +02:00
* `audio` : sistema il file principale di PulseAudio per far funzionare
l'audio. È necessario un riavvio per il corretto funzionamento;