Erwan.me

Aller au contenu | Aller au menu | Aller à la recherche

mardi 18 octobre 2016

Modem 3G Huawei E3131 sur Raspbian

Après la clef 3G TP-Link MA260 et la Huawei E303, je vous propose une autre Huawei : E3131.

Après le branchement de la clef, on obtient un pseudo lecteur CD-ROM contenant le driver Windows Ⓒ :

lsusb
Bus 001 Device 024: ID 12d1:15ca Huawei Technologies Co.

On va la passer en mode Modem :

sudo usb_modeswitch -v 12d1 -p 15CA -M '55534243123456780000000000000011062000000100000000000000000000'

lsusb
[...]
Bus 001 Device 024: ID 12d1:1506 Huawei Technologies Co., Ltd. E398 LTE/UMTS/GSM Modem/Networkcard

ifconfig
[...]
wwan0     Link encap:Ethernet  HWaddr 00:X:X:X:X
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

Pour automatiser le changement de mode et le rendre persistant, on va utiliser comme à chaque fois usb_modeswitch :

sudo nano /etc/usb_modeswitch.d/12d1\:15ca

#Huawei E3131 (Variant)
TargetVendor= 0x12d1
TargetProductList="1506"
MessageContent="55534243123456780000000000000011062000000100000000000000000000"

Avec la règle udev qui va bien :

sudo nano /lib/udev/rules.d/40-usb_modeswitch.rules

[...]

LABEL="modeswitch_rules_begin"

[...]

# Huawei E3131 (Variant)
ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="15ca", RUN+="usb_modeswitch '%b/%k'"

[...]

LABEL="modeswitch_rules_end"

Pour prendre en compte de cette nouvelle règle sans redémarrage :

sudo udevadm control --reload-rules

Vient ensuite la configuration du dialer. En ligne de commande j'utilise wvdial (disponible dans les dépôts) :

sudo nano /etc/wvdial.conf

[Dialer Defaults]
Modem           = /dev/ttyUSB0
Modem Type      = Analog Modem
Baud            = 460800
ISDN            = 0
Stupid Mode     = 1
New PPPD        = yes
Dial Command    = ATD
Phone           = *99#
Username        = { }
Password        = { }
Init1           = ATZ
Init2           = ATQ0 V1 E1 S0=0
Init3           = AT+CFUN=1,0
Init4           = AT+CGDCONT=1,"IP","apn.de.votre.fournisseur"

Pour tester :

sudo wvdial CYM
--> WvDial: Internet dialer version 1.61
--> Initializing modem.
--> Sending: ATZ
ATZ
OK
--> Sending: ATQ0 V1 E1 S0=0
ATQ0 V1 E1 S0=0
OK
--> Sending: AT+CFUN=1,0
AT+CFUN=1,0
OK
--> Sending: AT+CGDCONT=1,"IP","apn.de.votre.fournisseur"
AT+CGDCONT=1,"IP","apn.de.votre.fournisseur"
OK
--> Modem initialized.
--> Sending: ATD*99#
--> Waiting for carrier.
ATD*99#
CONNECT
--> Carrier detected.  Starting PPP immediately.
--> Starting pppd at Tue Oct 18 11:28:09 2016
--> Pid of pppd: 3959
--> Using interface ppp0
--> pppd: ���vx[1b]�[01]�[1c]�[01][05]
[...]
--> local  IP address 10.X.X.X
--> remote IP address 10.X.X.X
--> primary   DNS address 194.X.X.X
--> secondary DNS address 194.X.X.X
[...]

On termine par la configuration réseau persistante :

sudo nano /etc/network/interfaces

[...]
# Huawei E3131 (modem mode)
allow-hotplug wwan0
iface wwan0 inet wvdial

# Generic PPP 3G Modem
auto ppp0
iface ppp0 inet wvdial
[...]

And voilà :)

mardi 5 avril 2016

Android Studio - correction orthographique française

Pour activer la correction orthographique française dans Android Studio :

  • Télécharger le dictionnaire :
  • Convertissez le fichier en UTF-8 (avec un éditeur comme geany ou en ligne de commande avec iconv ou encore recode)
  • Puis dans Android Studio :
    • File -> Settings -> Spelling -> Dictionaries
    • Ajouter le dossier de votre dictionnaire.

Sources :

lundi 15 février 2016

Ubuntu et les casques Audio Bluetooth

Certains casques audio sous Ubuntu 14.04 ne fonctionne pas correctement : l'appareil est bien détecté, la connexion se fait mais impossible de sélectionner le périphérique en sortie sonore. Pour corriger cela :

gksudo pactl load-module module-bluetooth-discover

ubuntu 14.04 bluetooth headeset

Sources :

Mise à jour pour Ubuntu 16.04 :

