Monorailcat

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 : , , , ,

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 : , , , ,

Carte odométrie

icon 17/02/2014 - No comments

Caractéristiques
  • Alim : 5v ( ~100mA avec les codeurs)
  • Entrées : Codeurs optiques, Arduino Mega (1280/2560), Série
  • Sorties : cartes moteur LMD18200, Arduino Mega, Série
  • Dimensions : 60mm * 120mm

Principe
Asservissement en angle et en position d'un robot à deux roues motrices, pour la coupe de France de robotique.
Les coefficients P, I, D de l'asservissement linéaire et angulaire, sont réglables.
Le HCTL2032 sert à compter les pas de chaque codeur optique (deux canaux en quadrature) sur 32 bits
L'Arduino s'occupe de faire des calculs de trigonométrie et de commander les moteurs.

Schéma
HCTL2032 + Arduino : le HCTL2032 compte les pas des deux roues codeuses, l'Arduino l'interroge régulièrement (pas besoin de reset en comptant sur 32 bits) et asservit en position et en angle (P, I, D codés en dur), Position en X,Y,Vitesse,Angle à donner via l'interface série Voir le schéma dans la doc.

Typon
PCB HCTL2032 Arduino

Doc
hctl2032

Photos
TODO

Composants
  • HCTL2032 (difficile à trouver)
  • Arduino Mega
  • Oscillateur à 1~10MHz
  • capas de découplage
  • résistances de pullup (1206 à souder sur le connecteur)

Auteurs
  • Schéma : Agilent/Avago/HP, Damien Favre, Camille Bouvard, Xavier Bourgeois
  • PCB : Damien Favre, Camille Bouvard, Xavier Bourgeois
  • Code : Yohan Bearzi, Damien Favre, Camille Bouvard, Xavier Bourgeois

Corrections
Tout est dans le code…
Il faut rajouter des résistances de pullup pour des codeurs à sortie en collecteur ouvert.
Il reste deux gros bugs:
  • Un des timer doit foirer ou une variable doit overflow, après 30s ou 8 à 12m, impossible de s'arrêter
  • Il arrive que la carte ne réponde pas après avoir attendu trop longtemps sans recevoir de commande

Utilisations
Carte assez robuste, honteusement pompée sur la carte d'Asservissement Polaire PE de 2008, (mais en mieux)
Le développement à commencé en Septembre 2012 et les corrections de bugs ont duré jusqu'à la coupe 2013.
Cette carte a été réutilisée en 2014 et 2015.

Cette page est disponible sur le site de l'association Galiléo.

icon Tags de l'article : , , ,