Google Chrome su Debian Stretch 9.2

 

Google Chrome su Debian Stretch 9.2

Google Chrome su Debian Stretch 9.2

Un modo semplce per installare Google Chrome su Debian Stretch 9.2 e non solo, è quello di aggiungere direttamente i repository di Google. Si può scegliere anche tra i rami stable, beta ed unstable.

$ wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
$ echo "deb http://dl.google.com/linux/chrome/deb/ stable main" | sudo tee /etc/apt/sources.list.d/google-chrome.list
$ sudo apt update
$ sudo apt install -y google-chrome-stable

si possono installare in alternativa anche i pacchetti testing ed unstable

$ sudo apt install -y google-chrome-beta
$ sudo apt install -y google-chrome-unstable

Google Chrome su Debian Stretch 9.2

enjoy πŸ˜‰

(Solved) Begin: Running /scripts/local-block

 

(Solved) Begin: Running /scripts/local-block

(Solved) Begin: Running /scripts/local-block

Questo tipo di errore è figlio di quest'altro "start job is running for dev-disk-by…(1min 30s)", che generalmente indica un problema con la partizione di swap. Quando si hanno più distro su uno stesso hard disk è cosa comune condividere la partizione di swap, ma purtroppo questa ultima genera questo tipo di errore, facendo sì che il boot prende molto tempo, bloccandosi prima su "Begin: Running /scripts/local-block" e poi su "start job is running for dev-disk-by…(1min 30s)". Questo tipo di errore si risolve aggiornando initramfs.

# update-initramfs -u -k all

per conoscere uuid:

# blkid

(Solved) Begin: Running /scripts/local-block

enjoy πŸ˜‰

 

How to compile kernel 4.13.7 on Debian 9.2

 

How to compile kernel 4.13.7 on Debian 9.2

How to compile kernel 4.13.7 on Debian 9.2

Il kernel 4.13 porta con se diverse novità, e ad oggi si può ottenere installandolo da Debian Testing, oppure provare a compilarlo direttamente su Debian Stretch 9.2. L'unico problema è la mancanza del pacchetto kernel-package che bisogna procurarselo dai repo testing:

# echo 'deb http://ftp.it.debian.org/debian/ testing main' > /etc/apt/sources.list.d/testing.list
# apt update
# apt install git fakeroot build-essential ncurses-dev libssl-dev bc
# apt --no-install-recommends install -t testing kernel-package

una volta installato kernel package andare a commentare il repo testing che non ci servirà più!

How to compile kernel 4.13.7 on Debian 9.2

Compilazione ed installazione:

$ wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.13.7.tar.xz
$ tar xvf linux-4*
$ cd linux-4.13.7/
$ cp /boot/config-$(uname -r) .config
$ make menuconfig
$ make-kpkg clean
$ fakeroot make-kpkg --initrd --revision=1.0.edm kernel_image kernel_headers -j8
$ cd ..
$ sudo dpkg -i linux-image-* linux-headers-*

How to compile kernel 4.13.7 on Debian 9.2

enjoy πŸ˜‰

Bloccare tastiera e mouse con schermo attivo

 

Bloccare tastiera e mouse con schermo attivo

Bloccare tastiera e mouse con schermo attivo

Se ci si deve allontana momentaneamente dal pc potrebbe essere utile renderlo velocemente inaccessibile, bloccando la tastiera, il mouse, e lasciando nel contempo lo schermo attivo. Per ottenere ciò in ambiente Linux basta installare xtrlock, creare un piccolo script e poi creare una scorciatoia di tastiera per attivare il blocco:

# apt install xtrlock
# nano /usr/local/bin/lockmk

incollare dentro:

#!/bin/bash
sleep 1 && xtrlock

settare i permessi e renderlo eseguibile:


# chmod a+x /usr/local/bin/lockmk

se si usa Mate, come desktop environment, andare in System>Preferences>Hardware>Keyboard Shortucts, poi andare su Add, scegliere il nome e come comando inserire:

bash -c "sleep 1 && xtrlock"

a questo punto col doppio click si memorizza la scorciatoia, pigiando per esempio CTRL-K, chiudere e poi fare le prove. Si blocca con CTRL-K e si sblocca, mettendo la password utente e premendo invio.

Bloccare tastiera e mouse con schermo attivo

enjoy πŸ˜‰

 

Asterisk 14 Freepbx 14 su Debian Stretch 9.1

 

Asterisk 14 Freepbx 14 su Debian Stretch 9.1

Asterisk 14 Freepbx 14 su Debian Stretch 9.1

