Installation LCU Instrument SL67
Cette marche à suivre concerne uniquement les LCU Beckhoff situés dans le centre de calcul, (pas les LCU télescopes) actuellement (1/5/2016) seul glscora et glsserv ont été installé selon cette technique.
L'installation futur de glsecam, glspisco ou d'un nouveau PC 32 bits demande quelques opérations systèmes supplémentaires décrites immédiatement ci dessous.
Dans le cas d'une réinstallation de glscora ou glsserv aller directement ici.
Première installation d'un LCU instrument sous SL67
Il faut connaitre la MAC Adress et le nom du PC
Si le PC est neuf, mettre à jour le fichier de configuration DHCP et le fichier host des Yellow Pages:
pour DHCP:
[root@argos1]: vi /etc/dhcp/glsnet.conf
Dans ce fichier il faut placer la nouvelle machine dans le bon groupe, c'est à dire dans le groupe des machines qui s'installent par réseau. Trouver donc le groupe qui contient la ligne filename "pxelinux.0" et respecter la syntaxe pour l'ajout. Puis:
[root@argos1] /etc/init.d/dhcpd stop /etc/init.d/dhcpd start scp /etc/dhcp/glsnet.conf argos2:/etc/dhcp/glsnet.conf ssh argos2 [root@argos2] /etc/init.d/dhcpd stop /etc/init.d/dhcpd start
pour les Yellow Pages:
[root@argos1] vi /etc/yp/hosts cd /var/yp make scp /etc/yp/hosts argos2:/etc/yp/hosts ssh argos2 [root@argos2] cd /var/yp make
Une fois le PC connu du système il faut configurer l'installation par réseau:
[root@argos1] cd /var/lib/tftpboot/pxelinux.cfg/ cp glspcinstruments.SL67.i386.tmpl <lcu_name>.SL67.i386 vi <lcu_name>.SL67.i386 ->> mettre la MAC Adress pour ksdevice
Il faut créer un lien symbolique qui doit respecter une syntaxe strict: le nom du lien est la mac adress en minuscule, les groupes sont séparé par des tirets "-" au lieu des deux-points ":", le tout préfixé de "01-".
Exemple pour glsserv: [root@argos1] ln -s glsserv.SL67.i386 01-00-01-05-10-8c-ee
Réinstallation d'un LCU instrument sous SL67
Ce cas se présente si le PC a déjà été installé sous SL67, par exemple changement de disque ou test d'installation. Dans ce cas le système connait le LCU (DHCP et Yellow Pages) (voir paragraphe précédent).
Attention, l'installation prend entre une et deux heures.
Marche à suivre. Attention, selon le fait que le disque est neuf ou non le déroulement est différent. Ainsi avec un disque neuf, l'installation démarre seule car le LCU n'a pas d'autre choix pour démarrer. Ainsi:
- Faire un boot (ou reboot) du LCU
- Entrer dans le boot menu (normalement taper la touche Escape)
- Choisir le device réseau (exemple: IBA GE Slot 00C8). Ce n'est donc ni Hard Disk, ni CDROM ni USB Device.
- Le système fabrique les files-systems, ainsi il faut accepter le reformattage de tout les disques.
- L'installation démarre, c'est à dire le transfert des paquets depuis notre serveur d'application argos1
- Terminer l'installation par quelques opérations manuelles (voir ici)
- Une fois terminée il faut procéder à l'installation manuelle des drivers. Voir paragraphes suivants
Installation des drivers
L'installation est manuelle, elle est suivit chaque fois d'un court test qui valide l'installation.
Tout les drivers ne sont pas nécessaires sur toutes les machines, mais il est intéressant de les installer tous pour permettre un remplacement de machine en cas de problèmes. Ainsi on installe tout sur toutes les machines.
Veuillez suivre scrupuleusement les indication qui suivent, driver par driver.
En cas de réinstallation du LCU des services (glsserv) il faut effectuer une série de commandes supplémentaires afin de récupérer les bases de données RDB qui existent en backup sur argos1.
Pour les drivers, suivre:
- Installation du driver MOXA pour les interfaces series
- Installation du driver Vimba pour la camera de guidage Bigeye
- Installation Driver National Instrument pour le Comptage PM
- Installation Driver USB pour Lakeshore 335
- Installation librarie modbus
- Installation spécifique à glsserv (LCU Services)
Installation du driver MOXA pour les interfaces series
Actuellement plusieurs MOXA sont en service, le premier: 4 lignes série dans la structure ECAM embarquée. Un même modèle est accolé au premier et est oublié dans cette description, c'est normalement un spare. Le deuxième Moxa est dans l'armoire LCU et possède 16 lignes série. Il possède également un spare qui doit être impérativement éteint.
Attention, l'installation selon la doc perturbe le system car elle modifie le mode d'accès de /tmp. Ainsi il faut absolument aller dans /tmp puis lancer /tmp/tmp/mxinst. De plus, une fois logué sous root il est impératif de rester sous bash (ne pas changer de shell avec tcsh).
Installation:
[root@gls-lcu] cd /tmp tar xvf /opt/t4/beta/driver/MOXA_5650/npreal2_1.18_Build_12020919.tar /tmp/tmp/moxa/mxinst ( répondre "N" à la question "Enable Secure Functions" ) cd /usr/lib/npreal2/driver ./mxaddsvr 10.10.132.16 4 ./mxaddsvr 10.10.132.18 16 (la configuration est réalisée pour les 2 moxa. Vérification avec:) cat npreal2d.cf
Test de l'installation
Avec le soft qui accède la sonde de pression (rem: la valeur 1.00 peut etre différente)
[root@gls-lcu]# /opt/t4/beta/src/maire/FP_dpg109/dpg109_Linux_2.6_i686 -U -V
1460657332 1.00 Apr 14 15:08:52
Fin de l'installation
Installation du driver Vimba pour la camera de guidage Bigeye
Installation:
[root@gls-lcu] cd /usr/local tar xvf /opt/t4/beta/driver/VIMBA/Vimba_v1.4_Linux.tar cd Vimba_1_4/VimbaGigETL ./Install.sh Registering GENICAM_GENTL32_PATH Done Please log off once before using the GigE transport layer exit [root@argos1] ssh root@<gls-lcu>
Test:
Attention: l'armoire TEUPS doit etre allumée.
[root@gls-lcu] cd /usr/local/Vimba_1_4/VimbaC/Examples/SynchronousGrab/Build/Make make binary/x86_32bit/SynchronousGrab ////////////////////////////////////////// /// Vimba API Synchronous Grab Example /// ////////////////////////////////////////// Vimba Version Major: 1 Minor: 4 Patch: 1 Camera ID: DEV_000F31F42476 Bitmap successfully written to file "SynchronousGrab.bmp"
Test du viewer
[root@gls-lcu] /usr/local/Vimba_1_4/Tools/Viewer/Bin/x86_32bit/VimbaViewer
Attention le fonctionnement de la camera ne fonctionne que sur le télescope (pour l'instant je ne sais pas pourquoi) sur le réseau instrument de la salle de contrôle, la camera est vue mais l'image ne passe pas (erreur avec le test et rien sur le viewer)
remarque: le path VIMBA ($GENICAM_GENTL32_PATH) est défini dans $THOME/script/t4_beta.csh, c'st actuellement la version 1.4
Fin de l'installation
Installation Driver National Instrument pour le Comptage PM
- Il faut vérifier/éditer: /boot/grub/grub.conf et rajouter "mem=4096M" en fin de chaque ligne commençant par "kernel". Attention de pas oublier le "M" dans "4096M" pour éviter une situation dramatique.
- En cas de modification de grub.conf, il faut impérativement rebooter le LCU avant de continuer
Puis:
[root@gls-lcu] cd /opt/t4/beta/driver/NI-PCI-6221/ ./INSTALL repondre "Y" to continue, more de la license, "y" to accept, "N" to ALL manually specify the LabVIEW location, "Y" to continue
Test de l'installation
Il subsiste un doute que le mode d'emploi soit correct si on installe le driver sans la carte NI présente...
Dans les dernières lignes données par la commande dmesg on trouve:
[root@gls-lcu]# dmesg | tail ... nikal: module license 'Copyright (c) 2002-2011 National Instruments Corporation. All Rights Reserved. Any and all use of the copyrighted materials is subject to the then current terms and conditions of the applicable license agreement, which can be found at .' taints kernel. Disabling lock debugging due to kernel taint nidaqmx_NIXS9x 0000:04:04.0: PCI INT A -> GSI 18 (level, low) -> IRQ 18
puis les commandes suivantes retournent (si la carte est présente, j'imagine):
[root@gls-lcu] nilsdev NI PCI-6221 (37-pin): "Dev1"
[root@gls-lcu] lspci -vv | grep -A 20 -i National 04:04.0 Unassigned class [ff00]: National Instruments PCI-6221 (37-pin) Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- SERR-
Test
Rem: Le test ne peut se faire qu'avec la carte NI dans le PC. De plus le comptage nefonctionne qu'avec la carte interface et un signal.
Il faut compiler et exécuter le programme de test, le test sera vraiment concluant si on peut injecter le signal PM (ou en fabriquer un avec un générateur de signal), dans ce cas chiffres défilent, sans signal la valeur 0 reste, ce qui est malgré tout un test car la carte est lue sans problème.
rem: pour injecter le signal du PM, il faut connecter le cable coaxial sur l'entrée de la carte interface (made in ObsGE) et relier la sortie de cette carte avec le connecteur de l'entrée de la carte NI avec le connecteur spécial.
donc:
[root@gls-lcu] cd /usr/local/natinst/nidaqmx/examples/ansi_c/Counter/CountDigitalEvents/CntDigEvents make ./CntDigEv <ctrl>-C
Fin de l'installation
Installation Driver USB pour Lakeshore 335
- Dans /opt/t4/beta/driver/LAKESHORE_USB/Linux_2.6.x_VCP_Driver_Source/, il faut éditer/vérifier que les ligne suivantes existent dans cp210x.c
[root@gls-lcu ] cd /opt/t4/beta/driver/LAKESHORE_USB/Linux_2.6.x_VCP_Driver_Source/ vi cp210x.c { USB_DEVICE(0x1FB9, 0x0100) }, /* Lake Shore Model 121 Current Source */ { USB_DEVICE(0x1FB9, 0x0200) }, /* Lake Shore Model 218A Temperature Monitor */ { USB_DEVICE(0x1FB9, 0x0201) }, /* Lake Shore Model 219 Temperature Monitor */ { USB_DEVICE(0x1FB9, 0x0202) }, /* Lake Shore Model 233 Temperature Transmitter */ { USB_DEVICE(0x1FB9, 0x0203) }, /* Lake Shore Model 235 Temperature Transmitter */ { USB_DEVICE(0x1FB9, 0x0300) }, /* Lake Shore Model 335 Temperature Controller */ { USB_DEVICE(0x1FB9, 0x0301) }, /* Lake Shore Model 336 Temperature Controller */ { USB_DEVICE(0x1FB9, 0x0302) }, /* Lake Shore Model 350 Temperature Controller */ { USB_DEVICE(0x1FB9, 0x0303) }, /* Lake Shore Model 371 AC Bridge */ { USB_DEVICE(0x1FB9, 0x0400) }, /* Lake Shore Model 411 Handheld Gaussmeter */ { USB_DEVICE(0x1FB9, 0x0401) }, /* Lake Shore Model 425 Gaussmeter */ { USB_DEVICE(0x1FB9, 0x0402) }, /* Lake Shore Model 455A Gaussmeter */ { USB_DEVICE(0x1FB9, 0x0403) }, /* Lake Shore Model 475A Gaussmeter */ { USB_DEVICE(0x1FB9, 0x0404) }, /* Lake Shore Model 465 Three Axis Gaussmeter */ { USB_DEVICE(0x1FB9, 0x0600) }, /* Lake Shore Model 625A Superconducting MPS */ { USB_DEVICE(0x1FB9, 0x0601) }, /* Lake Shore Model 642A Magnet Power Supply */ { USB_DEVICE(0x1FB9, 0x0602) }, /* Lake Shore Model 648 Magnet Power Supply */ { USB_DEVICE(0x1FB9, 0x0700) }, /* Lake Shore Model 737 VSM Controller */ { USB_DEVICE(0x1FB9, 0x0701) }, /* Lake Shore Model 776 Hall Matrix */
puis:
ATTENTION: Le device USB doit être en place avant d'effectuer les opérations suivantes:
[root@gls-lcu ]# cd /opt/t4/beta/driver/LAKESHORE_USB/Linux_2.6.x_VCP_Driver_Source make cp cp210x.ko /lib/modules/`uname -r`/kernel/drivers/usb/serial (accepter l'overwrite) insmod /lib/modules/`uname -r`/kernel/drivers/usb/serial/usbserial.ko insmod /lib/modules/`uname -r`/kernel/drivers/usb/serial/cp210x.ko
Test:
[weber@gls-lcu ] /opt/t4/beta/src/maire/FP_lakeshore/FP_lakeshore_Linux_2.6_i686 -U -V
1457806697 24.97 25.00 25.00 3 13 Mar 12 15:18:17
Fin de l'installation
Installation librarie modbus
Installation
[root@gls-lcu] cd /tmp tar xvf /opt/t4/beta/driver/MODBUS/libmodbus-3.1.2.tar cd libmodbus-3.1.2 ./configure make install
Rem: tout va /usr/local/lib et /usr/local/include/modbus/
Test:
lancer par exemple l'ouverture puis la fermeture des flaps coupole. Ce sont des commandes qui communiquent avec un module Beckhoff sous modus (sous un utilisateur, ne fonctionne pas sous root)
[utilisateur@gls-lcu] /opt/t4/beta/bin/Linux_2.6_i686/T_open_flap /opt/t4/beta/bin/Linux_2.6_i686/T_close_flap
Fin de l'installation
Installation spécifique à glsserv (LCU Services)
Une fois réinstallé il faut restaurer les services dont la sauvegarde est sur argos1 puis démarrer ls services (crontab).
Remarque: Les services gérés par glsserv sont locaux sur cette machine sous glsserv:/export/diskA/services/. Ils sont sauvegardés sur argos1:/gls/data/backup_services/.
Récuperation des services:
[root@glsserv] cd /export/diskA mkdir services tcsh foreach i (accelerometre c2_jumo c2_lakeshore c2_temp climatisation coralie cryostat externe fp_pression fp_temp jumo groupefroid lakeshore meteo pression tele tfibre ups_l1 ups_l2 ups_l3 ups_srv) rsync -avHl argos1:/gls/data/backup_services/$i/ /export/diskA/services/$i/ end
Demarrage des services:
Avant toutes choses: il faut absolument vérifier que /net/glsserv/export/diskA/services/ soit accessible depuis glsserv et contiennent le services. Exemple:
[root@glsserv ~] ls /net/glsserv/export/diskA/services/ accelerometre/ c2_temp/ cryostat/ fp_temp/ lakeshore/ tele/ ups_l2/ c2_jumo/ climatisation/ externe/ groupefroid/ meteo/ tfibre/ ups_l3/ c2_lakeshore/ coralie/ fp_pression/ jumo/ pression/ ups_l1/ ups_srv/
Les services redémarrent chaque jour à midi. La crontab de root doit contenir:
[root@glsserv] crontab -l 0 12 * * * /opt/t4/beta/scripts/services * * * * * /home/weber/src/perl/control_temp_azote.pl > /dev/console (pour éditer:) [root@glsserv] crontab -e
Le lancement des services peut se faire à la main en lançant (modif temporaire qui dure) /opt/t4/beta/scripts/services_tempo_luc.
Installation des clés ssh pour l'envoi des mails
Pour mettre l'envoi des mails par root sur depuis glsserv sur argos1 il faut (modif temporaire) que root ait les clés de weber sur argos1. Ce peut etre un autre utilisateur mais il faut modifier aussi dans ce cas $THOME/src/weber/t_remote/sendMailShutdown.pl et changer weber par l'autre nom.
(s'il n'y a pas de clés ras) [root@glsserv] ssh-keygen -t rsa -b 2048 (accepter les defaults) (puis dans tout les cas:) ssh-copy-id weber@argos1 (weber doit etre là!!!)
Ceci car root n'a pas le privilège d'utiliser sendmail par ssh!
Opérations manuelles
Rem: tout changement nécessite un reboot.
Le chargement des driver (Moxa et USB) ainsi que l'accès rw à tous de la console est défini dans /etc/rc.local qui doit contenir ces lignes (ajouter les lignes manquantes via un éditeur):
[root@gls-lcu] modprobe npreal2 ttymajor=33 calloutmajor=38 verbose=0 touch /var/lock/subsys/local /usr/lib/npreal2/driver/mxloadsvr chmod a+rw /dev/console modprobe cp210x
Verifier: grub.conf pour le boot (save screen, taille de l'ecran) exemple:
[root@glscspa ~] cd /boot/grub/ cat grub.conf # grub.conf generated by anaconda # # Note that you do not have to rerun grub after making changes to this file # NOTICE: You have a /boot partition. This means that # all kernel and initrd paths are relative to /boot/, eg. # root (hd0,0) # kernel /vmlinuz-version ro root=/dev/mapper/vgroot00-lvroot00 # initrd /initrd-[generic-]version.img #boot=/dev/sda default=0 timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu title Scientific Linux 6 (2.6.32-573.12.1.el6.i686) root (hd0,0) kernel /vmlinuz-2.6.32-573.12.1.el6.i686 ro root=/dev/mapper/vgroot00-lvroot00 rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_NO_DM rd_LVM_LV=vgroot00/lvroot00 selinux=0 edd=off rd.driver.blacklist=i915 i915.modeset=-1 video=LVDS-1:d video=VGA-1:640x480 vga=normal rd_LVM_LV=vgroot00/lvswap00 consoleblank=0 mem=4096M memmap=50M$4096M initrd /initramfs-2.6.32-573.12.1.el6.i686.img
Installation du script de boot
le scripts de reference pour nos LCU est sous $THOME/driver/zzzlocal et va sous /etc/init.d/
Un link sur zzzlocal est fait dans les directories /etc/rc2.d à /etc/rc6.d (le chiffre correspond au niveau de boot)
Le lien doit commencer par S99 qui signifie "Start en dernière position" (rem K pour kill, mais pas pour notre usage)
Exemple:
[root@gls-lcu ] cd /etc/init.d cp /opt/t4/beta/driver/zzzlocal . cd /etc/rc.d/rc2.d ln -s ../init.d/zzzlocal S99zzzlocal cd /etc/rc.d/rc3.d ln -s ../init.d/zzzlocal S99zzzlocal cd /etc/rc.d/rc4.d ln -s ../init.d/zzzlocal S99zzzlocal cd /etc/rc.d/rc5.d ln -s ../init.d/zzzlocal S99zzzlocal cd /etc/rc.d/rc6.d ln -s ../init.d/zzzlocal S99zzzlocal
fin