Fixing tethering on Android

This can be fixed permanently using the following procedure (UPDATE: no root required):

  1. Enable developer mode (Go to Settings -> About phone, and click on the build number until the developer mode is enabled).
  2. Enable USB debugging under Settings -> Developer options
  3. Connect the device with a USB cable to a computer with the Android SDK platform tools installed
  4. Start an adb shell: adb shell
  5. In the adb shell, run this command: settings put global tether_dun_required 0

For rooted phones, this alternate procedure can be done without connecting the device to a computer:

  1. Root the phone
  2. Install a SQLite editor such as SQLite Debugger
  3. Using the SQLite editor, navigate to the file /data/data/ (this is the part that requires root)
  4. Enter the database global
  5. Change the value of field tether_dun_required to 0.

Tether away!


Browser – Onglets

Gérer les onglets au mieux

Ouvrir le dernier onglet fermé

Pour cela, pressez simultanément les touches ctrl+maj+t. L’astuce fonctionne sur tous les navigateurs et vous pouvez d’ailleurs la répéter à plusieurs reprises

Services linux (systemd)

Activer un service au démarrage

Pour configurer un service pour qu’il soit lancé automatiquement au démarrage du système, utiliser la commande :

Code BASH :

 systemctl enable nom_du_service.service

Désactiver un service au démarrage

Pour configurer un service pour qu’il ne soit plus lancé automatiquement au démarrage du système, utiliser la commande :

Code BASH :

 systemctl disable nom_du_service.service

Services en fonction

Statut d’un service

Pour connaître le statut d’un service, utiliser la commande :

Code BASH :

# systemctl is-active nom_du_service.service


Les informations sont très minimalistes.
Pour plus de détails, utiliser la commande :

Code BASH :

systemctl status nom_du_service.service


Il est possible de lister tous les services actifs :

Code BASH :

# systemctl list-units --type=service

Exécution de services

Démarrer un service

Pour démarrer un service, utilisez la commande :

Code BASH :

# systemctl start nom_du_service.service

Illustration avec le service sshd :

Code BASH :

# systemctl is-active sshd.service 
# systemctl stop sshd.service
# systemctl is-active sshd.service 

Arrêter un service

Pour arrêter un service, utilisez la commande :

Code BASH :

# systemctl stop nom_du_service.service

Illustration avec le service sshd :

Code BASH :

# systemctl is-active sshd.service 
# systemctl stop sshd.service
# systemctl is-active sshd.service 

Redémarrer un service

Une commande existe pour redémarrer un service (ce qui correspond à un systemctl stop enchaîné d’un systemctl start ) :

Code BASH :

systemctl restart nom_du_service.service

Code BASH :

# systemctl restart sshd.service

Recharger la configuration un service

Redémarrer un service entraîne son arrêt pendant un très court moment.
Imaginons, on modifie la configuration de samba (partage de fichiers), on souhaite prendre en compte la nouvelle configuration.
Redémarrer le service entraîne une déconnexion d’utilisateurs, et si un fichier est en cours de transfert, celui-ci s’annule.

On peut recharger la configuration sans interrompre le service avec cette commande :

Code BASH :

systemctl reload nom_du_service.service

Exemple avec le service de samba :

Code BASH :

# systemctl reload smb.service

How to use Alcatel One Touch X220L 3G modem in Linux

Plug-in your device and type:
>$sudo lsusb
Look for a line looking like this:
>$Bus 001 Device 003: ID 1bbb:f000 T & A Mobile Phones

If you have “f000” part, then you need to install a program that will switch it to “0000”.
1. Install usb-modeswitch.

sudo apt-get update
sudo apt-get install ppp usb-modeswitch wvdial

2. Configure usb-modeswitch ( >$sudo nano /etc/usb_modeswitch.conf ) adding the lines:
# Alcatel X220L

DefaultVendor=  0x1bbb
DefaultProduct= 0xf000

TargetVendor=   0x1bbb
TargetProduct=  0x0000

# only for reference
# MessageEndpoint=0x01


Save and plug the device again.
3. >$sudo usb_modeswitch