Aggiornato al 19/10/2017 su Debian 9.2

Ecco un'altra nuova guida prodotta e testata da me su come installare un centralino utilizzando  Asterisk 14 Freepbx 14 con Debian Stretch 9.1, Dopo l'ultima guida su Debian 8.8, la nuova release stable è Debian 9.1, codename Stretch, ed inevitabilmente come spesso succede, diverse cose sono cambiate. La prima cosa che si riscontra è che nei repository non si trova più php5 ma si è passati a php7.0, poi manca anche libmyodbc, quindi bisogna attrezzarsi per ottenere queste dipendenze fondamentali, dato che Freepbx non supporta ancora php7.0. I passaggi successivi saranno eseguiti come utente root e su una nuova installazione di Debian Stretch:

Aggiornare il sistema:

# apt update; apt upgrade

se viene installato un nuovo kernel riavviare.

Rimuovere php7.0 ed installare php5.6:

# apt remove --purge php7*
# apt install curl apt-transport-https net-tools -y
# curl https://packages.sury.org/php/apt.gpg | apt-key add -
# echo 'deb https://packages.sury.org/php/ stretch main' > /etc/apt/sources.list.d/deb.sury.org.list
# apt update

Scaricare le dipendenze ed i servizi necessari:

# apt install -y build-essential linux-headers-`uname -r` openssh-server apache2 bison php5.6 php5.6-mbstring php5.6-curl php5.6-fpm php5.6-cli php5.6-mysql php-pear php5.6-gd php5.6-odbc curl sox libncurses5-dev libssl-dev default-libmysqlclient-dev mpg123 libxml2-dev libnewt-dev sqlite3 libsqlite3-dev pkg-config automake libtool autoconf git unixodbc-dev uuid uuid-dev libasound2-dev libogg-dev libvorbis-dev libicu-dev libcurl4-openssl-dev libical-dev libneon27-dev libsrtp0-dev libspandsp-dev subversion libtool-bin python-dev php5.6-xml php5.6-gd default-mysql-client default-mysql-server default-mysql-client-core default-mysql-server-core bison flex mongodb dirmngr php5.6-cgi libapache2-mod-security2 libapache2-mod-php5.6

Installare nodejs:

# curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
# apt install -y nodejs

Reboot server:

# reboot

Scaricare: Dahdi Libpri (solo se si ha hardware pstn) Jansson, Asterisk, Freepbx

# cd /usr/src
# wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz
# wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-current.tar.gz
# wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-14-current.tar.gz
# wget -O jansson.tar.gz https://github.com/akheron/jansson/archive/v2.10.tar.gz
# wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-14.0-latest.tgz

Compilare ed installare Dahdi:

# cd /usr/src
# tar xvfz dahdi-linux-complete-current.tar.gz
# rm -rf dahdi-linux-complete-current.tar.gz
# cd dahdi-linux-complete-2*
# make all
# make install
# make config
# cd /usr/src
# tar xvfz libpri-current.tar.gz
# rm -rf libpri-current.tar.gz
# cd libpri-1*
# make -j4
# make install

Installare Jansson:

# cd /usr/src
# tar vxfz jansson.tar.gz
# rm -rf jansson.tar.gz
# cd jansson-*
# autoreconf -i
# ./configure
# make -j4
# make install

Installare Asterisk 14:

# cd /usr/src
# tar xvfz asterisk-14-current.tar.gz
# rm -rf asterisk-14-current.tar.gz
# cd asterisk-14.*
# contrib/scripts/get_mp3_source.sh
# ./contrib/scripts/install_prereq install
# ./configure --with-pjproject-bundled
# make menuselect

a questo punto inserire il prefisso internazionale, nel nostro caso 39:

Asterisk 14 Freepbx 14 su Debian Stretch 9.1

Asterisk 14 Freepbx 14 su Debian Stretch 9.1

e poi abilitare  format_mp3:

Installare Asterisk 13 con Freepbx 12 su Raspberry pi 2 e Debian Jessie

Asterisk 14 Freepbx 14 su Debian Stretch 9.1

# make -j4
# make install
# make config
# ldconfig

adesso bisogna verificare che asterisk funzioni correttamente:

# /etc/init.d/asterisk start
# asterisk -rvvv

output:

Asterisk 14 Freepbx 14 su Debian Stretch 9.1

Installazione e configurazione di Apache2 e permessi:

# /etc/init.d/asterisk stop
# groupadd asterisk
# useradd -d /var/lib/asterisk -g asterisk asterisk
# chown -R asterisk:asterisk /var/spool/asterisk /var/run/asterisk /etc/asterisk /var/{lib,log,spool}/asterisk /usr/lib/asterisk /var/www
# sed -i 's/#AST_USER="asterisk"/AST_USER="asterisk"/g' /etc/default/asterisk
# sed -i 's/#AST_GROUP="asterisk"/AST_GROUP="asterisk"/g' /etc/default/asterisk
# cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf_orig
# sed -i 's/AllowOverride None/AllowOverride All/'  /etc/apache2/apache2.conf
# sed -i 's/^\(User\|Group\).*/\1 asterisk/' /etc/apache2/apache2.conf
# mv /var/www/html /var/www/html.bak

Installazione e Configurazione ODBC:

andare direttamente sul sito e scaricare mysql-connector-odbc-5.3.9-linux-debian9-x86-64bit.tar.gz, e poi copiare i driver nel giusto percorso:

# tar -xvf mysql-connector-odbc-5.3.9-linux-debian9-x86-64bit.tar.gz
# cp mysql-connector-odbc-5.3.9-linux-debian9-x86-64bit/lib/libmyodbc5* /usr/lib/x86_64-linux-gnu/odbc/

poi:

# nano /etc/odbcinst.ini

ed incollare dentro qualcosa del genere, considerando che i nomi dei due driver possono cambiare in base alla release di mysql-connector:

[MySQL]
Description = ODBC for MySQL
Driver = /usr/lib/x86_64-linux-gnu/odbc/libmyodbc5S.so
Setup = /usr/lib/x86_64-linux-gnu/odbc/libodbcmyS.so
FileUsage = 1

poi ancora:

# nano /etc/odbc.ini

ed incollare dentro:

[MySQL-asteriskcdrdb]
Description=MySQL connection to 'asteriskcdrdb' database
driver=MySQL
server=localhost
database=asteriskcdrdb
Port=3306
Socket=/var/run/mysqld/mysqld.sock
option=3

a questo punto riavviare:

# reboot

al riavvio:

# a2enmod rewrite
# a2enconf php5.6-fpm
# a2enmod proxy_fcgi setenvif
# systemctl restart apache2

ultima modifica da fare:

# nano /etc/php/5.6/apache2/php.ini

e nel menu Resource Limits settare memory_limit = 256M, ed ancora nel menu File Uploads settare upload_max_filesize = 120M

# systemctl restart apache2

Installazione di Freepbx 14:

# cd /usr/src
# tar vxfz freepbx-14.0-latest.tgz
# rm -rf freepbx-14.0-latest.tgz
# cd freepbx
# ./start_asterisk start
# ./install -n

se tutto è andato bene il server Asterisk è raggiungibile all'indirizzo http://ip_raspberry. La prima cosa da fare è quella di scegliere nome utente, password e mail, per accedere al pannello di amministrazione. Andare poi nel menu Admin-Module Admin e scaricare ed aggiornare tutti i moduli. In caso di problemi:

# fwconsole chown
# fwconsole reload
# fwconsole ma upgrade framework
# fwconsole restart

Errori:

Nessuno, o meglio nel caso di problemi di moduli mancanti in Dahdi, bisogna ripetere di nuovo compilazione ed installazione.

Asterisk 14 Freepbx 14 su Debian Stretch 9.1

enjoy πŸ˜‰

Duplice versione di php7.0 e php5.6 su Debian Stretch

Duplice versione di php7.0 e php5.6 su Debian Stretch

Duplice versione di php7.0 e php5.6 su Debian Stretch

Con l'uscita dell'ultima stable Debian 9 Stretch, la versione di php di default è la 7.0, ma sarebbe utile avere a disposizione anche la versione 5.6. Per averle entrambe la strada più semplice è quella di aggiungere i repository deb.sury.org:

# curl https://packages.sury.org/php/apt.gpg | apt-key add -
# echo 'deb https://packages.sury.org/php/ stretch main' > /etc/apt/sources.list.d/deb.sury.org.list
# apt update

per verificare la versione di php:

# php -v

per cambiare versione:

# update-alternatives --config php

Duplice versione di php7.0 e php5.6 su Debian Stretch

enjoy πŸ˜‰

 

Aggiornare Bios Lenovo da Linux

 

Aggiornare Bios Lenovo da Linux

Aggiornare Bios Lenovo da Linux

Per aggiornare il bios sul mio Lenovo Thinkpad T540p, in tutta sicurezza ho usato la mia Debian Stretch e una chiavetta usb. Per prima cosa bisogna scaricare direttamente dal sito Lenovo l'utility BIOS Update (Bootable CD). Dopodichè il file .iso lo si converte in .img e lo si mette su usb:

geteltorito -o bios.img gmuj23uc.iso
sudo dd if=bios.img of=/dev/sdX bs=1M

adesso riavvare il pc e al boot premere F12 e scegliere la chiavetta usb, a questo punto bisognerà seguire l'indicazione per aggiornare il bios.

Aggiornare Bios Lenovo da Linux

enjoy πŸ˜‰

Vodafone Station Revolution OpenVpn e Asus RT-AC68U

 

Vodafone Station Revolution OpenVpn e Asus RT-AC68U

Vodafone Station Revolution OpenVpn e Asus RT-AC68U, dal titolo sembrerebbe tutto facile ma purtroppo non è così. Passando da qualche giorno alla fibra FTTC di Vodafone, ho dovuto fare dei cambiamenti all'interno della mia rete, ma per comprendere la problematica è meglio fare un passo indietro. Il mio vecchio operatore era Infostrada che mette a disposizione dei propri clienti un modem huawei, che si configura con i parametri PPOE con username e password uguali per tutti (benvenuto-ospite). Questo modem supporta il bridge e quindi io lo usavo solo come modem, e tutto il resto lo gestiva il mio Asus RT-AC68U con molta soddisfazione. Il router Asus prima lo utilizzavo con DD-WRT, per poi passare a Asuswrt-Merlin. Dunque tornando alla vodafone station revolution, ho subito pensato di poter replicare la stessa configurazione, ma mi sbagliavo di grosso. La VSR residenziale ha tanti bug, che posso aggirare (quasi tutti)  usando il router Asus, ed alcune mancanze, prima di tutto la mancanza della modalità Bridge e PPOE (No user/password), ma questo evidentemente fa parte della loro politica e non entro nel merito. La VSR quindi accede ad internet tramite il Mac Address. Se si cerca di bypassare la VSR utilizzando un router il primo problema si presenta con l'IP pubblico mascherato da un IP locale, in virtù di una doppia wan/doppio nat, e quindi non c'è verso di far funzionare un Dynamic DNS e quindi OpenVpn. Praticamente nei contratti residenziali  non c'è modo di rendere la VSR trasparente, come facevo prima col modem huawei infostrada, quindi bisogna cercare di limitare i danni.

Vodafone Station Revolution OpenVpn e Asus RT-AC68U

Configurazione lato VSR:

  1. Gateway 192.168.1.1 (o qual si voglia)
  2. WIFI Disabilitato
  3. DNS Sicuro Disabilitato
  4. Firewall Disabilitato
  5. DMZ Abilitato verso 192.168.1.50 o altro IP
  6. DDNS Abilitato e Configurato

Configurazione lato ASUS:

WAN con IP Statico

  • 192.168.1.50
  • 255.255.255.0
  • 192.168.1.1

LAN

  • 192.168.0.1
  • 255.255.255.0

WAN – DDNS

Abilitare DDNS, scegliere Custom ed inserire Host Name. Come si può vedere, il router non riesce a raggiungere l'IP pubblico quindi presenta i seguenti errori:

The wireless router currently uses a private WAN IP address.
This router may be in the multiple-NAT environment and DDNS service cannot work in this environment.

Per risolvere il problema abbiamo bisogno di abilitare SSH in Administartion-System e Enable JFFS custom scripts and configs. Inserire un hard disk esterno con almeno una partizione formattata in ext4 e dopo essere entrati nel router via SSH, installare Entware, con il comando:

entware-setup.sh

che ci permetterà di installare ulteriori programmi che ci serviranno:

opkg list
opkg install nano

verrà creata anche una cartella scripts in /jffs/scripts dove verranno inseriti gli scripts che ci serviranno. Io ho un account con dyndns.org, quindi mi serve uno script che aggiorni sempre il mio ip e che possa comunicarlo al server bypassando la VSR. Portarsi quindi nella cartella scripts e creare lo script up.sh

Asus@RT-AC68U-A088:/jffs/scripts#nano up.sh

ed incollare dentro, adattandolo al proprio host DNS:

#!/bin/sh

