MagicMirror-GBM-OS


Table of contents
  1. Specifiche
  2. Costruzione

Il MagicMirror-GBM è reso funzionale dal suo sistema operativo: MagicMirror-GBM-OS.

Puoi scrivere / flashare l’OS su una scheda SD pronta all’uso in un sistema Raspberry Pi usando il software Raspberry Pi Imager (https://www.raspberrypi.org/software/).

flash-using-raspberry-pi-imager.PNG


Specifiche

Ecco riportate le principali caratteristiche e requisiti essenziali:

  • Distribuzione: Raspberry Pi OS (32-bit)
  • Raspberry Pi: 3 o superiore
  • nodejs: v10.24.0
  • npm: v5.8.0
  • Storage Memory: minimo (rischioso) 8GB; minimo consigliato: 16GB
  • RAM: minimo 1GB
  • Nome Personale: pi
  • Nome PC: magicmirrorgbm
  • Nome utente: pi
  • Password: gbm
  • Internet configurations: none

Costruzione

Di seguito riportati i passaggi per costruire il MagicMirror-GBM-OS partendo da una distribuzione Raspberry Pi OS Full (32-bit) grezza. Parte delle seguenti istruzioni sono compatibili per costruire la MagicMirror-GBM-Emulation-VM. Esse sono indicate con: (+VM):

  1. SOLO (+VM): Installare tools vmware:

     sudo apt install open-vm-tools-desktop open-vm-tools
    
  2. Soddisfare la fase guidata di setup iniziale di Raspberry:

    1. Next

      1.png

    2. Imposta località

      2.png

    3. Imposta password

      3.png

    4. Next

      4.png

    5. Seleziona rete WIFI / Cablata

      5.png

    6. NON FARE L’AGGIORNAMENTO SOFTWARE (se lo fai, accertati di rispettare le versioni di nodejs e npm riportate nelle Specifiche sopra)

      6.png

    7. Puoi anche assegnare un nome personalizzato al dispositivo Raspberry (per essere individuato più facilmente nella rete)

      7.png

  3. Disattivare spegnimento automatico schermo Raspberry:

     cd \
    
     # Accesso al file "autostart"
     sudo nano /etc/xdg/lxsession/LXDE-pi/autostart
    

    Appendere (in coda) al contenuto del file:

     @xset s off
     @xset -dpms
    
  4. Installare nodejs (+VM):

     sudo apt install nodejs
    
  5. Installare npm (+VM):

     sudo apt install npm
    
  6. Installare npm-recursive-install (+VM):

     sudo npm i -g recursive-install
    
  7. Installare bcm2835:

     wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.52.tar.gz
     tar zxvf bcm2835-1.52.tar.gz
     cd bcm2835-1.52
     ./configure
     make
     sudo make check
     sudo make install
     cd \
    
  8. Installare raspotify:

     sudo curl -sL https://dtcooper.github.io/raspotify/install.sh | sh
    
  9. SOLO (+VM): Installare git:

     sudo apt install git
    
  10. Clonare repo AndreaGrandieri/MagicMirror-GBM nella dir ~ (+VM):

    git clone https://www.github.com/AndreaGrandieri/MagicMirror-GBM
    

    Effettuare il checkout alla release (versione) desiderata:

    cd MagicMirror-GBM/
    git checkout v.X.X -b v.X.X
    
  11. Installare electron (+VM):

    cd src/
    
    npm install electron --save-dev
    cd \
    
  12. Installazione LAMP (Linux, Apache, MySQL, PHP) (+VM):

    sudo apt install apache2
    sudo apt install mariadb-server
    sudo mysql_secure_installation
    

    mysql_secure_installation:

    Enter current password for root (enter for none): gbm
    Change the root password?: n
    Remove anonymous users: n
    Disallow root login remotely: n
    Remove test database and access to it: y
    Reload privilegies table now: y
    
    sudo apt install php libapache2-mod-php php-mysql
    

    Modifica della root di serving per Apache e rilascio consensi

    cd /etc/apache2/sites-available
    
    # Accesso al file "000-default.conf"
    sudo nano 000-default.conf
    

    Modificare l’opzione DocumentRoot nel file:

    DocumentRoot /home/pi/MagicMirror-GBM/src/ipdashboard
    

    Rilascio consensi:

    cd \
    cd /etc/apache2
    
    # Accesso al file "apache2.conf"
    sudo nano apache2.conf
    

    Modificare l’opzione <Directory /></Directory> nel file (dovrebbe trovarsi alla riga 153):

    <Directory />
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Require all granted
    </Directory>
    

    Installazione di sqlite:

    cd \
    sudo apt-get install php-sqlite3
    

    Riavviare il servizio apache2:

    sudo service apache2 restart
    
  13. Modifica dei sudoers, in modo tale da permettere l’interfaccia IP l’esecuzione di alcuni comandi che richiedono privilegi di admin (+VM):

    # Accesso al file: "sudoers"
    sudo visudo
    

    Appendere (in coda) al contenuto del file:

    www-data ALL = NOPASSWD: /sbin/reboot, /sbin/halt
    
  14. Fornisco permessi di scrittura file protetti all’interfaccia IP (+VM):

    sudo chown -R www-data:www-data /etc/default/raspotify
    sudo chmod -R g+w /etc/default/raspotify
    
    sudo chown -R www-data:www-data /etc/pulse/default.pa
    sudo chmod -R g+w /etc/pulse/default.pa
    
    sudo chown -R www-data:www-data /etc/wpa_supplicant/wpa_supplicant.conf
    sudo chmod -R g+w /etc/wpa_supplicant/wpa_supplicant.conf
    
    sudo chown -R www-data:www-data /home/pi/MagicMirror-GBM/src/ipdashboard/
        
    sudo chown -R www-data:www-data /home/pi/MagicMirror-GBM/src/config/config.js
    
    sudo chown -R www-data:www-data /home/pi/MagicMirror-GBM/src/modules/MMM-MD/public/content.md
    sudo chmod -R g+w /home/pi/MagicMirror-GBM/src/modules/MMM-MD/public/content.md
    
  15. Imposto dispositivo di default per output audio (OS + Raspotify) + configurazione denominazione cast service per Raspotify: https://github.com/AndreaGrandieri/MagicMirror-GBM/issues/76#issuecomment-827711074 https://github.com/AndreaGrandieri/MagicMirror-GBM/issues/228#issuecomment-828311332

    # Accesso al file "raspotify" (riferimenti utili: https://github.com/AndreaGrandieri/MagicMirror-GBM/issues/76#issuecomment-827711074)
    sudo nano /etc/default/raspotify
    

    Modificare l’opzione DEVICE_NAME nel file:

    DEVICE_NAME="MagicMirror-GBM-spotify-cast"
    

    Modifica l’opzione OPTIONS nel file:

    OPTIONS="--device hw:1"
    
    # Accesso al file "default.pa" (riferimenti utili: https://github.com/AndreaGrandieri/MagicMirror-GBM/issues/228#issuecomment-828311332)
    sudo nano /etc/pulse/default.pa
    

    Modifica l’opzione set-default-sink nel file:

    set-default-sink alsa_output.platform-bcm2835_audio.analog-stereo

  16. Riavviare il Raspberry (+VM):

    sudo shutdown -r now
    
  17. Eseguire installazione ricorsiva nella dir ~/MagicMirror-GBM/src con checkout del branch main (+VM):

    cd MagicMirror-GBM/src/    
    
    npm-recursive-install
    
  18. Impostare avvio automatico del servizio:

    sudo nano /etc/xdg/lxsession/LXDE-pi/autostart
    @npm run start --prefix /home/pi/MagicMirror-GBM/src/
    
  19. Rimozione informazioni personali (WIFI (SSID + password))

    Cancellare tutto il contenuto del seguente file:

    sudo nano /etc/wpa_supplicant/wpa_supplicant.conf