4. Look at your syslog ($dmesg|tail), you should now see:
“….. Direct-Access USBModem MMC Storage 2.31 PQ: 0 ANSI: 2 ”

5. Start the driver for the modem
>$sudo modprobe usbserial vendor=0x1bbb product=0x0000

In >$dmesg|tail you should now see:

Jul 11 10:24:16 eee-yard kernel: [  100.388222] usb 1-2: configuration #1 chosen from 1 choice
Jul 11 10:24:16 eee-yard kernel: [  100.390492] usbserial_generic 1-2:1.0: generic converter detected
Jul 11 10:24:16 eee-yard kernel: [  100.390658] usb 1-2: generic converter now attached to ttyUSB0
Jul 11 10:24:16 eee-yard kernel: [  100.390952] usbserial_generic 1-2:1.1: generic converter detected
Jul 11 10:24:16 eee-yard kernel: [  100.391068] usb 1-2: generic converter now attached to ttyUSB1
Jul 11 10:24:16 eee-yard kernel: [  100.394230] scsi4 : SCSI emulation for USB Mass Storage devices
Jul 11 10:24:16 eee-yard kernel: [  100.395689] usbserial_generic 1-2:1.3: generic converter detected
Jul 11 10:24:16 eee-yard kernel: [  100.395847] usb 1-2: generic converter now attached to ttyUSB2

Note the last number where your usb puts the modem, in my case, it was USB4.
To check it, just enter:
>$screen /dev/ttyUSB4

and at the prompt, ask the modem to identify itself typing:
The answer should be:
>Manufacturer: TCT Mobile International Limited
Model: HSPA Data Card
Revision: C1111000
IMEI: 352079030611766

If you want to automate this, you can add the rules with >$sudo nano /etc/udev/rules.d/50-alcatel.rules adding

SUBSYSTEM==”usb”, SYSFS{idProduct}==”f000″, SYSFS{idVendor}==”1bbb”, RUN+=”/usr/sbin/usb_modeswitch”
SUBSYSTEM==”usb”, SYSFS{idProduct}==”0000″, SYSFS{idVendor}==”1bbb”, RUN+=”/sbin/modprobe usbserial vendor=0x1bbb product=0x0000″

Check where usb_modeswitch is, mine was in “/usr/sbin”, but if it’s not there, use the appropriate directory.

Connecting the modem with wvdial:

1- Remove the PIN of your SIM

2- >sudo wvdial

But first,
>$sudo gedit /etc/wvdial.conf – here is my file, which works with VIVACOM Bulgaria, for TIM Italy, check the source.

[Dialer Defaults]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init3 = AT+CGDCONT=1,”IP”,””
Modem = /dev/ttyUSB4
Check Def Route = on
Phone = *99#
Username = VIVACOM
Password = VIVACOM
Modem Type = Analog Modem
Stupid Mode = 1
Baud = 460800
New PPPD = yes
ISDN = 0
AutoDNS = 1

You should change init3 and User and Password with those given by your providers.

Once you created the file, just run wvdial (or in my case, >$sudo wvdial…) and that’s it. You’ll receive some messages but after you see you DNS, everything is ready for browsing!

How to test microphone with Audio Linux Sound Architecture – ALSA

Sometime a need comes to test microphone for use with VOIP applications such us Skype. The simplest and easiest way to test microphone ( MIC ) on your linux system is to use default alsa tools which come with alsa sound system package. First we need to check if alsa had recognized and our sound device.

List of sound devices

$ cat /proc/asound/cards
 0 [NVidia         ]: HDA-Intel - HDA NVidia
 HDA NVidia at 0xefff0000 irq 20

you may get bunch of devices but we are interested in the one which seems to familiar to you or the one which has IRQ. Another command to use to check which sound devices are recognized by your alsa system is arecord -l:

$ arecord -l
**** List of CAPTURE Hardware Devices ****
card 0: NVidia [HDA NVidia], device 0: AD198x Analog 
[AD198x Analog]
 Subdevices: 3/3
 Subdevice #0: subdevice #0
 Subdevice #1: subdevice #1
 Subdevice #2: subdevice #2

Test MIC

to test microphone we would used arecord on the command line. This small utility will record sound from your default alsa default sound device. No special arguments as device name are not required since we I have only one sound card.

