Monorailcat

Batterie Dell HW900 : Teardown

icon 05/04/2016 - No comments

Cette batterie est une slice battery, très fine (8mm) qui se pose sous un PC portable.
Elle est donnée pour 48Wh en 11.1V, ce qui donne environ 3 à 5h d'autonomie pour les Dell Latitude E.
Le modèle HW900 est donné pour être compatible uniquement avec les PC Dell Latitude E4300, mais utilise le même connecteur que tous les Dell Latitude séries E. Comme j'ai un Latitude E6420, pourquoi ne pas essayer.

En pratique, deux crochets gènent tombent en face d'une arrivée d'air et empêchent le placement de la batterie. En démontant ces crochets et en tenant la batterie manuellement, le contact se fait, mais la batterie n'est pas détectée par le PC, dommage.

Batteries
Le boitier s'ouvre avec 11 vis (cachées par des pastilles collées) et des clips sur les bords de la base, un peu longs à démonter sans les casser (les deux parties sont collées/gluées), mais le plastique de la base est de bonne qualité.
Dell HW900 hidden screws

Une fois ouvert, on découvre 6 cellules Li-po au format "pouch" reliées par des conducteurs en kapton/cuivre, une carte de BMS et chargeur et le mécanisme de verrouillage des crochets.
Dell HW900 teardown