while [ ! -n  "`ifconfig | grep tun11`" ]; do
    sleep 1
    done

    SERVICE="dyndns"
    USER="user_dyndns"
    PASS="password_dyndns"
    HOST="hostname_dyndns"
    IP=$(wget -qO - http://icanhazip.com)

    ez-ipupdate -S $SERVICE -u $USER:$PASS -h $HOST -a $IP

    exit 0

 

chmod 700 /jffs/scripts/up.sh

adesso serve un'altro script che ogni 2 ore controlli ed informi il router di un eventuale cambio IP.

nano services-start

ed aggiungere:

#!/bin/sh

/usr/sbin/cru a DDNS "0 0,2,4,6,8,10,12,14,16,18,20,22 * * * /jffs/scripts/up.sh

Vodafone Station Revolution OpenVpn e Asus RT-AC68U

a questo punto dovrebbe essere quasi tutto utilizzabile!

enjoy πŸ˜‰

 

Apt Pinning sicuro con Debian Testing-Unstable-Experimental

 

Apt Pinning sicuro con Debian Testing-Unstable-Experimental

Apt Pinning sicuro con Debian Testing-Unstable-Experimental

Per avere una Debian sempre aggiornata con gli ultimi pacchetti, si può rimanere alla versione testing o per i più temerari addirittura in Sid/unstable. Se addirittura si volesse far convivere simultaneamente tutti e tre i repository, testing/unstable/experimental si può utilizzare il pinning:

Aggiornare il sistema:

# apt update; apt upgrade -y
# apt dist-upgrade -y

Aggiungere i repository:

# nano /etc/apt/sources.list

inserire:

## Debian Testing
deb http://httpredir.debian.org/debian/ testing main non-free contrib
deb-src http://httpredir.debian.org/debian/ testing main non-free contrib

## Debian Security
deb http://security.debian.org/ stretch/updates main contrib non-free
deb-src http://security.debian.org/ stretch/updates main contrib non-free

## Debian Sid/Unstable
deb http://ftp.it.debian.org/debian unstable main contrib non-free

## Debian experimental
deb http://ftp.it.debian.org/debian experimental main contrib non-free
# apt update

creazione dei due files che indicano quali sono le nostre preferenze per il pinning:

# nano /etc/apt/apt.conf.d/apt.conf

ed inserire:

APT::Default-Release "testing";
APT::Cache-Limit 65000000;
Apt::Get::Purge;
APT::Clean-Installed;
APT::Get::Fix-Broken;
APT::Get::Fix-Missing;
APT::Get::Show-Upgraded "true";
# nano /etc/apt/preferences

ed inserire:

Package: *
Pin: release a=testing
Pin-Priority: 750

Package: *
Pin: release n=sid
Pin-Priority: 700

Package: *
Pin: release a=experimental
Pin-Priority: 650
# apt update; apt upgrade

per installare un pacchetto dal ramo unstable:

# apt install -t unstable firefox

per conoscere da quale ramo è stato installato un pacchetto:

# apt install apt-show-versions
# apt-show-versions -b|awk 'BEGIN{FS="/"}$2=="testing"'
# apt-show-versions -b|awk 'BEGIN{FS="/"}$2=="unstable"'

Apt Pinning sicuro con Debian Testing-Unstable-Experimental

enjoy πŸ˜‰

Trasformare un Libro da pdf in AudioLibro

 

Trasformare un Libro da pdf in AudioLibro

Trasformare un Libro da pdf in AudioLibro

A volte può risultare utile trasformare un file pdf in un audiolibro. Per ottenere questo risultato bisogna utilizzare pdf2mp3, che è uno script che si appoggia a pdftotext, pico2wave e lame. Il processo non farà altro che convertire il pdf in tanti files txt, pico2wave li trasformerà in files wav, e per ultimo lame li convertirà in mp3. A conclusione di questo processo si utlizzerà cat per unire tutti i files.

Installazione:

# apt install python poppler-utils lame libttspico-utils coreutils mawk gawk git -y
# git clone https://github.com/jccall80/pdf2mp3
# cd pdf2mp3; chmod +x pdf2mp3
# cp pdf2mp3 /usr/bin/

prima di utilizzare lo script, bisognerà cambiare il linguaggio che di default è settato su ES:

# nano /usr/bin/pdf2mp3

e sostituire es=ES in it=IT come nella stringa sotto:

pico2wave -l=it-IT -w="$WAVE" "`cat $FIRST_FILE.lock`"

Utilizzo:

# pdf2mp3 /path/to/pdf

il comando sopra creerà nella cartella /tmp/pdf2mp3 diversi files mp3 che dovranno essere uniti con il comando:

# cd /tmp/pdf2mp3/
# cat *.mp3 > audiolibro.mp3

adesso con qualunque player si potrà ascoltare il libro

Trasformare un Libro da pdf in AudioLibro

enjoy πŸ˜‰