$ arecord -d 10 /tmp/test-mic.wav

this will record 10 seconds.

Play test-mic.wav

Now it is easy to play your wav file with another simple alsa utility a play:

$ aplay /tmp/test-mic.wav

If you have a more sound devices on your system and you need to use the non default sound card you can specify it to arecord with -D option. For example:

$ arecord  hw:1,0 -d 10  /tmp/test-mic.wav

will use second sound card where 1 refers to card and 0 refers to device as returned by arecord -l command. If you want to change your default alsa sound device globally on the system here is a link to unofficial alsa wiki which you might find helpful:

How to backup your Raspberry

Back up the SD card in Terminal

sudo dd if=/dev/sda of=~/MyPiBackup.img

Swap out the bold part for whatever location is listed for your SD card under Filesystem in the list the df -h command returned. Now run this command, once again swapping out the bold parts (first is whatever file name you gave your backup, and the second is the location of the SD card again):

sudo dd bs=4M if=~/MyPiBackup.img of=/dev/sda

Again you wait without any feedback. Run more errands, drink more coffee, and return to find your Pi’s SD card restored. Hooray!

Les commandes AT

1 -Généralités

Les commandes AT sont définies dans la norme GSM 07.07(pour les SMS cf. GSM 07.05). AT est l’abréviation de ATtention. Ces 2 caractères sont toujours présents pour commencer une ligne de commande sous forme de texte (codes ASCII). Les commandes permettent la gestion complète du mobile.

  • Trois entités sont définies :
    • TE : Terminal Equipment (envoi et affiche les commandes.
    • TA : Terminal Adaptator (interface entre l’utilisateur et le mobile).
    • ME : Mobile Equipment.


En général, il faut taper les commandes AT en MAJUSCULES (65,0×41,A et 84,0×54,T). La commande AT tout cours doit donner la réponse “OK”.Le caractère <CR> Carriage return (10,0x0A) (cf. commande ATS4). Le caractère <LF> Linefeed (13,0x0D) (cf. commande ATS3).

Commandes de base (1)

  • ATI[<value>] : Affichage des paramètres du TA.
  • ATZ[<value>] : Chargement des paramètres par défaut mémorisés par l’utilisateur.
  • AT&F[<value>] : Chargement des paramètres par défaut mémorisés par le fabriquant.
  • ATE[<value>] : Echo des commandes AT (déf. 1).
  • ATQ[<value>] : Suppression du résultat (déf. 0).

Sélection d’affichage des erreurs

  • ATV[<value>] : Réponse verbeuse (déf. 1).
    • Si le TA n’accepte pas la commande :
      • 1 : <CR><LF>ERROR<CR><LF>
      • 0 : 4<CR>
  • AT+CMEE=[<n>] : détail des erreurs du ME :
    • 0 : ERROR
    • 1 : +CME ERROR : <err> (cf. §9.2 GSM 07.07)
    • 2 : +CME ERROR : <Verbose Err>

Commandes de gestion d’un appel

  • AT+CSTA=[<type>] : Sélection du type des numéros detéléphone.
    • 145 : Numérotation internationale (avec +).
    • 129 : Les autres cas.
  • ATD<option> : Envoi d’un appel vocal ou autre.
  • ATT : Numérotation fréquentielle.
  • ATP : Numérotation par impulsions.
  • ATA : Décroche la ligne lors d’un appel en cours.
  • ATH : Raccroche la communication en cours.
  • AT+CHUP : Version GSM de la commande H, (cf. +CVHU).

Les options de la commande D

  • Les caractères utilisables : 1 2 3 4 5 6 7 8 9 0 * # + AB C
  • Les caractères non utilisés 😀 , T P !W@
  • Les caractères spéciaux :
    • Dés le caractère ;, un appel vocal est lancé
    • > recherche du numéro dans l’annuaire.
    • I ou i supplementary service subscription, cf. +CLIR.
    • G ou g supplementary service information, cf. +CCUG.


  • Appel normal : ATD222[;]
  • Recherches dans l’annuaire :
    • ATD><str>[I][G][;] : Appel par le nom alphanumérique.
    • ATD>mem<n>[I][G][;] : Appel par le numéro n de la mémoire mem (cf. +CPBS).
    • ATD><n>[I][G][;] : Appel par le numéro d’indice n.

Gestion du mode d’appel

  • AT+CMOD=[<mode>] : Sélection du mode d’appel.
    • 0 single mode.
    • 1 alternating voice/fax (teleservice 61).
    • 2 alternating voice/data (bearer service 61).
    • 3 voice followed by data (bearer service 81).
    • Cf. aussi AT+CSNS et +FCLASS.
  • AT+CBST=[<speed>,[<name>][,<ce>]]] : Sélection du service de transport.
  • AT+CR=[<mode>] : Affichage du mode d’appel (1 enable, 0 disable).
  • AT+CRC=[<mode>] : Affichage du mode d’appel étendu (1 enable, 0 disable).
    • FAX, VOICE, VOICE/xxx.
    • ALT VOICE/xxx, ALT xxx/VOICE.
    • GPRS <PDP_type>, <PDP_addr> [, <L2P>]
  • AT+S0=[<n>] : Sélection du nombre de sonneries avant décrochage automatique.


