Repository per materiale riguardante le Voting Machine SmartMatic date in comodato d'uso alle scuole della Lombardia
Emiliano Vavassori d11448a82c Aggiornate e aggiunte informazioni sull'audio. 1 year ago
README.md Aggiornate e aggiunte informazioni sull'audio. 1 year ago
fixes.sh Aggiunta script esterni. Migliore documentazione della parte audio. Fix dell'audio nello script. 1 year ago
isorespin.sh Aggiunta script esterni. Migliore documentazione della parte audio. Fix dell'audio nello script. 1 year ago
linuxium-install-broadcom-drivers.sh Aggiunta script esterni. Migliore documentazione della parte audio. Fix dell'audio nello script. 1 year ago

README.md

Materiale per le Voting Machine SmartMatic

Hardware

Le cosiddette Voting Machine sono, più correttamente, dei sistemi SmartMatic VIU-800 (Voter Identification Unit).

Alcune informazioni sull’hardware:

Avvio e utilizzo della piattaforma EFI

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 è smart?ecp.

In alternativa, come consigliato nella pagina sopra indicata, utilizzare il menù di GRUB di Ubuntu-GNOME per accedere alle impostazioni del firmware.

Dall’interno delle impostazioni del firmware è pressoché impossibile scegliere un dispositivo di boot differente da quelli già impostati; più semplice utilizzare EFI Shell (qualche istruzione per l’utilizzo qui), attendere il caricamento e puntare direttamente il file .efi contenuto nel dispositivo da avviare.

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:

blk1:
cd efi/boot
grubx86.efi

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 lspcilsusb (lo si può tuttavia vedere abbozzato utilizzando hwinfo). Il driver è nel kernel almeno dalla versione 4.9 in su (brcmfmac), ma necessita di alcuni file aggiuntivi che non vengono distribuiti con i firmware né con i driver del kernel;
  • 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).
  • Stampante termica: ND
  • Regolazione della luminosità: non funzionante con sistema nativo. Non sono stati effettuati altri test.

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

Linuxium

Il sito web Linuxium si presenta come una buona fonte di informazioni sul supporto con Linux delle piattaforme Intel 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).

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.

Altre risorse

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;
  • audio: sistema il file principale di PulseAudio per far funzionare l’audio. È necessario un riavvio per il corretto funzionamento;