Guida a Logitech Media Server, Squeezelite e derivati.

Pagina 74 di 189
prima
... 24 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 124 174 ... ultimo
Visualizzazione dei risultati da 731 a 740 su 1883
  1. #731
    tebibyte L'avatar di bigtube
    Registrato
    May 2012
    Località
    cagliari
    Età
    70
    Messaggi
    2,258
    configurazione

    Predefinito

    La discussione è interessante e sec. me proficua . Mi sto convincendo che ci vuole un equilibrio di tendenze approcciando linux. Bisogna imparare a usare la shell e
    insieme spiegare cosa si sta facendo nella shell per offrire liberta basata su conoscenza. Perchè in questo modo l'utente puo' eseguire certe operazioni perchè ha capito dove possono condurre. E puo approfittare della flessibilita' del sistema in situazioni impreviste o imprevedibili.
    Uno script come aasetup è comodo ed efficace ma all'utente sfugge cosa sta succedendo e in caso di problemi non sa' nemmeno da dove partire.
    Quindi una guida ragionata con lo strumento shell a me pare utile sempre....ho un problema? la shell e il suo uso basato su una guida ragionata ci porta fuori
    dalle secche. Lo script non funziona per i motivi piu' svariati ?....rimango al palo se non so' nemmeno come procedere con la shell per trovare una via d'uscita.

    In conclusione ci sono parti della guida che pur con grande sforzo sono risolte in modo non sufficientemente completo. Gli utenti lo fanno intendere
    e quindi bisognerebbe integrare cio' che manca e di cui si sente la mancanza . Lo script accelera il processo di ottenimento di un sistema funzionante
    ma ne perdiamo il controllo. Forse paradossalmente bisogna fare ricorso di piu alla shell accompagnata pero' dall'esplicazione del razionale che la richiede
    e giustifica. Insomma " in medio stat virtus " . Automatizzare è comodo ma se abbiamo capito il processo e' molto meglio.
    player1:thin client+voyage - player2:futros450+Debian > Usb Transport: I2soverUSB + DAC (6x1704+I/V a tubi) - Attenuatore passivo Lightspeed
    Ampli finale: OTL 6C33 - MyRef Fremen Ed. - Diff.: Diapason Adamantes II - Guida LMS+Squeezelite - B

  2. #732
    tebibyte
    Registrato
    Aug 2011
    Età
    51
    Messaggi
    2,928
    configurazione

    Predefinito

    Originariamente inviato da UnixMan

    BTW: che hardware hai? A che frequenza è (approssimativamente) il fischio?
    curioso si!!
    Gigabyte H67MA-usb3-b3 processore i3-2120T
    che frequenza? non saprei proprio....alta cmnq credo
    si sente solo quando la cpu é in idle...se lavora non c´é...

    Praticamete quando non ha niente da fare se la fischia

  3. #733
    tebibyte
    Registrato
    Aug 2011
    Età
    51
    Messaggi
    2,928
    configurazione

    Predefinito

    Originariamente inviato da UnixMan
    possibile... ma non è escluso che ci sia un errore mio nello script.
    Provato con una jessie....Tutto perfetto!!!
    A parte che non si apre la configurazione di squeezelite...fatta a manina e funziona!!!

    questa la parte finale dello script:

    codice:
    Download ed installazione di squeezelite-R2
    /var/tmp /var/tmp /home/filippo
    2015-11-23 19:34:29 URL:http://www.audiofaidate.org/sw/squeezelite_1.8.1mc2-1_amd64.deb [72408/72408] -> "squeezelite_1.8.1mc2-1_amd64.deb" [1]
    Reading package lists... Done
    Building dependency tree
    Reading state information... Done
    Building data structures... Done
    Building data structures... Done
    Get:1 http://httpredir.debian.org/debian/ jessie/main libfaad2 amd64 2.7-8 [178 kB]
    Get:2 http://httpredir.debian.org/debian/ jessie/main libmpg123-0 amd64 1.20.1-2 [133 kB]
    Get:3 http://httpredir.debian.org/debian/ jessie/main libsoxr0 amd64 0.1.1-1 [102 kB]
    Get:4 http://httpredir.debian.org/debian/ jessie/main liblircclient0 amd64 0.9.0~pre1-1.2 [34.4 kB]
    Fetched 447 kB in 0s (0 B/s)
    dpkg-preconfigure: impossibile riaprire stdin: File o directory non esistente
    dpkg-preconfigure: impossibile riaprire stdin: File o directory non esistente
    Selezionato il pacchetto libfaad2:amd64 non precedentemente selezionato.
    (Lettura del database... 38811 file e directory attualmente installati.)
    Preparativi per estrarre .../libfaad2_2.7-8_amd64.deb...
    Estrazione di libfaad2:amd64 (2.7-8)...
    Selezionato il pacchetto libmpg123-0:amd64 non precedentemente selezionato.
    Preparativi per estrarre .../libmpg123-0_1.20.1-2_amd64.deb...
    Estrazione di libmpg123-0:amd64 (1.20.1-2)...
    Selezionato il pacchetto libsoxr0:amd64 non precedentemente selezionato.
    Preparativi per estrarre .../libsoxr0_0.1.1-1_amd64.deb...
    Estrazione di libsoxr0:amd64 (0.1.1-1)...
    Selezionato il pacchetto liblircclient0 non precedentemente selezionato.
    Preparativi per estrarre .../liblircclient0_0.9.0~pre1-1.2_amd64.deb...
    Estrazione di liblircclient0 (0.9.0~pre1-1.2)...
    Configurazione di libfaad2:amd64 (2.7-8)...
    Configurazione di libmpg123-0:amd64 (1.20.1-2)...
    Configurazione di libsoxr0:amd64 (0.1.1-1)...
    Configurazione di liblircclient0 (0.9.0~pre1-1.2)...
    Elaborazione dei trigger per libc-bin (2.19-18+deb8u1)...
    Selezionato il pacchetto squeezelite non precedentemente selezionato.
    (Lettura del database... 38835 file e directory attualmente installati.)
    Preparativi per estrarre squeezelite_1.8.1mc2-1_amd64.deb...
    Estrazione di squeezelite (1.8.1mc2-1)...
    Configurazione di squeezelite (1.8.1mc2-1)...
    Elaborazione dei trigger per systemd (215-17+deb8u2)...
    Elaborazione dei trigger per man-db (2.7.0.2-5)...
    /var/tmp /home/filippo
    Setup completato. Saranno ora visualizzate le note finali, che si prega di
    leggere attentamente. Utilizzare i tasti freccia e PgUp/PgDn per scorrere il
    file. Premere "q" per uscire dal visualizzatore.
    
    I files che state per leggere si trovano nella directory "/var/tmp"; potete
    consultarli nuovamente in seguito con il comando "less nome_del_file".
    Premere "Invio" per continuare...
    ./aasetup.sh.*.txt: File o directory non esistente
    /home/filippo
    That's all, folks!
    L´unica parte strana é quella in grassetto.

    Comunque Fantastico!!!

    Praticamente na mezzoretta installato debian...lanciato script...e il player suona.

  4. #734
    tebibyte L'avatar di UnixMan
    Registrato
    Sep 2013
    Messaggi
    2,529
    configurazione

    Predefinito

    Originariamente inviato da antonellocaroli
    Praticamete quando non ha niente da fare se la fischia
    si vede che si annoia...
    Ciao, Paolo.

    «Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee.»

  5. #735
    pebibyte L'avatar di marcoc1712
    Registrato
    Jan 2013
    Messaggi
    5,254
    configurazione

    Predefinito

    Originariamente inviato da UnixMan
    inotify serve proprio a quello: per evitare il "polling". Anziché dover verificare periodicamente se determinati files (o directory) sono stati modificati, puoi dire al kernel: "se modifichi uno di questi files/direcotries, avvisami" (dato che tutti i file-system sono gestiti dal kernel, il kernel sa sempre se/quando/cosa viene modificato). .
    Immaginavo, segnalavo solo che LMS di suo non usa meccanismi simili, quindi nemmeno quello, mentre lo fa un plugin dedicato, che essendo portabile, probabilmente usa meccanismi analoghi (disponibili in librerie C e Java) o come fault back il vecchio e buon polling, ove questo non sia possibile per 'carenze' del kernel.

    Originariamente inviato da UnixMan
    vedi che succede ad usare sempre interfacce e sistemi troppo "astratti"? si finisce per prendere fischi per fiaschi...
    Non si sa mai, se mi capita sottomano il pc di filippo divento una capra stupida come una scimmia ed ubriaca come un cammello!
    Ciao, Marco.

    "Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction."
    — E. F. Schumacher (mis-attributed to A. Einstein)
    ________________________________________________________________________________
    Autore della patch R2 per Squeezelite e del plugin C-3PO. note libere
    Logitech media Server 7.9 > miniPc + squeezelite-R2 / SB+ > "Lu Scalmentu" NOS R2R DAC by TubeOne/ AudioResearch DAC 1-20 >
    Klimo Merlino Gold TPS > DIS Interconnect > Kent Gold > Reference > Monitor Audio Studio 20 SE

  6. #736
    pebibyte L'avatar di marcoc1712
    Registrato
    Jan 2013
    Messaggi
    5,254
    configurazione

    Predefinito

    Originariamente inviato da bigtube
    La discussione è interessante e sec. me proficua . Mi sto convincendo che ci vuole un equilibrio di tendenze approcciando linux. Bisogna imparare a usare la shell e
    insieme spiegare cosa si sta facendo nella shell per offrire liberta basata su conoscenza. Perchè in questo modo l'utente puo' eseguire certe operazioni perchè ha capito dove possono condurre. E puo approfittare della flessibilita' del sistema in situazioni impreviste o imprevedibili.
    Uno script come aasetup è comodo ed efficace ma all'utente sfugge cosa sta succedendo e in caso di problemi non sa' nemmeno da dove partire.
    Quindi una guida ragionata con lo strumento shell a me pare utile sempre....ho un problema? la shell e il suo uso basato su una guida ragionata ci porta fuori
    dalle secche. Lo script non funziona per i motivi piu' svariati ?....rimango al palo se non so' nemmeno come procedere con la shell per trovare una via d'uscita.

    In conclusione ci sono parti della guida che pur con grande sforzo sono risolte in modo non sufficientemente completo. Gli utenti lo fanno intendere
    e quindi bisognerebbe integrare cio' che manca e di cui si sente la mancanza . Lo script accelera il processo di ottenimento di un sistema funzionante
    ma ne perdiamo il controllo. Forse paradossalmente bisogna fare ricorso di piu alla shell accompagnata pero' dall'esplicazione del razionale che la richiede
    e giustifica. Insomma " in medio stat virtus " . Automatizzare è comodo ma se abbiamo capito il processo e' molto meglio.
    Assolutamente daccordo, se sono pigro faccio fare tutto allo script, ma la guida mi permette di approfondire e capire. La guida poi è uno strumento 'vivo' e nel tempo evolve e può contentre argomenti aggiuntivi (ho già consigliato una guida/selezione ai migliori plugin di LMS, per esempio).

    Secondo me è questo che distingue un 'prodotto' chiuso da uno aperto.

    La maggior complicazione eventualmente recepita del secondo rispetto al primo è solo il sintomo che si può fare di meglio, ma non connaturata in nessun modo con il fatto di essere open di per se, se non per l'innegabile fato che farlo costa di più (bisogna tener conto delle diverse variabili della portabilità, sia nel codice, che nell'eventuale GUI che nella guida).
    Ciao, Marco.

    "Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction."
    — E. F. Schumacher (mis-attributed to A. Einstein)
    ________________________________________________________________________________
    Autore della patch R2 per Squeezelite e del plugin C-3PO. note libere
    Logitech media Server 7.9 > miniPc + squeezelite-R2 / SB+ > "Lu Scalmentu" NOS R2R DAC by TubeOne/ AudioResearch DAC 1-20 >
    Klimo Merlino Gold TPS > DIS Interconnect > Kent Gold > Reference > Monitor Audio Studio 20 SE

  7. #737
    tebibyte
    Registrato
    Aug 2011
    Età
    51
    Messaggi
    2,928
    configurazione

    Predefinito

    Originariamente inviato da antonellocaroli
    Praticamente na mezzoretta installato debian...lanciato script...e il player suona.
    e con questa praticamente i tempi si dimezzano
    Download | SparkyLinux
    CLI Edition (Command Line Interface) – No-Codecs, No X-Server
    sparky_cli [Sparky Wiki]

    L´installazione é un pochettino piú complicata della debian net...piú che altro nella scelte della lingua...tastiera e partizione disco...ma caspita si installa a una velocitá incredibile....

    PS: ma preferisco debian!!!

  8. #738
    tebibyte L'avatar di UnixMan
    Registrato
    Sep 2013
    Messaggi
    2,529
    configurazione

    Predefinito

    Originariamente inviato da antonellocaroli
    e con questa praticamente i tempi si dimezzano
    [...]
    occhio che, se non ho visto male, è basata su "testing"... il che potrebbe creare problemi.

    BTW, immagino che i tempi si dimezzino perché l'installatore contiene già i pacchetti che servono, e quindi ti risparmi il tempo del download... o meglio, lo differisci: impieghi più tempo a scaricare l'immagine e meno durante l'installazione. Ci guadagni solo se devi fare più di una installazione.

    Comunque, la cosa la puoi risolvere anche utilizzando un installatore Debian diverso dalla versione "tiny" che avevo consigliato.

    Per i nostri scopi, già questi dovrebbero ridurre il numero di pacchetti da scaricare (e quindi il tempo di download). E naturalmente ci sono anche versioni molto più complete, come le "Live Install":

    https://www.debian.org/CD/live/

    Index of /debian-cd/current-live/i386/iso-hybrid
    Ciao, Paolo.

    «Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee.»

  9. #739
    tebibyte L'avatar di UnixMan
    Registrato
    Sep 2013
    Messaggi
    2,529
    configurazione

    Predefinito

    Ho testato e rimesso mano allo script. Stavolta nessuna modifica particolarmente sostanziale, solo qualche "limatina" qui e la. Purtroppo al momento non riesco (al momento si direbbe che il provider stia subendo un attacco...) a metterlo al solito posto: lo farò non appena possibile.

    Nel frattempo ve lo posto qui:

    codice:
    #!/bin/bash
    # WARNING: "bashisms"! Not POSIX compliant, do not use a different shell!
    
    cat<<-EHEAD
    
    	Personalizzazione post-installazione del S.O Debian 8.x "Jessie"
    
    EHEAD
    
    # controlli preliminari
    
    if [ ! -f /etc/debian_version ] || egrep -qv '^8\.' /etc/debian_version ; then
    cat<<-EWARN1
    	ATTENZIONE: è stato rilevato un sistema diverso da Debian 8.x "Jessie".
      
    	Questo script è pensato esclusivamente per Debian 8.x "Jessie" e sistemi 
    	derivati da (e perfettamente compatibili con) questo, come ad es. LMDE 2.
    	Il suo utilizzo con versioni o distribuzioni diverse non è supportato e 
    	potrebbe danneggiare il vostro sistema.
    
    EWARN1
      read -s -N1 -p 'Procedere comunque? (s/n)'
      echo
      if [ "$REPLY" != "s" ]; then
        echo -e '\nAbort.\n'
        exit 1
      fi
    fi
    
    [ "$(whoami)" == "root" ] || { 
      echo -e '\a\nATTENZIONE: questo script deve essere eseguito dal "SuperUser" (utente root).'
      exec su -c "$0"
    }
    
    # definizione delle funzioni
    
    function fail() {
      echo -e "\nFatal ERROR: $1\n\nAborted."
      exit $(false)
    }
    
    function pausa() {
      read -s -p 'Premere "Invio" per continuare...' 
      echo
    }
    
    function select_install_type() {
      # selezione del tipo di sistema da installare
      TipoSistema=""
      while [ "$TipoSistema" == "" ] ; do
        cat<<-ECHOICE
    
    	Cosa si desidera installare?
    
    	  0) nulla, solo setup di base
    	  1) sistema player (squeezelite)
    	  2) systema server (LMS)
    	  3) sistema completo stand-alone, server+player (LMS+squeezelite)
    
    	ECHOICE
        read -N1 -p 'Digitare il numero corrispondente (0|1|2|3): ' SceltaSistema
        echo
        case "$SceltaSistema" in
          0)
    	  TipoSistema="custom"
    	  ;;
          1)
    	  TipoSistema="player"
    	  ;;
          2)
    	  TipoSistema="server"
    	  ;;
          3)
    	  TipoSistema="completo"
    	  ;;
          *) 
    	  echo -e "\a\nErrore: selezione non prevista. Si prega di digitare 0, 1, 2 o 3."
        esac
        if [ "$TipoSistema" != "" ]; then
          echo "Scelta effettuata: sistema $TipoSistema"
          read -s -N1 -p 'Confermare e procedere con l´installazione? (s/N)'
          echo
          [ "$REPLY" != "s" ] && TipoSistema=""
        fi
      done
    }
    
    function disable_swap() {
      cat <<-EOSW
    
    	Per i sistemi solo "player" (squeezelite) lo "swap" (memoria virtuale
    	su disco, AKA "area di scambio") è superfluo. Dato che potrebbe anche
    	interferire con la riproduzione, se ne sconsiglia l'uso.
    	
    	Se il sistema dispone di una quantità sufficiente di RAM fisica, non è
    	necessario utilizzarlo neanche per sistemi che includono il server LMS.
    	
    	Qualora inoltre il disco su cui risiede la partizione di swap sia in
    	effetti una memoria a stato solido ("flash": SSD, CF, SD, USB memory-
    	sticks, ecc), le frequenti operazioni di scrittura tipiche dello swap
    	portano ad un precoce deterioramento della stessa.
    	In tali casi è pertanto sempre decisamente sconsigliato utilizzare lo
    	swap su disco.
    	
    EOSW
      read -s -N1 -p 'Disabilitare lo swap su disco? (S/n)'
      if [ "$REPLY" != "n" ]; then
        echo -e '\nDisabilitazione dello swap.'
        swapoff -a
        sed -i -r '/swap/{s/^([^#].*)$/#\1/}' /etc/fstab
      fi
    }
    
    function uninstall_syslogger() {
    cat <<-EOSW
    
    	Normalmente i sistemi Linux utilizzano un servizio di memorizzazione su
    	disco dei log (AKA "registri") di sistema (syslog). Laddove non sia
    	necessario tenere traccia (semi)permanente di tali informazioni, tale
    	servizio può essere disinstallato.
    	
    	Nelle applicazioni "real-time" questo può essere vantaggioso in quanto
    	elimina un processo attivo e riduce gli accessi al disco superflui.
    	
    	È inoltre raccomandata la sua disinstallazione laddove il disco su cui
    	risiede il file-system "/var" sia in effetti una memoria a stato solido
    	("flash": SSD, CF, SD, USB memory-sticks, ecc), in quanto le frequenti
    	operazioni di scrittura dei log files possono portare ad un precoce
    	deterioramento della stessa.
    	
    	EOSW
      read -s -N1 -p 'Disinstallare il syslogger? (S/n)'
      if [ "$REPLY" != "n" ]; then
        echo -e '\nDisinstallazione di syslog...'
        apt-get -y purge '^(.|busybox-)?syslog(d)?(-ng.*)?$' 2>&1|tee "purge.syslog.log"
      fi
    }
    
    function install_LMS() {
      echo -e "\nDownload ed installazione di LMS v7.9 (latest nightly build)"
      wget -nv -nH -nd -r -np -l1 -c -A '*.deb' http://downloads.slimdevices.com/nightly/?ver=7.9
      gdebi --non-interactive  logitechmediaserver_7.9*_all.deb
      cat <<-EOLMS > "LMS_notice.txt"
    
    	ATTENZIONE: potrebbe essere necessario personalizzare le configurazioni 
    	di LMS editando i relativi files di configurazione:
    
    	  /etc/default/logitechmediaserver
    	  /etc/squeezeboxserver/convert.conf
    	  /etc/squeezeboxserver/modules.conf
    	  /etc/squeezeboxserver/types.conf
    
    	Dopo aver editato i files di configurazione, per rendere effettive le 
    	modifiche effettuate riavviare il servizo con il comando:
    
    	  service logitechmediaserver restart
    
    	oppure riavviare il sistema.
    
    	EOLMS
    }
    
    function install_squeezelite() {
      echo -e "\nDownload ed installazione di squeezelite-R2"
      if [ "$(arch)" == "x86_64" ]; then
        MySL="squeezelite_1.8.1mc2-1_amd64.deb"
      else
        MySL="squeezelite_1.8.1mc2-1_i386.deb"
      fi
      wget -nd -nv -c http://www.audiofaidate.org/sw/$MySL
      gdebi --non-interactive $MySL
      service squeezelite stop
      [ -f /etc/default/squeezelite ] && mv -f /etc/default/squeezelite /etc/default/squeezelite.bak
      cat <<-EOSLC > /etc/default/squeezelite
    	# Defaults for squeezelite initscript
    	# sourced by /etc/init.d/squeezelite
    	# installed at /etc/default/squeezelite by the maintainer scripts
    
    	# The name for the squeezelite player:
    	SL_NAME="$(hostname -s)"
    
    	# ALSA output device:
    	#SL_SOUNDCARD="default:CARD=X20"
    	#SL_SOUNDCARD="front:CARD=x20,DEV=0"
    	#SL_SOUNDCARD="front:CARD=D20,DEV=0"
    	#SL_SOUNDCARD="default:CARD=Amanero"
    
    	# Squeezebox server (Logitech Media Server):
    	# Uncomment the next line if you want to point squeezelite at the IP address of
    	# your squeezebox server. This is usually unnecessary as the server is
    	# automatically discovered.
    	#SB_SERVER_IP="192.168.x.y"
    
    	# Additional options to pass to squeezelite:
    	# Please do not include -z to make squeezelite daemonise itself.
    	SB_EXTRA_ARGS="-C"
    
    	EOSLC
      cat <<-EOSLM > "squeezelite_notice.txt"
    
    	ATTENZIONE: potrebbe essere necessario personalizzare le configurazioni 
    	di squeezelite editando il relativo files di configurazione:
    
    	  /etc/default/squeezelite
    
    	Si consiglia di collegare l´interfaccia audio che si intende utilizzare 
    	e dare il seguente comando:
    
    	  squeezelite -l
    
    	che fornisce una lista dei possibili dispositivi di output che possono
    	essere utilizzati da squeezelite. Quello più appropriato va messo nella
    	variabile SL_SOUNDCARD (nel file /etc/default/squeezelite).
    
    	Dopo aver editato il file di configurazione, per rendere effettive le 
    	modifiche effettuate riavviare il servizio con il comando:
    
    	  service squeezelite restart
    
    	oppure riavviare il sistema.
    	
    	Si raccomanda di dare il comando "alsamixer" per verificare che le 
    	impostazioni del dispositivo di uscita audio siano corrette; in modo
    	particolare controllare che la/e uscita/e non siano in "mute" (*non* 
    	deve essere presente una "M" sotto la barra del volume).
    
    	EOSLM
    }
    
    function udev_setup() {
      [ -f /etc/udev/rules.d/40-timer-permissions.rules ] && mv -f /etc/udev/rules.d/40-timer-permissions.rules /etc/udev/rules.d/40-timer-permissions.rules.bak
      cat <<-EOHPT > /etc/udev/rules.d/40-timer-permissions.rules 
    	KERNEL=="rtc0", GROUP="audio"
    	KERNEL=="hpet", GROUP="audio"
    	EOHPT
      # Attivazione immediata delle modifiche precedenti:
      service udev force-reload
      chgrp audio /dev/hpet /dev/rtc0
      chmod 660 /dev/hpet /dev/rtc0
    }
    
    function sysctl_setup() {
      [ -f /etc/sysctl.d/60-max-user-freq.conf ] && mv -f /etc/sysctl.d/60-max-user-freq.conf /etc/sysctl.d/60-max-user-freq.conf.bak
      [ -f /etc/sysctl.d/99-local.conf ] && mv -f /etc/sysctl.d/99-local.conf /etc/sysctl.d/99-local.conf.bak
      cat <<-EOSC > /etc/sysctl.d/99-local.conf
    	# Configuration file for runtime kernel parameters.
    	# See sysctl.conf(5) for more information.
    
    	# vm.swappiness = 60 # default
    	vm.swappiness = 10
    
    	# Contains, as a percentage of total system memory, the number of pages at which
    	# a process which is generating disk writes will start writing out dirty data.
    	## Arch default = 10.
    	vm.dirty_ratio = 3
    
    	# Contains, as a percentage of total system memory, the number of pages at which
    	# the background kernel flusher threads will start writing out dirty data.
    	## Arch default = 5.
    	vm.dirty_background_ratio = 2
    
    	kernel.perf_cpu_time_max_percent = 50
    	kernel.perf_event_max_sample_rate = 50000
    
    	# Protection from the SYN flood attack.
    	net.ipv4.tcp_syncookies = 1
    
    	# Disable packet forwarding.
    	net.ipv4.ip_forward = 0
    	net.ipv6.conf.all.forwarding = 0
    	
    	# Set the max OS send buffer size (wmem) and receive buffer size (rmem) to 12MB
    	# for queues on all protocols. In other words set the amount of memory that is
    	# allocated for each TCP socket when it is opened or created while transferring
    	# files:
    	net.core.wmem_max=12582912
    	net.core.rmem_max=12582912
    
    	# You also need to set minimum size, initial size, and maximum size in bytes:
    	net.ipv4.tcp_rmem= 10240 87380 12582912
    	net.ipv4.tcp_wmem= 10240 87380 12582912
    
    	# Turn on window scaling which can be an option to enlarge the transfer window:
    	net.ipv4.tcp_window_scaling = 1
    
    	# Enable timestamps as defined in RFC1323:
    	net.ipv4.tcp_timestamps = 1
    
    	# Enable select acknowledgments:
    	net.ipv4.tcp_sack = 1
    
    	# By default, TCP saves various connection metrics in the route cache when the
    	# connection closes, so that connections established in the near future can use
    	# these to set initial conditions. Usually, this increases overall performance,
    	# but may sometimes cause performance degradation. If set, TCP will not cache
    	# metrics on closing connections.
    	net.ipv4.tcp_no_metrics_save = 1
    
    	# Set maximum number of packets, queued on the INPUT side, when the interface
    	# receives packets faster than kernel can process them.
    	net.core.netdev_max_backlog = 5000	
    	
    	fs.inotify.max_user_watches = 524288
    
    	# set high precision timer
    	dev.hpet.max-user-freq=3072
    
    	EOSC
      # Attivazione immediata delle modifiche precedenti:
      sysctl -p /etc/sysctl.d/99-local.conf
    }
    
    function limits_setup() {
      echo -e '\nSetup dei limiti e permessi di sistema per il gruppo "audio"'
      [ -f /etc/security/limits.d/audio.conf ] && mv -f /etc/security/limits.d/audio.conf /etc/security/limits.d/audio.conf.bak
      cat <<-EOAL > /etc/security/limits.d/audio.conf
    	# limits for users/processes in audio grup
    
    	#@audio - rtprio 99
    	@audio - rtprio 95
    	@audio - nice -15
    	#@audio - memlock unlimited
    	#@audio - memlock 250000
    	@audio - memlock 500000
    
    	EOAL
    }
    
    function rclocal_setup() {
      echo -e '\nSetup esecuzione automatica al boot - file /etc/rc.local'
      [ -f /etc/rc.local ] && mv -f /etc/rc.local /etc/rc.local.bak
      cat <<-EORL > /etc/rc.local
    	#!/bin/sh -e
    	#
    	# rc.local
    	#
    	# This script is executed at the end of each multiuser runlevel.
    	# Make sure that the script will "exit 0" on success or any other
    	# value on error.
    	#
    	# In order to enable or disable this script just change the execution
    	# bits.
    
    	echo 3072 > /sys/class/rtc/rtc0/max_user_freq
    
    	exit 0
    	EORL
      chmod +x /etc/rc.local
      # Attivazione immediata della modifica precedente:
      echo 3072 > /sys/class/rtc/rtc0/max_user_freq
    }
    
    function grub_setup() {
      echo -e '\naggiunta di "threadirqs" ai parametri di avvio del Kernel'
      sed -r -i.bak '/threadirqs/!{s/^(GRUB_CMDLINE_LINUX.*)\"(.*)\"/\1"\2 threadirqs"/};s/=" /="/' /etc/default/grub
      update-grub
    }
    
    function fstab_setup() {
      echo -e '\nAggiunta di "noatime" alle opzioni di mount dei file system'
      sed -r -i.bak '/atime/!{s/(ext.\s+)(\w+)/\1noatime,\2/}' /etc/fstab
    }
    
    function base_repos_setup() {
      echo -e '\nAggiunta dei repository di base + multimedia, inclusi "non-free" e "contrib"'
      [ -f /etc/apt/sources.list ] && mv -f /etc/apt/sources.list /etc/apt/sources.list.bak
      [ -f /etc/apt/sources.list.d/debian.list ] && mv -f /etc/apt/sources.list.d/debian.list /etc/apt/sources.list.d/debian.list.bak
      cat<<-EOD > /etc/apt/sources.list.d/debian.list
    
    	deb http://httpredir.debian.org/debian jessie main contrib non-free
    	deb http://httpredir.debian.org/debian jessie-updates main contrib non-free
    
    	deb http://security.debian.org/ jessie/updates main contrib non-free
    
    	deb http://www.deb-multimedia.org jessie main non-free
    
    	EOD
    }
    
    function liquorix_repos_setup() {
    echo -e '\nAggiunta del repository del kernel "Liquorix"'
    [ -f /etc/apt/sources.list.d/liquorix.list ] && mv -f /etc/apt/sources.list.d/liquorix.list /etc/apt/sources.list.d/liquorix.list.bak
    cat<<-EOLS > /etc/apt/sources.list.d/liquorix.list
    	# Liquorix is a distro kernel replacement built using the best
    	# configuration and kernel sources for desktop, multimedia, and 
    	# gaming workloads.
    
    	deb http://liquorix.net/debian sid main past
    	#deb-src http://liquorix.net/debian sid main past
    
    	# Mirrors:
    	#
    	# Unit193 - France
    	deb http://mirror.unit193.net/liquorix sid main
    	# deb-src http://mirror.unit193.net/liquorix sid main
    	#
    	# Liquorix - Cloudfront Global CDN
    	# deb http://cdn.liquorix.net/debian sid main
    	# deb-src http://cdn.liquorix.net/debian sid main
    
    	EOLS
    }
    
    function apt_setup() {
      base_repos_setup
      liquorix_repos_setup
      echo -e '\nAggiornamento delle liste dei pacchetti...\n'
      apt-get update > "update.log" 2>&1 \
        || fail "aggiornamento del DB di APT fallito."
      echo -e '\nInstallazione dei "keyrings" per APT'
      apt-get --allow-unauthenticated -y install \
        '((^(deb(ian)?|liquorix)-([^-]+-)?)|-archive-)keyring.?' \
        2>&1|tee "install.keyrings.log" \
        || fail "installazione dei keyring fallito."
      # è necessario aggiornare di nuovo
      apt-get update >> "update.log" 2>&1 \
        || fail "aggiornamento del DB di APT fallito."
    }
    
    function basic_packages_setup() {
      echo -e '\nRimozione dei pacchetti superflui...'
      apt-get -y purge pulseaudio	2>&1|tee "purge.log"
      apt-get -y autoremove		2>&1|tee "autoremove.log"
      echo -e '\nInstallazione degli aggiornamenti di sistema...'
      apt-get -y dist-upgrade	2>&1|tee "upgrade.log" || fail "aggiornamento del sistema fallito."
      apt-get -y autoremove		2>&1|tee -a "autoremove.log"
    
      echo -e '\nInstallazione accessori vari, ALSA utils, rtirq, ffmpeg, sox, ecc...'
      package_list='
    	  firmware-linux
    	  sudo
    	  gdebi-core
    	  htop
    	  fdupes
    	  mc
    	  gpm
    	  openssh-client
    	  openssh-server
    	  ssh
    	  alsa-utils
    	  rtirq-init
    	  flac
    	  ffmpeg
    	  sox
    	  libsox-fmt-all
      '
      for package in $package_list; do
          apt-get --install-recommends -y install "$package" 2>&1|tee -a "install.packages.log"
      done
    }
    
    function install_liquorix_kernel() {
      echo -e '\nInstallazione del Kernel Liquorix...'
      if [ "$(arch)" == "x86_64" ]; then
        MyKernel="linux-image-liquorix-amd64"
      else
        MyKernel="linux-image-liquorix-686"
      fi
      apt-get --no-install-recommends -y install $MyKernel 2>&1|tee "install.kernel.log"
      cat <<-EOK # > "kernel_notice.txt"
    
    		ATTENZIONE: 
    		per attivare il nuovo Kernel è necessario riavviare il sistema.
    		
    	EOK
    }
    
    # main - start doing real things
    myName=$(basename "$0")
    myWorkdir="/var/tmp/$myName.$(date '+%F.%H-%M-%S')"
    [ ! -e "$myWorkdir" ] && mkdir "$myWorkdir" 
    cd "$myWorkdir" || fail "impossibile accedere alla directory di lavoro: $myWorkdir"
    select_install_type
    disable_swap
    uninstall_syslogger
    fstab_setup
    grub_setup
    limits_setup
    echo -e '\nSetup ottimizzazioni varie...'
    # parametri di sysctl, setup di udev, ecc.
    udev_setup
    sysctl_setup
    rclocal_setup
    apt_setup
    basic_packages_setup
    install_liquorix_kernel
    
    echo -e '\nConfigurazioni di base completate.'
    
    # Installazione degli elementi del sistema selezionato
    case "$TipoSistema" in
      player)
        install_squeezelite	2>&1|tee install_squeezelite.log
        ;;
      server)
        install_LMS		2>&1|tee install_LMS.log
        ;;
      completo)
        install_squeezelite	2>&1|tee install_squeezelite.log
        install_LMS		2>&1|tee install_LMS.log
    esac
    echo -e "\nSetup completato."
    if ls -1 *.txt >/dev/null 2>&1 ; then
      cat <<-EON
      
    	Saranno ora visualizzate le note finali, che si prega di 
    	leggere con la massima attenzione. 
    	
    	I files che state per leggere insieme ai log dettagliati
    	si trovano nella directory:
    	  $myWorkdir
    	potete consultarli nuovamente in seguito con il comando:
    	  less nome_file
    	
    	Utilizzate i tasti freccia e PgUp/PgDn per far scorrere il 
    	testo. Premete il tasto "q" per uscire dal visualizzatore.
    	
    	EON
      pausa
      for file in *.txt ; do
        less "$file"
      done
    fi
    echo -e "\aThat's all, folks!"
    Ciao, Paolo.

    «Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee.»

  10. #740
    pebibyte L'avatar di marcoc1712
    Registrato
    Jan 2013
    Messaggi
    5,254
    configurazione

    Predefinito

    Originariamente inviato da UnixMan
    Ho testato e rimesso mano allo script. Stavolta nessuna modifica particolarmente sostanziale, solo qualche "limatina" qui e la. Purtroppo al momento non riesco (al momento si direbbe che il provider stia subendo un attacco...) a metterlo al solito posto: lo farò non appena possibile.

    Nel frattempo ve lo posto qui:

    codice:
    #!/bin/bash
    # WARNING: "bashisms"! Not POSIX compliant, do not use a different shell!
    
    cat<<-EHEAD
    
    	Personalizzazione post-installazione del S.O Debian 8.x "Jessie"
    
    EHEAD
    
    # controlli preliminari
    
    if [ ! -f /etc/debian_version ] || egrep -qv '^8\.' /etc/debian_version ; then
    cat<<-EWARN1
    	ATTENZIONE: è stato rilevato un sistema diverso da Debian 8.x "Jessie".
      
    	Questo script è pensato esclusivamente per Debian 8.x "Jessie" e sistemi 
    	derivati da (e perfettamente compatibili con) questo, come ad es. LMDE 2.
    	Il suo utilizzo con versioni o distribuzioni diverse non è supportato e 
    	potrebbe danneggiare il vostro sistema.
    
    EWARN1
      read -s -N1 -p 'Procedere comunque? (s/n)'
      echo
      if [ "$REPLY" != "s" ]; then
        echo -e '\nAbort.\n'
        exit 1
      fi
    fi
    
    [ "$(whoami)" == "root" ] || { 
      echo -e '\a\nATTENZIONE: questo script deve essere eseguito dal "SuperUser" (utente root).'
      exec su -c "$0"
    }
    
    # definizione delle funzioni
    
    function fail() {
      echo -e "\nFatal ERROR: $1\n\nAborted."
      exit $(false)
    }
    
    function pausa() {
      read -s -p 'Premere "Invio" per continuare...' 
      echo
    }
    
    function select_install_type() {
      # selezione del tipo di sistema da installare
      TipoSistema=""
      while [ "$TipoSistema" == "" ] ; do
        cat<<-ECHOICE
    
    	Cosa si desidera installare?
    
    	  0) nulla, solo setup di base
    	  1) sistema player (squeezelite)
    	  2) systema server (LMS)
    	  3) sistema completo stand-alone, server+player (LMS+squeezelite)
    
    	ECHOICE
        read -N1 -p 'Digitare il numero corrispondente (0|1|2|3): ' SceltaSistema
        echo
        case "$SceltaSistema" in
          0)
    	  TipoSistema="custom"
    	  ;;
          1)
    	  TipoSistema="player"
    	  ;;
          2)
    	  TipoSistema="server"
    	  ;;
          3)
    	  TipoSistema="completo"
    	  ;;
          *) 
    	  echo -e "\a\nErrore: selezione non prevista. Si prega di digitare 0, 1, 2 o 3."
        esac
        if [ "$TipoSistema" != "" ]; then
          echo "Scelta effettuata: sistema $TipoSistema"
          read -s -N1 -p 'Confermare e procedere con l´installazione? (s/N)'
          echo
          [ "$REPLY" != "s" ] && TipoSistema=""
        fi
      done
    }
    
    function disable_swap() {
      cat <<-EOSW
    
    	Per i sistemi solo "player" (squeezelite) lo "swap" (memoria virtuale
    	su disco, AKA "area di scambio") è superfluo. Dato che potrebbe anche
    	interferire con la riproduzione, se ne sconsiglia l'uso.
    	
    	Se il sistema dispone di una quantità sufficiente di RAM fisica, non è
    	necessario utilizzarlo neanche per sistemi che includono il server LMS.
    	
    	Qualora inoltre il disco su cui risiede la partizione di swap sia in
    	effetti una memoria a stato solido ("flash": SSD, CF, SD, USB memory-
    	sticks, ecc), le frequenti operazioni di scrittura tipiche dello swap
    	portano ad un precoce deterioramento della stessa.
    	In tali casi è pertanto sempre decisamente sconsigliato utilizzare lo
    	swap su disco.
    	
    EOSW
      read -s -N1 -p 'Disabilitare lo swap su disco? (S/n)'
      if [ "$REPLY" != "n" ]; then
        echo -e '\nDisabilitazione dello swap.'
        swapoff -a
        sed -i -r '/swap/{s/^([^#].*)$/#\1/}' /etc/fstab
      fi
    }
    
    function uninstall_syslogger() {
    cat <<-EOSW
    
    	Normalmente i sistemi Linux utilizzano un servizio di memorizzazione su
    	disco dei log (AKA "registri") di sistema (syslog). Laddove non sia
    	necessario tenere traccia (semi)permanente di tali informazioni, tale
    	servizio può essere disinstallato.
    	
    	Nelle applicazioni "real-time" questo può essere vantaggioso in quanto
    	elimina un processo attivo e riduce gli accessi al disco superflui.
    	
    	È inoltre raccomandata la sua disinstallazione laddove il disco su cui
    	risiede il file-system "/var" sia in effetti una memoria a stato solido
    	("flash": SSD, CF, SD, USB memory-sticks, ecc), in quanto le frequenti
    	operazioni di scrittura dei log files possono portare ad un precoce
    	deterioramento della stessa.
    	
    	EOSW
      read -s -N1 -p 'Disinstallare il syslogger? (S/n)'
      if [ "$REPLY" != "n" ]; then
        echo -e '\nDisinstallazione di syslog...'
        apt-get -y purge '^(.|busybox-)?syslog(d)?(-ng.*)?$' 2>&1|tee "purge.syslog.log"
      fi
    }
    
    function install_LMS() {
      echo -e "\nDownload ed installazione di LMS v7.9 (latest nightly build)"
      wget -nv -nH -nd -r -np -l1 -c -A '*.deb' http://downloads.slimdevices.com/nightly/?ver=7.9
      gdebi --non-interactive  logitechmediaserver_7.9*_all.deb
      cat <<-EOLMS > "LMS_notice.txt"
    
    	ATTENZIONE: potrebbe essere necessario personalizzare le configurazioni 
    	di LMS editando i relativi files di configurazione:
    
    	  /etc/default/logitechmediaserver
    	  /etc/squeezeboxserver/convert.conf
    	  /etc/squeezeboxserver/modules.conf
    	  /etc/squeezeboxserver/types.conf
    
    	Dopo aver editato i files di configurazione, per rendere effettive le 
    	modifiche effettuate riavviare il servizo con il comando:
    
    	  service logitechmediaserver restart
    
    	oppure riavviare il sistema.
    
    	EOLMS
    }
    
    function install_squeezelite() {
      echo -e "\nDownload ed installazione di squeezelite-R2"
      if [ "$(arch)" == "x86_64" ]; then
        MySL="squeezelite_1.8.1mc2-1_amd64.deb"
      else
        MySL="squeezelite_1.8.1mc2-1_i386.deb"
      fi
      wget -nd -nv -c http://www.audiofaidate.org/sw/$MySL
      gdebi --non-interactive $MySL
      service squeezelite stop
      [ -f /etc/default/squeezelite ] && mv -f /etc/default/squeezelite /etc/default/squeezelite.bak
      cat <<-EOSLC > /etc/default/squeezelite
    	# Defaults for squeezelite initscript
    	# sourced by /etc/init.d/squeezelite
    	# installed at /etc/default/squeezelite by the maintainer scripts
    
    	# The name for the squeezelite player:
    	SL_NAME="$(hostname -s)"
    
    	# ALSA output device:
    	#SL_SOUNDCARD="default:CARD=X20"
    	#SL_SOUNDCARD="front:CARD=x20,DEV=0"
    	#SL_SOUNDCARD="front:CARD=D20,DEV=0"
    	#SL_SOUNDCARD="default:CARD=Amanero"
    
    	# Squeezebox server (Logitech Media Server):
    	# Uncomment the next line if you want to point squeezelite at the IP address of
    	# your squeezebox server. This is usually unnecessary as the server is
    	# automatically discovered.
    	#SB_SERVER_IP="192.168.x.y"
    
    	# Additional options to pass to squeezelite:
    	# Please do not include -z to make squeezelite daemonise itself.
    	SB_EXTRA_ARGS="-C"
    
    	EOSLC
      cat <<-EOSLM > "squeezelite_notice.txt"
    
    	ATTENZIONE: potrebbe essere necessario personalizzare le configurazioni 
    	di squeezelite editando il relativo files di configurazione:
    
    	  /etc/default/squeezelite
    
    	Si consiglia di collegare l´interfaccia audio che si intende utilizzare 
    	e dare il seguente comando:
    
    	  squeezelite -l
    
    	che fornisce una lista dei possibili dispositivi di output che possono
    	essere utilizzati da squeezelite. Quello più appropriato va messo nella
    	variabile SL_SOUNDCARD (nel file /etc/default/squeezelite).
    
    	Dopo aver editato il file di configurazione, per rendere effettive le 
    	modifiche effettuate riavviare il servizio con il comando:
    
    	  service squeezelite restart
    
    	oppure riavviare il sistema.
    	
    	Si raccomanda di dare il comando "alsamixer" per verificare che le 
    	impostazioni del dispositivo di uscita audio siano corrette; in modo
    	particolare controllare che la/e uscita/e non siano in "mute" (*non* 
    	deve essere presente una "M" sotto la barra del volume).
    
    	EOSLM
    }
    
    function udev_setup() {
      [ -f /etc/udev/rules.d/40-timer-permissions.rules ] && mv -f /etc/udev/rules.d/40-timer-permissions.rules /etc/udev/rules.d/40-timer-permissions.rules.bak
      cat <<-EOHPT > /etc/udev/rules.d/40-timer-permissions.rules 
    	KERNEL=="rtc0", GROUP="audio"
    	KERNEL=="hpet", GROUP="audio"
    	EOHPT
      # Attivazione immediata delle modifiche precedenti:
      service udev force-reload
      chgrp audio /dev/hpet /dev/rtc0
      chmod 660 /dev/hpet /dev/rtc0
    }
    
    function sysctl_setup() {
      [ -f /etc/sysctl.d/60-max-user-freq.conf ] && mv -f /etc/sysctl.d/60-max-user-freq.conf /etc/sysctl.d/60-max-user-freq.conf.bak
      [ -f /etc/sysctl.d/99-local.conf ] && mv -f /etc/sysctl.d/99-local.conf /etc/sysctl.d/99-local.conf.bak
      cat <<-EOSC > /etc/sysctl.d/99-local.conf
    	# Configuration file for runtime kernel parameters.
    	# See sysctl.conf(5) for more information.
    
    	# vm.swappiness = 60 # default
    	vm.swappiness = 10
    
    	# Contains, as a percentage of total system memory, the number of pages at which
    	# a process which is generating disk writes will start writing out dirty data.
    	## Arch default = 10.
    	vm.dirty_ratio = 3
    
    	# Contains, as a percentage of total system memory, the number of pages at which
    	# the background kernel flusher threads will start writing out dirty data.
    	## Arch default = 5.
    	vm.dirty_background_ratio = 2
    
    	kernel.perf_cpu_time_max_percent = 50
    	kernel.perf_event_max_sample_rate = 50000
    
    	# Protection from the SYN flood attack.
    	net.ipv4.tcp_syncookies = 1
    
    	# Disable packet forwarding.
    	net.ipv4.ip_forward = 0
    	net.ipv6.conf.all.forwarding = 0
    	
    	# Set the max OS send buffer size (wmem) and receive buffer size (rmem) to 12MB
    	# for queues on all protocols. In other words set the amount of memory that is
    	# allocated for each TCP socket when it is opened or created while transferring
    	# files:
    	net.core.wmem_max=12582912
    	net.core.rmem_max=12582912
    
    	# You also need to set minimum size, initial size, and maximum size in bytes:
    	net.ipv4.tcp_rmem= 10240 87380 12582912
    	net.ipv4.tcp_wmem= 10240 87380 12582912
    
    	# Turn on window scaling which can be an option to enlarge the transfer window:
    	net.ipv4.tcp_window_scaling = 1
    
    	# Enable timestamps as defined in RFC1323:
    	net.ipv4.tcp_timestamps = 1
    
    	# Enable select acknowledgments:
    	net.ipv4.tcp_sack = 1
    
    	# By default, TCP saves various connection metrics in the route cache when the
    	# connection closes, so that connections established in the near future can use
    	# these to set initial conditions. Usually, this increases overall performance,
    	# but may sometimes cause performance degradation. If set, TCP will not cache
    	# metrics on closing connections.
    	net.ipv4.tcp_no_metrics_save = 1
    
    	# Set maximum number of packets, queued on the INPUT side, when the interface
    	# receives packets faster than kernel can process them.
    	net.core.netdev_max_backlog = 5000	
    	
    	fs.inotify.max_user_watches = 524288
    
    	# set high precision timer
    	dev.hpet.max-user-freq=3072
    
    	EOSC
      # Attivazione immediata delle modifiche precedenti:
      sysctl -p /etc/sysctl.d/99-local.conf
    }
    
    function limits_setup() {
      echo -e '\nSetup dei limiti e permessi di sistema per il gruppo "audio"'
      [ -f /etc/security/limits.d/audio.conf ] && mv -f /etc/security/limits.d/audio.conf /etc/security/limits.d/audio.conf.bak
      cat <<-EOAL > /etc/security/limits.d/audio.conf
    	# limits for users/processes in audio grup
    
    	#@audio - rtprio 99
    	@audio - rtprio 95
    	@audio - nice -15
    	#@audio - memlock unlimited
    	#@audio - memlock 250000
    	@audio - memlock 500000
    
    	EOAL
    }
    
    function rclocal_setup() {
      echo -e '\nSetup esecuzione automatica al boot - file /etc/rc.local'
      [ -f /etc/rc.local ] && mv -f /etc/rc.local /etc/rc.local.bak
      cat <<-EORL > /etc/rc.local
    	#!/bin/sh -e
    	#
    	# rc.local
    	#
    	# This script is executed at the end of each multiuser runlevel.
    	# Make sure that the script will "exit 0" on success or any other
    	# value on error.
    	#
    	# In order to enable or disable this script just change the execution
    	# bits.
    
    	echo 3072 > /sys/class/rtc/rtc0/max_user_freq
    
    	exit 0
    	EORL
      chmod +x /etc/rc.local
      # Attivazione immediata della modifica precedente:
      echo 3072 > /sys/class/rtc/rtc0/max_user_freq
    }
    
    function grub_setup() {
      echo -e '\naggiunta di "threadirqs" ai parametri di avvio del Kernel'
      sed -r -i.bak '/threadirqs/!{s/^(GRUB_CMDLINE_LINUX.*)\"(.*)\"/\1"\2 threadirqs"/};s/=" /="/' /etc/default/grub
      update-grub
    }
    
    function fstab_setup() {
      echo -e '\nAggiunta di "noatime" alle opzioni di mount dei file system'
      sed -r -i.bak '/atime/!{s/(ext.\s+)(\w+)/\1noatime,\2/}' /etc/fstab
    }
    
    function base_repos_setup() {
      echo -e '\nAggiunta dei repository di base + multimedia, inclusi "non-free" e "contrib"'
      [ -f /etc/apt/sources.list ] && mv -f /etc/apt/sources.list /etc/apt/sources.list.bak
      [ -f /etc/apt/sources.list.d/debian.list ] && mv -f /etc/apt/sources.list.d/debian.list /etc/apt/sources.list.d/debian.list.bak
      cat<<-EOD > /etc/apt/sources.list.d/debian.list
    
    	deb http://httpredir.debian.org/debian jessie main contrib non-free
    	deb http://httpredir.debian.org/debian jessie-updates main contrib non-free
    
    	deb http://security.debian.org/ jessie/updates main contrib non-free
    
    	deb http://www.deb-multimedia.org jessie main non-free
    
    	EOD
    }
    
    function liquorix_repos_setup() {
    echo -e '\nAggiunta del repository del kernel "Liquorix"'
    [ -f /etc/apt/sources.list.d/liquorix.list ] && mv -f /etc/apt/sources.list.d/liquorix.list /etc/apt/sources.list.d/liquorix.list.bak
    cat<<-EOLS > /etc/apt/sources.list.d/liquorix.list
    	# Liquorix is a distro kernel replacement built using the best
    	# configuration and kernel sources for desktop, multimedia, and 
    	# gaming workloads.
    
    	deb http://liquorix.net/debian sid main past
    	#deb-src http://liquorix.net/debian sid main past
    
    	# Mirrors:
    	#
    	# Unit193 - France
    	deb http://mirror.unit193.net/liquorix sid main
    	# deb-src http://mirror.unit193.net/liquorix sid main
    	#
    	# Liquorix - Cloudfront Global CDN
    	# deb http://cdn.liquorix.net/debian sid main
    	# deb-src http://cdn.liquorix.net/debian sid main
    
    	EOLS
    }
    
    function apt_setup() {
      base_repos_setup
      liquorix_repos_setup
      echo -e '\nAggiornamento delle liste dei pacchetti...\n'
      apt-get update > "update.log" 2>&1 \
        || fail "aggiornamento del DB di APT fallito."
      echo -e '\nInstallazione dei "keyrings" per APT'
      apt-get --allow-unauthenticated -y install \
        '((^(deb(ian)?|liquorix)-([^-]+-)?)|-archive-)keyring.?' \
        2>&1|tee "install.keyrings.log" \
        || fail "installazione dei keyring fallito."
      # è necessario aggiornare di nuovo
      apt-get update >> "update.log" 2>&1 \
        || fail "aggiornamento del DB di APT fallito."
    }
    
    function basic_packages_setup() {
      echo -e '\nRimozione dei pacchetti superflui...'
      apt-get -y purge pulseaudio	2>&1|tee "purge.log"
      apt-get -y autoremove		2>&1|tee "autoremove.log"
      echo -e '\nInstallazione degli aggiornamenti di sistema...'
      apt-get -y dist-upgrade	2>&1|tee "upgrade.log" || fail "aggiornamento del sistema fallito."
      apt-get -y autoremove		2>&1|tee -a "autoremove.log"
    
      echo -e '\nInstallazione accessori vari, ALSA utils, rtirq, ffmpeg, sox, ecc...'
      package_list='
    	  firmware-linux
    	  sudo
    	  gdebi-core
    	  htop
    	  fdupes
    	  mc
    	  gpm
    	  openssh-client
    	  openssh-server
    	  ssh
    	  alsa-utils
    	  rtirq-init
    	  flac
    	  ffmpeg
    	  sox
    	  libsox-fmt-all
      '
      for package in $package_list; do
          apt-get --install-recommends -y install "$package" 2>&1|tee -a "install.packages.log"
      done
    }
    
    function install_liquorix_kernel() {
      echo -e '\nInstallazione del Kernel Liquorix...'
      if [ "$(arch)" == "x86_64" ]; then
        MyKernel="linux-image-liquorix-amd64"
      else
        MyKernel="linux-image-liquorix-686"
      fi
      apt-get --no-install-recommends -y install $MyKernel 2>&1|tee "install.kernel.log"
      cat <<-EOK # > "kernel_notice.txt"
    
    		ATTENZIONE: 
    		per attivare il nuovo Kernel è necessario riavviare il sistema.
    		
    	EOK
    }
    
    # main - start doing real things
    myName=$(basename "$0")
    myWorkdir="/var/tmp/$myName.$(date '+%F.%H-%M-%S')"
    [ ! -e "$myWorkdir" ] && mkdir "$myWorkdir" 
    cd "$myWorkdir" || fail "impossibile accedere alla directory di lavoro: $myWorkdir"
    select_install_type
    disable_swap
    uninstall_syslogger
    fstab_setup
    grub_setup
    limits_setup
    echo -e '\nSetup ottimizzazioni varie...'
    # parametri di sysctl, setup di udev, ecc.
    udev_setup
    sysctl_setup
    rclocal_setup
    apt_setup
    basic_packages_setup
    install_liquorix_kernel
    
    echo -e '\nConfigurazioni di base completate.'
    
    # Installazione degli elementi del sistema selezionato
    case "$TipoSistema" in
      player)
        install_squeezelite	2>&1|tee install_squeezelite.log
        ;;
      server)
        install_LMS		2>&1|tee install_LMS.log
        ;;
      completo)
        install_squeezelite	2>&1|tee install_squeezelite.log
        install_LMS		2>&1|tee install_LMS.log
    esac
    echo -e "\nSetup completato."
    if ls -1 *.txt >/dev/null 2>&1 ; then
      cat <<-EON
      
    	Saranno ora visualizzate le note finali, che si prega di 
    	leggere con la massima attenzione. 
    	
    	I files che state per leggere insieme ai log dettagliati
    	si trovano nella directory:
    	  $myWorkdir
    	potete consultarli nuovamente in seguito con il comando:
    	  less nome_file
    	
    	Utilizzate i tasti freccia e PgUp/PgDn per far scorrere il 
    	testo. Premete il tasto "q" per uscire dal visualizzatore.
    	
    	EON
      pausa
      for file in *.txt ; do
        less "$file"
      done
    fi
    echo -e "\aThat's all, folks!"
    Xchè non fai un Repo in GitHub? (vale anche per la guida gi Giovanni e qualsiasi altro lavoro)?
    Ciao, Marco.

    "Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction."
    — E. F. Schumacher (mis-attributed to A. Einstein)
    ________________________________________________________________________________
    Autore della patch R2 per Squeezelite e del plugin C-3PO. note libere
    Logitech media Server 7.9 > miniPc + squeezelite-R2 / SB+ > "Lu Scalmentu" NOS R2R DAC by TubeOne/ AudioResearch DAC 1-20 >
    Klimo Merlino Gold TPS > DIS Interconnect > Kent Gold > Reference > Monitor Audio Studio 20 SE

Pagina 74 di 189
prima
... 24 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 124 174 ... ultimo

Informazioni Thread

Users Browsing this Thread

Ci sono attualmente 4 utenti che stanno visualizzando questa discussione. (0 utenti e 4 ospiti)

Regole d'invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
nexthardware.com - © 2002-2022