Commandes générales

  • AT+CGMI : Nom du constructeur du ME.
        • AT+CGMI
        • +CGMI: SAGEM
    • AT+CGMM : Identification du modèle du ME.
        • AT+CGMM
        • +CGMM: G7XX
    • AT+CGMR : Version et niveau du modèle de ME
        • AT+CGMR
        • +CGMR: SAGEM OX1.0M
    • AT+CGSN : Identification IMEI.
        • AT+CGSN
        • +CME ERROR: 22 (not found)

Fonctions spéciales réseau

  • AT+CNUM : Numéro MSISDN de l’utilisateur.
  • AT+CREG : Informations d’enregistrement sur le réseau.
  • AT+COPN, AT+COPS : Liste et sélection d’un opérateur.
  • AT+CLCK : Blocage ou déblocage du ME.
  • AT+CPWD : Définition du mot de passe pour +CLCK.
  • AT+CLIP, AT+COLP : Identification de l’appel.
  • AT+CLIR : Restriction d’identification de l’appel.
  • AT+CCUG : Groupement d’appels.
  • AT+CCFC : Conditions de renvoi d’appels.
  • AT+CCWA : Gestion des appels en attente.
  • AT+CSSN : Affichage des informations de services supplémentaires.
  • AT+CLCC : Liste des appels en cours.

Exemple (1)

AT+CREG=1 (validation de l ’affichage des codes d’enregistrement)
+CREG: 1,1 (Le ME est enregistré dans son réseau home PLMN)
+COPS: 0,2,”24405″ (demande du code pays…
+COPS: 0,0,”RADIOLINJA” …et du nom de l’opérateur)
…user wanders to another PLMN…
+CREG: 2 (sortie du réseau recherche du nouveau PLNM)
+CREG: 5 (enregistré a nouveau, mais pas sur le home PLMN)
+COPS: 0,2,”24491″ (demande du code pays…
+COPS: 0,0,”TELIA MOBITEL” …et du nom de l’opérateur)
… l’utilisateur perd la connexion plus de réseau…
+CREG: 0

Exemple (2)

+COPS: (2,”RADIOLINJA”,”RL”,”24405″),(0,”TELE”,”TELE”,”24491″)
+CME ERROR: 3 (not allowed)

Exemple (3)

AT+CCWA=1,1;+COLP=1 (Gestion des appel en attente et
OK identification des appels)
ATD9311234567; (envoi d’un appel vocal)
+COLP: “+358311234567”,145
+CCWA: “+358317654321”,145 (un autre appel arrive)
AT+CHLD=2 (mise en attente du 1er appel)
AT+CHLD=1 (raccroche le 2ème appel (actif))
ATH (raccroche le premier appel)

Exemple (4)


+CLIP: +35812345,145
… sonnerie…
ATA décrochage
… raccrochage distant