Si le son ne fonctionne pas : dans le menu "Paramètres sonore", il faut passer en mode "Casque HSP/HFP", déconnecter, reconnecter et remettre le mode "A2DP". Source :

jeudi 4 février 2016

Redémarrer une clef USB 3G Huawei Hilink HSPDA E303 en ligne de commande

Pour redémarrer une clef USB Huawei Hilink HSPDA E303 en ligne de commande :

  • Récupération de la token :
wget --quiet -O - http://192.168.8.1/api/webserver/token | grep -oPm1 "(?<=<token>)[^<]+"
  • Envoi de la commande de reboot :
wget --quiet --post-data "<?xml version='1.0' encoding='UTF-8'?><request><Control>1</Control></request>" --header="__RequestVerificationToken:798334363" -O - http://192.168.8.1/api/device/control

Remplacez 798334363 par la token reçue


Vous devriez avoir une confirmation :

<?xml version="1.0" encoding="UTF-8"?>
<response>OK</response>

Pour information, voici un message d'erreur (probablement une erreur de token) :

<?xml version="1.0" encoding="UTF-8"?>
<error>
<code>125001</code>
<message></message>
</error>

On peut en faire une petite fonction :

function reboot_huawei_hikink_303()
{
        TOKEN=$(wget --quiet -O - http://192.168.8.1/api/webserver/token | grep -oPm1 "(?<=<token>)[^<]+")
        wget --quiet --post-data "<?xml version='1.0' encoding='UTF-8'?><request><Control>1</Control></request>" --header="__RequestVerificationToken:$TOKEN" -O - http://192.168.8.1/api/device/control  > /dev/null 2>&1
}

Informations complémentaires :

mardi 27 octobre 2015

Debian Squeeze + OpenVZ : OOM killed process

Sur certains serveurs, j'ai énormément de processus tués :

cat /var/log/syslog |grep "OOM killed"
Oct 27 13:31:37 cli2 kernel: [33918.292623] OOM killed process apache2 (pid=25927, ve=162) exited, free=8895850 gen=165.
Oct 27 13:31:37 cli2 kernel: [33918.299598] OOM killed process apache2 (pid=29878, ve=162) exited, free=8900690 gen=166.
Oct 27 13:31:37 cli2 kernel: [33918.303564] OOM killed process apache2 (pid=1310, ve=162) exited, free=8905696 gen=167.
Oct 27 13:31:37 cli2 kernel: [33918.305936] OOM killed process apache2 (pid=7352, ve=134) exited, free=8906995 gen=168.
Oct 27 13:31:47 cli2 kernel: [33928.420456] OOM killed process apache2 (pid=12134, ve=134) exited, free=8912178 gen=169

Pourtant, j'ai encore plein de mémoire disponible :

free -m
                total       used       free     shared    buffers     cached
Mem:         64406      31985      32421          0       2939      14485

Une solution éventuelle est de modifier le comportement de la gestion du OOM Killer :

echo 1 >  /proc/sys/vm/oom_kill_allocating_task
echo 2 > /proc/sys/vm/overcommit_memory

Pour un effet permanent, rajouter dans le fichier `/etc/sysctl.conf` :

vm.oom_kill_allocating_task = 1
vm.overcommit_memory = 2
sysctl -p

Un peu d'explication sur ces paramètres potentiellement dangereux :

man proc

 /proc/sys/vm/oom_kill_allocating_task (since Linux 2.6.24)
              This enables or disables killing the OOM-triggering task in out-of-memory situations.

              If  this  is  set to zero, the OOM-killer will scan through the entire tasklist and select a task based on heuristics to kill.  This
              normally selects a rogue memory-hogging task that frees up a large amount of memory when killed.

              If this is set to nonzero, the OOM-killer simply kills the task that triggered the out-of-memory condition.  This avoids a  possibly
              expensive tasklist scan.

              If /proc/sys/vm/panic_on_oom is nonzero, it takes precedence over whatever value is used in /proc/sys/vm/oom_kill_allocating_task.
              
              The default value is 0.

/proc/sys/vm/overcommit_memory
              This file contains the kernel virtual memory accounting mode.  Values are:
              
                     0: heuristic overcommit (this is the default)
                     1: always overcommit, never check
                     2: always check, never overcommit

              In mode 0, calls of mmap(2) with MAP_NORESERVE are not checked, and the default check is very weak, leading to the risk of getting a
              process "OOM-killed".  Under Linux 2.4 any nonzero value implies mode 1.  In mode 2 (available since Linux 2.6), the  total  virtual
              address  space  on  the  system is limited to (SS + RAM*(r/100)), where SS is the size of the swap space, and RAM is the size of the
              physical memory, and r is the contents of the file /proc/sys/vm/overcommit_ratio.

lundi 14 septembre 2015

Freebox, fail2ban et ssh

S'il vous arrive souvent d'être banni par fail2ban via votre connexion Free, c'est à cause du reverse DNS de Free. Par défaut, ce reverse DNS ne pointe pas vers votre adresse IP.

tail -f  /var/log/auth.log |grep sshd
Address X.X.X.X maps to sau64-1-X-X-X-X-fbx.proxad.net, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT!

Solution possibles :

  • Supprimer la règle dans la configuration de fail2ban dans le fichier /etc/fail2ban/filter.d/sshd.conf
##########MACRO#1#
  • Choisir un reverse DNS sur votre interface de gestion Free

Reverse DNS Free

vendredi 15 mai 2015

Impossible de cacher les fichiers cachés dans Nautilus !

Ce bug est très gênant sur Ubuntu 14.04. Voici comment y remédier :

gsettings set org.gtk.Settings.FileChooser  show-hidden false

Avec un éditeur graphique de configuration dconf-editor : Editeur_dconf_006.png

Pour les anciennes version d'Ubuntu / Nautilus :

gsettings set org.gnome.nautilus.preferences show-hidden-files false
gsettings set org.gtk.settings.file-chooser  show-hidden false

Source :

mercredi 6 mai 2015

Synthèse vocale : Asterisk, SVOX Pico TTS et sox

Pour faire suite à mon précédent billet sur la synthèse vocale, voici un exemple d'intégration de pico dans Asterisk :

Création des fichiers temporaires :

exten => _X.,n(mktemp),NoOp("Création des fichiers temporaires")
exten => _X.,n,Set(TEMP_FILE=${SHELL(/bin/mktemp |tr -d '\n')})

TTS :

exten => _X.,n,System(/usr/bin/pico2wave -l fr-FR -w ${TEMP_FILE}.wav "${tts}")

Conversion GSM avec sox :

exten => _X.,n,System(/usr/bin/sox ${TEMP_FILE}.wav -r 8000 -c1 -e gsm ${TEMP_FILE}.gsm)

On doit supprimer le wav avant la lecture car il n'a pas la bonne fréquence :

exten => _X.,n,System(/bin/rm ${TEMP_FILE}.wav)

Lecture :

exten => _X.,n,Playback(${TEMP_FILE})

Suppression des fichiers temporaires (extension hang up) :

exten => h,n(rm),NoOp("Suppression des fichiers temporaires")
exten => h,n,System(/bin/rm ${TEMP_FILE})
exten => h,n,System(/bin/rm ${TEMP_FILE}.wav)
exten => h,n,System(/bin/rm ${TEMP_FILE}.gsm)

Synthèse vocale sous Ubuntu avec SVOX pico TTS

Assez connu des utilisateurs d'Android, ce synthétiseur vocal offre de bon résultat en français.

Licence : https://launchpad.net/ubuntu/precise/+source/svox/+copyright (Une librairie de transformation rapide en série de Fourier n'est pas libre)

Activez les dépots multiverse puis installez le paquet libttspico-utils.

Un exemple simple :

pico2wave -l fr-FR -w test.wav "Faites demi-tour dès que possible !"; 
play test.wav;

SVOX a été racheté par Nuance et a plus ou moins abandonnée le projet, certainement pour ne pas concurencer son moteur TTS payant. Google continue de développer ce moteur sur son Dépôt GIT.

Lien complémentaire : http://forum.ubuntu-fr.org/viewtopic.php?id=108430

Pour

jeudi 26 mars 2015

Deux petites "astuces" pour Spotify sur Ubuntu 14.04

Actions directement sur le menu :

Spotify Unity

mkdir -p ~/.local/share/applications
cp /usr/share/applications/spotify.desktop ~/.local/share/applications/

Rajouter les lignes suivantes :

[...]
Actions=PlayPause;Next;Previous
[Desktop Action PlayPause]
Name=Lecture/Pause
Exec=dbus-send --print-reply=literal --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.PlayPause
OnlyShowIn=Messaging Menu;Unity;
[Desktop Action Next]
Name=Suivant
Exec=dbus-send --print-reply=literal --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Next
OnlyShowIn=Messaging Menu;Unity;
[Desktop Action Previous]
Name=Précédent
Exec=dbus-send --print-reply=literal --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Previous
OnlyShowIn=Messaging Menu;Unity;
StartupWMClass=Spotify
Source : http://askubuntu.com/questions/145697/spotify-quicklist-for-unity#answer-346957
 

Avoir une icone de notification correct :

spotify fix ubuntu icon tray

wget --no-check-certificate http://bit.ly/fix-spotify-icon -O - | sh
À refaire en cas de mise à jour...

Source : https://github.com/faviouz/fix-spotify-icon

- page 1 de 32