Il y a quelques mois, j’avais trouvé une page amusante sur le site de Hack A Day : un petit concours proposant d’essayer d’aller visite une page simple avec un vieil appareil. Un vieil appareil, c’est un appareil qui date d’avant l’avènement d’Internet dans le grand public, donc en gros qui est sorti dans les années nonante ou avant. Un iMac de 1998 qui a un modem et une prise Ethernet, c’est trop facile. Un Visor Deluxe sous Palm OS, ça semblait plus intéressant, mais le Visor est un mauvais client pour ça : il est sous Palm OS 3.1 et utilise un port USB (et pas un port série), ce qui complique pas mal de choses. J’ai donc trouvé un autre vieux Palm pour essayer… et j’ai réussi.
J’ai trouvé un IBM WorkPad C3 pour pas trop cher, en parfait état, et sous Palm OS 3.5 (je le passerais en Palm OS 4.1 un jour). Le WorkPad C3, c’est un clone de Palm V(x) fabriqué par IBM, avec comme principale différence une coque noire, ce qui lui donne une certaine classe. J’ai eu la surprise de recevoir, en plus du dock à connecter en RS-232, un adaptateur modem, on en reparlera.
Pour mon premier essai, j’ai utilisé Windows XP, avec un programme qui s’appelle Mocha PPP. C’est assez simple : on met le Palm dans son dock, on le relie à l’ordinateur (dans mon cas, avec un adaptateur série/USB et une machine virtuelle) et on configure. Après quelques errements, notamment pour trouver un navigateur fonctionnel, ça a fonctionné.
Ceci dit, j’était un peu déçu : il fallait passer par un câble et par Windows. J’ai donc cherché un peu comment le faire sans fil, c’est plus drôle, et avec Mac OS X.
Première chose, trouver un Mac avec de l’infrarouge. J’avais moyennement envie de tester avec mon iMac (même si ça doit marcher), donc j’ai sorti mon adaptateur USB. Ensuite, j’ai cherché comment faire. Il existe pas mal de tutoriels pour le faire via Bluetooth, mais mon Palm n’en a pas. Mais je me suis rendu compte que le faire via Bluetooth, via série ou via IrDA n’avait pas vraiment d’importance : dans tous les cas, on passe en PPP avec une liaison série.
Du côté du Mac, c’est simple, il faut simplement taper quatre commandes. Attention, ça a marché sous Leopard avec une vieille machine, mais j’ai une erreur avec Mavericks.
sudo /usr/sbin/pppd /dev/tty.IrDA-IrCOMM00001014 115200 noauth local passive proxyarp asyncmap 0 silent persist 192.168.1.32:192.168.1.98
Il faut trouver le nom TTY de votre adaptateur (tty.IrDA-IrCOMM00001014 par exemple), entrer l’adresse IP de votre Mac (192.168.1.32 dans mon cas) et l’adresse IP que vous voulez donner au Palm (192.168.1.98, hors du DHCP dans mon cas).
Ensuite, on va partage la connexion. Il faut le nom de l’interface réseau utilisée (en0 généralement).
sudo /usr/sbin/sysctl -w net.inet.ip.forwarding=1
sudo /usr/sbin/natd -same_ports -use_sockets -log -deny_incoming -interface en0
sudo /sbin/ipfw add divert natd ip from any to any via en0
Du côté du Palm, il faut Palm OS 3.5 au minimum, et faire quelques manipulations.
Dans Préférences -> Connexion, choisir IR au PC/Organiseur. Modifier et choisir IrCOMM au PC. Dans Détails, choisir la vitesse (57600, 115200, etc.).
Dans Préférences -> Réseau, prendre un service Unix, choisir IR au PC/Organiseur dans Connexion. Dans les Détails, choisir PPP, décocher Demande DNS et entrer des DNS (8.8.8.8 par exemple) et Adresse IP Automatique. Dans Script, bien vérifier que tout est vide.
Ensuite, on peut connecter.
Après, il faut trouver un navigateur (Eudora Web est pas trop mal) et évidemment éviter les pages remplies de JavaScript, de Flash et autres trucs modernes. Plus simplement, le blog ne charge pas via IrDA, donc j’ai monté rapidement une page de test juste pour vérifier que c’est fonctionnel…
Pour vous donner une idée, j’ai essayé de charger la page Wikipedia du Palm V et mon iPhone a arrêté de filmer (sans me prévenir) après plusieurs minutes et la page n’était pas chargée. J’ai un exemple ici de 5 minutes environ, le premier avait duré plus de 15 minutes sans charger entièrement la page…
Au final, même si c’est extrêmement lent, ça fonctionne, et il doit être possible de connecter n’importe quel appareil capable de faire du PPP sur une liaison série de la même façon.