Commandes générales

  • AT+CGMI : Nom du constructeur du ME.
        • AT+CGMI
        • +CGMI: SAGEM
    • AT+CGMM : Identification du modèle du ME.
        • AT+CGMM
        • +CGMM: G7XX
    • AT+CGMR : Version et niveau du modèle de ME.
        • AT+CGMR
        • +CGMR: SAGEM OX1.0M
    • AT+CGSN : Identification IMEI.
        • AT+CGSN
        • +CME ERROR: 22 (not found)

Commandes de gestion du ME

  • AT+CPAS : Etat duME.
    • 0 : prêt.
    • 1 : non disponible.
    • 2 : inconnu.
    • 3 : la sonnerie est active.
    • 4 : un appel est en cours.
    • 5 : veille.
  • AT+CPIN : Contrôle du mot de passe.
    • READY, SIM PIN, SIM PUK, etc…
  • AT+CBC : Etat de la batterie.
    • 0 : ME alimenté par la batterie
    • 1 : ME non alimenté par la batterie.
    • 2 : pas de batterie.
    • 3 : défaut d’alimentation.
    • Suivi du pourcentage de charge restante.
  • AT+CSQ : Qualité du signal.
  • AT+CKPD : Emulation du clavier du ME.
  • AT+CMEC : Contrôle du clavier et de l’écran du ME.
  • AT+CDIS : Ecriture de message sur l’écran du ME.
  • AT+CIND : Gestion des indicateurs du ME.
    • Battchg, signal, service, sounder, message, call, vox, roam, smsfull.
  • AT+CMER : Affichage des messages du ME.
  • AT+CCLK=<time> : Mise à l’heure du ME.
  • AT+CALA : Gestion de l’alarme du ME.
  • AT+CALM=<mode> : Gestion du son l’alarme du ME.
    • 0 : mode normal
    • 1 : mode silencieux.
    • 2 : fabriquant…
  • AT+CRSL=<level> : Gestion de niveau sonore de la sonnerie du ME
  • AT+CVIB=<mode> : Gestion du système de vibration du ME.
    • 0 : dévalidé
    • 1 : validé.
    • 16 : fabriquant…
  • AT+CLVL=<level> : Gestion de niveau du haut parleur du ME.

Exemple (1)

AT+CMEE=2;+CREG=1 (Affichage des erreurs et des rapports)
AT+CPAS (Etat du ME)
+CPAS: 5 (Le ME est en veille)
AT+CFUN=1 (Mise en marche complète du ME)
+CME ERROR: SIM PIN required (Demande du code PIN)
+CME ERROR: incorrect password (Mauvais code PIN)
OK (PIN correct)

Sélection de la mémoire de l’annuaire

  • AT+CPBS=<mem> : Sélection de la mémoire du PB (Phone Book).
    • DC : Liste des appels du ME.
    • EN : Liste des numéros d’urgence (SIM ou ME).
    • FD : Liste des numéros fixes de la SIM.
    • LD : Liste du dernier numéro appelé de la SIM.
    • MC : Liste des numéros d’urgence (SIM ou ME).
    • ME : Liste des numéros du ME.
    • MT : Liste des numéros combinée de la SIM et du ME.
    • ON : Liste des numéros propres de la SIM.
    • RC : Liste des numéros reçus sur le ME.
    • SM : Liste des numéros de la SIM.
    • TA : Liste des numéros du TA.

Lecture/écriture des entrées du PB

  • AT+CPBR=<ind1>[,<ind2>] : Lecture du PB.
  • AT+CPBF=<findtext> : Recherche dans le PB.
  • AT+CPBW=[<index>] [,<number>[,<type>[,<text>]]] : Ecriture dans le PB.

+CPBS: (“ME”,”SM”) (Les mémoires possibles sont ME et SIM)
AT+CPBS=”ME” (selection de la mémoire du ME)
AT+CPBR=? (Lecture des valeurs possibles des indices)
+CPBR: (1-99),30,30
AT+CPBR=1,99 (Lecture des entrées, affichage des entées non nulles)
+CPBR: 1,”931123456″,129,”Ilkka”
+CPBR: 2,”9501234567″,129,””
+CPBR: 4,”901234567″,129,”Hesari”
AT+CPBW=4;+CPBW=3,”921123456″,,”TS” (Effacement de l’index 4 et écriture sur l’index 3)