Les cellules sont des Sanyo UPF574199 (500 cycles à 4.2V-3V, 2.15Ah, 57*41*99mm³) assemblées en 3S2P (d'où les 11.1V nominaux).
Dell HW900 Li-po cell


BMS
Le BMS est noté "Lola Slice" et semble assez compliqué. La seule documentation trouvable sur le PCB renvoie vers une note de conformité, qui a le mérite de lister les spécifications des batteries et des cellules de plusieurs batteries.

Les quelques chips intéressants ne sont pas tous bien documentés :
  • bq20894 : no datasheet available (protection?)
  • bq20870 : no datasheet available (BMS, digital)
  • bq29312 : Analog Front End for bq2084 (BMS, analog)
  • MAX8731A : universal battery charger (Buck) + SMBus control
Par contre le layout du circuit imprimé permet d'identifier chaque partie :
Dell HW900 Lola slice BMS layout

Références

icon Tags de l'article : , ,

D-Link DE-620 PE-EPP

icon 29/03/2016 - No comments

Hardware
D-Link DE-620
La carte est assez simple avec un routage très compact, avec deux buffers TTL 74ALS245 pour le port parallèle, un ASIC custom noté DL3520S (D-Link).
D-Link DE-620 bottom
L'ASIC addresse directement sa mémoire cache (32k x 8bit, 70ns), une eeprom SPI de 128bits (93C46) pour sauvegarder l'adresse MAC et les réglages permanents.
Le bus entre l'ASIC et le contrôleur MAU et RJ45 (AT&T T7213) est isolé par un transformateur d'impulsions.
Le contrôleur MAU -> Coaxial (Myson MTD493V) est relié directement au bus MAU du chip AT&T, mais le port RJ45 est relié au chip AT&T par un autre transformateur d'impulsions.
D-Link DE-620 top

L'alim est commandée par un chip "universel" LT1172 avec un transformateur, qui permet de fournir du +9V et du +5V à partir d'une unique alimentation (12V externe, le port parallèle ne fournit pas de courant).

Compilation du driver pour Linux
Le driver de620 est bien caché et n'est pas compilé par défaut, mais on peut facilement le rajouter.

Avec Debian Squeeze, on va installer les sources et les kernel-headers qui correspondent à notre noyau apt-get install linux-source-$(uname -r |awk -F "-" '{print $1}') linux-headers-$(uname -r)

Une fois tout copié, on va extraire les sources dans le dossier /usr/src/, et préparer le noyau à être installé.
GCC, make et libncurses-dev (dans la même version que celle qui a servi à compiler le noyau) sont nécessaires.
On va commencer dans le dossier contenant les sources du noyau en préparant le noyau :
$ cd /usr/src/linux-image-$(uname -r |awk -F "-" '{print $1}')
$ cp ../linux-headers-$(uname -r)/Module.symvers .
$ cp /boot/config-$(uname -r) .config
$ make prepare
$ make scripts
$ make menuconfig

Dans l'interface menuconfig, il va falloir vérifier que le port parallèle est bien activé CONFIG_PARPORT=m et activer les cartes réseaux (Device Drivers ---> Network device support ---> Ethernet (10 or 100Mbit) ---> Pocket and portable adapters, D-link DE600 & D-link DE620 pocket adapter support)
Si la machine est lente, il est conseillé de retirer le maximum de modules (uniquement réseau, la compilation des autres sera évitée).
D-Link DE-620 driver compilation

On peut vérifier que les modules vont bien être compilés :
$ grep CONFIG_DE6.0 .config
CONFIG_DE600=m
CONFIG_DE620=m


Il ne reste plus qu'à compiler :
$ cd drivers/net/
$ make -C ../../ M=($pwd) modules

Seulement les drivers relatifs au réseau seront recompilés (quasi uniquement DE600 et DE620).
Une fois la compilation et l'édition de liens terminées, on va pouvoir copier les modules
# cp de6?0.ko /lib/modules/$(uname -r)/kernel/drivers/net/
# depmod -a

Depmod permet de mettre à jour la liste des modules chargeables par modprobe.

Utilisation
Avec le driver installé, il ne reste qu'a le charger, configurer la carte réseau, puis l'utiliser.
# modprobe de620
D-Link DE-620 pocket adapter, Ethernet Address: 00:80:c8:xx:xx:xx (32k RAM, UTP)


Dans mon cas, l'interface est reconnue comme eth1, et on peut la régler avec une adresse IP statique avec ifconfig ou bien en dynamique (dhclient est installé par défaut avec Debian).
On peut rapidement tester avec les commandes ping, route, nslookup et arp que tout fonctionne correctement.

Performances
Pour tester sans être dérangé par d'autres facteurs, je branche un PC de test directement sur la carte PE-EPP avec un câble RJ45. Il n'y a que deux machines sur le réseau.
iperf est un outil prévu pour mesurer la bande passante de réseaux, parfaitement adapté à ce cas. J'ai testé en alternant les modes client et serveur, pour mesurer le débit montant et descendant.


[ 3] local 192.168.10.1 port 50051 connected with 192.168.10.2 port 5001
[ 3] 0.0-10.0 sec 2.19 MBytes 1.83 Mbits/sec
[ 5] local 192.168.10.1 port 5001 connected with 192.168.10.2 port 49470
[ 5] 0.0-15.6 sec 2.00 MBytes 1.07 Mbits/sec

[ 4] local 192.168.10.2 port 49468 connected with 192.168.10.1 port 5001
[ 4] 0.0-10.0 sec 1.88 MBytes 1.57 Mbits/sec
[ 5] local 192.168.10.2 port 5001 connected with 192.168.10.1 port 50051
[ 5] 0.0-10.8 sec 2.19 MBytes 1.70 Mbits/sec


Avec plusieurs tests, on a bien 1~1.5Mbit/s en réception et 1.5~1.8Mbit/s en émission, avec une charge CPU élevée.
Ce débit peut paraître lent devant les 10Mbit/s de l'ethernet, mais il ne faut pas oublier que le port parallèle ne dépasse pas 200kio/s en mode SPP, ce qui est cohérent. Il est possible que mon port parallèle et son driver ne fonctionnent pas en mode EPP (2Mio/s maximum et accès DMA).

Note
Plusieurs fois pendant les benchmarks, la carte a arrêté de fonctionner et le noyau a affiché eth1: transmit timed out, network cable problem?. La carte refonctionne après un rechargement de driver (ifconfig eth1 down; rmmod de620; modprobe de620; ifconfig eth1 192.168.10.1).

DOS
Un driver est fourni pour DOS, Windows 3.1 et OS/2, mais DOS n'est pas vraiment pratique.

Références

icon Tags de l'article : , ,

Écran LCD HP L1706 : Réparation

icon 27/03/2016 - No comments

Écran
En général, il est assez facile de récupérer des écrans bas de gamme agés de 5 à 10 ans. Pour la majorité, le rétro-éclairage de l'écran clignote, puis finit par s'éteindre. En général, ce problème est dû à la faible durée de vie de certaines capacités (souvent sous-dimensionnées en ESR, en courant et en température). Parfois, les diodes de redressement s'abiment du fait des pics de courant non-absorbés par les capas usées. Mais en général, une réparation coûte moins de 5EUR.

Sur cet écran (plutôt milieu de gamme), le fusible côté secteur était fondu et les capacités du côté secondaire étaient en bon état.

/!\ Danger
Des tensions dangereuses sont présentes sur la carte d'alimentation, ne rien toucher sans l'avoir débranchée et déchargé la capacité primaire.
/!\ Warning
Dangerous voltages are present on the power board, do not touch it until it is unplugged and its primary capacitor is discharged.

Panne
Sur ces écran, seulement la carte d'alimentation (modèle 715G1502, fabriquée par AOC) est défectueuse, la dalle et la carte gérant l'affichage sont encore fonctionnelles.

En regardant la carte d'alimentation, la capacité qui lisse la tension du secteur (C905) fuit légèrement, et le mosfet de découpage (Q903) a l'air d'avoir bien chauffé.
Faulty 715G1502 power board, primary side
En sortant le multimètre, la capa de lissage n'est pas en court-circuit et n'a pas de résistance de fuite trop faible, par contre le mosfet de découpage est en court-circuit.

Après remplacement par un MOS équivalent, l'écran s'allume, mais le transformateur couine par intermittances à 100Hz, et le mosfet est brûlant (>100°C au toucher).
Mon voltmètre affiche "Hors-Calibre" quand je mesure la tension hachée au primaire du transformateur flyback (AC) et sur la capacité de lissage (DC).
Avec un autre voltmètre (2kV max), je mesure entre 500V et 800V DC et 200V AC aux bornes de la capacité C905, et du coup je n'ose pas mesurer au primaire du transfo...

Réparation
Cette carte converti la tension du secteur en +5V et +12V, permanents, avec un convertisseur flyback. Un deuxième convertisseur (activé uniquement quand l'écran fonctionne) convertit le +12V en 800V~2kV pour les tubes CCFL du rétroéclairage.
Comme la partie primaire ne fonctionne pas, et que le secondaire a des diodes de redressement fonctionnelles, on peut alimenter les sorties +5V et +12V directement, tant que le primaire n'est pas branché.

La première réparation rapide a concisté à brancher directement une alimentation de PC (connecteur Molex 8981) sur les pistes du +12V (Cathode de D902) et +5V (Cathode de D904). Ça fonctionne, mais l'encombrement des connecteurs et les câbles empêchent de fermer la coque de l'écran et d'éloigner l'écran de l'alimentation.
Temporarly fixed 715G1502 power board

La réparation définitive conciste à scier le primaire et le secondaire de l'alimentation (seule la partie "inverter" pour le rétroéclairage CCFL est gardée).
On ajoute un régulateur à découpage 12V -> 5V à base de LM2576 et une banque de capacités de découplage pour les rails 5V et 12V.
Le rail 12V est fourni par une alimentation externe (12V, >3A), via un connecteur "barrel" (DIN 45323 5-2mm ou IEC 60130-10 type A).
LM2576 quick fix

Le câblage du connecteur CN902 est identifiable :
CN902

Fixed 715G1502 power board
Il faut bien isoler la carte d'alimentation 12-5V, et utiliser du scotch isolant pour fixer la carte et les câbles.


Le seul défaut vient de la résistance DC du câble et du connecteur, qui fait légèrement chauffer le câble et le connecteur).
Fixed L1706 monitor

Références

icon Tags de l'article : , ,

Compaq Contura 4/25 : DOS, Windows

icon 22/03/2016 - No comments

Limitations
Le PC n'a qu'un seul disque dur (40Go à la place des 200Mo d'origine), un port parallèle, un seul port série (utilisé par une souris), et le lecteur de disquettes et le modem ne sont plus présents (HS). L'installation de programme va être difficile sans ruser.

On commence par brancher le disque sur un convertisseur USB-IDE pour formatter le disque, le tester et copier les fichiers de DOS, Windows et les drivers.
On peut aussi utiliser Laplink et kermit pour transférer des données avec un câble série ou parallèle.

Qemu
Qemu permet de créer les partitions, de formater le disque et de copier le système de DOS en vérifiant que tout va fonctionner.
Ici, on a une machine avec Linux, le disque que l'on va utiliser s'appelle /dev/sdc et l'image de disquette dos622_1.img.
qemu-system-i386 -m 8 -fda dos622_1.img -hda /dev/sdc -boot a

En quittant le programme d'installation (F3), FDISK permet de créer une partition (attention à la taille visible par le BIOS de 512Mio ou 2Gio, et DOS 6.2 n'allouera jamais de partitions de plus de 2Gio).
Après un redémarrage pour prendre en compte la nouvelle table de partitions (il faudra encore quitter l'installation de DOS), on peut formater la partiton avec FORMAT C: /S et redémarrer en enlevant la disquette, pour tester.
Normalement on doit obtenir quelques lignes avec un prompt :
Starting MS-DOS...

C:\>_

C'est que tout s'est bien passé et qu'on peut copier le contenu des disquettes dans un dossier du disque.

DOS
On peut remettre le disque dans le PC. Si tout ce passe bien, le pc renvoie le prompt de DOS, que l'on peut continuer à installer :
cd \DOSS
setup.exe
(les fichiers ont été installés dans le dossier C:\DOSS\)
MS-DOS 6.2 installation

Il ne reste plus qu'à se laisser guider et choisir les programmes de dos à installer.
On peut aussi installer des programmes supplémentaires (disquette 4) :
cd \DOSS
setup.bat


Quelques programmes sont spécifiques à ce PC et sont fournis par Compaq, mais seuls les SP1728 et SP1743 sont vraiment utiles.

Windows 3.1
cd \WIN31
setup.exe

L'installation est vraiment simple et rapide.
windows 3.1 installed

Windows 95
Windows 95 peut fonctionner avec 4 ou 8Mio de RAM, mais il est beaucoup plus lent que Windows 3.1, du coup je n'ai pas tenté son installation, même s'il avait été installé sur le disque dur d'origine. Windows 98 fonctionne assez mal avec moins de 32Mio de RAM, et refuse de s'installer avec moins de 16Mio.

SoftPaq
Ce sont des programmes fournis par Compaq, habituellement installés d'origine et fournis sur des disquettes :
  • SP1454 : Installe une partition d'hibernation et de recovery, mais risque de casser la table de partition...
  • SP1728 : Driver video pour DOS
  • SP1743 : Programmes de base pour Compaq Contura
  • SP2054 : Configuration du BIOS et diagnostic depuis DOS
Comme les disquettes ont disparu de la circulation, je les ai extraits.

icon Tags de l'article : , , , ,

Compaq Contura 4/25 : Hardware

icon 22/03/2016 - No comments

Carte mère
La carte mère est assez compacte, même pour les standards de 2016, et a un nombre impressionant de vias (dont des vias borgnes) et a probablement plus de 6 couches.
Compaq Contura Motherboard multiple vias
En comparaison avec les cartes mères de PC de bureau, il y a très peu de ports d'extension, et donc peu de place utilisée par des buffers et des connecteurs. Il y a aussi beaucoup d'ASICs custom, pour remplacer une partie de la glue logique (les cartes mères de 486 sont habituellement pleines de puces TTL 74xx).

Connecteurs
Compaq Contura Motherboard top side
  • J1 : Clavier (Ribbon 12 pins)
  • J2 : Clavier (Ribbon 14 pins)
  • J3 : VGA externe (DB15-HD)
  • J4 : Pavé numérique externe (Jack 2.5mm)
  • J5 : Écran/inverter "INVERTER BOARD" (ribbon 40 pins)
  • J6 : Clavier/Souris externe (PS/2, mini-DIN)
  • J7 : Extension modem/port série (2*25 contacts board-to-edge)
  • J8 : Extension mémoire DRAM (2*40 pins 0.05")
  • J9 : Port parallèle externe (DB25)
  • J10 : LEDs et boutons, "INTERCONNECT BOARD" (2*6 pins 0.1")
  • J11 : Pile horloge RTC? (2 pins)
  • J12 : Port Série RS232 (DB9)
  • J13 : Lecteur de disquette (Ribbon)
  • J14 : Alimentation "DC-DC CONVERTER" (2*10 pins 0.1")
  • J500 : Disque dur ATA/IDE (44 pins, 2mm)

Circuits intégrés
Face dessus :

Compaq Contura Motherboard bottom side
Face dessous :

Autres
  • Y1 : Oscillateur TCXO, 16.000MHz (clavier? bus ISA?)
  • Y2 : Oscillateur TCXO, 24.000MHz (PLL?)
  • Y3 : Oscillateur TCXO, 32.768kHz (Horloge RTC)
  • SPK1 : Buzzer Intervox BST1811P-06

Écran
La nappe J5 est reliée à une carte inverter, placée sous l'écran. Les signaux de données de l'écran DSTN (deux mots de 4 bits, Hsync, Vsync et DotCLK) sont reliés directement de la carte mère à l'écran. La carte contient une alimentation boost (LTC1172) suivie d'un régulateur LDO (LM337) pour alimenter l'écran LCD avec une tension d'environ -20V. Le reste de la carte est utilisé pour un onduleur résonant qui alimente le néon à cathode froide (CCFL) de l'écran (600~1'200V).
Les deux potentiomètres permettent de régler la luminosité (tension d'alimentation du néon), et le contraste (tension de bias de l'écran LCD).
Compaq Contura inverter

Le brochage du connecteur de l'écran a été identifié en suivant les pistes de signaux et en mesurant les tensions moyennes/pic :
  1. FLM (Vsync)
  2. CP1 (Hsync)
  3. CP2 (Dot CLK)
  4. Vdd (5V)
  5. GND
  6. V- (-21.5V)
  7. DU0
  8. DU1
  9. DU2
  10. DU3
  11. DL0
  12. DL1
  13. DL2
  14. DL3

Modifications
La batterie d'origine a été remplacée par une CR2032, plus courant, en changeant le support, mais elle aurait pu être remplacée en utilisant le connecteur J11.

Références

icon Tags de l'article : , , , ,

Lecteur DVD Schneider SDV 436

icon 06/03/2016 - No comments

Hardware
C'est un lecteur de DVD de salon vendu entre 2005 et 2007. Il date du moment où les lecteurs DVD ont commencé à bien supporter les DivX et sont devenus vraiment cheap.

Ce lecteur a plusieurs clones ou modèles très proches : Magnavox/Philips/Schneider MDV435, MDV437, SDV436, et probablement d'autres.

Celui-ci a 3 circuits imprimés :
  • une alimentation à découpage +3.3V, +5V, +12V, -12V et -24V (15W)
  • un panneau d'interface utilisateur : Contrôleur PT6312 (équivalent µPD16312), afficheur VFD, boutons, LED, capteur IR
  • une carte mère avec un SoC SunPlus SPHE8281D (ou SPHE8201D), un driver de puissance pour le lecteur CD (Moteurs brushless + DC), des régulateurs de tension, de la SDRAM et deux puces EEPROM (firmware + réglages sauvegardés)

Il y a plusieurs connecteurs et composants non-installés sur la carte-mère (P/N : 40-MDV435-MAC2G). le manuel de réparation indique que ce sont des connecteurs de debug (probablement RS-232), un micro/ampli pour un mode karaoké et un connecteur USB pour lire des fichiers depuis un disque dur externe. Par contre, il n'y a aucun connecteur JTAG.

Le problème, c'est que sur ce SoC, les pins de l'UART sont partagés avec la synchro horizontale/verticale, et ne sortent pas grand chose qui ressemble à un signal série.

Pour avoir de la place, j'ai démonté le bloc du lecteur DVD, sans lequel la carte-mère est incapable de démarrer. Mais il est possible de la leurrer en reliant le pin TRAYI à la masse, sur le connecteur CN?.

Dézonage
Ce modèle a été vendu en Europe et ne lit que les DVDs de Region 2.

Region setting on MDV435/SDV436 DVD players

Le dézonage est assez rapide et se fait de la même façon sur d'autres modèles Philips/Magnavox/Schneider :
  • Démarrage du lecteur DVD,
  • Ouverture du tiroir,
  • 4 appuis successifs sur la touche 7 de la télécommande (7-7-7-7),
  • Selection du champ REGION sur le menu affiché,
  • Choix de l'option REGION 0,
  • Fermeture du tiroir.

Software
La recherche d'un firmware n'a rien donné. Ce qui est assez dommage, puisque même le firmware d'origine aurait permis de comprendre son fonctionnement.

Utilisation de l'écran VFD
La carte d'interface utilisateur a besoin d'alimentation +12V, -24V (afficheur VFD) et d'une interface SPI (connectée à l'ASIC PT6312) pour afficher des caractères.
hooking a microcontroller board to the VFD controller

D'après la documentation de la puce, il faut plusieurs commandes d'initialisation, puis balayer la mémoire avec les positions des segments (chaque digit est séparé en deux blocs de 7 segments).
uPD16312/PT6312 vfd driver

Références

icon Tags de l'article : ,

Convertisseur USB-PS/2

icon 05/03/2016 - No comments

Fonctionnement
J'ai voulu utiliser un convertisseur USB-PS/2, pour utiliser un clavier PS/2 avec un PC portable qui n'a que des ports USB.

En général ces systèmes utilisent un petit microcontrôleur avec un périphérique USB host et émulent le protocole HID. Les périphériques PS/2 sont en général "bit-bangés".
Il existe des notes d'application avec des microcontrôleurs Microchip (PIC16/PIC18/dsPIC33), Atmel (ATMegaU/ATXMega), TI (CC25xx) qui incluent un périphérique USB host et un core 8bit suffisament rapide pour gérer l'USB et bit-banger deux lignes PS/2.
Microchip appnote USB to PS/2

Par flemme de coder le soft, j'ai préféré commander un module tout fait. Le problème, c'est qu'à la réception de ma carte, le contrôleur était détecté aléatoirement par le port USB et les claviers/souris ne fonctionnaient pas (Pas de signal sur tous les pins des connecteurs PS/2).

Réparation
failing usb-ps2 converter
En ouvrant on remarque bien qu'il n'y a pas grand chose : un microcontrôleur/ASIC dans un "Chip on Board" résiné, une capa de découplage pour la forme, et 3 connecteurs.

En testant à l'ohmmètre, on remarque que des soudures et un connecteur PS/2 sont cassés.
Un examen du PCB montre qu'il devrait y avoir une capacité C1 pour découpler l'alimentation.

Après changement d'un câble (je n'utilise que le clavier) et soudure d'une capacité de découplage (47µF 25V, mais la valeur n'est pas critique entre 100nF et 100µF), le convertisseur fonctionne.
fixed usb-ps2 converter

Par curiosité, les chip-on-boards ressemblent à ça, avant qu'ils soient noyés dans la résine.
Chip on board Sparkfun

Références

icon Tags de l'article : ,

Sun Ultra 1 : Installation de Solaris 8

icon 21/02/2016 - No comments

Ma station de travail Sun Ultra 1 n'a pas de lecteur CD ni de lecteur de disquette, mais l'utilisation du réseau est prévue pour installer un système d'exploitation.

Pour que tout fonctionne, on utilise la console série (9600bit/s, 8N1, en débranchant le clavier), mais il est possible d'utiliser le clavier et l'écran à la place.
Solaris 8 nécessite entre 300Mo et 1.3Go en installation de base (probablement bien plus une fois d'autres paquets installés). 192Mio de mémoire ne pose pas de problème à l'installeur (aucune idée du minimum).

NVRAM
Comme la NVRAM est à remplacer, il faudra configurer l'adresse MAC et quelques paramètres à chaque arrêt de l'alimentation.
01 0 mkp
80 1 mkp
08 2 mkp
0  3 mkp
20 4 mkp
c0 5 mkp
ff 6 mkp
ee 7 mkp
0 8 mkp
0 9 mkp
0 a mkp
0 b mkp
c0 c mkp
ff d mkp
ee e mkp
0 f 0 do i idprom@ xor loop f mkp
Chaque ligne règle un octet de la NVRAM (HostID : 80c0ffee , adresse MAC : 8:0:20:c0:ff:ee), et la dernière calcule le checksum des précédentes et l'écrit dans la NVRAM.

Pour les autres variables de la NVRAM, il faut les remettre par défaut avec set-defaults. Il peut être utile de désactiver le boot automatique avec setenv auto-boot? no, puis choisir le périphérique et le fichier démarré par défaut (en cas de redémarrage) setenv boot-device net (ou bien cdrom, disk), setenv boot-file kernel/unix.

Une fois la NVRAM remplie, le système doit démarrer "proprement" avec reset. Il n'y a pas de coupure d'alimentation, de ce fait la NVRAM ne perd aucune donnée.

Serveurs
Les machines Sun ont besoin de plusieurs services réseau pour démarrer :
  • rarpd, qui va assigner une adresse IP en fonction de l'adresse MAC de la station
  • tftpd, qui va fournir une image bootable à la station
  • bootparamd, qui va fournir les partages NFS à monter pour accéder au système d'installation
  • NFS, pour partager les dossiers contenant le programme d'installation la raçine d'un système Solaris
Tous ces serveurs peuvent être sur des machines distinctes et fonctionnent avec différents OS Unix.

Configuration
Avant de commencer la configuration, on a un CD de Solaris 8 monté dans le dossier /mnt/ d'une machine x86 avec Debian Linux.
Rarp
On installe le paquet rarpd, on démarre le daemon, puis on fait correspondre l'adresse MAC, le hostname et l'adresse IP de la station :
# cat "08:00:20:c0:ff:ee sunultra" >> /etc/ethers (>> ajoute à la fin du fichier)
# cat "192.168.3.123 sunultra" >> /etc/hosts

Tftpd
On installe un serveur tftp (quelconque, avec ou sans inetd), puis on note son dossier racine (/var/tftp/ dans notre cas).
On va copier l'image dans la racine :
# find /mnt/Solaris_8/Tools/ |grep inetboot
/mnt/Solaris_8/Tools/Boot/usr/platform/sun4u/lib/fs/nfs/inetboot
/mnt/Solaris_8/Tools/Boot/usr/platform/sun4us/lib/fs/nfs/inetboot
/mnt/Solaris_8/Tools/Boot/usr/platform/sun4d/lib/fs/nfs/inetboot
/mnt/Solaris_8/Tools/Boot/usr/platform/sun4m/lib/fs/nfs/inetboot

L'image de la plateforme sun4u est celle qui correspond aux machines Ultra 1 :
# cp /mnt/Solaris_8/Tools/Boot/usr/platform/sun4u/lib/fs/nfs/inetboot /var/tftp/
Une particularité des machines Sun est d'utiliser une image par adresse IP, avec une adresse ip en hexadécimal :
# printf %02X 192 168 3 123
C0A8037B

Une fois que bash nous a converti l'adresse, on va lier l'adresse IP à l'image qu'on veut booter :
# cd /var/tftp/; ln -svf inetboot C0A8037B; ln -svf inetboot C0A8037B.SUN4U
On met deux fichiers dans le doute, certaines version d'OpenBoot ajoutent le nom d'architecture à la fin du fichier.

NFS
On installe un serveur NFS (nfs-kernel-server, nfs-common et rpcbind avec Debian) et on edite le fichier /etc/exports
On crée un dossier là où on a au moins 1Go de libre (/media/stuff/local/sunultra/ dans notre cas).
On va le partager avec # exportfs 192.168.3.0/24:/media/stuff/local/sunultra/ -o rw,sync,no_subtree_check (on peut remplacer l'adresse et le cidr par * ou par une seule machine).
On peut aussi ajouter la ligne /media/stuff/local/sunultra/ 192.168.3.0/24(rw,sync,no_subtree_check) dans le fichier /etc/exports.

Bootparamd
On installe bootparamd, puis on ajoute les lignes suivantes dans le fichier /etc/bootparams :
sunultra root=192.168.3.3:/media/stuff/local/sunultra/Solaris_8/Tools/Boot \
install=192.168.3.3:/media/stuff/local/sunultra \
rootopts=:rsize=32768 boottype=:in


Copie des fichiers
On va ensuite copier les fichiers de /mnt/ vers /media/stuff/local/sunultra en conservant les permissions et les fichiers cachés.
rsync -trav /mnt /media/stuff/local/sunultra

Installation
J'ai probablement fait quelque chose d'incorrect (je serais heureux d'avoir un retour si quelqu'un trouve) qui fait échouer l'installation après le montage du partage NFS avec There were problems loading the media from /cdrom..

Bricolage
Comme je n'ai pas réussi à installer Solaris 8 par le réseau ni à booter sur un CD, j'ai séparé l'installation :
  • Boot réseau : boot net -v - install,
  • Plantage de l'installation : There were problems loading the media from /cdrom.
  • Démontage du partage NFS : umount /cdrom
  • Montage du CDROM : mount -r -F hsfs /dev/dsk/c0t1d0s0 /cdrom
  • Suite de l'installation : ttinstall

Notes
Disques non-détectés :
Modification du script d'installation /sbin/startup :
mkdir /tmp/linkmod
cp -f /usr/lib/devfsadm/linkmod/* /tmp/linkmod/
devfsadm -l /tmp/linkmod/


Installation "bloquée" :
Curseur tournant après plusieurs minutes :
On bouge le fichier gênant : mv /sbin/get_netmask /sbin/get_netmask.test

cannot open /cdrom/.cdtoc :
Des fichiers ont été oubliés dans le miroir NFS, ou le CD/partage n'est pas monté.

panic[cpu0]/thread=xxxxx: Can't invoke /etc/init, error N :
Le fichier est inexistant ou inacessible en lecture/execution, il est possible que les liens ou permissions/droits des fichiers n'aient pas été conservées pendant la copie sur le partage NFS.

Utilisation
Si le réseau ne fonctionne pas, il suffit de plusieurs étapes :
# ifconfig le0 up
# ifconfig le0 192.168.3.123
# route add default 192.168.3.1

La commande netstat -r peut donner des informatiosn sur la table de routage.

Références

icon Tags de l'article : , , , ,

Sun Ultra 1 : Hardware

icon 19/02/2016 - No comments

Hardware
Cette station est le haut de gamme de 1995.
Sun Ultra 1 front
Tout est fait sur-mesure par Sun ou utilise des composants haut-de-gamme.
Beaucoup de connecteurs internes ou externes sont exotiques, mais ont été choisis avant que les PC soient répandus, et où chaque constructeur avait ses propre standards de câblage.

Configuration :
  • CPU : UltraSPARC, 64-bit, 143MHz
  • RAM : 192Mio DSIMM (4x16Mio + 2x64Mio, 2 slots libres), bus 288bits (256 + ECC), les modules s'installent par paire
  • Disque dur : Quantum 1Go 5400rpm SCSI (SCA)
  • Lecteur CDROM : Non-installé
  • Lecteur disquette : Non-installé
  • Carte Graphique : TurboGX 1Mio, 8-bit, sbus
  • Carte d'extension sbus : Réseau/SCSI (un slot sbus libre)
  • Alimentation : Monstre de 180W (au moins deux canaux complètement distincts, et une sortie 230V commandée)

Sun Ultra 1 overview
Sun Ultra 1 motherboard

Câblage
Tout est différent des PC. Par exemple, la souris est branchée au clavier, qui est branché à la carte-mère avec un connecteur mini-din à 8-pins (incompatible avec les claviers PS/2). L'écran utilise un connecteur 13W3, avec 3 coax et 10 pins dans un connecteur de la taille d'un DB-25, mais pas avec le même pinout que les écrans SGI ou NeXT.
Sun Ultra 1 back

Par chance, j'ai pu avoir un clavier avec la machine, mais je n'ai pu récupérer qu'un câble 13W3 mâle, il va donc falloir bricoler.

Ventilateur
En branchant la machine pour la première fois, on découvre que le ventilateur du processeur ne fonctionne pas, et qu'il utilise un connecteur Molex micro-fit introuvable.
Le ventilateur d'origine est un "Elina Fan" KDA1205MB8P : 50mm de diamètre, 10mm d'épaisseur, 5 pales, "middle speed", 12V, 140mA, ~5'000rpm, ~10CFM.
Pour éviter une surchauffe, il faut le remplacer par un ventilateur équivalent, un "ADDA" AD0512MB-G76 : 50mm de diamètre, 10mm d'épaisseur, 7 pales, "middle speed", 12V, 90mA, ~4'600rpm, ~10CFM.
Sun Ultra 1 fan replacement
Le connecteur et le câble se changent en quelques coups de fer à souder.

Console
Comme j'ai mis un peu de temps à faire fonctionner l'écran, j'ai vu qu'il était possible d'utiliser la machine à partir d'une console (Port A, 9600 8N1).
C'est un câble DB25, mais il n'y a que 3 fils à souder. On peut même recycler un câble DB25 mâle d'imprimante.
Ici on va le relier à un PC avec un connecteur DB9 :
|  DB25    | Signal |  DB9  |  Signal |
|----------+--------+-------+---------|
|   2      | Tx Out |   3   |  Rx In  |
|   3      | Rx In  |   2   |  Tx Out |
|   7      | GND    |   1   |  GND    |


Il faut aussi même s'assurer que les ports A et B sont configurés en mode RS-232, avec les jumpers J2104 et J2105 (Reference Manual, pages 4-1 à 4-3).
Il n'y a plus qu'à brancher à un PC avec un terminal, et on devrait voir rapidement des infos quand la machine démarre.

Affichage
Faire un adaptateur 13W3 vers VGA m'a pris du temps et plusieurs essais, simplement parce qu'il y a plusieurs standards (SGI, IBM, NeXT, Apple, Sun...), il est même possible d'avoir différents standards pour une même marque.

Pour une station Sun Ultra 1 avec une carte TurboGX :
|  13W3  |  Signal   |  VGA  |
|--------+-----------+-------|
|   1    | Serial R  |  NC   |
|   2    | V Sync    |  NC   |
|   3    | Sense 0   |  NC   |
|   4    | Sense GND |       | ---+
|   5    | C Sync    |  13   |    |
|   6    | H Sync    |  NC   |    |
|   7    | Serial W  |  NC   |    |
|   8    | Sense 1   |  NC   |    |
|   9    | Sense 2   |       | ---+
|   10   | Sync GND  |  10   |
|   A1   | Red       |  1|6  |
|   A2   | Green     |  2|7  |
|   A3   | Blue      |  3|8  |
Les pins Sense 2 et Sense GND sont reliés pour que la carte graphique se configure en mode 1152x900@76Hz (et détecte un écran).
Sun Ultra 1 13W3 to VGA DIY cable
Sur cette carte, les synchros verticales et horizontales ne sont pas supportées, il faut utiliser la synchro composite à la place (qui n'est pas supportée par beaucoup d'écrans LCD).

RTC/NVRAM
Sur les machines SUN, des paramètres propres à la machine, l'heure et l'adresse MAC de la carte réseau sont stockées dans une SRAM avec une batterie on-chip. Ça fonctionne très bien, mais la durée de vie de ces puces est de l'ordre de 15 à 20 ans. Au delà, il faudra changer la puce ou découper la puce pour changer la pile.

On commence par enlever la puce de son support (Reference Manual, page 10-10) en notant la position du détrompeur (côté CPU) :
Sun NVRAM removed

Ensuite, on va limer le boitier de la puce pour atteindre les contacts de la pile, du côté opposé au détrompeur :
grinding the Sun NVRAM
Pendant cette étape, il est pratique de placer la puce dans un étau, pour être sûr de limer horizontalement.

Une fois les contacts atteints, on peut venir y souder un support de pile CR20xx ou bien des piles AA/AAA :
modified Sun NVRAM
Il ne reste plus qu'a remettre la NVRAM dans son socket (détrompeur côté CPU).

Les horloges RTC/NVRAM DS1553 ont l'air compatibles pin-à-pin, avec les mêmes fonctionalités et les mêmes registres.

Upgrades
Le disque dur d'origine (1Go, 5400rpm) a été remplacé par un disque dur plus récent (18Go, 10krpm avec un bruit d'aspirateur), pour avoir un peu plus de place pour Solaris 8 (l'installation complète prend 1.3Go).
Un lecteur de DVD SCSI a été ajouté pour tenter de démarrer depuis un CD, mais il semble y avoir des histoires avec des secteurs de 2048 et 512 octets.


Notes
  • Il n'est pas possible d'écrire dans la console série si le clavier est branché
  • L'écran ne s'allume pas si le clavier n'est pas branché

Références

icon Tags de l'article : , , ,

Cage SCSI HP Proliant ML-350

icon 14/02/2016 - No comments

J'ai eu besoin d'utiliser une cage à disques SCA (Single Connector Attachment, 80-pins, pour des disques SCSI hot-plug).

La cage à disques vient d'un serveur HP Proliant ML350, permet de brancher 6 disques SCA avec un système de caddies propriétaires HP/Compaq, et se branche à une carte SCSI par un connecteur SCSI 68-pins. Par contre, comme HP ne sait pas faire de choses standard, l'alimentation utilise un connecteur Molex Mini-fit Jr.®©™ à 6-pin plutôt qu'un Molex 8981 (utilisé pour les disques durs).
PCI-E power connector

Pinouts
  1.  +5V
  2. GND
  3. GND
  4. +12V
  5.  GND
  6. GND
HP proliant SCSI cage power connector

ATTENTION!
Le connecteur est compatible mécaniquement avec celui utilisé pour les cartes graphiques PCI-Express, mais les pins ne sont pas les mêmes. Il y a des risques d'endommager l'alimentation ou la cage à disques.

Adaptation
Comme les connecteurs d'alimentation PCI-Express sont mécaniquement compatibles, il suffit d'y changer les fils. Pour ça, Molex fournit un outil à >20EUR, mais il est possible de démonter les cosses avec un petit tournevis plat (il faut tirer assez fort sur le câble).
Molex Mini-fit Jr extracting tool

icon Tags de l'article : , ,