Connecter le Palm Pre a Internet via le port USB sur Mandriva Linux
De Wiki de la communauté Mandriva.
ATTENTION CET ARTICLE N'EST PAS TERMINE
Pour les personnes qui n'ont pas d'abonnement de téléphonie mobile en 3G parce que c'est trop cher ou qui ne veulent pas utiliser le wifi parce qu'elles sont sensibles au champs électromagnétiques,
nous allons décrire comment accéder à Internet sur un Palm via une connexion USB à PC relié à internet par ADSL ou modem RTC.
Cette solution devrait fonctionner sur tout appareil sur Palm webOS dont le Palm Pixi.
Article inspiré de : Connecter le Zaurus à Internet via l'USB
Sommaire |
Prérequis
Le logiciel novacom et le Palm Mojo (webos) SDK doivent être installé sur le PC Linux.
Le process/démon novacom doit être lancé sur le PC.
Pour ces 2 points , voir : Installer le Palm webOS SDK sur Mandriva Linux
De plus la fonctionnalité USB Networking doit être activée sur la Palm Pre via Meta Doctor par exemple.
Vérification de la connexion entre le PC et le Palm Pre
1) Le Palm Pre étant allumé, branchez le cable USB entre le Palm Pre et le PC.
Ensuite dans une console terminal sur le PC, vérifiez que la commande dmesg affiche celà :
[user@localhost ~]$ dmesg ... usb 5-2: new high speed USB device using ehci_hcd and address 2 usb 5-2: New USB device found, idVendor=0830, idProduct=0101 usb 5-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 usb 5-2: Product: Pre usb 5-2: Manufacturer: Palm Inc. usb 5-2: SerialNumber: 010101010101010101010101010101010100101010 usb 5-2: configuration #5 chosen from 1 choice rndis_host 5-2:5.0: RNDIS init failed, -32 rndis_host: probe of 5-2:5.0 failed with error -32 Initializing USB Mass Storage driver... scsi4 : SCSI emulation for USB Mass Storage devices usbcore: registered new interface driver usb-storage USB Mass Storage support registered. usb-storage: device found at 2 usb-storage: waiting for device to settle before scanning scsi 4:0:0:0: Direct-Access Palm Pre 0000 PQ: 0 ANSI: 2 sd 4:0:0:0: Attached scsi generic sg3 type 0 sd 4:0:0:0: [sdc] Attached SCSI removable disk usb-storage: device scan complete
Et vérifiez que la commande lusb affiche ceci :
[root@localhost ~]# lsusb ... Bus 005 Device 004: ID 0830:0101 Palm, Inc. ...
Configuration du sous-réseau
Nous allons maintenant configurer un autre réseau local entre le PC et le Palm Pre. Palm webOS semble paramétré pour affecter automatiquement l'adresse IP 192.168.0.202 au Palm Pre lors d'une connection USB, nous allons donc placer la deuxième IP du PC à 192.168.0.1 toujours avec un masque réseau 255.255.255.0 (comme cela vous pouvez connecter 253 périphériques sous Palm webOS).
D'abord vérifions que le Palm Pre a bien une interface usb0 existante et avec la bonne IP :
root@palm-webos-device:/# /sbin/ifconfig -a
bsl0 Link encap:Ethernet HWaddr 00:1D:FE:57:81:85
BROADCAST 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 txqueuelen:500
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
.
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:1387 errors:0 dropped:0 overruns:0 frame:0
TX packets:1387 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:270356 (264.0 KiB) TX bytes:270356 (264.0 KiB)
.
usb0 Link encap:Ethernet HWaddr DE:88:BC:19:6D:BA
inet addr:192.168.0.202 Bcast:0.0.0.0 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:51 errors:0 dropped:0 overruns:0 frame:0
TX packets:765 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:8808 (8.6 KiB) TX bytes:65790 (64.2 KiB)
.
usb0:1 Link encap:Ethernet HWaddr DE:66:BC:21:6D:BA
inet addr:192.168.2.101 Bcast:0.0.0.0 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
A cette étape, l'interface usb0 du Palm Pre est active avec une IP mais pas l'interface usb0 du PC. Attention cependant, ce n'est pas vrai sur toutes les distributions Linux. Certaines font comme le Palm Pre et montent automatiquement usb0 dès la détection du câble. Nous allons donc prendre nos précautions et commencer par éteindre l'interface usb0 du PC avant de la rallumer avec la bonne IP :
[root@localhost ~]# /sbin/ifconfig usb0 down [root@localhost ~]# /sbin/ifconfig usb0 192.168.0.1 netmask 255.255.255.0 up
Maintenant pres les 2 commandes ci-dessous, vous devriez avoir celà sur le PC:
[user@localhost ~]$ /sbin/ifconfig -a
...
usb0 Link encap:Ethernet HWaddr A2:3B:49:13:3A:52
inet adr:192.168.0.1 Bcast:192.168.0.255 Masque:255.255.255.0
adr inet6: fe80::28c3:49ff:fe13:3b52/64 Scope:Lien
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:37 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:0 (0.0 b) TX bytes:8785 (8.5 KiB)
...
Si tout est correct comme les variables en gras ci-dessus, nous allons rendre cela plus propre, nous allons ajouter une route pour indiquer que les paquets passant par usb0 du PC sont à destination du Palm Pre :
[root@localhost ~]# route add -host 192.168.0.202 usb0
Et du côté du Palm Pre, indiquez la bonne route vers le PC (passerelle par défaut):
root@palm-webos-device:/# route add default gw 192.168.0.1
Maintenant que nous avons paramétré une IP des deux côtés, il devrait être possible que les deux machines se "ping" mutuellement. Du PC vers le Palm Pre :
[user@localhost ~]$ ping 192.168.0.202 PING 192.168.0.202 (192.168.0.202) 56(84) bytes of data. 64 bytes from 192.168.0.202: icmp_seq=1 ttl=64 time=0.988 ms 64 bytes from 192.168.0.202: icmp_seq=2 ttl=64 time=0.800 ms 64 bytes from 192.168.0.202: icmp_seq=3 ttl=64 time=0.809 ms 64 bytes from 192.168.0.202: icmp_seq=4 ttl=64 time=0.968 ms 64 bytes from 192.168.0.202: icmp_seq=5 ttl=64 time=0.908 ms ...
Puis du Palm Pre vers le PC :
root@palm-webos-device:/# ping 192.168.0.1 PING 192.168.0.1 (192.168.0.1): 56 data bytes 64 bytes from 192.168.0.1: seq=0 ttl=64 time=0.854 ms 64 bytes from 192.168.0.1: seq=1 ttl=64 time=0.641 ms 64 bytes from 192.168.0.1: seq=2 ttl=64 time=0.641 ms 64 bytes from 192.168.0.1: seq=3 ttl=64 time=0.824 ms 64 bytes from 192.168.0.1: seq=4 ttl=64 time=0.793 ms
Voilà, la deuxième étape est réussie, les deux ordinateurs se parlent.
Connexion du Palm Pre à Internet
Avant de commencer un peu d'architecture réseau. Je pars ici du principe que votre PC est normalement déjà connecté à Internet, relié à un routeur/modem adsl avec une liaison ethernet. La carte réseau dédié à cette liaison est appelé par la suite eth0. Le Modem/routeur et votre PC forment un réseau local sur la plage d'IP 192.168.0.1 / 255.255.255.0. L'adresse du PC est 192.168.1.2 et celle du routeur 192.168.1.1. Avant de poursuivre, vous devez connaitre ces deux IP dans votre cas, de même que le numéro de la carte réseau (ici eth0).
Tout d'abord il nous faut le paquet "iptables". Taper "iptables" en tant que root pour vérifier et l'installer le cas échéant (sous mandriva "urpmi iptables").
Maintenant, nous allons utiliser iptables pour permettre au sous réseau de communiquer avec notre routeur. Pour commencer, nous allons nétoyer la table NAT du Palm Pre:
root@palm-webos-device:/# iptables -t nat -F
Puis nous allons substituer l'addresse de notre PC aux adresses sources des paquets sortants du réseau local Palm Pre-PC :
root@palm-webos-device:/# iptables -t nat -A POSTROUTING -j SNAT -o eth0 --to 192.168.1.2
Ceci fait, toutes les paquets du Palm Pre sont routées vers le PC. Il faut maintenant indiquer au PC de router ces paquets vers sa passerelle, et donc, vers internet.
[root@localhost ~]# echo 1 > /proc/sys/net/ipv4/ip_forward
Si l'appel à iptable ne passe pas, vous pouvez faire à peu prés la même chose par :
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE -s 192.168.0.210/32
Normalement, à ce stade, il est possible de "pinger" votre routeur à partir du Palm Pre :
root@palm-webos-device:/# ping 192.168.1.1 PING 88.165.230.244 (88.165.230.244): 56 data bytes 64 bytes from 88.165.230.244: seq=0 ttl=64 time=3.082 ms 64 bytes from 88.165.230.244: seq=1 ttl=64 time=0.671 ms 64 bytes from 88.165.230.244: seq=2 ttl=64 time=0.732 ms 64 bytes from 88.165.230.244: seq=3 ttl=64 time=0.702 ms 64 bytes from 88.165.230.244: seq=4 ttl=64 time=0.641 ms
C'est presque gagné, il ne reste plus qu'à fournir au Palm Pre le serveur de noms (DNS).
La solution la plus simple, dans la mesure où votre PC et le Palm Pre accèdent au Net
de la même manière est de recopier le fichier /etc/resolv.conf dans le fichier équivalent sur le Palm Pre.
Note: le fichier /etc/resolv.conf est sur un FS (systeme de fichier ) en LECTURE SEULE sur le Palm Pre et donc n'est pas modifiable.
Maintenant pour vérifier que le Palm Pre a bien accès au net :
ping www.free.fr
PING www.free.fr (212.27.48.10): 56 octets data 64 octets from 212.27.48.10: icmp_seq=0 ttl=117 time=21.2 ms (...) Et voilà, c'est gagné :)