Commandes SMS

  • AT+CSMS=<service> : Sélection du service de message.
  • AT+CPMS=<mem> : Sélection de la mémoire.
    • AT+CPMS=?
    • +CPMS:(“ME”,”MT”,”SM”)
    • OK
  • AT+CMGF=[<mode>] : Sélection du format des messages.
    • 0 : mode PDU (défaut). 1 : mode Texte.
  • AT+CCSA=<sca>[,<tosca>] : Sélection de l’adresse du SMSC.
    • AT+CSCA?
    • 00000000000000000000
    • ERROR
    • AT+CSCA=?
    • +CSCA: 0..9#*+?
    • OK
  • AT+CSMP : Gestion des paramètres du mode Texte.
    • AT+CSMP=?
    • +CSMP=(17),(71,167,173,255),(0),(0)
    • OK
  • AT+CSDH : Affichage détaillé du mode Texte.
  • AT+CSCB : Sélection des messages Cell Broadcast.
  • AT+CSAS : Sauvegarde de la configuration SMS.
  • AT+CRES : Restoration de la configuration SMS.
  • AT+CNMI : Indication de nouveaux messages.
    • AT+CNMI?
    • +CNMI=1,1,0,0,0
    • OK
    • AT+CMGL : Liste des messages.
    • AT+CMGF=1
    • OK
    • AT+CMGL
    • +CMGL:900,”REC READ”,”+33617283871″,”01/09/21,13:48:45+00″,51
    • Salut cb penses tu kon va y arriver avec ces modems
    • +CMGL:901,”REC READ”,”20332″,”02/01/16,14:47:35+00″,160
    • Mobicarte info : Désormais vous pouvez utiliser votre mobile en Guadeloupe, … la Réunion, au Maroc, en Suisse. Plus d’infos au 722(0,37E 2,40F/min) ou
    • +CMGL:902,”REC READ”,”20328″,”02/01/17,09:19:10+00″,136
    • Orange info : les recharges mobicarte en euro sont arrivées ! Faites votre choix : 15E, 25E+5E offerts ou 35E+10E offerts. Profitez-en!
    • OK

Mode PDU


Lecture des messages

  • AT+CMGR=<index> : Lecture des messages.
    • AT+CPMS?
    • +CPMS:”ME”,3,20
    • OK
    • AT+CMGR=901
    • +CMGR:”REC READ”,”20332″,”02/01/16,14:47:35+00″,160
    • Mobicarte info : Désormais vous pouvez utiliser votre mobile en Guadeloupe, … la Réunion, au Maroc, en Suisse. Plus d’infos au 722(0,37E-2,40F/min) ou
    • OK

Envoi de SMS

  • AT+CMGS=<da>[,<toda>] : Envoi de messages (terminés par Ctrl+Z, 0x1A, 26). Cancel par ESC, 0x1B, 27.
  • AT+CMSS=<index>[,<da>[,<toda>]] : Envoi de messages de la mémoire.
  • AT+CMGW : Écriture de messages.
    • AT+CMGW=”cb”
    • > Salut from cb !!
    • >
    • +CMGW:903
    • OK
    • AT+CMGR=903
    • +CMGR:”STO UNSENT”,”cb”,16
    • Salut from cb !!
    • OK
  • AT+CMGD=<index> : Effacement de messages.


SMS : Short Messages Service. Le service de messages courts nécessite la mise en place d’un certain nombre de serveurs sur le réseau (Service Centre, SC).Ils permettent de sauver et de retransmettre les SMS jusqu’à ce que le destinataire puisse effectivement recevoir les messages (si il n’est pas sur le réseau par exemple). Un SC ne fait pas partie intégrante du réseau, mais il est souvent intégré au MSC.


La fonction passerelle SMS-GMSC permet de router les messages vers le VMSC (MSC visité) en interrogeant le HLR. Un message émis d’un mobile est lui acheminé vers le MSC qui à la fonctionnalité SC. Ce MSC porte le nom de SMS-IWMSC (Short Message Service- InterWorking MSC). Les procédures d’acheminement des SMS sont similaires à celles des appels téléphoniques (MAP).