Patcher le driver ethernet de4x5 pour contourner un bug hardware du Power Macintosh 6500.

Introduction.

Possesseur d'un G3/266 beige et d'un 6500/275 (beige également ;-), je me suis dit : je vais les mettre en réseau. Le G3 tourne principalement sous MacOS, et le 6500 sous Linux. Le G3 possède une carte ethernet intégrée, ce qui n'est pas le cas du 6500. Je me suis donc procuré une carte Dayna Port E/PCI 10 BaseT/AUI chez mon revendeur Apple préféré.

18/9/00 : étant donné que j'ai remplacé la carte Dayna par une carte 10/100baseT construite autour d'un circuit intégré Realtek 8139B, je ne maintiendrai plus ce document. Cette nouvelle carte est une carte Arowana. Il y a dessus un autocollant "Design for Windows 98/NT", comme je ne comprends pas bien l'anglais, je ne sais pas trop ce que ça veut dire ;-). Elle fonctionne sous Linux et sous MacOS, et elle coûte à peine plus que 100 FF TTC.

Le problème.

Si tout fonctionne sans problème sous MacOS, il n'en va pas de même sous Linux. En effet, la liaison se bloque régulièrement, et il n'y a pas d'autre solution que d'éteindre et de rallumer les 2 machines afin de restaurer la connexion ... jusqu'au prochain blocage. Ces symptômes sont apparus sous LinuxPPC R4 (noyau 2.1.125) et LinuxPPC 1999 (noyau 2.2.10).

Une solution.

J'étais sur le point de me faire une raison quand j'ai trouvé par hasard les explications de ce phénomène sur la page de Stefan Jeglinski où tout est expliqué en anglais. Malheureusement, Stefan doit être occupé ou a changé d'adresse de messagerie car il n'a pas répondu à la demande d'autorisation de traduction que je lui ai faite. Je ne peux donc pas proposer la traduction ici.

En résumé, Stefan décrit les symptômes, explique comment il a trouvé une solution et propose 2 patches pour le driver de4x5, l'un concerne le noyau 2.2.7, et l'autre le noyau 2.2.8 (vous devez récupérer ces patches sur la page de Stefan Jeglinski). Si vous utilisez une autre version du noyau, vous pouvez vous inspirer des patches pour effectuer les modifications à la mimine et avec l'aide de votre éditeur préféré. C'est ce que j'ai fait sur le fichier de4x5.c du noyau 2.2.10 de chez kernel.org.

Tests.

Une fois les modifications effectuées, le noyau compilé et installé, il n'y a plus qu'à vérifier que ça marche mieux. Pour faire ce test, j'ai sauvegardé environ 27 000 fichiers pour un total d'environ 900 Mo du G3 sur le 6500 par AppleTalk/Netatalk et un utilitaire de sauvegarde incrémentale que j'ai fait moi même (mais ceci est une autre histoire ;-).

Alors que la sauvegarde avait échoué quelques heures auparavant pour cause de blocage du lien ethernet, cette fois-ci, avec le nouveau noyau, ça passe. Ça a duré quand même près de 80 minutes. Je n'ai pas constaté de blocage, mais de temps en temps, des arrêts de transmission durant plusieurs secondes avec reprise de la communication. Ce n'est donc pas encore parfait, mais c'est quand même beaucoup mieux.

Conclusion.

Après 2 mois d'utilisation, je déchante un peu. Les bloquages du lien ethernet sont moins fréquents, mais ils sont toujours là. De plus, pendant un shutdown après avoir rencontré un blocage, le système se fige lors de l'arrêt de la connexion eth0. Il faut alors rebooter violemment, avec le risque de véroler les partitions.

3/6/00 : mais où cela va-t-il se nicher ? Depuis que j'ai un bouchon SCSI actif, ces problèmes ont disparus. Les erreurs d'accès au disque devaient certainement produire indirectement des time-out ou d'autres erreurs sur le lien ethernet qui finissaient par bloquer le driver. Ce n'est qu'une hypothèse qu'il conviendrait de vérifier.

Les retours d'expérience sur d'autres modèles de 6500, voire de 5500, et avec d'autres cartes ethernet sont les bienvenus.

Etienne Herlent.

 

Dernière mise à jour le 18/9/00.

les fichiers en téléchargement sont à ftp://ftp.linux-france.org/pub/macintosh/

 

Retour à GNU Linux sur Macintosh