Outils pour utilisateurs

Outils du site


debian:nanopineo_vanilla

Armbian (vanilla kernel) sur NanoPi NEO

  • Créer un lecteur de musique UPnP OpenHome et AirPlay sur NanoPi NEO.
  • Suivre le README.md (ou Building Armbian) pour créer l'image (par exemple dans une machine virtuelle “Ubuntu Xenial 16.04 x64”). Les options utilisées sont
    choose an option -> "Full OS image for writing to SD card"
    choose a board -> "nanopineo"
    choose a kernel -> "dev"
    choose a release -> "jessie"
    choose image type -> "Image with console interface"
    • Mettre KERNEL_CONFIGURE=“yes” dans compile.sh pour accéder à la configuration du noyau avant la compilation (par exemple, pour activer schedutil).
  • Copier l'image sur une carte microSD
    sudo dd bs=4M if=Armbian_5.21_Nanopineo_Debian_jessie_4.7.6.img of=/dev/sdb
    sudo sync
  • :!: Je n'utilise que le compte root, toutes les commandes ci-dessous sont exécutées sous root !
  • ALSA config :
     cat /proc/asound/cards
     1 [U20X1          ]: USB-Audio - USB Audio 2.0(X1)
                          Singxer USB Audio 2.0(X1) at usb-1c1d000.usb-1, high speed
     

    Créer /etc/asound.conf avec les lignes :

    pcm.!default {
            type hw
            card 1
    }
    
    ctl.!default {
            type hw
            card 1
    }

    On a deux contrôles de volume sonore dans l'interface Singxer X1 : alsamixer_x1_armbian_vanilla

  • UpMpd (UPnP audio player) :
    • MPD :
      apt-get install mpd

      et remplacer le contenu de /etc/mpd.conf par ces lignes

      audio_output {
              type "alsa"
              name "Interface USB/SPDIF XMOS"
              device "plughw:1,0"
              #mixer_type "none"   <--- soit cette ligne (ne pas utiliser hardware volume contrôle), soit les 4 lignes suivantes (utiliser hardware volume contrôle)   
              mixer_type "hardware"
              mixer_device "hw:1"
              mixer_control "USB Audio 2.0(X1) "  <-- un espace à la fin (voir plus bas explication)
              mixer_index "1"    <--- cela signifie utiliser le deuxième contrôle, la deuxième barre dans la copie d'écran plus haut. 
      }
      • Vérification du bon fonctionnement de MPD : systemctl status mpd
      • Le hardware volume contrôle configuré dans mpd.conf permet aux application de pilotage sur smartphone/tablette de contrôler le volume sonore.
      • :!: Note : La commande amixer donne (voir aussi la copie d'écran de alsamixer plus haut)
        root@nanopineo:~# amixer 
        Simple mixer control 'Singxer Internal Clock Validity',0
          Capabilities: pswitch pswitch-joined
          Playback channels: Mono
          Mono: Playback [on]
        Simple mixer control 'USB Audio 2.0(X1) ',0
          Capabilities: pvolume pswitch
          Playback channels: Front Left - Front Right
          Limits: Playback 0 - 127
          Mono:
          Front Left: Playback 127 [100%] [0.00dB] [on]
          Front Right: Playback 127 [100%] [0.00dB] [on]
        Simple mixer control 'USB Audio 2.0(X1) ',1
          Capabilities: pvolume pvolume-joined pswitch pswitch-joined
          Playback channels: Mono
          Limits: Playback 0 - 127
          Mono: Playback 127 [100%] [0.00dB] [on]

        On remarque la ligne Simple mixer control 'USB Audio 2.0(X1) ',1 pour contrôler le volume. Le nom est USB Audio 2.0(X1) avec un espace à la fin ! Il faut faire attention dans la config de MPD.

    • Upmpdcli : Compiler upmpdcli avec les sources pour debian.
      • Activer les sources : Créer un fichier /etc/apt/sources.list.d/upmpdcli.list contenant une ligne
        deb-src http://www.lesbonscomptes.com/upmpdcli/downloads/debian/ unstable main

        et ensuite

        gpg --keyserver pool.sks-keyservers.net --recv-key '4C6E 80B6 374D CD5F 53AB 706A 32D9 C2A8 35ED 066C'
        gpg --keyserver pool.sks-keyservers.net --recv-key 'F8E3 3472 5692 2A8A E767 605B 7808 CE96 D38B 9201'
        gpg --export '32D9C2A835ED066C' | apt-key add -
        gpg --export '7808CE96D38B9201' | apt-key add -
        apt-get update
        apt-get install build-essential fakeroot devscripts
      • libupnp : Dans un répertoire libupnp créé
        apt-get source libupnp
        cd libupnp-1.6.20.jfd5
        apt-get build-dep libupnp
        debuild -b -uc -us
        dpkg -i ../libupnp6_1.6.20.jfd5-1_armhf.deb ../libupnp6-dev_1.6.20.jfd5-1_armhf.deb  ../libupnp-dev_1.6.20.jfd5-1_all.deb
      • libupnpp : Dans un répertoire libupnpp
        apt-get source libupnpp3
        cd libupnpp3-0.15.1
        apt-get build-dep libupnpp3   [erreur : libcurl-dev à installer manuellement :]
        apt-get install libcurl4-openssl-dev
        apt-get build-dep libupnpp3
        debuild -b -uc -us    [erreur : il manque pkg-config, installe le :]
        apt-get install pkg-config
        debuild -b -uc -us
        dpkg -i ../libupnpp3_0.15.1-1_armhf.deb ../libupnpp3-dev_0.15.1-1_armhf.deb
      • upmpdcli : Dans un répertoire upmpdcli
        apt-get source upmpdcli
        cd upmpdcli-1.2.4
        apt-get build-dep upmpdcli
        debuild -b -uc -us
        dpkg -i ../upmpdcli_1.2.4-1_armhf.deb
        systemctl enable upmpdcli
        systemctl start upmpdcli
        • Utiliser friendlyname = UpMpd[NanoPi NEO] et ohproductroom = UpMpd[NanoPi NEO] dans /etc/upmpdcli.conf.
  • Shairport-Sync (AirPlay audio player) :
    apt-get install shairport-sync
  • [non testé et non installé] Squeezelite (lightweight headless Squeezebox emulator) :
    apt-get install squeezelite
  • Divers :
    • schedutil : Utiliser le nouveau schedutil cpufreq governor (vérifier qu'il est compilé dans le noyau, voir /sys/devices/system/cpu/cpu*/cpufreq/scaling_available_governors). Modifier /etc/default/cpufrequtils en
      ENABLE=true
      MIN_SPEED=120000
      MAX_SPEED=1200000
      GOVERNOR=schedutil

      et reboot.

    • Systemd :
      • default.target :
        root@nanopineo:~# systemctl get-default
        graphical.target
        root@nanopineo:~# ls -l /lib/systemd/system/default.target 
        lrwxrwxrwx 1 root root 16 Mar 14 05:37 /lib/systemd/system/default.target -> graphical.target

        Chenger-le en multi-user.target :

        root@nanopineo:~# systemctl set-default multi-user.target
        Created symlink from /etc/systemd/system/default.target to /lib/systemd/system/multi-user.target.
        root@nanopineo:~# systemctl get-default
        multi-user.target
        root@nanopineo:~# reboot
      • Time zone :
        timedatectl
        timedatectl list-timezones
        timedatectl set-timezone Europe/Paris
      • Heure et Date : Armbian utilise ntp.service. Pour mon usage, il suffit de régler l'heure au boot et une fois par jour.
        systemctl stop ntp.service
        systemctl disable ntp.service

        Créer et activer un timer /etc/systemd/system/time-sync.timer

        [Unit]
        Description=Synchronisation de l'heure
        
        [Timer]
        OnStartupSec=1
        OnCalendar=*-*-* 23:50:00
        Persistent=true
        
        [Install]
        WantedBy=multi-user.target

        et créer le service correspondant (pas besoin de l'activer) /etc/systemd/system/time-sync.service

        [Unit]
        Description=Synchronisation de l'heure
        After=network.target
        
        [Service]
        Type=oneshot
        ExecStart=/usr/sbin/ntpd -qg
      • Autres services inutiles :
        systemctl stop lirc haveged smartd hddtemp hdparm hostapd kbd keyboard-setup remote-fs.target getty@tty1 serial-getty@ttyS0
        systemctl disable lirc haveged smartd hddtemp hdparm hostapd kbd keyboard-setup remote-fs.target getty@tty1 serial-getty@ttyS0
        systemctl mask serial-getty@ttyS0
    • Une idée sur la charge du système (système idle, et puis lecture de fichiers flac 24/96) :
      • armbianmonitor
      • htop
    • rpi monitor : Pour l'installer :
      armbianmonitor -r

      Pour ne plus l'utiliser, il suffit de le désactiver :

      systemctl stop rpimonitor rpimonitor-helper
      systemctl disable rpimonitor rpimonitor-helper
debian/nanopineo_vanilla.txt · Dernière modification: 2017/08/21 12:43 (modification externe)