J'ai un modem USB identifié sous Linux (Ubuntu 12.04) avec lsusb
comme
Bus 001 Device 003: ID 0572:1329 Conexant Systems (Rockwell), Inc.
Comment parler à cet appareil (par exemple avec microcom, etc.?)? Quel périphérique dev
dois-je utiliser? Il n'y a pas /dev/ttyUSBXXX
disponible et juste un /dev/ttyACM0
.
Si vous parlez vous entendez envoyer AT commandes sous la forme
echo "ATI" > /dev/usbDev
essayez ceci: http://brunomgalmeida.wordpress.com/2012/04/06/send-at-commands-to-usb-modem/
Vous pouvez utiliser cu.
$ Sudo apt-get install cu
Vous pouvez vous connecter à votre modem avec:
$ cu -l ttyACM0
(avec: ttyACM0 étant le périphérique/dev/ttyACM0) Vous devriez obtenir une réponse:
connected
À ce stade, vous pouvez utiliser l’une des commandes standard AT, par exemple pour tester la numérotation:
ATDT 123-456-7890
Vous devez avoir défini votre ID utilisateur sur la numérotation de groupe pour obtenir la permission d'accéder au modem.
Vous pouvez quitter l'application cu avec "~". (point tilde).
Vous pouvez trouver d'autres commandes Hayese sur:
Utilisez minicom
name____, socat
ou screen
name__:
socat - /dev/ttyUSB1
minicom -D /dev/ttyUSB1
screen /dev/ttyUSB1
REMARQUE: J'ai utilisé le nom de périphérique réel /dev/ttyUSB1
au lieu de faux /dev/usbDev
.
Je crois que la réponse que vous cherchez est la suivante: tilisation d’un modem USB avec un pilote Conexant dans (K) Ubuntu 11.10 (Oneiric) .
Choses importantes (extraites du site):
Quand j'ai branché un modem Conexant, j'ai exécuté
lsusb
et il a dit:
[...]
Bus 006 Device 002: ID 0572:1300 Conexant Systems (Rockwell), Inc. SoftK56 Data Fax Voice CARP
[...]
donc je savais que le modem HSF était reconnu par le système.
Comme j'avais déjà une connexion Internet, j'ai mis à jour le système
Sudo apt-get update && Sudo apt-get dist-upgrade
J'ai vérifié que je n'avais pas de pilotes Conexant précédents installés. Par exemple: j'ai exécuté
ls /usr/sbin/hsfconfig
et il a dit que ce fichier n'existait pas; si cela existait, j'aurais pensé que quelque chose était encore installé.
Je me suis assuré que j'avais "gcc" et "faire" prêt, en exécutant
Sudo apt-get install gcc make
Ensuite, j'ai exécuté les étapes décrites ici:
Sudo -s
cd /lib/modules/$(uname -r)/build/include/linux
ln -s ../generated/utsrelease.h
ln -s ../generated/autoconf.h
exit
J'ai préparé les fichiers pour la compilation du pilote, en exécutant
mkdir ~/conexant_modem
cd ~/conexant_modem
et si j'avais un système d'exploitation 64 bits, j'ai exécuté
wget http://linux.Dell.com/files/ubuntu/hardy/modem-drivers/hsf/hsfmodem-7.68.00.09x86_64oem.tar.gz
tar xzf hsfmodem-7.68.00.09x86_64oem.tar.gz
wget http://www.bargweb.net/images/2009/november/hsfmodem-7.80.02.05-DiacoEdition.Zip
unzip hsfmodem-7.80.02.05-DiacoEdition.Zip
cp -a hsfmodem-7.80.02.05-DiacoEdition/modules/imported/include/framewrk.h hsfmodem-7.68.00.09x86_64oem/modules/imported/include/framewrk.h
cp -a hsfmodem-7.80.02.05-DiacoEdition/modules/imported/include/osservices.h hsfmodem-7.68.00.09x86_64oem/modules/imported/include/osservices.h
sinon, si j'avais un système d'exploitation 32 bits, j'exécutais
wget http://linux.Dell.com/files/ubuntu/hardy/modem-drivers/hsf/hsfmodem-7.68.00.09oem.tar.gz
tar xzf hsfmodem-7.68.00.09oem.tar.gz
wget http://www.bargweb.net/images/2009/november/hsfmodem-7.80.02.05-DiacoEdition.Zip
unzip hsfmodem-7.80.02.05-DiacoEdition.Zip
cp -a hsfmodem-7.80.02.05-DiacoEdition/modules/imported/include/framewrk.h hsfmodem-7.68.00.09oem/modules/imported/include/framewrk.h
cp -a hsfmodem-7.80.02.05-DiacoEdition/modules/imported/include/osservices.h hsfmodem-7.68.00.09oem/modules/imported/include/osservices.h
A note for the curious ones: those "framewrk.h" and "osservices.h" files were the different ones between the directories "hsfmodem-7.68.00.09oem/modules/imported" and "hsfmodem-7.80.02.05-DiacoEdition/modules/imported".
Si j'avais un système d'exploitation 64 bits, j'exécutais
wget http://www.linuxant.com/drivers/hsf/full/archive/hsfmodem-7.80.02.06x86_64full/hsfmodem-7.80.02.06x86_64full.tar.gz
sinon, si j'avais un système d'exploitation 32 bits, j'exécutais
wget http://www.linuxant.com/drivers/hsf/full/archive/hsfmodem-7.80.02.06full/hsfmodem-7.80.02.06full.tar.gz
Une note pour les curieux: ce fichier était le plus récent de http://www.linuxant.com/drivers/hsf/full/downloads.php
Et puis, si j'avais un système d'exploitation 64 bits, j'exécutais
tar xzf hsfmodem-7.80.02.06x86_64full.tar.gz
rm -r hsfmodem-7.80.02.06x86_64full/modules/imported
cp -R hsfmodem-7.68.00.09x86_64oem/modules/imported hsfmodem-7.80.02.06x86_64full/modules/
cp -R hsfmodem-7.68.00.09x86_64oem/modules/imported hsfmodem-7.80.02.06x86_64full/modules/
sinon, si j'avais un système d'exploitation 32 bits, j'exécutais
tar xzf hsfmodem-7.80.02.06full.tar.gz
rm -r hsfmodem-7.80.02.06full/modules/imported
cp -R hsfmodem-7.68.00.09oem/modules/imported hsfmodem-7.80.02.06full/modules/
cp -R hsfmodem-7.68.00.09oem/modules/imported hsfmodem-7.80.02.06full/modules/
L'étape suivante consistait à nettoyer le répertoire actuel.
Si j'avais un système d'exploitation 64 bits, j'exécutais
rm -rf hsfmodem-7.68.00.09x86_64oem
rm -rf hsfmodem-7.80.02.05-DiacoEdition
rm hsfmodem-7.68.00.09x86_64oem.tar.gz
rm hsfmodem-7.80.02.05-DiacoEdition.Zip
rm hsfmodem-7.80.02.06x86_64full.tar.gz
sinon, si j'avais un système d'exploitation 32 bits, j'exécutais
rm -rf hsfmodem-7.68.00.09oem
rm -rf hsfmodem-7.80.02.05-DiacoEdition
rm hsfmodem-7.68.00.09oem.tar.gz
rm hsfmodem-7.80.02.05-DiacoEdition.Zip
rm hsfmodem-7.80.02.06full.tar.gz
Ensuite, j'ai dû modifier certains fichiers pour les adapter à la version 3.0.0 du noyau Linux. Si j'avais un système d'exploitation 64 bits, j'exécutais
cd hsfmodem-7.80.02.06x86_64full
xdg-open modules/GPL/serial_cnxt.c
sinon, si j'avais un système d'exploitation 32 bits, j'exécutais
cd hsfmodem-7.80.02.06full
xdg-open modules/GPL/serial_cnxt.c
et puis un éditeur de texte a été lancé. J'ai cherché la ficelle
#ifndef FOUND_UART_REGISTER_PORT
et ci-dessous j'ai trouvé la chaîne
static DECLARE_MUTEX(cnxt_port_sem);
J'ai supprimé cette dernière chaîne et y ai écrit
static DEFINE_SEMAPHORE(cnxt_port_sem);
et j'ai sauvegardé et fermé ce fichier. J'ai exécuté
xdg-open modules/osdiag.c
et puis un éditeur de texte a été lancé. J'ai cherché la ficelle
THIS_MODULE,
et ci-dessous j'ai trouvé la chaîne
.ioctl = diag_ioctl,
J'ai supprimé cette chaîne et y ai écrit
.compat_ioctl = diag_ioctl,
et j'ai sauvegardé et fermé ce fichier. J'ai exécuté
xdg-open modules/osnvm.c
et puis un éditeur de texte a été lancé. J'ai cherché la ficelle
static LIST_HEAD(nvm_newinst_list);
et ci-dessous j'ai trouvé la chaîne
static DECLARE_MUTEX(nvmelem_writelist_sem);
J'ai supprimé cette dernière chaîne et y ai écrit
static DEFINE_SEMAPHORE(nvmelem_writelist_sem);
et j'ai sauvegardé et fermé ce fichier.
Une note pour les curieux: la source de ces modifications dans ces fichiers était http://www.openmamba.org/showfile.ht...l-2.6.37.patch
L'utilisateur nommé Chiaseth a aidé à expliquer les étapes que j'ai suivies de la manière suivante:
J'ai exécuté
xdg-open modules/osservices.c
et puis un éditeur de texte a été lancé. J'ai cherché la ficelle
#include <linux/smp_lock.h>
et j'ai supprimé cette chaîne, et y a écrit
#include <linux/mutex.h>
DEFINE_MUTEX(os_mutex); // Define a mutex
Dans ce fichier, j'ai cherché les chaînes
unlock_kernel()
en les remplaçant tous par
mutex_unlock(&os_mutex)
En outre, dans ce fichier, j'ai cherché les chaînes
lock_kernel()
en les remplaçant tous par
mutex_lock(&os_mutex)
et j'ai sauvegardé et fermé ce fichier.
J'ai exécuté
xdg-open modules/osdcp.c
Dans ce fichier, j'ai cherché la chaîne
static spinlock_t dcp_lock = SPIN_LOCK_UNLOCKED;
en le remplaçant par
static DEFINE_SPINLOCK(dcp_lock);
et j'ai sauvegardé et fermé ce fichier.
J'ai exécuté
xdg-open modules/osdiag.c
Dans ce fichier, j'ai cherché la chaîne
static spinlock_t diag_lock = SPIN_LOCK_UNLOCKED;
en le remplaçant par
static DEFINE_SPINLOCK(diag_lock);
et j'ai sauvegardé et fermé ce fichier.
J'ai exécuté
xdg-open modules/osfloat.c
Dans ce fichier, j'ai cherché la chaîne
static spinlock_t fpstates_lock __attribute__((unused)) = SPIN_LOCK_UNLOCKED;
en le remplaçant par
static DEFINE_SPINLOCK(fpstates_lock);
et j'ai sauvegardé et fermé ce fichier.
J'ai exécuté
xdg-open modules/osservices.c
Dans ce fichier, j'ai cherché la chaîne
static spinlock_t atomic_lock __attribute__((unused)) = SPIN_LOCK_UNLOCKED;
en le remplaçant par
static DEFINE_SPINLOCK(atomic_lock);
et j'ai sauvegardé et fermé ce fichier.
J'ai exécuté
xdg-open modules/GPL/oscompat.h
Dans ce fichier, j'ai cherché la chaîne
static spinlock_t tqueue_lock __attribute__((unused)) = SPIN_LOCK_UNLOCKED;
en le remplaçant par
static DEFINE_SPINLOCK(tqueue_lock);
et j'ai sauvegardé et fermé ce fichier.
Enfin ... si exécuté
Sudo make install
Sudo hsfconfig
Il a demandé "Où se trouve le répertoire de construction de la source linux qui correspond à votre noyau en cours d'exécution?", Puis j'ai simplement appuyé sur la touche Entrée pour accepter la réponse par défaut. J'ai également accepté la réponse par défaut dans d'autres questions.
Enfin, la commande a signalé que
The /dev/modem alias (symlink) points to ttySHSF0
J'ai exécuté
dmesg
et à la fin j'ai vu
[59190.782005] hsfengine: module license 'see LICENSE file distributed with driver' taints kernel.
[59190.782011] Disabling lock debugging due to kernel taint
[59192.564398] ttySHSF0 at MMIO 0x0 (irq = 0) is a Conexant HSF softmodem (USB-0572:1300)
[59192.600274] usbcore: registered new interface driver hsfusbcd2
[59194.416241] usbcore: deregistering interface driver hsfusbcd2
[59194.600064] usb 6-1: reset full speed USB device using uhci_hcd and address 2
[59194.811746] cnxthsf_DcpDestroy: units still active, waiting..
[59194.811764] cnxthsf_DcpDestroy: units still active, waiting..
[59194.811778] cnxthsf_DcpDestroy: units still active, waiting..
[59196.967466] ttySHSF0 at MMIO 0x0 (irq = 0) is a Conexant HSF softmodem (USB-0572:1300)
[59196.994150] usbcore: registered new interface driver hsfusbcd2
ce qui signifie, entre autres choses, que le modem USB a été détecté à /dev/ttySHSF0
.
Remarque: comme ils l'ont dit dans https://help.ubuntu.com/community/Di...Howto/Conexant : "ne supprimez ni ne déplacez l'arbre source [dans notre cas: ~/conexant_modem ] de votre système après ces étapes, il sera nécessaire de désinstaller et de corriger le pilote. "
J'ai lancé kppp
(par exemple) et configuré une nouvelle "connexion" en spécifiant que le modem était à /dev/ttySHSF0
. Vous pouvez également utiliser un programme tel que efax-gtk
pour envoyer des télécopies via le modem.
Je sais que vous pouvez utiliser deux logiciels pour envoyer des commandes AT (Attention) à votre modem: un terminal de port série et un autre, Cutecom.
Assurez-vous que votre modem USB est correctement inséré dans tout port USB disponible de votre ordinateur Ubuntu.
Cliquez sur l'icône de réseau et sélectionnez Edit connections
. Cela lancera l'utilitaire de gestion de réseau d'Ubuntu.
Sélectionnez le nom du modem USB dans la liste des connexions disponibles, puis cliquez sur Properties.
.
Cliquez sur Enable this Connection
pour indiquer à Ubuntu que vous souhaitez utiliser ce périphérique pour vous connecter à des réseaux Internet.
Cliquez sur OK.
Votre modem USB va maintenant être correctement connecté à Ubuntu et configuré, et vous pouvez maintenant l'utiliser pour vous connecter à Internet.
Source du tutoriel ici