<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://clonwiki0.jlab.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Boiarino</id>
	<title>CLONWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://clonwiki0.jlab.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Boiarino"/>
	<link rel="alternate" type="text/html" href="https://clonwiki0.jlab.org/wiki/index.php?title=Special:Contributions/Boiarino"/>
	<updated>2026-04-09T11:16:01Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://clonwiki0.jlab.org/wiki/index.php?title=Linux_Boot_Server&amp;diff=8729</id>
		<title>Linux Boot Server</title>
		<link rel="alternate" type="text/html" href="https://clonwiki0.jlab.org/wiki/index.php?title=Linux_Boot_Server&amp;diff=8729"/>
		<updated>2026-04-08T20:47:25Z</updated>

		<summary type="html">&lt;p&gt;Boiarino: /* VTP CentOS boot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Main boot server is clon01&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TO DO&#039;&#039;&#039; Check UBOOT commands to erase existing environment variables:&lt;br /&gt;
&lt;br /&gt;
 env default -a -f&lt;br /&gt;
 env erase&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;VTP CentOS boot&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
UBOOT (example for gem0vtp):&lt;br /&gt;
&lt;br /&gt;
 Zynq&amp;gt; printenv&lt;br /&gt;
 autoload=no&lt;br /&gt;
 baudrate=115200&lt;br /&gt;
 bootcmd=run tftpboot&lt;br /&gt;
 bootdelay=3&lt;br /&gt;
 bootro=setenv bootargs ${bootargs} ro&lt;br /&gt;
 bootrw=setenv bootargs ${bootargs} rw&lt;br /&gt;
 devicetree_image=devicetree.dtb&lt;br /&gt;
 devicetree_load_address=0x2000000&lt;br /&gt;
 ethact=ethernet@e000b000&lt;br /&gt;
 ethaddr=ce:ba:f0:03:xx:xx&lt;br /&gt;
 extargs=setenv bootargs ${bootargs} console=ttyPS0,115200 ip=:::::eth0:dhcp uio_pdrv_genirq.of_id=my-uio rootwait cma=384MB&lt;br /&gt;
 fdt_high=0x20000000&lt;br /&gt;
 fdtcontroladdr=3ffa9e30&lt;br /&gt;
 initrd_high=0x20000000&lt;br /&gt;
 kernel_image=uImage-4.4.0-xilinx-00004-g8d932a&lt;br /&gt;
 kernel_load_address=0x2080000&lt;br /&gt;
 load_devicetree=if tftpboot ${devicetree_load_address} ${tftppath}/${devicetree_image}; then echo OK; else echo FAILED; reset; fi;&lt;br /&gt;
 load_dhcp=if dhcp; then echo OK; else echo FAILED; reset; fi;&lt;br /&gt;
 load_kernel=if tftpboot ${kernel_load_address} ${tftppath}/${kernel_image}; then echo OK; else echo FAILED; reset; fi;&lt;br /&gt;
 modeboot=sdboot&lt;br /&gt;
 netmask=255.255.255.0&lt;br /&gt;
 nfsargs=setenv bootargs nfsroot=${rootserverip}:${rootpath},vers=3&lt;br /&gt;
 rootpath=/vol/diskless/CentOS7/armv7/root&lt;br /&gt;
 rootserverip=129.57.167.152&lt;br /&gt;
 serverip=129.57.167.4&lt;br /&gt;
 stderr=serial@e0000000&lt;br /&gt;
 stdin=serial@e0000000&lt;br /&gt;
 stdout=serial@e0000000&lt;br /&gt;
 tftp_boot_string=echo TFTPing Image to RAM&lt;br /&gt;
 tftpboot=run load_dhcp tftp_boot_string nfsargs extargs bootro load_kernel load_devicetree &amp;amp;&amp;amp; bootm ${kernel_load_address} - ${devicetree_load_address}&lt;br /&gt;
 tftpboot_rw=dhcp &amp;amp;&amp;amp; run tftp_boot_string nfsargs extargs bootrw load_kernel load_devicetree &amp;amp;&amp;amp; bootm ${kernel_load_address} - ${devicetree_load_address}&lt;br /&gt;
 tftppath=linux-install/CentOS7-armv7-Diskless&lt;br /&gt;
 &lt;br /&gt;
 Environment size: 1603/131068 bytes&lt;br /&gt;
 Zynq&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy-Paste following on uboot prompt to program above settings (do it by groups as shown, otherwise it may place some bull...):&lt;br /&gt;
&lt;br /&gt;
 setenv bootargs&lt;br /&gt;
 setenv gatewayip&lt;br /&gt;
 setenv ipaddr&lt;br /&gt;
 setenv kernel_path&lt;br /&gt;
 setenv nfsip&lt;br /&gt;
 setenv nfsroot&lt;br /&gt;
 setenv sdboot&lt;br /&gt;
 setenv sdboot_no&lt;br /&gt;
 setenv setboot&lt;br /&gt;
 setenv tftpboot_no&lt;br /&gt;
 setenv tt_string&lt;br /&gt;
&lt;br /&gt;
 setenv autoload &#039;no&#039;&lt;br /&gt;
 setenv baudrate &#039;115200&#039;&lt;br /&gt;
 setenv bootcmd &#039;run tftpboot&#039;&lt;br /&gt;
 setenv bootdelay &#039;3&#039;&lt;br /&gt;
 setenv bootro &#039;setenv bootargs ${bootargs} ro&#039;&lt;br /&gt;
 setenv bootrw &#039;setenv bootargs ${bootargs} rw&#039;&lt;br /&gt;
 setenv devicetree_image &#039;devicetree.dtb&#039;&lt;br /&gt;
 setenv devicetree_load_address &#039;0x2000000&#039;&lt;br /&gt;
 setenv ethact &#039;ethernet@e000b000&#039;&lt;br /&gt;
 setenv ethaddr &#039;ce:ba:f0:03:00:d1&#039;&lt;br /&gt;
 setenv extargs &#039;setenv bootargs ${bootargs} console=ttyPS0,115200 ip=:::::eth0:dhcp uio_pdrv_genirq.of_id=my-uio rootwait cma=384MB&#039;&lt;br /&gt;
 setenv fdt_high &#039;0x20000000&#039;&lt;br /&gt;
 setenv fdtcontroladdr &#039;3ffa9e30&#039;&lt;br /&gt;
 setenv initrd_high &#039;0x20000000&#039;&lt;br /&gt;
 setenv kernel_image &#039;uImage-4.4.0-xilinx-00004-g8d932a&#039;&lt;br /&gt;
 setenv kernel_load_address &#039;0x2080000&#039;&lt;br /&gt;
 &lt;br /&gt;
 setenv load_devicetree &#039;if tftpboot ${devicetree_load_address} ${tftppath}/${devicetree_image}; then echo OK; else echo FAILED; reset; fi;&#039;&lt;br /&gt;
 setenv load_dhcp &#039;if dhcp; then echo OK; else echo FAILED; reset; fi;&#039;&lt;br /&gt;
 setenv load_kernel &#039;if tftpboot ${kernel_load_address} ${tftppath}/${kernel_image}; then echo OK; else echo FAILED; reset; fi;&#039;&lt;br /&gt;
 setenv modeboot &#039;sdboot&#039;&lt;br /&gt;
 setenv netmask &#039;255.255.255.0&#039;&lt;br /&gt;
 setenv nfsargs &#039;setenv bootargs nfsroot=${rootserverip}:${rootpath},vers=3&#039;&lt;br /&gt;
 setenv rootpath &#039;/vol/diskless/CentOS7/armv7/root&#039;&lt;br /&gt;
 setenv rootserverip &#039;129.57.167.152&#039;&lt;br /&gt;
 setenv serverip &#039;129.57.167.4&#039;&lt;br /&gt;
 setenv stderr &#039;serial@e0000000&#039;&lt;br /&gt;
 setenv stdin &#039;serial@e0000000&#039;&lt;br /&gt;
 setenv stdout &#039;serial@e0000000&#039;&lt;br /&gt;
 setenv tftp_boot_string &#039;echo TFTPing Image to RAM&#039;&lt;br /&gt;
 &lt;br /&gt;
 setenv tftpboot &#039;run load_dhcp tftp_boot_string nfsargs extargs bootro load_kernel load_devicetree &amp;amp;&amp;amp; bootm ${kernel_load_address} - ${devicetree_load_address}&#039;&lt;br /&gt;
 setenv tftpboot_rw &#039;dhcp &amp;amp;&amp;amp; run tftp_boot_string nfsargs extargs bootrw load_kernel load_devicetree &amp;amp;&amp;amp; bootm ${kernel_load_address} - ${devicetree_load_address}&#039;&lt;br /&gt;
 setenv tftppath &#039;linux-install/CentOS7-armv7-Diskless&#039;&lt;br /&gt;
 &lt;br /&gt;
After that, customize following:&lt;br /&gt;
&lt;br /&gt;
 ethaddr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;tftpboot server settings&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 /tftpboot/linux-install/CentOS7-armv7-Diskless/uImage-4.4.0-xilinx-00004-g8d932a&lt;br /&gt;
                                                uImage-4.4.0-xilinx-00003-gdf4da5&lt;br /&gt;
                                                zynq-jlab-vtp.dtb_fixed_uio&lt;br /&gt;
                                                devicetree.dtb -&amp;gt; zynq-jlab-vtp.dtb_fixed_uio&lt;br /&gt;
&lt;br /&gt;
By default, root filesystem will be read-only. To make it &#039;rw&#039;, stop booting process on serial connection, type &#039;&#039;run tftpboot_rw&#039;&#039; and push &amp;lt;enter&amp;gt;. After that you can ssh as root and run &#039;&#039;yum&#039;&#039; etc.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;VTP Archlinux boot&#039;&#039;&#039; ==&lt;br /&gt;
 &lt;br /&gt;
 Zynq&amp;gt; printenv&lt;br /&gt;
 autoload=no&lt;br /&gt;
 baudrate=115200&lt;br /&gt;
 bootargs=console=ttyPS0,115200 ip=:::::eth0:dhcp nfsroot=${nfsip}:${nfsroot},${nfsargs} uio_pdrv_genirq.of_id=my-uio ro rootwait&lt;br /&gt;
 bootcmd=run $modeboot&lt;br /&gt;
 bootdelay=3&lt;br /&gt;
 devicetree_image=zynq-jlab-vtp.dtb&lt;br /&gt;
 devicetree_load_address=0x2000000&lt;br /&gt;
 ethact=ethernet@e000b000&lt;br /&gt;
 ethaddr=CE:BA:F0:03:00:02&lt;br /&gt;
 fdt_high=0x20000000&lt;br /&gt;
 fdtcontroladdr=3ffa9e30&lt;br /&gt;
 gatewayip=129.57.68.100&lt;br /&gt;
 initrd_high=0x20000000&lt;br /&gt;
 ipaddr=129.57.68.38&lt;br /&gt;
 kernel_image=uImage&lt;br /&gt;
 kernel_load_address=0x2080000&lt;br /&gt;
 kernel_path=linux-install/ArchLinux-armv71&lt;br /&gt;
 modeboot=sdboot&lt;br /&gt;
 netmask=255.255.255.0&lt;br /&gt;
 nfsargs=vers=3,tcp,timeo=600,retrans=10&lt;br /&gt;
 nfsip=129.57.167.152&lt;br /&gt;
 nfsroot=/vol/diskless/ArchLinux/armv7-devel/root&lt;br /&gt;
 sdboot=run setboot; echo Copying Linux from TFTP server to RAM...; echo Download Kernel; if tftpboot 0x2080000 linux-install/ArchLinux-armv71/uImage; then echo OK; else echo FAILED; reset; fi; echo Download DeviceTree; if tftpboot 0x2000000 linux-install/ArchLinux-armv71/zynq-jlab-vtp.dtb; then echo OK; else echo FAILED; reset; fi; echo Boot system; bootm 0x2080000 - 0x2000000&lt;br /&gt;
 sdboot_no=if mmcinfo; then echo Copying Linux from SD to RAM... &amp;amp;&amp;amp; load mmc 0 ${kernel_load_address} ${kernel_image} &amp;amp;&amp;amp; load mmc 0 ${devicetree_load_address} ${devicetree_image} &amp;amp;&amp;amp; bootm ${kernel_load_address} - ${devicetree_load_address}; fi&lt;br /&gt;
 serverip=129.57.167.4&lt;br /&gt;
 setboot=setenv bootargs console=ttyPS0,115200 ip=:::::eth0:dhcp nfsroot=${nfsip}:${nfsroot},${nfsargs} uio_pdrv_genirq.of_id=my-uio ro rootwait&lt;br /&gt;
 stderr=serial@e0000000&lt;br /&gt;
 stdin=serial@e0000000&lt;br /&gt;
 stdout=serial@e0000000&lt;br /&gt;
 tftpboot_no=echo Copying Linux from tftp server to RAM... &amp;amp;&amp;amp;tftpboot ${kernel_load_address} linux_vtp/${kernel_image} &amp;amp;&amp;amp;tftpboot ${devicetree_load_address} linux_vtp/${devicetree_image} &amp;amp;&amp;amp;bootm ${kernel_load_address} - ${devicetree_load_address};&lt;br /&gt;
 &lt;br /&gt;
 Environment size: 1828/131068 bytes&lt;br /&gt;
 Zynq&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy-Paste following on uboot prompt to program above settings (do it line-by-line, otherwise it may place some bull...):&lt;br /&gt;
&lt;br /&gt;
 setenv autoload &#039;no&#039;&lt;br /&gt;
 setenv baudrate &#039;115200&#039;&lt;br /&gt;
 setenv bootargs &#039;console=ttyPS0,115200 ip=:::::eth0:dhcp nfsroot=${nfsip}:${nfsroot},${nfsargs} uio_pdrv_genirq.of_id=my-uio ro rootwait&#039;&lt;br /&gt;
 setenv bootcmd &#039;run $modeboot&#039;&lt;br /&gt;
 setenv bootdelay &#039;3&#039;&lt;br /&gt;
 setenv devicetree_image &#039;zynq-jlab-vtp.dtb&#039;&lt;br /&gt;
 setenv devicetree_load_address &#039;0x2000000&#039;&lt;br /&gt;
 setenv ethact &#039;ethernet@e000b000&#039;&lt;br /&gt;
 setenv ethaddr &#039;CE:BA:F0:03:00:02&#039;&lt;br /&gt;
 setenv fdt_high &#039;0x20000000&#039;&lt;br /&gt;
 setenv fdtcontroladdr &#039;3ffa9e30&#039;&lt;br /&gt;
 setenv gatewayip &#039;129.57.68.100&#039;&lt;br /&gt;
 setenv initrd_high &#039;0x20000000&#039;&lt;br /&gt;
 setenv ipaddr &#039;129.57.68.38&#039;&lt;br /&gt;
 setenv kernel_image &#039;uImage&#039;&lt;br /&gt;
 setenv kernel_load_address &#039;0x2080000&#039;&lt;br /&gt;
 setenv kernel_path &#039;linux-install/ArchLinux-armv71&#039;&lt;br /&gt;
 setenv modeboot &#039;sdboot&#039;&lt;br /&gt;
 setenv netmask &#039;255.255.255.0&#039;&lt;br /&gt;
 setenv nfsargs &#039;vers=3,tcp,timeo=600,retrans=10&#039;&lt;br /&gt;
 setenv nfsip &#039;129.57.167.152&#039;&lt;br /&gt;
 setenv nfsroot &#039;/vol/diskless/ArchLinux/armv7-devel/root&#039;&lt;br /&gt;
 setenv sdboot &#039;run setboot; echo Copying Linux from TFTP server to RAM...; echo Download Kernel; if tftpboot 0x2080000 linux-install/ArchLinux-armv71/uImage; then echo OK; else echo FAILED; reset; fi; echo Download DeviceTree; if tftpboot 0x2000000 linux-install/ArchLinux-armv71/zynq-jlab-vtp.dtb; then echo OK; else echo FAILED; reset; fi; echo Boot system; bootm 0x2080000 - 0x2000000&#039;&lt;br /&gt;
 setenv sdboot_no &#039;if mmcinfo; then echo Copying Linux from SD to RAM... &amp;amp;&amp;amp; load mmc 0 ${kernel_load_address} ${kernel_image} &amp;amp;&amp;amp; load mmc 0 ${devicetree_load_address} ${devicetree_image} &amp;amp;&amp;amp; bootm ${kernel_load_address} - ${devicetree_load_address}; fi&#039;&lt;br /&gt;
 setenv serverip &#039;129.57.167.4&#039;&lt;br /&gt;
 setenv setboot &#039;setenv bootargs console=ttyPS0,115200 ip=:::::eth0:dhcp nfsroot=${nfsip}:${nfsroot},${nfsargs} uio_pdrv_genirq.of_id=my-uio ro rootwait&#039;&lt;br /&gt;
 setenv stderr &#039;serial@e0000000&#039;&lt;br /&gt;
 setenv stdin &#039;serial@e0000000&#039;&lt;br /&gt;
 setenv stdout &#039;serial@e0000000&#039;&lt;br /&gt;
 setenv tftpboot_no &#039;echo Copying Linux from tftp server to RAM... &amp;amp;&amp;amp;tftpboot ${kernel_load_address} linux_vtp/${kernel_image} &amp;amp;&amp;amp;tftpboot ${devicetree_load_address} linux_vtp/${devicetree_image} &amp;amp;&amp;amp;bootm ${kernel_load_address} - ${devicetree_load_address};&#039;&lt;br /&gt;
&lt;br /&gt;
After that, customize following:&lt;br /&gt;
 ethaddr&lt;br /&gt;
 gatewayip&lt;br /&gt;
 ipaddr&lt;br /&gt;
 netmask&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Setting of the Linux server to be used for PXE and EFI boot of the VME controllers&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Login to the server as root. Copy two files to the root directory and untar them:&lt;br /&gt;
 cd /&lt;br /&gt;
 cp /usr/downloads/tftpboot.tar.gz_clondaq15 tftpboot.tar.gz&lt;br /&gt;
 cp /usr/downloads/diskless.tar.gz_clondaq15 diskless.tar.gz&lt;br /&gt;
 gunzip tftpboot.tar.gz&lt;br /&gt;
 gunzip diskless.tar.gz&lt;br /&gt;
 tar xvf tftpboot.tar&lt;br /&gt;
 tar xvf diskless.tar&lt;br /&gt;
 rm tftpboot.tar diskless.tar&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Make sure correct snapshot location in root area &#039;&#039;/diskless/CentOS7/x86_64/root/etc/sysconfig/readonly-root&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 CLIENTSTATE=192.168.10.1:/diskless/CentOS7/x86_64/snapshot&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;/diskless/CentOS7/x86_64/root&#039;&#039; area, &#039;&#039;/etc/ssh/sshd_config&#039;&#039; must have following setting (to allow remote ssh):&lt;br /&gt;
&lt;br /&gt;
 #UsePAM yes&lt;br /&gt;
&lt;br /&gt;
it will be propagated to the controller&#039;s snapshot area on the first boot when corresponding &#039;&#039;snapshot/&amp;lt;vme_controller_name&amp;gt;&#039;&#039; directory will be created. Not sure about other settings:&lt;br /&gt;
&lt;br /&gt;
 HostbasedAuthentication yes&lt;br /&gt;
 #HostbasedAuthentication no&lt;br /&gt;
&lt;br /&gt;
 IgnoreRhosts no&lt;br /&gt;
 #IgnoreRhosts yes&lt;br /&gt;
&lt;br /&gt;
 PasswordAuthentication yes&lt;br /&gt;
 #PasswordAuthentication yes&lt;br /&gt;
 PasswordAuthentication yes&lt;br /&gt;
&lt;br /&gt;
 #UsePrivilegeSeparation sandbox		# Default for new installations.&lt;br /&gt;
 UsePrivilegeSeparation sandbox		# Default for new installations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To add or remove VME controllers, modify following files:&lt;br /&gt;
 /var/named/10.168.192.in-addr.arpa.db&lt;br /&gt;
 /var/named/clontest.com&lt;br /&gt;
 /etc/dhcp/dhcpd.conf&lt;br /&gt;
&lt;br /&gt;
restart corresponding services:&lt;br /&gt;
 systemctl restart dhcpd&lt;br /&gt;
 systemctl restart named&lt;br /&gt;
&lt;br /&gt;
and check services status:&lt;br /&gt;
 systemctl status dhcpd&lt;br /&gt;
 systemctl status named&lt;br /&gt;
&lt;br /&gt;
To set gateway, add&lt;br /&gt;
 net.ipv4.ip_forward=1&lt;br /&gt;
to &#039;&#039;/etc/sysctl.conf&#039;&#039; and execute&lt;br /&gt;
 sysctl -p&lt;br /&gt;
&lt;br /&gt;
Configure [[NFS]]&lt;br /&gt;
&lt;br /&gt;
Configure [[DHCP server]]&lt;br /&gt;
&lt;br /&gt;
Configure [[DNS server]] (&#039;&#039;&#039;NOTE:&#039;&#039;&#039; resolv.conf is different for local server !)&lt;br /&gt;
&lt;br /&gt;
Configure [[Tftp]] and [[Tftpboot]]&lt;br /&gt;
&lt;br /&gt;
Configure [[Iptables]]&lt;br /&gt;
&lt;br /&gt;
Do not forget (is it for controllers ?):&lt;br /&gt;
 chattr +i /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 yum install ypbind (????)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Configuring snapshot area&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The list of files and directories which suppose to be in snapshot area (which has RW permissions) should be set in config file &#039;&#039;/diskless/.../snapshot/files&#039;&#039; for CentOS5, or in config file &#039;&#039;/diskless/../root/etc/statetab&#039;&#039; for CentOS7. In particular, &#039;&#039;/et&#039;&#039; has to be added there, and also directory &#039;&#039;/diskless/.../root/et&#039;&#039; should be created.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Reboot server, make sure everything is running as expected.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Configuring in chroot&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: using &#039;&#039;chroot&#039;&#039; method will allow to run &#039;&#039;yum&#039;&#039;, but &#039;&#039;systemctl&#039;&#039; commands will not work. Instead of using &#039;&#039;chroot&#039;&#039;, you may boot coontroller with &#039;&#039;rw&#039;&#039; option instead of &#039;&#039;ro&#039;&#039;. For VME boot, it can be done by changing &#039;&#039;grub.cnf&#039;&#039;, while for VTP boot you have to stop boot proocess using serial connection, and then type &#039;&#039;run tftpboot_rw&#039;&#039;.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Since root area in VME controllers will be read-only, you cannot ssh to controllers as root and change anything there, only snapshot area can be modified. To make changes in root area, in particular to configure and run &#039;&#039;yum&#039;&#039;, &#039;&#039;chroot&#039; command should be used. Login to the boot server as root and do following:&lt;br /&gt;
&lt;br /&gt;
 mount -o bind /home /diskless/CentOS7/x86_64/root/home&lt;br /&gt;
 mount -o bind /usr/local /diskless/CentOS7/x86_64/root/usr/local&lt;br /&gt;
 mount -o bind /usr/clas12 /diskless/CentOS7/x86_64/root/usr/clas12&lt;br /&gt;
 chroot /diskless/CentOS7/x86_64/root&lt;br /&gt;
&lt;br /&gt;
After that you will see all root directories as if you login to VME controller, and modifications can be made.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Configure yum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Add &#039;&#039;multilib_policy=all&#039;&#039; to &#039;&#039;/etc/yum.conf&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Add (and remove the rest ?) following to &#039;&#039;/etc/yum.repos.d/CentOS-Base.repo&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 [base]&lt;br /&gt;
 name=CentOS-$releasever - Base&lt;br /&gt;
 baseurl=http://archive.kernel.org/centos-vault/centos/$releasever/os/$basearch/&lt;br /&gt;
&lt;br /&gt;
Clean yum database:&lt;br /&gt;
&lt;br /&gt;
 rm /var/lib/rpm/__db.*&lt;br /&gt;
&lt;br /&gt;
Install following using yum:&lt;br /&gt;
&lt;br /&gt;
 yum install motif-devel tcl-devel tk-devel libXpm-devel apr-devel libXaw-devel ncurses-devel libconfig-devel&lt;br /&gt;
&lt;br /&gt;
Install following for &#039;&#039;dbedit&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 yum install tix itcl itk&lt;br /&gt;
&lt;br /&gt;
Install remaining tcl stuff from &#039;&#039;/usr/local/src&#039;&#039;, mounted as &#039;&#039;/zzz&#039;&#039; above:&lt;br /&gt;
 &lt;br /&gt;
 cd /zzz/mysqltcl-3.052&lt;br /&gt;
 make install&lt;br /&gt;
 ln -s /usr/lib/mysqltcl-3.052 /usr/lib64/tcl8.5/mysqltcl-3.052&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: Login from console may not work because of file &#039;&#039;/etc/securetty&#039;&#039; permissions, it must be 644.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: THere is a service PAM, it may prevent login from console if some required services did not start. To work around, comment out some lines in &#039;&#039;/etc/pam.d/system-auth-ac&#039;&#039; file:&lt;br /&gt;
&lt;br /&gt;
 #%PAM-1.0&lt;br /&gt;
 # This file is auto-generated.&lt;br /&gt;
 # User changes will be destroyed the next time authconfig is run.&lt;br /&gt;
 #auth        required      pam_env.so&lt;br /&gt;
 auth        sufficient    pam_unix.so nullok try_first_pass&lt;br /&gt;
 #auth        requisite     pam_succeed_if.so uid &amp;gt;= 1000 quiet_success&lt;br /&gt;
 #auth        required      pam_deny.so&lt;br /&gt;
 &lt;br /&gt;
 #account     required      pam_unix.so&lt;br /&gt;
 account     sufficient    pam_localuser.so&lt;br /&gt;
 account     sufficient    pam_succeed_if.so uid &amp;lt; 1000 quiet&lt;br /&gt;
 #account     required      pam_permit.so&lt;br /&gt;
 &lt;br /&gt;
 password    requisite     pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=&lt;br /&gt;
 password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok&lt;br /&gt;
 #password    required      pam_deny.so&lt;br /&gt;
 &lt;br /&gt;
 session     optional      pam_keyinit.so revoke&lt;br /&gt;
 #session     required      pam_limits.so&lt;br /&gt;
 -session     optional      pam_systemd.so&lt;br /&gt;
 session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid&lt;br /&gt;
 #session     required      pam_unix.so&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;After Linux boot server is ready and operational, VME controllers can be booted. On the first boot, individual &#039;&#039;/diskless/.../snapshot/&amp;lt;controller name&amp;gt;&#039;&#039; directory will be created for each controller. For VME controller specific information see [[VME]]&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Boiarino</name></author>
	</entry>
	<entry>
		<id>https://clonwiki0.jlab.org/wiki/index.php?title=Abaco_XVB603&amp;diff=8728</id>
		<title>Abaco XVB603</title>
		<link rel="alternate" type="text/html" href="https://clonwiki0.jlab.org/wiki/index.php?title=Abaco_XVB603&amp;diff=8728"/>
		<updated>2026-04-08T14:57:58Z</updated>

		<summary type="html">&lt;p&gt;Boiarino: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&#039;&#039;&#039;Initial setting:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Unplug ethernet cable.&lt;br /&gt;
&lt;br /&gt;
For new controller, push and hold &#039;&#039;&#039;DEL&#039;&#039;&#039; to get BIOS.&lt;br /&gt;
&lt;br /&gt;
In BIOS, go to &#039;&#039;&#039;Advanced-&amp;gt;Network Stack Configuration&#039;&#039;&#039; and enable &#039;&#039;&#039;Network Stack&#039;&#039;&#039; and &#039;&#039;&#039;Ipv4 PXE Support&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
In BIOS, go to &#039;&#039;&#039;Abaco-&amp;gt;Network Boot Configuration&#039;&#039;&#039; and enable &#039;&#039;&#039;PXE ROM - ETH3&#039;&#039;&#039; and &#039;&#039;&#039;PXE ROM - ETH4&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
In BIOS, go to &#039;&#039;&#039;Abaco-&amp;gt;VMEbus Configuration&#039;&#039;&#039; and set &#039;&#039;&#039;Reserve VME Space&#039;&#039;&#039; to &#039;&#039;&#039;512 MBytes&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Save &amp;amp; Exit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Connect ethernet cable to the top port. Recycle power, it should boot (if not, in BIOS, go to &#039;&#039;&#039;Boot&#039;&#039;&#039; and set appropriate network port(s) in BOOT Option #1 (and #2)).&lt;/div&gt;</summary>
		<author><name>Boiarino</name></author>
	</entry>
	<entry>
		<id>https://clonwiki0.jlab.org/wiki/index.php?title=Abaco_XVB603&amp;diff=8727</id>
		<title>Abaco XVB603</title>
		<link rel="alternate" type="text/html" href="https://clonwiki0.jlab.org/wiki/index.php?title=Abaco_XVB603&amp;diff=8727"/>
		<updated>2026-04-08T14:57:46Z</updated>

		<summary type="html">&lt;p&gt;Boiarino: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&#039;&#039;&#039;Initial setting:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Unplug ethernet cable.&lt;br /&gt;
&lt;br /&gt;
For new controller, push and hold &#039;&#039;&#039;DEL&#039;&#039; to get BIOS.&lt;br /&gt;
&lt;br /&gt;
In BIOS, go to &#039;&#039;&#039;Advanced-&amp;gt;Network Stack Configuration&#039;&#039;&#039; and enable &#039;&#039;&#039;Network Stack&#039;&#039;&#039; and &#039;&#039;&#039;Ipv4 PXE Support&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
In BIOS, go to &#039;&#039;&#039;Abaco-&amp;gt;Network Boot Configuration&#039;&#039;&#039; and enable &#039;&#039;&#039;PXE ROM - ETH3&#039;&#039;&#039; and &#039;&#039;&#039;PXE ROM - ETH4&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
In BIOS, go to &#039;&#039;&#039;Abaco-&amp;gt;VMEbus Configuration&#039;&#039;&#039; and set &#039;&#039;&#039;Reserve VME Space&#039;&#039;&#039; to &#039;&#039;&#039;512 MBytes&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Save &amp;amp; Exit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Connect ethernet cable to the top port. Recycle power, it should boot (if not, in BIOS, go to &#039;&#039;&#039;Boot&#039;&#039;&#039; and set appropriate network port(s) in BOOT Option #1 (and #2)).&lt;/div&gt;</summary>
		<author><name>Boiarino</name></author>
	</entry>
	<entry>
		<id>https://clonwiki0.jlab.org/wiki/index.php?title=Tftpboot&amp;diff=8726</id>
		<title>Tftpboot</title>
		<link rel="alternate" type="text/html" href="https://clonwiki0.jlab.org/wiki/index.php?title=Tftpboot&amp;diff=8726"/>
		<updated>2026-04-01T19:18:43Z</updated>

		<summary type="html">&lt;p&gt;Boiarino: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Tftpboot setting to boot diskless VME controllers&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If &#039;&#039;/tftpboot&#039;&#039; directory does not exist yet, copy it from &#039;&#039;/usr/downloads&#039;&#039; (it come from Bryan Moffit in April 2025).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;EFI boot&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
File &#039;&#039;/tftpboot/efi/boot/grub2/grub.cfg&#039;&#039; should have following contents (to use &#039;&#039;/diskless&#039;&#039; from file server, below set &#039;&#039;...root=nfs:129.57.167.16:/vol/diskless/...&#039;&#039;):&lt;br /&gt;
&lt;br /&gt;
 function load_video {&lt;br /&gt;
 insmod efi_gop&lt;br /&gt;
 insmod efi_uga&lt;br /&gt;
 insmod video_bochs&lt;br /&gt;
 insmod video_cirrus&lt;br /&gt;
 insmod all_video&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 load_video&lt;br /&gt;
 set gfxpayload=keep&lt;br /&gt;
 insmod gzio&lt;br /&gt;
 set timeout=2&lt;br /&gt;
 menuentry &#039;Diskless CentOS7 x86_64, any network device&#039;  --class redhat --class gnu-linux --class gnu --class os {&lt;br /&gt;
 linuxefi linux-install/CentOS7-x86_64-Diskless/vmlinuz-3.10.0-1062.9.1.el7.x86_64 zram=1 ip=::::::dhcp root=nfs:192.168.10.1:/diskless/CentOS7/x86_64/root ro vga=0x305 module_blacklist=ipmi_si,ipmi_msghandler,ipmi_devintf,w83977f_wdt&lt;br /&gt;
 initrdefi linux-install/CentOS7-x86_64-Diskless/initramfs-jvme-3.10.0-1062.9.1.el7.x86_64.img&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
that file will serve all EFI-bootable VME controllers, &#039;&#039;&#039;no need to set anything in &#039;&#039;/tftpboot&#039;&#039; area&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PXE boot&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In directory &#039;&#039;/tftpboot/pxelinux.cfg&#039;&#039;, PXE-bootable controllers boot files are stored. For example:&lt;br /&gt;
 C0A80A06 -&amp;gt; test6&lt;br /&gt;
 test6&lt;br /&gt;
&lt;br /&gt;
where &#039;&#039;C0A80A06&#039;&#039; is test6&#039;s IP address in hex format (192.168.10.6), and &#039;&#039;test6&#039;&#039; has following contents:&lt;br /&gt;
 default CentOS7&lt;br /&gt;
 &lt;br /&gt;
 label CentOS7&lt;br /&gt;
     kernel CentOS7-x86_64-Diskless/vmlinuz-3.10.0-1062.9.1.el7.x86_64&lt;br /&gt;
     append initrd=CentOS7-x86_64-Diskless/initramfs-jvme-3.10.0-1062.9.1.el7.x86_64.img ip=dhcp root=nfs:192.168.10.1:/diskless/CentOS7/x86_64/root,tcp ro&lt;br /&gt;
&lt;br /&gt;
# label CentOS7&lt;br /&gt;
#     kernel CentOS7-x86_64-Diskless/vmlinuz-3.10.0-1062.9.1.el7.x86_64&lt;br /&gt;
#     append initrd=CentOS7-x86_64-Diskless/initramfs-jvme-3.10.0-1062.9.1.el7.x86_64.img ip=bootdev:dhcp root=nfs:192.168.10.1:/diskless/CentOS7/x86_64/root,tcp ro ifname=bootdev:00:20:38:0A:07:D7&lt;br /&gt;
&lt;br /&gt;
It should be mentioned that in both cases VME controller&#039;s root directories will be mounted as &#039;read only&#039;. All individual controller-specific directories will be placed in &#039;snapshot&#039; area.&lt;/div&gt;</summary>
		<author><name>Boiarino</name></author>
	</entry>
	<entry>
		<id>https://clonwiki0.jlab.org/wiki/index.php?title=Tftpboot&amp;diff=8725</id>
		<title>Tftpboot</title>
		<link rel="alternate" type="text/html" href="https://clonwiki0.jlab.org/wiki/index.php?title=Tftpboot&amp;diff=8725"/>
		<updated>2026-04-01T19:18:26Z</updated>

		<summary type="html">&lt;p&gt;Boiarino: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Tftpboot setting to boot diskless VME controllers&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If &#039;&#039;/tftpboot&#039;&#039; directory does not exist yet, copy it from &#039;&#039;/usr/downloads&#039;&#039; (it come from Bryan Moffit in April 2025).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;EFI boot&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
File &#039;&#039;/tftpboot/efi/boot/grub2/grub.cfg&#039;&#039; should have following contents (to use &#039;&#039;/diskless&#039;&#039; from file server, below set &#039;&#039;...root=nfs:129.57.167.16:/vol/diskless/...&#039;&#039;):&lt;br /&gt;
&lt;br /&gt;
 function load_video {&lt;br /&gt;
 insmod efi_gop&lt;br /&gt;
 insmod efi_uga&lt;br /&gt;
 insmod video_bochs&lt;br /&gt;
 insmod video_cirrus&lt;br /&gt;
 insmod all_video&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 load_video&lt;br /&gt;
 set gfxpayload=keep&lt;br /&gt;
 insmod gzio&lt;br /&gt;
 set timeout=2&lt;br /&gt;
 menuentry &#039;Diskless CentOS7 x86_64, any network device&#039;  --class redhat --class gnu-linux --class gnu --class os {&lt;br /&gt;
 linuxefi linux-install/CentOS7-x86_64-Diskless/vmlinuz-3.10.0-1062.9.1.el7.x86_64 zram=1 ip=::::::dhcp root=nfs:192.168.10.1:/diskless/CentOS7/x86_64/root ro vga=0x305 module_blacklist=ipmi_si,ipmi_msghandler,ipmi_devintf,w83977f_wdt&lt;br /&gt;
 initrdefi linux-install/CentOS7-x86_64-Diskless/initramfs-jvme-3.10.0-1062.9.1.el7.x86_64.img&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
that file will serve all EFI-bootable VME controllers, &#039;&#039;&#039;no need to set anything in &#039;&#039;/tftpboot&#039;&#039; area&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PXE boot&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In directory &#039;&#039;/tftpboot/pxelinux.cfg&#039;&#039;, PXE-bootable controllers boot files are stored. For example:&lt;br /&gt;
 C0A80A06 -&amp;gt; test6&lt;br /&gt;
 test6&lt;br /&gt;
&lt;br /&gt;
where &#039;&#039;C0A80A06&#039;&#039; is test6&#039;s IP address in hex format (192.168.10.6), and &#039;&#039;test6&#039;&#039; has following contents:&lt;br /&gt;
 default CentOS7&lt;br /&gt;
 &lt;br /&gt;
 label CentOS7&lt;br /&gt;
     kernel CentOS7-x86_64-Diskless/vmlinuz-3.10.0-1062.9.1.el7.x86_64&lt;br /&gt;
     append initrd=CentOS7-x86_64-Diskless/initramfs-jvme-3.10.0-1062.9.1.el7.x86_64.img ip=dhcp root=nfs:192.168.10.1:/diskless/CentOS7/x86_64/root,tcp ro&lt;br /&gt;
&lt;br /&gt;
# label CentOS7&lt;br /&gt;
#     kernel CentOS7-x86_64-Diskless/vmlinuz-3.10.0-1062.9.1.el7.x86_64&lt;br /&gt;
#     append initrd=CentOS7-x86_64-Diskless/initramfs-jvme-3.10.0-1062.9.1.el7.x86_64.img ip=bootdev:dhcp root=nfs:192.168.10.1:/diskless/CentOS7/x86_64/root,tcp ro ifname=bootdev:00:20:38:0A:07:D7&lt;br /&gt;
&lt;br /&gt;
It should be mentioned that in both cases VME controller&#039;s root directories will be mounted as &#039;read only&#039;. All individual controller-specific directories will be placed in &#039;snapshot&#039; area.&lt;/div&gt;</summary>
		<author><name>Boiarino</name></author>
	</entry>
	<entry>
		<id>https://clonwiki0.jlab.org/wiki/index.php?title=Tftpboot&amp;diff=8724</id>
		<title>Tftpboot</title>
		<link rel="alternate" type="text/html" href="https://clonwiki0.jlab.org/wiki/index.php?title=Tftpboot&amp;diff=8724"/>
		<updated>2026-04-01T19:18:11Z</updated>

		<summary type="html">&lt;p&gt;Boiarino: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Tftpboot setting to boot diskless VME controllers&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If &#039;&#039;/tftpboot&#039;&#039; directory does not exist yet, copy it from &#039;&#039;/usr/downloads&#039;&#039; (it come from Bryan Moffit in April 2025).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;EFI boot&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
File &#039;&#039;/tftpboot/efi/boot/grub2/grub.cfg&#039;&#039; should have following contents (to use &#039;&#039;/diskless&#039;&#039; from file server, below set &#039;&#039;...root=nfs:129.57.167.16:/vol/diskless/...&#039;&#039;):&lt;br /&gt;
&lt;br /&gt;
 function load_video {&lt;br /&gt;
 insmod efi_gop&lt;br /&gt;
 insmod efi_uga&lt;br /&gt;
 insmod video_bochs&lt;br /&gt;
 insmod video_cirrus&lt;br /&gt;
 insmod all_video&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 load_video&lt;br /&gt;
 set gfxpayload=keep&lt;br /&gt;
 insmod gzio&lt;br /&gt;
 set timeout=2&lt;br /&gt;
 menuentry &#039;Diskless CentOS7 x86_64, any network device&#039;  --class redhat --class gnu-linux --class gnu --class os {&lt;br /&gt;
 linuxefi linux-install/CentOS7-x86_64-Diskless/vmlinuz-3.10.0-1062.9.1.el7.x86_64 zram=1 ip=::::::dhcp root=nfs:192.168.10.1:/diskless/CentOS7/x86_64/root ro vga=0x305 module_blacklist=ipmi_si,ipmi_msghandler,ipmi_devintf,w83977f_wdt&lt;br /&gt;
 initrdefi linux-install/CentOS7-x86_64-Diskless/initramfs-jvme-3.10.0-1062.9.1.el7.x86_64.img&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
that file will serve all EFI-bootable VME controllers, &#039;&#039;&#039;no need to set anything in &#039;&#039;/tftpboot&#039;&#039; area&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;PXE boot&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In directory &#039;&#039;/tftpboot/pxelinux.cfg&#039;&#039;, PXE-bootable controllers boot files are stored. For example:&lt;br /&gt;
 C0A80A06 -&amp;gt; test6&lt;br /&gt;
 test6&lt;br /&gt;
&lt;br /&gt;
where &#039;&#039;C0A80A06&#039;&#039; is test6&#039;s IP address in hex format (192.168.10.6), and &#039;&#039;test6&#039;&#039; has following contents:&lt;br /&gt;
 default CentOS7&lt;br /&gt;
 &lt;br /&gt;
 label CentOS7&lt;br /&gt;
     kernel CentOS7-x86_64-Diskless/vmlinuz-3.10.0-1062.9.1.el7.x86_64&lt;br /&gt;
     append initrd=CentOS7-x86_64-Diskless/initramfs-jvme-3.10.0-1062.9.1.el7.x86_64.img ip=dhcp root=nfs:192.168.10.1:/diskless/CentOS7/x86_64/root,tcp ro&lt;br /&gt;
&lt;br /&gt;
# label CentOS7&lt;br /&gt;
#     kernel CentOS7-x86_64-Diskless/vmlinuz-3.10.0-1062.9.1.el7.x86_64&lt;br /&gt;
#     append initrd=CentOS7-x86_64-Diskless/initramfs-jvme-3.10.0-1062.9.1.el7.x86_64.img ip=bootdev:dhcp root=nfs:192.168.10.1:/diskless/CentOS7/x86_64/root,tcp ro ifname=bootdev:00:20:38:0A:07:D7&lt;br /&gt;
&lt;br /&gt;
It should be mentioned that in both cases VME controller&#039;s root directories will be mounted as &#039;read only&#039;. All individual controller-specific directories will be placed in &#039;snapshot&#039; area.&lt;/div&gt;</summary>
		<author><name>Boiarino</name></author>
	</entry>
	<entry>
		<id>https://clonwiki0.jlab.org/wiki/index.php?title=Raid&amp;diff=8723</id>
		<title>Raid</title>
		<link rel="alternate" type="text/html" href="https://clonwiki0.jlab.org/wiki/index.php?title=Raid&amp;diff=8723"/>
		<updated>2026-03-25T14:48:59Z</updated>

		<summary type="html">&lt;p&gt;Boiarino: /* perccli */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== storcli ==&lt;br /&gt;
&lt;br /&gt;
On clondaq7, it is installed to &#039;&#039;/opt/MegaRAID/storcli&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;./storcli64 /c0/eall/sall show&#039;&#039;&#039;&lt;br /&gt;
 CLI Version = 007.3405.0000.0000 May 15, 2025&lt;br /&gt;
 Operating system = Linux 5.14.0-611.7.1.el9_7.x86_64&lt;br /&gt;
 Controller = 0&lt;br /&gt;
 Status = Success&lt;br /&gt;
 Description = Show Drive Information Succeeded.&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 Drive Information :&lt;br /&gt;
 =================&lt;br /&gt;
 &lt;br /&gt;
 ----------------------------------------------------------------------------&lt;br /&gt;
 EID:Slt DID State DG     Size Intf Med SED PI SeSz Model            Sp Type &lt;br /&gt;
 ----------------------------------------------------------------------------&lt;br /&gt;
 9:0      10 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:1      18 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:2      14 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:3      20 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:4      23 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:5      32 Onln   0 7.276 TB SAS  HDD N   N  512B HUH728080AL5204  U  -    &lt;br /&gt;
 9:6      28 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:7      25 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:8      11 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:9      13 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:10     31 GHS    - 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:11     16 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:12     24 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:13     26 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:14     15 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:15     19 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:16     22 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:17     29 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:18     27 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:19     21 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:20     33 Onln   - 7.276 TB SAS  HDD N   N  512B HUH728080AL5204  U  -    &lt;br /&gt;
 9:21     34 UGood  - 7.276 TB SAS  HDD N   N  512B HUH728080AL5204  D  -    &lt;br /&gt;
 ----------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;./storcli64 /c0/v0 start migrate type=r6 option=add drives=9:21&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;./storcli64 /c0/v0 show&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== perccli ==&lt;br /&gt;
&lt;br /&gt;
On clondaq6, it is installed in &#039;&#039;/opt/MegaRAID/perccli&#039;&#039; (from rpm inside &#039;&#039;/usr/downloads/PERCCLI_7.1910.00_A12_Linux.tar.gz&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
Commands similar to storcli, for example:&lt;br /&gt;
&lt;br /&gt;
 [root@clondaq6 perccli]# &#039;&#039;&#039;./perccli64 /c0/eall/sall show&#039;&#039;&#039;&lt;br /&gt;
 CLI Version = 007.1910.0000.0000 Oct 08, 2021&lt;br /&gt;
 Operating system = Linux 5.14.0-611.7.1.el9_7.x86_64&lt;br /&gt;
 Controller = 0&lt;br /&gt;
 Status = Success&lt;br /&gt;
 Description = Show Drive Information Succeeded.&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 Drive Information :&lt;br /&gt;
 =================&lt;br /&gt;
 &lt;br /&gt;
 ----------------------------------------------------------------------------&lt;br /&gt;
 EID:Slt DID State DG     Size Intf Med SED PI SeSz Model            Sp Type &lt;br /&gt;
 ----------------------------------------------------------------------------&lt;br /&gt;
 32:0      0 Onln   0 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:1      1 Onln   0 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:2      2 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:3      3 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:4      4 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:5      5 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:6      6 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:7      7 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:8      8 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:9      9 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:10    10 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:11    11 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:12    12 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:13    13 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:14    14 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:15    15 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:16    16 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:17    17 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:18    18 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:19    19 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:20    20 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:21    21 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:22    22 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:23    23 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 ----------------------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
 EID=Enclosure Device ID|Slt=Slot No|DID=Device ID|DG=DriveGroup&lt;br /&gt;
 DHS=Dedicated Hot Spare|UGood=Unconfigured Good|GHS=Global Hotspare&lt;br /&gt;
 UBad=Unconfigured Bad|Sntze=Sanitize|Onln=Online|Offln=Offline|Intf=Interface&lt;br /&gt;
 Med=Media Type|SED=Self Encryptive Drive|PI=Protection Info&lt;br /&gt;
 SeSz=Sector Size|Sp=Spun|U=Up|D=Down|T=Transition|F=Foreign&lt;br /&gt;
 UGUnsp=UGood Unsupported|UGShld=UGood shielded|HSPShld=Hotspare shielded&lt;br /&gt;
 CFShld=Configured shielded|Cpybck=CopyBack|CBShld=Copyback Shielded&lt;br /&gt;
 UBUnsp=UBad Unsupported|Rbld=Rebuild&lt;/div&gt;</summary>
		<author><name>Boiarino</name></author>
	</entry>
	<entry>
		<id>https://clonwiki0.jlab.org/wiki/index.php?title=Raid&amp;diff=8722</id>
		<title>Raid</title>
		<link rel="alternate" type="text/html" href="https://clonwiki0.jlab.org/wiki/index.php?title=Raid&amp;diff=8722"/>
		<updated>2026-03-25T14:48:16Z</updated>

		<summary type="html">&lt;p&gt;Boiarino: /* perccli */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== storcli ==&lt;br /&gt;
&lt;br /&gt;
On clondaq7, it is installed to &#039;&#039;/opt/MegaRAID/storcli&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;./storcli64 /c0/eall/sall show&#039;&#039;&#039;&lt;br /&gt;
 CLI Version = 007.3405.0000.0000 May 15, 2025&lt;br /&gt;
 Operating system = Linux 5.14.0-611.7.1.el9_7.x86_64&lt;br /&gt;
 Controller = 0&lt;br /&gt;
 Status = Success&lt;br /&gt;
 Description = Show Drive Information Succeeded.&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 Drive Information :&lt;br /&gt;
 =================&lt;br /&gt;
 &lt;br /&gt;
 ----------------------------------------------------------------------------&lt;br /&gt;
 EID:Slt DID State DG     Size Intf Med SED PI SeSz Model            Sp Type &lt;br /&gt;
 ----------------------------------------------------------------------------&lt;br /&gt;
 9:0      10 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:1      18 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:2      14 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:3      20 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:4      23 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:5      32 Onln   0 7.276 TB SAS  HDD N   N  512B HUH728080AL5204  U  -    &lt;br /&gt;
 9:6      28 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:7      25 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:8      11 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:9      13 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:10     31 GHS    - 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:11     16 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:12     24 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:13     26 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:14     15 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:15     19 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:16     22 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:17     29 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:18     27 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:19     21 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:20     33 Onln   - 7.276 TB SAS  HDD N   N  512B HUH728080AL5204  U  -    &lt;br /&gt;
 9:21     34 UGood  - 7.276 TB SAS  HDD N   N  512B HUH728080AL5204  D  -    &lt;br /&gt;
 ----------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;./storcli64 /c0/v0 start migrate type=r6 option=add drives=9:21&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;./storcli64 /c0/v0 show&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== perccli ==&lt;br /&gt;
&lt;br /&gt;
Installed from rpm inside &#039;&#039;/usr/downloads/PERCCLI_7.1910.00_A12_Linux.tar.gz&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
On clondaq6, it is installed in &#039;&#039;/opt/MegaRAID/perccli&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Commands similar to storcli, for example:&lt;br /&gt;
&lt;br /&gt;
 [root@clondaq6 perccli]# &#039;&#039;&#039;./perccli64 /c0/eall/sall show&#039;&#039;&#039;&lt;br /&gt;
 CLI Version = 007.1910.0000.0000 Oct 08, 2021&lt;br /&gt;
 Operating system = Linux 5.14.0-611.7.1.el9_7.x86_64&lt;br /&gt;
 Controller = 0&lt;br /&gt;
 Status = Success&lt;br /&gt;
 Description = Show Drive Information Succeeded.&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 Drive Information :&lt;br /&gt;
 =================&lt;br /&gt;
 &lt;br /&gt;
 ----------------------------------------------------------------------------&lt;br /&gt;
 EID:Slt DID State DG     Size Intf Med SED PI SeSz Model            Sp Type &lt;br /&gt;
 ----------------------------------------------------------------------------&lt;br /&gt;
 32:0      0 Onln   0 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:1      1 Onln   0 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:2      2 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:3      3 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:4      4 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:5      5 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:6      6 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:7      7 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:8      8 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:9      9 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:10    10 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:11    11 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:12    12 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:13    13 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:14    14 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:15    15 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:16    16 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:17    17 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:18    18 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:19    19 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:20    20 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:21    21 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:22    22 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:23    23 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 ----------------------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
 EID=Enclosure Device ID|Slt=Slot No|DID=Device ID|DG=DriveGroup&lt;br /&gt;
 DHS=Dedicated Hot Spare|UGood=Unconfigured Good|GHS=Global Hotspare&lt;br /&gt;
 UBad=Unconfigured Bad|Sntze=Sanitize|Onln=Online|Offln=Offline|Intf=Interface&lt;br /&gt;
 Med=Media Type|SED=Self Encryptive Drive|PI=Protection Info&lt;br /&gt;
 SeSz=Sector Size|Sp=Spun|U=Up|D=Down|T=Transition|F=Foreign&lt;br /&gt;
 UGUnsp=UGood Unsupported|UGShld=UGood shielded|HSPShld=Hotspare shielded&lt;br /&gt;
 CFShld=Configured shielded|Cpybck=CopyBack|CBShld=Copyback Shielded&lt;br /&gt;
 UBUnsp=UBad Unsupported|Rbld=Rebuild&lt;/div&gt;</summary>
		<author><name>Boiarino</name></author>
	</entry>
	<entry>
		<id>https://clonwiki0.jlab.org/wiki/index.php?title=Raid&amp;diff=8721</id>
		<title>Raid</title>
		<link rel="alternate" type="text/html" href="https://clonwiki0.jlab.org/wiki/index.php?title=Raid&amp;diff=8721"/>
		<updated>2026-03-25T14:45:47Z</updated>

		<summary type="html">&lt;p&gt;Boiarino: /* perccli */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== storcli ==&lt;br /&gt;
&lt;br /&gt;
On clondaq7, it is installed to &#039;&#039;/opt/MegaRAID/storcli&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;./storcli64 /c0/eall/sall show&#039;&#039;&#039;&lt;br /&gt;
 CLI Version = 007.3405.0000.0000 May 15, 2025&lt;br /&gt;
 Operating system = Linux 5.14.0-611.7.1.el9_7.x86_64&lt;br /&gt;
 Controller = 0&lt;br /&gt;
 Status = Success&lt;br /&gt;
 Description = Show Drive Information Succeeded.&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 Drive Information :&lt;br /&gt;
 =================&lt;br /&gt;
 &lt;br /&gt;
 ----------------------------------------------------------------------------&lt;br /&gt;
 EID:Slt DID State DG     Size Intf Med SED PI SeSz Model            Sp Type &lt;br /&gt;
 ----------------------------------------------------------------------------&lt;br /&gt;
 9:0      10 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:1      18 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:2      14 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:3      20 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:4      23 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:5      32 Onln   0 7.276 TB SAS  HDD N   N  512B HUH728080AL5204  U  -    &lt;br /&gt;
 9:6      28 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:7      25 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:8      11 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:9      13 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:10     31 GHS    - 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:11     16 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:12     24 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:13     26 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:14     15 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:15     19 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:16     22 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:17     29 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:18     27 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:19     21 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:20     33 Onln   - 7.276 TB SAS  HDD N   N  512B HUH728080AL5204  U  -    &lt;br /&gt;
 9:21     34 UGood  - 7.276 TB SAS  HDD N   N  512B HUH728080AL5204  D  -    &lt;br /&gt;
 ----------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;./storcli64 /c0/v0 start migrate type=r6 option=add drives=9:21&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;./storcli64 /c0/v0 show&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== perccli ==&lt;br /&gt;
&lt;br /&gt;
On clondaq6, it is installed in &#039;&#039;/opt/MegaRAID/perccli&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Commands similar to storcli, for example:&lt;br /&gt;
&lt;br /&gt;
 [root@clondaq6 perccli]# &#039;&#039;&#039;./perccli64 /c0/eall/sall show&#039;&#039;&#039;&lt;br /&gt;
 CLI Version = 007.1910.0000.0000 Oct 08, 2021&lt;br /&gt;
 Operating system = Linux 5.14.0-611.7.1.el9_7.x86_64&lt;br /&gt;
 Controller = 0&lt;br /&gt;
 Status = Success&lt;br /&gt;
 Description = Show Drive Information Succeeded.&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 Drive Information :&lt;br /&gt;
 =================&lt;br /&gt;
 &lt;br /&gt;
 ----------------------------------------------------------------------------&lt;br /&gt;
 EID:Slt DID State DG     Size Intf Med SED PI SeSz Model            Sp Type &lt;br /&gt;
 ----------------------------------------------------------------------------&lt;br /&gt;
 32:0      0 Onln   0 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:1      1 Onln   0 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:2      2 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:3      3 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:4      4 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:5      5 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:6      6 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:7      7 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:8      8 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:9      9 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:10    10 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:11    11 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:12    12 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:13    13 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:14    14 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:15    15 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:16    16 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:17    17 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:18    18 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:19    19 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:20    20 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:21    21 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:22    22 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:23    23 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 ----------------------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
 EID=Enclosure Device ID|Slt=Slot No|DID=Device ID|DG=DriveGroup&lt;br /&gt;
 DHS=Dedicated Hot Spare|UGood=Unconfigured Good|GHS=Global Hotspare&lt;br /&gt;
 UBad=Unconfigured Bad|Sntze=Sanitize|Onln=Online|Offln=Offline|Intf=Interface&lt;br /&gt;
 Med=Media Type|SED=Self Encryptive Drive|PI=Protection Info&lt;br /&gt;
 SeSz=Sector Size|Sp=Spun|U=Up|D=Down|T=Transition|F=Foreign&lt;br /&gt;
 UGUnsp=UGood Unsupported|UGShld=UGood shielded|HSPShld=Hotspare shielded&lt;br /&gt;
 CFShld=Configured shielded|Cpybck=CopyBack|CBShld=Copyback Shielded&lt;br /&gt;
 UBUnsp=UBad Unsupported|Rbld=Rebuild&lt;/div&gt;</summary>
		<author><name>Boiarino</name></author>
	</entry>
	<entry>
		<id>https://clonwiki0.jlab.org/wiki/index.php?title=Raid&amp;diff=8720</id>
		<title>Raid</title>
		<link rel="alternate" type="text/html" href="https://clonwiki0.jlab.org/wiki/index.php?title=Raid&amp;diff=8720"/>
		<updated>2026-03-25T14:45:15Z</updated>

		<summary type="html">&lt;p&gt;Boiarino: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== storcli ==&lt;br /&gt;
&lt;br /&gt;
On clondaq7, it is installed to &#039;&#039;/opt/MegaRAID/storcli&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;./storcli64 /c0/eall/sall show&#039;&#039;&#039;&lt;br /&gt;
 CLI Version = 007.3405.0000.0000 May 15, 2025&lt;br /&gt;
 Operating system = Linux 5.14.0-611.7.1.el9_7.x86_64&lt;br /&gt;
 Controller = 0&lt;br /&gt;
 Status = Success&lt;br /&gt;
 Description = Show Drive Information Succeeded.&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 Drive Information :&lt;br /&gt;
 =================&lt;br /&gt;
 &lt;br /&gt;
 ----------------------------------------------------------------------------&lt;br /&gt;
 EID:Slt DID State DG     Size Intf Med SED PI SeSz Model            Sp Type &lt;br /&gt;
 ----------------------------------------------------------------------------&lt;br /&gt;
 9:0      10 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:1      18 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:2      14 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:3      20 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:4      23 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:5      32 Onln   0 7.276 TB SAS  HDD N   N  512B HUH728080AL5204  U  -    &lt;br /&gt;
 9:6      28 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:7      25 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:8      11 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:9      13 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:10     31 GHS    - 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:11     16 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:12     24 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:13     26 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:14     15 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:15     19 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:16     22 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:17     29 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:18     27 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:19     21 Onln   0 7.276 TB SAS  HDD N   N  512B HUH721008AL5200  U  -    &lt;br /&gt;
 9:20     33 Onln   - 7.276 TB SAS  HDD N   N  512B HUH728080AL5204  U  -    &lt;br /&gt;
 9:21     34 UGood  - 7.276 TB SAS  HDD N   N  512B HUH728080AL5204  D  -    &lt;br /&gt;
 ----------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;./storcli64 /c0/v0 start migrate type=r6 option=add drives=9:21&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;./storcli64 /c0/v0 show&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== perccli ==&lt;br /&gt;
&lt;br /&gt;
On clondaq6, it is installed in &#039;&#039;/opt/MegaRAID/perccli&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Commands similar to storcli, for example:&lt;br /&gt;
&lt;br /&gt;
 [root@clondaq6 perccli]# ./perccli64 /c0/eall/sall show&lt;br /&gt;
 CLI Version = 007.1910.0000.0000 Oct 08, 2021&lt;br /&gt;
 Operating system = Linux 5.14.0-611.7.1.el9_7.x86_64&lt;br /&gt;
 Controller = 0&lt;br /&gt;
 Status = Success&lt;br /&gt;
 Description = Show Drive Information Succeeded.&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 Drive Information :&lt;br /&gt;
 =================&lt;br /&gt;
 &lt;br /&gt;
 ----------------------------------------------------------------------------&lt;br /&gt;
 EID:Slt DID State DG     Size Intf Med SED PI SeSz Model            Sp Type &lt;br /&gt;
 ----------------------------------------------------------------------------&lt;br /&gt;
 32:0      0 Onln   0 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:1      1 Onln   0 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:2      2 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:3      3 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:4      4 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:5      5 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:6      6 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:7      7 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:8      8 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:9      9 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:10    10 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:11    11 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:12    12 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:13    13 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:14    14 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:15    15 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:16    16 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:17    17 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:18    18 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:19    19 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:20    20 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:21    21 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:22    22 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 32:23    23 Onln   1 1.090 TB SAS  HDD N   N  512B HUC101212CSS600  U  -    &lt;br /&gt;
 ----------------------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
 EID=Enclosure Device ID|Slt=Slot No|DID=Device ID|DG=DriveGroup&lt;br /&gt;
 DHS=Dedicated Hot Spare|UGood=Unconfigured Good|GHS=Global Hotspare&lt;br /&gt;
 UBad=Unconfigured Bad|Sntze=Sanitize|Onln=Online|Offln=Offline|Intf=Interface&lt;br /&gt;
 Med=Media Type|SED=Self Encryptive Drive|PI=Protection Info&lt;br /&gt;
 SeSz=Sector Size|Sp=Spun|U=Up|D=Down|T=Transition|F=Foreign&lt;br /&gt;
 UGUnsp=UGood Unsupported|UGShld=UGood shielded|HSPShld=Hotspare shielded&lt;br /&gt;
 CFShld=Configured shielded|Cpybck=CopyBack|CBShld=Copyback Shielded&lt;br /&gt;
 UBUnsp=UBad Unsupported|Rbld=Rebuild&lt;/div&gt;</summary>
		<author><name>Boiarino</name></author>
	</entry>
	<entry>
		<id>https://clonwiki0.jlab.org/wiki/index.php?title=Tcl/Tk&amp;diff=8719</id>
		<title>Tcl/Tk</title>
		<link rel="alternate" type="text/html" href="https://clonwiki0.jlab.org/wiki/index.php?title=Tcl/Tk&amp;diff=8719"/>
		<updated>2026-03-24T13:21:01Z</updated>

		<summary type="html">&lt;p&gt;Boiarino: /* RHEL7 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== RHEL9 ==&lt;br /&gt;
&lt;br /&gt;
Install following using &#039;&#039;yum&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 yum install tcl-devel tk-devel tix-devel expect&lt;br /&gt;
&lt;br /&gt;
Install the rest from local sources:&lt;br /&gt;
 &lt;br /&gt;
 cd /usr/local/src/itcl4.2.3&lt;br /&gt;
 #./configure&lt;br /&gt;
 #make all&lt;br /&gt;
 make install&lt;br /&gt;
 ln -s /usr/lib/itcl4.2.3 /usr/lib64/tcl8.6/itcl4.2.3&lt;br /&gt;
 cd /usr/local/src/itk4.1.0&lt;br /&gt;
 #./configure&lt;br /&gt;
 #make&lt;br /&gt;
 make install&lt;br /&gt;
 ln -s /usr/lib/itk4.1.0 /usr/lib64/tcl8.6/itk4.1.0&lt;br /&gt;
 cd /usr/local/src/mysqltcl-3.052&lt;br /&gt;
 #./configure --prefix=/usr --with-tcl=/usr/lib64 --with-mysql-lib=/usr/lib64/mysql&lt;br /&gt;
 #make&lt;br /&gt;
 make install&lt;br /&gt;
 ln -s /usr/lib64/mysqltcl-3.052 /usr/lib64/tcl8.6/mysqltcl-3.052&lt;br /&gt;
&lt;br /&gt;
== RHEL7 ==&lt;br /&gt;
&lt;br /&gt;
Install following using &#039;&#039;yum&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 yum install tix itcl itk expect&lt;br /&gt;
&lt;br /&gt;
Install the rest from local sources:&lt;br /&gt;
 &lt;br /&gt;
 cd /usr/local/src/mysqltcl-3.052&lt;br /&gt;
 ./configure --prefix=/usr --with-tcl=/usr/lib64 --with-mysql-lib=/usr/lib64/mysql&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
 ln -s /usr/lib/mysqltcl-3.052 /usr/lib64/tcl8.5/mysqltcl-3.052&lt;br /&gt;
&lt;br /&gt;
== General Info ==&lt;br /&gt;
&lt;br /&gt;
Basic Tcl/Tk must be installed to satisfy CODA references. Following packages were downloaded to &#039;&#039;/usr/local/downloads&#039;&#039; from the web:&lt;br /&gt;
 tcl8.4.13&lt;br /&gt;
 tk8.4.13&lt;br /&gt;
 tix-8.4.0&lt;br /&gt;
 expect-5.43&lt;br /&gt;
 blt2.4z&lt;br /&gt;
 itcl&lt;br /&gt;
 itk&lt;br /&gt;
 &amp;lt;&amp;lt;&amp;lt; DO NOT DO IT !!! tcl-dp &amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
 &amp;lt;&amp;lt;&amp;lt; DO NOT DO IT !!! tcl-debug &amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
 mysqltcl&lt;br /&gt;
&lt;br /&gt;
Installation instructions:&lt;br /&gt;
&lt;br /&gt;
* tcl&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/src/tcl8.4.13/unix&lt;br /&gt;
 ./configure --prefix=/usr --enable-shared&lt;br /&gt;
 gmake&lt;br /&gt;
 gmake install&lt;br /&gt;
&lt;br /&gt;
* tk&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/src/tk8.4.13/unix&lt;br /&gt;
 ./configure --prefix=/usr --enable-shared&lt;br /&gt;
 gmake&lt;br /&gt;
 gmake install&lt;br /&gt;
&lt;br /&gt;
* tix&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/src/tix-8.4.0&lt;br /&gt;
&lt;br /&gt;
In file Makefile.in:&lt;br /&gt;
&lt;br /&gt;
1. Replace &#039;pkglibdir&#039; by &#039;libdir&#039; in 4 places in following fragment:&lt;br /&gt;
&lt;br /&gt;
 install-lib-binaries:&lt;br /&gt;
        @mkdir -p $(DESTDIR)$(pkglibdir)&lt;br /&gt;
        @list=&#039;$(lib_BINARIES)&#039;; for p in $$list; do \&lt;br /&gt;
          if test -f $$p; then \&lt;br /&gt;
            echo &amp;quot; $(INSTALL_PROGRAM) $$p $(DESTDIR)$(libdir)/$$p&amp;quot;; \&lt;br /&gt;
            $(INSTALL_PROGRAM) $$p $(DESTDIR)$(libdir)/$$p; \&lt;br /&gt;
            echo &amp;quot; $(RANLIB) $(DESTDIR)$(libdir)/$$p&amp;quot;; \&lt;br /&gt;
            $(RANLIB) $(DESTDIR)$(libdir)/$$p; \&lt;br /&gt;
            ....................................&lt;br /&gt;
&lt;br /&gt;
to enforce libTix8.4.so installation into ${exec_prefix}/lib/,&lt;br /&gt;
not into ${exec_prefix}/lib/Tix8.4/&lt;br /&gt;
&lt;br /&gt;
2. Add following fragment to enforce &#039;tixwish&#039; building:&lt;br /&gt;
&lt;br /&gt;
 WISH_OBJS = tixAppInit.o&lt;br /&gt;
 tixwish: $(WISH_OBJS) $(PKG_LIB_FILE)&lt;br /&gt;
        ${CC} ${CFLAGS} ${LDFLAGS} $(WISH_OBJS) -L./ -lTix8.4 -ltk8.4 -ltcl8.4 \&lt;br /&gt;
                $(CC_SEARCH_FLAGS) -o tixwish&lt;br /&gt;
&lt;br /&gt;
3. Add &#039;tixwish&#039; target to the following line:&lt;br /&gt;
&lt;br /&gt;
 binaries: $(BINARIES) pkgIndex.tcl tixwish&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. Add &#039;tixwish&#039; line in following fragment:&lt;br /&gt;
&lt;br /&gt;
 install-binaries: binaries install-lib-binaries install-bin-binaries&lt;br /&gt;
        @mkdir -p $(DESTDIR)$(pkglibdir)&lt;br /&gt;
        $(INSTALL_DATA) pkgIndex.tcl $(DESTDIR)$(pkglibdir)&lt;br /&gt;
        $(INSTALL_PROGRAM) tixwish $(DESTDIR)$(bindir)&lt;br /&gt;
        ...........................................&lt;br /&gt;
&lt;br /&gt;
 ./configure --prefix=/usr --enable-shared&lt;br /&gt;
 gmake&lt;br /&gt;
 gmake install&lt;br /&gt;
 cp demos/bitmaps/about.xpm /usr/lib/Tix8.4/bitmaps/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* expect&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/src/expect-5.43&lt;br /&gt;
 ./configure --prefix=/usr --with-tcl=/usr/lib --with-tclinclude=/usr/local/src/tcl8.4.13/generic --enable-shared&lt;br /&gt;
 gmake&lt;br /&gt;
 gmake install&lt;br /&gt;
&lt;br /&gt;
* blt&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/src/blt2.4z&lt;br /&gt;
 ./configure \--with-tcl=/usr/local/src/tcl8.4.13/unix \&lt;br /&gt;
   --with-tk=/usr/local/src/tk8.4.13/unix \&lt;br /&gt;
   --with-tclincls=/usr/local/src/tcl8.4.13/generic \&lt;br /&gt;
   --with-tkincls=/usr/local/src/tk8.4.13/generic \&lt;br /&gt;
   --prefix=/usr&lt;br /&gt;
 gmake&lt;br /&gt;
 gmake install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* symbolic links&lt;br /&gt;
&lt;br /&gt;
 cd /usr/bin&lt;br /&gt;
 ln -s wish8.4 wish&lt;br /&gt;
&lt;br /&gt;
* itcl&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/src/itcl3.3&lt;br /&gt;
 ./configure --with-tcl=/usr/local/src/tcl8.4.13/unix --prefix=/usr &lt;br /&gt;
 gmake&lt;br /&gt;
 gmake install&lt;br /&gt;
 #test&lt;br /&gt;
 clon10:itcl3.3&amp;gt; /usr/bin/tclsh8.4 &lt;br /&gt;
 % package require Itcl&lt;br /&gt;
 3.3&lt;br /&gt;
 % exit&lt;br /&gt;
&lt;br /&gt;
* itk&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/src/itk3.3&lt;br /&gt;
 ./configure --with-tcl=/usr/local/src/tcl8.4.13/unix \&lt;br /&gt;
  --with-tk=/usr/local/src/tk8.4.13/unix \&lt;br /&gt;
  --with-itcl=/usr/local/src/itcl3.3 \&lt;br /&gt;
  --prefix=/usr&lt;br /&gt;
 gmake&lt;br /&gt;
 gmake install&lt;br /&gt;
 #test&lt;br /&gt;
 clon10:src&amp;gt; /usr/bin/tclsh8.4&lt;br /&gt;
 % package require Itk&lt;br /&gt;
 3.3&lt;br /&gt;
 % exit&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;lt;&amp;lt; DO NOT DO IT !!! * tcl-dp&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/src/tcl-dp.4.0.b2/unix&lt;br /&gt;
 ./configure --with-tcl=/usr/local/src/tcl8.4.13/unix --prefix=/usr&lt;br /&gt;
 in generic/dpInit.c:&lt;br /&gt;
   /*sergey&lt;br /&gt;
   if (TclHasSockets(interp) != TCL_OK) {&lt;br /&gt;
   return TCL_ERROR;&lt;br /&gt;
   }&lt;br /&gt;
   */&lt;br /&gt;
 gmake&lt;br /&gt;
 ###gmake tests&lt;br /&gt;
 cd ..&lt;br /&gt;
 /usr/bin/wish teki.tcl&lt;br /&gt;
 ###&#039;File | Install&#039;.  Select dp.tek, click &#039;Open&#039;, select &#039;Custom&#039;,&lt;br /&gt;
 choose &#039;Solaris&#039; (or whatever), root directory for code files &#039;/usr/lib/tcl8.4&#039;&lt;br /&gt;
 cd /usr/lib/tcl8.4/dp4.0/library/&lt;br /&gt;
 chmod 755 *&lt;br /&gt;
 All DP scripts&lt;br /&gt;
 should have &amp;quot;package require dp&amp;quot; as their first line which will&lt;br /&gt;
 automatically load the DP module if it has not been loaded already.&lt;br /&gt;
 #test&lt;br /&gt;
 /usr/bin/tclsh8.4&lt;br /&gt;
 %  package require dp&lt;br /&gt;
 4.0&lt;br /&gt;
 % exit&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;lt;&amp;lt; DO NOT DO IT !!! * tcl-debug&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/src/tcl-debug-2.0&lt;br /&gt;
 ./configure --prefix=/usr --enable-shared --with-tcl=/usr/local/src/tcl8.4.13/unix&lt;br /&gt;
 gmake&lt;br /&gt;
 gmake install&lt;br /&gt;
&lt;br /&gt;
* mysqltcl&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/src/mysqltcl-3.05&lt;br /&gt;
 ./configure --with-tcl=/usr/local/src/tcl8.4.13/unix \&lt;br /&gt;
   --with-tclinclude=/usr/local/src/tcl8.4.13/generic \&lt;br /&gt;
   --with-mysql-include=/usr/include/mysql \&lt;br /&gt;
   --with-mysql-lib=/usr/lib/mysql \&lt;br /&gt;
   --prefix=/usr&lt;br /&gt;
 gmake&lt;br /&gt;
 gmake install&lt;br /&gt;
 #test&lt;br /&gt;
 clon10&amp;gt; /usr/bin/tclsh8.4&lt;br /&gt;
 % package require mysqltcl&lt;br /&gt;
 3.05&lt;br /&gt;
 % exit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;When everything is compiled on one machine of particular flavor, run following commands on other machines of the same flavor:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/src/tcl8.4.13/unix&lt;br /&gt;
 gmake install&lt;br /&gt;
 cd /usr/local/src/tk8.4.13/unix&lt;br /&gt;
 gmake install&lt;br /&gt;
 cd /usr/local/src/tix-8.4.0&lt;br /&gt;
 gmake install&lt;br /&gt;
 cp demos/bitmaps/about.xpm /usr/lib/Tix8.4/bitmaps/&lt;br /&gt;
 cd /usr/local/src/expect-5.43&lt;br /&gt;
 gmake install&lt;br /&gt;
 cd /usr/local/src/blt2.4z&lt;br /&gt;
 gmake install&lt;br /&gt;
 cd /usr/local/src/itcl3.3&lt;br /&gt;
 gmake install&lt;br /&gt;
 cd /usr/local/src/itk3.3&lt;br /&gt;
 gmake install&lt;br /&gt;
 cd /usr/local/src/mysqltcl-3.05&lt;br /&gt;
 gmake install&lt;br /&gt;
 cd /usr/bin&lt;br /&gt;
 ln -s wish8.4 wish&lt;br /&gt;
&lt;br /&gt;
== RHEL5 ==&lt;br /&gt;
&lt;br /&gt;
Install following using &#039;&#039;yum&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 yum install tcl-devel tk-devel tix tix-devel expect expect-devel&lt;br /&gt;
&lt;br /&gt;
Install the rest from local sources:&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/src/tix-8.4.0&lt;br /&gt;
 cp demos/bitmaps/about.xpm /usr/lib/Tix8.4/bitmaps/&lt;br /&gt;
 cp tixwish /usr/bin&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/src/blt2.4z &lt;br /&gt;
 gmake install&lt;br /&gt;
    ./configure --prefix=/usr&lt;br /&gt;
    gmake&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/src/itcl3.3&lt;br /&gt;
 gmake install&lt;br /&gt;
    ./configure --prefix=/usr&lt;br /&gt;
    gmake&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/src/itk3.3&lt;br /&gt;
 gmake install&lt;br /&gt;
    ./configure --prefix=/usr&lt;br /&gt;
    gmake&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/src/mysqltcl-3.05&lt;br /&gt;
 gmake install&lt;br /&gt;
    ./configure --prefix=/usr&lt;br /&gt;
    gmake&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== RHEL6 ==&lt;br /&gt;
&lt;br /&gt;
Install following using &#039;&#039;yum&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 yum install tcl-devel tk-devel tix tix-devel expect expect-devel&lt;br /&gt;
&lt;br /&gt;
Install the rest from local sources:&lt;br /&gt;
&lt;br /&gt;
 ##cd /usr/local/src/tix-8.4.0&lt;br /&gt;
 ##cp demos/bitmaps/about.xpm /usr/lib64/tcl8.5/Tix8.4.3/bitmaps/&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/src/itcl3.4&lt;br /&gt;
 gmake install&lt;br /&gt;
 ln -s /usr/lib/itcl3.4 /usr/lib64/tcl8.5/itcl3.4&lt;br /&gt;
    ./configure --prefix=/usr&lt;br /&gt;
    gmake&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/src/itk3.3&lt;br /&gt;
 gmake install&lt;br /&gt;
 ln -s /usr/lib/itk3.3 /usr/lib64/tcl8.5/itk3.3&lt;br /&gt;
    ./configure --prefix=/usr&lt;br /&gt;
    gmake&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/src/mysqltcl-3.05&lt;br /&gt;
 gmake install&lt;br /&gt;
 ln -s /usr/lib/mysqltcl-3.05 /usr/lib64/tcl8.5/mysqltcl-3.05&lt;br /&gt;
    ./configure --prefix=/usr&lt;br /&gt;
    gmake&lt;/div&gt;</summary>
		<author><name>Boiarino</name></author>
	</entry>
	<entry>
		<id>https://clonwiki0.jlab.org/wiki/index.php?title=Tcl/Tk&amp;diff=8718</id>
		<title>Tcl/Tk</title>
		<link rel="alternate" type="text/html" href="https://clonwiki0.jlab.org/wiki/index.php?title=Tcl/Tk&amp;diff=8718"/>
		<updated>2026-03-23T14:53:49Z</updated>

		<summary type="html">&lt;p&gt;Boiarino: /* RHEL9 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== RHEL9 ==&lt;br /&gt;
&lt;br /&gt;
Install following using &#039;&#039;yum&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 yum install tcl-devel tk-devel tix-devel expect&lt;br /&gt;
&lt;br /&gt;
Install the rest from local sources:&lt;br /&gt;
 &lt;br /&gt;
 cd /usr/local/src/itcl4.2.3&lt;br /&gt;
 #./configure&lt;br /&gt;
 #make all&lt;br /&gt;
 make install&lt;br /&gt;
 ln -s /usr/lib/itcl4.2.3 /usr/lib64/tcl8.6/itcl4.2.3&lt;br /&gt;
 cd /usr/local/src/itk4.1.0&lt;br /&gt;
 #./configure&lt;br /&gt;
 #make&lt;br /&gt;
 make install&lt;br /&gt;
 ln -s /usr/lib/itk4.1.0 /usr/lib64/tcl8.6/itk4.1.0&lt;br /&gt;
 cd /usr/local/src/mysqltcl-3.052&lt;br /&gt;
 #./configure --prefix=/usr --with-tcl=/usr/lib64 --with-mysql-lib=/usr/lib64/mysql&lt;br /&gt;
 #make&lt;br /&gt;
 make install&lt;br /&gt;
 ln -s /usr/lib64/mysqltcl-3.052 /usr/lib64/tcl8.6/mysqltcl-3.052&lt;br /&gt;
&lt;br /&gt;
== RHEL7 ==&lt;br /&gt;
&lt;br /&gt;
Install following using &#039;&#039;yum&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 yum install tix itcl itk&lt;br /&gt;
&lt;br /&gt;
Install the rest from local sources:&lt;br /&gt;
 &lt;br /&gt;
 cd /usr/local/src/mysqltcl-3.052&lt;br /&gt;
 ./configure --prefix=/usr --with-tcl=/usr/lib64 --with-mysql-lib=/usr/lib64/mysql&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
 ln -s /usr/lib/mysqltcl-3.052 /usr/lib64/tcl8.5/mysqltcl-3.052&lt;br /&gt;
&lt;br /&gt;
== General Info ==&lt;br /&gt;
&lt;br /&gt;
Basic Tcl/Tk must be installed to satisfy CODA references. Following packages were downloaded to &#039;&#039;/usr/local/downloads&#039;&#039; from the web:&lt;br /&gt;
 tcl8.4.13&lt;br /&gt;
 tk8.4.13&lt;br /&gt;
 tix-8.4.0&lt;br /&gt;
 expect-5.43&lt;br /&gt;
 blt2.4z&lt;br /&gt;
 itcl&lt;br /&gt;
 itk&lt;br /&gt;
 &amp;lt;&amp;lt;&amp;lt; DO NOT DO IT !!! tcl-dp &amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
 &amp;lt;&amp;lt;&amp;lt; DO NOT DO IT !!! tcl-debug &amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
 mysqltcl&lt;br /&gt;
&lt;br /&gt;
Installation instructions:&lt;br /&gt;
&lt;br /&gt;
* tcl&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/src/tcl8.4.13/unix&lt;br /&gt;
 ./configure --prefix=/usr --enable-shared&lt;br /&gt;
 gmake&lt;br /&gt;
 gmake install&lt;br /&gt;
&lt;br /&gt;
* tk&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/src/tk8.4.13/unix&lt;br /&gt;
 ./configure --prefix=/usr --enable-shared&lt;br /&gt;
 gmake&lt;br /&gt;
 gmake install&lt;br /&gt;
&lt;br /&gt;
* tix&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/src/tix-8.4.0&lt;br /&gt;
&lt;br /&gt;
In file Makefile.in:&lt;br /&gt;
&lt;br /&gt;
1. Replace &#039;pkglibdir&#039; by &#039;libdir&#039; in 4 places in following fragment:&lt;br /&gt;
&lt;br /&gt;
 install-lib-binaries:&lt;br /&gt;
        @mkdir -p $(DESTDIR)$(pkglibdir)&lt;br /&gt;
        @list=&#039;$(lib_BINARIES)&#039;; for p in $$list; do \&lt;br /&gt;
          if test -f $$p; then \&lt;br /&gt;
            echo &amp;quot; $(INSTALL_PROGRAM) $$p $(DESTDIR)$(libdir)/$$p&amp;quot;; \&lt;br /&gt;
            $(INSTALL_PROGRAM) $$p $(DESTDIR)$(libdir)/$$p; \&lt;br /&gt;
            echo &amp;quot; $(RANLIB) $(DESTDIR)$(libdir)/$$p&amp;quot;; \&lt;br /&gt;
            $(RANLIB) $(DESTDIR)$(libdir)/$$p; \&lt;br /&gt;
            ....................................&lt;br /&gt;
&lt;br /&gt;
to enforce libTix8.4.so installation into ${exec_prefix}/lib/,&lt;br /&gt;
not into ${exec_prefix}/lib/Tix8.4/&lt;br /&gt;
&lt;br /&gt;
2. Add following fragment to enforce &#039;tixwish&#039; building:&lt;br /&gt;
&lt;br /&gt;
 WISH_OBJS = tixAppInit.o&lt;br /&gt;
 tixwish: $(WISH_OBJS) $(PKG_LIB_FILE)&lt;br /&gt;
        ${CC} ${CFLAGS} ${LDFLAGS} $(WISH_OBJS) -L./ -lTix8.4 -ltk8.4 -ltcl8.4 \&lt;br /&gt;
                $(CC_SEARCH_FLAGS) -o tixwish&lt;br /&gt;
&lt;br /&gt;
3. Add &#039;tixwish&#039; target to the following line:&lt;br /&gt;
&lt;br /&gt;
 binaries: $(BINARIES) pkgIndex.tcl tixwish&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. Add &#039;tixwish&#039; line in following fragment:&lt;br /&gt;
&lt;br /&gt;
 install-binaries: binaries install-lib-binaries install-bin-binaries&lt;br /&gt;
        @mkdir -p $(DESTDIR)$(pkglibdir)&lt;br /&gt;
        $(INSTALL_DATA) pkgIndex.tcl $(DESTDIR)$(pkglibdir)&lt;br /&gt;
        $(INSTALL_PROGRAM) tixwish $(DESTDIR)$(bindir)&lt;br /&gt;
        ...........................................&lt;br /&gt;
&lt;br /&gt;
 ./configure --prefix=/usr --enable-shared&lt;br /&gt;
 gmake&lt;br /&gt;
 gmake install&lt;br /&gt;
 cp demos/bitmaps/about.xpm /usr/lib/Tix8.4/bitmaps/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* expect&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/src/expect-5.43&lt;br /&gt;
 ./configure --prefix=/usr --with-tcl=/usr/lib --with-tclinclude=/usr/local/src/tcl8.4.13/generic --enable-shared&lt;br /&gt;
 gmake&lt;br /&gt;
 gmake install&lt;br /&gt;
&lt;br /&gt;
* blt&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/src/blt2.4z&lt;br /&gt;
 ./configure \--with-tcl=/usr/local/src/tcl8.4.13/unix \&lt;br /&gt;
   --with-tk=/usr/local/src/tk8.4.13/unix \&lt;br /&gt;
   --with-tclincls=/usr/local/src/tcl8.4.13/generic \&lt;br /&gt;
   --with-tkincls=/usr/local/src/tk8.4.13/generic \&lt;br /&gt;
   --prefix=/usr&lt;br /&gt;
 gmake&lt;br /&gt;
 gmake install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* symbolic links&lt;br /&gt;
&lt;br /&gt;
 cd /usr/bin&lt;br /&gt;
 ln -s wish8.4 wish&lt;br /&gt;
&lt;br /&gt;
* itcl&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/src/itcl3.3&lt;br /&gt;
 ./configure --with-tcl=/usr/local/src/tcl8.4.13/unix --prefix=/usr &lt;br /&gt;
 gmake&lt;br /&gt;
 gmake install&lt;br /&gt;
 #test&lt;br /&gt;
 clon10:itcl3.3&amp;gt; /usr/bin/tclsh8.4 &lt;br /&gt;
 % package require Itcl&lt;br /&gt;
 3.3&lt;br /&gt;
 % exit&lt;br /&gt;
&lt;br /&gt;
* itk&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/src/itk3.3&lt;br /&gt;
 ./configure --with-tcl=/usr/local/src/tcl8.4.13/unix \&lt;br /&gt;
  --with-tk=/usr/local/src/tk8.4.13/unix \&lt;br /&gt;
  --with-itcl=/usr/local/src/itcl3.3 \&lt;br /&gt;
  --prefix=/usr&lt;br /&gt;
 gmake&lt;br /&gt;
 gmake install&lt;br /&gt;
 #test&lt;br /&gt;
 clon10:src&amp;gt; /usr/bin/tclsh8.4&lt;br /&gt;
 % package require Itk&lt;br /&gt;
 3.3&lt;br /&gt;
 % exit&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;lt;&amp;lt; DO NOT DO IT !!! * tcl-dp&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/src/tcl-dp.4.0.b2/unix&lt;br /&gt;
 ./configure --with-tcl=/usr/local/src/tcl8.4.13/unix --prefix=/usr&lt;br /&gt;
 in generic/dpInit.c:&lt;br /&gt;
   /*sergey&lt;br /&gt;
   if (TclHasSockets(interp) != TCL_OK) {&lt;br /&gt;
   return TCL_ERROR;&lt;br /&gt;
   }&lt;br /&gt;
   */&lt;br /&gt;
 gmake&lt;br /&gt;
 ###gmake tests&lt;br /&gt;
 cd ..&lt;br /&gt;
 /usr/bin/wish teki.tcl&lt;br /&gt;
 ###&#039;File | Install&#039;.  Select dp.tek, click &#039;Open&#039;, select &#039;Custom&#039;,&lt;br /&gt;
 choose &#039;Solaris&#039; (or whatever), root directory for code files &#039;/usr/lib/tcl8.4&#039;&lt;br /&gt;
 cd /usr/lib/tcl8.4/dp4.0/library/&lt;br /&gt;
 chmod 755 *&lt;br /&gt;
 All DP scripts&lt;br /&gt;
 should have &amp;quot;package require dp&amp;quot; as their first line which will&lt;br /&gt;
 automatically load the DP module if it has not been loaded already.&lt;br /&gt;
 #test&lt;br /&gt;
 /usr/bin/tclsh8.4&lt;br /&gt;
 %  package require dp&lt;br /&gt;
 4.0&lt;br /&gt;
 % exit&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;lt;&amp;lt; DO NOT DO IT !!! * tcl-debug&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/src/tcl-debug-2.0&lt;br /&gt;
 ./configure --prefix=/usr --enable-shared --with-tcl=/usr/local/src/tcl8.4.13/unix&lt;br /&gt;
 gmake&lt;br /&gt;
 gmake install&lt;br /&gt;
&lt;br /&gt;
* mysqltcl&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/src/mysqltcl-3.05&lt;br /&gt;
 ./configure --with-tcl=/usr/local/src/tcl8.4.13/unix \&lt;br /&gt;
   --with-tclinclude=/usr/local/src/tcl8.4.13/generic \&lt;br /&gt;
   --with-mysql-include=/usr/include/mysql \&lt;br /&gt;
   --with-mysql-lib=/usr/lib/mysql \&lt;br /&gt;
   --prefix=/usr&lt;br /&gt;
 gmake&lt;br /&gt;
 gmake install&lt;br /&gt;
 #test&lt;br /&gt;
 clon10&amp;gt; /usr/bin/tclsh8.4&lt;br /&gt;
 % package require mysqltcl&lt;br /&gt;
 3.05&lt;br /&gt;
 % exit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;When everything is compiled on one machine of particular flavor, run following commands on other machines of the same flavor:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/src/tcl8.4.13/unix&lt;br /&gt;
 gmake install&lt;br /&gt;
 cd /usr/local/src/tk8.4.13/unix&lt;br /&gt;
 gmake install&lt;br /&gt;
 cd /usr/local/src/tix-8.4.0&lt;br /&gt;
 gmake install&lt;br /&gt;
 cp demos/bitmaps/about.xpm /usr/lib/Tix8.4/bitmaps/&lt;br /&gt;
 cd /usr/local/src/expect-5.43&lt;br /&gt;
 gmake install&lt;br /&gt;
 cd /usr/local/src/blt2.4z&lt;br /&gt;
 gmake install&lt;br /&gt;
 cd /usr/local/src/itcl3.3&lt;br /&gt;
 gmake install&lt;br /&gt;
 cd /usr/local/src/itk3.3&lt;br /&gt;
 gmake install&lt;br /&gt;
 cd /usr/local/src/mysqltcl-3.05&lt;br /&gt;
 gmake install&lt;br /&gt;
 cd /usr/bin&lt;br /&gt;
 ln -s wish8.4 wish&lt;br /&gt;
&lt;br /&gt;
== RHEL5 ==&lt;br /&gt;
&lt;br /&gt;
Install following using &#039;&#039;yum&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 yum install tcl-devel tk-devel tix tix-devel expect expect-devel&lt;br /&gt;
&lt;br /&gt;
Install the rest from local sources:&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/src/tix-8.4.0&lt;br /&gt;
 cp demos/bitmaps/about.xpm /usr/lib/Tix8.4/bitmaps/&lt;br /&gt;
 cp tixwish /usr/bin&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/src/blt2.4z &lt;br /&gt;
 gmake install&lt;br /&gt;
    ./configure --prefix=/usr&lt;br /&gt;
    gmake&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/src/itcl3.3&lt;br /&gt;
 gmake install&lt;br /&gt;
    ./configure --prefix=/usr&lt;br /&gt;
    gmake&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/src/itk3.3&lt;br /&gt;
 gmake install&lt;br /&gt;
    ./configure --prefix=/usr&lt;br /&gt;
    gmake&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/src/mysqltcl-3.05&lt;br /&gt;
 gmake install&lt;br /&gt;
    ./configure --prefix=/usr&lt;br /&gt;
    gmake&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== RHEL6 ==&lt;br /&gt;
&lt;br /&gt;
Install following using &#039;&#039;yum&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 yum install tcl-devel tk-devel tix tix-devel expect expect-devel&lt;br /&gt;
&lt;br /&gt;
Install the rest from local sources:&lt;br /&gt;
&lt;br /&gt;
 ##cd /usr/local/src/tix-8.4.0&lt;br /&gt;
 ##cp demos/bitmaps/about.xpm /usr/lib64/tcl8.5/Tix8.4.3/bitmaps/&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/src/itcl3.4&lt;br /&gt;
 gmake install&lt;br /&gt;
 ln -s /usr/lib/itcl3.4 /usr/lib64/tcl8.5/itcl3.4&lt;br /&gt;
    ./configure --prefix=/usr&lt;br /&gt;
    gmake&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/src/itk3.3&lt;br /&gt;
 gmake install&lt;br /&gt;
 ln -s /usr/lib/itk3.3 /usr/lib64/tcl8.5/itk3.3&lt;br /&gt;
    ./configure --prefix=/usr&lt;br /&gt;
    gmake&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/src/mysqltcl-3.05&lt;br /&gt;
 gmake install&lt;br /&gt;
 ln -s /usr/lib/mysqltcl-3.05 /usr/lib64/tcl8.5/mysqltcl-3.05&lt;br /&gt;
    ./configure --prefix=/usr&lt;br /&gt;
    gmake&lt;/div&gt;</summary>
		<author><name>Boiarino</name></author>
	</entry>
	<entry>
		<id>https://clonwiki0.jlab.org/wiki/index.php?title=Nagios&amp;diff=8717</id>
		<title>Nagios</title>
		<link rel="alternate" type="text/html" href="https://clonwiki0.jlab.org/wiki/index.php?title=Nagios&amp;diff=8717"/>
		<updated>2026-03-21T13:51:24Z</updated>

		<summary type="html">&lt;p&gt;Boiarino: /* RHEL9 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== RHEL9 ==&lt;br /&gt;
&lt;br /&gt;
 yum install nagios&lt;br /&gt;
&lt;br /&gt;
 systemctl start httpd&lt;br /&gt;
 systemctl start nagios&lt;br /&gt;
&lt;br /&gt;
Config file is &#039;&#039;/etc/nagios/nagios.cfg&#039;&#039; and underlyiong directories.&lt;br /&gt;
&lt;br /&gt;
Access from web browser:&lt;br /&gt;
&lt;br /&gt;
 http://&amp;lt;machine_name&amp;gt;.jlab.org/nagios&lt;br /&gt;
 default user/pass: nagiosadmin/nagiosadmin&lt;br /&gt;
&lt;br /&gt;
== old stuff ==&lt;br /&gt;
&lt;br /&gt;
Nagios is main monitoring tool for CLON cluster.&lt;br /&gt;
&lt;br /&gt;
Download from web following files and place them to &#039;/usr/local/downloads&#039;:&lt;br /&gt;
&lt;br /&gt;
  nagios-2.6.tar.gz&lt;br /&gt;
  nagios-images_0.3.tar.gz&lt;br /&gt;
  nagios-plugins-1.4.5.tar.gz&lt;br /&gt;
  nagiosmib-1.0.0.tar.gz (?????????)&lt;br /&gt;
&lt;br /&gt;
  create user &#039;nagios&#039;, private group &#039;nagios&#039;&lt;br /&gt;
  mkdir /www/nagios2.6&lt;br /&gt;
  chown nagios.nagios /www/nagios2.6&lt;br /&gt;
&lt;br /&gt;
Add command file group and put appropriate users in (we assume that apache is running as user &#039;apache&#039;):&lt;br /&gt;
&lt;br /&gt;
  /usr/sbin/groupadd nagcmd&lt;br /&gt;
  /usr/sbin/usermod -G nagcmd apache&lt;br /&gt;
  /usr/sbin/usermod -G nagcmd nagios&lt;br /&gt;
  to check, see file /etc/group&lt;br /&gt;
&lt;br /&gt;
Build and install:&lt;br /&gt;
&lt;br /&gt;
  cp /usr/local/downloads/nagios-2.6.tar.gz /usr/local/src&lt;br /&gt;
  cd /usr/local/src&lt;br /&gt;
  gunzip nagios-2.6.tar.gz&lt;br /&gt;
  tar xvf nagios-2.6.tar&lt;br /&gt;
  cd &#039;/usr/local/src/nagios-2.6&#039;&lt;br /&gt;
                   NO !!! su nagios&lt;br /&gt;
  ./configure --prefix=/www/nagios2.6 --with-cgiurl=/nagios/cgi-bin --with-htmurl=/nagios --with-nagios-user=nagios --with-nagios-group=nagios --with-command-group=nagcmd&lt;br /&gt;
      ??did on RHEL6:  ./configure --prefix=/www/nagios-3.4.1 --with-cgiurl=/nagios/cgi-bin --with-htmurl=/nagios --with-nagios-user=nagios --with-nagios-group=nagcmd --with-command-group=nagcmd&lt;br /&gt;
  make all&lt;br /&gt;
  make install&lt;br /&gt;
&lt;br /&gt;
Install init script /etc/init.d/nagios:&lt;br /&gt;
&lt;br /&gt;
  make install-init (as &#039;root&#039; !!!)&lt;br /&gt;
&lt;br /&gt;
Modify /etc/init.d/nagios script as following (bug ?):&lt;br /&gt;
&lt;br /&gt;
  ###NagiosRunFile=${prefix}/var/nagios.lock&lt;br /&gt;
  NagiosRunFile=${prefix}/var/run/nagios.pid&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  #to install sample /etc directory&lt;br /&gt;
  make install-config&lt;br /&gt;
&lt;br /&gt;
  #???This installs and configures permissions on the&lt;br /&gt;
  #???directory for holding the external command file&lt;br /&gt;
  make install-commandmode&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Install plugins and nrpe -  see corresponding sections.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fix apache configuration file:&lt;br /&gt;
&lt;br /&gt;
  add contents of /usr/local/src/nagios-2.6/sample-config/httpd.conf&lt;br /&gt;
  to /www/apache2.2.3/conf/httpd.conf&lt;br /&gt;
&lt;br /&gt;
Copy &#039;etc&#039; directory from old Nagios (if any) to /www/nagios2.6. Go through files cgi.cfg, nagios.cfg and private/*&lt;br /&gt;
and fix pathes making them point to /www/nagios2.6.&lt;br /&gt;
&lt;br /&gt;
Add several directories for output files:&lt;br /&gt;
&lt;br /&gt;
  mkdir /www/nagios2.6/var/log&lt;br /&gt;
  mkdir /www/nagios2.6/var/run&lt;br /&gt;
  mkdir /www/nagios2.6/var/rw (?????)&lt;br /&gt;
&lt;br /&gt;
Install icons:&lt;br /&gt;
&lt;br /&gt;
  cd /usr/local/src/nagios-images-0.3/base&lt;br /&gt;
  cp * /www/nagios2.6/share/images/logos&lt;br /&gt;
&lt;br /&gt;
To check configuration run following commands:&lt;br /&gt;
&lt;br /&gt;
  /www/nagios2.6/bin/nagios -v /www/nagios2.6/etc/nagios.cfg&lt;br /&gt;
&lt;br /&gt;
To start/stop (restart need to be fixed ..):&lt;br /&gt;
&lt;br /&gt;
  /etc/init.d/nagios start/stop&lt;br /&gt;
&lt;br /&gt;
Add Nagios to services:&lt;br /&gt;
&lt;br /&gt;
  chkconfig --add nagios&lt;br /&gt;
  chkconfig --level 3 nagios off&lt;br /&gt;
  chkconfig --level 4 nagios off&lt;br /&gt;
  chkconfig --list nagios&lt;br /&gt;
&lt;br /&gt;
NOTE: following command was executed to let browser to disable host checks; it should be investigated ...&lt;br /&gt;
&lt;br /&gt;
  chown nagios:nagcmd /www/nagios2.6/var/log/nagios.cmd&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ADDITIONAL INFO (COPIED FROM http://klickitat.ee.washington.edu/medg/software/nagios-install-notes.txt):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
some notes on installing nagios - these are a supplement to the basic&lt;br /&gt;
nagios documentation that comes with the software:&lt;br /&gt;
&lt;br /&gt;
Download and install the nagios and nagios-plugin packages. For whatever reason&lt;br /&gt;
www.nagios.org seems to be hosed now (7/23/2004), but look on google. There&lt;br /&gt;
is also sourceforge.nagios.net, which seems to be another nagios homepage.&lt;br /&gt;
&lt;br /&gt;
Create a nagios user.  Compile and install the packages as described in the &lt;br /&gt;
documentation.  Redhat&lt;br /&gt;
has all necessary libraries already installed.  I just went with the defaults&lt;br /&gt;
in the compilation.  The default is for nagios to install itself in &lt;br /&gt;
/usr/local/nagios; everything should be owned by user nagios. &lt;br /&gt;
&lt;br /&gt;
To enable the web interface, edit httpd.conf to add the Alias and &lt;br /&gt;
ScriptAlias directives as &lt;br /&gt;
described in the nagios documentation.  This works for both apache 1.3 and&lt;br /&gt;
apache 2.0.  Restart apache.  At this point you should be able to go to &lt;br /&gt;
http://www.whatever/nagios/ and see the nagios page and access the&lt;br /&gt;
documentation.  CGIs probably won&#039;t work.&lt;br /&gt;
&lt;br /&gt;
You need to set up the config files; this is the real heart of installing &lt;br /&gt;
nagios and unfortunately is much easier to show than to describe.  The first&lt;br /&gt;
step is to copy the *.cfg-sample files that should be in /usr/local/nagios/etc&lt;br /&gt;
to *.cfg.  Then you need to edit these files to describe your setup.&lt;br /&gt;
&lt;br /&gt;
Basically, hosts.cfg describes the hosts you want to monitor, services.cfg &lt;br /&gt;
describes the services you want to monitor on each host, checkcommands.cfg&lt;br /&gt;
is the check commands used by services.cfg to check the services; if you want&lt;br /&gt;
to check a service you probably have to add a command to do so; contacts.cfg&lt;br /&gt;
is the people who will be contacted in case of a problem, contactgroups&lt;br /&gt;
is the groups of people, hostgroups.cfg is the groups of hosts (rrsl-machines,&lt;br /&gt;
for example).  nagios.cfg is the master config file.  Probably you can get&lt;br /&gt;
by just by copying and pasting the stuff already in these files and tweaking&lt;br /&gt;
it.&lt;br /&gt;
&lt;br /&gt;
To add a new machine you will need to edit hosts.cfg (add the machine),&lt;br /&gt;
hostgroups.cfg (put it in a hostgroup), services.cfg (add the services to&lt;br /&gt;
be checked on the machine).&lt;br /&gt;
&lt;br /&gt;
To add a new administrator, you will need to edit contacts.cfg (add the new &lt;br /&gt;
person) and contactgroups.cfg (put them in a contact group or create one).&lt;br /&gt;
&lt;br /&gt;
In misccommands.cfg I needed to change /usr/bin/mail to /bin/mail on redhat&lt;br /&gt;
-- but not on slackware!  Otherwise it was not able to mail messages.&lt;br /&gt;
&lt;br /&gt;
At this point you can check your config using the &lt;br /&gt;
&#039;/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg&#039; command,&lt;br /&gt;
which does a check of the configuration and will warn if there are errors.&lt;br /&gt;
Fix the errors and repeat until it is happy.&lt;br /&gt;
&lt;br /&gt;
Now you need to enable authorization so that the cgi scripts will work.  To&lt;br /&gt;
do this first create the &lt;br /&gt;
.htaccess file in the nagios/sbin directory as described in the &lt;br /&gt;
documentation - it must be world-readable.&lt;br /&gt;
&lt;br /&gt;
Next create the htpasswd.users file in the nagios/etc directory as described in&lt;br /&gt;
the documentation - it must be world-readable!  I added only one user: rrsl&lt;br /&gt;
&lt;br /&gt;
At this point you should be able to start nagios using:&lt;br /&gt;
/usr/local/nagios/bin/nagios /usr/local/nagios/etc/nagios.cfg&lt;br /&gt;
&lt;br /&gt;
After nagios is started you should be able to go to the web page and &lt;br /&gt;
use the cgis to display info.  The final step is enabling the external command&lt;br /&gt;
cgis, which let you change the behavior of nagios from the web.  To do this&lt;br /&gt;
you have to follow the steps in the documentation to enable external commands&lt;br /&gt;
This involves enabling external commands in the config file and specifying&lt;br /&gt;
an external commands file....&lt;br /&gt;
&lt;br /&gt;
The permissions on the file seem to be a source of problems.&lt;br /&gt;
To enable external commands you have to first create a group containing &lt;br /&gt;
the nagios user and the user httpd runs as (apache for us).  Then you create&lt;br /&gt;
the directory /usr/local/nagios/var/rw with permissions:&lt;br /&gt;
drwxrwsr-x    2 nagios   nagioscmd     4096 Aug  3 13:55 rw&lt;br /&gt;
&lt;br /&gt;
That&#039;s rwx permissions for the user and rws permissions for the group&lt;br /&gt;
chmod gu+rwx nagios.nagioscmd rw&lt;br /&gt;
chmod g+s rw&lt;br /&gt;
Then you have to restart both apache and nagios, or it doesn&#039;t work!&lt;br /&gt;
&lt;br /&gt;
The documentation describes some other gotchas..&lt;br /&gt;
&lt;br /&gt;
To run checks for services on remote machines, you need to set up ssh to&lt;br /&gt;
log in without a password.  To do this run &lt;br /&gt;
$ ssh-keygen -t rsa&lt;br /&gt;
to create a public/private key pair.  copy the public key into the &lt;br /&gt;
~/.ssh/authorized_keys file of the user nagios on the remote host.  This file&lt;br /&gt;
must only be rw by nagios or ssh will not work.  The directory .ssh must also&lt;br /&gt;
be only rwx by nagios.  Then you should be able &lt;br /&gt;
to ssh to the remote host as nagios without giving a password.&lt;br /&gt;
&lt;br /&gt;
Copy the plugins you want to run on the remote host to the remote host, &lt;br /&gt;
and then set up checks in checkcommands.cfg, and services.cfg.  See the &lt;br /&gt;
check-host-radar command for an example.  The plugins can be any kind of&lt;br /&gt;
program.&lt;br /&gt;
&lt;br /&gt;
Many plugins were timing out after ten seconds when checking on heimdal and&lt;br /&gt;
umtanum.  Although there claimed to be a command line option to change this,&lt;br /&gt;
in practice there was not.  Therefore, I changed the source to set the timeout&lt;br /&gt;
to 30sec and recompiled the plugins.  This appears to work. (7/26/04)&lt;br /&gt;
&lt;br /&gt;
nagios comes with the file /etc/rc.d/init.d/nagios, which is a script for&lt;br /&gt;
starting nagios from rc.local or from the command line as root (or by&lt;br /&gt;
sudo).  This seems to be the best way of starting or stopping the program.&lt;br /&gt;
&lt;br /&gt;
sudo /etc/rc.d/init.d/nagios start&lt;br /&gt;
sudo /etc/rc.d/init.d/nagios stop&lt;br /&gt;
etc.&lt;br /&gt;
&lt;br /&gt;
nagios has the ability to acknowledge a host condition, so if a host&lt;br /&gt;
is down, you can &amp;quot;acknowledge&amp;quot; through the web interface, and it will&lt;br /&gt;
stop sending email unless the host changes state.  This is useful.&lt;br /&gt;
You can also disable notification for a service, which is handy&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Adding a user to the web interface:&lt;br /&gt;
&lt;br /&gt;
 1) edit cgi.cfg to add the user to the actions that you want them to do&lt;br /&gt;
 2) edit sbin/.htaccess to add the user to the list of ok users, eg:&lt;br /&gt;
    require user rrsl radar&lt;br /&gt;
    for users rrsl and radar being able to access the web interface&lt;br /&gt;
    Keep in mind this file must be world readable...&lt;br /&gt;
 3) issue htpasswd /usr/local/nagios/etc/htpasswd.users &amp;lt;new user&amp;gt; as root, to&lt;br /&gt;
    create the new user and password&lt;br /&gt;
 4) stop nagios&lt;br /&gt;
 5) restart the web server&lt;br /&gt;
 6  start nagios&lt;br /&gt;
&lt;br /&gt;
It should work, you should be able to log in and do stuff.&lt;/div&gt;</summary>
		<author><name>Boiarino</name></author>
	</entry>
	<entry>
		<id>https://clonwiki0.jlab.org/wiki/index.php?title=Nagios&amp;diff=8716</id>
		<title>Nagios</title>
		<link rel="alternate" type="text/html" href="https://clonwiki0.jlab.org/wiki/index.php?title=Nagios&amp;diff=8716"/>
		<updated>2026-03-21T13:42:45Z</updated>

		<summary type="html">&lt;p&gt;Boiarino: /* RHEL9 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== RHEL9 ==&lt;br /&gt;
&lt;br /&gt;
 yum install nagios&lt;br /&gt;
&lt;br /&gt;
 systemctl start httpd&lt;br /&gt;
 systemctl start nagios&lt;br /&gt;
&lt;br /&gt;
Config file is &#039;&#039;/etc/nagios/nagios.cfg&#039;&#039; and underlyiong directories.&lt;br /&gt;
&lt;br /&gt;
== old stuff ==&lt;br /&gt;
&lt;br /&gt;
Nagios is main monitoring tool for CLON cluster.&lt;br /&gt;
&lt;br /&gt;
Download from web following files and place them to &#039;/usr/local/downloads&#039;:&lt;br /&gt;
&lt;br /&gt;
  nagios-2.6.tar.gz&lt;br /&gt;
  nagios-images_0.3.tar.gz&lt;br /&gt;
  nagios-plugins-1.4.5.tar.gz&lt;br /&gt;
  nagiosmib-1.0.0.tar.gz (?????????)&lt;br /&gt;
&lt;br /&gt;
  create user &#039;nagios&#039;, private group &#039;nagios&#039;&lt;br /&gt;
  mkdir /www/nagios2.6&lt;br /&gt;
  chown nagios.nagios /www/nagios2.6&lt;br /&gt;
&lt;br /&gt;
Add command file group and put appropriate users in (we assume that apache is running as user &#039;apache&#039;):&lt;br /&gt;
&lt;br /&gt;
  /usr/sbin/groupadd nagcmd&lt;br /&gt;
  /usr/sbin/usermod -G nagcmd apache&lt;br /&gt;
  /usr/sbin/usermod -G nagcmd nagios&lt;br /&gt;
  to check, see file /etc/group&lt;br /&gt;
&lt;br /&gt;
Build and install:&lt;br /&gt;
&lt;br /&gt;
  cp /usr/local/downloads/nagios-2.6.tar.gz /usr/local/src&lt;br /&gt;
  cd /usr/local/src&lt;br /&gt;
  gunzip nagios-2.6.tar.gz&lt;br /&gt;
  tar xvf nagios-2.6.tar&lt;br /&gt;
  cd &#039;/usr/local/src/nagios-2.6&#039;&lt;br /&gt;
                   NO !!! su nagios&lt;br /&gt;
  ./configure --prefix=/www/nagios2.6 --with-cgiurl=/nagios/cgi-bin --with-htmurl=/nagios --with-nagios-user=nagios --with-nagios-group=nagios --with-command-group=nagcmd&lt;br /&gt;
      ??did on RHEL6:  ./configure --prefix=/www/nagios-3.4.1 --with-cgiurl=/nagios/cgi-bin --with-htmurl=/nagios --with-nagios-user=nagios --with-nagios-group=nagcmd --with-command-group=nagcmd&lt;br /&gt;
  make all&lt;br /&gt;
  make install&lt;br /&gt;
&lt;br /&gt;
Install init script /etc/init.d/nagios:&lt;br /&gt;
&lt;br /&gt;
  make install-init (as &#039;root&#039; !!!)&lt;br /&gt;
&lt;br /&gt;
Modify /etc/init.d/nagios script as following (bug ?):&lt;br /&gt;
&lt;br /&gt;
  ###NagiosRunFile=${prefix}/var/nagios.lock&lt;br /&gt;
  NagiosRunFile=${prefix}/var/run/nagios.pid&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  #to install sample /etc directory&lt;br /&gt;
  make install-config&lt;br /&gt;
&lt;br /&gt;
  #???This installs and configures permissions on the&lt;br /&gt;
  #???directory for holding the external command file&lt;br /&gt;
  make install-commandmode&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Install plugins and nrpe -  see corresponding sections.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fix apache configuration file:&lt;br /&gt;
&lt;br /&gt;
  add contents of /usr/local/src/nagios-2.6/sample-config/httpd.conf&lt;br /&gt;
  to /www/apache2.2.3/conf/httpd.conf&lt;br /&gt;
&lt;br /&gt;
Copy &#039;etc&#039; directory from old Nagios (if any) to /www/nagios2.6. Go through files cgi.cfg, nagios.cfg and private/*&lt;br /&gt;
and fix pathes making them point to /www/nagios2.6.&lt;br /&gt;
&lt;br /&gt;
Add several directories for output files:&lt;br /&gt;
&lt;br /&gt;
  mkdir /www/nagios2.6/var/log&lt;br /&gt;
  mkdir /www/nagios2.6/var/run&lt;br /&gt;
  mkdir /www/nagios2.6/var/rw (?????)&lt;br /&gt;
&lt;br /&gt;
Install icons:&lt;br /&gt;
&lt;br /&gt;
  cd /usr/local/src/nagios-images-0.3/base&lt;br /&gt;
  cp * /www/nagios2.6/share/images/logos&lt;br /&gt;
&lt;br /&gt;
To check configuration run following commands:&lt;br /&gt;
&lt;br /&gt;
  /www/nagios2.6/bin/nagios -v /www/nagios2.6/etc/nagios.cfg&lt;br /&gt;
&lt;br /&gt;
To start/stop (restart need to be fixed ..):&lt;br /&gt;
&lt;br /&gt;
  /etc/init.d/nagios start/stop&lt;br /&gt;
&lt;br /&gt;
Add Nagios to services:&lt;br /&gt;
&lt;br /&gt;
  chkconfig --add nagios&lt;br /&gt;
  chkconfig --level 3 nagios off&lt;br /&gt;
  chkconfig --level 4 nagios off&lt;br /&gt;
  chkconfig --list nagios&lt;br /&gt;
&lt;br /&gt;
NOTE: following command was executed to let browser to disable host checks; it should be investigated ...&lt;br /&gt;
&lt;br /&gt;
  chown nagios:nagcmd /www/nagios2.6/var/log/nagios.cmd&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ADDITIONAL INFO (COPIED FROM http://klickitat.ee.washington.edu/medg/software/nagios-install-notes.txt):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
some notes on installing nagios - these are a supplement to the basic&lt;br /&gt;
nagios documentation that comes with the software:&lt;br /&gt;
&lt;br /&gt;
Download and install the nagios and nagios-plugin packages. For whatever reason&lt;br /&gt;
www.nagios.org seems to be hosed now (7/23/2004), but look on google. There&lt;br /&gt;
is also sourceforge.nagios.net, which seems to be another nagios homepage.&lt;br /&gt;
&lt;br /&gt;
Create a nagios user.  Compile and install the packages as described in the &lt;br /&gt;
documentation.  Redhat&lt;br /&gt;
has all necessary libraries already installed.  I just went with the defaults&lt;br /&gt;
in the compilation.  The default is for nagios to install itself in &lt;br /&gt;
/usr/local/nagios; everything should be owned by user nagios. &lt;br /&gt;
&lt;br /&gt;
To enable the web interface, edit httpd.conf to add the Alias and &lt;br /&gt;
ScriptAlias directives as &lt;br /&gt;
described in the nagios documentation.  This works for both apache 1.3 and&lt;br /&gt;
apache 2.0.  Restart apache.  At this point you should be able to go to &lt;br /&gt;
http://www.whatever/nagios/ and see the nagios page and access the&lt;br /&gt;
documentation.  CGIs probably won&#039;t work.&lt;br /&gt;
&lt;br /&gt;
You need to set up the config files; this is the real heart of installing &lt;br /&gt;
nagios and unfortunately is much easier to show than to describe.  The first&lt;br /&gt;
step is to copy the *.cfg-sample files that should be in /usr/local/nagios/etc&lt;br /&gt;
to *.cfg.  Then you need to edit these files to describe your setup.&lt;br /&gt;
&lt;br /&gt;
Basically, hosts.cfg describes the hosts you want to monitor, services.cfg &lt;br /&gt;
describes the services you want to monitor on each host, checkcommands.cfg&lt;br /&gt;
is the check commands used by services.cfg to check the services; if you want&lt;br /&gt;
to check a service you probably have to add a command to do so; contacts.cfg&lt;br /&gt;
is the people who will be contacted in case of a problem, contactgroups&lt;br /&gt;
is the groups of people, hostgroups.cfg is the groups of hosts (rrsl-machines,&lt;br /&gt;
for example).  nagios.cfg is the master config file.  Probably you can get&lt;br /&gt;
by just by copying and pasting the stuff already in these files and tweaking&lt;br /&gt;
it.&lt;br /&gt;
&lt;br /&gt;
To add a new machine you will need to edit hosts.cfg (add the machine),&lt;br /&gt;
hostgroups.cfg (put it in a hostgroup), services.cfg (add the services to&lt;br /&gt;
be checked on the machine).&lt;br /&gt;
&lt;br /&gt;
To add a new administrator, you will need to edit contacts.cfg (add the new &lt;br /&gt;
person) and contactgroups.cfg (put them in a contact group or create one).&lt;br /&gt;
&lt;br /&gt;
In misccommands.cfg I needed to change /usr/bin/mail to /bin/mail on redhat&lt;br /&gt;
-- but not on slackware!  Otherwise it was not able to mail messages.&lt;br /&gt;
&lt;br /&gt;
At this point you can check your config using the &lt;br /&gt;
&#039;/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg&#039; command,&lt;br /&gt;
which does a check of the configuration and will warn if there are errors.&lt;br /&gt;
Fix the errors and repeat until it is happy.&lt;br /&gt;
&lt;br /&gt;
Now you need to enable authorization so that the cgi scripts will work.  To&lt;br /&gt;
do this first create the &lt;br /&gt;
.htaccess file in the nagios/sbin directory as described in the &lt;br /&gt;
documentation - it must be world-readable.&lt;br /&gt;
&lt;br /&gt;
Next create the htpasswd.users file in the nagios/etc directory as described in&lt;br /&gt;
the documentation - it must be world-readable!  I added only one user: rrsl&lt;br /&gt;
&lt;br /&gt;
At this point you should be able to start nagios using:&lt;br /&gt;
/usr/local/nagios/bin/nagios /usr/local/nagios/etc/nagios.cfg&lt;br /&gt;
&lt;br /&gt;
After nagios is started you should be able to go to the web page and &lt;br /&gt;
use the cgis to display info.  The final step is enabling the external command&lt;br /&gt;
cgis, which let you change the behavior of nagios from the web.  To do this&lt;br /&gt;
you have to follow the steps in the documentation to enable external commands&lt;br /&gt;
This involves enabling external commands in the config file and specifying&lt;br /&gt;
an external commands file....&lt;br /&gt;
&lt;br /&gt;
The permissions on the file seem to be a source of problems.&lt;br /&gt;
To enable external commands you have to first create a group containing &lt;br /&gt;
the nagios user and the user httpd runs as (apache for us).  Then you create&lt;br /&gt;
the directory /usr/local/nagios/var/rw with permissions:&lt;br /&gt;
drwxrwsr-x    2 nagios   nagioscmd     4096 Aug  3 13:55 rw&lt;br /&gt;
&lt;br /&gt;
That&#039;s rwx permissions for the user and rws permissions for the group&lt;br /&gt;
chmod gu+rwx nagios.nagioscmd rw&lt;br /&gt;
chmod g+s rw&lt;br /&gt;
Then you have to restart both apache and nagios, or it doesn&#039;t work!&lt;br /&gt;
&lt;br /&gt;
The documentation describes some other gotchas..&lt;br /&gt;
&lt;br /&gt;
To run checks for services on remote machines, you need to set up ssh to&lt;br /&gt;
log in without a password.  To do this run &lt;br /&gt;
$ ssh-keygen -t rsa&lt;br /&gt;
to create a public/private key pair.  copy the public key into the &lt;br /&gt;
~/.ssh/authorized_keys file of the user nagios on the remote host.  This file&lt;br /&gt;
must only be rw by nagios or ssh will not work.  The directory .ssh must also&lt;br /&gt;
be only rwx by nagios.  Then you should be able &lt;br /&gt;
to ssh to the remote host as nagios without giving a password.&lt;br /&gt;
&lt;br /&gt;
Copy the plugins you want to run on the remote host to the remote host, &lt;br /&gt;
and then set up checks in checkcommands.cfg, and services.cfg.  See the &lt;br /&gt;
check-host-radar command for an example.  The plugins can be any kind of&lt;br /&gt;
program.&lt;br /&gt;
&lt;br /&gt;
Many plugins were timing out after ten seconds when checking on heimdal and&lt;br /&gt;
umtanum.  Although there claimed to be a command line option to change this,&lt;br /&gt;
in practice there was not.  Therefore, I changed the source to set the timeout&lt;br /&gt;
to 30sec and recompiled the plugins.  This appears to work. (7/26/04)&lt;br /&gt;
&lt;br /&gt;
nagios comes with the file /etc/rc.d/init.d/nagios, which is a script for&lt;br /&gt;
starting nagios from rc.local or from the command line as root (or by&lt;br /&gt;
sudo).  This seems to be the best way of starting or stopping the program.&lt;br /&gt;
&lt;br /&gt;
sudo /etc/rc.d/init.d/nagios start&lt;br /&gt;
sudo /etc/rc.d/init.d/nagios stop&lt;br /&gt;
etc.&lt;br /&gt;
&lt;br /&gt;
nagios has the ability to acknowledge a host condition, so if a host&lt;br /&gt;
is down, you can &amp;quot;acknowledge&amp;quot; through the web interface, and it will&lt;br /&gt;
stop sending email unless the host changes state.  This is useful.&lt;br /&gt;
You can also disable notification for a service, which is handy&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Adding a user to the web interface:&lt;br /&gt;
&lt;br /&gt;
 1) edit cgi.cfg to add the user to the actions that you want them to do&lt;br /&gt;
 2) edit sbin/.htaccess to add the user to the list of ok users, eg:&lt;br /&gt;
    require user rrsl radar&lt;br /&gt;
    for users rrsl and radar being able to access the web interface&lt;br /&gt;
    Keep in mind this file must be world readable...&lt;br /&gt;
 3) issue htpasswd /usr/local/nagios/etc/htpasswd.users &amp;lt;new user&amp;gt; as root, to&lt;br /&gt;
    create the new user and password&lt;br /&gt;
 4) stop nagios&lt;br /&gt;
 5) restart the web server&lt;br /&gt;
 6  start nagios&lt;br /&gt;
&lt;br /&gt;
It should work, you should be able to log in and do stuff.&lt;/div&gt;</summary>
		<author><name>Boiarino</name></author>
	</entry>
	<entry>
		<id>https://clonwiki0.jlab.org/wiki/index.php?title=Nagios&amp;diff=8715</id>
		<title>Nagios</title>
		<link rel="alternate" type="text/html" href="https://clonwiki0.jlab.org/wiki/index.php?title=Nagios&amp;diff=8715"/>
		<updated>2026-03-21T13:39:33Z</updated>

		<summary type="html">&lt;p&gt;Boiarino: /* RHEL9 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== RHEL9 ==&lt;br /&gt;
&lt;br /&gt;
 yum install nagios&lt;br /&gt;
&lt;br /&gt;
 systemctl start httpd&lt;br /&gt;
 systemctl start nagios&lt;br /&gt;
&lt;br /&gt;
== old stuff ==&lt;br /&gt;
&lt;br /&gt;
Nagios is main monitoring tool for CLON cluster.&lt;br /&gt;
&lt;br /&gt;
Download from web following files and place them to &#039;/usr/local/downloads&#039;:&lt;br /&gt;
&lt;br /&gt;
  nagios-2.6.tar.gz&lt;br /&gt;
  nagios-images_0.3.tar.gz&lt;br /&gt;
  nagios-plugins-1.4.5.tar.gz&lt;br /&gt;
  nagiosmib-1.0.0.tar.gz (?????????)&lt;br /&gt;
&lt;br /&gt;
  create user &#039;nagios&#039;, private group &#039;nagios&#039;&lt;br /&gt;
  mkdir /www/nagios2.6&lt;br /&gt;
  chown nagios.nagios /www/nagios2.6&lt;br /&gt;
&lt;br /&gt;
Add command file group and put appropriate users in (we assume that apache is running as user &#039;apache&#039;):&lt;br /&gt;
&lt;br /&gt;
  /usr/sbin/groupadd nagcmd&lt;br /&gt;
  /usr/sbin/usermod -G nagcmd apache&lt;br /&gt;
  /usr/sbin/usermod -G nagcmd nagios&lt;br /&gt;
  to check, see file /etc/group&lt;br /&gt;
&lt;br /&gt;
Build and install:&lt;br /&gt;
&lt;br /&gt;
  cp /usr/local/downloads/nagios-2.6.tar.gz /usr/local/src&lt;br /&gt;
  cd /usr/local/src&lt;br /&gt;
  gunzip nagios-2.6.tar.gz&lt;br /&gt;
  tar xvf nagios-2.6.tar&lt;br /&gt;
  cd &#039;/usr/local/src/nagios-2.6&#039;&lt;br /&gt;
                   NO !!! su nagios&lt;br /&gt;
  ./configure --prefix=/www/nagios2.6 --with-cgiurl=/nagios/cgi-bin --with-htmurl=/nagios --with-nagios-user=nagios --with-nagios-group=nagios --with-command-group=nagcmd&lt;br /&gt;
      ??did on RHEL6:  ./configure --prefix=/www/nagios-3.4.1 --with-cgiurl=/nagios/cgi-bin --with-htmurl=/nagios --with-nagios-user=nagios --with-nagios-group=nagcmd --with-command-group=nagcmd&lt;br /&gt;
  make all&lt;br /&gt;
  make install&lt;br /&gt;
&lt;br /&gt;
Install init script /etc/init.d/nagios:&lt;br /&gt;
&lt;br /&gt;
  make install-init (as &#039;root&#039; !!!)&lt;br /&gt;
&lt;br /&gt;
Modify /etc/init.d/nagios script as following (bug ?):&lt;br /&gt;
&lt;br /&gt;
  ###NagiosRunFile=${prefix}/var/nagios.lock&lt;br /&gt;
  NagiosRunFile=${prefix}/var/run/nagios.pid&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  #to install sample /etc directory&lt;br /&gt;
  make install-config&lt;br /&gt;
&lt;br /&gt;
  #???This installs and configures permissions on the&lt;br /&gt;
  #???directory for holding the external command file&lt;br /&gt;
  make install-commandmode&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Install plugins and nrpe -  see corresponding sections.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fix apache configuration file:&lt;br /&gt;
&lt;br /&gt;
  add contents of /usr/local/src/nagios-2.6/sample-config/httpd.conf&lt;br /&gt;
  to /www/apache2.2.3/conf/httpd.conf&lt;br /&gt;
&lt;br /&gt;
Copy &#039;etc&#039; directory from old Nagios (if any) to /www/nagios2.6. Go through files cgi.cfg, nagios.cfg and private/*&lt;br /&gt;
and fix pathes making them point to /www/nagios2.6.&lt;br /&gt;
&lt;br /&gt;
Add several directories for output files:&lt;br /&gt;
&lt;br /&gt;
  mkdir /www/nagios2.6/var/log&lt;br /&gt;
  mkdir /www/nagios2.6/var/run&lt;br /&gt;
  mkdir /www/nagios2.6/var/rw (?????)&lt;br /&gt;
&lt;br /&gt;
Install icons:&lt;br /&gt;
&lt;br /&gt;
  cd /usr/local/src/nagios-images-0.3/base&lt;br /&gt;
  cp * /www/nagios2.6/share/images/logos&lt;br /&gt;
&lt;br /&gt;
To check configuration run following commands:&lt;br /&gt;
&lt;br /&gt;
  /www/nagios2.6/bin/nagios -v /www/nagios2.6/etc/nagios.cfg&lt;br /&gt;
&lt;br /&gt;
To start/stop (restart need to be fixed ..):&lt;br /&gt;
&lt;br /&gt;
  /etc/init.d/nagios start/stop&lt;br /&gt;
&lt;br /&gt;
Add Nagios to services:&lt;br /&gt;
&lt;br /&gt;
  chkconfig --add nagios&lt;br /&gt;
  chkconfig --level 3 nagios off&lt;br /&gt;
  chkconfig --level 4 nagios off&lt;br /&gt;
  chkconfig --list nagios&lt;br /&gt;
&lt;br /&gt;
NOTE: following command was executed to let browser to disable host checks; it should be investigated ...&lt;br /&gt;
&lt;br /&gt;
  chown nagios:nagcmd /www/nagios2.6/var/log/nagios.cmd&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ADDITIONAL INFO (COPIED FROM http://klickitat.ee.washington.edu/medg/software/nagios-install-notes.txt):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
some notes on installing nagios - these are a supplement to the basic&lt;br /&gt;
nagios documentation that comes with the software:&lt;br /&gt;
&lt;br /&gt;
Download and install the nagios and nagios-plugin packages. For whatever reason&lt;br /&gt;
www.nagios.org seems to be hosed now (7/23/2004), but look on google. There&lt;br /&gt;
is also sourceforge.nagios.net, which seems to be another nagios homepage.&lt;br /&gt;
&lt;br /&gt;
Create a nagios user.  Compile and install the packages as described in the &lt;br /&gt;
documentation.  Redhat&lt;br /&gt;
has all necessary libraries already installed.  I just went with the defaults&lt;br /&gt;
in the compilation.  The default is for nagios to install itself in &lt;br /&gt;
/usr/local/nagios; everything should be owned by user nagios. &lt;br /&gt;
&lt;br /&gt;
To enable the web interface, edit httpd.conf to add the Alias and &lt;br /&gt;
ScriptAlias directives as &lt;br /&gt;
described in the nagios documentation.  This works for both apache 1.3 and&lt;br /&gt;
apache 2.0.  Restart apache.  At this point you should be able to go to &lt;br /&gt;
http://www.whatever/nagios/ and see the nagios page and access the&lt;br /&gt;
documentation.  CGIs probably won&#039;t work.&lt;br /&gt;
&lt;br /&gt;
You need to set up the config files; this is the real heart of installing &lt;br /&gt;
nagios and unfortunately is much easier to show than to describe.  The first&lt;br /&gt;
step is to copy the *.cfg-sample files that should be in /usr/local/nagios/etc&lt;br /&gt;
to *.cfg.  Then you need to edit these files to describe your setup.&lt;br /&gt;
&lt;br /&gt;
Basically, hosts.cfg describes the hosts you want to monitor, services.cfg &lt;br /&gt;
describes the services you want to monitor on each host, checkcommands.cfg&lt;br /&gt;
is the check commands used by services.cfg to check the services; if you want&lt;br /&gt;
to check a service you probably have to add a command to do so; contacts.cfg&lt;br /&gt;
is the people who will be contacted in case of a problem, contactgroups&lt;br /&gt;
is the groups of people, hostgroups.cfg is the groups of hosts (rrsl-machines,&lt;br /&gt;
for example).  nagios.cfg is the master config file.  Probably you can get&lt;br /&gt;
by just by copying and pasting the stuff already in these files and tweaking&lt;br /&gt;
it.&lt;br /&gt;
&lt;br /&gt;
To add a new machine you will need to edit hosts.cfg (add the machine),&lt;br /&gt;
hostgroups.cfg (put it in a hostgroup), services.cfg (add the services to&lt;br /&gt;
be checked on the machine).&lt;br /&gt;
&lt;br /&gt;
To add a new administrator, you will need to edit contacts.cfg (add the new &lt;br /&gt;
person) and contactgroups.cfg (put them in a contact group or create one).&lt;br /&gt;
&lt;br /&gt;
In misccommands.cfg I needed to change /usr/bin/mail to /bin/mail on redhat&lt;br /&gt;
-- but not on slackware!  Otherwise it was not able to mail messages.&lt;br /&gt;
&lt;br /&gt;
At this point you can check your config using the &lt;br /&gt;
&#039;/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg&#039; command,&lt;br /&gt;
which does a check of the configuration and will warn if there are errors.&lt;br /&gt;
Fix the errors and repeat until it is happy.&lt;br /&gt;
&lt;br /&gt;
Now you need to enable authorization so that the cgi scripts will work.  To&lt;br /&gt;
do this first create the &lt;br /&gt;
.htaccess file in the nagios/sbin directory as described in the &lt;br /&gt;
documentation - it must be world-readable.&lt;br /&gt;
&lt;br /&gt;
Next create the htpasswd.users file in the nagios/etc directory as described in&lt;br /&gt;
the documentation - it must be world-readable!  I added only one user: rrsl&lt;br /&gt;
&lt;br /&gt;
At this point you should be able to start nagios using:&lt;br /&gt;
/usr/local/nagios/bin/nagios /usr/local/nagios/etc/nagios.cfg&lt;br /&gt;
&lt;br /&gt;
After nagios is started you should be able to go to the web page and &lt;br /&gt;
use the cgis to display info.  The final step is enabling the external command&lt;br /&gt;
cgis, which let you change the behavior of nagios from the web.  To do this&lt;br /&gt;
you have to follow the steps in the documentation to enable external commands&lt;br /&gt;
This involves enabling external commands in the config file and specifying&lt;br /&gt;
an external commands file....&lt;br /&gt;
&lt;br /&gt;
The permissions on the file seem to be a source of problems.&lt;br /&gt;
To enable external commands you have to first create a group containing &lt;br /&gt;
the nagios user and the user httpd runs as (apache for us).  Then you create&lt;br /&gt;
the directory /usr/local/nagios/var/rw with permissions:&lt;br /&gt;
drwxrwsr-x    2 nagios   nagioscmd     4096 Aug  3 13:55 rw&lt;br /&gt;
&lt;br /&gt;
That&#039;s rwx permissions for the user and rws permissions for the group&lt;br /&gt;
chmod gu+rwx nagios.nagioscmd rw&lt;br /&gt;
chmod g+s rw&lt;br /&gt;
Then you have to restart both apache and nagios, or it doesn&#039;t work!&lt;br /&gt;
&lt;br /&gt;
The documentation describes some other gotchas..&lt;br /&gt;
&lt;br /&gt;
To run checks for services on remote machines, you need to set up ssh to&lt;br /&gt;
log in without a password.  To do this run &lt;br /&gt;
$ ssh-keygen -t rsa&lt;br /&gt;
to create a public/private key pair.  copy the public key into the &lt;br /&gt;
~/.ssh/authorized_keys file of the user nagios on the remote host.  This file&lt;br /&gt;
must only be rw by nagios or ssh will not work.  The directory .ssh must also&lt;br /&gt;
be only rwx by nagios.  Then you should be able &lt;br /&gt;
to ssh to the remote host as nagios without giving a password.&lt;br /&gt;
&lt;br /&gt;
Copy the plugins you want to run on the remote host to the remote host, &lt;br /&gt;
and then set up checks in checkcommands.cfg, and services.cfg.  See the &lt;br /&gt;
check-host-radar command for an example.  The plugins can be any kind of&lt;br /&gt;
program.&lt;br /&gt;
&lt;br /&gt;
Many plugins were timing out after ten seconds when checking on heimdal and&lt;br /&gt;
umtanum.  Although there claimed to be a command line option to change this,&lt;br /&gt;
in practice there was not.  Therefore, I changed the source to set the timeout&lt;br /&gt;
to 30sec and recompiled the plugins.  This appears to work. (7/26/04)&lt;br /&gt;
&lt;br /&gt;
nagios comes with the file /etc/rc.d/init.d/nagios, which is a script for&lt;br /&gt;
starting nagios from rc.local or from the command line as root (or by&lt;br /&gt;
sudo).  This seems to be the best way of starting or stopping the program.&lt;br /&gt;
&lt;br /&gt;
sudo /etc/rc.d/init.d/nagios start&lt;br /&gt;
sudo /etc/rc.d/init.d/nagios stop&lt;br /&gt;
etc.&lt;br /&gt;
&lt;br /&gt;
nagios has the ability to acknowledge a host condition, so if a host&lt;br /&gt;
is down, you can &amp;quot;acknowledge&amp;quot; through the web interface, and it will&lt;br /&gt;
stop sending email unless the host changes state.  This is useful.&lt;br /&gt;
You can also disable notification for a service, which is handy&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Adding a user to the web interface:&lt;br /&gt;
&lt;br /&gt;
 1) edit cgi.cfg to add the user to the actions that you want them to do&lt;br /&gt;
 2) edit sbin/.htaccess to add the user to the list of ok users, eg:&lt;br /&gt;
    require user rrsl radar&lt;br /&gt;
    for users rrsl and radar being able to access the web interface&lt;br /&gt;
    Keep in mind this file must be world readable...&lt;br /&gt;
 3) issue htpasswd /usr/local/nagios/etc/htpasswd.users &amp;lt;new user&amp;gt; as root, to&lt;br /&gt;
    create the new user and password&lt;br /&gt;
 4) stop nagios&lt;br /&gt;
 5) restart the web server&lt;br /&gt;
 6  start nagios&lt;br /&gt;
&lt;br /&gt;
It should work, you should be able to log in and do stuff.&lt;/div&gt;</summary>
		<author><name>Boiarino</name></author>
	</entry>
	<entry>
		<id>https://clonwiki0.jlab.org/wiki/index.php?title=Nagios&amp;diff=8714</id>
		<title>Nagios</title>
		<link rel="alternate" type="text/html" href="https://clonwiki0.jlab.org/wiki/index.php?title=Nagios&amp;diff=8714"/>
		<updated>2026-03-21T13:35:07Z</updated>

		<summary type="html">&lt;p&gt;Boiarino: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== RHEL9 ==&lt;br /&gt;
&lt;br /&gt;
 yum install nagios&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== old stuff ==&lt;br /&gt;
&lt;br /&gt;
Nagios is main monitoring tool for CLON cluster.&lt;br /&gt;
&lt;br /&gt;
Download from web following files and place them to &#039;/usr/local/downloads&#039;:&lt;br /&gt;
&lt;br /&gt;
  nagios-2.6.tar.gz&lt;br /&gt;
  nagios-images_0.3.tar.gz&lt;br /&gt;
  nagios-plugins-1.4.5.tar.gz&lt;br /&gt;
  nagiosmib-1.0.0.tar.gz (?????????)&lt;br /&gt;
&lt;br /&gt;
  create user &#039;nagios&#039;, private group &#039;nagios&#039;&lt;br /&gt;
  mkdir /www/nagios2.6&lt;br /&gt;
  chown nagios.nagios /www/nagios2.6&lt;br /&gt;
&lt;br /&gt;
Add command file group and put appropriate users in (we assume that apache is running as user &#039;apache&#039;):&lt;br /&gt;
&lt;br /&gt;
  /usr/sbin/groupadd nagcmd&lt;br /&gt;
  /usr/sbin/usermod -G nagcmd apache&lt;br /&gt;
  /usr/sbin/usermod -G nagcmd nagios&lt;br /&gt;
  to check, see file /etc/group&lt;br /&gt;
&lt;br /&gt;
Build and install:&lt;br /&gt;
&lt;br /&gt;
  cp /usr/local/downloads/nagios-2.6.tar.gz /usr/local/src&lt;br /&gt;
  cd /usr/local/src&lt;br /&gt;
  gunzip nagios-2.6.tar.gz&lt;br /&gt;
  tar xvf nagios-2.6.tar&lt;br /&gt;
  cd &#039;/usr/local/src/nagios-2.6&#039;&lt;br /&gt;
                   NO !!! su nagios&lt;br /&gt;
  ./configure --prefix=/www/nagios2.6 --with-cgiurl=/nagios/cgi-bin --with-htmurl=/nagios --with-nagios-user=nagios --with-nagios-group=nagios --with-command-group=nagcmd&lt;br /&gt;
      ??did on RHEL6:  ./configure --prefix=/www/nagios-3.4.1 --with-cgiurl=/nagios/cgi-bin --with-htmurl=/nagios --with-nagios-user=nagios --with-nagios-group=nagcmd --with-command-group=nagcmd&lt;br /&gt;
  make all&lt;br /&gt;
  make install&lt;br /&gt;
&lt;br /&gt;
Install init script /etc/init.d/nagios:&lt;br /&gt;
&lt;br /&gt;
  make install-init (as &#039;root&#039; !!!)&lt;br /&gt;
&lt;br /&gt;
Modify /etc/init.d/nagios script as following (bug ?):&lt;br /&gt;
&lt;br /&gt;
  ###NagiosRunFile=${prefix}/var/nagios.lock&lt;br /&gt;
  NagiosRunFile=${prefix}/var/run/nagios.pid&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  #to install sample /etc directory&lt;br /&gt;
  make install-config&lt;br /&gt;
&lt;br /&gt;
  #???This installs and configures permissions on the&lt;br /&gt;
  #???directory for holding the external command file&lt;br /&gt;
  make install-commandmode&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Install plugins and nrpe -  see corresponding sections.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fix apache configuration file:&lt;br /&gt;
&lt;br /&gt;
  add contents of /usr/local/src/nagios-2.6/sample-config/httpd.conf&lt;br /&gt;
  to /www/apache2.2.3/conf/httpd.conf&lt;br /&gt;
&lt;br /&gt;
Copy &#039;etc&#039; directory from old Nagios (if any) to /www/nagios2.6. Go through files cgi.cfg, nagios.cfg and private/*&lt;br /&gt;
and fix pathes making them point to /www/nagios2.6.&lt;br /&gt;
&lt;br /&gt;
Add several directories for output files:&lt;br /&gt;
&lt;br /&gt;
  mkdir /www/nagios2.6/var/log&lt;br /&gt;
  mkdir /www/nagios2.6/var/run&lt;br /&gt;
  mkdir /www/nagios2.6/var/rw (?????)&lt;br /&gt;
&lt;br /&gt;
Install icons:&lt;br /&gt;
&lt;br /&gt;
  cd /usr/local/src/nagios-images-0.3/base&lt;br /&gt;
  cp * /www/nagios2.6/share/images/logos&lt;br /&gt;
&lt;br /&gt;
To check configuration run following commands:&lt;br /&gt;
&lt;br /&gt;
  /www/nagios2.6/bin/nagios -v /www/nagios2.6/etc/nagios.cfg&lt;br /&gt;
&lt;br /&gt;
To start/stop (restart need to be fixed ..):&lt;br /&gt;
&lt;br /&gt;
  /etc/init.d/nagios start/stop&lt;br /&gt;
&lt;br /&gt;
Add Nagios to services:&lt;br /&gt;
&lt;br /&gt;
  chkconfig --add nagios&lt;br /&gt;
  chkconfig --level 3 nagios off&lt;br /&gt;
  chkconfig --level 4 nagios off&lt;br /&gt;
  chkconfig --list nagios&lt;br /&gt;
&lt;br /&gt;
NOTE: following command was executed to let browser to disable host checks; it should be investigated ...&lt;br /&gt;
&lt;br /&gt;
  chown nagios:nagcmd /www/nagios2.6/var/log/nagios.cmd&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ADDITIONAL INFO (COPIED FROM http://klickitat.ee.washington.edu/medg/software/nagios-install-notes.txt):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
some notes on installing nagios - these are a supplement to the basic&lt;br /&gt;
nagios documentation that comes with the software:&lt;br /&gt;
&lt;br /&gt;
Download and install the nagios and nagios-plugin packages. For whatever reason&lt;br /&gt;
www.nagios.org seems to be hosed now (7/23/2004), but look on google. There&lt;br /&gt;
is also sourceforge.nagios.net, which seems to be another nagios homepage.&lt;br /&gt;
&lt;br /&gt;
Create a nagios user.  Compile and install the packages as described in the &lt;br /&gt;
documentation.  Redhat&lt;br /&gt;
has all necessary libraries already installed.  I just went with the defaults&lt;br /&gt;
in the compilation.  The default is for nagios to install itself in &lt;br /&gt;
/usr/local/nagios; everything should be owned by user nagios. &lt;br /&gt;
&lt;br /&gt;
To enable the web interface, edit httpd.conf to add the Alias and &lt;br /&gt;
ScriptAlias directives as &lt;br /&gt;
described in the nagios documentation.  This works for both apache 1.3 and&lt;br /&gt;
apache 2.0.  Restart apache.  At this point you should be able to go to &lt;br /&gt;
http://www.whatever/nagios/ and see the nagios page and access the&lt;br /&gt;
documentation.  CGIs probably won&#039;t work.&lt;br /&gt;
&lt;br /&gt;
You need to set up the config files; this is the real heart of installing &lt;br /&gt;
nagios and unfortunately is much easier to show than to describe.  The first&lt;br /&gt;
step is to copy the *.cfg-sample files that should be in /usr/local/nagios/etc&lt;br /&gt;
to *.cfg.  Then you need to edit these files to describe your setup.&lt;br /&gt;
&lt;br /&gt;
Basically, hosts.cfg describes the hosts you want to monitor, services.cfg &lt;br /&gt;
describes the services you want to monitor on each host, checkcommands.cfg&lt;br /&gt;
is the check commands used by services.cfg to check the services; if you want&lt;br /&gt;
to check a service you probably have to add a command to do so; contacts.cfg&lt;br /&gt;
is the people who will be contacted in case of a problem, contactgroups&lt;br /&gt;
is the groups of people, hostgroups.cfg is the groups of hosts (rrsl-machines,&lt;br /&gt;
for example).  nagios.cfg is the master config file.  Probably you can get&lt;br /&gt;
by just by copying and pasting the stuff already in these files and tweaking&lt;br /&gt;
it.&lt;br /&gt;
&lt;br /&gt;
To add a new machine you will need to edit hosts.cfg (add the machine),&lt;br /&gt;
hostgroups.cfg (put it in a hostgroup), services.cfg (add the services to&lt;br /&gt;
be checked on the machine).&lt;br /&gt;
&lt;br /&gt;
To add a new administrator, you will need to edit contacts.cfg (add the new &lt;br /&gt;
person) and contactgroups.cfg (put them in a contact group or create one).&lt;br /&gt;
&lt;br /&gt;
In misccommands.cfg I needed to change /usr/bin/mail to /bin/mail on redhat&lt;br /&gt;
-- but not on slackware!  Otherwise it was not able to mail messages.&lt;br /&gt;
&lt;br /&gt;
At this point you can check your config using the &lt;br /&gt;
&#039;/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg&#039; command,&lt;br /&gt;
which does a check of the configuration and will warn if there are errors.&lt;br /&gt;
Fix the errors and repeat until it is happy.&lt;br /&gt;
&lt;br /&gt;
Now you need to enable authorization so that the cgi scripts will work.  To&lt;br /&gt;
do this first create the &lt;br /&gt;
.htaccess file in the nagios/sbin directory as described in the &lt;br /&gt;
documentation - it must be world-readable.&lt;br /&gt;
&lt;br /&gt;
Next create the htpasswd.users file in the nagios/etc directory as described in&lt;br /&gt;
the documentation - it must be world-readable!  I added only one user: rrsl&lt;br /&gt;
&lt;br /&gt;
At this point you should be able to start nagios using:&lt;br /&gt;
/usr/local/nagios/bin/nagios /usr/local/nagios/etc/nagios.cfg&lt;br /&gt;
&lt;br /&gt;
After nagios is started you should be able to go to the web page and &lt;br /&gt;
use the cgis to display info.  The final step is enabling the external command&lt;br /&gt;
cgis, which let you change the behavior of nagios from the web.  To do this&lt;br /&gt;
you have to follow the steps in the documentation to enable external commands&lt;br /&gt;
This involves enabling external commands in the config file and specifying&lt;br /&gt;
an external commands file....&lt;br /&gt;
&lt;br /&gt;
The permissions on the file seem to be a source of problems.&lt;br /&gt;
To enable external commands you have to first create a group containing &lt;br /&gt;
the nagios user and the user httpd runs as (apache for us).  Then you create&lt;br /&gt;
the directory /usr/local/nagios/var/rw with permissions:&lt;br /&gt;
drwxrwsr-x    2 nagios   nagioscmd     4096 Aug  3 13:55 rw&lt;br /&gt;
&lt;br /&gt;
That&#039;s rwx permissions for the user and rws permissions for the group&lt;br /&gt;
chmod gu+rwx nagios.nagioscmd rw&lt;br /&gt;
chmod g+s rw&lt;br /&gt;
Then you have to restart both apache and nagios, or it doesn&#039;t work!&lt;br /&gt;
&lt;br /&gt;
The documentation describes some other gotchas..&lt;br /&gt;
&lt;br /&gt;
To run checks for services on remote machines, you need to set up ssh to&lt;br /&gt;
log in without a password.  To do this run &lt;br /&gt;
$ ssh-keygen -t rsa&lt;br /&gt;
to create a public/private key pair.  copy the public key into the &lt;br /&gt;
~/.ssh/authorized_keys file of the user nagios on the remote host.  This file&lt;br /&gt;
must only be rw by nagios or ssh will not work.  The directory .ssh must also&lt;br /&gt;
be only rwx by nagios.  Then you should be able &lt;br /&gt;
to ssh to the remote host as nagios without giving a password.&lt;br /&gt;
&lt;br /&gt;
Copy the plugins you want to run on the remote host to the remote host, &lt;br /&gt;
and then set up checks in checkcommands.cfg, and services.cfg.  See the &lt;br /&gt;
check-host-radar command for an example.  The plugins can be any kind of&lt;br /&gt;
program.&lt;br /&gt;
&lt;br /&gt;
Many plugins were timing out after ten seconds when checking on heimdal and&lt;br /&gt;
umtanum.  Although there claimed to be a command line option to change this,&lt;br /&gt;
in practice there was not.  Therefore, I changed the source to set the timeout&lt;br /&gt;
to 30sec and recompiled the plugins.  This appears to work. (7/26/04)&lt;br /&gt;
&lt;br /&gt;
nagios comes with the file /etc/rc.d/init.d/nagios, which is a script for&lt;br /&gt;
starting nagios from rc.local or from the command line as root (or by&lt;br /&gt;
sudo).  This seems to be the best way of starting or stopping the program.&lt;br /&gt;
&lt;br /&gt;
sudo /etc/rc.d/init.d/nagios start&lt;br /&gt;
sudo /etc/rc.d/init.d/nagios stop&lt;br /&gt;
etc.&lt;br /&gt;
&lt;br /&gt;
nagios has the ability to acknowledge a host condition, so if a host&lt;br /&gt;
is down, you can &amp;quot;acknowledge&amp;quot; through the web interface, and it will&lt;br /&gt;
stop sending email unless the host changes state.  This is useful.&lt;br /&gt;
You can also disable notification for a service, which is handy&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Adding a user to the web interface:&lt;br /&gt;
&lt;br /&gt;
 1) edit cgi.cfg to add the user to the actions that you want them to do&lt;br /&gt;
 2) edit sbin/.htaccess to add the user to the list of ok users, eg:&lt;br /&gt;
    require user rrsl radar&lt;br /&gt;
    for users rrsl and radar being able to access the web interface&lt;br /&gt;
    Keep in mind this file must be world readable...&lt;br /&gt;
 3) issue htpasswd /usr/local/nagios/etc/htpasswd.users &amp;lt;new user&amp;gt; as root, to&lt;br /&gt;
    create the new user and password&lt;br /&gt;
 4) stop nagios&lt;br /&gt;
 5) restart the web server&lt;br /&gt;
 6  start nagios&lt;br /&gt;
&lt;br /&gt;
It should work, you should be able to log in and do stuff.&lt;/div&gt;</summary>
		<author><name>Boiarino</name></author>
	</entry>
	<entry>
		<id>https://clonwiki0.jlab.org/wiki/index.php?title=ROOT&amp;diff=8713</id>
		<title>ROOT</title>
		<link rel="alternate" type="text/html" href="https://clonwiki0.jlab.org/wiki/index.php?title=ROOT&amp;diff=8713"/>
		<updated>2026-03-20T02:40:33Z</updated>

		<summary type="html">&lt;p&gt;Boiarino: /* RHEL9 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== RHEL9 ==&lt;br /&gt;
&lt;br /&gt;
yum install libuuid-devel xrootd xrootd-devel xrootd-client-devel python3 python3-devel z3 z3-devel&lt;br /&gt;
&lt;br /&gt;
yum install gcc-fortran imake xbae-devel libnsl libnsl2-devel glibc-devel freetype-devel libgfortran libX11-devel libXpm-devel libXt-devel motif-devel (for cernlib)&lt;br /&gt;
&lt;br /&gt;
yum install boost boost-devel lz4 lz4-devel doxygen (for evio)&lt;br /&gt;
&lt;br /&gt;
yum install libtirpc-devel&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If Git does not work, download source to /usr/downloads manually and do following:&lt;br /&gt;
&lt;br /&gt;
 cd /apps/root&lt;br /&gt;
 cp /usr/downloads/root_v6.24.08.source.tar.gz .&lt;br /&gt;
 gunzip root_v6.24.08.source.tar.gz&lt;br /&gt;
 tar xvf root_v6.24.08.source.tar&lt;br /&gt;
 rm root_v6.24.08.source.tar.gz&lt;br /&gt;
 mv root_v6.24.08 root_v6.24.08_source&lt;br /&gt;
 mkdir 6.24.08&lt;br /&gt;
 cd 6.24.08&lt;br /&gt;
 cmake ../root-6.24.08_source -Dbuiltin_xrootd=OFF -Dclad=OFF&lt;br /&gt;
 cmake --build . -- -j32&lt;br /&gt;
&lt;br /&gt;
== RHEL7 ==&lt;br /&gt;
&lt;br /&gt;
Installation from source (replace root_install with for example 6.24.06):&lt;br /&gt;
&lt;br /&gt;
 # The latest stable branch gets updated automatically on each release. &lt;br /&gt;
 # You may update your local copy by issuing a `git pull` command from within `root_src/`.&lt;br /&gt;
 git clone --branch latest-stable https://github.com/root-project/root.git root_src&lt;br /&gt;
 mkdir root_build root_install &amp;amp;&amp;amp; cd root_build&lt;br /&gt;
 cmake -DCMAKE_INSTALL_PREFIX=../root_install ../root_src # &amp;amp;&amp;amp; check cmake configuration output for warnings or errors&lt;br /&gt;
 cmake --build . -- install -j4 # if you have 4 cores available for compilation&lt;br /&gt;
 source ../root_install/bin/thisroot.sh # or thisroot.{fish,csh}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Installation (version 6.16.0 and GCC 8.3.0 in this example):&lt;br /&gt;
&lt;br /&gt;
* cd /apps/root&lt;br /&gt;
&lt;br /&gt;
* git clone http://github.com/root-project/root.git 6.16.0&lt;br /&gt;
&lt;br /&gt;
* cd 6.16.0&lt;br /&gt;
&lt;br /&gt;
* git checkout -b v6-16-00 v6-16-00&lt;br /&gt;
&lt;br /&gt;
* cd build&lt;br /&gt;
&lt;br /&gt;
* setenv CC /apps/gcc/8.3.0/bin/gcc&lt;br /&gt;
&lt;br /&gt;
* setenv CXX /apps/gcc/8.3.0/bin/g++&lt;br /&gt;
&lt;br /&gt;
* cmake /apps/root/6.16.0&lt;br /&gt;
&lt;br /&gt;
* cmake --build . -- -j32&lt;br /&gt;
&lt;br /&gt;
Everything is ready. Setup environment:&lt;br /&gt;
&lt;br /&gt;
* source /apps/root/6.16.0/build/bin/thisroot.csh&lt;br /&gt;
&lt;br /&gt;
Now it can be run:&lt;br /&gt;
&lt;br /&gt;
* root&lt;/div&gt;</summary>
		<author><name>Boiarino</name></author>
	</entry>
	<entry>
		<id>https://clonwiki0.jlab.org/wiki/index.php?title=Linux_Installation_Procedure&amp;diff=8712</id>
		<title>Linux Installation Procedure</title>
		<link rel="alternate" type="text/html" href="https://clonwiki0.jlab.org/wiki/index.php?title=Linux_Installation_Procedure&amp;diff=8712"/>
		<updated>2026-03-18T15:18:59Z</updated>

		<summary type="html">&lt;p&gt;Boiarino: /* RHEL9 (64 bit) - for machine NOT under puppet control */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Dell servers hardware trick(s) ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;!!! if BIOS date/time is incorrect, it may prevent redhat subscription and installation to work correctly, set it to correct value !!! (it was not confirmed, problem may be different and was fixed at the same time as time was correctly set) &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* if BIOS does not remember time setting after power unplugged, battery on motherboard may need to be replaced&lt;br /&gt;
&lt;br /&gt;
* if looks dead, remove the power cords, then held in the on button for 30 seconds; then plug it back in and it may boots up fine - known Dell feature&lt;br /&gt;
&lt;br /&gt;
== ARM (CentsOS7) ==&lt;br /&gt;
&lt;br /&gt;
See [[yum]] for specifics.&lt;br /&gt;
&lt;br /&gt;
 yum install xauth wget bzip2 xterm expat-devel libX11-devel libXpm-devel motif-devel mariadb-devel&lt;br /&gt;
&lt;br /&gt;
== RHEL9 (64 bit) - machine under puppet control ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: select installation type &#039;&#039;&#039;H&#039;&#039;&#039;, then type &#039;&#039;&#039;B&#039;&#039;&#039;.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: during custom disk partitioning, select &#039;Standard&#039; for every partition, if you want it to be standard, or &#039;Raid&#039; if applicable&lt;br /&gt;
&lt;br /&gt;
Root password will be set by puppet during installation, as well as most other needed settings.&lt;br /&gt;
&lt;br /&gt;
Install useful pachages:&lt;br /&gt;
 yum install ncdu mysql gfortran&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: graphic screen is disabled, run following command as root:&lt;br /&gt;
 systemctl set-default graphical.target&lt;br /&gt;
&lt;br /&gt;
== RHEL9 (64 bit) - for machine NOT under puppet control ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: select installation type &#039;&#039;&#039;D&#039;&#039;&#039; (not &#039;&#039;&#039;S&#039;&#039;&#039;, otherwise it will not be level 2 server)&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: during custom disk partitioning, select &#039;Standard&#039; for every partition, if you want it to be standard, or &#039;Raid&#039; if applicable&lt;br /&gt;
&lt;br /&gt;
When installation complete, ssh as authorized user and do following:&lt;br /&gt;
&lt;br /&gt;
 sudo yum install emacs&lt;br /&gt;
 cd /etc&lt;br /&gt;
 sudo chmod a+rw shadow&lt;br /&gt;
 sudo emacs shadow&lt;br /&gt;
&lt;br /&gt;
Copy to /etc/shadow root and other needed passwords from another clon machine. &lt;br /&gt;
&lt;br /&gt;
 sudo chmod a-rw shadow&lt;br /&gt;
&lt;br /&gt;
After that, type &#039;&#039;su&#039;&#039; to become superuser. All following settings can be done now without typing &#039;&#039;sudo&#039;&#039; every time. You still will not be able to ssh remotely as root - always ssh as authorized user and type &#039;&#039;su&#039;&#039; to become root.&lt;br /&gt;
&lt;br /&gt;
Update /etc/passwd and /etc/group using another clon machine as example.&lt;br /&gt;
&lt;br /&gt;
 yum install expat-devel libXaw-devel mysql-devel motif-devel ncurses-devel apr-devel net-snmp-utils&lt;br /&gt;
 yum install xorg-x11-utils # for xprop/xwininfo/etc creg stuff&lt;br /&gt;
 yum install s-nail # for /usr/bin/mail&lt;br /&gt;
 yum install ncdu gfortran&lt;br /&gt;
 yum install libconfig-devel # recent addition for CODA libraries&lt;br /&gt;
&lt;br /&gt;
To be able to ssh to old machines (like vme controllers under CentOS5), run following as root:&lt;br /&gt;
&lt;br /&gt;
 update-crypto-policies --set LEGACY&lt;br /&gt;
&lt;br /&gt;
and then probably reboot, not sure.&lt;br /&gt;
&lt;br /&gt;
Somebody mentioned also adding &#039;&#039;RequiredRSASize 1024&#039;&#039; to a config file in &#039;&#039;/etc/ssh/ssh_config.d/&#039;&#039;, but I did not do it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    Note: this changes all daemons and system settings and is a bit overkill if you only need to adjust the settings for ssh and sshd.&lt;br /&gt;
&lt;br /&gt;
    Exclude (only) sshd from the system-wide cryptographic policy. You opt-out by editing /etc/sysconfig/sshd and uncommenting the line # CRYPTO_POLICY= , (if necessary you can then adjust adjust /etc/ssh/sshd_config and add legacy crypto settings) and restart the ssh daemon.&lt;br /&gt;
&lt;br /&gt;
For the ssh command line client on the RHEL 9 system: you&#039;re recommended to edit ˜/.ssh/config and override the modern/secure system wide ssh client defaults by adding a Host entry that adds support for suitable legacy encryption options for that particular host:&lt;br /&gt;
&lt;br /&gt;
#    ˜/.ssh/config&lt;br /&gt;
&lt;br /&gt;
Host rhel6.example.com&lt;br /&gt;
  KexAlgorithms +diffie-hellman-group14-sha1&lt;br /&gt;
  MACs +hmac-sha1&lt;br /&gt;
  HostKeyAlgorithms +ssh-rsa&lt;br /&gt;
  PubkeyAcceptedKeyTypes +ssh-rsa&lt;br /&gt;
  PubkeyAcceptedAlgorithms +ssh-rsa&lt;br /&gt;
&lt;br /&gt;
Prepare auto-mounting directories:&lt;br /&gt;
&lt;br /&gt;
 cd /&lt;br /&gt;
 mv apps apps.orig&lt;br /&gt;
 mv home home.orig&lt;br /&gt;
 mv scratch scratch.orig&lt;br /&gt;
 mv work work.orig&lt;br /&gt;
 mkdir apps&lt;br /&gt;
 mkdir home&lt;br /&gt;
 mkdir scratch&lt;br /&gt;
 mkdir work&lt;br /&gt;
 mkdir logs&lt;br /&gt;
 cd /usr&lt;br /&gt;
 mv local local.orig&lt;br /&gt;
 mkdir local&lt;br /&gt;
 mkdir clas&lt;br /&gt;
 mkdir clas12&lt;br /&gt;
 mkdir downloads&lt;br /&gt;
 cd&lt;br /&gt;
&lt;br /&gt;
== RHEL8 (64 bit) ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; to boot from USB stick, insert USB stick, turn machine ON holding F2, and in BIOS Boot Configuration, set Enable Security Boot to OFF, save and exit, holding F2. When in BIOS again, in Boot Configuration make &#039;&#039;UEFI PHY USB ...&#039;&#039; first in boot sequence, local hard drive second, disable all other boot options, save and exit. Do NOT hold F2, Linux installation from USB stick will start. &#039;&#039;&#039;IMPORTANT:&#039;&#039;&#039; when asked about D/S options (very first question in installation process), &#039;&#039;&#039;REMOVE USB STICK BEFORE ANSWERING QUESTION ABOUT DESKTOP/SERVER&#039;&#039;&#039;, otherwise it will be destroyed by following installation steps !!!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; to disable/enable puppet, do following as root: &lt;br /&gt;
 puppet agent --disable &amp;quot;temporary&amp;quot;&lt;br /&gt;
 puppet agent --enable&lt;br /&gt;
&lt;br /&gt;
 yum install emacs&lt;br /&gt;
 yum install xorg-x11-fonts-misc&lt;br /&gt;
&lt;br /&gt;
Move and create some directories in preparation for automounts:&lt;br /&gt;
&lt;br /&gt;
 cd /&lt;br /&gt;
 mv apps apps.orig&lt;br /&gt;
 mv home home.orig&lt;br /&gt;
 mv scratch scratch.orig&lt;br /&gt;
 mkdir apps&lt;br /&gt;
 mkdir home&lt;br /&gt;
 mkdir scratch&lt;br /&gt;
 mkdir work&lt;br /&gt;
 mkdir logs&lt;br /&gt;
 cd /usr&lt;br /&gt;
 mv local local.orig&lt;br /&gt;
 mkdir local&lt;br /&gt;
 mkdir clas&lt;br /&gt;
 mkdir clas12&lt;br /&gt;
 mkdir downloads&lt;br /&gt;
 cd&lt;br /&gt;
&lt;br /&gt;
Add line &#039;&#039;&#039;+dir:/etc/auto.master.d&#039;&#039;&#039; to &#039;&#039;/etc/auto.master&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Create file &#039;&#039;/etc/auto.master.d/direct.autofs&#039;&#039; with the line &#039;&#039;&#039;/- /etc/auto.direct&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Create file &#039;&#039;/etc/auto.direct&#039;&#039; with the following contents:&lt;br /&gt;
&lt;br /&gt;
 # machine-dependent system directories&lt;br /&gt;
 /apps                 -rw,bg     clonfs1:/vol/apps/RHEL8_x86_64&lt;br /&gt;
 /usr/local            -rw,bg     clonfs1:/vol/local/RHEL8_x86_64&lt;br /&gt;
 # machine-independent system directories&lt;br /&gt;
 /home                 -rw,bg     clonfs1:/vol/home&lt;br /&gt;
 #/work                 -rw,bg     clonfs1-old:/vol/work&lt;br /&gt;
 /scratch              -rw,bg     clonfs1:/vol/scratch&lt;br /&gt;
 # machine-independent clas directories&lt;br /&gt;
 /usr/downloads        -rw,bg     clonfs1:/vol/downloads&lt;br /&gt;
 /usr/clas             -rw,bg     clonfs1:/vol/clas&lt;br /&gt;
 /usr/clas12           -rw,bg     clonfs1:/vol/clas12&lt;br /&gt;
 # Used for data storage before shipping to tape&lt;br /&gt;
 #/logs                 -rw,bg     clonfs1-old:/vol/logs&lt;br /&gt;
&lt;br /&gt;
Restart autofs:&lt;br /&gt;
&lt;br /&gt;
 service autofs reload&lt;br /&gt;
 service autofs restart&lt;br /&gt;
&lt;br /&gt;
Remove from the end of the &#039;&#039;/etc/passwd&#039;&#039; line &#039;&#039;&#039;+::::::&#039;&#039;&#039;, and add following:&lt;br /&gt;
&lt;br /&gt;
 hpsrun:x:8796:9998:hpsrun Account:/home/hpsrun:/bin/tcsh&lt;br /&gt;
 clasrun:x:2508:9998:Online DAQ:/home/clasrun:/bin/tcsh&lt;br /&gt;
 clasioc:x:6008:9998:CLAS IOCs:/home/clasioc:/bin/tcsh&lt;br /&gt;
 clas12run:x:6007:146:clas12run Account:/home/clas12run:/bin/tcsh&lt;br /&gt;
 clascron:x:3888:146:CLAS Cron Jobs:/home/clascron:/bin/tcsh&lt;br /&gt;
 clasboot:x:6000:146:Boot Scripts Only:/home/clasboot:/bin/tcsh&lt;br /&gt;
 clasmail:x:6003:146:CLAS Automated Mail:/home/clasmail:/bin/tcsh&lt;br /&gt;
 epics:x:5001:146:EPICS Account:/home/epics:/bin/tcsh&lt;br /&gt;
 nagios:x:6246:9997:Nagios:/home/nagios:/bin/tcsh&lt;br /&gt;
 +@clon_cluster::::::&lt;br /&gt;
 +sshd::::::&lt;br /&gt;
 +::::::/bin/false&lt;br /&gt;
&lt;br /&gt;
Update &#039;&#039;/etc/shadow&#039;&#039;, adding passwords for local accounts (copy it from another machine).&lt;br /&gt;
&lt;br /&gt;
Add following to &#039;&#039;/etc/group&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 clon:x:383:clascron&lt;br /&gt;
 onliners:x:9998:abbottd,avakian,baltzell,battagli,brooksw,bruhwel,boiarino,carman,chen,clasboot,clascron,clasrun,cole,cuevas,davidl,danagu,dugger,elton,epics,fklein,gilfoyle,giovanet,golovach,gurjyan,heddle,heyes,hovanes,jacobsg,jenkins,kliv,lcsmith,marki,mestayer,nerses,parkkj,pasyuk,primex,ripani,rossi,saw,staylor,sytnik,taiuti,taylorw,timmer,wooyoung&lt;br /&gt;
&lt;br /&gt;
== RHEL7 (64 bit) ==&lt;br /&gt;
&lt;br /&gt;
Installed using DVD provided by Computer Center, currently RHEL7.3. Requires MAC address to be registered with Computer Center (using jnet.jlab.org as &#039;boiarino&#039;) because it is network-based installation. On DELL servers, hold F2 after power on and go to &#039;Device Settings&#039; to see mac address. Remember machine memory size as well, will needed when create partitions, find it in &#039;System BIOS -&amp;gt; Memory Settings&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: all disks will be reformatted in a process, all information will be lost !&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dialog:&lt;br /&gt;
&lt;br /&gt;
* boot: &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Please enter the hostname of this system: &amp;lt;hostname&amp;gt; &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* What type of system are you building? (D)esktop: &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Is this a CUE level 1 or CUE level 2 System build (1/2): 2 &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Please enter the System Admin&#039;s CUE username: boiarino &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Do you want to use the default partitioning scheme (y/n)? n &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Are you sure you want to use your own partitioning scheme (y/n)? y &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Choose &#039;Standard Partition&#039; scheme and create following partitions: /boot - 1GB, swap - double memory size, / - the rest of space.&lt;br /&gt;
&lt;br /&gt;
Installation will proceed. When prompted, remove installation disk and reboot machine if not done automatically.&lt;br /&gt;
&lt;br /&gt;
After reboot patching process will be started and it will take a while, do not interrupt it, otherwise system will not be installed correctly.&lt;br /&gt;
&lt;br /&gt;
When machine reboots for the last time, ask Paul Letta to set usual hallb root password. From now on remote root access is possible. Alternatively, user &#039;&#039;boiarino&#039;&#039; can execute most of actions using &#039;&#039;sudo&#039;&#039;,&lt;br /&gt;
like &#039;&#039;sudo emacs&#039;&#039; for protected files. &#039;&#039;sudo reboot&#039;&#039; etc.&lt;br /&gt;
&lt;br /&gt;
Go to /boot/grub2 and modify file grub.cfg, Linux kernel boot options, adding options &#039;&#039;net.ifnames=0 biosdevname=0&#039;&#039;, so your boot string has following section:&lt;br /&gt;
&lt;br /&gt;
 ..... rhgb net.ifnames=0 biosdevname=0 quiet .....&lt;br /&gt;
&lt;br /&gt;
so whole line looks something like this:&lt;br /&gt;
&lt;br /&gt;
 linux16 /vmlinuz-3.10.0-327.18.2.el7.x86_64 root=UUID=b5d1b5ad-e3f6-4db4-8972-aa9c1a91d116 ro vconsole.keymap=us crashkernel=auto  vconsole.font=latarcyrheb-sun16 rhgb net.ifnames=0 biosdevname=0 quiet LANG=en_US.UTF-8&lt;br /&gt;
&lt;br /&gt;
Reboot machine, ethernet ports must be named &#039;&#039;eth0&#039;&#039;, &#039;&#039;eth1&#039;&#039; etc.&lt;br /&gt;
&lt;br /&gt;
To update manually, use commands &#039;&#039;yum list updates&#039;&#039; and &#039;&#039;yum update&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; add machine to the appropriate &#039;&#039;&#039;puppet&#039;&#039;&#039; group, it will do all following automatically (hopefully).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; on RHEL7.9, RPM EPEL REPO is not enabled by default, which prevents from installing nload, itcl, itk etc. To bring it back, it can be copied it from older machine, for example:&lt;br /&gt;
&lt;br /&gt;
 cd /etc/yum.repos.d&lt;br /&gt;
 scp clondaq7:/etc/yum.repos.d/epel.repo .&lt;br /&gt;
 cd /etc/pki/rpm-gpg&lt;br /&gt;
 scp clondaq7:/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 .&lt;br /&gt;
&lt;br /&gt;
Alternatively, following can be used to add repo&#039;s:&lt;br /&gt;
&lt;br /&gt;
 subscription-manager repos --enable &amp;lt;repo_id&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In particular, following have to be enabled to get nload, xpdf, python-alembic, tix, itcl, itk etc:&lt;br /&gt;
&lt;br /&gt;
 subscription-manager repos --enable JLab_EPEL_EPEL_7&lt;br /&gt;
 subscription-manager repos --enable rhel-7-workstation-optional-rpms&lt;br /&gt;
&lt;br /&gt;
Repo ID&#039;s can be obtained by:&lt;br /&gt;
&lt;br /&gt;
 subscription-manager repos --list&lt;br /&gt;
&lt;br /&gt;
Installed repo&#039;s can be seen by:&lt;br /&gt;
&lt;br /&gt;
 yum repolist&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Yum updates&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Edit the &#039;&#039;/etc/yum.conf&#039;&#039; file and add the following line to force installation of the 32bit and 64bit libraries:&lt;br /&gt;
&lt;br /&gt;
 multilib_policy=all&lt;br /&gt;
&lt;br /&gt;
Install following packages:&lt;br /&gt;
&lt;br /&gt;
 yum install xterm mesa-dri-drivers telnet rsh readline-devel net-snmp-utils tigervnc-server tigervnc xpdf nload mariadb-devel libxml2-devel glibc-devel qt-devel python-alembic openssl-devel apr-devel&lt;br /&gt;
 yum install libconfig-devel # recent addition for CODA libraries&lt;br /&gt;
&lt;br /&gt;
Fonts for EPICS EDMs:&lt;br /&gt;
&lt;br /&gt;
 yum install xorg-x11-fonts-75dpi xorg-x11-fonts-ISO8859-1-75dpi bitmap-miscfixed-fonts&lt;br /&gt;
 yum install bitmap-console-fonts bitmap-fixed-fonts bitmap-lucida-typewriter-fonts&lt;br /&gt;
 ln -s  /usr/share/X11/fonts/100dpi /etc/X11/fontpath.d/xorg-x11-fonts-100dpi:pri=60&lt;br /&gt;
 ln -s  /usr/share/X11/fonts/75dpi /etc/X11/fontpath.d/xorg-x11-fonts-75dpi:pri=50&lt;br /&gt;
 ln -s  /usr/share/X11/fonts/misc /etc/X11/fontpath.d/xorg-x11-fonts-misc:pri=40&lt;br /&gt;
 ln -s  /usr/share/fonts/bitmap /etc/X11/fontpath.d/bitmap-fonts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Do following to be able to compile and run 32-bit apps on 64-bit machine (for compatibility with 32bit applications):&lt;br /&gt;
&lt;br /&gt;
 yum install libXpm-devel libXaw-devel motif-devel glibc-devel ncurses-devel readline-devel&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Modify file &#039;&#039;/etc/passwd&#039;&#039; adding following:&lt;br /&gt;
&lt;br /&gt;
 hpsrun:x:8796:9998:hpsrun Account:/home/hpsrun:/bin/tcsh&lt;br /&gt;
 clasrun:x:2508:9998:Online DAQ:/home/clasrun:/bin/tcsh&lt;br /&gt;
 clasioc:x:6008:9998:CLAS IOCs:/home/clasioc:/bin/tcsh&lt;br /&gt;
 clas12run:x:6007:146:clas12run Account:/home/clas12run:/bin/tcsh&lt;br /&gt;
 clascron:x:3888:146:CLAS Cron Jobs:/home/clascron:/bin/tcsh&lt;br /&gt;
 clasboot:x:6000:146:Boot Scripts Only:/home/clasboot:/bin/tcsh&lt;br /&gt;
 clasmail:x:6003:146:CLAS Automated Mail:/home/clasmail:/bin/tcsh&lt;br /&gt;
 epics:x:5001:146:EPICS Account:/home/epics:/bin/tcsh&lt;br /&gt;
 nagios:x:6246:9997:Nagios:/home/nagios:/bin/tcsh&lt;br /&gt;
 +@clon_cluster::::::&lt;br /&gt;
 +sshd::::::&lt;br /&gt;
 +::::::/bin/false&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: user-related lines must be removed, like&lt;br /&gt;
&lt;br /&gt;
 +boiarino::::::&lt;br /&gt;
&lt;br /&gt;
as well as&lt;br /&gt;
&lt;br /&gt;
 +::::::&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: assumed that following line is in already:&lt;br /&gt;
&lt;br /&gt;
 +@ccc::::::&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: if following line exist, it must be placed in the end, or removed:&lt;br /&gt;
&lt;br /&gt;
 +::::::/bin/false&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Modify file &#039;&#039;/etc/group&#039;&#039; adding following:&lt;br /&gt;
&lt;br /&gt;
 onliners::9998:heyes,hujl,rwm,timmer,wolin,taylorw,cuevas,abbottd,abulafia,anciant,anghi,aswin,auger,avakian,banta,barrow,battagli,bjlee,bogdan,brooksw,bruhwel,boiarino,buckle,burchesk,burin,bzh,cetina,chen,cole,cords,corvi,costy,davidl,costy,davidl,dcarter,dcurry,dennisl,deppman,dhlee,doughty,drago,dytman,dugger,dugger,elton,fedro,ficenec,fklein,france,freyberg,gholden,gilfoyle,golovach,gurjyan,haddock,heddle,jenkins,jhardie,jmorris,kellyk,klusman,kmkim,kossov,lcsmith,longhi,manak,marchand,marki,mastersj,mjohnson,mosbackr,mueller,muguira,murphyl,necaise,odonnell,opper,parkkj,pasyuk,phkim,piot,riccardi,richardt,ripani,rossi,saw,sergpozd,serov,sholt,staylor,taiuti,tang,tedeschi,vineyard,vlassov,vvsap,weygand,wooyoung,burchesk,clasrun,giovanet,clasboot,clascoda,clasroot,clasmail,clascron,trigger,epics,southern,carstens,ccutter,danagu,heyes,huertas,jacobsg,kliv,lachniet,mestayer,primex,hovanes,nerses,sytnik,baltzell,carman&lt;br /&gt;
 clon::383:clascoda,clascron,clasmail&lt;br /&gt;
 nagios::9997:nagios&lt;br /&gt;
&lt;br /&gt;
Modify file &#039;&#039;/etc/shadow&#039;&#039; using an example from another RHEL7 clon machine (clonioc2 etc). Do &#039;&#039;chmod 600 shadow&#039;&#039; before editing and &#039;&#039;chmod 000 shadow&#039;&#039; after.&lt;br /&gt;
&lt;br /&gt;
Make sure file &#039;&#039;/etc/ssh/sshd_config&#039;&#039; has following line uncommented (must be pushed in by CC security scripts):&lt;br /&gt;
&lt;br /&gt;
 ##PermitUserEnvironment yes&lt;br /&gt;
&lt;br /&gt;
NOT NEEDED, DONE IN THE END OF FILE ALREADY !!! Uncomment following in file &#039;&#039;/etc/ssh/ssh_config&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 ##Host *&lt;br /&gt;
 ##ForwardX11 yes&lt;br /&gt;
&lt;br /&gt;
Add line &#039;export NO_AT_BRIDGE=1&#039; to the file &#039;/etc/environment&#039; to suppress annoying messages like &#039;** (emacs:38714): WARNING **: Couldn&#039;t register with accessibility bus: Did not receive a reply.&#039;&lt;br /&gt;
&lt;br /&gt;
If big (&amp;gt;2GB) partition to be formated, do following (for example /dev/sdb):&lt;br /&gt;
&lt;br /&gt;
 parted /dev/sdb&lt;br /&gt;
 (parted) print&lt;br /&gt;
 (parted) mklabel gpt&lt;br /&gt;
 (parted) print&lt;br /&gt;
 mkpart primary 0GB 25855.2GB&lt;br /&gt;
 (parted) print&lt;br /&gt;
 (parted) quit&lt;br /&gt;
&lt;br /&gt;
 mkfs.xfs /dev/sdb1&lt;br /&gt;
&lt;br /&gt;
then create /data and mount it using &#039;&#039;/etc/fstab&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 /dev/sdb1                                 /data                   xfs     defaults        1 2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; sometimes machine can loose NIS connection, then ssh to it becomes intermittent; if it happens ssh as root (may have to try several times) and run command&lt;br /&gt;
&lt;br /&gt;
 ypwhich&lt;br /&gt;
&lt;br /&gt;
to shows NIS server. If it returns nothing check file &#039;&#039;/etc/resolv.conf&#039;&#039;, it must have following (as on July 2019):&lt;br /&gt;
&lt;br /&gt;
 search jlab.org acc.jlab.org&lt;br /&gt;
 nameserver 129.57.90.255&lt;br /&gt;
 nameserver 129.57.32.101&lt;br /&gt;
&lt;br /&gt;
If file is empty or does not contain right info, fix it. After that run command&lt;br /&gt;
&lt;br /&gt;
 ypbind&lt;br /&gt;
&lt;br /&gt;
It should fix a problem. Run &#039;&#039;ypwhich&#039;&#039; to make sure.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Display Setting:&#039;&#039;&#039; if machine is multi-head, goto &#039;&#039;Applications-&amp;gt;System Tools-&amp;gt;Settings-&amp;gt;Devices-&amp;gt;Displays&#039;&#039; and arrange displays.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Proceed to the [[Linux Customization on CLON Cluster]].&lt;br /&gt;
&lt;br /&gt;
== RHEL6 (64 bit) ==&lt;br /&gt;
&lt;br /&gt;
Installed using CD provided by Computer Center. Requires MAC address to be registered with Computer Center (using jnet.jlab.org as &#039;boiarino&#039;) because it is network-based installation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: all disks will be reformatted in a process, all information will be lost !&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dialog:&lt;br /&gt;
&lt;br /&gt;
* boot: &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ...[D]esktop: [use &#039;s&#039; for server, &#039;d&#039; for desktop] &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* root password: enter root password&lt;br /&gt;
&lt;br /&gt;
* admin user: boiarino&lt;br /&gt;
&lt;br /&gt;
Installation will proceed. When prompted, remove installation disk and reboot machine if not done automatically. After reboot patching process will be started and it will take a while, do not interrupt it, otherwise system will not be installed correctly.&lt;br /&gt;
&lt;br /&gt;
To make emacs work, install&lt;br /&gt;
&lt;br /&gt;
 yum install libotf&lt;br /&gt;
&lt;br /&gt;
Edit the /etc/yum.conf file and add the following line to force installation of teh 32bit and 64bit libraries:&lt;br /&gt;
&lt;br /&gt;
 multilib_policy=all&lt;br /&gt;
&lt;br /&gt;
Install following packages:&lt;br /&gt;
&lt;br /&gt;
 yum install openmotif-devel xinetd mysql-devel cmake libXpm-devel net-snmp-utils&lt;br /&gt;
 yum install mesa-libGL-devel mesa-libGLU-devel mesa-libGLw-devel (for OpenGL, needed by ROOT)&lt;br /&gt;
 yum install libXaw-devel (for xterm)&lt;br /&gt;
 yum install expat-devel libgcj-devel (for evio/et)&lt;br /&gt;
&lt;br /&gt;
 yum install compat-libtermcap (for xterm)&lt;br /&gt;
 ln -s /lib/libtermcap.so.2 /usr/lib/libtermcap.so&lt;br /&gt;
 ###ln -s /lib64/libtermcap.so.2 /usr/lib64/libtermcap.so&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Install following fonts for EPICS EDMs:&lt;br /&gt;
&lt;br /&gt;
 yum install xorg-x11-fonts-75dpi xorg-x11-fonts-ISO8859-1-75dpi bitmap-miscfixed-fonts&lt;br /&gt;
 yum install bitmap-console-fonts bitmap-fixed-fonts bitmap-lucida-typewriter-fonts&lt;br /&gt;
 ln -s  /usr/share/X11/fonts/100dpi /etc/X11/fontpath.d/xorg-x11-fonts-100dpi:pri=60&lt;br /&gt;
 ln -s  /usr/share/X11/fonts/75dpi /etc/X11/fontpath.d/xorg-x11-fonts-75dpi:pri=50&lt;br /&gt;
 ln -s  /usr/share/X11/fonts/misc /etc/X11/fontpath.d/xorg-x11-fonts-misc:pri=40&lt;br /&gt;
 ln -s  /usr/share/fonts/bitmap /etc/X11/fontpath.d/bitmap-fonts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; Useful &#039;&#039;yum&#039;&#039; commands:&lt;br /&gt;
&lt;br /&gt;
 yum whatprovides libstdc++.so.5 - show which package contains libstdc++.so.5&lt;br /&gt;
&lt;br /&gt;
== RHEL5 ==&lt;br /&gt;
&lt;br /&gt;
Installed using CD provided by Computer Center. Requires MAC address to be registered with Computer Center (email to helpdesk@jlab.org) because it is network-based installation.&lt;br /&gt;
&lt;br /&gt;
Dialog:&lt;br /&gt;
&lt;br /&gt;
* boot: &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ...[D]esktop: Server (it is ignored, will do Desktop anyway ...)&lt;br /&gt;
&lt;br /&gt;
* root password: enter root password&lt;br /&gt;
&lt;br /&gt;
* system user: &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* manually partition disk: 100MB /boot, 2048 etc MB swap, the rest /.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CFENGINE&#039;&#039;&#039;: there are procesess restoring some system config files (in particular &#039;&#039;/etc/ssh/sshd_config&#039;&#039;) in according to the Computer Center - maintained templete. To shut them down: (1) comment out &#039;&#039;cfengine&#039;&#039;-related stuff in root cronjobs; (2) do &#039;&#039;/etc/init.d/cfengine stop&#039;&#039;; (3) do &#039;&#039;chkconfig cfengine off&#039;&#039;. Ask CC (Sherman White, Paul Letta) to fix templete.&lt;br /&gt;
&lt;br /&gt;
Run &#039;&#039;/usr/bin/system-config-authentication&#039;&#039; and set NIS servers list as &#039;&#039;clon00,clon10,nis1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Add following in the end of &#039;&#039;/etc/passwd&#039;&#039;:&lt;br /&gt;
 clasrun:x:2508:9998:Online DAQ:/home/clasrun:/bin/tcsh&lt;br /&gt;
 clas12run:x:6007:146:clas12run Account:/home/clas12run:/bin/tcsh&lt;br /&gt;
 clascron:x:6005:146:CLAS Cron Jobs:/home/clascron:/bin/tcsh&lt;br /&gt;
 clasboot:x:6000:146:Boot Scripts Only:/home/clasboot:/bin/tcsh&lt;br /&gt;
 clasmail:x:6003:146:CLAS Automated Mail:/home/clasmail:/bin/tcsh&lt;br /&gt;
 epics:x:5001:146:EPICS Account:/home/epics:/bin/tcsh&lt;br /&gt;
 nagios:x:6246:9997:Nagios:/home/nagios:/bin/tcsh&lt;br /&gt;
 +@clon_cluster::::::&lt;br /&gt;
 +@ccc::::::&lt;br /&gt;
&lt;br /&gt;
Add following in the end of &#039;&#039;/etc/group&#039;&#039;:&lt;br /&gt;
 onliners::9998:heyes,hujl,rwm,timmer,wolin,taylorw,cuevas,abbottd,abulafia,anciant,anghi,aswin,auger,avakian,banta,barrow,battagli,bjlee,bogdan,brooksw,bruhwel,boiarino,buckle,burchesk,burin,bzh,cetina,chen,cole,cords,corvi,costy,davidl,costy,davidl,dcarter,dcurry,dennisl,deppman,dhlee,doughty,drago,dytman,dugger,dugger,elton,fedro,ficenec,fklein,france,freyberg,gholden,gilfoyle,golovach,gurjyan,haddock,heddle,jenkins,jhardie,jmorris,kellyk,klusman,kmkim,kossov,lcsmith,longhi,manak,marchand,marki,mastersj,mjohnson,mosbackr,mueller,muguira,murphyl,necaise,odonnell,opper,parkkj,pasyuk,phkim,piot,riccardi,richardt,ripani,rossi,saw,sergpozd,serov,sholt,staylor,taiuti,tang,tedeschi,vineyard,vlassov,vvsap,weygand,wooyoung,burchesk,clasrun,giovanet,clasboot,clascoda,clasroot,clasmail,clascron,trigger,epics,southern,carstens,ccutter,danagu,heyes,huertas,jacobsg,kliv,lachniet,mestayer,primex,hovanes,nerses,sytnik&lt;br /&gt;
 clon::383:clascoda,clascron,clasmail&lt;br /&gt;
 nagios::9997:nagios&lt;br /&gt;
&lt;br /&gt;
Create &#039;&#039;/etc/shadow&#039;&#039; files with entries for users clasrun, epics and nagios (copy from another machine).&lt;br /&gt;
&lt;br /&gt;
Install updates: normally all updates should be installed by now, it can be done manually by commands&lt;br /&gt;
 yum list updates&lt;br /&gt;
 yum update&lt;br /&gt;
&lt;br /&gt;
Configure [[SSH]].&lt;br /&gt;
&lt;br /&gt;
Install missing packages:&lt;br /&gt;
 yum install openmotif-devel xinetd mysql-devel cmake&lt;br /&gt;
&lt;br /&gt;
Some additional packages on request (for EPICS):&lt;br /&gt;
&lt;br /&gt;
 yum install mc lapack lapack-devel blas blas-devel giflib-devel&lt;br /&gt;
&lt;br /&gt;
Proceed to the [[Linux Customization on CLON Cluster]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PROBLEMS&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
1. /usr/lib/libg2c.so link is missing&lt;br /&gt;
&lt;br /&gt;
FIXED ??? 2. /usr/lib/libXm.so link is missing&lt;br /&gt;
&lt;br /&gt;
3. Created /etc/shadow file for clasrun, epics and nagios&lt;br /&gt;
&lt;br /&gt;
== RHEL4 ==&lt;br /&gt;
&lt;br /&gt;
Get RHEL4 CDs from Paul Letta.&lt;br /&gt;
&lt;br /&gt;
Connect terminal, keyboard and mouse.&lt;br /&gt;
&lt;br /&gt;
Boot from CD1. Follow instructions. When asked, choose following options:&lt;br /&gt;
&lt;br /&gt;
* Choose &#039;Manually partition with Disk Druid&#039;, set /boot to 100MB, then / to 40GB, then swap to 8192MB or at least double memory size. The rest of disk can be set as /space.&lt;br /&gt;
&lt;br /&gt;
* Network: choose manually, type clonpc2.jlab.org; click &#039;EDIT&#039;, deactivate &#039;Configure using DHCP&#039;,&lt;br /&gt;
type IP address and netmask (255.255.255.0), click Ok.&lt;br /&gt;
Type Gateway (for example 129.57.167.99) and 3 DNS servers (129.57.167.5,129.57.167.14,129.57.32.100).&lt;br /&gt;
&lt;br /&gt;
* Choose &#039;No firewall&#039;&lt;br /&gt;
&lt;br /&gt;
* Disable &#039;SELinux&#039;&lt;br /&gt;
&lt;br /&gt;
* Choose &#039;Customize software packages to be installed&#039;, click &#039;Everything&#039;.&lt;br /&gt;
&lt;br /&gt;
You will be asked to install CD2, CD3 and CD4, then CD1 again.&lt;br /&gt;
Then you will be asked to click &#039;Reboot&#039;. First remove CD, then click &#039;Reboot&#039;.&lt;br /&gt;
You will be asked few more questions. When asked to activate service, choose&lt;br /&gt;
&#039;Tell me why I need to register ..&#039; and click &#039;Next&#039;. Choose &#039;I can not complete registration ..&#039;&lt;br /&gt;
and click &#039;Next&#039;. You will see &#039;System user&#039; screen, click &#039;Use network login..&#039;.&lt;br /&gt;
Choose &#039;Enable NIS support&#039; and click &#039;Configure NIS&#039;. Type NIS Domain: &#039;CCCHP&#039; and NIS Server: clon00.jlab.org.&lt;br /&gt;
Finish installation process.&lt;br /&gt;
&lt;br /&gt;
* fix files &#039;&#039;/etc/passwd&#039;&#039;, &#039;&#039;/etc/shadow&#039;&#039; and &#039;&#039;/etc/group&#039;&#039; adding clasrun etc (see examples on another machines).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: if machine has multiple network ports, Linux may not assign them properly to specified IP names and addresses. If problem occures, open network GUI and delete all existing records. After that, click &#039;&#039;New&#039;&#039; and pick hadrware port you want to configure from the list of available ports (tricky part is to know which RJ-45 connector corresponds to which port ..). Configure and activate it, make sure it works. Repeat for other ports. Results will be stored in directory &#039;&#039;/etc/sysconfig/network-scripts&#039;&#039;, file names will be &#039;&#039;ifcfg-eth0&#039;&#039;, &#039;&#039;ifcfg-eth1&#039;&#039; etc. If modifying those files manually, restart network by &#039;&#039;/etc/init.d/network restart&#039;&#039;. Finally, set routing, for example for &#039;&#039;clonmon&#039;&#039; command &#039;&#039;route -n&#039;&#039; shows following:&lt;br /&gt;
 Kernel IP routing table&lt;br /&gt;
 Destination     Gateway         Genmask         Flags Metric Ref    Use Iface&lt;br /&gt;
 129.57.160.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1&lt;br /&gt;
 129.57.68.0     0.0.0.0         255.255.255.0   U     0      0        0 eth3&lt;br /&gt;
 129.57.69.0     0.0.0.0         255.255.255.0   U     0      0        0 dev5937&lt;br /&gt;
 129.57.64.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0&lt;br /&gt;
 169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth3&lt;br /&gt;
 0.0.0.0         129.57.68.100   0.0.0.0         UG    0      0        0 eth3&lt;br /&gt;
Run following commands:&lt;br /&gt;
 /sbin/route add -net 129.57.160.0 netmask 255.255.255.0 gw 129.57.160.5 dev eth1&lt;br /&gt;
 /sbin/route add -net 129.57.68.0 netmask 255.255.255.0 gw 129.57.68.26 dev eth3&lt;br /&gt;
 /sbin/route add -net 129.57.69.0 netmask 255.255.255.0 gw 129.57.69.206 dev dev5937&lt;br /&gt;
 /sbin/route add -net 129.57.64.0 netmask 255.255.255.0 gw 129.57.64.57 dev eth0&lt;br /&gt;
Now &#039;&#039;route -n&#039;&#039; shows following:&lt;br /&gt;
 Kernel IP routing table&lt;br /&gt;
 Destination     Gateway         Genmask         Flags Metric Ref    Use Iface&lt;br /&gt;
 129.57.160.0    129.57.160.5    255.255.255.0   UG    0      0        0 eth1&lt;br /&gt;
 129.57.160.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1&lt;br /&gt;
 129.57.68.0     129.57.68.26    255.255.255.0   UG    0      0        0 eth3&lt;br /&gt;
 129.57.68.0     0.0.0.0         255.255.255.0   U     0      0        0 eth3&lt;br /&gt;
 129.57.69.0     129.57.69.206   255.255.255.0   UG    0      0        0 dev5937&lt;br /&gt;
 129.57.69.0     0.0.0.0         255.255.255.0   U     0      0        0 dev5937&lt;br /&gt;
 129.57.64.0     129.57.64.57    255.255.255.0   UG    0      0        0 eth0&lt;br /&gt;
 129.57.64.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0&lt;br /&gt;
 169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth3&lt;br /&gt;
 0.0.0.0         129.57.68.100   0.0.0.0         UG    0      0        0 eth3&lt;br /&gt;
In that example automount will do configured using &#039;&#039;clonmon-daq1&#039;&#039; interface, because default &#039;&#039;clonmon&#039;&#039; interface is on external subnet. To make that routing table permanent (retore it after reboot) I tried to add four files with following contents to the &#039;&#039;/etc/sysconfig/network-scripts&#039;&#039; directory:&lt;br /&gt;
 route-eth1:&lt;br /&gt;
   GATEWAY0=129.57.160.5&lt;br /&gt;
   NETMASK0=255.255.255.0&lt;br /&gt;
   ADDRESS0=129.57.160.0&lt;br /&gt;
 route-eth3:&lt;br /&gt;
   GATEWAY0=129.57.68.26&lt;br /&gt;
   NETMASK0=255.255.255.0&lt;br /&gt;
   ADDRESS0=129.57.68.0&lt;br /&gt;
 route-dev5937:&lt;br /&gt;
   GATEWAY0=129.57.69.206&lt;br /&gt;
   NETMASK0=255.255.255.0&lt;br /&gt;
   ADDRESS0=129.57.69.0&lt;br /&gt;
 route-eth0:&lt;br /&gt;
   GATEWAY0=129.57.64.57&lt;br /&gt;
   NETMASK0=255.255.255.0&lt;br /&gt;
   ADDRESS0=129.57.64.0&lt;br /&gt;
It did not worked. Then I added four &#039;&#039;/sbin/route add ..&#039;&#039; lines to &#039;&#039;/etc/rc.local&#039;&#039; script, and it worked.&lt;br /&gt;
&lt;br /&gt;
From now on you can use remote &#039;ssh&#039; connection.&lt;br /&gt;
&lt;br /&gt;
* To configure your system to use the patch server, issue the following commands as root:&lt;br /&gt;
 # mount jlabsite:/site /mnt&lt;br /&gt;
 # /mnt/CC/linux/satellite-connect --patchall&lt;br /&gt;
The script will prompt you for an activation key, but if you don&#039;t know what this is, just hit ENTER and it will use a sensible default.  Depending on how many patches need to be applied to your system to bring it up to the current level, this script may take a very long time to run.  When it finishes, you should reboot your machine to make the new patches take effect.&lt;br /&gt;
&lt;br /&gt;
To install updates later run &#039;&#039;up2date -uf&#039;&#039; as &#039;&#039;root&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Configure [[SSH]].&lt;br /&gt;
&lt;br /&gt;
* Proceed with [[Linux Customization on CLON Cluster]] if applicable.&lt;br /&gt;
&lt;br /&gt;
To boot Linux in single user mode (no graphics), add &#039;&#039;single&#039;&#039; to the end of boot line during boot process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;background info&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Add startup script&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Create script in &#039;&#039;/etc/init.d/&#039;&#039; directory (use existing scripts as example). Must have a line like&lt;br /&gt;
 # chkconfig:	- 91 09&lt;br /&gt;
which specifies start and stop order. Run commands&lt;br /&gt;
 chkconfig --add &amp;lt;scriptname&amp;gt;&lt;br /&gt;
 chkconfig --level 3 &amp;lt;scriptname&amp;gt; on&lt;br /&gt;
for every level you want that script to be executed (usualy 3 and/or 4 and/or 5). Check if it os done using command&lt;br /&gt;
 chkconfig --list | grep &amp;lt;scriptname&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;xxx&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can choose to download the RHEL operating system directly from the Red Hat Web site and not receive a media kit from HP containing the software. This scenario occurs when the media option AJR is deselected from the order. (The media kit option is always selected by default. )&lt;br /&gt;
&lt;br /&gt;
It is necessary to register at the Red Hat Web site prior to download. Registration requires the activation code that each customer receives from HP when ordering either RHEL.&lt;br /&gt;
&lt;br /&gt;
You can download RHEL for each available platform as four CD ISO images or one DVD ISO image.&lt;br /&gt;
&lt;br /&gt;
Use the following procedure to download RHEL and create the installation media:&lt;br /&gt;
&lt;br /&gt;
   1.&lt;br /&gt;
&lt;br /&gt;
      Register and log in at the following Red Hat Web site:&lt;br /&gt;
&lt;br /&gt;
      www.redhat.com/rhn&lt;br /&gt;
   2.&lt;br /&gt;
&lt;br /&gt;
      Click on channels and then select Red Hat Enterprise Linux ES (v.4 for 64–bit Intel Itanium).&lt;br /&gt;
   3.&lt;br /&gt;
&lt;br /&gt;
      Select Downloads and then download the ISO images of install, compatibility and source disks&lt;br /&gt;
&lt;br /&gt;
      Files with ia64 in the name are for the Itanium platform.&lt;br /&gt;
   4.&lt;br /&gt;
&lt;br /&gt;
      Create the CDs or a DVD from the ISO images.&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
	IMPORTANT: Create the CDs or DVD using the contents of the ISO images. Do not create the CDs or DVD by burning the .iso files themselves to CD or DVD. For example, if you are using K3b to burn a CD, click Tools&amp;gt;CD&amp;gt;Burn CD Image, select the .iso image, then click Burn.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bootup scripts&#039;&#039;&#039; for example for level 5 execution (multiuser with X):&lt;br /&gt;
&lt;br /&gt;
 cp &amp;lt;script-file&amp;gt; /etc/init.d/&lt;br /&gt;
 chmod +x /etc/init.d/&amp;lt;script-file&amp;gt;&lt;br /&gt;
 ln -s /etc/init.d/&amp;lt;scriptfile&amp;gt; /etc/rc.d/rc5.d/S50&amp;lt;scriptfile&amp;gt;&lt;br /&gt;
 ln -s /etc/init.d/&amp;lt;scriptfile&amp;gt; /etc/rc.d/rc5.d/K50&amp;lt;scriptfile&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changing hostname/IP address&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 Changing hostname on RHEL&lt;br /&gt;
 1. Change the HOSTNAME line in /etc/sysconfig/network&lt;br /&gt;
 2. Change the hostname (FQDN and alias) in /etc/hosts&lt;br /&gt;
 3. Run &#039;/bin/hostname new_hostname&#039; for the hostname change to take effect immediately.&lt;br /&gt;
 4. Run &#039;/sbin/service syslog restart&#039; for syslog to log using the new hostname.&lt;br /&gt;
 A reboot is not required to change the system hostname.&lt;br /&gt;
&lt;br /&gt;
 IP address: You have to change the IP address entry in&lt;br /&gt;
 /etc/sysconfig/network-scripts/ifcfg-eth0.&lt;/div&gt;</summary>
		<author><name>Boiarino</name></author>
	</entry>
	<entry>
		<id>https://clonwiki0.jlab.org/wiki/index.php?title=Linux_Installation_Procedure&amp;diff=8711</id>
		<title>Linux Installation Procedure</title>
		<link rel="alternate" type="text/html" href="https://clonwiki0.jlab.org/wiki/index.php?title=Linux_Installation_Procedure&amp;diff=8711"/>
		<updated>2026-03-18T15:18:36Z</updated>

		<summary type="html">&lt;p&gt;Boiarino: /* RHEL9 (64 bit) - machine under puppet control */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Dell servers hardware trick(s) ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;!!! if BIOS date/time is incorrect, it may prevent redhat subscription and installation to work correctly, set it to correct value !!! (it was not confirmed, problem may be different and was fixed at the same time as time was correctly set) &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* if BIOS does not remember time setting after power unplugged, battery on motherboard may need to be replaced&lt;br /&gt;
&lt;br /&gt;
* if looks dead, remove the power cords, then held in the on button for 30 seconds; then plug it back in and it may boots up fine - known Dell feature&lt;br /&gt;
&lt;br /&gt;
== ARM (CentsOS7) ==&lt;br /&gt;
&lt;br /&gt;
See [[yum]] for specifics.&lt;br /&gt;
&lt;br /&gt;
 yum install xauth wget bzip2 xterm expat-devel libX11-devel libXpm-devel motif-devel mariadb-devel&lt;br /&gt;
&lt;br /&gt;
== RHEL9 (64 bit) - machine under puppet control ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: select installation type &#039;&#039;&#039;H&#039;&#039;&#039;, then type &#039;&#039;&#039;B&#039;&#039;&#039;.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: during custom disk partitioning, select &#039;Standard&#039; for every partition, if you want it to be standard, or &#039;Raid&#039; if applicable&lt;br /&gt;
&lt;br /&gt;
Root password will be set by puppet during installation, as well as most other needed settings.&lt;br /&gt;
&lt;br /&gt;
Install useful pachages:&lt;br /&gt;
 yum install ncdu mysql gfortran&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: graphic screen is disabled, run following command as root:&lt;br /&gt;
 systemctl set-default graphical.target&lt;br /&gt;
&lt;br /&gt;
== RHEL9 (64 bit) - for machine NOT under puppet control ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: select installation type &#039;&#039;&#039;D&#039;&#039;&#039; (not &#039;&#039;&#039;S&#039;&#039;&#039;, otherwise it will not be level 2 server)&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: during custom disk partitioning, select &#039;Standard&#039; for every partition, if you want it to be standard, or &#039;Raid&#039; if applicable&lt;br /&gt;
&lt;br /&gt;
When installation complete, ssh as authorized user and do following:&lt;br /&gt;
&lt;br /&gt;
 sudo yum install emacs&lt;br /&gt;
 cd /etc&lt;br /&gt;
 sudo chmod a+rw shadow&lt;br /&gt;
 sudo emacs shadow&lt;br /&gt;
&lt;br /&gt;
Copy to /etc/shadow root and other needed passwords from another clon machine. &lt;br /&gt;
&lt;br /&gt;
 sudo chmod a-rw shadow&lt;br /&gt;
&lt;br /&gt;
After that, type &#039;&#039;su&#039;&#039; to become superuser. All following settings can be done now without typing &#039;&#039;sudo&#039;&#039; every time. You still will not be able to ssh remotely as root - always ssh as authorized user and type &#039;&#039;su&#039;&#039; to become root.&lt;br /&gt;
&lt;br /&gt;
Update /etc/passwd and /etc/group using another clon machine as example.&lt;br /&gt;
&lt;br /&gt;
 yum install expat-devel libXaw-devel mysql-devel motif-devel ncurses-devel apr-devel net-snmp-utils&lt;br /&gt;
 yum install xorg-x11-utils # for xprop/xwininfo/etc creg stuff&lt;br /&gt;
 yum install s-nail # for /usr/bin/mail&lt;br /&gt;
 yum install ncdu&lt;br /&gt;
 yum install libconfig-devel # recent addition for CODA libraries&lt;br /&gt;
&lt;br /&gt;
To be able to ssh to old machines (like vme controllers under CentOS5), run following as root:&lt;br /&gt;
&lt;br /&gt;
 update-crypto-policies --set LEGACY&lt;br /&gt;
&lt;br /&gt;
and then probably reboot, not sure.&lt;br /&gt;
&lt;br /&gt;
Somebody mentioned also adding &#039;&#039;RequiredRSASize 1024&#039;&#039; to a config file in &#039;&#039;/etc/ssh/ssh_config.d/&#039;&#039;, but I did not do it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    Note: this changes all daemons and system settings and is a bit overkill if you only need to adjust the settings for ssh and sshd.&lt;br /&gt;
&lt;br /&gt;
    Exclude (only) sshd from the system-wide cryptographic policy. You opt-out by editing /etc/sysconfig/sshd and uncommenting the line # CRYPTO_POLICY= , (if necessary you can then adjust adjust /etc/ssh/sshd_config and add legacy crypto settings) and restart the ssh daemon.&lt;br /&gt;
&lt;br /&gt;
For the ssh command line client on the RHEL 9 system: you&#039;re recommended to edit ˜/.ssh/config and override the modern/secure system wide ssh client defaults by adding a Host entry that adds support for suitable legacy encryption options for that particular host:&lt;br /&gt;
&lt;br /&gt;
#    ˜/.ssh/config&lt;br /&gt;
&lt;br /&gt;
Host rhel6.example.com&lt;br /&gt;
  KexAlgorithms +diffie-hellman-group14-sha1&lt;br /&gt;
  MACs +hmac-sha1&lt;br /&gt;
  HostKeyAlgorithms +ssh-rsa&lt;br /&gt;
  PubkeyAcceptedKeyTypes +ssh-rsa&lt;br /&gt;
  PubkeyAcceptedAlgorithms +ssh-rsa&lt;br /&gt;
&lt;br /&gt;
Prepare auto-mounting directories:&lt;br /&gt;
&lt;br /&gt;
 cd /&lt;br /&gt;
 mv apps apps.orig&lt;br /&gt;
 mv home home.orig&lt;br /&gt;
 mv scratch scratch.orig&lt;br /&gt;
 mv work work.orig&lt;br /&gt;
 mkdir apps&lt;br /&gt;
 mkdir home&lt;br /&gt;
 mkdir scratch&lt;br /&gt;
 mkdir work&lt;br /&gt;
 mkdir logs&lt;br /&gt;
 cd /usr&lt;br /&gt;
 mv local local.orig&lt;br /&gt;
 mkdir local&lt;br /&gt;
 mkdir clas&lt;br /&gt;
 mkdir clas12&lt;br /&gt;
 mkdir downloads&lt;br /&gt;
 cd&lt;br /&gt;
&lt;br /&gt;
== RHEL8 (64 bit) ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; to boot from USB stick, insert USB stick, turn machine ON holding F2, and in BIOS Boot Configuration, set Enable Security Boot to OFF, save and exit, holding F2. When in BIOS again, in Boot Configuration make &#039;&#039;UEFI PHY USB ...&#039;&#039; first in boot sequence, local hard drive second, disable all other boot options, save and exit. Do NOT hold F2, Linux installation from USB stick will start. &#039;&#039;&#039;IMPORTANT:&#039;&#039;&#039; when asked about D/S options (very first question in installation process), &#039;&#039;&#039;REMOVE USB STICK BEFORE ANSWERING QUESTION ABOUT DESKTOP/SERVER&#039;&#039;&#039;, otherwise it will be destroyed by following installation steps !!!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; to disable/enable puppet, do following as root: &lt;br /&gt;
 puppet agent --disable &amp;quot;temporary&amp;quot;&lt;br /&gt;
 puppet agent --enable&lt;br /&gt;
&lt;br /&gt;
 yum install emacs&lt;br /&gt;
 yum install xorg-x11-fonts-misc&lt;br /&gt;
&lt;br /&gt;
Move and create some directories in preparation for automounts:&lt;br /&gt;
&lt;br /&gt;
 cd /&lt;br /&gt;
 mv apps apps.orig&lt;br /&gt;
 mv home home.orig&lt;br /&gt;
 mv scratch scratch.orig&lt;br /&gt;
 mkdir apps&lt;br /&gt;
 mkdir home&lt;br /&gt;
 mkdir scratch&lt;br /&gt;
 mkdir work&lt;br /&gt;
 mkdir logs&lt;br /&gt;
 cd /usr&lt;br /&gt;
 mv local local.orig&lt;br /&gt;
 mkdir local&lt;br /&gt;
 mkdir clas&lt;br /&gt;
 mkdir clas12&lt;br /&gt;
 mkdir downloads&lt;br /&gt;
 cd&lt;br /&gt;
&lt;br /&gt;
Add line &#039;&#039;&#039;+dir:/etc/auto.master.d&#039;&#039;&#039; to &#039;&#039;/etc/auto.master&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Create file &#039;&#039;/etc/auto.master.d/direct.autofs&#039;&#039; with the line &#039;&#039;&#039;/- /etc/auto.direct&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Create file &#039;&#039;/etc/auto.direct&#039;&#039; with the following contents:&lt;br /&gt;
&lt;br /&gt;
 # machine-dependent system directories&lt;br /&gt;
 /apps                 -rw,bg     clonfs1:/vol/apps/RHEL8_x86_64&lt;br /&gt;
 /usr/local            -rw,bg     clonfs1:/vol/local/RHEL8_x86_64&lt;br /&gt;
 # machine-independent system directories&lt;br /&gt;
 /home                 -rw,bg     clonfs1:/vol/home&lt;br /&gt;
 #/work                 -rw,bg     clonfs1-old:/vol/work&lt;br /&gt;
 /scratch              -rw,bg     clonfs1:/vol/scratch&lt;br /&gt;
 # machine-independent clas directories&lt;br /&gt;
 /usr/downloads        -rw,bg     clonfs1:/vol/downloads&lt;br /&gt;
 /usr/clas             -rw,bg     clonfs1:/vol/clas&lt;br /&gt;
 /usr/clas12           -rw,bg     clonfs1:/vol/clas12&lt;br /&gt;
 # Used for data storage before shipping to tape&lt;br /&gt;
 #/logs                 -rw,bg     clonfs1-old:/vol/logs&lt;br /&gt;
&lt;br /&gt;
Restart autofs:&lt;br /&gt;
&lt;br /&gt;
 service autofs reload&lt;br /&gt;
 service autofs restart&lt;br /&gt;
&lt;br /&gt;
Remove from the end of the &#039;&#039;/etc/passwd&#039;&#039; line &#039;&#039;&#039;+::::::&#039;&#039;&#039;, and add following:&lt;br /&gt;
&lt;br /&gt;
 hpsrun:x:8796:9998:hpsrun Account:/home/hpsrun:/bin/tcsh&lt;br /&gt;
 clasrun:x:2508:9998:Online DAQ:/home/clasrun:/bin/tcsh&lt;br /&gt;
 clasioc:x:6008:9998:CLAS IOCs:/home/clasioc:/bin/tcsh&lt;br /&gt;
 clas12run:x:6007:146:clas12run Account:/home/clas12run:/bin/tcsh&lt;br /&gt;
 clascron:x:3888:146:CLAS Cron Jobs:/home/clascron:/bin/tcsh&lt;br /&gt;
 clasboot:x:6000:146:Boot Scripts Only:/home/clasboot:/bin/tcsh&lt;br /&gt;
 clasmail:x:6003:146:CLAS Automated Mail:/home/clasmail:/bin/tcsh&lt;br /&gt;
 epics:x:5001:146:EPICS Account:/home/epics:/bin/tcsh&lt;br /&gt;
 nagios:x:6246:9997:Nagios:/home/nagios:/bin/tcsh&lt;br /&gt;
 +@clon_cluster::::::&lt;br /&gt;
 +sshd::::::&lt;br /&gt;
 +::::::/bin/false&lt;br /&gt;
&lt;br /&gt;
Update &#039;&#039;/etc/shadow&#039;&#039;, adding passwords for local accounts (copy it from another machine).&lt;br /&gt;
&lt;br /&gt;
Add following to &#039;&#039;/etc/group&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 clon:x:383:clascron&lt;br /&gt;
 onliners:x:9998:abbottd,avakian,baltzell,battagli,brooksw,bruhwel,boiarino,carman,chen,clasboot,clascron,clasrun,cole,cuevas,davidl,danagu,dugger,elton,epics,fklein,gilfoyle,giovanet,golovach,gurjyan,heddle,heyes,hovanes,jacobsg,jenkins,kliv,lcsmith,marki,mestayer,nerses,parkkj,pasyuk,primex,ripani,rossi,saw,staylor,sytnik,taiuti,taylorw,timmer,wooyoung&lt;br /&gt;
&lt;br /&gt;
== RHEL7 (64 bit) ==&lt;br /&gt;
&lt;br /&gt;
Installed using DVD provided by Computer Center, currently RHEL7.3. Requires MAC address to be registered with Computer Center (using jnet.jlab.org as &#039;boiarino&#039;) because it is network-based installation. On DELL servers, hold F2 after power on and go to &#039;Device Settings&#039; to see mac address. Remember machine memory size as well, will needed when create partitions, find it in &#039;System BIOS -&amp;gt; Memory Settings&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: all disks will be reformatted in a process, all information will be lost !&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dialog:&lt;br /&gt;
&lt;br /&gt;
* boot: &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Please enter the hostname of this system: &amp;lt;hostname&amp;gt; &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* What type of system are you building? (D)esktop: &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Is this a CUE level 1 or CUE level 2 System build (1/2): 2 &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Please enter the System Admin&#039;s CUE username: boiarino &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Do you want to use the default partitioning scheme (y/n)? n &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Are you sure you want to use your own partitioning scheme (y/n)? y &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Choose &#039;Standard Partition&#039; scheme and create following partitions: /boot - 1GB, swap - double memory size, / - the rest of space.&lt;br /&gt;
&lt;br /&gt;
Installation will proceed. When prompted, remove installation disk and reboot machine if not done automatically.&lt;br /&gt;
&lt;br /&gt;
After reboot patching process will be started and it will take a while, do not interrupt it, otherwise system will not be installed correctly.&lt;br /&gt;
&lt;br /&gt;
When machine reboots for the last time, ask Paul Letta to set usual hallb root password. From now on remote root access is possible. Alternatively, user &#039;&#039;boiarino&#039;&#039; can execute most of actions using &#039;&#039;sudo&#039;&#039;,&lt;br /&gt;
like &#039;&#039;sudo emacs&#039;&#039; for protected files. &#039;&#039;sudo reboot&#039;&#039; etc.&lt;br /&gt;
&lt;br /&gt;
Go to /boot/grub2 and modify file grub.cfg, Linux kernel boot options, adding options &#039;&#039;net.ifnames=0 biosdevname=0&#039;&#039;, so your boot string has following section:&lt;br /&gt;
&lt;br /&gt;
 ..... rhgb net.ifnames=0 biosdevname=0 quiet .....&lt;br /&gt;
&lt;br /&gt;
so whole line looks something like this:&lt;br /&gt;
&lt;br /&gt;
 linux16 /vmlinuz-3.10.0-327.18.2.el7.x86_64 root=UUID=b5d1b5ad-e3f6-4db4-8972-aa9c1a91d116 ro vconsole.keymap=us crashkernel=auto  vconsole.font=latarcyrheb-sun16 rhgb net.ifnames=0 biosdevname=0 quiet LANG=en_US.UTF-8&lt;br /&gt;
&lt;br /&gt;
Reboot machine, ethernet ports must be named &#039;&#039;eth0&#039;&#039;, &#039;&#039;eth1&#039;&#039; etc.&lt;br /&gt;
&lt;br /&gt;
To update manually, use commands &#039;&#039;yum list updates&#039;&#039; and &#039;&#039;yum update&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; add machine to the appropriate &#039;&#039;&#039;puppet&#039;&#039;&#039; group, it will do all following automatically (hopefully).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; on RHEL7.9, RPM EPEL REPO is not enabled by default, which prevents from installing nload, itcl, itk etc. To bring it back, it can be copied it from older machine, for example:&lt;br /&gt;
&lt;br /&gt;
 cd /etc/yum.repos.d&lt;br /&gt;
 scp clondaq7:/etc/yum.repos.d/epel.repo .&lt;br /&gt;
 cd /etc/pki/rpm-gpg&lt;br /&gt;
 scp clondaq7:/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 .&lt;br /&gt;
&lt;br /&gt;
Alternatively, following can be used to add repo&#039;s:&lt;br /&gt;
&lt;br /&gt;
 subscription-manager repos --enable &amp;lt;repo_id&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In particular, following have to be enabled to get nload, xpdf, python-alembic, tix, itcl, itk etc:&lt;br /&gt;
&lt;br /&gt;
 subscription-manager repos --enable JLab_EPEL_EPEL_7&lt;br /&gt;
 subscription-manager repos --enable rhel-7-workstation-optional-rpms&lt;br /&gt;
&lt;br /&gt;
Repo ID&#039;s can be obtained by:&lt;br /&gt;
&lt;br /&gt;
 subscription-manager repos --list&lt;br /&gt;
&lt;br /&gt;
Installed repo&#039;s can be seen by:&lt;br /&gt;
&lt;br /&gt;
 yum repolist&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Yum updates&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Edit the &#039;&#039;/etc/yum.conf&#039;&#039; file and add the following line to force installation of the 32bit and 64bit libraries:&lt;br /&gt;
&lt;br /&gt;
 multilib_policy=all&lt;br /&gt;
&lt;br /&gt;
Install following packages:&lt;br /&gt;
&lt;br /&gt;
 yum install xterm mesa-dri-drivers telnet rsh readline-devel net-snmp-utils tigervnc-server tigervnc xpdf nload mariadb-devel libxml2-devel glibc-devel qt-devel python-alembic openssl-devel apr-devel&lt;br /&gt;
 yum install libconfig-devel # recent addition for CODA libraries&lt;br /&gt;
&lt;br /&gt;
Fonts for EPICS EDMs:&lt;br /&gt;
&lt;br /&gt;
 yum install xorg-x11-fonts-75dpi xorg-x11-fonts-ISO8859-1-75dpi bitmap-miscfixed-fonts&lt;br /&gt;
 yum install bitmap-console-fonts bitmap-fixed-fonts bitmap-lucida-typewriter-fonts&lt;br /&gt;
 ln -s  /usr/share/X11/fonts/100dpi /etc/X11/fontpath.d/xorg-x11-fonts-100dpi:pri=60&lt;br /&gt;
 ln -s  /usr/share/X11/fonts/75dpi /etc/X11/fontpath.d/xorg-x11-fonts-75dpi:pri=50&lt;br /&gt;
 ln -s  /usr/share/X11/fonts/misc /etc/X11/fontpath.d/xorg-x11-fonts-misc:pri=40&lt;br /&gt;
 ln -s  /usr/share/fonts/bitmap /etc/X11/fontpath.d/bitmap-fonts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Do following to be able to compile and run 32-bit apps on 64-bit machine (for compatibility with 32bit applications):&lt;br /&gt;
&lt;br /&gt;
 yum install libXpm-devel libXaw-devel motif-devel glibc-devel ncurses-devel readline-devel&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Modify file &#039;&#039;/etc/passwd&#039;&#039; adding following:&lt;br /&gt;
&lt;br /&gt;
 hpsrun:x:8796:9998:hpsrun Account:/home/hpsrun:/bin/tcsh&lt;br /&gt;
 clasrun:x:2508:9998:Online DAQ:/home/clasrun:/bin/tcsh&lt;br /&gt;
 clasioc:x:6008:9998:CLAS IOCs:/home/clasioc:/bin/tcsh&lt;br /&gt;
 clas12run:x:6007:146:clas12run Account:/home/clas12run:/bin/tcsh&lt;br /&gt;
 clascron:x:3888:146:CLAS Cron Jobs:/home/clascron:/bin/tcsh&lt;br /&gt;
 clasboot:x:6000:146:Boot Scripts Only:/home/clasboot:/bin/tcsh&lt;br /&gt;
 clasmail:x:6003:146:CLAS Automated Mail:/home/clasmail:/bin/tcsh&lt;br /&gt;
 epics:x:5001:146:EPICS Account:/home/epics:/bin/tcsh&lt;br /&gt;
 nagios:x:6246:9997:Nagios:/home/nagios:/bin/tcsh&lt;br /&gt;
 +@clon_cluster::::::&lt;br /&gt;
 +sshd::::::&lt;br /&gt;
 +::::::/bin/false&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: user-related lines must be removed, like&lt;br /&gt;
&lt;br /&gt;
 +boiarino::::::&lt;br /&gt;
&lt;br /&gt;
as well as&lt;br /&gt;
&lt;br /&gt;
 +::::::&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: assumed that following line is in already:&lt;br /&gt;
&lt;br /&gt;
 +@ccc::::::&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: if following line exist, it must be placed in the end, or removed:&lt;br /&gt;
&lt;br /&gt;
 +::::::/bin/false&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Modify file &#039;&#039;/etc/group&#039;&#039; adding following:&lt;br /&gt;
&lt;br /&gt;
 onliners::9998:heyes,hujl,rwm,timmer,wolin,taylorw,cuevas,abbottd,abulafia,anciant,anghi,aswin,auger,avakian,banta,barrow,battagli,bjlee,bogdan,brooksw,bruhwel,boiarino,buckle,burchesk,burin,bzh,cetina,chen,cole,cords,corvi,costy,davidl,costy,davidl,dcarter,dcurry,dennisl,deppman,dhlee,doughty,drago,dytman,dugger,dugger,elton,fedro,ficenec,fklein,france,freyberg,gholden,gilfoyle,golovach,gurjyan,haddock,heddle,jenkins,jhardie,jmorris,kellyk,klusman,kmkim,kossov,lcsmith,longhi,manak,marchand,marki,mastersj,mjohnson,mosbackr,mueller,muguira,murphyl,necaise,odonnell,opper,parkkj,pasyuk,phkim,piot,riccardi,richardt,ripani,rossi,saw,sergpozd,serov,sholt,staylor,taiuti,tang,tedeschi,vineyard,vlassov,vvsap,weygand,wooyoung,burchesk,clasrun,giovanet,clasboot,clascoda,clasroot,clasmail,clascron,trigger,epics,southern,carstens,ccutter,danagu,heyes,huertas,jacobsg,kliv,lachniet,mestayer,primex,hovanes,nerses,sytnik,baltzell,carman&lt;br /&gt;
 clon::383:clascoda,clascron,clasmail&lt;br /&gt;
 nagios::9997:nagios&lt;br /&gt;
&lt;br /&gt;
Modify file &#039;&#039;/etc/shadow&#039;&#039; using an example from another RHEL7 clon machine (clonioc2 etc). Do &#039;&#039;chmod 600 shadow&#039;&#039; before editing and &#039;&#039;chmod 000 shadow&#039;&#039; after.&lt;br /&gt;
&lt;br /&gt;
Make sure file &#039;&#039;/etc/ssh/sshd_config&#039;&#039; has following line uncommented (must be pushed in by CC security scripts):&lt;br /&gt;
&lt;br /&gt;
 ##PermitUserEnvironment yes&lt;br /&gt;
&lt;br /&gt;
NOT NEEDED, DONE IN THE END OF FILE ALREADY !!! Uncomment following in file &#039;&#039;/etc/ssh/ssh_config&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 ##Host *&lt;br /&gt;
 ##ForwardX11 yes&lt;br /&gt;
&lt;br /&gt;
Add line &#039;export NO_AT_BRIDGE=1&#039; to the file &#039;/etc/environment&#039; to suppress annoying messages like &#039;** (emacs:38714): WARNING **: Couldn&#039;t register with accessibility bus: Did not receive a reply.&#039;&lt;br /&gt;
&lt;br /&gt;
If big (&amp;gt;2GB) partition to be formated, do following (for example /dev/sdb):&lt;br /&gt;
&lt;br /&gt;
 parted /dev/sdb&lt;br /&gt;
 (parted) print&lt;br /&gt;
 (parted) mklabel gpt&lt;br /&gt;
 (parted) print&lt;br /&gt;
 mkpart primary 0GB 25855.2GB&lt;br /&gt;
 (parted) print&lt;br /&gt;
 (parted) quit&lt;br /&gt;
&lt;br /&gt;
 mkfs.xfs /dev/sdb1&lt;br /&gt;
&lt;br /&gt;
then create /data and mount it using &#039;&#039;/etc/fstab&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 /dev/sdb1                                 /data                   xfs     defaults        1 2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; sometimes machine can loose NIS connection, then ssh to it becomes intermittent; if it happens ssh as root (may have to try several times) and run command&lt;br /&gt;
&lt;br /&gt;
 ypwhich&lt;br /&gt;
&lt;br /&gt;
to shows NIS server. If it returns nothing check file &#039;&#039;/etc/resolv.conf&#039;&#039;, it must have following (as on July 2019):&lt;br /&gt;
&lt;br /&gt;
 search jlab.org acc.jlab.org&lt;br /&gt;
 nameserver 129.57.90.255&lt;br /&gt;
 nameserver 129.57.32.101&lt;br /&gt;
&lt;br /&gt;
If file is empty or does not contain right info, fix it. After that run command&lt;br /&gt;
&lt;br /&gt;
 ypbind&lt;br /&gt;
&lt;br /&gt;
It should fix a problem. Run &#039;&#039;ypwhich&#039;&#039; to make sure.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Display Setting:&#039;&#039;&#039; if machine is multi-head, goto &#039;&#039;Applications-&amp;gt;System Tools-&amp;gt;Settings-&amp;gt;Devices-&amp;gt;Displays&#039;&#039; and arrange displays.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Proceed to the [[Linux Customization on CLON Cluster]].&lt;br /&gt;
&lt;br /&gt;
== RHEL6 (64 bit) ==&lt;br /&gt;
&lt;br /&gt;
Installed using CD provided by Computer Center. Requires MAC address to be registered with Computer Center (using jnet.jlab.org as &#039;boiarino&#039;) because it is network-based installation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: all disks will be reformatted in a process, all information will be lost !&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dialog:&lt;br /&gt;
&lt;br /&gt;
* boot: &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ...[D]esktop: [use &#039;s&#039; for server, &#039;d&#039; for desktop] &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* root password: enter root password&lt;br /&gt;
&lt;br /&gt;
* admin user: boiarino&lt;br /&gt;
&lt;br /&gt;
Installation will proceed. When prompted, remove installation disk and reboot machine if not done automatically. After reboot patching process will be started and it will take a while, do not interrupt it, otherwise system will not be installed correctly.&lt;br /&gt;
&lt;br /&gt;
To make emacs work, install&lt;br /&gt;
&lt;br /&gt;
 yum install libotf&lt;br /&gt;
&lt;br /&gt;
Edit the /etc/yum.conf file and add the following line to force installation of teh 32bit and 64bit libraries:&lt;br /&gt;
&lt;br /&gt;
 multilib_policy=all&lt;br /&gt;
&lt;br /&gt;
Install following packages:&lt;br /&gt;
&lt;br /&gt;
 yum install openmotif-devel xinetd mysql-devel cmake libXpm-devel net-snmp-utils&lt;br /&gt;
 yum install mesa-libGL-devel mesa-libGLU-devel mesa-libGLw-devel (for OpenGL, needed by ROOT)&lt;br /&gt;
 yum install libXaw-devel (for xterm)&lt;br /&gt;
 yum install expat-devel libgcj-devel (for evio/et)&lt;br /&gt;
&lt;br /&gt;
 yum install compat-libtermcap (for xterm)&lt;br /&gt;
 ln -s /lib/libtermcap.so.2 /usr/lib/libtermcap.so&lt;br /&gt;
 ###ln -s /lib64/libtermcap.so.2 /usr/lib64/libtermcap.so&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Install following fonts for EPICS EDMs:&lt;br /&gt;
&lt;br /&gt;
 yum install xorg-x11-fonts-75dpi xorg-x11-fonts-ISO8859-1-75dpi bitmap-miscfixed-fonts&lt;br /&gt;
 yum install bitmap-console-fonts bitmap-fixed-fonts bitmap-lucida-typewriter-fonts&lt;br /&gt;
 ln -s  /usr/share/X11/fonts/100dpi /etc/X11/fontpath.d/xorg-x11-fonts-100dpi:pri=60&lt;br /&gt;
 ln -s  /usr/share/X11/fonts/75dpi /etc/X11/fontpath.d/xorg-x11-fonts-75dpi:pri=50&lt;br /&gt;
 ln -s  /usr/share/X11/fonts/misc /etc/X11/fontpath.d/xorg-x11-fonts-misc:pri=40&lt;br /&gt;
 ln -s  /usr/share/fonts/bitmap /etc/X11/fontpath.d/bitmap-fonts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; Useful &#039;&#039;yum&#039;&#039; commands:&lt;br /&gt;
&lt;br /&gt;
 yum whatprovides libstdc++.so.5 - show which package contains libstdc++.so.5&lt;br /&gt;
&lt;br /&gt;
== RHEL5 ==&lt;br /&gt;
&lt;br /&gt;
Installed using CD provided by Computer Center. Requires MAC address to be registered with Computer Center (email to helpdesk@jlab.org) because it is network-based installation.&lt;br /&gt;
&lt;br /&gt;
Dialog:&lt;br /&gt;
&lt;br /&gt;
* boot: &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ...[D]esktop: Server (it is ignored, will do Desktop anyway ...)&lt;br /&gt;
&lt;br /&gt;
* root password: enter root password&lt;br /&gt;
&lt;br /&gt;
* system user: &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* manually partition disk: 100MB /boot, 2048 etc MB swap, the rest /.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CFENGINE&#039;&#039;&#039;: there are procesess restoring some system config files (in particular &#039;&#039;/etc/ssh/sshd_config&#039;&#039;) in according to the Computer Center - maintained templete. To shut them down: (1) comment out &#039;&#039;cfengine&#039;&#039;-related stuff in root cronjobs; (2) do &#039;&#039;/etc/init.d/cfengine stop&#039;&#039;; (3) do &#039;&#039;chkconfig cfengine off&#039;&#039;. Ask CC (Sherman White, Paul Letta) to fix templete.&lt;br /&gt;
&lt;br /&gt;
Run &#039;&#039;/usr/bin/system-config-authentication&#039;&#039; and set NIS servers list as &#039;&#039;clon00,clon10,nis1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Add following in the end of &#039;&#039;/etc/passwd&#039;&#039;:&lt;br /&gt;
 clasrun:x:2508:9998:Online DAQ:/home/clasrun:/bin/tcsh&lt;br /&gt;
 clas12run:x:6007:146:clas12run Account:/home/clas12run:/bin/tcsh&lt;br /&gt;
 clascron:x:6005:146:CLAS Cron Jobs:/home/clascron:/bin/tcsh&lt;br /&gt;
 clasboot:x:6000:146:Boot Scripts Only:/home/clasboot:/bin/tcsh&lt;br /&gt;
 clasmail:x:6003:146:CLAS Automated Mail:/home/clasmail:/bin/tcsh&lt;br /&gt;
 epics:x:5001:146:EPICS Account:/home/epics:/bin/tcsh&lt;br /&gt;
 nagios:x:6246:9997:Nagios:/home/nagios:/bin/tcsh&lt;br /&gt;
 +@clon_cluster::::::&lt;br /&gt;
 +@ccc::::::&lt;br /&gt;
&lt;br /&gt;
Add following in the end of &#039;&#039;/etc/group&#039;&#039;:&lt;br /&gt;
 onliners::9998:heyes,hujl,rwm,timmer,wolin,taylorw,cuevas,abbottd,abulafia,anciant,anghi,aswin,auger,avakian,banta,barrow,battagli,bjlee,bogdan,brooksw,bruhwel,boiarino,buckle,burchesk,burin,bzh,cetina,chen,cole,cords,corvi,costy,davidl,costy,davidl,dcarter,dcurry,dennisl,deppman,dhlee,doughty,drago,dytman,dugger,dugger,elton,fedro,ficenec,fklein,france,freyberg,gholden,gilfoyle,golovach,gurjyan,haddock,heddle,jenkins,jhardie,jmorris,kellyk,klusman,kmkim,kossov,lcsmith,longhi,manak,marchand,marki,mastersj,mjohnson,mosbackr,mueller,muguira,murphyl,necaise,odonnell,opper,parkkj,pasyuk,phkim,piot,riccardi,richardt,ripani,rossi,saw,sergpozd,serov,sholt,staylor,taiuti,tang,tedeschi,vineyard,vlassov,vvsap,weygand,wooyoung,burchesk,clasrun,giovanet,clasboot,clascoda,clasroot,clasmail,clascron,trigger,epics,southern,carstens,ccutter,danagu,heyes,huertas,jacobsg,kliv,lachniet,mestayer,primex,hovanes,nerses,sytnik&lt;br /&gt;
 clon::383:clascoda,clascron,clasmail&lt;br /&gt;
 nagios::9997:nagios&lt;br /&gt;
&lt;br /&gt;
Create &#039;&#039;/etc/shadow&#039;&#039; files with entries for users clasrun, epics and nagios (copy from another machine).&lt;br /&gt;
&lt;br /&gt;
Install updates: normally all updates should be installed by now, it can be done manually by commands&lt;br /&gt;
 yum list updates&lt;br /&gt;
 yum update&lt;br /&gt;
&lt;br /&gt;
Configure [[SSH]].&lt;br /&gt;
&lt;br /&gt;
Install missing packages:&lt;br /&gt;
 yum install openmotif-devel xinetd mysql-devel cmake&lt;br /&gt;
&lt;br /&gt;
Some additional packages on request (for EPICS):&lt;br /&gt;
&lt;br /&gt;
 yum install mc lapack lapack-devel blas blas-devel giflib-devel&lt;br /&gt;
&lt;br /&gt;
Proceed to the [[Linux Customization on CLON Cluster]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PROBLEMS&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
1. /usr/lib/libg2c.so link is missing&lt;br /&gt;
&lt;br /&gt;
FIXED ??? 2. /usr/lib/libXm.so link is missing&lt;br /&gt;
&lt;br /&gt;
3. Created /etc/shadow file for clasrun, epics and nagios&lt;br /&gt;
&lt;br /&gt;
== RHEL4 ==&lt;br /&gt;
&lt;br /&gt;
Get RHEL4 CDs from Paul Letta.&lt;br /&gt;
&lt;br /&gt;
Connect terminal, keyboard and mouse.&lt;br /&gt;
&lt;br /&gt;
Boot from CD1. Follow instructions. When asked, choose following options:&lt;br /&gt;
&lt;br /&gt;
* Choose &#039;Manually partition with Disk Druid&#039;, set /boot to 100MB, then / to 40GB, then swap to 8192MB or at least double memory size. The rest of disk can be set as /space.&lt;br /&gt;
&lt;br /&gt;
* Network: choose manually, type clonpc2.jlab.org; click &#039;EDIT&#039;, deactivate &#039;Configure using DHCP&#039;,&lt;br /&gt;
type IP address and netmask (255.255.255.0), click Ok.&lt;br /&gt;
Type Gateway (for example 129.57.167.99) and 3 DNS servers (129.57.167.5,129.57.167.14,129.57.32.100).&lt;br /&gt;
&lt;br /&gt;
* Choose &#039;No firewall&#039;&lt;br /&gt;
&lt;br /&gt;
* Disable &#039;SELinux&#039;&lt;br /&gt;
&lt;br /&gt;
* Choose &#039;Customize software packages to be installed&#039;, click &#039;Everything&#039;.&lt;br /&gt;
&lt;br /&gt;
You will be asked to install CD2, CD3 and CD4, then CD1 again.&lt;br /&gt;
Then you will be asked to click &#039;Reboot&#039;. First remove CD, then click &#039;Reboot&#039;.&lt;br /&gt;
You will be asked few more questions. When asked to activate service, choose&lt;br /&gt;
&#039;Tell me why I need to register ..&#039; and click &#039;Next&#039;. Choose &#039;I can not complete registration ..&#039;&lt;br /&gt;
and click &#039;Next&#039;. You will see &#039;System user&#039; screen, click &#039;Use network login..&#039;.&lt;br /&gt;
Choose &#039;Enable NIS support&#039; and click &#039;Configure NIS&#039;. Type NIS Domain: &#039;CCCHP&#039; and NIS Server: clon00.jlab.org.&lt;br /&gt;
Finish installation process.&lt;br /&gt;
&lt;br /&gt;
* fix files &#039;&#039;/etc/passwd&#039;&#039;, &#039;&#039;/etc/shadow&#039;&#039; and &#039;&#039;/etc/group&#039;&#039; adding clasrun etc (see examples on another machines).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: if machine has multiple network ports, Linux may not assign them properly to specified IP names and addresses. If problem occures, open network GUI and delete all existing records. After that, click &#039;&#039;New&#039;&#039; and pick hadrware port you want to configure from the list of available ports (tricky part is to know which RJ-45 connector corresponds to which port ..). Configure and activate it, make sure it works. Repeat for other ports. Results will be stored in directory &#039;&#039;/etc/sysconfig/network-scripts&#039;&#039;, file names will be &#039;&#039;ifcfg-eth0&#039;&#039;, &#039;&#039;ifcfg-eth1&#039;&#039; etc. If modifying those files manually, restart network by &#039;&#039;/etc/init.d/network restart&#039;&#039;. Finally, set routing, for example for &#039;&#039;clonmon&#039;&#039; command &#039;&#039;route -n&#039;&#039; shows following:&lt;br /&gt;
 Kernel IP routing table&lt;br /&gt;
 Destination     Gateway         Genmask         Flags Metric Ref    Use Iface&lt;br /&gt;
 129.57.160.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1&lt;br /&gt;
 129.57.68.0     0.0.0.0         255.255.255.0   U     0      0        0 eth3&lt;br /&gt;
 129.57.69.0     0.0.0.0         255.255.255.0   U     0      0        0 dev5937&lt;br /&gt;
 129.57.64.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0&lt;br /&gt;
 169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth3&lt;br /&gt;
 0.0.0.0         129.57.68.100   0.0.0.0         UG    0      0        0 eth3&lt;br /&gt;
Run following commands:&lt;br /&gt;
 /sbin/route add -net 129.57.160.0 netmask 255.255.255.0 gw 129.57.160.5 dev eth1&lt;br /&gt;
 /sbin/route add -net 129.57.68.0 netmask 255.255.255.0 gw 129.57.68.26 dev eth3&lt;br /&gt;
 /sbin/route add -net 129.57.69.0 netmask 255.255.255.0 gw 129.57.69.206 dev dev5937&lt;br /&gt;
 /sbin/route add -net 129.57.64.0 netmask 255.255.255.0 gw 129.57.64.57 dev eth0&lt;br /&gt;
Now &#039;&#039;route -n&#039;&#039; shows following:&lt;br /&gt;
 Kernel IP routing table&lt;br /&gt;
 Destination     Gateway         Genmask         Flags Metric Ref    Use Iface&lt;br /&gt;
 129.57.160.0    129.57.160.5    255.255.255.0   UG    0      0        0 eth1&lt;br /&gt;
 129.57.160.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1&lt;br /&gt;
 129.57.68.0     129.57.68.26    255.255.255.0   UG    0      0        0 eth3&lt;br /&gt;
 129.57.68.0     0.0.0.0         255.255.255.0   U     0      0        0 eth3&lt;br /&gt;
 129.57.69.0     129.57.69.206   255.255.255.0   UG    0      0        0 dev5937&lt;br /&gt;
 129.57.69.0     0.0.0.0         255.255.255.0   U     0      0        0 dev5937&lt;br /&gt;
 129.57.64.0     129.57.64.57    255.255.255.0   UG    0      0        0 eth0&lt;br /&gt;
 129.57.64.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0&lt;br /&gt;
 169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth3&lt;br /&gt;
 0.0.0.0         129.57.68.100   0.0.0.0         UG    0      0        0 eth3&lt;br /&gt;
In that example automount will do configured using &#039;&#039;clonmon-daq1&#039;&#039; interface, because default &#039;&#039;clonmon&#039;&#039; interface is on external subnet. To make that routing table permanent (retore it after reboot) I tried to add four files with following contents to the &#039;&#039;/etc/sysconfig/network-scripts&#039;&#039; directory:&lt;br /&gt;
 route-eth1:&lt;br /&gt;
   GATEWAY0=129.57.160.5&lt;br /&gt;
   NETMASK0=255.255.255.0&lt;br /&gt;
   ADDRESS0=129.57.160.0&lt;br /&gt;
 route-eth3:&lt;br /&gt;
   GATEWAY0=129.57.68.26&lt;br /&gt;
   NETMASK0=255.255.255.0&lt;br /&gt;
   ADDRESS0=129.57.68.0&lt;br /&gt;
 route-dev5937:&lt;br /&gt;
   GATEWAY0=129.57.69.206&lt;br /&gt;
   NETMASK0=255.255.255.0&lt;br /&gt;
   ADDRESS0=129.57.69.0&lt;br /&gt;
 route-eth0:&lt;br /&gt;
   GATEWAY0=129.57.64.57&lt;br /&gt;
   NETMASK0=255.255.255.0&lt;br /&gt;
   ADDRESS0=129.57.64.0&lt;br /&gt;
It did not worked. Then I added four &#039;&#039;/sbin/route add ..&#039;&#039; lines to &#039;&#039;/etc/rc.local&#039;&#039; script, and it worked.&lt;br /&gt;
&lt;br /&gt;
From now on you can use remote &#039;ssh&#039; connection.&lt;br /&gt;
&lt;br /&gt;
* To configure your system to use the patch server, issue the following commands as root:&lt;br /&gt;
 # mount jlabsite:/site /mnt&lt;br /&gt;
 # /mnt/CC/linux/satellite-connect --patchall&lt;br /&gt;
The script will prompt you for an activation key, but if you don&#039;t know what this is, just hit ENTER and it will use a sensible default.  Depending on how many patches need to be applied to your system to bring it up to the current level, this script may take a very long time to run.  When it finishes, you should reboot your machine to make the new patches take effect.&lt;br /&gt;
&lt;br /&gt;
To install updates later run &#039;&#039;up2date -uf&#039;&#039; as &#039;&#039;root&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Configure [[SSH]].&lt;br /&gt;
&lt;br /&gt;
* Proceed with [[Linux Customization on CLON Cluster]] if applicable.&lt;br /&gt;
&lt;br /&gt;
To boot Linux in single user mode (no graphics), add &#039;&#039;single&#039;&#039; to the end of boot line during boot process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;background info&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Add startup script&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Create script in &#039;&#039;/etc/init.d/&#039;&#039; directory (use existing scripts as example). Must have a line like&lt;br /&gt;
 # chkconfig:	- 91 09&lt;br /&gt;
which specifies start and stop order. Run commands&lt;br /&gt;
 chkconfig --add &amp;lt;scriptname&amp;gt;&lt;br /&gt;
 chkconfig --level 3 &amp;lt;scriptname&amp;gt; on&lt;br /&gt;
for every level you want that script to be executed (usualy 3 and/or 4 and/or 5). Check if it os done using command&lt;br /&gt;
 chkconfig --list | grep &amp;lt;scriptname&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;xxx&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can choose to download the RHEL operating system directly from the Red Hat Web site and not receive a media kit from HP containing the software. This scenario occurs when the media option AJR is deselected from the order. (The media kit option is always selected by default. )&lt;br /&gt;
&lt;br /&gt;
It is necessary to register at the Red Hat Web site prior to download. Registration requires the activation code that each customer receives from HP when ordering either RHEL.&lt;br /&gt;
&lt;br /&gt;
You can download RHEL for each available platform as four CD ISO images or one DVD ISO image.&lt;br /&gt;
&lt;br /&gt;
Use the following procedure to download RHEL and create the installation media:&lt;br /&gt;
&lt;br /&gt;
   1.&lt;br /&gt;
&lt;br /&gt;
      Register and log in at the following Red Hat Web site:&lt;br /&gt;
&lt;br /&gt;
      www.redhat.com/rhn&lt;br /&gt;
   2.&lt;br /&gt;
&lt;br /&gt;
      Click on channels and then select Red Hat Enterprise Linux ES (v.4 for 64–bit Intel Itanium).&lt;br /&gt;
   3.&lt;br /&gt;
&lt;br /&gt;
      Select Downloads and then download the ISO images of install, compatibility and source disks&lt;br /&gt;
&lt;br /&gt;
      Files with ia64 in the name are for the Itanium platform.&lt;br /&gt;
   4.&lt;br /&gt;
&lt;br /&gt;
      Create the CDs or a DVD from the ISO images.&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
	IMPORTANT: Create the CDs or DVD using the contents of the ISO images. Do not create the CDs or DVD by burning the .iso files themselves to CD or DVD. For example, if you are using K3b to burn a CD, click Tools&amp;gt;CD&amp;gt;Burn CD Image, select the .iso image, then click Burn.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bootup scripts&#039;&#039;&#039; for example for level 5 execution (multiuser with X):&lt;br /&gt;
&lt;br /&gt;
 cp &amp;lt;script-file&amp;gt; /etc/init.d/&lt;br /&gt;
 chmod +x /etc/init.d/&amp;lt;script-file&amp;gt;&lt;br /&gt;
 ln -s /etc/init.d/&amp;lt;scriptfile&amp;gt; /etc/rc.d/rc5.d/S50&amp;lt;scriptfile&amp;gt;&lt;br /&gt;
 ln -s /etc/init.d/&amp;lt;scriptfile&amp;gt; /etc/rc.d/rc5.d/K50&amp;lt;scriptfile&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changing hostname/IP address&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 Changing hostname on RHEL&lt;br /&gt;
 1. Change the HOSTNAME line in /etc/sysconfig/network&lt;br /&gt;
 2. Change the hostname (FQDN and alias) in /etc/hosts&lt;br /&gt;
 3. Run &#039;/bin/hostname new_hostname&#039; for the hostname change to take effect immediately.&lt;br /&gt;
 4. Run &#039;/sbin/service syslog restart&#039; for syslog to log using the new hostname.&lt;br /&gt;
 A reboot is not required to change the system hostname.&lt;br /&gt;
&lt;br /&gt;
 IP address: You have to change the IP address entry in&lt;br /&gt;
 /etc/sysconfig/network-scripts/ifcfg-eth0.&lt;/div&gt;</summary>
		<author><name>Boiarino</name></author>
	</entry>
	<entry>
		<id>https://clonwiki0.jlab.org/wiki/index.php?title=Linux_Boot_Server&amp;diff=8710</id>
		<title>Linux Boot Server</title>
		<link rel="alternate" type="text/html" href="https://clonwiki0.jlab.org/wiki/index.php?title=Linux_Boot_Server&amp;diff=8710"/>
		<updated>2026-03-15T16:59:13Z</updated>

		<summary type="html">&lt;p&gt;Boiarino: /* Setting of the Linux server to be used for PXE and EFI boot of the VME controllers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Main boot server is clon01&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TO DO&#039;&#039;&#039; Check UBOOT commands to erase existing environment variables:&lt;br /&gt;
&lt;br /&gt;
 env default -a -f&lt;br /&gt;
 env erase&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;VTP CentOS boot&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
UBOOT (example for gem0vtp):&lt;br /&gt;
&lt;br /&gt;
 Zynq&amp;gt; printenv&lt;br /&gt;
 autoload=no&lt;br /&gt;
 baudrate=115200&lt;br /&gt;
 bootcmd=run tftpboot&lt;br /&gt;
 bootdelay=3&lt;br /&gt;
 bootro=setenv bootargs ${bootargs} ro&lt;br /&gt;
 bootrw=setenv bootargs ${bootargs} rw&lt;br /&gt;
 devicetree_image=devicetree.dtb&lt;br /&gt;
 devicetree_load_address=0x2000000&lt;br /&gt;
 ethact=ethernet@e000b000&lt;br /&gt;
 ethaddr=ce:ba:f0:03:xx:xx&lt;br /&gt;
 extargs=setenv bootargs ${bootargs} console=ttyPS0,115200 ip=:::::eth0:dhcp uio_pdrv_genirq.of_id=my-uio rootwait cma=384MB&lt;br /&gt;
 fdt_high=0x20000000&lt;br /&gt;
 fdtcontroladdr=3ffa9e30&lt;br /&gt;
 initrd_high=0x20000000&lt;br /&gt;
 kernel_image=uImage-4.4.0-xilinx-00004-g8d932a&lt;br /&gt;
 kernel_load_address=0x2080000&lt;br /&gt;
 load_devicetree=if tftpboot ${devicetree_load_address} ${tftppath}/${devicetree_image}; then echo OK; else echo FAILED; reset; fi;&lt;br /&gt;
 load_dhcp=if dhcp; then echo OK; else echo FAILED; reset; fi;&lt;br /&gt;
 load_kernel=if tftpboot ${kernel_load_address} ${tftppath}/${kernel_image}; then echo OK; else echo FAILED; reset; fi;&lt;br /&gt;
 modeboot=sdboot&lt;br /&gt;
 netmask=255.255.255.0&lt;br /&gt;
 nfsargs=setenv bootargs nfsroot=${rootserverip}:${rootpath},vers=3&lt;br /&gt;
 rootpath=/vol/diskless/CentOS7/armv7/root&lt;br /&gt;
 rootserverip=129.57.167.152&lt;br /&gt;
 serverip=129.57.167.4&lt;br /&gt;
 stderr=serial@e0000000&lt;br /&gt;
 stdin=serial@e0000000&lt;br /&gt;
 stdout=serial@e0000000&lt;br /&gt;
 tftp_boot_string=echo TFTPing Image to RAM&lt;br /&gt;
 tftpboot=run load_dhcp tftp_boot_string nfsargs extargs bootro load_kernel load_devicetree &amp;amp;&amp;amp; bootm ${kernel_load_address} - ${devicetree_load_address}&lt;br /&gt;
 tftpboot_rw=dhcp &amp;amp;&amp;amp; run tftp_boot_string nfsargs extargs bootrw load_kernel load_devicetree &amp;amp;&amp;amp; bootm ${kernel_load_address} - ${devicetree_load_address}&lt;br /&gt;
 tftppath=linux-install/CentOS7-armv7-Diskless&lt;br /&gt;
 &lt;br /&gt;
 Environment size: 1603/131068 bytes&lt;br /&gt;
 Zynq&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy-Paste following on uboot prompt to program above settings (do it by groups as shown, otherwise it may place some bull...):&lt;br /&gt;
&lt;br /&gt;
 setenv bootargs&lt;br /&gt;
 setenv gatewayip&lt;br /&gt;
 setenv ipaddr&lt;br /&gt;
 setenv kernel_path&lt;br /&gt;
 setenv nfsip&lt;br /&gt;
 setenv nfsroot&lt;br /&gt;
 setenv sdboot&lt;br /&gt;
 setenv sdboot_no&lt;br /&gt;
 setenv setboot&lt;br /&gt;
 setenv tftpboot_no&lt;br /&gt;
&lt;br /&gt;
 setenv autoload &#039;no&#039;&lt;br /&gt;
 setenv baudrate &#039;115200&#039;&lt;br /&gt;
 setenv bootcmd &#039;run tftpboot&#039;&lt;br /&gt;
 setenv bootdelay &#039;3&#039;&lt;br /&gt;
 setenv bootro &#039;setenv bootargs ${bootargs} ro&#039;&lt;br /&gt;
 setenv bootrw &#039;setenv bootargs ${bootargs} rw&#039;&lt;br /&gt;
 setenv devicetree_image &#039;devicetree.dtb&#039;&lt;br /&gt;
 setenv devicetree_load_address &#039;0x2000000&#039;&lt;br /&gt;
 setenv ethact &#039;ethernet@e000b000&#039;&lt;br /&gt;
 setenv ethaddr &#039;ce:ba:f0:03:00:d1&#039;&lt;br /&gt;
 setenv extargs &#039;setenv bootargs ${bootargs} console=ttyPS0,115200 ip=:::::eth0:dhcp uio_pdrv_genirq.of_id=my-uio rootwait cma=384MB&#039;&lt;br /&gt;
 setenv fdt_high &#039;0x20000000&#039;&lt;br /&gt;
 setenv fdtcontroladdr &#039;3ffa9e30&#039;&lt;br /&gt;
 setenv initrd_high &#039;0x20000000&#039;&lt;br /&gt;
 setenv kernel_image &#039;uImage-4.4.0-xilinx-00004-g8d932a&#039;&lt;br /&gt;
 setenv kernel_load_address &#039;0x2080000&#039;&lt;br /&gt;
 &lt;br /&gt;
 setenv load_devicetree &#039;if tftpboot ${devicetree_load_address} ${tftppath}/${devicetree_image}; then echo OK; else echo FAILED; reset; fi;&#039;&lt;br /&gt;
 setenv load_dhcp &#039;if dhcp; then echo OK; else echo FAILED; reset; fi;&#039;&lt;br /&gt;
 setenv load_kernel &#039;if tftpboot ${kernel_load_address} ${tftppath}/${kernel_image}; then echo OK; else echo FAILED; reset; fi;&#039;&lt;br /&gt;
 setenv modeboot &#039;sdboot&#039;&lt;br /&gt;
 setenv netmask &#039;255.255.255.0&#039;&lt;br /&gt;
 setenv nfsargs &#039;setenv bootargs nfsroot=${rootserverip}:${rootpath},vers=3&#039;&lt;br /&gt;
 setenv rootpath &#039;/vol/diskless/CentOS7/armv7/root&#039;&lt;br /&gt;
 setenv rootserverip &#039;129.57.167.152&#039;&lt;br /&gt;
 setenv serverip &#039;129.57.167.4&#039;&lt;br /&gt;
 setenv stderr &#039;serial@e0000000&#039;&lt;br /&gt;
 setenv stdin &#039;serial@e0000000&#039;&lt;br /&gt;
 setenv stdout &#039;serial@e0000000&#039;&lt;br /&gt;
 setenv tftp_boot_string &#039;echo TFTPing Image to RAM&#039;&lt;br /&gt;
 &lt;br /&gt;
 setenv tftpboot &#039;run load_dhcp tftp_boot_string nfsargs extargs bootro load_kernel load_devicetree &amp;amp;&amp;amp; bootm ${kernel_load_address} - ${devicetree_load_address}&#039;&lt;br /&gt;
 setenv tftpboot_rw &#039;dhcp &amp;amp;&amp;amp; run tftp_boot_string nfsargs extargs bootrw load_kernel load_devicetree &amp;amp;&amp;amp; bootm ${kernel_load_address} - ${devicetree_load_address}&#039;&lt;br /&gt;
 setenv tftppath &#039;linux-install/CentOS7-armv7-Diskless&#039;&lt;br /&gt;
 &lt;br /&gt;
After that, customize following:&lt;br /&gt;
&lt;br /&gt;
 ethaddr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;tftpboot server settings&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 /tftpboot/linux-install/CentOS7-armv7-Diskless/uImage-4.4.0-xilinx-00004-g8d932a&lt;br /&gt;
                                                uImage-4.4.0-xilinx-00003-gdf4da5&lt;br /&gt;
                                                zynq-jlab-vtp.dtb_fixed_uio&lt;br /&gt;
                                                devicetree.dtb -&amp;gt; zynq-jlab-vtp.dtb_fixed_uio&lt;br /&gt;
&lt;br /&gt;
By default, root filesystem will be read-only. To make it &#039;rw&#039;, stop booting process on serial connection, type &#039;&#039;run tftpboot_rw&#039;&#039; and push &amp;lt;enter&amp;gt;. After that you can ssh as root and run &#039;&#039;yum&#039;&#039; etc.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;VTP Archlinux boot&#039;&#039;&#039; ==&lt;br /&gt;
 &lt;br /&gt;
 Zynq&amp;gt; printenv&lt;br /&gt;
 autoload=no&lt;br /&gt;
 baudrate=115200&lt;br /&gt;
 bootargs=console=ttyPS0,115200 ip=:::::eth0:dhcp nfsroot=${nfsip}:${nfsroot},${nfsargs} uio_pdrv_genirq.of_id=my-uio ro rootwait&lt;br /&gt;
 bootcmd=run $modeboot&lt;br /&gt;
 bootdelay=3&lt;br /&gt;
 devicetree_image=zynq-jlab-vtp.dtb&lt;br /&gt;
 devicetree_load_address=0x2000000&lt;br /&gt;
 ethact=ethernet@e000b000&lt;br /&gt;
 ethaddr=CE:BA:F0:03:00:02&lt;br /&gt;
 fdt_high=0x20000000&lt;br /&gt;
 fdtcontroladdr=3ffa9e30&lt;br /&gt;
 gatewayip=129.57.68.100&lt;br /&gt;
 initrd_high=0x20000000&lt;br /&gt;
 ipaddr=129.57.68.38&lt;br /&gt;
 kernel_image=uImage&lt;br /&gt;
 kernel_load_address=0x2080000&lt;br /&gt;
 kernel_path=linux-install/ArchLinux-armv71&lt;br /&gt;
 modeboot=sdboot&lt;br /&gt;
 netmask=255.255.255.0&lt;br /&gt;
 nfsargs=vers=3,tcp,timeo=600,retrans=10&lt;br /&gt;
 nfsip=129.57.167.152&lt;br /&gt;
 nfsroot=/vol/diskless/ArchLinux/armv7-devel/root&lt;br /&gt;
 sdboot=run setboot; echo Copying Linux from TFTP server to RAM...; echo Download Kernel; if tftpboot 0x2080000 linux-install/ArchLinux-armv71/uImage; then echo OK; else echo FAILED; reset; fi; echo Download DeviceTree; if tftpboot 0x2000000 linux-install/ArchLinux-armv71/zynq-jlab-vtp.dtb; then echo OK; else echo FAILED; reset; fi; echo Boot system; bootm 0x2080000 - 0x2000000&lt;br /&gt;
 sdboot_no=if mmcinfo; then echo Copying Linux from SD to RAM... &amp;amp;&amp;amp; load mmc 0 ${kernel_load_address} ${kernel_image} &amp;amp;&amp;amp; load mmc 0 ${devicetree_load_address} ${devicetree_image} &amp;amp;&amp;amp; bootm ${kernel_load_address} - ${devicetree_load_address}; fi&lt;br /&gt;
 serverip=129.57.167.4&lt;br /&gt;
 setboot=setenv bootargs console=ttyPS0,115200 ip=:::::eth0:dhcp nfsroot=${nfsip}:${nfsroot},${nfsargs} uio_pdrv_genirq.of_id=my-uio ro rootwait&lt;br /&gt;
 stderr=serial@e0000000&lt;br /&gt;
 stdin=serial@e0000000&lt;br /&gt;
 stdout=serial@e0000000&lt;br /&gt;
 tftpboot_no=echo Copying Linux from tftp server to RAM... &amp;amp;&amp;amp;tftpboot ${kernel_load_address} linux_vtp/${kernel_image} &amp;amp;&amp;amp;tftpboot ${devicetree_load_address} linux_vtp/${devicetree_image} &amp;amp;&amp;amp;bootm ${kernel_load_address} - ${devicetree_load_address};&lt;br /&gt;
 &lt;br /&gt;
 Environment size: 1828/131068 bytes&lt;br /&gt;
 Zynq&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy-Paste following on uboot prompt to program above settings (do it line-by-line, otherwise it may place some bull...):&lt;br /&gt;
&lt;br /&gt;
 setenv autoload &#039;no&#039;&lt;br /&gt;
 setenv baudrate &#039;115200&#039;&lt;br /&gt;
 setenv bootargs &#039;console=ttyPS0,115200 ip=:::::eth0:dhcp nfsroot=${nfsip}:${nfsroot},${nfsargs} uio_pdrv_genirq.of_id=my-uio ro rootwait&#039;&lt;br /&gt;
 setenv bootcmd &#039;run $modeboot&#039;&lt;br /&gt;
 setenv bootdelay &#039;3&#039;&lt;br /&gt;
 setenv devicetree_image &#039;zynq-jlab-vtp.dtb&#039;&lt;br /&gt;
 setenv devicetree_load_address &#039;0x2000000&#039;&lt;br /&gt;
 setenv ethact &#039;ethernet@e000b000&#039;&lt;br /&gt;
 setenv ethaddr &#039;CE:BA:F0:03:00:02&#039;&lt;br /&gt;
 setenv fdt_high &#039;0x20000000&#039;&lt;br /&gt;
 setenv fdtcontroladdr &#039;3ffa9e30&#039;&lt;br /&gt;
 setenv gatewayip &#039;129.57.68.100&#039;&lt;br /&gt;
 setenv initrd_high &#039;0x20000000&#039;&lt;br /&gt;
 setenv ipaddr &#039;129.57.68.38&#039;&lt;br /&gt;
 setenv kernel_image &#039;uImage&#039;&lt;br /&gt;
 setenv kernel_load_address &#039;0x2080000&#039;&lt;br /&gt;
 setenv kernel_path &#039;linux-install/ArchLinux-armv71&#039;&lt;br /&gt;
 setenv modeboot &#039;sdboot&#039;&lt;br /&gt;
 setenv netmask &#039;255.255.255.0&#039;&lt;br /&gt;
 setenv nfsargs &#039;vers=3,tcp,timeo=600,retrans=10&#039;&lt;br /&gt;
 setenv nfsip &#039;129.57.167.152&#039;&lt;br /&gt;
 setenv nfsroot &#039;/vol/diskless/ArchLinux/armv7-devel/root&#039;&lt;br /&gt;
 setenv sdboot &#039;run setboot; echo Copying Linux from TFTP server to RAM...; echo Download Kernel; if tftpboot 0x2080000 linux-install/ArchLinux-armv71/uImage; then echo OK; else echo FAILED; reset; fi; echo Download DeviceTree; if tftpboot 0x2000000 linux-install/ArchLinux-armv71/zynq-jlab-vtp.dtb; then echo OK; else echo FAILED; reset; fi; echo Boot system; bootm 0x2080000 - 0x2000000&#039;&lt;br /&gt;
 setenv sdboot_no &#039;if mmcinfo; then echo Copying Linux from SD to RAM... &amp;amp;&amp;amp; load mmc 0 ${kernel_load_address} ${kernel_image} &amp;amp;&amp;amp; load mmc 0 ${devicetree_load_address} ${devicetree_image} &amp;amp;&amp;amp; bootm ${kernel_load_address} - ${devicetree_load_address}; fi&#039;&lt;br /&gt;
 setenv serverip &#039;129.57.167.4&#039;&lt;br /&gt;
 setenv setboot &#039;setenv bootargs console=ttyPS0,115200 ip=:::::eth0:dhcp nfsroot=${nfsip}:${nfsroot},${nfsargs} uio_pdrv_genirq.of_id=my-uio ro rootwait&#039;&lt;br /&gt;
 setenv stderr &#039;serial@e0000000&#039;&lt;br /&gt;
 setenv stdin &#039;serial@e0000000&#039;&lt;br /&gt;
 setenv stdout &#039;serial@e0000000&#039;&lt;br /&gt;
 setenv tftpboot_no &#039;echo Copying Linux from tftp server to RAM... &amp;amp;&amp;amp;tftpboot ${kernel_load_address} linux_vtp/${kernel_image} &amp;amp;&amp;amp;tftpboot ${devicetree_load_address} linux_vtp/${devicetree_image} &amp;amp;&amp;amp;bootm ${kernel_load_address} - ${devicetree_load_address};&#039;&lt;br /&gt;
&lt;br /&gt;
After that, customize following:&lt;br /&gt;
 ethaddr&lt;br /&gt;
 gatewayip&lt;br /&gt;
 ipaddr&lt;br /&gt;
 netmask&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Setting of the Linux server to be used for PXE and EFI boot of the VME controllers&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Login to the server as root. Copy two files to the root directory and untar them:&lt;br /&gt;
 cd /&lt;br /&gt;
 cp /usr/downloads/tftpboot.tar.gz_clondaq15 tftpboot.tar.gz&lt;br /&gt;
 cp /usr/downloads/diskless.tar.gz_clondaq15 diskless.tar.gz&lt;br /&gt;
 gunzip tftpboot.tar.gz&lt;br /&gt;
 gunzip diskless.tar.gz&lt;br /&gt;
 tar xvf tftpboot.tar&lt;br /&gt;
 tar xvf diskless.tar&lt;br /&gt;
 rm tftpboot.tar diskless.tar&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Make sure correct snapshot location in root area &#039;&#039;/diskless/CentOS7/x86_64/root/etc/sysconfig/readonly-root&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 CLIENTSTATE=192.168.10.1:/diskless/CentOS7/x86_64/snapshot&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;/diskless/CentOS7/x86_64/root&#039;&#039; area, &#039;&#039;/etc/ssh/sshd_config&#039;&#039; must have following setting (to allow remote ssh):&lt;br /&gt;
&lt;br /&gt;
 #UsePAM yes&lt;br /&gt;
&lt;br /&gt;
it will be propagated to the controller&#039;s snapshot area on the first boot when corresponding &#039;&#039;snapshot/&amp;lt;vme_controller_name&amp;gt;&#039;&#039; directory will be created. Not sure about other settings:&lt;br /&gt;
&lt;br /&gt;
 HostbasedAuthentication yes&lt;br /&gt;
 #HostbasedAuthentication no&lt;br /&gt;
&lt;br /&gt;
 IgnoreRhosts no&lt;br /&gt;
 #IgnoreRhosts yes&lt;br /&gt;
&lt;br /&gt;
 PasswordAuthentication yes&lt;br /&gt;
 #PasswordAuthentication yes&lt;br /&gt;
 PasswordAuthentication yes&lt;br /&gt;
&lt;br /&gt;
 #UsePrivilegeSeparation sandbox		# Default for new installations.&lt;br /&gt;
 UsePrivilegeSeparation sandbox		# Default for new installations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To add or remove VME controllers, modify following files:&lt;br /&gt;
 /var/named/10.168.192.in-addr.arpa.db&lt;br /&gt;
 /var/named/clontest.com&lt;br /&gt;
 /etc/dhcp/dhcpd.conf&lt;br /&gt;
&lt;br /&gt;
restart corresponding services:&lt;br /&gt;
 systemctl restart dhcpd&lt;br /&gt;
 systemctl restart named&lt;br /&gt;
&lt;br /&gt;
and check services status:&lt;br /&gt;
 systemctl status dhcpd&lt;br /&gt;
 systemctl status named&lt;br /&gt;
&lt;br /&gt;
To set gateway, add&lt;br /&gt;
 net.ipv4.ip_forward=1&lt;br /&gt;
to &#039;&#039;/etc/sysctl.conf&#039;&#039; and execute&lt;br /&gt;
 sysctl -p&lt;br /&gt;
&lt;br /&gt;
Configure [[NFS]]&lt;br /&gt;
&lt;br /&gt;
Configure [[DHCP server]]&lt;br /&gt;
&lt;br /&gt;
Configure [[DNS server]] (&#039;&#039;&#039;NOTE:&#039;&#039;&#039; resolv.conf is different for local server !)&lt;br /&gt;
&lt;br /&gt;
Configure [[Tftp]] and [[Tftpboot]]&lt;br /&gt;
&lt;br /&gt;
Configure [[Iptables]]&lt;br /&gt;
&lt;br /&gt;
Do not forget (is it for controllers ?):&lt;br /&gt;
 chattr +i /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 yum install ypbind (????)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Configuring snapshot area&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The list of files and directories which suppose to be in snapshot area (which has RW permissions) should be set in config file &#039;&#039;/diskless/.../snapshot/files&#039;&#039; for CentOS5, or in config file &#039;&#039;/diskless/../root/etc/statetab&#039;&#039; for CentOS7. In particular, &#039;&#039;/et&#039;&#039; has to be added there, and also directory &#039;&#039;/diskless/.../root/et&#039;&#039; should be created.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Reboot server, make sure everything is running as expected.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Configuring in chroot&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: using &#039;&#039;chroot&#039;&#039; method will allow to run &#039;&#039;yum&#039;&#039;, but &#039;&#039;systemctl&#039;&#039; commands will not work. Instead of using &#039;&#039;chroot&#039;&#039;, you may boot coontroller with &#039;&#039;rw&#039;&#039; option instead of &#039;&#039;ro&#039;&#039;. For VME boot, it can be done by changing &#039;&#039;grub.cnf&#039;&#039;, while for VTP boot you have to stop boot proocess using serial connection, and then type &#039;&#039;run tftpboot_rw&#039;&#039;.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Since root area in VME controllers will be read-only, you cannot ssh to controllers as root and change anything there, only snapshot area can be modified. To make changes in root area, in particular to configure and run &#039;&#039;yum&#039;&#039;, &#039;&#039;chroot&#039; command should be used. Login to the boot server as root and do following:&lt;br /&gt;
&lt;br /&gt;
 mount -o bind /home /diskless/CentOS7/x86_64/root/home&lt;br /&gt;
 mount -o bind /usr/local /diskless/CentOS7/x86_64/root/usr/local&lt;br /&gt;
 mount -o bind /usr/clas12 /diskless/CentOS7/x86_64/root/usr/clas12&lt;br /&gt;
 chroot /diskless/CentOS7/x86_64/root&lt;br /&gt;
&lt;br /&gt;
After that you will see all root directories as if you login to VME controller, and modifications can be made.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Configure yum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Add &#039;&#039;multilib_policy=all&#039;&#039; to &#039;&#039;/etc/yum.conf&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Add (and remove the rest ?) following to &#039;&#039;/etc/yum.repos.d/CentOS-Base.repo&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 [base]&lt;br /&gt;
 name=CentOS-$releasever - Base&lt;br /&gt;
 baseurl=http://archive.kernel.org/centos-vault/centos/$releasever/os/$basearch/&lt;br /&gt;
&lt;br /&gt;
Clean yum database:&lt;br /&gt;
&lt;br /&gt;
 rm /var/lib/rpm/__db.*&lt;br /&gt;
&lt;br /&gt;
Install following using yum:&lt;br /&gt;
&lt;br /&gt;
 yum install motif-devel tcl-devel tk-devel libXpm-devel apr-devel libXaw-devel ncurses-devel libconfig-devel&lt;br /&gt;
&lt;br /&gt;
Install following for &#039;&#039;dbedit&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 yum install tix itcl itk&lt;br /&gt;
&lt;br /&gt;
Install remaining tcl stuff from &#039;&#039;/usr/local/src&#039;&#039;, mounted as &#039;&#039;/zzz&#039;&#039; above:&lt;br /&gt;
 &lt;br /&gt;
 cd /zzz/mysqltcl-3.052&lt;br /&gt;
 make install&lt;br /&gt;
 ln -s /usr/lib/mysqltcl-3.052 /usr/lib64/tcl8.5/mysqltcl-3.052&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: Login from console may not work because of file &#039;&#039;/etc/securetty&#039;&#039; permissions, it must be 644.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: THere is a service PAM, it may prevent login from console if some required services did not start. To work around, comment out some lines in &#039;&#039;/etc/pam.d/system-auth-ac&#039;&#039; file:&lt;br /&gt;
&lt;br /&gt;
 #%PAM-1.0&lt;br /&gt;
 # This file is auto-generated.&lt;br /&gt;
 # User changes will be destroyed the next time authconfig is run.&lt;br /&gt;
 #auth        required      pam_env.so&lt;br /&gt;
 auth        sufficient    pam_unix.so nullok try_first_pass&lt;br /&gt;
 #auth        requisite     pam_succeed_if.so uid &amp;gt;= 1000 quiet_success&lt;br /&gt;
 #auth        required      pam_deny.so&lt;br /&gt;
 &lt;br /&gt;
 #account     required      pam_unix.so&lt;br /&gt;
 account     sufficient    pam_localuser.so&lt;br /&gt;
 account     sufficient    pam_succeed_if.so uid &amp;lt; 1000 quiet&lt;br /&gt;
 #account     required      pam_permit.so&lt;br /&gt;
 &lt;br /&gt;
 password    requisite     pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=&lt;br /&gt;
 password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok&lt;br /&gt;
 #password    required      pam_deny.so&lt;br /&gt;
 &lt;br /&gt;
 session     optional      pam_keyinit.so revoke&lt;br /&gt;
 #session     required      pam_limits.so&lt;br /&gt;
 -session     optional      pam_systemd.so&lt;br /&gt;
 session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid&lt;br /&gt;
 #session     required      pam_unix.so&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;After Linux boot server is ready and operational, VME controllers can be booted. On the first boot, individual &#039;&#039;/diskless/.../snapshot/&amp;lt;controller name&amp;gt;&#039;&#039; directory will be created for each controller. For VME controller specific information see [[VME]]&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Boiarino</name></author>
	</entry>
	<entry>
		<id>https://clonwiki0.jlab.org/wiki/index.php?title=Linux_Tricks&amp;diff=8709</id>
		<title>Linux Tricks</title>
		<link rel="alternate" type="text/html" href="https://clonwiki0.jlab.org/wiki/index.php?title=Linux_Tricks&amp;diff=8709"/>
		<updated>2026-03-05T16:20:26Z</updated>

		<summary type="html">&lt;p&gt;Boiarino: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Color change when connected remotely ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Problem:&#039;&#039;&#039; after opening vnc session to linux machine from macbook laptop, small window pops up asking about some color settings (create color profile etc), and keeps asking for password; none of passwords actually works, and it keeps asking again and again.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fix:&#039;&#039;&#039; on linux machine, create file &#039;&#039;/etc/polkit-1/localauthority/50-local.d/45-allow-colord.pkla&#039;&#039; with permissions 644 and following contents:&lt;br /&gt;
 [Allow Colord all Users]&lt;br /&gt;
 Identity=unix-user:*&lt;br /&gt;
 Action=org.freedesktop.color-manager.create-device;org.freedesktop.color-manager.create-profile;org.freedesktop.color-manager.delete-device;org.freedesktop.color-manager.delete-profile;org.freedesktop.color-manager.modify-device;org.freedesktop.color-manager.modify-profile&lt;br /&gt;
 ResultAny=no&lt;br /&gt;
 ResultInactive=no&lt;br /&gt;
 ResultActive=yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Enable systemd log persistency (remember all reboots, not only last one) ===&lt;br /&gt;
&lt;br /&gt;
Run &#039;&#039;emacs /etc/systemd/journald.conf&#039;&#039;, set&lt;br /&gt;
&lt;br /&gt;
 Storage=persistent&lt;br /&gt;
&lt;br /&gt;
Do following:&lt;br /&gt;
&lt;br /&gt;
 mkdir /var/log/journal&lt;br /&gt;
 systemd-tmpfiles --create --prefix /var/log/journal&lt;br /&gt;
 systemctl restart systemd-journald&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Also, see [[Gnome]] if using GNOME desktop.&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Boiarino</name></author>
	</entry>
	<entry>
		<id>https://clonwiki0.jlab.org/wiki/index.php?title=Gnome&amp;diff=8708</id>
		<title>Gnome</title>
		<link rel="alternate" type="text/html" href="https://clonwiki0.jlab.org/wiki/index.php?title=Gnome&amp;diff=8708"/>
		<updated>2026-03-05T16:19:12Z</updated>

		<summary type="html">&lt;p&gt;Boiarino: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
When switching workspaces, only first screen switches. To make all screens switched:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Using command line&#039;&#039;&#039; (DOES NOT WORK ON RHEL9...)&lt;br /&gt;
&lt;br /&gt;
  gsettings set org.gnome.shell.extensions.classic-overrides workspaces-only-on-primary false&lt;br /&gt;
&lt;br /&gt;
Graphical tool &amp;quot;dconf-editor&amp;quot; can be used as well. Expand the path &amp;quot;org.gnome.shell.extensions.classic-overrides&amp;quot; and highlight the setting for &amp;quot;workspaces-only-on-primary&amp;quot;. Turn off &amp;quot;Use default value&amp;quot; then click on False in the &amp;quot;Custom value&amp;quot; setting.  Click the &amp;quot;Apply&amp;quot; button at the top.&lt;br /&gt;
&lt;br /&gt;
To change the number of workspaces: &amp;quot;org.gnome.desktop.wm.preferences.num-workspaces&amp;quot;. Set &amp;quot;Use default value&amp;quot; = OFF, than type the value you want.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Using GUI&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 yum install gnome-tweaks&lt;br /&gt;
&lt;br /&gt;
Go to &#039;&#039;&#039;Applications-&amp;gt;Utilities-&amp;gt;Tweaks-&amp;gt;Workspaces&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Click &#039;&#039;&#039;Workspaces span displays&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Boiarino</name></author>
	</entry>
	<entry>
		<id>https://clonwiki0.jlab.org/wiki/index.php?title=Gnome&amp;diff=8707</id>
		<title>Gnome</title>
		<link rel="alternate" type="text/html" href="https://clonwiki0.jlab.org/wiki/index.php?title=Gnome&amp;diff=8707"/>
		<updated>2026-03-05T16:18:44Z</updated>

		<summary type="html">&lt;p&gt;Boiarino: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
When switching workspaces, only first screen switches. To make all screens switched:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DOES NOT WORK ON RHEL9&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  gsettings set org.gnome.shell.extensions.classic-overrides workspaces-only-on-primary false&lt;br /&gt;
&lt;br /&gt;
Graphical tool &amp;quot;dconf-editor&amp;quot; can be used as well. Expand the path &amp;quot;org.gnome.shell.extensions.classic-overrides&amp;quot; and highlight the setting for &amp;quot;workspaces-only-on-primary&amp;quot;. Turn off &amp;quot;Use default value&amp;quot; then click on False in the &amp;quot;Custom value&amp;quot; setting.  Click the &amp;quot;Apply&amp;quot; button at the top.&lt;br /&gt;
&lt;br /&gt;
To change the number of workspaces: &amp;quot;org.gnome.desktop.wm.preferences.num-workspaces&amp;quot;. Set &amp;quot;Use default value&amp;quot; = OFF, than type the value you want.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Using GUI&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 yum install gnome-tweaks&lt;br /&gt;
&lt;br /&gt;
Go to &#039;&#039;&#039;Applications-&amp;gt;Utilities-&amp;gt;Tweaks-&amp;gt;Workspaces&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Click &#039;&#039;&#039;Workspaces span displays&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Boiarino</name></author>
	</entry>
	<entry>
		<id>https://clonwiki0.jlab.org/wiki/index.php?title=EtherLite32&amp;diff=8706</id>
		<title>EtherLite32</title>
		<link rel="alternate" type="text/html" href="https://clonwiki0.jlab.org/wiki/index.php?title=EtherLite32&amp;diff=8706"/>
		<updated>2026-02-12T22:38:16Z</updated>

		<summary type="html">&lt;p&gt;Boiarino: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The number of EtherLite32 terminal servers are installed to provide serial connections to ROCs, IOCs, network switches and other devices.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; if &#039;&#039;softioc_console&#039;&#039; in use, tsconnect command will not work, use following command to communicate to Etherlite ports:&lt;br /&gt;
&lt;br /&gt;
 &#039;softioc_console -p&#039; shows list of device names&lt;br /&gt;
 &#039;softioc_console &amp;lt;device_name&amp;gt;&#039; connects to the device&lt;br /&gt;
&lt;br /&gt;
To exit connection, do &#039;^]&#039; to jump to telnet prompt and type &#039;quit&#039; to exit.&lt;br /&gt;
&lt;br /&gt;
While in session, ^T will toggle auto restart ON/OFF. Normally it is ON. If OFF, then ^X will kill connection and do not restart it, then tsconnect method can be used.&lt;br /&gt;
&lt;br /&gt;
To exit &#039;&#039;tsconnect&#039;&#039;, type ~x.&lt;br /&gt;
&lt;br /&gt;
== RHEL9 ==&lt;br /&gt;
&lt;br /&gt;
Install Realport software:&lt;br /&gt;
&lt;br /&gt;
 su&lt;br /&gt;
 cd /usr/local/src&lt;br /&gt;
 cp /usr/downloads/40002086_AD.tgz .&lt;br /&gt;
 tar -xzvf 40002086_AD.tgz&lt;br /&gt;
 rm -f 40002086_AD.tgz&lt;br /&gt;
 cd dgrp-1.9&lt;br /&gt;
 ./configure&lt;br /&gt;
 make all&lt;br /&gt;
 make install&lt;br /&gt;
 make postinstall&lt;br /&gt;
&lt;br /&gt;
At that point service should be started by legacy startup script &#039;&#039;/etc/rc.d/init.d/dgrp_daemon&#039;&#039;, check it with command&lt;br /&gt;
&lt;br /&gt;
 systemctl status dgrp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; if after installation you see&lt;br /&gt;
 [root@clondb2 ~]# insmod /lib/modules/5.14.0-611.13.1.el9_7.x86_64/misc/dgrp.ko&lt;br /&gt;
 insmod: ERROR: could not insert module /lib/modules/5.14.0-611.13.1.el9_7.x86_64/misc/dgrp.ko: Key was rejected by service&lt;br /&gt;
&lt;br /&gt;
then most likely SecureBoot is enabled in BIOS. It can be check by command:&lt;br /&gt;
 [root@clondb2 dgrp-1.9]# mokutil --sb-state&lt;br /&gt;
 SecureBoot enabled&lt;br /&gt;
&lt;br /&gt;
In that case, reboot machine, goto BIOS and disable &#039;SecureBoot&#039; in UEFI setup.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DID NOT DO IT&#039;&#039;&#039; Alternatively, you can generate keys and register module:&lt;br /&gt;
&lt;br /&gt;
 tail -c 100 $(modinfo -n dgrp) | od -c # This should now report &amp;quot;Module signature appended&amp;quot;; if not, do following:&lt;br /&gt;
 cd /root&lt;br /&gt;
 openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj &amp;quot;/CN=My_Own_MOK/&amp;quot;&lt;br /&gt;
 mokutil --list-enrolled | grep &amp;quot;Subject.*CN&amp;quot;&lt;br /&gt;
 mokutil --import MOK.der&lt;br /&gt;
 reboot #have to watch screen and do something !!!???&lt;br /&gt;
 mokutil --list-enrolled | grep &amp;quot;Subject.*CN&amp;quot;&lt;br /&gt;
 /usr/src/kernels/$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n dgrp)&lt;br /&gt;
 tail -c 100 $(modinfo -n dgrp) | od -c # This should now report &amp;quot;Module signature appended&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wrap legacy startup scripts with modern one. Create systemd config file &#039;&#039;/etc/systemd/system/dgrp.service&#039;&#039; with following contents:&lt;br /&gt;
&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=Digi RealPort Daemon&lt;br /&gt;
 After=network.target syslog.target&lt;br /&gt;
 # Add After= to specify any services that must be running before dgrp starts&lt;br /&gt;
 &lt;br /&gt;
 [Service]&lt;br /&gt;
 Type=forking&lt;br /&gt;
 # Use &#039;forking&#039; because dgrp_daemon typically runs in the background as a daemon&lt;br /&gt;
 ExecStart=/etc/rc.d/init.d/dgrp_daemon start&lt;br /&gt;
 ExecStop=/etc/rc.d/init.d/dgrp_daemon stop&lt;br /&gt;
 # Ensure the paths above are absolute paths to your dgrp start/stop scripts/executables&lt;br /&gt;
 ###sergey: who create that file ??? PIDFile=/var/run/dgrp_daemon.pid&lt;br /&gt;
 # Specify the PID file location if the daemon creates one&lt;br /&gt;
 Restart=on-failure&lt;br /&gt;
 # Restarts the service if it fails&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
 # This ensures the service is part of the normal multi-user boot process&lt;br /&gt;
&lt;br /&gt;
Reload and restart:&lt;br /&gt;
&lt;br /&gt;
 systemctl daemon-reload&lt;br /&gt;
 systemctl enable dgrp&lt;br /&gt;
 systemctl start dgrp&lt;br /&gt;
 systemctl status dgrp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Create file &#039;&#039;/etc/sudoers.d/onliners&#039;&#039; and add following line (if file and line exist, add to existing line):&lt;br /&gt;
&lt;br /&gt;
 %onliners ALL=NOPASSWD:/usr/bin/dinc,NOPASSWD:/usr/bin/ditty,NOPASSWD:/sbin/fuser,NOPASSWD:/usr/clas12/release/pro/epics/tools/caenhvReset/caenhvReset&lt;br /&gt;
&lt;br /&gt;
With &#039;&#039;onliners&#039;&#039; in the sudo, command &#039;&#039;tsconnect&#039;&#039; will work without password for the user &#039;&#039;clasrun&#039;&#039; who is in &#039;&#039;onliners&#039;&#039; group. Command &#039;&#039;tsconnect&#039;&#039; is in &#039;&#039;$CODA/src/scripts/&#039;&#039; directory, and config file for &#039;&#039;tsconnect&#039;&#039; is &#039;&#039;$CLON_PARMS/tsconnect/tsconnect.conf&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Now you can register Digi devices (Etherlite32 etc) using command &#039;&#039;dgrp_gui&#039;&#039;, one by one. Alternatively, you can create file &#039;&#039;/etc/dgrp.backing.store&#039;&#039; by hands and restart service by command&lt;br /&gt;
&lt;br /&gt;
 systemctl restart dgrp&lt;br /&gt;
&lt;br /&gt;
This is an example of the file &#039;&#039;/etc/dgrp.backing.store&#039;&#039; as it was in January 2026:&lt;br /&gt;
&lt;br /&gt;
 #&lt;br /&gt;
 # Format:&lt;br /&gt;
 #&lt;br /&gt;
 #   ID IP PortCount SpeedString IPPort Mode Owner Group Encrypt EncryptPort IPFamily TCPUserTimeout AuthMethod Password&lt;br /&gt;
 #&lt;br /&gt;
 # If any of the last 10 options should use the default, the&lt;br /&gt;
 # string &amp;quot;default&amp;quot; appears instead.&lt;br /&gt;
 #&lt;br /&gt;
 01 etherlite11 32 auto default default default default never default default default none&lt;br /&gt;
 02 etherlite13 32 auto default default default default never default default default none&lt;br /&gt;
 03 etherlite3 32 auto default default default default never default default default none&lt;br /&gt;
 04 etherlite12 32 auto default default default default never default default default none&lt;br /&gt;
 05 etherlite2 32 auto default default default default never default default default none&lt;br /&gt;
 06 etherlite5 32 auto default default default default never default default default none&lt;br /&gt;
 07 etherlite14 32 auto default default default default never default default default none&lt;br /&gt;
 08 etherlite15 32 auto default default default default never default default default none&lt;br /&gt;
 09 etherlite4 32 auto default default default default never default default default none&lt;br /&gt;
 0a etherlite9 32 auto default default default default never default default default none&lt;br /&gt;
 0d etherlite10 32 auto default default default default never default default default none&lt;br /&gt;
 0e etherlite17 32 auto default default default default never default default default none&lt;br /&gt;
 11 rs422a 2 auto default default default default never default default default none&lt;br /&gt;
 14 rs422e 2 auto default default default default never default default default none&lt;br /&gt;
 15 rs422c 2 auto default default default default never default default default none&lt;br /&gt;
&lt;br /&gt;
== RHEL7 ==&lt;br /&gt;
&lt;br /&gt;
 su&lt;br /&gt;
 cd /usr/local/src&lt;br /&gt;
 cp /usr/downloads/realport1.9-36_81000137_X.tgz .&lt;br /&gt;
 tar xvfz realport1.9-36_81000137_X.tgz&lt;br /&gt;
 cd dgrp-1.9&lt;br /&gt;
 ./configure&lt;br /&gt;
 make all&lt;br /&gt;
 make install&lt;br /&gt;
 make postinstall&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: to fix compiling error on RHEL7, add following to the file &#039;&#039;driver/build/include/dgrp_net_ops.h&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 #define TTY_CLOSING (7)&lt;br /&gt;
&lt;br /&gt;
* add following line to &#039;&#039;/etc/sudoers&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 %onliners ALL=NOPASSWD:/usr/bin/dinc,NOPASSWD:/usr/bin/ditty,NOPASSWD:/sbin/fuser&lt;br /&gt;
&lt;br /&gt;
* Run &#039;&#039;/usr/bin/dgrp/config/dgrp_gui&#039;&#039; to add terminal servers to the list of active devices: click &#039;Add&#039; and fill in &#039;RealPort ID&#039;. &#039;IP Address or Name&#039; and &#039;Number of Ports&#039; fields, for example type &#039;0d&#039;, &#039;etherlite10&#039;, &#039;32&#039;. Click &#039;Commit&#039;, &#039;Run it&#039; and &#039;Exit&#039;. New line with shows up, status must be &#039;Ready&#039; if terminal server is active.&lt;br /&gt;
&lt;br /&gt;
* Run &#039;&#039;/etc/init.d/dgrp_daemon status&#039;&#039; to see daemons running. To make it run on startup use &#039;&#039;chkconfig&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTES FROM DIGI&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* This package includes several support utilites:&lt;br /&gt;
 ditty                 - an stty replacement.&lt;br /&gt;
 dinc                  - a cu/tip replacement.&lt;br /&gt;
&lt;br /&gt;
* There is a package of configuration tools provided that are, by default, located in the /usr/bin/dgrp/config directory. There are scripts for using the command line to add and remove products, as well as the RealPort Manager. This is essentially a graphical front end for the scripts and a visual tool for monitoring individual serial ports.&lt;br /&gt;
&lt;br /&gt;
* The software package includes two startup scripts in either the &#039;&#039;/etc/rc.d/init.d&#039;&#039; or &#039;&#039;/etc/init.d&#039;&#039; directories named &amp;quot;dgrp_daemon&amp;quot; and &amp;quot;dgrp_ditty&amp;quot;. These scripts will be executed at startup automatically if the &amp;quot;chkconfig&amp;quot; tool is present on the system during the post installation phase of the driver install.  Otherwise, these scripts must be manually added to the system startup.&lt;br /&gt;
&lt;br /&gt;
* To load and initialize the driver by hand, execute &amp;quot;dgrp_daemon start&amp;quot;. To stop the driver daemons and unload the driver, execute &amp;quot;dgrp_daemon stop&amp;quot; followed by &amp;quot;rmmod dgrp&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: if terminal server does not boot on power recycle, use command &#039;dgipserv&#039; as described below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: &#039;tsconnect&#039; and &#039;dflush&#039; scripts from $CODA are used to access devices, config file is $CLON_PARMS/tsconnect/tsconnect.conf, command is &#039;tsconnect &amp;lt;dev&amp;gt;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Solaris era info ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Software&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
RealPort software must be installed to communicate with EtherLite terminal servers. Do following as &#039;root&#039; (tar file contains files downloaded from http://www.digi.com):&lt;br /&gt;
 cd /usr/local/src&lt;br /&gt;
 cp ../downloads/EtherLite32.tar .&lt;br /&gt;
 tar xvf EtherLite32.tar&lt;br /&gt;
 rm EtherLite32.tar&lt;br /&gt;
 cd EtherLite32&lt;br /&gt;
 pkgadd -d realport_2.8.3.pkg&lt;br /&gt;
Last command will initiate following dialog and output (empty lines removed):&lt;br /&gt;
 The following packages are available:&lt;br /&gt;
   1  realport     Digi RealPort Driver&lt;br /&gt;
                   (sparc/i386) 2.8.3&lt;br /&gt;
 Select package(s) you wish to process (or &#039;all&#039; to process&lt;br /&gt;
 all packages). (default: all) [?,??,q]: &lt;br /&gt;
 Processing package instance &amp;lt;realport&amp;gt; from &amp;lt;/usr/local/src/EtherLite32/realport_2.8.3.pkg&amp;gt; &lt;br /&gt;
 Digi RealPort Driver(sparc/i386) 2.8.3&lt;br /&gt;
 --------------------------------------------------------------------&lt;br /&gt;
 Copyright (c) 1996-2005 Digi International Inc. All Rights Reserved.&lt;br /&gt;
 This software contains proprietary and confidential information &lt;br /&gt;
 of Digi International Inc.  By accepting transfer of this copy, &lt;br /&gt;
 Recipient agrees to retain this software in confidence, to prevent &lt;br /&gt;
 disclosure to others, and to make no use of this software other &lt;br /&gt;
 than that for which it was delivered.  This is an unpublished &lt;br /&gt;
 copyrighted work of Digi International Inc.  Except as permitted &lt;br /&gt;
 by federal law, 17 USC 117, copying is strictly prohibited.&lt;br /&gt;
 --------------------------------------------------------------------&lt;br /&gt;
 Using &amp;lt;/&amp;gt; as the package base directory.&lt;br /&gt;
 ## Processing package information.&lt;br /&gt;
 ## Processing system information. &lt;br /&gt;
 WARNING: setting mode of &amp;lt;/dev/dpr&amp;gt; to default mode (755) &lt;br /&gt;
 WARNING: setting mode of &amp;lt;/dev/dty&amp;gt; to default mode (755)&lt;br /&gt;
 WARNING: setting mode of &amp;lt;/opt/realport&amp;gt; to default mode (755)&lt;br /&gt;
 WARNING: setting mode of &amp;lt;/opt/realport/amd64&amp;gt; to default mode (755)&lt;br /&gt;
 WARNING: setting mode of &amp;lt;/opt/realport/i386&amp;gt; to default mode (755)&lt;br /&gt;
 WARNING: setting mode of &amp;lt;/opt/realport/include&amp;gt; to default mode (755)&lt;br /&gt;
 WARNING: setting mode of &amp;lt;/opt/realport/sparc32&amp;gt; to default mode (755)&lt;br /&gt;
 WARNING: setting mode of &amp;lt;/opt/realport/sparc64&amp;gt; to default mode (755)&lt;br /&gt;
 WARNING: setting mode of &amp;lt;/opt/realport/utils&amp;gt; to default mode (755)&lt;br /&gt;
    9 package pathnames are already properly installed.&lt;br /&gt;
 ## Verifying disk space requirements.&lt;br /&gt;
 ## Checking for conflicts with packages already installed.&lt;br /&gt;
 ## Checking for setuid/setgid programs.&lt;br /&gt;
 This package contains scripts which will be executed with super-user&lt;br /&gt;
 permission during the process of installing this package. &lt;br /&gt;
 Do you want to continue with the installation of &amp;lt;realport&amp;gt; [y,n,?] y&lt;br /&gt;
 Installing Digi RealPort Driver as &amp;lt;realport&amp;gt;&lt;br /&gt;
 ## Installing part 1 of 1.&lt;br /&gt;
 /etc/rc2.d/S76realport &amp;lt;symbolic link&amp;gt;&lt;br /&gt;
 /opt/realport/S76realport&lt;br /&gt;
 /opt/realport/amd64/dgipserv&lt;br /&gt;
 /opt/realport/amd64/digi_realport&lt;br /&gt;
 /opt/realport/amd64/ditty&lt;br /&gt;
 /opt/realport/amd64/dpa-rp&lt;br /&gt;
 /opt/realport/amd64/ncx_debug&lt;br /&gt;
 /opt/realport/amd64/ncx_devices_exist&lt;br /&gt;
 /opt/realport/amd64/ncx_make_links&lt;br /&gt;
 /opt/realport/amd64/ncx_mknod&lt;br /&gt;
 /opt/realport/amd64/ncxd.Z&lt;br /&gt;
 /opt/realport/dgipserv.1&lt;br /&gt;
 /opt/realport/ditty&lt;br /&gt;
 /opt/realport/dpa-rp&lt;br /&gt;
 /opt/realport/drpadmin&lt;br /&gt;
 /opt/realport/i386/dgipserv&lt;br /&gt;
 /opt/realport/i386/digi_realport&lt;br /&gt;
 /opt/realport/i386/ditty&lt;br /&gt;
 /opt/realport/i386/dpa-rp&lt;br /&gt;
 /opt/realport/i386/ncx_debug&lt;br /&gt;
 /opt/realport/i386/ncx_devices_exist&lt;br /&gt;
 /opt/realport/i386/ncx_make_links&lt;br /&gt;
 /opt/realport/i386/ncx_mknod&lt;br /&gt;
 /opt/realport/i386/ncxd.Z&lt;br /&gt;
 /opt/realport/include/stdigi.h&lt;br /&gt;
 /opt/realport/install_notes.txt&lt;br /&gt;
 /opt/realport/ncxd&lt;br /&gt;
 /opt/realport/release_notes.txt&lt;br /&gt;
 /opt/realport/sparc32/dgipserv&lt;br /&gt;
 /opt/realport/sparc32/digi_realport&lt;br /&gt;
 /opt/realport/sparc32/ditty&lt;br /&gt;
 /opt/realport/sparc32/dpa-rp&lt;br /&gt;
 /opt/realport/sparc32/ncx_debug&lt;br /&gt;
 /opt/realport/sparc32/ncx_devices_exist&lt;br /&gt;
 /opt/realport/sparc32/ncx_make_links&lt;br /&gt;
 /opt/realport/sparc32/ncx_mknod&lt;br /&gt;
 /opt/realport/sparc32/ncxd.Z&lt;br /&gt;
 /opt/realport/sparc64/dgipserv&lt;br /&gt;
 /opt/realport/sparc64/digi_realport&lt;br /&gt;
 /opt/realport/sparc64/ditty&lt;br /&gt;
 /opt/realport/sparc64/dpa-rp&lt;br /&gt;
 /opt/realport/sparc64/ncx_debug&lt;br /&gt;
 /opt/realport/sparc64/ncx_devices_exist&lt;br /&gt;
 /opt/realport/sparc64/ncx_make_links&lt;br /&gt;
 /opt/realport/sparc64/ncx_mknod&lt;br /&gt;
 /opt/realport/sparc64/ncxd.Z&lt;br /&gt;
 /opt/realport/utils/dgipserv&lt;br /&gt;
 /opt/realport/utils/ncx_debug&lt;br /&gt;
 /opt/realport/utils/ncx_devices_exist&lt;br /&gt;
 /opt/realport/utils/ncx_make_links&lt;br /&gt;
 /opt/realport/utils/ncx_mknod&lt;br /&gt;
 /opt/realport/utils/ncx_verify_conf&lt;br /&gt;
 /usr/sbin/dgipserv &amp;lt;symbolic link&amp;gt;&lt;br /&gt;
 /usr/sbin/ditty &amp;lt;symbolic link&amp;gt;&lt;br /&gt;
 /usr/sbin/dpa-rp &amp;lt;symbolic link&amp;gt;&lt;br /&gt;
 /usr/sbin/drpadmin &amp;lt;symbolic link&amp;gt;&lt;br /&gt;
 /usr/share/man/man1/dgipserv.1&lt;br /&gt;
 /usr/share/man/man1/ditty.1&lt;br /&gt;
 /usr/share/man/man7/realport.7&lt;br /&gt;
 [ verifying class &amp;lt;none&amp;gt; ]&lt;br /&gt;
 ## Executing postinstall script.&lt;br /&gt;
 Using / as package base directory...&lt;br /&gt;
 Unloading previous versions of drivers, if any....      Done&lt;br /&gt;
 Loading new drivers...Nov 22 14:53:37 clon10 digi_realport: Digi RealPort Driver (Instance 0) Ver 2.8.3&lt;br /&gt;
         Done&lt;br /&gt;
 Run the drpadmin tool to add realport devices&lt;br /&gt;
 Installation of &amp;lt;realport&amp;gt; was successful.&lt;br /&gt;
&lt;br /&gt;
Copy several files to &#039;&#039;/opt/realport&#039;&#039;:&lt;br /&gt;
 cp dflush /opt/realport&lt;br /&gt;
 cp dinc /opt/realport&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: &#039;dinc&#039; was copied from old CDsts driver, it seems digi does not have it any more, but we found it useful: &#039;tsconnect&#039; will use it. &#039;&#039;&#039;IMPORTANT&#039;&#039;&#039;: make sure that &#039;dinc&#039; is &#039;-rwsr-xr-x&#039;, it can be set by &#039;chmod 4755 dinc&#039;; otherwise &#039;Permission denied&#039; message will be generated by &#039;&#039;tsconnect&#039;&#039; (something related to the &#039;&#039;uucp&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
To configure EtherLite devices, run &#039;drpadmin&#039; command and specify devices one by one, for example:&lt;br /&gt;
 clon10:EtherLite32&amp;gt; /opt/realport/drpadmin &lt;br /&gt;
 Please select an option (a)dd (d)elete (s)how (r)eset (q)uit : a&lt;br /&gt;
 Enter the IP address or network name of the unit: 129.57.167.208&lt;br /&gt;
 Enter the number of ports: 32&lt;br /&gt;
 Enter the tty device ID (only 2 chars allowed) : 0 &lt;br /&gt;
 Would you like this RealPort session to be encrypted?&lt;br /&gt;
 NOTE: Not all RealPort products support encrypted RealPort sessions.&lt;br /&gt;
 Please check your RealPort product&#039;s firmware release notes&lt;br /&gt;
 or product literature before selecting &amp;quot;always&amp;quot;.&lt;br /&gt;
 If in doubt, select &amp;quot;never&amp;quot;.&lt;br /&gt;
 (always/never) : (never): &lt;br /&gt;
 The following device will be configured,&lt;br /&gt;
 0       129.57.167.208  32      0       secure (never)&lt;br /&gt;
 Is this correct (y to add or x to abort) ? y&lt;br /&gt;
 Please select an option (a)dd (d)elete (s)how (r)eset (q)uit : q&lt;br /&gt;
 clon10:EtherLite32&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Results will be saved in &#039;&#039;/opt/realport/drp.conf&#039;&#039; file. After all devices configured this file will contains something like following:&lt;br /&gt;
 clon10:realport&amp;gt; more drp.conf&lt;br /&gt;
 0       129.57.167.208  32      0       771     never   1027&lt;br /&gt;
 1       129.57.167.215  2       1       771     never   1027&lt;br /&gt;
 2       129.57.167.209  32      2       771     never   1027&lt;br /&gt;
 3       129.57.167.216  2       3       771     never   1027&lt;br /&gt;
 4       129.57.167.217  2       4       771     never   1027&lt;br /&gt;
 5       129.57.167.218  2       5       771     never   1027&lt;br /&gt;
 6       129.57.167.219  2       6       771     never   1027&lt;br /&gt;
 7       129.57.160.20   2       7       771     never   1027&lt;br /&gt;
 8       129.57.167.210  32      8       771     never   1027&lt;br /&gt;
 9       129.57.167.211  32      9       771     never   1027&lt;br /&gt;
 10      129.57.160.50   2       a       771     never   1027&lt;br /&gt;
 11      129.57.68.95    32      b       771     never   1027&lt;br /&gt;
 12      129.57.167.212  32      c       771     never   1027&lt;br /&gt;
 13      129.57.167.220  32      d       771     never   1027&lt;br /&gt;
 14      129.57.167.228  32      e       771     never   1027&lt;br /&gt;
 15      129.57.167.229  32      f       771     never   1027&lt;br /&gt;
 16      129.57.167.204  32      10      771     never   1027&lt;br /&gt;
 17      129.57.86.201   32      11      771     never   1027&lt;br /&gt;
&lt;br /&gt;
If adding new device, repeat the procedure on clon00, clon10 and clon20.&lt;br /&gt;
&lt;br /&gt;
Now copy our clon script into some directory included into PATH, for example:&lt;br /&gt;
 cp tsconnect /usr/local/bin&lt;br /&gt;
&lt;br /&gt;
Copy &#039;&#039;tsconnect.conf&#039;&#039; from previous location to &#039;&#039;/opt/realport&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Include command &#039;&#039;/opt/realport/dflush&#039;&#039; into &#039;&#039;sudoers&#039;&#039; file.&lt;br /&gt;
&lt;br /&gt;
Now everything should be ready. Try to type something like&lt;br /&gt;
 tsconnect croctest1&lt;br /&gt;
and see if communication established. To end session, type &#039;~&#039; and &#039;x&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Booting EtherLite devices&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
EtherLite terminal server is using [[Bootp]]. Process controlled by &#039;&#039;/etc/bootptab&#039;&#039; file, example is here:&lt;br /&gt;
&lt;br /&gt;
 # @(#) $Header: /users/hpnp/odyssey/repository/examples/bootptab,v 1.2 1997/06/26 21:23:33 hpnp Exp $&lt;br /&gt;
 # Example /etc/bootptab: database for bootp server (/etc/bootpd).&lt;br /&gt;
 # Blank lines and lines beginning with &#039;#&#039; are ignored.&lt;br /&gt;
 #&lt;br /&gt;
 # Legend:&lt;br /&gt;
 #&lt;br /&gt;
 #       first field -- hostname&lt;br /&gt;
 #                       (may be full domain name)&lt;br /&gt;
 #&lt;br /&gt;
 #       hd -- home directory&lt;br /&gt;
 #       bf -- bootfile&lt;br /&gt;
 #       cs -- cookie servers&lt;br /&gt;
 #       ds -- domain name servers&lt;br /&gt;
 #       gw -- gateways&lt;br /&gt;
 #       ha -- hardware address&lt;br /&gt;
 #       ht -- hardware type&lt;br /&gt;
 #       im -- impress servers&lt;br /&gt;
 #       ip -- host IP address&lt;br /&gt;
 #       lg -- log servers&lt;br /&gt;
 #       lp -- LPR servers&lt;br /&gt;
 #       ns -- IEN-116 name servers&lt;br /&gt;
 #       rl -- resource location protocol servers&lt;br /&gt;
 #       sm -- subnet mask&lt;br /&gt;
 #       tc -- template host (points to similar host entry)&lt;br /&gt;
 #       to -- time offset (seconds)&lt;br /&gt;
 #       ts -- time servers&lt;br /&gt;
 #&lt;br /&gt;
 # Be careful about including backslashes where they&#039;re needed.  Weird (bad)&lt;br /&gt;
 # things can happen when a backslash is omitted where one is intended.&lt;br /&gt;
 #&lt;br /&gt;
 #peripheral1:\&lt;br /&gt;
 #	:hn:ht=ether:vm=rfc1048:\&lt;br /&gt;
 #	:ha=08000903212F:\&lt;br /&gt;
 #	:ip=190.40.101.22:\&lt;br /&gt;
 #	:sm=255.255.255.0:\&lt;br /&gt;
 #	:gw=190.40.101.1:\&lt;br /&gt;
 #	:lg=190.40.101.3:\&lt;br /&gt;
 #	:T144=&amp;quot;hpnp/peripheral1.cfg&amp;quot;:&lt;br /&gt;
 ########## Etherlite 32 RS232, Forward Carriage 1st Level, etherlite1&lt;br /&gt;
 els0:sm=255.255.255.0:gw=129.57.167.99:ht=ether:ha=00a0e7008569:ip=129.57.167.208:&lt;br /&gt;
 ###	bf=el32_realport.bin:&lt;br /&gt;
 ########## Etherlite 2 RS422 (EIA422), Forward Carriage 2nd Level, rs422a (reset1)&lt;br /&gt;
 els1:sm=255.255.255.0:gw=129.57.167.99:ht=ether:ha=00a0e721288b:ip=129.57.167.215:&lt;br /&gt;
 ###	bf=el2_realport.bin:&lt;br /&gt;
 ########## Etherlite 32 RS232, Space Frame 1st Level South, etherlite2&lt;br /&gt;
 els2:sm=255.255.255.0:gw=129.57.167.99:ht=ether:ha=00a0e7213b9f:ip=129.57.167.209:&lt;br /&gt;
 ###	bf=el32_realport.bin:&lt;br /&gt;
 ########## Etherlite 2 RS422 (EIA422), South Claim Shelf, rs422b (reset3)&lt;br /&gt;
 els3:sm=255.255.255.0:gw=129.57.167.99:ht=ether:ha=00a0e72141bd:ip=129.57.167.216:&lt;br /&gt;
 ###	bf=el2_realport.bin:&lt;br /&gt;
 ########## Etherlite 2 RS422 (EIA422), Space Frame 1st Level South, rs422c (reset5)&lt;br /&gt;
 els4:sm=255.255.255.0:gw=129.57.167.99:ht=ether:ha=00a0e72141b9:ip=129.57.167.217:&lt;br /&gt;
 ###	bf=el2_realport.bin:&lt;br /&gt;
 ########## Etherlite 2 RS422 (EIA422), Space Frame 1st Level North, rs422d (reset2)&lt;br /&gt;
 els5:sm=255.255.255.0:gw=129.57.167.99:ht=ether:ha=00a0e72141ae:ip=129.57.167.218:&lt;br /&gt;
 ###	bf=el2_realport.bin:&lt;br /&gt;
 ########## Etherlite 2 RS422 (EIA422), Space Frame 2nd Level North (behind dc11), rs422e (reset4)&lt;br /&gt;
 els6:sm=255.255.255.0:gw=129.57.167.99:ht=ether:ha=00a0e72141c4:ip=129.57.167.219:&lt;br /&gt;
 ###	bf=el2_realport.bin:&lt;br /&gt;
 ########## Etherlite 2 RS422 (EIA422), Hall B Gas Shed, rs422f (reset6)&lt;br /&gt;
 els7:sm=255.255.255.0:gw=129.57.160.1:ht=ether:ha=00a0e72141b1:ip=129.57.160.20:&lt;br /&gt;
 ###	bf=el2_realport.bin:&lt;br /&gt;
 ########## Etherlite 32 RS232, Space Frame 1st Level North, etherlite3&lt;br /&gt;
 els8:sm=255.255.255.0:gw=129.57.167.99:ht=ether:ha=00a0e7214019:ip=129.57.167.210:&lt;br /&gt;
 ###	bf=el32_realport.bin:&lt;br /&gt;
 ########## Etherlite 32 RS232, South Claim Shellf, etherlite4&lt;br /&gt;
 els9:sm=255.255.255.0:gw=129.57.167.99:ht=ether:ha=00a0e7214003:ip=129.57.167.211:&lt;br /&gt;
 ###	bf=el32_realport.bin:&lt;br /&gt;
 ########## Etherlite 2 RS232, Hall B Gas Shed (2-port !), etherlite8 (clasgas)&lt;br /&gt;
 elsa:sm=255.255.255.0:gw=129.57.160.1:ht=ether:ha=00a0e7214e24:ip=129.57.160.50:&lt;br /&gt;
 ###	bf=el2_realport.bin:&lt;br /&gt;
 ########## Etherlite 32 RS232, Counting Room, etherlite9&lt;br /&gt;
 elsb:sm=255.255.255.0:gw=129.57.68.100:ht=ethernet:ha=00a0e72331b2:ip=129.57.68.95:&lt;br /&gt;
 ###	bf=el32_realport.bin:&lt;br /&gt;
 ########## Etherlite 32 RS232, Forward Carriage 1st Level, etherlite5&lt;br /&gt;
 elsc:sm=255.255.255.0:gw=129.57.167.99:ht=ether:ha=00a0e721402e:ip=129.57.167.212:&lt;br /&gt;
 ###	bf=el32_realport.bin:&lt;br /&gt;
 ########## Etherlite 32 RS232, Pie Tower, etherlite10&lt;br /&gt;
 elsd:sm=255.255.255.0:gw=129.57.167.99:ht=ether:ha=00a0e721401a:ip=129.57.167.220:&lt;br /&gt;
 ###	bf=el32_realport.bin:&lt;br /&gt;
 ########## Etherlite 32 RS232, Forward Carriage, 2nd Level, etherlite11&lt;br /&gt;
 else:sm=255.255.255.0:gw=129.57.167.99:ht=ether:ha=00a0e723764c:ip=129.57.167.228:&lt;br /&gt;
 ###	bf=el32_realport.bin:&lt;br /&gt;
 ########## Etherlite 32 RS232, ... , etherlite12&lt;br /&gt;
 elsf:sm=255.255.255.0:gw=129.57.167.99:ht=ether:ha=00a0e7237a08:ip=129.57.167.229:&lt;br /&gt;
 ###	bf=el32_realport.bin:&lt;br /&gt;
 ########## Etherlite 32 RS232, ... , etherlite13&lt;br /&gt;
 elsg:sm=255.255.255.0:gw=129.57.167.99:ht=ether:ha=00a0e7237a8f:ip=129.57.167.204:&lt;br /&gt;
 ###	bf=el32_realport.bin:&lt;br /&gt;
 #&lt;br /&gt;
&lt;br /&gt;
Every terminal server has two lines in &#039;&#039;/etc/bootptab&#039;&#039; file. Normally on power recycle terminal server will obtain IP address and related information from &#039;&#039;/etc/bootptab&#039;&#039; file. Terminal server remember firmware, so only first line must be uncommented. If want to upgrade firmware, new firmware file must be placed in &#039;&#039;/tftpboot&#039;&#039;, backslash have to be placed at the end of the first line, and second line must be uncommented.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wiring&#039;&#039;&#039; (old info, maybe uncorrect, see [[Wiring]] for recent info)&lt;br /&gt;
&lt;br /&gt;
The terminal server cables are cat 5 cables with 4 twisted pairs of conductors. Each conductor is fed into an RJ45 connector, which is numbered from right to left, looking at the front of the plug with the tab down. Using Hall B&#039;s convention, this table describes which wire colors should be fed to which RJ45 conductors at either end of the connection. The wiring will be different at the terminal server and the device. This wiring scheme will allow a connection to be made directly to a Motorola computer with an RJ45 console connector. For devices with a DSUB connector, there are converters available at the lab, and they rely on this wiring configuration as well.&lt;br /&gt;
 |Server Wire Color|RJ45 Pin|Device Wire Color|Signal (Server end)|&lt;br /&gt;
 |Brown            |  1     | Orange          |       RTS         |&lt;br /&gt;
 |Blue             |  2     | Orange Stripe   |       DSR         |&lt;br /&gt;
 |Brown Stripe     |  3     | Blue            |       DCD         |&lt;br /&gt;
 |Blue Stripe      |  4     | Blue Stripe     |      !RxD         |&lt;br /&gt;
 |Green            |  5     | Green           |      !TxD         |&lt;br /&gt;
 |Green Stripe     |  6     | Green Stripe    |       SG          |&lt;br /&gt;
 |Orange           |  7     | Brown           |       DTR         |&lt;br /&gt;
 |Orange Stripe    |  8     | Brown Stripe    |       CTS         |&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Other information&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* To assign IP address to device using &#039;bootp&#039; (have to disable bootp server first by &#039;&#039;svcadm disable network/bootps/udp&#039;&#039;, do not forget to enable it afterwards):&lt;br /&gt;
 dgipserv -store 00:a0:e7:00:85:69 129.57.167.208&lt;br /&gt;
 dgipserv -store 00:a0:e7:23:31:b2 129.57.68.95&lt;br /&gt;
 dgipserv -store 00:a0:e7:23:10:79 129.57.167.251&lt;br /&gt;
After running &#039;dgipserv&#039; command recycle power on terminal server and watch messages, it should set everything and ask you to wait&lt;br /&gt;
certain time before terminal server will become active.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* It is possible to &#039;rlogin&#039; to terminal server, for example:&lt;br /&gt;
&lt;br /&gt;
 rlogin 129.57.167.208&lt;br /&gt;
 EL-32 Terminal Server&lt;br /&gt;
 ? &lt;br /&gt;
 ? ver&lt;br /&gt;
 Product:  EL-32 &lt;br /&gt;
 FW Ver:   V6.6&lt;br /&gt;
 Ethernet:  00:A0:E7:00:85:69&lt;br /&gt;
 IP:        129.57.167.208 &lt;br /&gt;
 GW IP:     129.57.167.99&lt;br /&gt;
 SN Mask:   255.255.255.0&lt;br /&gt;
 Lease:     0xFFFFFFFF&lt;br /&gt;
 Boot Host: 129.57.167.5&lt;br /&gt;
 Bootfile:  el32.prm&lt;br /&gt;
 ICMP error (303) getting Bootfile: destination unreachable&lt;br /&gt;
 ? &lt;br /&gt;
&lt;br /&gt;
 rlogin 129.57.68.95&lt;br /&gt;
 ? ver&lt;br /&gt;
 Product:  EL-32 &lt;br /&gt;
 FW Ver:   V7.9&lt;br /&gt;
 Ethernet:  00:A0:E7:23:31:B2&lt;br /&gt;
 IP:        129.57.68.95&lt;br /&gt;
 GW IP:     129.57.68.100&lt;br /&gt;
 SN Mask:   255.255.255.0&lt;br /&gt;
 Lease:     0xFFFFFFFF&lt;br /&gt;
 Boot Host: 129.57.68.21&lt;br /&gt;
 Bootfile:  el32.prm&lt;br /&gt;
 TFTP error (2) getting Bootfile: Access violation&lt;br /&gt;
 ? &lt;br /&gt;
&lt;br /&gt;
 after boot from clon00&lt;br /&gt;
 ? ver&lt;br /&gt;
 Product:  EL-32 &lt;br /&gt;
 FW Ver:   V7.9&lt;br /&gt;
 Ethernet:  00:A0:E7:23:31:B2&lt;br /&gt;
 IP:        129.57.68.95 &lt;br /&gt;
 GW IP:     129.57.68.100&lt;br /&gt;
 SN Mask:   255.255.255.0&lt;br /&gt;
 Lease:     0xFFFFFFFF&lt;br /&gt;
 Boot Host: 129.57.68.1&lt;br /&gt;
 Bootfile:  el32.prm&lt;br /&gt;
 ICMP error (303) getting Bootfile: destination unreachable&lt;br /&gt;
 ? sockets&lt;br /&gt;
               remote local&lt;br /&gt;
   remote ip     port  port    state       sRTT   sMDEV  max rtt&lt;br /&gt;
 --------------- ----- ----- ------------ ------- ------- -------&lt;br /&gt;
 129.57.167.3    01015 00513 ESTABLISHED  00000ms 00160ms 00112ms&lt;br /&gt;
 0.0.0.0         00000 10001 LISTEN       00000ms 02880ms 00000ms&lt;br /&gt;
 ? &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* boot messages on clon00/clon10 reboot:&lt;br /&gt;
 ...........&lt;br /&gt;
 Copyright 1983-2003 Sun Microsystems, Inc.  All rights reserved.&lt;br /&gt;
 Digi EtherLite(R)/SCSI Terminal Server(TM) Module Driver R3.015 &lt;br /&gt;
      for 64-bit Solaris 7 and 8 (SPARC) configured.&lt;br /&gt;
 Digi EL-32 (els0) at IP address 129.57.167.208&lt;br /&gt;
 Digi EL-2.2 (els1) at IP address 129.57.167.215&lt;br /&gt;
 Digi EL-32 (els2) at IP address 129.57.167.209&lt;br /&gt;
 Digi EL-2.2 (els3) at IP address 129.57.167.216&lt;br /&gt;
 Digi EL-2.2 (els4) at IP address 129.57.167.217&lt;br /&gt;
 Digi EL-2.2 (els5) at IP address 129.57.167.218&lt;br /&gt;
 Digi EL-2.2 (els6) at IP address 129.57.167.219&lt;br /&gt;
 Digi EL-2.2 (els7) at IP address 129.57.160.20&lt;br /&gt;
 Digi EL-32 (els8) at IP address 129.57.167.210&lt;br /&gt;
 Digi EL-32 (els9) at IP address 129.57.167.211&lt;br /&gt;
 Digi EL-2 (elsa) at IP address 129.57.160.50&lt;br /&gt;
 Digi EL-32 (elsb) at IP address 129.57.68.95&lt;br /&gt;
 Digi EL-32 (elsc) at IP address 129.57.167.212&lt;br /&gt;
 VxVM sysboot INFO V-5-2-3244 Starting restore daemon...&lt;br /&gt;
 VxVM sysboot INFO V-5-2-3445 starting in boot mode...&lt;br /&gt;
 NOTICE: VxVM vxdmp V-5-0-34 added disk array DISKS, datype = Disk&lt;br /&gt;
 NOTICE: VxVM vxdmp V-5-0-34 added disk array 508002000005e930, datype = SENA&lt;br /&gt;
 ...........&lt;/div&gt;</summary>
		<author><name>Boiarino</name></author>
	</entry>
	<entry>
		<id>https://clonwiki0.jlab.org/wiki/index.php?title=Linux_Installation_Procedure&amp;diff=8705</id>
		<title>Linux Installation Procedure</title>
		<link rel="alternate" type="text/html" href="https://clonwiki0.jlab.org/wiki/index.php?title=Linux_Installation_Procedure&amp;diff=8705"/>
		<updated>2026-02-12T02:56:39Z</updated>

		<summary type="html">&lt;p&gt;Boiarino: /* Dell servers hardware trick(s) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Dell servers hardware trick(s) ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;!!! if BIOS date/time is incorrect, it may prevent redhat subscription and installation to work correctly, set it to correct value !!! (it was not confirmed, problem may be different and was fixed at the same time as time was correctly set) &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* if BIOS does not remember time setting after power unplugged, battery on motherboard may need to be replaced&lt;br /&gt;
&lt;br /&gt;
* if looks dead, remove the power cords, then held in the on button for 30 seconds; then plug it back in and it may boots up fine - known Dell feature&lt;br /&gt;
&lt;br /&gt;
== ARM (CentsOS7) ==&lt;br /&gt;
&lt;br /&gt;
See [[yum]] for specifics.&lt;br /&gt;
&lt;br /&gt;
 yum install xauth wget bzip2 xterm expat-devel libX11-devel libXpm-devel motif-devel mariadb-devel&lt;br /&gt;
&lt;br /&gt;
== RHEL9 (64 bit) - machine under puppet control ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: select installation type &#039;&#039;&#039;H&#039;&#039;&#039;, then type &#039;&#039;&#039;B&#039;&#039;&#039;.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: during custom disk partitioning, select &#039;Standard&#039; for every partition, if you want it to be standard, or &#039;Raid&#039; if applicable&lt;br /&gt;
&lt;br /&gt;
Root password will be set by puppet during installation, as well as most other needed settings.&lt;br /&gt;
&lt;br /&gt;
Install useful pachages:&lt;br /&gt;
 yum install ncdu mysql&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: graphic screen is disabled, run following command as root:&lt;br /&gt;
 systemctl set-default graphical.target&lt;br /&gt;
&lt;br /&gt;
== RHEL9 (64 bit) - for machine NOT under puppet control ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: select installation type &#039;&#039;&#039;D&#039;&#039;&#039; (not &#039;&#039;&#039;S&#039;&#039;&#039;, otherwise it will not be level 2 server)&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: during custom disk partitioning, select &#039;Standard&#039; for every partition, if you want it to be standard, or &#039;Raid&#039; if applicable&lt;br /&gt;
&lt;br /&gt;
When installation complete, ssh as authorized user and do following:&lt;br /&gt;
&lt;br /&gt;
 sudo yum install emacs&lt;br /&gt;
 cd /etc&lt;br /&gt;
 sudo chmod a+rw shadow&lt;br /&gt;
 sudo emacs shadow&lt;br /&gt;
&lt;br /&gt;
Copy to /etc/shadow root and other needed passwords from another clon machine. &lt;br /&gt;
&lt;br /&gt;
 sudo chmod a-rw shadow&lt;br /&gt;
&lt;br /&gt;
After that, type &#039;&#039;su&#039;&#039; to become superuser. All following settings can be done now without typing &#039;&#039;sudo&#039;&#039; every time. You still will not be able to ssh remotely as root - always ssh as authorized user and type &#039;&#039;su&#039;&#039; to become root.&lt;br /&gt;
&lt;br /&gt;
Update /etc/passwd and /etc/group using another clon machine as example.&lt;br /&gt;
&lt;br /&gt;
 yum install expat-devel libXaw-devel mysql-devel motif-devel ncurses-devel apr-devel net-snmp-utils&lt;br /&gt;
 yum install xorg-x11-utils # for xprop/xwininfo/etc creg stuff&lt;br /&gt;
 yum install s-nail # for /usr/bin/mail&lt;br /&gt;
 yum install ncdu&lt;br /&gt;
 yum install libconfig-devel # recent addition for CODA libraries&lt;br /&gt;
&lt;br /&gt;
To be able to ssh to old machines (like vme controllers under CentOS5), run following as root:&lt;br /&gt;
&lt;br /&gt;
 update-crypto-policies --set LEGACY&lt;br /&gt;
&lt;br /&gt;
and then probably reboot, not sure.&lt;br /&gt;
&lt;br /&gt;
Somebody mentioned also adding &#039;&#039;RequiredRSASize 1024&#039;&#039; to a config file in &#039;&#039;/etc/ssh/ssh_config.d/&#039;&#039;, but I did not do it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    Note: this changes all daemons and system settings and is a bit overkill if you only need to adjust the settings for ssh and sshd.&lt;br /&gt;
&lt;br /&gt;
    Exclude (only) sshd from the system-wide cryptographic policy. You opt-out by editing /etc/sysconfig/sshd and uncommenting the line # CRYPTO_POLICY= , (if necessary you can then adjust adjust /etc/ssh/sshd_config and add legacy crypto settings) and restart the ssh daemon.&lt;br /&gt;
&lt;br /&gt;
For the ssh command line client on the RHEL 9 system: you&#039;re recommended to edit ˜/.ssh/config and override the modern/secure system wide ssh client defaults by adding a Host entry that adds support for suitable legacy encryption options for that particular host:&lt;br /&gt;
&lt;br /&gt;
#    ˜/.ssh/config&lt;br /&gt;
&lt;br /&gt;
Host rhel6.example.com&lt;br /&gt;
  KexAlgorithms +diffie-hellman-group14-sha1&lt;br /&gt;
  MACs +hmac-sha1&lt;br /&gt;
  HostKeyAlgorithms +ssh-rsa&lt;br /&gt;
  PubkeyAcceptedKeyTypes +ssh-rsa&lt;br /&gt;
  PubkeyAcceptedAlgorithms +ssh-rsa&lt;br /&gt;
&lt;br /&gt;
Prepare auto-mounting directories:&lt;br /&gt;
&lt;br /&gt;
 cd /&lt;br /&gt;
 mv apps apps.orig&lt;br /&gt;
 mv home home.orig&lt;br /&gt;
 mv scratch scratch.orig&lt;br /&gt;
 mv work work.orig&lt;br /&gt;
 mkdir apps&lt;br /&gt;
 mkdir home&lt;br /&gt;
 mkdir scratch&lt;br /&gt;
 mkdir work&lt;br /&gt;
 mkdir logs&lt;br /&gt;
 cd /usr&lt;br /&gt;
 mv local local.orig&lt;br /&gt;
 mkdir local&lt;br /&gt;
 mkdir clas&lt;br /&gt;
 mkdir clas12&lt;br /&gt;
 mkdir downloads&lt;br /&gt;
 cd&lt;br /&gt;
&lt;br /&gt;
== RHEL8 (64 bit) ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; to boot from USB stick, insert USB stick, turn machine ON holding F2, and in BIOS Boot Configuration, set Enable Security Boot to OFF, save and exit, holding F2. When in BIOS again, in Boot Configuration make &#039;&#039;UEFI PHY USB ...&#039;&#039; first in boot sequence, local hard drive second, disable all other boot options, save and exit. Do NOT hold F2, Linux installation from USB stick will start. &#039;&#039;&#039;IMPORTANT:&#039;&#039;&#039; when asked about D/S options (very first question in installation process), &#039;&#039;&#039;REMOVE USB STICK BEFORE ANSWERING QUESTION ABOUT DESKTOP/SERVER&#039;&#039;&#039;, otherwise it will be destroyed by following installation steps !!!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; to disable/enable puppet, do following as root: &lt;br /&gt;
 puppet agent --disable &amp;quot;temporary&amp;quot;&lt;br /&gt;
 puppet agent --enable&lt;br /&gt;
&lt;br /&gt;
 yum install emacs&lt;br /&gt;
 yum install xorg-x11-fonts-misc&lt;br /&gt;
&lt;br /&gt;
Move and create some directories in preparation for automounts:&lt;br /&gt;
&lt;br /&gt;
 cd /&lt;br /&gt;
 mv apps apps.orig&lt;br /&gt;
 mv home home.orig&lt;br /&gt;
 mv scratch scratch.orig&lt;br /&gt;
 mkdir apps&lt;br /&gt;
 mkdir home&lt;br /&gt;
 mkdir scratch&lt;br /&gt;
 mkdir work&lt;br /&gt;
 mkdir logs&lt;br /&gt;
 cd /usr&lt;br /&gt;
 mv local local.orig&lt;br /&gt;
 mkdir local&lt;br /&gt;
 mkdir clas&lt;br /&gt;
 mkdir clas12&lt;br /&gt;
 mkdir downloads&lt;br /&gt;
 cd&lt;br /&gt;
&lt;br /&gt;
Add line &#039;&#039;&#039;+dir:/etc/auto.master.d&#039;&#039;&#039; to &#039;&#039;/etc/auto.master&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Create file &#039;&#039;/etc/auto.master.d/direct.autofs&#039;&#039; with the line &#039;&#039;&#039;/- /etc/auto.direct&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Create file &#039;&#039;/etc/auto.direct&#039;&#039; with the following contents:&lt;br /&gt;
&lt;br /&gt;
 # machine-dependent system directories&lt;br /&gt;
 /apps                 -rw,bg     clonfs1:/vol/apps/RHEL8_x86_64&lt;br /&gt;
 /usr/local            -rw,bg     clonfs1:/vol/local/RHEL8_x86_64&lt;br /&gt;
 # machine-independent system directories&lt;br /&gt;
 /home                 -rw,bg     clonfs1:/vol/home&lt;br /&gt;
 #/work                 -rw,bg     clonfs1-old:/vol/work&lt;br /&gt;
 /scratch              -rw,bg     clonfs1:/vol/scratch&lt;br /&gt;
 # machine-independent clas directories&lt;br /&gt;
 /usr/downloads        -rw,bg     clonfs1:/vol/downloads&lt;br /&gt;
 /usr/clas             -rw,bg     clonfs1:/vol/clas&lt;br /&gt;
 /usr/clas12           -rw,bg     clonfs1:/vol/clas12&lt;br /&gt;
 # Used for data storage before shipping to tape&lt;br /&gt;
 #/logs                 -rw,bg     clonfs1-old:/vol/logs&lt;br /&gt;
&lt;br /&gt;
Restart autofs:&lt;br /&gt;
&lt;br /&gt;
 service autofs reload&lt;br /&gt;
 service autofs restart&lt;br /&gt;
&lt;br /&gt;
Remove from the end of the &#039;&#039;/etc/passwd&#039;&#039; line &#039;&#039;&#039;+::::::&#039;&#039;&#039;, and add following:&lt;br /&gt;
&lt;br /&gt;
 hpsrun:x:8796:9998:hpsrun Account:/home/hpsrun:/bin/tcsh&lt;br /&gt;
 clasrun:x:2508:9998:Online DAQ:/home/clasrun:/bin/tcsh&lt;br /&gt;
 clasioc:x:6008:9998:CLAS IOCs:/home/clasioc:/bin/tcsh&lt;br /&gt;
 clas12run:x:6007:146:clas12run Account:/home/clas12run:/bin/tcsh&lt;br /&gt;
 clascron:x:3888:146:CLAS Cron Jobs:/home/clascron:/bin/tcsh&lt;br /&gt;
 clasboot:x:6000:146:Boot Scripts Only:/home/clasboot:/bin/tcsh&lt;br /&gt;
 clasmail:x:6003:146:CLAS Automated Mail:/home/clasmail:/bin/tcsh&lt;br /&gt;
 epics:x:5001:146:EPICS Account:/home/epics:/bin/tcsh&lt;br /&gt;
 nagios:x:6246:9997:Nagios:/home/nagios:/bin/tcsh&lt;br /&gt;
 +@clon_cluster::::::&lt;br /&gt;
 +sshd::::::&lt;br /&gt;
 +::::::/bin/false&lt;br /&gt;
&lt;br /&gt;
Update &#039;&#039;/etc/shadow&#039;&#039;, adding passwords for local accounts (copy it from another machine).&lt;br /&gt;
&lt;br /&gt;
Add following to &#039;&#039;/etc/group&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 clon:x:383:clascron&lt;br /&gt;
 onliners:x:9998:abbottd,avakian,baltzell,battagli,brooksw,bruhwel,boiarino,carman,chen,clasboot,clascron,clasrun,cole,cuevas,davidl,danagu,dugger,elton,epics,fklein,gilfoyle,giovanet,golovach,gurjyan,heddle,heyes,hovanes,jacobsg,jenkins,kliv,lcsmith,marki,mestayer,nerses,parkkj,pasyuk,primex,ripani,rossi,saw,staylor,sytnik,taiuti,taylorw,timmer,wooyoung&lt;br /&gt;
&lt;br /&gt;
== RHEL7 (64 bit) ==&lt;br /&gt;
&lt;br /&gt;
Installed using DVD provided by Computer Center, currently RHEL7.3. Requires MAC address to be registered with Computer Center (using jnet.jlab.org as &#039;boiarino&#039;) because it is network-based installation. On DELL servers, hold F2 after power on and go to &#039;Device Settings&#039; to see mac address. Remember machine memory size as well, will needed when create partitions, find it in &#039;System BIOS -&amp;gt; Memory Settings&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: all disks will be reformatted in a process, all information will be lost !&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dialog:&lt;br /&gt;
&lt;br /&gt;
* boot: &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Please enter the hostname of this system: &amp;lt;hostname&amp;gt; &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* What type of system are you building? (D)esktop: &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Is this a CUE level 1 or CUE level 2 System build (1/2): 2 &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Please enter the System Admin&#039;s CUE username: boiarino &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Do you want to use the default partitioning scheme (y/n)? n &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Are you sure you want to use your own partitioning scheme (y/n)? y &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Choose &#039;Standard Partition&#039; scheme and create following partitions: /boot - 1GB, swap - double memory size, / - the rest of space.&lt;br /&gt;
&lt;br /&gt;
Installation will proceed. When prompted, remove installation disk and reboot machine if not done automatically.&lt;br /&gt;
&lt;br /&gt;
After reboot patching process will be started and it will take a while, do not interrupt it, otherwise system will not be installed correctly.&lt;br /&gt;
&lt;br /&gt;
When machine reboots for the last time, ask Paul Letta to set usual hallb root password. From now on remote root access is possible. Alternatively, user &#039;&#039;boiarino&#039;&#039; can execute most of actions using &#039;&#039;sudo&#039;&#039;,&lt;br /&gt;
like &#039;&#039;sudo emacs&#039;&#039; for protected files. &#039;&#039;sudo reboot&#039;&#039; etc.&lt;br /&gt;
&lt;br /&gt;
Go to /boot/grub2 and modify file grub.cfg, Linux kernel boot options, adding options &#039;&#039;net.ifnames=0 biosdevname=0&#039;&#039;, so your boot string has following section:&lt;br /&gt;
&lt;br /&gt;
 ..... rhgb net.ifnames=0 biosdevname=0 quiet .....&lt;br /&gt;
&lt;br /&gt;
so whole line looks something like this:&lt;br /&gt;
&lt;br /&gt;
 linux16 /vmlinuz-3.10.0-327.18.2.el7.x86_64 root=UUID=b5d1b5ad-e3f6-4db4-8972-aa9c1a91d116 ro vconsole.keymap=us crashkernel=auto  vconsole.font=latarcyrheb-sun16 rhgb net.ifnames=0 biosdevname=0 quiet LANG=en_US.UTF-8&lt;br /&gt;
&lt;br /&gt;
Reboot machine, ethernet ports must be named &#039;&#039;eth0&#039;&#039;, &#039;&#039;eth1&#039;&#039; etc.&lt;br /&gt;
&lt;br /&gt;
To update manually, use commands &#039;&#039;yum list updates&#039;&#039; and &#039;&#039;yum update&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; add machine to the appropriate &#039;&#039;&#039;puppet&#039;&#039;&#039; group, it will do all following automatically (hopefully).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; on RHEL7.9, RPM EPEL REPO is not enabled by default, which prevents from installing nload, itcl, itk etc. To bring it back, it can be copied it from older machine, for example:&lt;br /&gt;
&lt;br /&gt;
 cd /etc/yum.repos.d&lt;br /&gt;
 scp clondaq7:/etc/yum.repos.d/epel.repo .&lt;br /&gt;
 cd /etc/pki/rpm-gpg&lt;br /&gt;
 scp clondaq7:/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 .&lt;br /&gt;
&lt;br /&gt;
Alternatively, following can be used to add repo&#039;s:&lt;br /&gt;
&lt;br /&gt;
 subscription-manager repos --enable &amp;lt;repo_id&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In particular, following have to be enabled to get nload, xpdf, python-alembic, tix, itcl, itk etc:&lt;br /&gt;
&lt;br /&gt;
 subscription-manager repos --enable JLab_EPEL_EPEL_7&lt;br /&gt;
 subscription-manager repos --enable rhel-7-workstation-optional-rpms&lt;br /&gt;
&lt;br /&gt;
Repo ID&#039;s can be obtained by:&lt;br /&gt;
&lt;br /&gt;
 subscription-manager repos --list&lt;br /&gt;
&lt;br /&gt;
Installed repo&#039;s can be seen by:&lt;br /&gt;
&lt;br /&gt;
 yum repolist&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Yum updates&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Edit the &#039;&#039;/etc/yum.conf&#039;&#039; file and add the following line to force installation of the 32bit and 64bit libraries:&lt;br /&gt;
&lt;br /&gt;
 multilib_policy=all&lt;br /&gt;
&lt;br /&gt;
Install following packages:&lt;br /&gt;
&lt;br /&gt;
 yum install xterm mesa-dri-drivers telnet rsh readline-devel net-snmp-utils tigervnc-server tigervnc xpdf nload mariadb-devel libxml2-devel glibc-devel qt-devel python-alembic openssl-devel apr-devel&lt;br /&gt;
 yum install libconfig-devel # recent addition for CODA libraries&lt;br /&gt;
&lt;br /&gt;
Fonts for EPICS EDMs:&lt;br /&gt;
&lt;br /&gt;
 yum install xorg-x11-fonts-75dpi xorg-x11-fonts-ISO8859-1-75dpi bitmap-miscfixed-fonts&lt;br /&gt;
 yum install bitmap-console-fonts bitmap-fixed-fonts bitmap-lucida-typewriter-fonts&lt;br /&gt;
 ln -s  /usr/share/X11/fonts/100dpi /etc/X11/fontpath.d/xorg-x11-fonts-100dpi:pri=60&lt;br /&gt;
 ln -s  /usr/share/X11/fonts/75dpi /etc/X11/fontpath.d/xorg-x11-fonts-75dpi:pri=50&lt;br /&gt;
 ln -s  /usr/share/X11/fonts/misc /etc/X11/fontpath.d/xorg-x11-fonts-misc:pri=40&lt;br /&gt;
 ln -s  /usr/share/fonts/bitmap /etc/X11/fontpath.d/bitmap-fonts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Do following to be able to compile and run 32-bit apps on 64-bit machine (for compatibility with 32bit applications):&lt;br /&gt;
&lt;br /&gt;
 yum install libXpm-devel libXaw-devel motif-devel glibc-devel ncurses-devel readline-devel&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Modify file &#039;&#039;/etc/passwd&#039;&#039; adding following:&lt;br /&gt;
&lt;br /&gt;
 hpsrun:x:8796:9998:hpsrun Account:/home/hpsrun:/bin/tcsh&lt;br /&gt;
 clasrun:x:2508:9998:Online DAQ:/home/clasrun:/bin/tcsh&lt;br /&gt;
 clasioc:x:6008:9998:CLAS IOCs:/home/clasioc:/bin/tcsh&lt;br /&gt;
 clas12run:x:6007:146:clas12run Account:/home/clas12run:/bin/tcsh&lt;br /&gt;
 clascron:x:3888:146:CLAS Cron Jobs:/home/clascron:/bin/tcsh&lt;br /&gt;
 clasboot:x:6000:146:Boot Scripts Only:/home/clasboot:/bin/tcsh&lt;br /&gt;
 clasmail:x:6003:146:CLAS Automated Mail:/home/clasmail:/bin/tcsh&lt;br /&gt;
 epics:x:5001:146:EPICS Account:/home/epics:/bin/tcsh&lt;br /&gt;
 nagios:x:6246:9997:Nagios:/home/nagios:/bin/tcsh&lt;br /&gt;
 +@clon_cluster::::::&lt;br /&gt;
 +sshd::::::&lt;br /&gt;
 +::::::/bin/false&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: user-related lines must be removed, like&lt;br /&gt;
&lt;br /&gt;
 +boiarino::::::&lt;br /&gt;
&lt;br /&gt;
as well as&lt;br /&gt;
&lt;br /&gt;
 +::::::&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: assumed that following line is in already:&lt;br /&gt;
&lt;br /&gt;
 +@ccc::::::&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: if following line exist, it must be placed in the end, or removed:&lt;br /&gt;
&lt;br /&gt;
 +::::::/bin/false&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Modify file &#039;&#039;/etc/group&#039;&#039; adding following:&lt;br /&gt;
&lt;br /&gt;
 onliners::9998:heyes,hujl,rwm,timmer,wolin,taylorw,cuevas,abbottd,abulafia,anciant,anghi,aswin,auger,avakian,banta,barrow,battagli,bjlee,bogdan,brooksw,bruhwel,boiarino,buckle,burchesk,burin,bzh,cetina,chen,cole,cords,corvi,costy,davidl,costy,davidl,dcarter,dcurry,dennisl,deppman,dhlee,doughty,drago,dytman,dugger,dugger,elton,fedro,ficenec,fklein,france,freyberg,gholden,gilfoyle,golovach,gurjyan,haddock,heddle,jenkins,jhardie,jmorris,kellyk,klusman,kmkim,kossov,lcsmith,longhi,manak,marchand,marki,mastersj,mjohnson,mosbackr,mueller,muguira,murphyl,necaise,odonnell,opper,parkkj,pasyuk,phkim,piot,riccardi,richardt,ripani,rossi,saw,sergpozd,serov,sholt,staylor,taiuti,tang,tedeschi,vineyard,vlassov,vvsap,weygand,wooyoung,burchesk,clasrun,giovanet,clasboot,clascoda,clasroot,clasmail,clascron,trigger,epics,southern,carstens,ccutter,danagu,heyes,huertas,jacobsg,kliv,lachniet,mestayer,primex,hovanes,nerses,sytnik,baltzell,carman&lt;br /&gt;
 clon::383:clascoda,clascron,clasmail&lt;br /&gt;
 nagios::9997:nagios&lt;br /&gt;
&lt;br /&gt;
Modify file &#039;&#039;/etc/shadow&#039;&#039; using an example from another RHEL7 clon machine (clonioc2 etc). Do &#039;&#039;chmod 600 shadow&#039;&#039; before editing and &#039;&#039;chmod 000 shadow&#039;&#039; after.&lt;br /&gt;
&lt;br /&gt;
Make sure file &#039;&#039;/etc/ssh/sshd_config&#039;&#039; has following line uncommented (must be pushed in by CC security scripts):&lt;br /&gt;
&lt;br /&gt;
 ##PermitUserEnvironment yes&lt;br /&gt;
&lt;br /&gt;
NOT NEEDED, DONE IN THE END OF FILE ALREADY !!! Uncomment following in file &#039;&#039;/etc/ssh/ssh_config&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 ##Host *&lt;br /&gt;
 ##ForwardX11 yes&lt;br /&gt;
&lt;br /&gt;
Add line &#039;export NO_AT_BRIDGE=1&#039; to the file &#039;/etc/environment&#039; to suppress annoying messages like &#039;** (emacs:38714): WARNING **: Couldn&#039;t register with accessibility bus: Did not receive a reply.&#039;&lt;br /&gt;
&lt;br /&gt;
If big (&amp;gt;2GB) partition to be formated, do following (for example /dev/sdb):&lt;br /&gt;
&lt;br /&gt;
 parted /dev/sdb&lt;br /&gt;
 (parted) print&lt;br /&gt;
 (parted) mklabel gpt&lt;br /&gt;
 (parted) print&lt;br /&gt;
 mkpart primary 0GB 25855.2GB&lt;br /&gt;
 (parted) print&lt;br /&gt;
 (parted) quit&lt;br /&gt;
&lt;br /&gt;
 mkfs.xfs /dev/sdb1&lt;br /&gt;
&lt;br /&gt;
then create /data and mount it using &#039;&#039;/etc/fstab&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 /dev/sdb1                                 /data                   xfs     defaults        1 2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; sometimes machine can loose NIS connection, then ssh to it becomes intermittent; if it happens ssh as root (may have to try several times) and run command&lt;br /&gt;
&lt;br /&gt;
 ypwhich&lt;br /&gt;
&lt;br /&gt;
to shows NIS server. If it returns nothing check file &#039;&#039;/etc/resolv.conf&#039;&#039;, it must have following (as on July 2019):&lt;br /&gt;
&lt;br /&gt;
 search jlab.org acc.jlab.org&lt;br /&gt;
 nameserver 129.57.90.255&lt;br /&gt;
 nameserver 129.57.32.101&lt;br /&gt;
&lt;br /&gt;
If file is empty or does not contain right info, fix it. After that run command&lt;br /&gt;
&lt;br /&gt;
 ypbind&lt;br /&gt;
&lt;br /&gt;
It should fix a problem. Run &#039;&#039;ypwhich&#039;&#039; to make sure.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Display Setting:&#039;&#039;&#039; if machine is multi-head, goto &#039;&#039;Applications-&amp;gt;System Tools-&amp;gt;Settings-&amp;gt;Devices-&amp;gt;Displays&#039;&#039; and arrange displays.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Proceed to the [[Linux Customization on CLON Cluster]].&lt;br /&gt;
&lt;br /&gt;
== RHEL6 (64 bit) ==&lt;br /&gt;
&lt;br /&gt;
Installed using CD provided by Computer Center. Requires MAC address to be registered with Computer Center (using jnet.jlab.org as &#039;boiarino&#039;) because it is network-based installation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: all disks will be reformatted in a process, all information will be lost !&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dialog:&lt;br /&gt;
&lt;br /&gt;
* boot: &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ...[D]esktop: [use &#039;s&#039; for server, &#039;d&#039; for desktop] &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* root password: enter root password&lt;br /&gt;
&lt;br /&gt;
* admin user: boiarino&lt;br /&gt;
&lt;br /&gt;
Installation will proceed. When prompted, remove installation disk and reboot machine if not done automatically. After reboot patching process will be started and it will take a while, do not interrupt it, otherwise system will not be installed correctly.&lt;br /&gt;
&lt;br /&gt;
To make emacs work, install&lt;br /&gt;
&lt;br /&gt;
 yum install libotf&lt;br /&gt;
&lt;br /&gt;
Edit the /etc/yum.conf file and add the following line to force installation of teh 32bit and 64bit libraries:&lt;br /&gt;
&lt;br /&gt;
 multilib_policy=all&lt;br /&gt;
&lt;br /&gt;
Install following packages:&lt;br /&gt;
&lt;br /&gt;
 yum install openmotif-devel xinetd mysql-devel cmake libXpm-devel net-snmp-utils&lt;br /&gt;
 yum install mesa-libGL-devel mesa-libGLU-devel mesa-libGLw-devel (for OpenGL, needed by ROOT)&lt;br /&gt;
 yum install libXaw-devel (for xterm)&lt;br /&gt;
 yum install expat-devel libgcj-devel (for evio/et)&lt;br /&gt;
&lt;br /&gt;
 yum install compat-libtermcap (for xterm)&lt;br /&gt;
 ln -s /lib/libtermcap.so.2 /usr/lib/libtermcap.so&lt;br /&gt;
 ###ln -s /lib64/libtermcap.so.2 /usr/lib64/libtermcap.so&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Install following fonts for EPICS EDMs:&lt;br /&gt;
&lt;br /&gt;
 yum install xorg-x11-fonts-75dpi xorg-x11-fonts-ISO8859-1-75dpi bitmap-miscfixed-fonts&lt;br /&gt;
 yum install bitmap-console-fonts bitmap-fixed-fonts bitmap-lucida-typewriter-fonts&lt;br /&gt;
 ln -s  /usr/share/X11/fonts/100dpi /etc/X11/fontpath.d/xorg-x11-fonts-100dpi:pri=60&lt;br /&gt;
 ln -s  /usr/share/X11/fonts/75dpi /etc/X11/fontpath.d/xorg-x11-fonts-75dpi:pri=50&lt;br /&gt;
 ln -s  /usr/share/X11/fonts/misc /etc/X11/fontpath.d/xorg-x11-fonts-misc:pri=40&lt;br /&gt;
 ln -s  /usr/share/fonts/bitmap /etc/X11/fontpath.d/bitmap-fonts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; Useful &#039;&#039;yum&#039;&#039; commands:&lt;br /&gt;
&lt;br /&gt;
 yum whatprovides libstdc++.so.5 - show which package contains libstdc++.so.5&lt;br /&gt;
&lt;br /&gt;
== RHEL5 ==&lt;br /&gt;
&lt;br /&gt;
Installed using CD provided by Computer Center. Requires MAC address to be registered with Computer Center (email to helpdesk@jlab.org) because it is network-based installation.&lt;br /&gt;
&lt;br /&gt;
Dialog:&lt;br /&gt;
&lt;br /&gt;
* boot: &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ...[D]esktop: Server (it is ignored, will do Desktop anyway ...)&lt;br /&gt;
&lt;br /&gt;
* root password: enter root password&lt;br /&gt;
&lt;br /&gt;
* system user: &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* manually partition disk: 100MB /boot, 2048 etc MB swap, the rest /.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CFENGINE&#039;&#039;&#039;: there are procesess restoring some system config files (in particular &#039;&#039;/etc/ssh/sshd_config&#039;&#039;) in according to the Computer Center - maintained templete. To shut them down: (1) comment out &#039;&#039;cfengine&#039;&#039;-related stuff in root cronjobs; (2) do &#039;&#039;/etc/init.d/cfengine stop&#039;&#039;; (3) do &#039;&#039;chkconfig cfengine off&#039;&#039;. Ask CC (Sherman White, Paul Letta) to fix templete.&lt;br /&gt;
&lt;br /&gt;
Run &#039;&#039;/usr/bin/system-config-authentication&#039;&#039; and set NIS servers list as &#039;&#039;clon00,clon10,nis1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Add following in the end of &#039;&#039;/etc/passwd&#039;&#039;:&lt;br /&gt;
 clasrun:x:2508:9998:Online DAQ:/home/clasrun:/bin/tcsh&lt;br /&gt;
 clas12run:x:6007:146:clas12run Account:/home/clas12run:/bin/tcsh&lt;br /&gt;
 clascron:x:6005:146:CLAS Cron Jobs:/home/clascron:/bin/tcsh&lt;br /&gt;
 clasboot:x:6000:146:Boot Scripts Only:/home/clasboot:/bin/tcsh&lt;br /&gt;
 clasmail:x:6003:146:CLAS Automated Mail:/home/clasmail:/bin/tcsh&lt;br /&gt;
 epics:x:5001:146:EPICS Account:/home/epics:/bin/tcsh&lt;br /&gt;
 nagios:x:6246:9997:Nagios:/home/nagios:/bin/tcsh&lt;br /&gt;
 +@clon_cluster::::::&lt;br /&gt;
 +@ccc::::::&lt;br /&gt;
&lt;br /&gt;
Add following in the end of &#039;&#039;/etc/group&#039;&#039;:&lt;br /&gt;
 onliners::9998:heyes,hujl,rwm,timmer,wolin,taylorw,cuevas,abbottd,abulafia,anciant,anghi,aswin,auger,avakian,banta,barrow,battagli,bjlee,bogdan,brooksw,bruhwel,boiarino,buckle,burchesk,burin,bzh,cetina,chen,cole,cords,corvi,costy,davidl,costy,davidl,dcarter,dcurry,dennisl,deppman,dhlee,doughty,drago,dytman,dugger,dugger,elton,fedro,ficenec,fklein,france,freyberg,gholden,gilfoyle,golovach,gurjyan,haddock,heddle,jenkins,jhardie,jmorris,kellyk,klusman,kmkim,kossov,lcsmith,longhi,manak,marchand,marki,mastersj,mjohnson,mosbackr,mueller,muguira,murphyl,necaise,odonnell,opper,parkkj,pasyuk,phkim,piot,riccardi,richardt,ripani,rossi,saw,sergpozd,serov,sholt,staylor,taiuti,tang,tedeschi,vineyard,vlassov,vvsap,weygand,wooyoung,burchesk,clasrun,giovanet,clasboot,clascoda,clasroot,clasmail,clascron,trigger,epics,southern,carstens,ccutter,danagu,heyes,huertas,jacobsg,kliv,lachniet,mestayer,primex,hovanes,nerses,sytnik&lt;br /&gt;
 clon::383:clascoda,clascron,clasmail&lt;br /&gt;
 nagios::9997:nagios&lt;br /&gt;
&lt;br /&gt;
Create &#039;&#039;/etc/shadow&#039;&#039; files with entries for users clasrun, epics and nagios (copy from another machine).&lt;br /&gt;
&lt;br /&gt;
Install updates: normally all updates should be installed by now, it can be done manually by commands&lt;br /&gt;
 yum list updates&lt;br /&gt;
 yum update&lt;br /&gt;
&lt;br /&gt;
Configure [[SSH]].&lt;br /&gt;
&lt;br /&gt;
Install missing packages:&lt;br /&gt;
 yum install openmotif-devel xinetd mysql-devel cmake&lt;br /&gt;
&lt;br /&gt;
Some additional packages on request (for EPICS):&lt;br /&gt;
&lt;br /&gt;
 yum install mc lapack lapack-devel blas blas-devel giflib-devel&lt;br /&gt;
&lt;br /&gt;
Proceed to the [[Linux Customization on CLON Cluster]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PROBLEMS&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
1. /usr/lib/libg2c.so link is missing&lt;br /&gt;
&lt;br /&gt;
FIXED ??? 2. /usr/lib/libXm.so link is missing&lt;br /&gt;
&lt;br /&gt;
3. Created /etc/shadow file for clasrun, epics and nagios&lt;br /&gt;
&lt;br /&gt;
== RHEL4 ==&lt;br /&gt;
&lt;br /&gt;
Get RHEL4 CDs from Paul Letta.&lt;br /&gt;
&lt;br /&gt;
Connect terminal, keyboard and mouse.&lt;br /&gt;
&lt;br /&gt;
Boot from CD1. Follow instructions. When asked, choose following options:&lt;br /&gt;
&lt;br /&gt;
* Choose &#039;Manually partition with Disk Druid&#039;, set /boot to 100MB, then / to 40GB, then swap to 8192MB or at least double memory size. The rest of disk can be set as /space.&lt;br /&gt;
&lt;br /&gt;
* Network: choose manually, type clonpc2.jlab.org; click &#039;EDIT&#039;, deactivate &#039;Configure using DHCP&#039;,&lt;br /&gt;
type IP address and netmask (255.255.255.0), click Ok.&lt;br /&gt;
Type Gateway (for example 129.57.167.99) and 3 DNS servers (129.57.167.5,129.57.167.14,129.57.32.100).&lt;br /&gt;
&lt;br /&gt;
* Choose &#039;No firewall&#039;&lt;br /&gt;
&lt;br /&gt;
* Disable &#039;SELinux&#039;&lt;br /&gt;
&lt;br /&gt;
* Choose &#039;Customize software packages to be installed&#039;, click &#039;Everything&#039;.&lt;br /&gt;
&lt;br /&gt;
You will be asked to install CD2, CD3 and CD4, then CD1 again.&lt;br /&gt;
Then you will be asked to click &#039;Reboot&#039;. First remove CD, then click &#039;Reboot&#039;.&lt;br /&gt;
You will be asked few more questions. When asked to activate service, choose&lt;br /&gt;
&#039;Tell me why I need to register ..&#039; and click &#039;Next&#039;. Choose &#039;I can not complete registration ..&#039;&lt;br /&gt;
and click &#039;Next&#039;. You will see &#039;System user&#039; screen, click &#039;Use network login..&#039;.&lt;br /&gt;
Choose &#039;Enable NIS support&#039; and click &#039;Configure NIS&#039;. Type NIS Domain: &#039;CCCHP&#039; and NIS Server: clon00.jlab.org.&lt;br /&gt;
Finish installation process.&lt;br /&gt;
&lt;br /&gt;
* fix files &#039;&#039;/etc/passwd&#039;&#039;, &#039;&#039;/etc/shadow&#039;&#039; and &#039;&#039;/etc/group&#039;&#039; adding clasrun etc (see examples on another machines).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: if machine has multiple network ports, Linux may not assign them properly to specified IP names and addresses. If problem occures, open network GUI and delete all existing records. After that, click &#039;&#039;New&#039;&#039; and pick hadrware port you want to configure from the list of available ports (tricky part is to know which RJ-45 connector corresponds to which port ..). Configure and activate it, make sure it works. Repeat for other ports. Results will be stored in directory &#039;&#039;/etc/sysconfig/network-scripts&#039;&#039;, file names will be &#039;&#039;ifcfg-eth0&#039;&#039;, &#039;&#039;ifcfg-eth1&#039;&#039; etc. If modifying those files manually, restart network by &#039;&#039;/etc/init.d/network restart&#039;&#039;. Finally, set routing, for example for &#039;&#039;clonmon&#039;&#039; command &#039;&#039;route -n&#039;&#039; shows following:&lt;br /&gt;
 Kernel IP routing table&lt;br /&gt;
 Destination     Gateway         Genmask         Flags Metric Ref    Use Iface&lt;br /&gt;
 129.57.160.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1&lt;br /&gt;
 129.57.68.0     0.0.0.0         255.255.255.0   U     0      0        0 eth3&lt;br /&gt;
 129.57.69.0     0.0.0.0         255.255.255.0   U     0      0        0 dev5937&lt;br /&gt;
 129.57.64.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0&lt;br /&gt;
 169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth3&lt;br /&gt;
 0.0.0.0         129.57.68.100   0.0.0.0         UG    0      0        0 eth3&lt;br /&gt;
Run following commands:&lt;br /&gt;
 /sbin/route add -net 129.57.160.0 netmask 255.255.255.0 gw 129.57.160.5 dev eth1&lt;br /&gt;
 /sbin/route add -net 129.57.68.0 netmask 255.255.255.0 gw 129.57.68.26 dev eth3&lt;br /&gt;
 /sbin/route add -net 129.57.69.0 netmask 255.255.255.0 gw 129.57.69.206 dev dev5937&lt;br /&gt;
 /sbin/route add -net 129.57.64.0 netmask 255.255.255.0 gw 129.57.64.57 dev eth0&lt;br /&gt;
Now &#039;&#039;route -n&#039;&#039; shows following:&lt;br /&gt;
 Kernel IP routing table&lt;br /&gt;
 Destination     Gateway         Genmask         Flags Metric Ref    Use Iface&lt;br /&gt;
 129.57.160.0    129.57.160.5    255.255.255.0   UG    0      0        0 eth1&lt;br /&gt;
 129.57.160.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1&lt;br /&gt;
 129.57.68.0     129.57.68.26    255.255.255.0   UG    0      0        0 eth3&lt;br /&gt;
 129.57.68.0     0.0.0.0         255.255.255.0   U     0      0        0 eth3&lt;br /&gt;
 129.57.69.0     129.57.69.206   255.255.255.0   UG    0      0        0 dev5937&lt;br /&gt;
 129.57.69.0     0.0.0.0         255.255.255.0   U     0      0        0 dev5937&lt;br /&gt;
 129.57.64.0     129.57.64.57    255.255.255.0   UG    0      0        0 eth0&lt;br /&gt;
 129.57.64.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0&lt;br /&gt;
 169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth3&lt;br /&gt;
 0.0.0.0         129.57.68.100   0.0.0.0         UG    0      0        0 eth3&lt;br /&gt;
In that example automount will do configured using &#039;&#039;clonmon-daq1&#039;&#039; interface, because default &#039;&#039;clonmon&#039;&#039; interface is on external subnet. To make that routing table permanent (retore it after reboot) I tried to add four files with following contents to the &#039;&#039;/etc/sysconfig/network-scripts&#039;&#039; directory:&lt;br /&gt;
 route-eth1:&lt;br /&gt;
   GATEWAY0=129.57.160.5&lt;br /&gt;
   NETMASK0=255.255.255.0&lt;br /&gt;
   ADDRESS0=129.57.160.0&lt;br /&gt;
 route-eth3:&lt;br /&gt;
   GATEWAY0=129.57.68.26&lt;br /&gt;
   NETMASK0=255.255.255.0&lt;br /&gt;
   ADDRESS0=129.57.68.0&lt;br /&gt;
 route-dev5937:&lt;br /&gt;
   GATEWAY0=129.57.69.206&lt;br /&gt;
   NETMASK0=255.255.255.0&lt;br /&gt;
   ADDRESS0=129.57.69.0&lt;br /&gt;
 route-eth0:&lt;br /&gt;
   GATEWAY0=129.57.64.57&lt;br /&gt;
   NETMASK0=255.255.255.0&lt;br /&gt;
   ADDRESS0=129.57.64.0&lt;br /&gt;
It did not worked. Then I added four &#039;&#039;/sbin/route add ..&#039;&#039; lines to &#039;&#039;/etc/rc.local&#039;&#039; script, and it worked.&lt;br /&gt;
&lt;br /&gt;
From now on you can use remote &#039;ssh&#039; connection.&lt;br /&gt;
&lt;br /&gt;
* To configure your system to use the patch server, issue the following commands as root:&lt;br /&gt;
 # mount jlabsite:/site /mnt&lt;br /&gt;
 # /mnt/CC/linux/satellite-connect --patchall&lt;br /&gt;
The script will prompt you for an activation key, but if you don&#039;t know what this is, just hit ENTER and it will use a sensible default.  Depending on how many patches need to be applied to your system to bring it up to the current level, this script may take a very long time to run.  When it finishes, you should reboot your machine to make the new patches take effect.&lt;br /&gt;
&lt;br /&gt;
To install updates later run &#039;&#039;up2date -uf&#039;&#039; as &#039;&#039;root&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Configure [[SSH]].&lt;br /&gt;
&lt;br /&gt;
* Proceed with [[Linux Customization on CLON Cluster]] if applicable.&lt;br /&gt;
&lt;br /&gt;
To boot Linux in single user mode (no graphics), add &#039;&#039;single&#039;&#039; to the end of boot line during boot process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;background info&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Add startup script&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Create script in &#039;&#039;/etc/init.d/&#039;&#039; directory (use existing scripts as example). Must have a line like&lt;br /&gt;
 # chkconfig:	- 91 09&lt;br /&gt;
which specifies start and stop order. Run commands&lt;br /&gt;
 chkconfig --add &amp;lt;scriptname&amp;gt;&lt;br /&gt;
 chkconfig --level 3 &amp;lt;scriptname&amp;gt; on&lt;br /&gt;
for every level you want that script to be executed (usualy 3 and/or 4 and/or 5). Check if it os done using command&lt;br /&gt;
 chkconfig --list | grep &amp;lt;scriptname&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;xxx&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can choose to download the RHEL operating system directly from the Red Hat Web site and not receive a media kit from HP containing the software. This scenario occurs when the media option AJR is deselected from the order. (The media kit option is always selected by default. )&lt;br /&gt;
&lt;br /&gt;
It is necessary to register at the Red Hat Web site prior to download. Registration requires the activation code that each customer receives from HP when ordering either RHEL.&lt;br /&gt;
&lt;br /&gt;
You can download RHEL for each available platform as four CD ISO images or one DVD ISO image.&lt;br /&gt;
&lt;br /&gt;
Use the following procedure to download RHEL and create the installation media:&lt;br /&gt;
&lt;br /&gt;
   1.&lt;br /&gt;
&lt;br /&gt;
      Register and log in at the following Red Hat Web site:&lt;br /&gt;
&lt;br /&gt;
      www.redhat.com/rhn&lt;br /&gt;
   2.&lt;br /&gt;
&lt;br /&gt;
      Click on channels and then select Red Hat Enterprise Linux ES (v.4 for 64–bit Intel Itanium).&lt;br /&gt;
   3.&lt;br /&gt;
&lt;br /&gt;
      Select Downloads and then download the ISO images of install, compatibility and source disks&lt;br /&gt;
&lt;br /&gt;
      Files with ia64 in the name are for the Itanium platform.&lt;br /&gt;
   4.&lt;br /&gt;
&lt;br /&gt;
      Create the CDs or a DVD from the ISO images.&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
	IMPORTANT: Create the CDs or DVD using the contents of the ISO images. Do not create the CDs or DVD by burning the .iso files themselves to CD or DVD. For example, if you are using K3b to burn a CD, click Tools&amp;gt;CD&amp;gt;Burn CD Image, select the .iso image, then click Burn.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bootup scripts&#039;&#039;&#039; for example for level 5 execution (multiuser with X):&lt;br /&gt;
&lt;br /&gt;
 cp &amp;lt;script-file&amp;gt; /etc/init.d/&lt;br /&gt;
 chmod +x /etc/init.d/&amp;lt;script-file&amp;gt;&lt;br /&gt;
 ln -s /etc/init.d/&amp;lt;scriptfile&amp;gt; /etc/rc.d/rc5.d/S50&amp;lt;scriptfile&amp;gt;&lt;br /&gt;
 ln -s /etc/init.d/&amp;lt;scriptfile&amp;gt; /etc/rc.d/rc5.d/K50&amp;lt;scriptfile&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changing hostname/IP address&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 Changing hostname on RHEL&lt;br /&gt;
 1. Change the HOSTNAME line in /etc/sysconfig/network&lt;br /&gt;
 2. Change the hostname (FQDN and alias) in /etc/hosts&lt;br /&gt;
 3. Run &#039;/bin/hostname new_hostname&#039; for the hostname change to take effect immediately.&lt;br /&gt;
 4. Run &#039;/sbin/service syslog restart&#039; for syslog to log using the new hostname.&lt;br /&gt;
 A reboot is not required to change the system hostname.&lt;br /&gt;
&lt;br /&gt;
 IP address: You have to change the IP address entry in&lt;br /&gt;
 /etc/sysconfig/network-scripts/ifcfg-eth0.&lt;/div&gt;</summary>
		<author><name>Boiarino</name></author>
	</entry>
	<entry>
		<id>https://clonwiki0.jlab.org/wiki/index.php?title=Linux_Installation_Procedure&amp;diff=8704</id>
		<title>Linux Installation Procedure</title>
		<link rel="alternate" type="text/html" href="https://clonwiki0.jlab.org/wiki/index.php?title=Linux_Installation_Procedure&amp;diff=8704"/>
		<updated>2026-02-11T05:41:31Z</updated>

		<summary type="html">&lt;p&gt;Boiarino: /* RHEL9 (64 bit) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Dell servers hardware trick(s) ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;!!! if BIOS date/time is incorrect, it may prevent redhat subscription and installation to work correctly, set it to correct value !!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* if BIOS does not remember time setting after power unplugged, battery on motherboard may need to be replaced&lt;br /&gt;
&lt;br /&gt;
* if looks dead, remove the power cords, then held in the on button for 30 seconds; then plug it back in and it may boots up fine - known Dell feature&lt;br /&gt;
&lt;br /&gt;
== ARM (CentsOS7) ==&lt;br /&gt;
&lt;br /&gt;
See [[yum]] for specifics.&lt;br /&gt;
&lt;br /&gt;
 yum install xauth wget bzip2 xterm expat-devel libX11-devel libXpm-devel motif-devel mariadb-devel&lt;br /&gt;
&lt;br /&gt;
== RHEL9 (64 bit) - machine under puppet control ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: select installation type &#039;&#039;&#039;H&#039;&#039;&#039;, then type &#039;&#039;&#039;B&#039;&#039;&#039;.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: during custom disk partitioning, select &#039;Standard&#039; for every partition, if you want it to be standard, or &#039;Raid&#039; if applicable&lt;br /&gt;
&lt;br /&gt;
Root password will be set by puppet during installation, as well as most other needed settings.&lt;br /&gt;
&lt;br /&gt;
Install useful pachages:&lt;br /&gt;
 yum install ncdu mysql&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: graphic screen is disabled, run following command as root:&lt;br /&gt;
 systemctl set-default graphical.target&lt;br /&gt;
&lt;br /&gt;
== RHEL9 (64 bit) - for machine NOT under puppet control ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: select installation type &#039;&#039;&#039;D&#039;&#039;&#039; (not &#039;&#039;&#039;S&#039;&#039;&#039;, otherwise it will not be level 2 server)&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: during custom disk partitioning, select &#039;Standard&#039; for every partition, if you want it to be standard, or &#039;Raid&#039; if applicable&lt;br /&gt;
&lt;br /&gt;
When installation complete, ssh as authorized user and do following:&lt;br /&gt;
&lt;br /&gt;
 sudo yum install emacs&lt;br /&gt;
 cd /etc&lt;br /&gt;
 sudo chmod a+rw shadow&lt;br /&gt;
 sudo emacs shadow&lt;br /&gt;
&lt;br /&gt;
Copy to /etc/shadow root and other needed passwords from another clon machine. &lt;br /&gt;
&lt;br /&gt;
 sudo chmod a-rw shadow&lt;br /&gt;
&lt;br /&gt;
After that, type &#039;&#039;su&#039;&#039; to become superuser. All following settings can be done now without typing &#039;&#039;sudo&#039;&#039; every time. You still will not be able to ssh remotely as root - always ssh as authorized user and type &#039;&#039;su&#039;&#039; to become root.&lt;br /&gt;
&lt;br /&gt;
Update /etc/passwd and /etc/group using another clon machine as example.&lt;br /&gt;
&lt;br /&gt;
 yum install expat-devel libXaw-devel mysql-devel motif-devel ncurses-devel apr-devel net-snmp-utils&lt;br /&gt;
 yum install xorg-x11-utils # for xprop/xwininfo/etc creg stuff&lt;br /&gt;
 yum install s-nail # for /usr/bin/mail&lt;br /&gt;
 yum install ncdu&lt;br /&gt;
 yum install libconfig-devel # recent addition for CODA libraries&lt;br /&gt;
&lt;br /&gt;
To be able to ssh to old machines (like vme controllers under CentOS5), run following as root:&lt;br /&gt;
&lt;br /&gt;
 update-crypto-policies --set LEGACY&lt;br /&gt;
&lt;br /&gt;
and then probably reboot, not sure.&lt;br /&gt;
&lt;br /&gt;
Somebody mentioned also adding &#039;&#039;RequiredRSASize 1024&#039;&#039; to a config file in &#039;&#039;/etc/ssh/ssh_config.d/&#039;&#039;, but I did not do it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    Note: this changes all daemons and system settings and is a bit overkill if you only need to adjust the settings for ssh and sshd.&lt;br /&gt;
&lt;br /&gt;
    Exclude (only) sshd from the system-wide cryptographic policy. You opt-out by editing /etc/sysconfig/sshd and uncommenting the line # CRYPTO_POLICY= , (if necessary you can then adjust adjust /etc/ssh/sshd_config and add legacy crypto settings) and restart the ssh daemon.&lt;br /&gt;
&lt;br /&gt;
For the ssh command line client on the RHEL 9 system: you&#039;re recommended to edit ˜/.ssh/config and override the modern/secure system wide ssh client defaults by adding a Host entry that adds support for suitable legacy encryption options for that particular host:&lt;br /&gt;
&lt;br /&gt;
#    ˜/.ssh/config&lt;br /&gt;
&lt;br /&gt;
Host rhel6.example.com&lt;br /&gt;
  KexAlgorithms +diffie-hellman-group14-sha1&lt;br /&gt;
  MACs +hmac-sha1&lt;br /&gt;
  HostKeyAlgorithms +ssh-rsa&lt;br /&gt;
  PubkeyAcceptedKeyTypes +ssh-rsa&lt;br /&gt;
  PubkeyAcceptedAlgorithms +ssh-rsa&lt;br /&gt;
&lt;br /&gt;
Prepare auto-mounting directories:&lt;br /&gt;
&lt;br /&gt;
 cd /&lt;br /&gt;
 mv apps apps.orig&lt;br /&gt;
 mv home home.orig&lt;br /&gt;
 mv scratch scratch.orig&lt;br /&gt;
 mv work work.orig&lt;br /&gt;
 mkdir apps&lt;br /&gt;
 mkdir home&lt;br /&gt;
 mkdir scratch&lt;br /&gt;
 mkdir work&lt;br /&gt;
 mkdir logs&lt;br /&gt;
 cd /usr&lt;br /&gt;
 mv local local.orig&lt;br /&gt;
 mkdir local&lt;br /&gt;
 mkdir clas&lt;br /&gt;
 mkdir clas12&lt;br /&gt;
 mkdir downloads&lt;br /&gt;
 cd&lt;br /&gt;
&lt;br /&gt;
== RHEL8 (64 bit) ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; to boot from USB stick, insert USB stick, turn machine ON holding F2, and in BIOS Boot Configuration, set Enable Security Boot to OFF, save and exit, holding F2. When in BIOS again, in Boot Configuration make &#039;&#039;UEFI PHY USB ...&#039;&#039; first in boot sequence, local hard drive second, disable all other boot options, save and exit. Do NOT hold F2, Linux installation from USB stick will start. &#039;&#039;&#039;IMPORTANT:&#039;&#039;&#039; when asked about D/S options (very first question in installation process), &#039;&#039;&#039;REMOVE USB STICK BEFORE ANSWERING QUESTION ABOUT DESKTOP/SERVER&#039;&#039;&#039;, otherwise it will be destroyed by following installation steps !!!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; to disable/enable puppet, do following as root: &lt;br /&gt;
 puppet agent --disable &amp;quot;temporary&amp;quot;&lt;br /&gt;
 puppet agent --enable&lt;br /&gt;
&lt;br /&gt;
 yum install emacs&lt;br /&gt;
 yum install xorg-x11-fonts-misc&lt;br /&gt;
&lt;br /&gt;
Move and create some directories in preparation for automounts:&lt;br /&gt;
&lt;br /&gt;
 cd /&lt;br /&gt;
 mv apps apps.orig&lt;br /&gt;
 mv home home.orig&lt;br /&gt;
 mv scratch scratch.orig&lt;br /&gt;
 mkdir apps&lt;br /&gt;
 mkdir home&lt;br /&gt;
 mkdir scratch&lt;br /&gt;
 mkdir work&lt;br /&gt;
 mkdir logs&lt;br /&gt;
 cd /usr&lt;br /&gt;
 mv local local.orig&lt;br /&gt;
 mkdir local&lt;br /&gt;
 mkdir clas&lt;br /&gt;
 mkdir clas12&lt;br /&gt;
 mkdir downloads&lt;br /&gt;
 cd&lt;br /&gt;
&lt;br /&gt;
Add line &#039;&#039;&#039;+dir:/etc/auto.master.d&#039;&#039;&#039; to &#039;&#039;/etc/auto.master&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Create file &#039;&#039;/etc/auto.master.d/direct.autofs&#039;&#039; with the line &#039;&#039;&#039;/- /etc/auto.direct&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Create file &#039;&#039;/etc/auto.direct&#039;&#039; with the following contents:&lt;br /&gt;
&lt;br /&gt;
 # machine-dependent system directories&lt;br /&gt;
 /apps                 -rw,bg     clonfs1:/vol/apps/RHEL8_x86_64&lt;br /&gt;
 /usr/local            -rw,bg     clonfs1:/vol/local/RHEL8_x86_64&lt;br /&gt;
 # machine-independent system directories&lt;br /&gt;
 /home                 -rw,bg     clonfs1:/vol/home&lt;br /&gt;
 #/work                 -rw,bg     clonfs1-old:/vol/work&lt;br /&gt;
 /scratch              -rw,bg     clonfs1:/vol/scratch&lt;br /&gt;
 # machine-independent clas directories&lt;br /&gt;
 /usr/downloads        -rw,bg     clonfs1:/vol/downloads&lt;br /&gt;
 /usr/clas             -rw,bg     clonfs1:/vol/clas&lt;br /&gt;
 /usr/clas12           -rw,bg     clonfs1:/vol/clas12&lt;br /&gt;
 # Used for data storage before shipping to tape&lt;br /&gt;
 #/logs                 -rw,bg     clonfs1-old:/vol/logs&lt;br /&gt;
&lt;br /&gt;
Restart autofs:&lt;br /&gt;
&lt;br /&gt;
 service autofs reload&lt;br /&gt;
 service autofs restart&lt;br /&gt;
&lt;br /&gt;
Remove from the end of the &#039;&#039;/etc/passwd&#039;&#039; line &#039;&#039;&#039;+::::::&#039;&#039;&#039;, and add following:&lt;br /&gt;
&lt;br /&gt;
 hpsrun:x:8796:9998:hpsrun Account:/home/hpsrun:/bin/tcsh&lt;br /&gt;
 clasrun:x:2508:9998:Online DAQ:/home/clasrun:/bin/tcsh&lt;br /&gt;
 clasioc:x:6008:9998:CLAS IOCs:/home/clasioc:/bin/tcsh&lt;br /&gt;
 clas12run:x:6007:146:clas12run Account:/home/clas12run:/bin/tcsh&lt;br /&gt;
 clascron:x:3888:146:CLAS Cron Jobs:/home/clascron:/bin/tcsh&lt;br /&gt;
 clasboot:x:6000:146:Boot Scripts Only:/home/clasboot:/bin/tcsh&lt;br /&gt;
 clasmail:x:6003:146:CLAS Automated Mail:/home/clasmail:/bin/tcsh&lt;br /&gt;
 epics:x:5001:146:EPICS Account:/home/epics:/bin/tcsh&lt;br /&gt;
 nagios:x:6246:9997:Nagios:/home/nagios:/bin/tcsh&lt;br /&gt;
 +@clon_cluster::::::&lt;br /&gt;
 +sshd::::::&lt;br /&gt;
 +::::::/bin/false&lt;br /&gt;
&lt;br /&gt;
Update &#039;&#039;/etc/shadow&#039;&#039;, adding passwords for local accounts (copy it from another machine).&lt;br /&gt;
&lt;br /&gt;
Add following to &#039;&#039;/etc/group&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 clon:x:383:clascron&lt;br /&gt;
 onliners:x:9998:abbottd,avakian,baltzell,battagli,brooksw,bruhwel,boiarino,carman,chen,clasboot,clascron,clasrun,cole,cuevas,davidl,danagu,dugger,elton,epics,fklein,gilfoyle,giovanet,golovach,gurjyan,heddle,heyes,hovanes,jacobsg,jenkins,kliv,lcsmith,marki,mestayer,nerses,parkkj,pasyuk,primex,ripani,rossi,saw,staylor,sytnik,taiuti,taylorw,timmer,wooyoung&lt;br /&gt;
&lt;br /&gt;
== RHEL7 (64 bit) ==&lt;br /&gt;
&lt;br /&gt;
Installed using DVD provided by Computer Center, currently RHEL7.3. Requires MAC address to be registered with Computer Center (using jnet.jlab.org as &#039;boiarino&#039;) because it is network-based installation. On DELL servers, hold F2 after power on and go to &#039;Device Settings&#039; to see mac address. Remember machine memory size as well, will needed when create partitions, find it in &#039;System BIOS -&amp;gt; Memory Settings&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: all disks will be reformatted in a process, all information will be lost !&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dialog:&lt;br /&gt;
&lt;br /&gt;
* boot: &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Please enter the hostname of this system: &amp;lt;hostname&amp;gt; &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* What type of system are you building? (D)esktop: &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Is this a CUE level 1 or CUE level 2 System build (1/2): 2 &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Please enter the System Admin&#039;s CUE username: boiarino &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Do you want to use the default partitioning scheme (y/n)? n &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Are you sure you want to use your own partitioning scheme (y/n)? y &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Choose &#039;Standard Partition&#039; scheme and create following partitions: /boot - 1GB, swap - double memory size, / - the rest of space.&lt;br /&gt;
&lt;br /&gt;
Installation will proceed. When prompted, remove installation disk and reboot machine if not done automatically.&lt;br /&gt;
&lt;br /&gt;
After reboot patching process will be started and it will take a while, do not interrupt it, otherwise system will not be installed correctly.&lt;br /&gt;
&lt;br /&gt;
When machine reboots for the last time, ask Paul Letta to set usual hallb root password. From now on remote root access is possible. Alternatively, user &#039;&#039;boiarino&#039;&#039; can execute most of actions using &#039;&#039;sudo&#039;&#039;,&lt;br /&gt;
like &#039;&#039;sudo emacs&#039;&#039; for protected files. &#039;&#039;sudo reboot&#039;&#039; etc.&lt;br /&gt;
&lt;br /&gt;
Go to /boot/grub2 and modify file grub.cfg, Linux kernel boot options, adding options &#039;&#039;net.ifnames=0 biosdevname=0&#039;&#039;, so your boot string has following section:&lt;br /&gt;
&lt;br /&gt;
 ..... rhgb net.ifnames=0 biosdevname=0 quiet .....&lt;br /&gt;
&lt;br /&gt;
so whole line looks something like this:&lt;br /&gt;
&lt;br /&gt;
 linux16 /vmlinuz-3.10.0-327.18.2.el7.x86_64 root=UUID=b5d1b5ad-e3f6-4db4-8972-aa9c1a91d116 ro vconsole.keymap=us crashkernel=auto  vconsole.font=latarcyrheb-sun16 rhgb net.ifnames=0 biosdevname=0 quiet LANG=en_US.UTF-8&lt;br /&gt;
&lt;br /&gt;
Reboot machine, ethernet ports must be named &#039;&#039;eth0&#039;&#039;, &#039;&#039;eth1&#039;&#039; etc.&lt;br /&gt;
&lt;br /&gt;
To update manually, use commands &#039;&#039;yum list updates&#039;&#039; and &#039;&#039;yum update&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; add machine to the appropriate &#039;&#039;&#039;puppet&#039;&#039;&#039; group, it will do all following automatically (hopefully).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; on RHEL7.9, RPM EPEL REPO is not enabled by default, which prevents from installing nload, itcl, itk etc. To bring it back, it can be copied it from older machine, for example:&lt;br /&gt;
&lt;br /&gt;
 cd /etc/yum.repos.d&lt;br /&gt;
 scp clondaq7:/etc/yum.repos.d/epel.repo .&lt;br /&gt;
 cd /etc/pki/rpm-gpg&lt;br /&gt;
 scp clondaq7:/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 .&lt;br /&gt;
&lt;br /&gt;
Alternatively, following can be used to add repo&#039;s:&lt;br /&gt;
&lt;br /&gt;
 subscription-manager repos --enable &amp;lt;repo_id&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In particular, following have to be enabled to get nload, xpdf, python-alembic, tix, itcl, itk etc:&lt;br /&gt;
&lt;br /&gt;
 subscription-manager repos --enable JLab_EPEL_EPEL_7&lt;br /&gt;
 subscription-manager repos --enable rhel-7-workstation-optional-rpms&lt;br /&gt;
&lt;br /&gt;
Repo ID&#039;s can be obtained by:&lt;br /&gt;
&lt;br /&gt;
 subscription-manager repos --list&lt;br /&gt;
&lt;br /&gt;
Installed repo&#039;s can be seen by:&lt;br /&gt;
&lt;br /&gt;
 yum repolist&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Yum updates&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Edit the &#039;&#039;/etc/yum.conf&#039;&#039; file and add the following line to force installation of the 32bit and 64bit libraries:&lt;br /&gt;
&lt;br /&gt;
 multilib_policy=all&lt;br /&gt;
&lt;br /&gt;
Install following packages:&lt;br /&gt;
&lt;br /&gt;
 yum install xterm mesa-dri-drivers telnet rsh readline-devel net-snmp-utils tigervnc-server tigervnc xpdf nload mariadb-devel libxml2-devel glibc-devel qt-devel python-alembic openssl-devel apr-devel&lt;br /&gt;
 yum install libconfig-devel # recent addition for CODA libraries&lt;br /&gt;
&lt;br /&gt;
Fonts for EPICS EDMs:&lt;br /&gt;
&lt;br /&gt;
 yum install xorg-x11-fonts-75dpi xorg-x11-fonts-ISO8859-1-75dpi bitmap-miscfixed-fonts&lt;br /&gt;
 yum install bitmap-console-fonts bitmap-fixed-fonts bitmap-lucida-typewriter-fonts&lt;br /&gt;
 ln -s  /usr/share/X11/fonts/100dpi /etc/X11/fontpath.d/xorg-x11-fonts-100dpi:pri=60&lt;br /&gt;
 ln -s  /usr/share/X11/fonts/75dpi /etc/X11/fontpath.d/xorg-x11-fonts-75dpi:pri=50&lt;br /&gt;
 ln -s  /usr/share/X11/fonts/misc /etc/X11/fontpath.d/xorg-x11-fonts-misc:pri=40&lt;br /&gt;
 ln -s  /usr/share/fonts/bitmap /etc/X11/fontpath.d/bitmap-fonts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Do following to be able to compile and run 32-bit apps on 64-bit machine (for compatibility with 32bit applications):&lt;br /&gt;
&lt;br /&gt;
 yum install libXpm-devel libXaw-devel motif-devel glibc-devel ncurses-devel readline-devel&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Modify file &#039;&#039;/etc/passwd&#039;&#039; adding following:&lt;br /&gt;
&lt;br /&gt;
 hpsrun:x:8796:9998:hpsrun Account:/home/hpsrun:/bin/tcsh&lt;br /&gt;
 clasrun:x:2508:9998:Online DAQ:/home/clasrun:/bin/tcsh&lt;br /&gt;
 clasioc:x:6008:9998:CLAS IOCs:/home/clasioc:/bin/tcsh&lt;br /&gt;
 clas12run:x:6007:146:clas12run Account:/home/clas12run:/bin/tcsh&lt;br /&gt;
 clascron:x:3888:146:CLAS Cron Jobs:/home/clascron:/bin/tcsh&lt;br /&gt;
 clasboot:x:6000:146:Boot Scripts Only:/home/clasboot:/bin/tcsh&lt;br /&gt;
 clasmail:x:6003:146:CLAS Automated Mail:/home/clasmail:/bin/tcsh&lt;br /&gt;
 epics:x:5001:146:EPICS Account:/home/epics:/bin/tcsh&lt;br /&gt;
 nagios:x:6246:9997:Nagios:/home/nagios:/bin/tcsh&lt;br /&gt;
 +@clon_cluster::::::&lt;br /&gt;
 +sshd::::::&lt;br /&gt;
 +::::::/bin/false&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: user-related lines must be removed, like&lt;br /&gt;
&lt;br /&gt;
 +boiarino::::::&lt;br /&gt;
&lt;br /&gt;
as well as&lt;br /&gt;
&lt;br /&gt;
 +::::::&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: assumed that following line is in already:&lt;br /&gt;
&lt;br /&gt;
 +@ccc::::::&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: if following line exist, it must be placed in the end, or removed:&lt;br /&gt;
&lt;br /&gt;
 +::::::/bin/false&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Modify file &#039;&#039;/etc/group&#039;&#039; adding following:&lt;br /&gt;
&lt;br /&gt;
 onliners::9998:heyes,hujl,rwm,timmer,wolin,taylorw,cuevas,abbottd,abulafia,anciant,anghi,aswin,auger,avakian,banta,barrow,battagli,bjlee,bogdan,brooksw,bruhwel,boiarino,buckle,burchesk,burin,bzh,cetina,chen,cole,cords,corvi,costy,davidl,costy,davidl,dcarter,dcurry,dennisl,deppman,dhlee,doughty,drago,dytman,dugger,dugger,elton,fedro,ficenec,fklein,france,freyberg,gholden,gilfoyle,golovach,gurjyan,haddock,heddle,jenkins,jhardie,jmorris,kellyk,klusman,kmkim,kossov,lcsmith,longhi,manak,marchand,marki,mastersj,mjohnson,mosbackr,mueller,muguira,murphyl,necaise,odonnell,opper,parkkj,pasyuk,phkim,piot,riccardi,richardt,ripani,rossi,saw,sergpozd,serov,sholt,staylor,taiuti,tang,tedeschi,vineyard,vlassov,vvsap,weygand,wooyoung,burchesk,clasrun,giovanet,clasboot,clascoda,clasroot,clasmail,clascron,trigger,epics,southern,carstens,ccutter,danagu,heyes,huertas,jacobsg,kliv,lachniet,mestayer,primex,hovanes,nerses,sytnik,baltzell,carman&lt;br /&gt;
 clon::383:clascoda,clascron,clasmail&lt;br /&gt;
 nagios::9997:nagios&lt;br /&gt;
&lt;br /&gt;
Modify file &#039;&#039;/etc/shadow&#039;&#039; using an example from another RHEL7 clon machine (clonioc2 etc). Do &#039;&#039;chmod 600 shadow&#039;&#039; before editing and &#039;&#039;chmod 000 shadow&#039;&#039; after.&lt;br /&gt;
&lt;br /&gt;
Make sure file &#039;&#039;/etc/ssh/sshd_config&#039;&#039; has following line uncommented (must be pushed in by CC security scripts):&lt;br /&gt;
&lt;br /&gt;
 ##PermitUserEnvironment yes&lt;br /&gt;
&lt;br /&gt;
NOT NEEDED, DONE IN THE END OF FILE ALREADY !!! Uncomment following in file &#039;&#039;/etc/ssh/ssh_config&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 ##Host *&lt;br /&gt;
 ##ForwardX11 yes&lt;br /&gt;
&lt;br /&gt;
Add line &#039;export NO_AT_BRIDGE=1&#039; to the file &#039;/etc/environment&#039; to suppress annoying messages like &#039;** (emacs:38714): WARNING **: Couldn&#039;t register with accessibility bus: Did not receive a reply.&#039;&lt;br /&gt;
&lt;br /&gt;
If big (&amp;gt;2GB) partition to be formated, do following (for example /dev/sdb):&lt;br /&gt;
&lt;br /&gt;
 parted /dev/sdb&lt;br /&gt;
 (parted) print&lt;br /&gt;
 (parted) mklabel gpt&lt;br /&gt;
 (parted) print&lt;br /&gt;
 mkpart primary 0GB 25855.2GB&lt;br /&gt;
 (parted) print&lt;br /&gt;
 (parted) quit&lt;br /&gt;
&lt;br /&gt;
 mkfs.xfs /dev/sdb1&lt;br /&gt;
&lt;br /&gt;
then create /data and mount it using &#039;&#039;/etc/fstab&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 /dev/sdb1                                 /data                   xfs     defaults        1 2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; sometimes machine can loose NIS connection, then ssh to it becomes intermittent; if it happens ssh as root (may have to try several times) and run command&lt;br /&gt;
&lt;br /&gt;
 ypwhich&lt;br /&gt;
&lt;br /&gt;
to shows NIS server. If it returns nothing check file &#039;&#039;/etc/resolv.conf&#039;&#039;, it must have following (as on July 2019):&lt;br /&gt;
&lt;br /&gt;
 search jlab.org acc.jlab.org&lt;br /&gt;
 nameserver 129.57.90.255&lt;br /&gt;
 nameserver 129.57.32.101&lt;br /&gt;
&lt;br /&gt;
If file is empty or does not contain right info, fix it. After that run command&lt;br /&gt;
&lt;br /&gt;
 ypbind&lt;br /&gt;
&lt;br /&gt;
It should fix a problem. Run &#039;&#039;ypwhich&#039;&#039; to make sure.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Display Setting:&#039;&#039;&#039; if machine is multi-head, goto &#039;&#039;Applications-&amp;gt;System Tools-&amp;gt;Settings-&amp;gt;Devices-&amp;gt;Displays&#039;&#039; and arrange displays.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Proceed to the [[Linux Customization on CLON Cluster]].&lt;br /&gt;
&lt;br /&gt;
== RHEL6 (64 bit) ==&lt;br /&gt;
&lt;br /&gt;
Installed using CD provided by Computer Center. Requires MAC address to be registered with Computer Center (using jnet.jlab.org as &#039;boiarino&#039;) because it is network-based installation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: all disks will be reformatted in a process, all information will be lost !&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dialog:&lt;br /&gt;
&lt;br /&gt;
* boot: &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ...[D]esktop: [use &#039;s&#039; for server, &#039;d&#039; for desktop] &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* root password: enter root password&lt;br /&gt;
&lt;br /&gt;
* admin user: boiarino&lt;br /&gt;
&lt;br /&gt;
Installation will proceed. When prompted, remove installation disk and reboot machine if not done automatically. After reboot patching process will be started and it will take a while, do not interrupt it, otherwise system will not be installed correctly.&lt;br /&gt;
&lt;br /&gt;
To make emacs work, install&lt;br /&gt;
&lt;br /&gt;
 yum install libotf&lt;br /&gt;
&lt;br /&gt;
Edit the /etc/yum.conf file and add the following line to force installation of teh 32bit and 64bit libraries:&lt;br /&gt;
&lt;br /&gt;
 multilib_policy=all&lt;br /&gt;
&lt;br /&gt;
Install following packages:&lt;br /&gt;
&lt;br /&gt;
 yum install openmotif-devel xinetd mysql-devel cmake libXpm-devel net-snmp-utils&lt;br /&gt;
 yum install mesa-libGL-devel mesa-libGLU-devel mesa-libGLw-devel (for OpenGL, needed by ROOT)&lt;br /&gt;
 yum install libXaw-devel (for xterm)&lt;br /&gt;
 yum install expat-devel libgcj-devel (for evio/et)&lt;br /&gt;
&lt;br /&gt;
 yum install compat-libtermcap (for xterm)&lt;br /&gt;
 ln -s /lib/libtermcap.so.2 /usr/lib/libtermcap.so&lt;br /&gt;
 ###ln -s /lib64/libtermcap.so.2 /usr/lib64/libtermcap.so&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Install following fonts for EPICS EDMs:&lt;br /&gt;
&lt;br /&gt;
 yum install xorg-x11-fonts-75dpi xorg-x11-fonts-ISO8859-1-75dpi bitmap-miscfixed-fonts&lt;br /&gt;
 yum install bitmap-console-fonts bitmap-fixed-fonts bitmap-lucida-typewriter-fonts&lt;br /&gt;
 ln -s  /usr/share/X11/fonts/100dpi /etc/X11/fontpath.d/xorg-x11-fonts-100dpi:pri=60&lt;br /&gt;
 ln -s  /usr/share/X11/fonts/75dpi /etc/X11/fontpath.d/xorg-x11-fonts-75dpi:pri=50&lt;br /&gt;
 ln -s  /usr/share/X11/fonts/misc /etc/X11/fontpath.d/xorg-x11-fonts-misc:pri=40&lt;br /&gt;
 ln -s  /usr/share/fonts/bitmap /etc/X11/fontpath.d/bitmap-fonts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; Useful &#039;&#039;yum&#039;&#039; commands:&lt;br /&gt;
&lt;br /&gt;
 yum whatprovides libstdc++.so.5 - show which package contains libstdc++.so.5&lt;br /&gt;
&lt;br /&gt;
== RHEL5 ==&lt;br /&gt;
&lt;br /&gt;
Installed using CD provided by Computer Center. Requires MAC address to be registered with Computer Center (email to helpdesk@jlab.org) because it is network-based installation.&lt;br /&gt;
&lt;br /&gt;
Dialog:&lt;br /&gt;
&lt;br /&gt;
* boot: &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ...[D]esktop: Server (it is ignored, will do Desktop anyway ...)&lt;br /&gt;
&lt;br /&gt;
* root password: enter root password&lt;br /&gt;
&lt;br /&gt;
* system user: &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* manually partition disk: 100MB /boot, 2048 etc MB swap, the rest /.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CFENGINE&#039;&#039;&#039;: there are procesess restoring some system config files (in particular &#039;&#039;/etc/ssh/sshd_config&#039;&#039;) in according to the Computer Center - maintained templete. To shut them down: (1) comment out &#039;&#039;cfengine&#039;&#039;-related stuff in root cronjobs; (2) do &#039;&#039;/etc/init.d/cfengine stop&#039;&#039;; (3) do &#039;&#039;chkconfig cfengine off&#039;&#039;. Ask CC (Sherman White, Paul Letta) to fix templete.&lt;br /&gt;
&lt;br /&gt;
Run &#039;&#039;/usr/bin/system-config-authentication&#039;&#039; and set NIS servers list as &#039;&#039;clon00,clon10,nis1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Add following in the end of &#039;&#039;/etc/passwd&#039;&#039;:&lt;br /&gt;
 clasrun:x:2508:9998:Online DAQ:/home/clasrun:/bin/tcsh&lt;br /&gt;
 clas12run:x:6007:146:clas12run Account:/home/clas12run:/bin/tcsh&lt;br /&gt;
 clascron:x:6005:146:CLAS Cron Jobs:/home/clascron:/bin/tcsh&lt;br /&gt;
 clasboot:x:6000:146:Boot Scripts Only:/home/clasboot:/bin/tcsh&lt;br /&gt;
 clasmail:x:6003:146:CLAS Automated Mail:/home/clasmail:/bin/tcsh&lt;br /&gt;
 epics:x:5001:146:EPICS Account:/home/epics:/bin/tcsh&lt;br /&gt;
 nagios:x:6246:9997:Nagios:/home/nagios:/bin/tcsh&lt;br /&gt;
 +@clon_cluster::::::&lt;br /&gt;
 +@ccc::::::&lt;br /&gt;
&lt;br /&gt;
Add following in the end of &#039;&#039;/etc/group&#039;&#039;:&lt;br /&gt;
 onliners::9998:heyes,hujl,rwm,timmer,wolin,taylorw,cuevas,abbottd,abulafia,anciant,anghi,aswin,auger,avakian,banta,barrow,battagli,bjlee,bogdan,brooksw,bruhwel,boiarino,buckle,burchesk,burin,bzh,cetina,chen,cole,cords,corvi,costy,davidl,costy,davidl,dcarter,dcurry,dennisl,deppman,dhlee,doughty,drago,dytman,dugger,dugger,elton,fedro,ficenec,fklein,france,freyberg,gholden,gilfoyle,golovach,gurjyan,haddock,heddle,jenkins,jhardie,jmorris,kellyk,klusman,kmkim,kossov,lcsmith,longhi,manak,marchand,marki,mastersj,mjohnson,mosbackr,mueller,muguira,murphyl,necaise,odonnell,opper,parkkj,pasyuk,phkim,piot,riccardi,richardt,ripani,rossi,saw,sergpozd,serov,sholt,staylor,taiuti,tang,tedeschi,vineyard,vlassov,vvsap,weygand,wooyoung,burchesk,clasrun,giovanet,clasboot,clascoda,clasroot,clasmail,clascron,trigger,epics,southern,carstens,ccutter,danagu,heyes,huertas,jacobsg,kliv,lachniet,mestayer,primex,hovanes,nerses,sytnik&lt;br /&gt;
 clon::383:clascoda,clascron,clasmail&lt;br /&gt;
 nagios::9997:nagios&lt;br /&gt;
&lt;br /&gt;
Create &#039;&#039;/etc/shadow&#039;&#039; files with entries for users clasrun, epics and nagios (copy from another machine).&lt;br /&gt;
&lt;br /&gt;
Install updates: normally all updates should be installed by now, it can be done manually by commands&lt;br /&gt;
 yum list updates&lt;br /&gt;
 yum update&lt;br /&gt;
&lt;br /&gt;
Configure [[SSH]].&lt;br /&gt;
&lt;br /&gt;
Install missing packages:&lt;br /&gt;
 yum install openmotif-devel xinetd mysql-devel cmake&lt;br /&gt;
&lt;br /&gt;
Some additional packages on request (for EPICS):&lt;br /&gt;
&lt;br /&gt;
 yum install mc lapack lapack-devel blas blas-devel giflib-devel&lt;br /&gt;
&lt;br /&gt;
Proceed to the [[Linux Customization on CLON Cluster]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PROBLEMS&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
1. /usr/lib/libg2c.so link is missing&lt;br /&gt;
&lt;br /&gt;
FIXED ??? 2. /usr/lib/libXm.so link is missing&lt;br /&gt;
&lt;br /&gt;
3. Created /etc/shadow file for clasrun, epics and nagios&lt;br /&gt;
&lt;br /&gt;
== RHEL4 ==&lt;br /&gt;
&lt;br /&gt;
Get RHEL4 CDs from Paul Letta.&lt;br /&gt;
&lt;br /&gt;
Connect terminal, keyboard and mouse.&lt;br /&gt;
&lt;br /&gt;
Boot from CD1. Follow instructions. When asked, choose following options:&lt;br /&gt;
&lt;br /&gt;
* Choose &#039;Manually partition with Disk Druid&#039;, set /boot to 100MB, then / to 40GB, then swap to 8192MB or at least double memory size. The rest of disk can be set as /space.&lt;br /&gt;
&lt;br /&gt;
* Network: choose manually, type clonpc2.jlab.org; click &#039;EDIT&#039;, deactivate &#039;Configure using DHCP&#039;,&lt;br /&gt;
type IP address and netmask (255.255.255.0), click Ok.&lt;br /&gt;
Type Gateway (for example 129.57.167.99) and 3 DNS servers (129.57.167.5,129.57.167.14,129.57.32.100).&lt;br /&gt;
&lt;br /&gt;
* Choose &#039;No firewall&#039;&lt;br /&gt;
&lt;br /&gt;
* Disable &#039;SELinux&#039;&lt;br /&gt;
&lt;br /&gt;
* Choose &#039;Customize software packages to be installed&#039;, click &#039;Everything&#039;.&lt;br /&gt;
&lt;br /&gt;
You will be asked to install CD2, CD3 and CD4, then CD1 again.&lt;br /&gt;
Then you will be asked to click &#039;Reboot&#039;. First remove CD, then click &#039;Reboot&#039;.&lt;br /&gt;
You will be asked few more questions. When asked to activate service, choose&lt;br /&gt;
&#039;Tell me why I need to register ..&#039; and click &#039;Next&#039;. Choose &#039;I can not complete registration ..&#039;&lt;br /&gt;
and click &#039;Next&#039;. You will see &#039;System user&#039; screen, click &#039;Use network login..&#039;.&lt;br /&gt;
Choose &#039;Enable NIS support&#039; and click &#039;Configure NIS&#039;. Type NIS Domain: &#039;CCCHP&#039; and NIS Server: clon00.jlab.org.&lt;br /&gt;
Finish installation process.&lt;br /&gt;
&lt;br /&gt;
* fix files &#039;&#039;/etc/passwd&#039;&#039;, &#039;&#039;/etc/shadow&#039;&#039; and &#039;&#039;/etc/group&#039;&#039; adding clasrun etc (see examples on another machines).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: if machine has multiple network ports, Linux may not assign them properly to specified IP names and addresses. If problem occures, open network GUI and delete all existing records. After that, click &#039;&#039;New&#039;&#039; and pick hadrware port you want to configure from the list of available ports (tricky part is to know which RJ-45 connector corresponds to which port ..). Configure and activate it, make sure it works. Repeat for other ports. Results will be stored in directory &#039;&#039;/etc/sysconfig/network-scripts&#039;&#039;, file names will be &#039;&#039;ifcfg-eth0&#039;&#039;, &#039;&#039;ifcfg-eth1&#039;&#039; etc. If modifying those files manually, restart network by &#039;&#039;/etc/init.d/network restart&#039;&#039;. Finally, set routing, for example for &#039;&#039;clonmon&#039;&#039; command &#039;&#039;route -n&#039;&#039; shows following:&lt;br /&gt;
 Kernel IP routing table&lt;br /&gt;
 Destination     Gateway         Genmask         Flags Metric Ref    Use Iface&lt;br /&gt;
 129.57.160.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1&lt;br /&gt;
 129.57.68.0     0.0.0.0         255.255.255.0   U     0      0        0 eth3&lt;br /&gt;
 129.57.69.0     0.0.0.0         255.255.255.0   U     0      0        0 dev5937&lt;br /&gt;
 129.57.64.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0&lt;br /&gt;
 169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth3&lt;br /&gt;
 0.0.0.0         129.57.68.100   0.0.0.0         UG    0      0        0 eth3&lt;br /&gt;
Run following commands:&lt;br /&gt;
 /sbin/route add -net 129.57.160.0 netmask 255.255.255.0 gw 129.57.160.5 dev eth1&lt;br /&gt;
 /sbin/route add -net 129.57.68.0 netmask 255.255.255.0 gw 129.57.68.26 dev eth3&lt;br /&gt;
 /sbin/route add -net 129.57.69.0 netmask 255.255.255.0 gw 129.57.69.206 dev dev5937&lt;br /&gt;
 /sbin/route add -net 129.57.64.0 netmask 255.255.255.0 gw 129.57.64.57 dev eth0&lt;br /&gt;
Now &#039;&#039;route -n&#039;&#039; shows following:&lt;br /&gt;
 Kernel IP routing table&lt;br /&gt;
 Destination     Gateway         Genmask         Flags Metric Ref    Use Iface&lt;br /&gt;
 129.57.160.0    129.57.160.5    255.255.255.0   UG    0      0        0 eth1&lt;br /&gt;
 129.57.160.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1&lt;br /&gt;
 129.57.68.0     129.57.68.26    255.255.255.0   UG    0      0        0 eth3&lt;br /&gt;
 129.57.68.0     0.0.0.0         255.255.255.0   U     0      0        0 eth3&lt;br /&gt;
 129.57.69.0     129.57.69.206   255.255.255.0   UG    0      0        0 dev5937&lt;br /&gt;
 129.57.69.0     0.0.0.0         255.255.255.0   U     0      0        0 dev5937&lt;br /&gt;
 129.57.64.0     129.57.64.57    255.255.255.0   UG    0      0        0 eth0&lt;br /&gt;
 129.57.64.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0&lt;br /&gt;
 169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth3&lt;br /&gt;
 0.0.0.0         129.57.68.100   0.0.0.0         UG    0      0        0 eth3&lt;br /&gt;
In that example automount will do configured using &#039;&#039;clonmon-daq1&#039;&#039; interface, because default &#039;&#039;clonmon&#039;&#039; interface is on external subnet. To make that routing table permanent (retore it after reboot) I tried to add four files with following contents to the &#039;&#039;/etc/sysconfig/network-scripts&#039;&#039; directory:&lt;br /&gt;
 route-eth1:&lt;br /&gt;
   GATEWAY0=129.57.160.5&lt;br /&gt;
   NETMASK0=255.255.255.0&lt;br /&gt;
   ADDRESS0=129.57.160.0&lt;br /&gt;
 route-eth3:&lt;br /&gt;
   GATEWAY0=129.57.68.26&lt;br /&gt;
   NETMASK0=255.255.255.0&lt;br /&gt;
   ADDRESS0=129.57.68.0&lt;br /&gt;
 route-dev5937:&lt;br /&gt;
   GATEWAY0=129.57.69.206&lt;br /&gt;
   NETMASK0=255.255.255.0&lt;br /&gt;
   ADDRESS0=129.57.69.0&lt;br /&gt;
 route-eth0:&lt;br /&gt;
   GATEWAY0=129.57.64.57&lt;br /&gt;
   NETMASK0=255.255.255.0&lt;br /&gt;
   ADDRESS0=129.57.64.0&lt;br /&gt;
It did not worked. Then I added four &#039;&#039;/sbin/route add ..&#039;&#039; lines to &#039;&#039;/etc/rc.local&#039;&#039; script, and it worked.&lt;br /&gt;
&lt;br /&gt;
From now on you can use remote &#039;ssh&#039; connection.&lt;br /&gt;
&lt;br /&gt;
* To configure your system to use the patch server, issue the following commands as root:&lt;br /&gt;
 # mount jlabsite:/site /mnt&lt;br /&gt;
 # /mnt/CC/linux/satellite-connect --patchall&lt;br /&gt;
The script will prompt you for an activation key, but if you don&#039;t know what this is, just hit ENTER and it will use a sensible default.  Depending on how many patches need to be applied to your system to bring it up to the current level, this script may take a very long time to run.  When it finishes, you should reboot your machine to make the new patches take effect.&lt;br /&gt;
&lt;br /&gt;
To install updates later run &#039;&#039;up2date -uf&#039;&#039; as &#039;&#039;root&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Configure [[SSH]].&lt;br /&gt;
&lt;br /&gt;
* Proceed with [[Linux Customization on CLON Cluster]] if applicable.&lt;br /&gt;
&lt;br /&gt;
To boot Linux in single user mode (no graphics), add &#039;&#039;single&#039;&#039; to the end of boot line during boot process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;background info&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Add startup script&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Create script in &#039;&#039;/etc/init.d/&#039;&#039; directory (use existing scripts as example). Must have a line like&lt;br /&gt;
 # chkconfig:	- 91 09&lt;br /&gt;
which specifies start and stop order. Run commands&lt;br /&gt;
 chkconfig --add &amp;lt;scriptname&amp;gt;&lt;br /&gt;
 chkconfig --level 3 &amp;lt;scriptname&amp;gt; on&lt;br /&gt;
for every level you want that script to be executed (usualy 3 and/or 4 and/or 5). Check if it os done using command&lt;br /&gt;
 chkconfig --list | grep &amp;lt;scriptname&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;xxx&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can choose to download the RHEL operating system directly from the Red Hat Web site and not receive a media kit from HP containing the software. This scenario occurs when the media option AJR is deselected from the order. (The media kit option is always selected by default. )&lt;br /&gt;
&lt;br /&gt;
It is necessary to register at the Red Hat Web site prior to download. Registration requires the activation code that each customer receives from HP when ordering either RHEL.&lt;br /&gt;
&lt;br /&gt;
You can download RHEL for each available platform as four CD ISO images or one DVD ISO image.&lt;br /&gt;
&lt;br /&gt;
Use the following procedure to download RHEL and create the installation media:&lt;br /&gt;
&lt;br /&gt;
   1.&lt;br /&gt;
&lt;br /&gt;
      Register and log in at the following Red Hat Web site:&lt;br /&gt;
&lt;br /&gt;
      www.redhat.com/rhn&lt;br /&gt;
   2.&lt;br /&gt;
&lt;br /&gt;
      Click on channels and then select Red Hat Enterprise Linux ES (v.4 for 64–bit Intel Itanium).&lt;br /&gt;
   3.&lt;br /&gt;
&lt;br /&gt;
      Select Downloads and then download the ISO images of install, compatibility and source disks&lt;br /&gt;
&lt;br /&gt;
      Files with ia64 in the name are for the Itanium platform.&lt;br /&gt;
   4.&lt;br /&gt;
&lt;br /&gt;
      Create the CDs or a DVD from the ISO images.&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
	IMPORTANT: Create the CDs or DVD using the contents of the ISO images. Do not create the CDs or DVD by burning the .iso files themselves to CD or DVD. For example, if you are using K3b to burn a CD, click Tools&amp;gt;CD&amp;gt;Burn CD Image, select the .iso image, then click Burn.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bootup scripts&#039;&#039;&#039; for example for level 5 execution (multiuser with X):&lt;br /&gt;
&lt;br /&gt;
 cp &amp;lt;script-file&amp;gt; /etc/init.d/&lt;br /&gt;
 chmod +x /etc/init.d/&amp;lt;script-file&amp;gt;&lt;br /&gt;
 ln -s /etc/init.d/&amp;lt;scriptfile&amp;gt; /etc/rc.d/rc5.d/S50&amp;lt;scriptfile&amp;gt;&lt;br /&gt;
 ln -s /etc/init.d/&amp;lt;scriptfile&amp;gt; /etc/rc.d/rc5.d/K50&amp;lt;scriptfile&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changing hostname/IP address&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 Changing hostname on RHEL&lt;br /&gt;
 1. Change the HOSTNAME line in /etc/sysconfig/network&lt;br /&gt;
 2. Change the hostname (FQDN and alias) in /etc/hosts&lt;br /&gt;
 3. Run &#039;/bin/hostname new_hostname&#039; for the hostname change to take effect immediately.&lt;br /&gt;
 4. Run &#039;/sbin/service syslog restart&#039; for syslog to log using the new hostname.&lt;br /&gt;
 A reboot is not required to change the system hostname.&lt;br /&gt;
&lt;br /&gt;
 IP address: You have to change the IP address entry in&lt;br /&gt;
 /etc/sysconfig/network-scripts/ifcfg-eth0.&lt;/div&gt;</summary>
		<author><name>Boiarino</name></author>
	</entry>
	<entry>
		<id>https://clonwiki0.jlab.org/wiki/index.php?title=Linux_Installation_Procedure&amp;diff=8703</id>
		<title>Linux Installation Procedure</title>
		<link rel="alternate" type="text/html" href="https://clonwiki0.jlab.org/wiki/index.php?title=Linux_Installation_Procedure&amp;diff=8703"/>
		<updated>2026-02-10T22:33:13Z</updated>

		<summary type="html">&lt;p&gt;Boiarino: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Dell servers hardware trick(s) ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;!!! if BIOS date/time is incorrect, it may prevent redhat subscription and installation to work correctly, set it to correct value !!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* if BIOS does not remember time setting after power unplugged, battery on motherboard may need to be replaced&lt;br /&gt;
&lt;br /&gt;
* if looks dead, remove the power cords, then held in the on button for 30 seconds; then plug it back in and it may boots up fine - known Dell feature&lt;br /&gt;
&lt;br /&gt;
== ARM (CentsOS7) ==&lt;br /&gt;
&lt;br /&gt;
See [[yum]] for specifics.&lt;br /&gt;
&lt;br /&gt;
 yum install xauth wget bzip2 xterm expat-devel libX11-devel libXpm-devel motif-devel mariadb-devel&lt;br /&gt;
&lt;br /&gt;
== RHEL9 (64 bit) ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: select installation type &#039;&#039;&#039;H&#039;&#039;&#039;, then type &#039;&#039;&#039;B&#039;&#039;&#039;.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: during custom disk partitioning, select &#039;Standard&#039; for every partition, if you want it to be standard, or &#039;Raid&#039; if applicable&lt;br /&gt;
&lt;br /&gt;
Set root password (see instractions below), if you want to become superuser by typing just &#039;&#039;su&#039;&#039;. If becoming superuser by typing &#039;&#039;sudo su&#039;&#039; is good enough, do nothing (in that case graphics will not work in superuser mode).&lt;br /&gt;
&lt;br /&gt;
Install useful pachages:&lt;br /&gt;
 yum install ncdu mysql&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: graphic screen is disabled, run following command as root:&lt;br /&gt;
 systemctl set-default graphical.target&lt;br /&gt;
&lt;br /&gt;
== RHEL9 (64 bit) - for machine NOT under puppet control ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: select installation type &#039;&#039;&#039;D&#039;&#039;&#039; (not &#039;&#039;&#039;S&#039;&#039;&#039;, otherwise it will not be level 2 server)&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: during custom disk partitioning, select &#039;Standard&#039; for every partition, if you want it to be standard, or &#039;Raid&#039; if applicable&lt;br /&gt;
&lt;br /&gt;
When installation complete, ssh as authorized user and do following:&lt;br /&gt;
&lt;br /&gt;
 sudo yum install emacs&lt;br /&gt;
 cd /etc&lt;br /&gt;
 sudo chmod a+rw shadow&lt;br /&gt;
 sudo emacs shadow&lt;br /&gt;
&lt;br /&gt;
Copy to /etc/shadow root and other needed passwords from another clon machine. &lt;br /&gt;
&lt;br /&gt;
 sudo chmod a-rw shadow&lt;br /&gt;
&lt;br /&gt;
After that, type &#039;&#039;su&#039;&#039; to become superuser. All following settings can be done now without typing &#039;&#039;sudo&#039;&#039; every time. You still will not be able to ssh remotely as root - always ssh as authorized user and type &#039;&#039;su&#039;&#039; to become root.&lt;br /&gt;
&lt;br /&gt;
Update /etc/passwd and /etc/group using another clon machine as example.&lt;br /&gt;
&lt;br /&gt;
 yum install expat-devel libXaw-devel mysql-devel motif-devel ncurses-devel apr-devel net-snmp-utils&lt;br /&gt;
 yum install xorg-x11-utils # for xprop/xwininfo/etc creg stuff&lt;br /&gt;
 yum install s-nail # for /usr/bin/mail&lt;br /&gt;
 yum install ncdu&lt;br /&gt;
 yum install libconfig-devel # recent addition for CODA libraries&lt;br /&gt;
&lt;br /&gt;
To be able to ssh to old machines (like vme controllers under CentOS5), run following as root:&lt;br /&gt;
&lt;br /&gt;
 update-crypto-policies --set LEGACY&lt;br /&gt;
&lt;br /&gt;
and then probably reboot, not sure.&lt;br /&gt;
&lt;br /&gt;
Somebody mentioned also adding &#039;&#039;RequiredRSASize 1024&#039;&#039; to a config file in &#039;&#039;/etc/ssh/ssh_config.d/&#039;&#039;, but I did not do it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    Note: this changes all daemons and system settings and is a bit overkill if you only need to adjust the settings for ssh and sshd.&lt;br /&gt;
&lt;br /&gt;
    Exclude (only) sshd from the system-wide cryptographic policy. You opt-out by editing /etc/sysconfig/sshd and uncommenting the line # CRYPTO_POLICY= , (if necessary you can then adjust adjust /etc/ssh/sshd_config and add legacy crypto settings) and restart the ssh daemon.&lt;br /&gt;
&lt;br /&gt;
For the ssh command line client on the RHEL 9 system: you&#039;re recommended to edit ˜/.ssh/config and override the modern/secure system wide ssh client defaults by adding a Host entry that adds support for suitable legacy encryption options for that particular host:&lt;br /&gt;
&lt;br /&gt;
#    ˜/.ssh/config&lt;br /&gt;
&lt;br /&gt;
Host rhel6.example.com&lt;br /&gt;
  KexAlgorithms +diffie-hellman-group14-sha1&lt;br /&gt;
  MACs +hmac-sha1&lt;br /&gt;
  HostKeyAlgorithms +ssh-rsa&lt;br /&gt;
  PubkeyAcceptedKeyTypes +ssh-rsa&lt;br /&gt;
  PubkeyAcceptedAlgorithms +ssh-rsa&lt;br /&gt;
&lt;br /&gt;
Prepare auto-mounting directories:&lt;br /&gt;
&lt;br /&gt;
 cd /&lt;br /&gt;
 mv apps apps.orig&lt;br /&gt;
 mv home home.orig&lt;br /&gt;
 mv scratch scratch.orig&lt;br /&gt;
 mv work work.orig&lt;br /&gt;
 mkdir apps&lt;br /&gt;
 mkdir home&lt;br /&gt;
 mkdir scratch&lt;br /&gt;
 mkdir work&lt;br /&gt;
 mkdir logs&lt;br /&gt;
 cd /usr&lt;br /&gt;
 mv local local.orig&lt;br /&gt;
 mkdir local&lt;br /&gt;
 mkdir clas&lt;br /&gt;
 mkdir clas12&lt;br /&gt;
 mkdir downloads&lt;br /&gt;
 cd&lt;br /&gt;
&lt;br /&gt;
== RHEL8 (64 bit) ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; to boot from USB stick, insert USB stick, turn machine ON holding F2, and in BIOS Boot Configuration, set Enable Security Boot to OFF, save and exit, holding F2. When in BIOS again, in Boot Configuration make &#039;&#039;UEFI PHY USB ...&#039;&#039; first in boot sequence, local hard drive second, disable all other boot options, save and exit. Do NOT hold F2, Linux installation from USB stick will start. &#039;&#039;&#039;IMPORTANT:&#039;&#039;&#039; when asked about D/S options (very first question in installation process), &#039;&#039;&#039;REMOVE USB STICK BEFORE ANSWERING QUESTION ABOUT DESKTOP/SERVER&#039;&#039;&#039;, otherwise it will be destroyed by following installation steps !!!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; to disable/enable puppet, do following as root: &lt;br /&gt;
 puppet agent --disable &amp;quot;temporary&amp;quot;&lt;br /&gt;
 puppet agent --enable&lt;br /&gt;
&lt;br /&gt;
 yum install emacs&lt;br /&gt;
 yum install xorg-x11-fonts-misc&lt;br /&gt;
&lt;br /&gt;
Move and create some directories in preparation for automounts:&lt;br /&gt;
&lt;br /&gt;
 cd /&lt;br /&gt;
 mv apps apps.orig&lt;br /&gt;
 mv home home.orig&lt;br /&gt;
 mv scratch scratch.orig&lt;br /&gt;
 mkdir apps&lt;br /&gt;
 mkdir home&lt;br /&gt;
 mkdir scratch&lt;br /&gt;
 mkdir work&lt;br /&gt;
 mkdir logs&lt;br /&gt;
 cd /usr&lt;br /&gt;
 mv local local.orig&lt;br /&gt;
 mkdir local&lt;br /&gt;
 mkdir clas&lt;br /&gt;
 mkdir clas12&lt;br /&gt;
 mkdir downloads&lt;br /&gt;
 cd&lt;br /&gt;
&lt;br /&gt;
Add line &#039;&#039;&#039;+dir:/etc/auto.master.d&#039;&#039;&#039; to &#039;&#039;/etc/auto.master&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Create file &#039;&#039;/etc/auto.master.d/direct.autofs&#039;&#039; with the line &#039;&#039;&#039;/- /etc/auto.direct&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Create file &#039;&#039;/etc/auto.direct&#039;&#039; with the following contents:&lt;br /&gt;
&lt;br /&gt;
 # machine-dependent system directories&lt;br /&gt;
 /apps                 -rw,bg     clonfs1:/vol/apps/RHEL8_x86_64&lt;br /&gt;
 /usr/local            -rw,bg     clonfs1:/vol/local/RHEL8_x86_64&lt;br /&gt;
 # machine-independent system directories&lt;br /&gt;
 /home                 -rw,bg     clonfs1:/vol/home&lt;br /&gt;
 #/work                 -rw,bg     clonfs1-old:/vol/work&lt;br /&gt;
 /scratch              -rw,bg     clonfs1:/vol/scratch&lt;br /&gt;
 # machine-independent clas directories&lt;br /&gt;
 /usr/downloads        -rw,bg     clonfs1:/vol/downloads&lt;br /&gt;
 /usr/clas             -rw,bg     clonfs1:/vol/clas&lt;br /&gt;
 /usr/clas12           -rw,bg     clonfs1:/vol/clas12&lt;br /&gt;
 # Used for data storage before shipping to tape&lt;br /&gt;
 #/logs                 -rw,bg     clonfs1-old:/vol/logs&lt;br /&gt;
&lt;br /&gt;
Restart autofs:&lt;br /&gt;
&lt;br /&gt;
 service autofs reload&lt;br /&gt;
 service autofs restart&lt;br /&gt;
&lt;br /&gt;
Remove from the end of the &#039;&#039;/etc/passwd&#039;&#039; line &#039;&#039;&#039;+::::::&#039;&#039;&#039;, and add following:&lt;br /&gt;
&lt;br /&gt;
 hpsrun:x:8796:9998:hpsrun Account:/home/hpsrun:/bin/tcsh&lt;br /&gt;
 clasrun:x:2508:9998:Online DAQ:/home/clasrun:/bin/tcsh&lt;br /&gt;
 clasioc:x:6008:9998:CLAS IOCs:/home/clasioc:/bin/tcsh&lt;br /&gt;
 clas12run:x:6007:146:clas12run Account:/home/clas12run:/bin/tcsh&lt;br /&gt;
 clascron:x:3888:146:CLAS Cron Jobs:/home/clascron:/bin/tcsh&lt;br /&gt;
 clasboot:x:6000:146:Boot Scripts Only:/home/clasboot:/bin/tcsh&lt;br /&gt;
 clasmail:x:6003:146:CLAS Automated Mail:/home/clasmail:/bin/tcsh&lt;br /&gt;
 epics:x:5001:146:EPICS Account:/home/epics:/bin/tcsh&lt;br /&gt;
 nagios:x:6246:9997:Nagios:/home/nagios:/bin/tcsh&lt;br /&gt;
 +@clon_cluster::::::&lt;br /&gt;
 +sshd::::::&lt;br /&gt;
 +::::::/bin/false&lt;br /&gt;
&lt;br /&gt;
Update &#039;&#039;/etc/shadow&#039;&#039;, adding passwords for local accounts (copy it from another machine).&lt;br /&gt;
&lt;br /&gt;
Add following to &#039;&#039;/etc/group&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 clon:x:383:clascron&lt;br /&gt;
 onliners:x:9998:abbottd,avakian,baltzell,battagli,brooksw,bruhwel,boiarino,carman,chen,clasboot,clascron,clasrun,cole,cuevas,davidl,danagu,dugger,elton,epics,fklein,gilfoyle,giovanet,golovach,gurjyan,heddle,heyes,hovanes,jacobsg,jenkins,kliv,lcsmith,marki,mestayer,nerses,parkkj,pasyuk,primex,ripani,rossi,saw,staylor,sytnik,taiuti,taylorw,timmer,wooyoung&lt;br /&gt;
&lt;br /&gt;
== RHEL7 (64 bit) ==&lt;br /&gt;
&lt;br /&gt;
Installed using DVD provided by Computer Center, currently RHEL7.3. Requires MAC address to be registered with Computer Center (using jnet.jlab.org as &#039;boiarino&#039;) because it is network-based installation. On DELL servers, hold F2 after power on and go to &#039;Device Settings&#039; to see mac address. Remember machine memory size as well, will needed when create partitions, find it in &#039;System BIOS -&amp;gt; Memory Settings&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: all disks will be reformatted in a process, all information will be lost !&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dialog:&lt;br /&gt;
&lt;br /&gt;
* boot: &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Please enter the hostname of this system: &amp;lt;hostname&amp;gt; &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* What type of system are you building? (D)esktop: &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Is this a CUE level 1 or CUE level 2 System build (1/2): 2 &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Please enter the System Admin&#039;s CUE username: boiarino &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Do you want to use the default partitioning scheme (y/n)? n &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Are you sure you want to use your own partitioning scheme (y/n)? y &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Choose &#039;Standard Partition&#039; scheme and create following partitions: /boot - 1GB, swap - double memory size, / - the rest of space.&lt;br /&gt;
&lt;br /&gt;
Installation will proceed. When prompted, remove installation disk and reboot machine if not done automatically.&lt;br /&gt;
&lt;br /&gt;
After reboot patching process will be started and it will take a while, do not interrupt it, otherwise system will not be installed correctly.&lt;br /&gt;
&lt;br /&gt;
When machine reboots for the last time, ask Paul Letta to set usual hallb root password. From now on remote root access is possible. Alternatively, user &#039;&#039;boiarino&#039;&#039; can execute most of actions using &#039;&#039;sudo&#039;&#039;,&lt;br /&gt;
like &#039;&#039;sudo emacs&#039;&#039; for protected files. &#039;&#039;sudo reboot&#039;&#039; etc.&lt;br /&gt;
&lt;br /&gt;
Go to /boot/grub2 and modify file grub.cfg, Linux kernel boot options, adding options &#039;&#039;net.ifnames=0 biosdevname=0&#039;&#039;, so your boot string has following section:&lt;br /&gt;
&lt;br /&gt;
 ..... rhgb net.ifnames=0 biosdevname=0 quiet .....&lt;br /&gt;
&lt;br /&gt;
so whole line looks something like this:&lt;br /&gt;
&lt;br /&gt;
 linux16 /vmlinuz-3.10.0-327.18.2.el7.x86_64 root=UUID=b5d1b5ad-e3f6-4db4-8972-aa9c1a91d116 ro vconsole.keymap=us crashkernel=auto  vconsole.font=latarcyrheb-sun16 rhgb net.ifnames=0 biosdevname=0 quiet LANG=en_US.UTF-8&lt;br /&gt;
&lt;br /&gt;
Reboot machine, ethernet ports must be named &#039;&#039;eth0&#039;&#039;, &#039;&#039;eth1&#039;&#039; etc.&lt;br /&gt;
&lt;br /&gt;
To update manually, use commands &#039;&#039;yum list updates&#039;&#039; and &#039;&#039;yum update&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; add machine to the appropriate &#039;&#039;&#039;puppet&#039;&#039;&#039; group, it will do all following automatically (hopefully).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; on RHEL7.9, RPM EPEL REPO is not enabled by default, which prevents from installing nload, itcl, itk etc. To bring it back, it can be copied it from older machine, for example:&lt;br /&gt;
&lt;br /&gt;
 cd /etc/yum.repos.d&lt;br /&gt;
 scp clondaq7:/etc/yum.repos.d/epel.repo .&lt;br /&gt;
 cd /etc/pki/rpm-gpg&lt;br /&gt;
 scp clondaq7:/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 .&lt;br /&gt;
&lt;br /&gt;
Alternatively, following can be used to add repo&#039;s:&lt;br /&gt;
&lt;br /&gt;
 subscription-manager repos --enable &amp;lt;repo_id&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In particular, following have to be enabled to get nload, xpdf, python-alembic, tix, itcl, itk etc:&lt;br /&gt;
&lt;br /&gt;
 subscription-manager repos --enable JLab_EPEL_EPEL_7&lt;br /&gt;
 subscription-manager repos --enable rhel-7-workstation-optional-rpms&lt;br /&gt;
&lt;br /&gt;
Repo ID&#039;s can be obtained by:&lt;br /&gt;
&lt;br /&gt;
 subscription-manager repos --list&lt;br /&gt;
&lt;br /&gt;
Installed repo&#039;s can be seen by:&lt;br /&gt;
&lt;br /&gt;
 yum repolist&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Yum updates&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Edit the &#039;&#039;/etc/yum.conf&#039;&#039; file and add the following line to force installation of the 32bit and 64bit libraries:&lt;br /&gt;
&lt;br /&gt;
 multilib_policy=all&lt;br /&gt;
&lt;br /&gt;
Install following packages:&lt;br /&gt;
&lt;br /&gt;
 yum install xterm mesa-dri-drivers telnet rsh readline-devel net-snmp-utils tigervnc-server tigervnc xpdf nload mariadb-devel libxml2-devel glibc-devel qt-devel python-alembic openssl-devel apr-devel&lt;br /&gt;
 yum install libconfig-devel # recent addition for CODA libraries&lt;br /&gt;
&lt;br /&gt;
Fonts for EPICS EDMs:&lt;br /&gt;
&lt;br /&gt;
 yum install xorg-x11-fonts-75dpi xorg-x11-fonts-ISO8859-1-75dpi bitmap-miscfixed-fonts&lt;br /&gt;
 yum install bitmap-console-fonts bitmap-fixed-fonts bitmap-lucida-typewriter-fonts&lt;br /&gt;
 ln -s  /usr/share/X11/fonts/100dpi /etc/X11/fontpath.d/xorg-x11-fonts-100dpi:pri=60&lt;br /&gt;
 ln -s  /usr/share/X11/fonts/75dpi /etc/X11/fontpath.d/xorg-x11-fonts-75dpi:pri=50&lt;br /&gt;
 ln -s  /usr/share/X11/fonts/misc /etc/X11/fontpath.d/xorg-x11-fonts-misc:pri=40&lt;br /&gt;
 ln -s  /usr/share/fonts/bitmap /etc/X11/fontpath.d/bitmap-fonts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Do following to be able to compile and run 32-bit apps on 64-bit machine (for compatibility with 32bit applications):&lt;br /&gt;
&lt;br /&gt;
 yum install libXpm-devel libXaw-devel motif-devel glibc-devel ncurses-devel readline-devel&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Modify file &#039;&#039;/etc/passwd&#039;&#039; adding following:&lt;br /&gt;
&lt;br /&gt;
 hpsrun:x:8796:9998:hpsrun Account:/home/hpsrun:/bin/tcsh&lt;br /&gt;
 clasrun:x:2508:9998:Online DAQ:/home/clasrun:/bin/tcsh&lt;br /&gt;
 clasioc:x:6008:9998:CLAS IOCs:/home/clasioc:/bin/tcsh&lt;br /&gt;
 clas12run:x:6007:146:clas12run Account:/home/clas12run:/bin/tcsh&lt;br /&gt;
 clascron:x:3888:146:CLAS Cron Jobs:/home/clascron:/bin/tcsh&lt;br /&gt;
 clasboot:x:6000:146:Boot Scripts Only:/home/clasboot:/bin/tcsh&lt;br /&gt;
 clasmail:x:6003:146:CLAS Automated Mail:/home/clasmail:/bin/tcsh&lt;br /&gt;
 epics:x:5001:146:EPICS Account:/home/epics:/bin/tcsh&lt;br /&gt;
 nagios:x:6246:9997:Nagios:/home/nagios:/bin/tcsh&lt;br /&gt;
 +@clon_cluster::::::&lt;br /&gt;
 +sshd::::::&lt;br /&gt;
 +::::::/bin/false&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: user-related lines must be removed, like&lt;br /&gt;
&lt;br /&gt;
 +boiarino::::::&lt;br /&gt;
&lt;br /&gt;
as well as&lt;br /&gt;
&lt;br /&gt;
 +::::::&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: assumed that following line is in already:&lt;br /&gt;
&lt;br /&gt;
 +@ccc::::::&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: if following line exist, it must be placed in the end, or removed:&lt;br /&gt;
&lt;br /&gt;
 +::::::/bin/false&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Modify file &#039;&#039;/etc/group&#039;&#039; adding following:&lt;br /&gt;
&lt;br /&gt;
 onliners::9998:heyes,hujl,rwm,timmer,wolin,taylorw,cuevas,abbottd,abulafia,anciant,anghi,aswin,auger,avakian,banta,barrow,battagli,bjlee,bogdan,brooksw,bruhwel,boiarino,buckle,burchesk,burin,bzh,cetina,chen,cole,cords,corvi,costy,davidl,costy,davidl,dcarter,dcurry,dennisl,deppman,dhlee,doughty,drago,dytman,dugger,dugger,elton,fedro,ficenec,fklein,france,freyberg,gholden,gilfoyle,golovach,gurjyan,haddock,heddle,jenkins,jhardie,jmorris,kellyk,klusman,kmkim,kossov,lcsmith,longhi,manak,marchand,marki,mastersj,mjohnson,mosbackr,mueller,muguira,murphyl,necaise,odonnell,opper,parkkj,pasyuk,phkim,piot,riccardi,richardt,ripani,rossi,saw,sergpozd,serov,sholt,staylor,taiuti,tang,tedeschi,vineyard,vlassov,vvsap,weygand,wooyoung,burchesk,clasrun,giovanet,clasboot,clascoda,clasroot,clasmail,clascron,trigger,epics,southern,carstens,ccutter,danagu,heyes,huertas,jacobsg,kliv,lachniet,mestayer,primex,hovanes,nerses,sytnik,baltzell,carman&lt;br /&gt;
 clon::383:clascoda,clascron,clasmail&lt;br /&gt;
 nagios::9997:nagios&lt;br /&gt;
&lt;br /&gt;
Modify file &#039;&#039;/etc/shadow&#039;&#039; using an example from another RHEL7 clon machine (clonioc2 etc). Do &#039;&#039;chmod 600 shadow&#039;&#039; before editing and &#039;&#039;chmod 000 shadow&#039;&#039; after.&lt;br /&gt;
&lt;br /&gt;
Make sure file &#039;&#039;/etc/ssh/sshd_config&#039;&#039; has following line uncommented (must be pushed in by CC security scripts):&lt;br /&gt;
&lt;br /&gt;
 ##PermitUserEnvironment yes&lt;br /&gt;
&lt;br /&gt;
NOT NEEDED, DONE IN THE END OF FILE ALREADY !!! Uncomment following in file &#039;&#039;/etc/ssh/ssh_config&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 ##Host *&lt;br /&gt;
 ##ForwardX11 yes&lt;br /&gt;
&lt;br /&gt;
Add line &#039;export NO_AT_BRIDGE=1&#039; to the file &#039;/etc/environment&#039; to suppress annoying messages like &#039;** (emacs:38714): WARNING **: Couldn&#039;t register with accessibility bus: Did not receive a reply.&#039;&lt;br /&gt;
&lt;br /&gt;
If big (&amp;gt;2GB) partition to be formated, do following (for example /dev/sdb):&lt;br /&gt;
&lt;br /&gt;
 parted /dev/sdb&lt;br /&gt;
 (parted) print&lt;br /&gt;
 (parted) mklabel gpt&lt;br /&gt;
 (parted) print&lt;br /&gt;
 mkpart primary 0GB 25855.2GB&lt;br /&gt;
 (parted) print&lt;br /&gt;
 (parted) quit&lt;br /&gt;
&lt;br /&gt;
 mkfs.xfs /dev/sdb1&lt;br /&gt;
&lt;br /&gt;
then create /data and mount it using &#039;&#039;/etc/fstab&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 /dev/sdb1                                 /data                   xfs     defaults        1 2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; sometimes machine can loose NIS connection, then ssh to it becomes intermittent; if it happens ssh as root (may have to try several times) and run command&lt;br /&gt;
&lt;br /&gt;
 ypwhich&lt;br /&gt;
&lt;br /&gt;
to shows NIS server. If it returns nothing check file &#039;&#039;/etc/resolv.conf&#039;&#039;, it must have following (as on July 2019):&lt;br /&gt;
&lt;br /&gt;
 search jlab.org acc.jlab.org&lt;br /&gt;
 nameserver 129.57.90.255&lt;br /&gt;
 nameserver 129.57.32.101&lt;br /&gt;
&lt;br /&gt;
If file is empty or does not contain right info, fix it. After that run command&lt;br /&gt;
&lt;br /&gt;
 ypbind&lt;br /&gt;
&lt;br /&gt;
It should fix a problem. Run &#039;&#039;ypwhich&#039;&#039; to make sure.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Display Setting:&#039;&#039;&#039; if machine is multi-head, goto &#039;&#039;Applications-&amp;gt;System Tools-&amp;gt;Settings-&amp;gt;Devices-&amp;gt;Displays&#039;&#039; and arrange displays.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Proceed to the [[Linux Customization on CLON Cluster]].&lt;br /&gt;
&lt;br /&gt;
== RHEL6 (64 bit) ==&lt;br /&gt;
&lt;br /&gt;
Installed using CD provided by Computer Center. Requires MAC address to be registered with Computer Center (using jnet.jlab.org as &#039;boiarino&#039;) because it is network-based installation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: all disks will be reformatted in a process, all information will be lost !&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dialog:&lt;br /&gt;
&lt;br /&gt;
* boot: &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ...[D]esktop: [use &#039;s&#039; for server, &#039;d&#039; for desktop] &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* root password: enter root password&lt;br /&gt;
&lt;br /&gt;
* admin user: boiarino&lt;br /&gt;
&lt;br /&gt;
Installation will proceed. When prompted, remove installation disk and reboot machine if not done automatically. After reboot patching process will be started and it will take a while, do not interrupt it, otherwise system will not be installed correctly.&lt;br /&gt;
&lt;br /&gt;
To make emacs work, install&lt;br /&gt;
&lt;br /&gt;
 yum install libotf&lt;br /&gt;
&lt;br /&gt;
Edit the /etc/yum.conf file and add the following line to force installation of teh 32bit and 64bit libraries:&lt;br /&gt;
&lt;br /&gt;
 multilib_policy=all&lt;br /&gt;
&lt;br /&gt;
Install following packages:&lt;br /&gt;
&lt;br /&gt;
 yum install openmotif-devel xinetd mysql-devel cmake libXpm-devel net-snmp-utils&lt;br /&gt;
 yum install mesa-libGL-devel mesa-libGLU-devel mesa-libGLw-devel (for OpenGL, needed by ROOT)&lt;br /&gt;
 yum install libXaw-devel (for xterm)&lt;br /&gt;
 yum install expat-devel libgcj-devel (for evio/et)&lt;br /&gt;
&lt;br /&gt;
 yum install compat-libtermcap (for xterm)&lt;br /&gt;
 ln -s /lib/libtermcap.so.2 /usr/lib/libtermcap.so&lt;br /&gt;
 ###ln -s /lib64/libtermcap.so.2 /usr/lib64/libtermcap.so&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Install following fonts for EPICS EDMs:&lt;br /&gt;
&lt;br /&gt;
 yum install xorg-x11-fonts-75dpi xorg-x11-fonts-ISO8859-1-75dpi bitmap-miscfixed-fonts&lt;br /&gt;
 yum install bitmap-console-fonts bitmap-fixed-fonts bitmap-lucida-typewriter-fonts&lt;br /&gt;
 ln -s  /usr/share/X11/fonts/100dpi /etc/X11/fontpath.d/xorg-x11-fonts-100dpi:pri=60&lt;br /&gt;
 ln -s  /usr/share/X11/fonts/75dpi /etc/X11/fontpath.d/xorg-x11-fonts-75dpi:pri=50&lt;br /&gt;
 ln -s  /usr/share/X11/fonts/misc /etc/X11/fontpath.d/xorg-x11-fonts-misc:pri=40&lt;br /&gt;
 ln -s  /usr/share/fonts/bitmap /etc/X11/fontpath.d/bitmap-fonts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; Useful &#039;&#039;yum&#039;&#039; commands:&lt;br /&gt;
&lt;br /&gt;
 yum whatprovides libstdc++.so.5 - show which package contains libstdc++.so.5&lt;br /&gt;
&lt;br /&gt;
== RHEL5 ==&lt;br /&gt;
&lt;br /&gt;
Installed using CD provided by Computer Center. Requires MAC address to be registered with Computer Center (email to helpdesk@jlab.org) because it is network-based installation.&lt;br /&gt;
&lt;br /&gt;
Dialog:&lt;br /&gt;
&lt;br /&gt;
* boot: &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ...[D]esktop: Server (it is ignored, will do Desktop anyway ...)&lt;br /&gt;
&lt;br /&gt;
* root password: enter root password&lt;br /&gt;
&lt;br /&gt;
* system user: &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* manually partition disk: 100MB /boot, 2048 etc MB swap, the rest /.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CFENGINE&#039;&#039;&#039;: there are procesess restoring some system config files (in particular &#039;&#039;/etc/ssh/sshd_config&#039;&#039;) in according to the Computer Center - maintained templete. To shut them down: (1) comment out &#039;&#039;cfengine&#039;&#039;-related stuff in root cronjobs; (2) do &#039;&#039;/etc/init.d/cfengine stop&#039;&#039;; (3) do &#039;&#039;chkconfig cfengine off&#039;&#039;. Ask CC (Sherman White, Paul Letta) to fix templete.&lt;br /&gt;
&lt;br /&gt;
Run &#039;&#039;/usr/bin/system-config-authentication&#039;&#039; and set NIS servers list as &#039;&#039;clon00,clon10,nis1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Add following in the end of &#039;&#039;/etc/passwd&#039;&#039;:&lt;br /&gt;
 clasrun:x:2508:9998:Online DAQ:/home/clasrun:/bin/tcsh&lt;br /&gt;
 clas12run:x:6007:146:clas12run Account:/home/clas12run:/bin/tcsh&lt;br /&gt;
 clascron:x:6005:146:CLAS Cron Jobs:/home/clascron:/bin/tcsh&lt;br /&gt;
 clasboot:x:6000:146:Boot Scripts Only:/home/clasboot:/bin/tcsh&lt;br /&gt;
 clasmail:x:6003:146:CLAS Automated Mail:/home/clasmail:/bin/tcsh&lt;br /&gt;
 epics:x:5001:146:EPICS Account:/home/epics:/bin/tcsh&lt;br /&gt;
 nagios:x:6246:9997:Nagios:/home/nagios:/bin/tcsh&lt;br /&gt;
 +@clon_cluster::::::&lt;br /&gt;
 +@ccc::::::&lt;br /&gt;
&lt;br /&gt;
Add following in the end of &#039;&#039;/etc/group&#039;&#039;:&lt;br /&gt;
 onliners::9998:heyes,hujl,rwm,timmer,wolin,taylorw,cuevas,abbottd,abulafia,anciant,anghi,aswin,auger,avakian,banta,barrow,battagli,bjlee,bogdan,brooksw,bruhwel,boiarino,buckle,burchesk,burin,bzh,cetina,chen,cole,cords,corvi,costy,davidl,costy,davidl,dcarter,dcurry,dennisl,deppman,dhlee,doughty,drago,dytman,dugger,dugger,elton,fedro,ficenec,fklein,france,freyberg,gholden,gilfoyle,golovach,gurjyan,haddock,heddle,jenkins,jhardie,jmorris,kellyk,klusman,kmkim,kossov,lcsmith,longhi,manak,marchand,marki,mastersj,mjohnson,mosbackr,mueller,muguira,murphyl,necaise,odonnell,opper,parkkj,pasyuk,phkim,piot,riccardi,richardt,ripani,rossi,saw,sergpozd,serov,sholt,staylor,taiuti,tang,tedeschi,vineyard,vlassov,vvsap,weygand,wooyoung,burchesk,clasrun,giovanet,clasboot,clascoda,clasroot,clasmail,clascron,trigger,epics,southern,carstens,ccutter,danagu,heyes,huertas,jacobsg,kliv,lachniet,mestayer,primex,hovanes,nerses,sytnik&lt;br /&gt;
 clon::383:clascoda,clascron,clasmail&lt;br /&gt;
 nagios::9997:nagios&lt;br /&gt;
&lt;br /&gt;
Create &#039;&#039;/etc/shadow&#039;&#039; files with entries for users clasrun, epics and nagios (copy from another machine).&lt;br /&gt;
&lt;br /&gt;
Install updates: normally all updates should be installed by now, it can be done manually by commands&lt;br /&gt;
 yum list updates&lt;br /&gt;
 yum update&lt;br /&gt;
&lt;br /&gt;
Configure [[SSH]].&lt;br /&gt;
&lt;br /&gt;
Install missing packages:&lt;br /&gt;
 yum install openmotif-devel xinetd mysql-devel cmake&lt;br /&gt;
&lt;br /&gt;
Some additional packages on request (for EPICS):&lt;br /&gt;
&lt;br /&gt;
 yum install mc lapack lapack-devel blas blas-devel giflib-devel&lt;br /&gt;
&lt;br /&gt;
Proceed to the [[Linux Customization on CLON Cluster]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PROBLEMS&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
1. /usr/lib/libg2c.so link is missing&lt;br /&gt;
&lt;br /&gt;
FIXED ??? 2. /usr/lib/libXm.so link is missing&lt;br /&gt;
&lt;br /&gt;
3. Created /etc/shadow file for clasrun, epics and nagios&lt;br /&gt;
&lt;br /&gt;
== RHEL4 ==&lt;br /&gt;
&lt;br /&gt;
Get RHEL4 CDs from Paul Letta.&lt;br /&gt;
&lt;br /&gt;
Connect terminal, keyboard and mouse.&lt;br /&gt;
&lt;br /&gt;
Boot from CD1. Follow instructions. When asked, choose following options:&lt;br /&gt;
&lt;br /&gt;
* Choose &#039;Manually partition with Disk Druid&#039;, set /boot to 100MB, then / to 40GB, then swap to 8192MB or at least double memory size. The rest of disk can be set as /space.&lt;br /&gt;
&lt;br /&gt;
* Network: choose manually, type clonpc2.jlab.org; click &#039;EDIT&#039;, deactivate &#039;Configure using DHCP&#039;,&lt;br /&gt;
type IP address and netmask (255.255.255.0), click Ok.&lt;br /&gt;
Type Gateway (for example 129.57.167.99) and 3 DNS servers (129.57.167.5,129.57.167.14,129.57.32.100).&lt;br /&gt;
&lt;br /&gt;
* Choose &#039;No firewall&#039;&lt;br /&gt;
&lt;br /&gt;
* Disable &#039;SELinux&#039;&lt;br /&gt;
&lt;br /&gt;
* Choose &#039;Customize software packages to be installed&#039;, click &#039;Everything&#039;.&lt;br /&gt;
&lt;br /&gt;
You will be asked to install CD2, CD3 and CD4, then CD1 again.&lt;br /&gt;
Then you will be asked to click &#039;Reboot&#039;. First remove CD, then click &#039;Reboot&#039;.&lt;br /&gt;
You will be asked few more questions. When asked to activate service, choose&lt;br /&gt;
&#039;Tell me why I need to register ..&#039; and click &#039;Next&#039;. Choose &#039;I can not complete registration ..&#039;&lt;br /&gt;
and click &#039;Next&#039;. You will see &#039;System user&#039; screen, click &#039;Use network login..&#039;.&lt;br /&gt;
Choose &#039;Enable NIS support&#039; and click &#039;Configure NIS&#039;. Type NIS Domain: &#039;CCCHP&#039; and NIS Server: clon00.jlab.org.&lt;br /&gt;
Finish installation process.&lt;br /&gt;
&lt;br /&gt;
* fix files &#039;&#039;/etc/passwd&#039;&#039;, &#039;&#039;/etc/shadow&#039;&#039; and &#039;&#039;/etc/group&#039;&#039; adding clasrun etc (see examples on another machines).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: if machine has multiple network ports, Linux may not assign them properly to specified IP names and addresses. If problem occures, open network GUI and delete all existing records. After that, click &#039;&#039;New&#039;&#039; and pick hadrware port you want to configure from the list of available ports (tricky part is to know which RJ-45 connector corresponds to which port ..). Configure and activate it, make sure it works. Repeat for other ports. Results will be stored in directory &#039;&#039;/etc/sysconfig/network-scripts&#039;&#039;, file names will be &#039;&#039;ifcfg-eth0&#039;&#039;, &#039;&#039;ifcfg-eth1&#039;&#039; etc. If modifying those files manually, restart network by &#039;&#039;/etc/init.d/network restart&#039;&#039;. Finally, set routing, for example for &#039;&#039;clonmon&#039;&#039; command &#039;&#039;route -n&#039;&#039; shows following:&lt;br /&gt;
 Kernel IP routing table&lt;br /&gt;
 Destination     Gateway         Genmask         Flags Metric Ref    Use Iface&lt;br /&gt;
 129.57.160.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1&lt;br /&gt;
 129.57.68.0     0.0.0.0         255.255.255.0   U     0      0        0 eth3&lt;br /&gt;
 129.57.69.0     0.0.0.0         255.255.255.0   U     0      0        0 dev5937&lt;br /&gt;
 129.57.64.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0&lt;br /&gt;
 169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth3&lt;br /&gt;
 0.0.0.0         129.57.68.100   0.0.0.0         UG    0      0        0 eth3&lt;br /&gt;
Run following commands:&lt;br /&gt;
 /sbin/route add -net 129.57.160.0 netmask 255.255.255.0 gw 129.57.160.5 dev eth1&lt;br /&gt;
 /sbin/route add -net 129.57.68.0 netmask 255.255.255.0 gw 129.57.68.26 dev eth3&lt;br /&gt;
 /sbin/route add -net 129.57.69.0 netmask 255.255.255.0 gw 129.57.69.206 dev dev5937&lt;br /&gt;
 /sbin/route add -net 129.57.64.0 netmask 255.255.255.0 gw 129.57.64.57 dev eth0&lt;br /&gt;
Now &#039;&#039;route -n&#039;&#039; shows following:&lt;br /&gt;
 Kernel IP routing table&lt;br /&gt;
 Destination     Gateway         Genmask         Flags Metric Ref    Use Iface&lt;br /&gt;
 129.57.160.0    129.57.160.5    255.255.255.0   UG    0      0        0 eth1&lt;br /&gt;
 129.57.160.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1&lt;br /&gt;
 129.57.68.0     129.57.68.26    255.255.255.0   UG    0      0        0 eth3&lt;br /&gt;
 129.57.68.0     0.0.0.0         255.255.255.0   U     0      0        0 eth3&lt;br /&gt;
 129.57.69.0     129.57.69.206   255.255.255.0   UG    0      0        0 dev5937&lt;br /&gt;
 129.57.69.0     0.0.0.0         255.255.255.0   U     0      0        0 dev5937&lt;br /&gt;
 129.57.64.0     129.57.64.57    255.255.255.0   UG    0      0        0 eth0&lt;br /&gt;
 129.57.64.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0&lt;br /&gt;
 169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth3&lt;br /&gt;
 0.0.0.0         129.57.68.100   0.0.0.0         UG    0      0        0 eth3&lt;br /&gt;
In that example automount will do configured using &#039;&#039;clonmon-daq1&#039;&#039; interface, because default &#039;&#039;clonmon&#039;&#039; interface is on external subnet. To make that routing table permanent (retore it after reboot) I tried to add four files with following contents to the &#039;&#039;/etc/sysconfig/network-scripts&#039;&#039; directory:&lt;br /&gt;
 route-eth1:&lt;br /&gt;
   GATEWAY0=129.57.160.5&lt;br /&gt;
   NETMASK0=255.255.255.0&lt;br /&gt;
   ADDRESS0=129.57.160.0&lt;br /&gt;
 route-eth3:&lt;br /&gt;
   GATEWAY0=129.57.68.26&lt;br /&gt;
   NETMASK0=255.255.255.0&lt;br /&gt;
   ADDRESS0=129.57.68.0&lt;br /&gt;
 route-dev5937:&lt;br /&gt;
   GATEWAY0=129.57.69.206&lt;br /&gt;
   NETMASK0=255.255.255.0&lt;br /&gt;
   ADDRESS0=129.57.69.0&lt;br /&gt;
 route-eth0:&lt;br /&gt;
   GATEWAY0=129.57.64.57&lt;br /&gt;
   NETMASK0=255.255.255.0&lt;br /&gt;
   ADDRESS0=129.57.64.0&lt;br /&gt;
It did not worked. Then I added four &#039;&#039;/sbin/route add ..&#039;&#039; lines to &#039;&#039;/etc/rc.local&#039;&#039; script, and it worked.&lt;br /&gt;
&lt;br /&gt;
From now on you can use remote &#039;ssh&#039; connection.&lt;br /&gt;
&lt;br /&gt;
* To configure your system to use the patch server, issue the following commands as root:&lt;br /&gt;
 # mount jlabsite:/site /mnt&lt;br /&gt;
 # /mnt/CC/linux/satellite-connect --patchall&lt;br /&gt;
The script will prompt you for an activation key, but if you don&#039;t know what this is, just hit ENTER and it will use a sensible default.  Depending on how many patches need to be applied to your system to bring it up to the current level, this script may take a very long time to run.  When it finishes, you should reboot your machine to make the new patches take effect.&lt;br /&gt;
&lt;br /&gt;
To install updates later run &#039;&#039;up2date -uf&#039;&#039; as &#039;&#039;root&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Configure [[SSH]].&lt;br /&gt;
&lt;br /&gt;
* Proceed with [[Linux Customization on CLON Cluster]] if applicable.&lt;br /&gt;
&lt;br /&gt;
To boot Linux in single user mode (no graphics), add &#039;&#039;single&#039;&#039; to the end of boot line during boot process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;background info&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Add startup script&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Create script in &#039;&#039;/etc/init.d/&#039;&#039; directory (use existing scripts as example). Must have a line like&lt;br /&gt;
 # chkconfig:	- 91 09&lt;br /&gt;
which specifies start and stop order. Run commands&lt;br /&gt;
 chkconfig --add &amp;lt;scriptname&amp;gt;&lt;br /&gt;
 chkconfig --level 3 &amp;lt;scriptname&amp;gt; on&lt;br /&gt;
for every level you want that script to be executed (usualy 3 and/or 4 and/or 5). Check if it os done using command&lt;br /&gt;
 chkconfig --list | grep &amp;lt;scriptname&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;xxx&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can choose to download the RHEL operating system directly from the Red Hat Web site and not receive a media kit from HP containing the software. This scenario occurs when the media option AJR is deselected from the order. (The media kit option is always selected by default. )&lt;br /&gt;
&lt;br /&gt;
It is necessary to register at the Red Hat Web site prior to download. Registration requires the activation code that each customer receives from HP when ordering either RHEL.&lt;br /&gt;
&lt;br /&gt;
You can download RHEL for each available platform as four CD ISO images or one DVD ISO image.&lt;br /&gt;
&lt;br /&gt;
Use the following procedure to download RHEL and create the installation media:&lt;br /&gt;
&lt;br /&gt;
   1.&lt;br /&gt;
&lt;br /&gt;
      Register and log in at the following Red Hat Web site:&lt;br /&gt;
&lt;br /&gt;
      www.redhat.com/rhn&lt;br /&gt;
   2.&lt;br /&gt;
&lt;br /&gt;
      Click on channels and then select Red Hat Enterprise Linux ES (v.4 for 64–bit Intel Itanium).&lt;br /&gt;
   3.&lt;br /&gt;
&lt;br /&gt;
      Select Downloads and then download the ISO images of install, compatibility and source disks&lt;br /&gt;
&lt;br /&gt;
      Files with ia64 in the name are for the Itanium platform.&lt;br /&gt;
   4.&lt;br /&gt;
&lt;br /&gt;
      Create the CDs or a DVD from the ISO images.&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
	IMPORTANT: Create the CDs or DVD using the contents of the ISO images. Do not create the CDs or DVD by burning the .iso files themselves to CD or DVD. For example, if you are using K3b to burn a CD, click Tools&amp;gt;CD&amp;gt;Burn CD Image, select the .iso image, then click Burn.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bootup scripts&#039;&#039;&#039; for example for level 5 execution (multiuser with X):&lt;br /&gt;
&lt;br /&gt;
 cp &amp;lt;script-file&amp;gt; /etc/init.d/&lt;br /&gt;
 chmod +x /etc/init.d/&amp;lt;script-file&amp;gt;&lt;br /&gt;
 ln -s /etc/init.d/&amp;lt;scriptfile&amp;gt; /etc/rc.d/rc5.d/S50&amp;lt;scriptfile&amp;gt;&lt;br /&gt;
 ln -s /etc/init.d/&amp;lt;scriptfile&amp;gt; /etc/rc.d/rc5.d/K50&amp;lt;scriptfile&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changing hostname/IP address&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 Changing hostname on RHEL&lt;br /&gt;
 1. Change the HOSTNAME line in /etc/sysconfig/network&lt;br /&gt;
 2. Change the hostname (FQDN and alias) in /etc/hosts&lt;br /&gt;
 3. Run &#039;/bin/hostname new_hostname&#039; for the hostname change to take effect immediately.&lt;br /&gt;
 4. Run &#039;/sbin/service syslog restart&#039; for syslog to log using the new hostname.&lt;br /&gt;
 A reboot is not required to change the system hostname.&lt;br /&gt;
&lt;br /&gt;
 IP address: You have to change the IP address entry in&lt;br /&gt;
 /etc/sysconfig/network-scripts/ifcfg-eth0.&lt;/div&gt;</summary>
		<author><name>Boiarino</name></author>
	</entry>
	<entry>
		<id>https://clonwiki0.jlab.org/wiki/index.php?title=Linux_Installation_Procedure&amp;diff=8702</id>
		<title>Linux Installation Procedure</title>
		<link rel="alternate" type="text/html" href="https://clonwiki0.jlab.org/wiki/index.php?title=Linux_Installation_Procedure&amp;diff=8702"/>
		<updated>2026-02-10T22:32:09Z</updated>

		<summary type="html">&lt;p&gt;Boiarino: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Dell servers hardware trick(s) ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;!!! if BIOS date/time is incorrect, it may prevent redhat subscription and installation to work correctly. If BIOS does not remember time setting after power unplugged, on-board battery may need to be replaced&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* if looks dead, remove the power cords, then held in the on button for 30 seconds; then plug it back in and it may boots up fine - known Dell feature&lt;br /&gt;
&lt;br /&gt;
== ARM (CentsOS7) ==&lt;br /&gt;
&lt;br /&gt;
See [[yum]] for specifics.&lt;br /&gt;
&lt;br /&gt;
 yum install xauth wget bzip2 xterm expat-devel libX11-devel libXpm-devel motif-devel mariadb-devel&lt;br /&gt;
&lt;br /&gt;
== RHEL9 (64 bit) ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: select installation type &#039;&#039;&#039;H&#039;&#039;&#039;, then type &#039;&#039;&#039;B&#039;&#039;&#039;.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: during custom disk partitioning, select &#039;Standard&#039; for every partition, if you want it to be standard, or &#039;Raid&#039; if applicable&lt;br /&gt;
&lt;br /&gt;
Set root password (see instractions below), if you want to become superuser by typing just &#039;&#039;su&#039;&#039;. If becoming superuser by typing &#039;&#039;sudo su&#039;&#039; is good enough, do nothing (in that case graphics will not work in superuser mode).&lt;br /&gt;
&lt;br /&gt;
Install useful pachages:&lt;br /&gt;
 yum install ncdu mysql&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: graphic screen is disabled, run following command as root:&lt;br /&gt;
 systemctl set-default graphical.target&lt;br /&gt;
&lt;br /&gt;
== RHEL9 (64 bit) - for machine NOT under puppet control ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: select installation type &#039;&#039;&#039;D&#039;&#039;&#039; (not &#039;&#039;&#039;S&#039;&#039;&#039;, otherwise it will not be level 2 server)&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: during custom disk partitioning, select &#039;Standard&#039; for every partition, if you want it to be standard, or &#039;Raid&#039; if applicable&lt;br /&gt;
&lt;br /&gt;
When installation complete, ssh as authorized user and do following:&lt;br /&gt;
&lt;br /&gt;
 sudo yum install emacs&lt;br /&gt;
 cd /etc&lt;br /&gt;
 sudo chmod a+rw shadow&lt;br /&gt;
 sudo emacs shadow&lt;br /&gt;
&lt;br /&gt;
Copy to /etc/shadow root and other needed passwords from another clon machine. &lt;br /&gt;
&lt;br /&gt;
 sudo chmod a-rw shadow&lt;br /&gt;
&lt;br /&gt;
After that, type &#039;&#039;su&#039;&#039; to become superuser. All following settings can be done now without typing &#039;&#039;sudo&#039;&#039; every time. You still will not be able to ssh remotely as root - always ssh as authorized user and type &#039;&#039;su&#039;&#039; to become root.&lt;br /&gt;
&lt;br /&gt;
Update /etc/passwd and /etc/group using another clon machine as example.&lt;br /&gt;
&lt;br /&gt;
 yum install expat-devel libXaw-devel mysql-devel motif-devel ncurses-devel apr-devel net-snmp-utils&lt;br /&gt;
 yum install xorg-x11-utils # for xprop/xwininfo/etc creg stuff&lt;br /&gt;
 yum install s-nail # for /usr/bin/mail&lt;br /&gt;
 yum install ncdu&lt;br /&gt;
 yum install libconfig-devel # recent addition for CODA libraries&lt;br /&gt;
&lt;br /&gt;
To be able to ssh to old machines (like vme controllers under CentOS5), run following as root:&lt;br /&gt;
&lt;br /&gt;
 update-crypto-policies --set LEGACY&lt;br /&gt;
&lt;br /&gt;
and then probably reboot, not sure.&lt;br /&gt;
&lt;br /&gt;
Somebody mentioned also adding &#039;&#039;RequiredRSASize 1024&#039;&#039; to a config file in &#039;&#039;/etc/ssh/ssh_config.d/&#039;&#039;, but I did not do it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    Note: this changes all daemons and system settings and is a bit overkill if you only need to adjust the settings for ssh and sshd.&lt;br /&gt;
&lt;br /&gt;
    Exclude (only) sshd from the system-wide cryptographic policy. You opt-out by editing /etc/sysconfig/sshd and uncommenting the line # CRYPTO_POLICY= , (if necessary you can then adjust adjust /etc/ssh/sshd_config and add legacy crypto settings) and restart the ssh daemon.&lt;br /&gt;
&lt;br /&gt;
For the ssh command line client on the RHEL 9 system: you&#039;re recommended to edit ˜/.ssh/config and override the modern/secure system wide ssh client defaults by adding a Host entry that adds support for suitable legacy encryption options for that particular host:&lt;br /&gt;
&lt;br /&gt;
#    ˜/.ssh/config&lt;br /&gt;
&lt;br /&gt;
Host rhel6.example.com&lt;br /&gt;
  KexAlgorithms +diffie-hellman-group14-sha1&lt;br /&gt;
  MACs +hmac-sha1&lt;br /&gt;
  HostKeyAlgorithms +ssh-rsa&lt;br /&gt;
  PubkeyAcceptedKeyTypes +ssh-rsa&lt;br /&gt;
  PubkeyAcceptedAlgorithms +ssh-rsa&lt;br /&gt;
&lt;br /&gt;
Prepare auto-mounting directories:&lt;br /&gt;
&lt;br /&gt;
 cd /&lt;br /&gt;
 mv apps apps.orig&lt;br /&gt;
 mv home home.orig&lt;br /&gt;
 mv scratch scratch.orig&lt;br /&gt;
 mv work work.orig&lt;br /&gt;
 mkdir apps&lt;br /&gt;
 mkdir home&lt;br /&gt;
 mkdir scratch&lt;br /&gt;
 mkdir work&lt;br /&gt;
 mkdir logs&lt;br /&gt;
 cd /usr&lt;br /&gt;
 mv local local.orig&lt;br /&gt;
 mkdir local&lt;br /&gt;
 mkdir clas&lt;br /&gt;
 mkdir clas12&lt;br /&gt;
 mkdir downloads&lt;br /&gt;
 cd&lt;br /&gt;
&lt;br /&gt;
== RHEL8 (64 bit) ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; to boot from USB stick, insert USB stick, turn machine ON holding F2, and in BIOS Boot Configuration, set Enable Security Boot to OFF, save and exit, holding F2. When in BIOS again, in Boot Configuration make &#039;&#039;UEFI PHY USB ...&#039;&#039; first in boot sequence, local hard drive second, disable all other boot options, save and exit. Do NOT hold F2, Linux installation from USB stick will start. &#039;&#039;&#039;IMPORTANT:&#039;&#039;&#039; when asked about D/S options (very first question in installation process), &#039;&#039;&#039;REMOVE USB STICK BEFORE ANSWERING QUESTION ABOUT DESKTOP/SERVER&#039;&#039;&#039;, otherwise it will be destroyed by following installation steps !!!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; to disable/enable puppet, do following as root: &lt;br /&gt;
 puppet agent --disable &amp;quot;temporary&amp;quot;&lt;br /&gt;
 puppet agent --enable&lt;br /&gt;
&lt;br /&gt;
 yum install emacs&lt;br /&gt;
 yum install xorg-x11-fonts-misc&lt;br /&gt;
&lt;br /&gt;
Move and create some directories in preparation for automounts:&lt;br /&gt;
&lt;br /&gt;
 cd /&lt;br /&gt;
 mv apps apps.orig&lt;br /&gt;
 mv home home.orig&lt;br /&gt;
 mv scratch scratch.orig&lt;br /&gt;
 mkdir apps&lt;br /&gt;
 mkdir home&lt;br /&gt;
 mkdir scratch&lt;br /&gt;
 mkdir work&lt;br /&gt;
 mkdir logs&lt;br /&gt;
 cd /usr&lt;br /&gt;
 mv local local.orig&lt;br /&gt;
 mkdir local&lt;br /&gt;
 mkdir clas&lt;br /&gt;
 mkdir clas12&lt;br /&gt;
 mkdir downloads&lt;br /&gt;
 cd&lt;br /&gt;
&lt;br /&gt;
Add line &#039;&#039;&#039;+dir:/etc/auto.master.d&#039;&#039;&#039; to &#039;&#039;/etc/auto.master&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Create file &#039;&#039;/etc/auto.master.d/direct.autofs&#039;&#039; with the line &#039;&#039;&#039;/- /etc/auto.direct&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Create file &#039;&#039;/etc/auto.direct&#039;&#039; with the following contents:&lt;br /&gt;
&lt;br /&gt;
 # machine-dependent system directories&lt;br /&gt;
 /apps                 -rw,bg     clonfs1:/vol/apps/RHEL8_x86_64&lt;br /&gt;
 /usr/local            -rw,bg     clonfs1:/vol/local/RHEL8_x86_64&lt;br /&gt;
 # machine-independent system directories&lt;br /&gt;
 /home                 -rw,bg     clonfs1:/vol/home&lt;br /&gt;
 #/work                 -rw,bg     clonfs1-old:/vol/work&lt;br /&gt;
 /scratch              -rw,bg     clonfs1:/vol/scratch&lt;br /&gt;
 # machine-independent clas directories&lt;br /&gt;
 /usr/downloads        -rw,bg     clonfs1:/vol/downloads&lt;br /&gt;
 /usr/clas             -rw,bg     clonfs1:/vol/clas&lt;br /&gt;
 /usr/clas12           -rw,bg     clonfs1:/vol/clas12&lt;br /&gt;
 # Used for data storage before shipping to tape&lt;br /&gt;
 #/logs                 -rw,bg     clonfs1-old:/vol/logs&lt;br /&gt;
&lt;br /&gt;
Restart autofs:&lt;br /&gt;
&lt;br /&gt;
 service autofs reload&lt;br /&gt;
 service autofs restart&lt;br /&gt;
&lt;br /&gt;
Remove from the end of the &#039;&#039;/etc/passwd&#039;&#039; line &#039;&#039;&#039;+::::::&#039;&#039;&#039;, and add following:&lt;br /&gt;
&lt;br /&gt;
 hpsrun:x:8796:9998:hpsrun Account:/home/hpsrun:/bin/tcsh&lt;br /&gt;
 clasrun:x:2508:9998:Online DAQ:/home/clasrun:/bin/tcsh&lt;br /&gt;
 clasioc:x:6008:9998:CLAS IOCs:/home/clasioc:/bin/tcsh&lt;br /&gt;
 clas12run:x:6007:146:clas12run Account:/home/clas12run:/bin/tcsh&lt;br /&gt;
 clascron:x:3888:146:CLAS Cron Jobs:/home/clascron:/bin/tcsh&lt;br /&gt;
 clasboot:x:6000:146:Boot Scripts Only:/home/clasboot:/bin/tcsh&lt;br /&gt;
 clasmail:x:6003:146:CLAS Automated Mail:/home/clasmail:/bin/tcsh&lt;br /&gt;
 epics:x:5001:146:EPICS Account:/home/epics:/bin/tcsh&lt;br /&gt;
 nagios:x:6246:9997:Nagios:/home/nagios:/bin/tcsh&lt;br /&gt;
 +@clon_cluster::::::&lt;br /&gt;
 +sshd::::::&lt;br /&gt;
 +::::::/bin/false&lt;br /&gt;
&lt;br /&gt;
Update &#039;&#039;/etc/shadow&#039;&#039;, adding passwords for local accounts (copy it from another machine).&lt;br /&gt;
&lt;br /&gt;
Add following to &#039;&#039;/etc/group&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 clon:x:383:clascron&lt;br /&gt;
 onliners:x:9998:abbottd,avakian,baltzell,battagli,brooksw,bruhwel,boiarino,carman,chen,clasboot,clascron,clasrun,cole,cuevas,davidl,danagu,dugger,elton,epics,fklein,gilfoyle,giovanet,golovach,gurjyan,heddle,heyes,hovanes,jacobsg,jenkins,kliv,lcsmith,marki,mestayer,nerses,parkkj,pasyuk,primex,ripani,rossi,saw,staylor,sytnik,taiuti,taylorw,timmer,wooyoung&lt;br /&gt;
&lt;br /&gt;
== RHEL7 (64 bit) ==&lt;br /&gt;
&lt;br /&gt;
Installed using DVD provided by Computer Center, currently RHEL7.3. Requires MAC address to be registered with Computer Center (using jnet.jlab.org as &#039;boiarino&#039;) because it is network-based installation. On DELL servers, hold F2 after power on and go to &#039;Device Settings&#039; to see mac address. Remember machine memory size as well, will needed when create partitions, find it in &#039;System BIOS -&amp;gt; Memory Settings&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: all disks will be reformatted in a process, all information will be lost !&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dialog:&lt;br /&gt;
&lt;br /&gt;
* boot: &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Please enter the hostname of this system: &amp;lt;hostname&amp;gt; &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* What type of system are you building? (D)esktop: &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Is this a CUE level 1 or CUE level 2 System build (1/2): 2 &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Please enter the System Admin&#039;s CUE username: boiarino &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Do you want to use the default partitioning scheme (y/n)? n &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Are you sure you want to use your own partitioning scheme (y/n)? y &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Choose &#039;Standard Partition&#039; scheme and create following partitions: /boot - 1GB, swap - double memory size, / - the rest of space.&lt;br /&gt;
&lt;br /&gt;
Installation will proceed. When prompted, remove installation disk and reboot machine if not done automatically.&lt;br /&gt;
&lt;br /&gt;
After reboot patching process will be started and it will take a while, do not interrupt it, otherwise system will not be installed correctly.&lt;br /&gt;
&lt;br /&gt;
When machine reboots for the last time, ask Paul Letta to set usual hallb root password. From now on remote root access is possible. Alternatively, user &#039;&#039;boiarino&#039;&#039; can execute most of actions using &#039;&#039;sudo&#039;&#039;,&lt;br /&gt;
like &#039;&#039;sudo emacs&#039;&#039; for protected files. &#039;&#039;sudo reboot&#039;&#039; etc.&lt;br /&gt;
&lt;br /&gt;
Go to /boot/grub2 and modify file grub.cfg, Linux kernel boot options, adding options &#039;&#039;net.ifnames=0 biosdevname=0&#039;&#039;, so your boot string has following section:&lt;br /&gt;
&lt;br /&gt;
 ..... rhgb net.ifnames=0 biosdevname=0 quiet .....&lt;br /&gt;
&lt;br /&gt;
so whole line looks something like this:&lt;br /&gt;
&lt;br /&gt;
 linux16 /vmlinuz-3.10.0-327.18.2.el7.x86_64 root=UUID=b5d1b5ad-e3f6-4db4-8972-aa9c1a91d116 ro vconsole.keymap=us crashkernel=auto  vconsole.font=latarcyrheb-sun16 rhgb net.ifnames=0 biosdevname=0 quiet LANG=en_US.UTF-8&lt;br /&gt;
&lt;br /&gt;
Reboot machine, ethernet ports must be named &#039;&#039;eth0&#039;&#039;, &#039;&#039;eth1&#039;&#039; etc.&lt;br /&gt;
&lt;br /&gt;
To update manually, use commands &#039;&#039;yum list updates&#039;&#039; and &#039;&#039;yum update&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; add machine to the appropriate &#039;&#039;&#039;puppet&#039;&#039;&#039; group, it will do all following automatically (hopefully).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; on RHEL7.9, RPM EPEL REPO is not enabled by default, which prevents from installing nload, itcl, itk etc. To bring it back, it can be copied it from older machine, for example:&lt;br /&gt;
&lt;br /&gt;
 cd /etc/yum.repos.d&lt;br /&gt;
 scp clondaq7:/etc/yum.repos.d/epel.repo .&lt;br /&gt;
 cd /etc/pki/rpm-gpg&lt;br /&gt;
 scp clondaq7:/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 .&lt;br /&gt;
&lt;br /&gt;
Alternatively, following can be used to add repo&#039;s:&lt;br /&gt;
&lt;br /&gt;
 subscription-manager repos --enable &amp;lt;repo_id&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In particular, following have to be enabled to get nload, xpdf, python-alembic, tix, itcl, itk etc:&lt;br /&gt;
&lt;br /&gt;
 subscription-manager repos --enable JLab_EPEL_EPEL_7&lt;br /&gt;
 subscription-manager repos --enable rhel-7-workstation-optional-rpms&lt;br /&gt;
&lt;br /&gt;
Repo ID&#039;s can be obtained by:&lt;br /&gt;
&lt;br /&gt;
 subscription-manager repos --list&lt;br /&gt;
&lt;br /&gt;
Installed repo&#039;s can be seen by:&lt;br /&gt;
&lt;br /&gt;
 yum repolist&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Yum updates&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Edit the &#039;&#039;/etc/yum.conf&#039;&#039; file and add the following line to force installation of the 32bit and 64bit libraries:&lt;br /&gt;
&lt;br /&gt;
 multilib_policy=all&lt;br /&gt;
&lt;br /&gt;
Install following packages:&lt;br /&gt;
&lt;br /&gt;
 yum install xterm mesa-dri-drivers telnet rsh readline-devel net-snmp-utils tigervnc-server tigervnc xpdf nload mariadb-devel libxml2-devel glibc-devel qt-devel python-alembic openssl-devel apr-devel&lt;br /&gt;
 yum install libconfig-devel # recent addition for CODA libraries&lt;br /&gt;
&lt;br /&gt;
Fonts for EPICS EDMs:&lt;br /&gt;
&lt;br /&gt;
 yum install xorg-x11-fonts-75dpi xorg-x11-fonts-ISO8859-1-75dpi bitmap-miscfixed-fonts&lt;br /&gt;
 yum install bitmap-console-fonts bitmap-fixed-fonts bitmap-lucida-typewriter-fonts&lt;br /&gt;
 ln -s  /usr/share/X11/fonts/100dpi /etc/X11/fontpath.d/xorg-x11-fonts-100dpi:pri=60&lt;br /&gt;
 ln -s  /usr/share/X11/fonts/75dpi /etc/X11/fontpath.d/xorg-x11-fonts-75dpi:pri=50&lt;br /&gt;
 ln -s  /usr/share/X11/fonts/misc /etc/X11/fontpath.d/xorg-x11-fonts-misc:pri=40&lt;br /&gt;
 ln -s  /usr/share/fonts/bitmap /etc/X11/fontpath.d/bitmap-fonts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Do following to be able to compile and run 32-bit apps on 64-bit machine (for compatibility with 32bit applications):&lt;br /&gt;
&lt;br /&gt;
 yum install libXpm-devel libXaw-devel motif-devel glibc-devel ncurses-devel readline-devel&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Modify file &#039;&#039;/etc/passwd&#039;&#039; adding following:&lt;br /&gt;
&lt;br /&gt;
 hpsrun:x:8796:9998:hpsrun Account:/home/hpsrun:/bin/tcsh&lt;br /&gt;
 clasrun:x:2508:9998:Online DAQ:/home/clasrun:/bin/tcsh&lt;br /&gt;
 clasioc:x:6008:9998:CLAS IOCs:/home/clasioc:/bin/tcsh&lt;br /&gt;
 clas12run:x:6007:146:clas12run Account:/home/clas12run:/bin/tcsh&lt;br /&gt;
 clascron:x:3888:146:CLAS Cron Jobs:/home/clascron:/bin/tcsh&lt;br /&gt;
 clasboot:x:6000:146:Boot Scripts Only:/home/clasboot:/bin/tcsh&lt;br /&gt;
 clasmail:x:6003:146:CLAS Automated Mail:/home/clasmail:/bin/tcsh&lt;br /&gt;
 epics:x:5001:146:EPICS Account:/home/epics:/bin/tcsh&lt;br /&gt;
 nagios:x:6246:9997:Nagios:/home/nagios:/bin/tcsh&lt;br /&gt;
 +@clon_cluster::::::&lt;br /&gt;
 +sshd::::::&lt;br /&gt;
 +::::::/bin/false&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: user-related lines must be removed, like&lt;br /&gt;
&lt;br /&gt;
 +boiarino::::::&lt;br /&gt;
&lt;br /&gt;
as well as&lt;br /&gt;
&lt;br /&gt;
 +::::::&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: assumed that following line is in already:&lt;br /&gt;
&lt;br /&gt;
 +@ccc::::::&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: if following line exist, it must be placed in the end, or removed:&lt;br /&gt;
&lt;br /&gt;
 +::::::/bin/false&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Modify file &#039;&#039;/etc/group&#039;&#039; adding following:&lt;br /&gt;
&lt;br /&gt;
 onliners::9998:heyes,hujl,rwm,timmer,wolin,taylorw,cuevas,abbottd,abulafia,anciant,anghi,aswin,auger,avakian,banta,barrow,battagli,bjlee,bogdan,brooksw,bruhwel,boiarino,buckle,burchesk,burin,bzh,cetina,chen,cole,cords,corvi,costy,davidl,costy,davidl,dcarter,dcurry,dennisl,deppman,dhlee,doughty,drago,dytman,dugger,dugger,elton,fedro,ficenec,fklein,france,freyberg,gholden,gilfoyle,golovach,gurjyan,haddock,heddle,jenkins,jhardie,jmorris,kellyk,klusman,kmkim,kossov,lcsmith,longhi,manak,marchand,marki,mastersj,mjohnson,mosbackr,mueller,muguira,murphyl,necaise,odonnell,opper,parkkj,pasyuk,phkim,piot,riccardi,richardt,ripani,rossi,saw,sergpozd,serov,sholt,staylor,taiuti,tang,tedeschi,vineyard,vlassov,vvsap,weygand,wooyoung,burchesk,clasrun,giovanet,clasboot,clascoda,clasroot,clasmail,clascron,trigger,epics,southern,carstens,ccutter,danagu,heyes,huertas,jacobsg,kliv,lachniet,mestayer,primex,hovanes,nerses,sytnik,baltzell,carman&lt;br /&gt;
 clon::383:clascoda,clascron,clasmail&lt;br /&gt;
 nagios::9997:nagios&lt;br /&gt;
&lt;br /&gt;
Modify file &#039;&#039;/etc/shadow&#039;&#039; using an example from another RHEL7 clon machine (clonioc2 etc). Do &#039;&#039;chmod 600 shadow&#039;&#039; before editing and &#039;&#039;chmod 000 shadow&#039;&#039; after.&lt;br /&gt;
&lt;br /&gt;
Make sure file &#039;&#039;/etc/ssh/sshd_config&#039;&#039; has following line uncommented (must be pushed in by CC security scripts):&lt;br /&gt;
&lt;br /&gt;
 ##PermitUserEnvironment yes&lt;br /&gt;
&lt;br /&gt;
NOT NEEDED, DONE IN THE END OF FILE ALREADY !!! Uncomment following in file &#039;&#039;/etc/ssh/ssh_config&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 ##Host *&lt;br /&gt;
 ##ForwardX11 yes&lt;br /&gt;
&lt;br /&gt;
Add line &#039;export NO_AT_BRIDGE=1&#039; to the file &#039;/etc/environment&#039; to suppress annoying messages like &#039;** (emacs:38714): WARNING **: Couldn&#039;t register with accessibility bus: Did not receive a reply.&#039;&lt;br /&gt;
&lt;br /&gt;
If big (&amp;gt;2GB) partition to be formated, do following (for example /dev/sdb):&lt;br /&gt;
&lt;br /&gt;
 parted /dev/sdb&lt;br /&gt;
 (parted) print&lt;br /&gt;
 (parted) mklabel gpt&lt;br /&gt;
 (parted) print&lt;br /&gt;
 mkpart primary 0GB 25855.2GB&lt;br /&gt;
 (parted) print&lt;br /&gt;
 (parted) quit&lt;br /&gt;
&lt;br /&gt;
 mkfs.xfs /dev/sdb1&lt;br /&gt;
&lt;br /&gt;
then create /data and mount it using &#039;&#039;/etc/fstab&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 /dev/sdb1                                 /data                   xfs     defaults        1 2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; sometimes machine can loose NIS connection, then ssh to it becomes intermittent; if it happens ssh as root (may have to try several times) and run command&lt;br /&gt;
&lt;br /&gt;
 ypwhich&lt;br /&gt;
&lt;br /&gt;
to shows NIS server. If it returns nothing check file &#039;&#039;/etc/resolv.conf&#039;&#039;, it must have following (as on July 2019):&lt;br /&gt;
&lt;br /&gt;
 search jlab.org acc.jlab.org&lt;br /&gt;
 nameserver 129.57.90.255&lt;br /&gt;
 nameserver 129.57.32.101&lt;br /&gt;
&lt;br /&gt;
If file is empty or does not contain right info, fix it. After that run command&lt;br /&gt;
&lt;br /&gt;
 ypbind&lt;br /&gt;
&lt;br /&gt;
It should fix a problem. Run &#039;&#039;ypwhich&#039;&#039; to make sure.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Display Setting:&#039;&#039;&#039; if machine is multi-head, goto &#039;&#039;Applications-&amp;gt;System Tools-&amp;gt;Settings-&amp;gt;Devices-&amp;gt;Displays&#039;&#039; and arrange displays.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Proceed to the [[Linux Customization on CLON Cluster]].&lt;br /&gt;
&lt;br /&gt;
== RHEL6 (64 bit) ==&lt;br /&gt;
&lt;br /&gt;
Installed using CD provided by Computer Center. Requires MAC address to be registered with Computer Center (using jnet.jlab.org as &#039;boiarino&#039;) because it is network-based installation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: all disks will be reformatted in a process, all information will be lost !&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dialog:&lt;br /&gt;
&lt;br /&gt;
* boot: &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ...[D]esktop: [use &#039;s&#039; for server, &#039;d&#039; for desktop] &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* root password: enter root password&lt;br /&gt;
&lt;br /&gt;
* admin user: boiarino&lt;br /&gt;
&lt;br /&gt;
Installation will proceed. When prompted, remove installation disk and reboot machine if not done automatically. After reboot patching process will be started and it will take a while, do not interrupt it, otherwise system will not be installed correctly.&lt;br /&gt;
&lt;br /&gt;
To make emacs work, install&lt;br /&gt;
&lt;br /&gt;
 yum install libotf&lt;br /&gt;
&lt;br /&gt;
Edit the /etc/yum.conf file and add the following line to force installation of teh 32bit and 64bit libraries:&lt;br /&gt;
&lt;br /&gt;
 multilib_policy=all&lt;br /&gt;
&lt;br /&gt;
Install following packages:&lt;br /&gt;
&lt;br /&gt;
 yum install openmotif-devel xinetd mysql-devel cmake libXpm-devel net-snmp-utils&lt;br /&gt;
 yum install mesa-libGL-devel mesa-libGLU-devel mesa-libGLw-devel (for OpenGL, needed by ROOT)&lt;br /&gt;
 yum install libXaw-devel (for xterm)&lt;br /&gt;
 yum install expat-devel libgcj-devel (for evio/et)&lt;br /&gt;
&lt;br /&gt;
 yum install compat-libtermcap (for xterm)&lt;br /&gt;
 ln -s /lib/libtermcap.so.2 /usr/lib/libtermcap.so&lt;br /&gt;
 ###ln -s /lib64/libtermcap.so.2 /usr/lib64/libtermcap.so&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Install following fonts for EPICS EDMs:&lt;br /&gt;
&lt;br /&gt;
 yum install xorg-x11-fonts-75dpi xorg-x11-fonts-ISO8859-1-75dpi bitmap-miscfixed-fonts&lt;br /&gt;
 yum install bitmap-console-fonts bitmap-fixed-fonts bitmap-lucida-typewriter-fonts&lt;br /&gt;
 ln -s  /usr/share/X11/fonts/100dpi /etc/X11/fontpath.d/xorg-x11-fonts-100dpi:pri=60&lt;br /&gt;
 ln -s  /usr/share/X11/fonts/75dpi /etc/X11/fontpath.d/xorg-x11-fonts-75dpi:pri=50&lt;br /&gt;
 ln -s  /usr/share/X11/fonts/misc /etc/X11/fontpath.d/xorg-x11-fonts-misc:pri=40&lt;br /&gt;
 ln -s  /usr/share/fonts/bitmap /etc/X11/fontpath.d/bitmap-fonts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; Useful &#039;&#039;yum&#039;&#039; commands:&lt;br /&gt;
&lt;br /&gt;
 yum whatprovides libstdc++.so.5 - show which package contains libstdc++.so.5&lt;br /&gt;
&lt;br /&gt;
== RHEL5 ==&lt;br /&gt;
&lt;br /&gt;
Installed using CD provided by Computer Center. Requires MAC address to be registered with Computer Center (email to helpdesk@jlab.org) because it is network-based installation.&lt;br /&gt;
&lt;br /&gt;
Dialog:&lt;br /&gt;
&lt;br /&gt;
* boot: &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ...[D]esktop: Server (it is ignored, will do Desktop anyway ...)&lt;br /&gt;
&lt;br /&gt;
* root password: enter root password&lt;br /&gt;
&lt;br /&gt;
* system user: &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* manually partition disk: 100MB /boot, 2048 etc MB swap, the rest /.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CFENGINE&#039;&#039;&#039;: there are procesess restoring some system config files (in particular &#039;&#039;/etc/ssh/sshd_config&#039;&#039;) in according to the Computer Center - maintained templete. To shut them down: (1) comment out &#039;&#039;cfengine&#039;&#039;-related stuff in root cronjobs; (2) do &#039;&#039;/etc/init.d/cfengine stop&#039;&#039;; (3) do &#039;&#039;chkconfig cfengine off&#039;&#039;. Ask CC (Sherman White, Paul Letta) to fix templete.&lt;br /&gt;
&lt;br /&gt;
Run &#039;&#039;/usr/bin/system-config-authentication&#039;&#039; and set NIS servers list as &#039;&#039;clon00,clon10,nis1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Add following in the end of &#039;&#039;/etc/passwd&#039;&#039;:&lt;br /&gt;
 clasrun:x:2508:9998:Online DAQ:/home/clasrun:/bin/tcsh&lt;br /&gt;
 clas12run:x:6007:146:clas12run Account:/home/clas12run:/bin/tcsh&lt;br /&gt;
 clascron:x:6005:146:CLAS Cron Jobs:/home/clascron:/bin/tcsh&lt;br /&gt;
 clasboot:x:6000:146:Boot Scripts Only:/home/clasboot:/bin/tcsh&lt;br /&gt;
 clasmail:x:6003:146:CLAS Automated Mail:/home/clasmail:/bin/tcsh&lt;br /&gt;
 epics:x:5001:146:EPICS Account:/home/epics:/bin/tcsh&lt;br /&gt;
 nagios:x:6246:9997:Nagios:/home/nagios:/bin/tcsh&lt;br /&gt;
 +@clon_cluster::::::&lt;br /&gt;
 +@ccc::::::&lt;br /&gt;
&lt;br /&gt;
Add following in the end of &#039;&#039;/etc/group&#039;&#039;:&lt;br /&gt;
 onliners::9998:heyes,hujl,rwm,timmer,wolin,taylorw,cuevas,abbottd,abulafia,anciant,anghi,aswin,auger,avakian,banta,barrow,battagli,bjlee,bogdan,brooksw,bruhwel,boiarino,buckle,burchesk,burin,bzh,cetina,chen,cole,cords,corvi,costy,davidl,costy,davidl,dcarter,dcurry,dennisl,deppman,dhlee,doughty,drago,dytman,dugger,dugger,elton,fedro,ficenec,fklein,france,freyberg,gholden,gilfoyle,golovach,gurjyan,haddock,heddle,jenkins,jhardie,jmorris,kellyk,klusman,kmkim,kossov,lcsmith,longhi,manak,marchand,marki,mastersj,mjohnson,mosbackr,mueller,muguira,murphyl,necaise,odonnell,opper,parkkj,pasyuk,phkim,piot,riccardi,richardt,ripani,rossi,saw,sergpozd,serov,sholt,staylor,taiuti,tang,tedeschi,vineyard,vlassov,vvsap,weygand,wooyoung,burchesk,clasrun,giovanet,clasboot,clascoda,clasroot,clasmail,clascron,trigger,epics,southern,carstens,ccutter,danagu,heyes,huertas,jacobsg,kliv,lachniet,mestayer,primex,hovanes,nerses,sytnik&lt;br /&gt;
 clon::383:clascoda,clascron,clasmail&lt;br /&gt;
 nagios::9997:nagios&lt;br /&gt;
&lt;br /&gt;
Create &#039;&#039;/etc/shadow&#039;&#039; files with entries for users clasrun, epics and nagios (copy from another machine).&lt;br /&gt;
&lt;br /&gt;
Install updates: normally all updates should be installed by now, it can be done manually by commands&lt;br /&gt;
 yum list updates&lt;br /&gt;
 yum update&lt;br /&gt;
&lt;br /&gt;
Configure [[SSH]].&lt;br /&gt;
&lt;br /&gt;
Install missing packages:&lt;br /&gt;
 yum install openmotif-devel xinetd mysql-devel cmake&lt;br /&gt;
&lt;br /&gt;
Some additional packages on request (for EPICS):&lt;br /&gt;
&lt;br /&gt;
 yum install mc lapack lapack-devel blas blas-devel giflib-devel&lt;br /&gt;
&lt;br /&gt;
Proceed to the [[Linux Customization on CLON Cluster]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PROBLEMS&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
1. /usr/lib/libg2c.so link is missing&lt;br /&gt;
&lt;br /&gt;
FIXED ??? 2. /usr/lib/libXm.so link is missing&lt;br /&gt;
&lt;br /&gt;
3. Created /etc/shadow file for clasrun, epics and nagios&lt;br /&gt;
&lt;br /&gt;
== RHEL4 ==&lt;br /&gt;
&lt;br /&gt;
Get RHEL4 CDs from Paul Letta.&lt;br /&gt;
&lt;br /&gt;
Connect terminal, keyboard and mouse.&lt;br /&gt;
&lt;br /&gt;
Boot from CD1. Follow instructions. When asked, choose following options:&lt;br /&gt;
&lt;br /&gt;
* Choose &#039;Manually partition with Disk Druid&#039;, set /boot to 100MB, then / to 40GB, then swap to 8192MB or at least double memory size. The rest of disk can be set as /space.&lt;br /&gt;
&lt;br /&gt;
* Network: choose manually, type clonpc2.jlab.org; click &#039;EDIT&#039;, deactivate &#039;Configure using DHCP&#039;,&lt;br /&gt;
type IP address and netmask (255.255.255.0), click Ok.&lt;br /&gt;
Type Gateway (for example 129.57.167.99) and 3 DNS servers (129.57.167.5,129.57.167.14,129.57.32.100).&lt;br /&gt;
&lt;br /&gt;
* Choose &#039;No firewall&#039;&lt;br /&gt;
&lt;br /&gt;
* Disable &#039;SELinux&#039;&lt;br /&gt;
&lt;br /&gt;
* Choose &#039;Customize software packages to be installed&#039;, click &#039;Everything&#039;.&lt;br /&gt;
&lt;br /&gt;
You will be asked to install CD2, CD3 and CD4, then CD1 again.&lt;br /&gt;
Then you will be asked to click &#039;Reboot&#039;. First remove CD, then click &#039;Reboot&#039;.&lt;br /&gt;
You will be asked few more questions. When asked to activate service, choose&lt;br /&gt;
&#039;Tell me why I need to register ..&#039; and click &#039;Next&#039;. Choose &#039;I can not complete registration ..&#039;&lt;br /&gt;
and click &#039;Next&#039;. You will see &#039;System user&#039; screen, click &#039;Use network login..&#039;.&lt;br /&gt;
Choose &#039;Enable NIS support&#039; and click &#039;Configure NIS&#039;. Type NIS Domain: &#039;CCCHP&#039; and NIS Server: clon00.jlab.org.&lt;br /&gt;
Finish installation process.&lt;br /&gt;
&lt;br /&gt;
* fix files &#039;&#039;/etc/passwd&#039;&#039;, &#039;&#039;/etc/shadow&#039;&#039; and &#039;&#039;/etc/group&#039;&#039; adding clasrun etc (see examples on another machines).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: if machine has multiple network ports, Linux may not assign them properly to specified IP names and addresses. If problem occures, open network GUI and delete all existing records. After that, click &#039;&#039;New&#039;&#039; and pick hadrware port you want to configure from the list of available ports (tricky part is to know which RJ-45 connector corresponds to which port ..). Configure and activate it, make sure it works. Repeat for other ports. Results will be stored in directory &#039;&#039;/etc/sysconfig/network-scripts&#039;&#039;, file names will be &#039;&#039;ifcfg-eth0&#039;&#039;, &#039;&#039;ifcfg-eth1&#039;&#039; etc. If modifying those files manually, restart network by &#039;&#039;/etc/init.d/network restart&#039;&#039;. Finally, set routing, for example for &#039;&#039;clonmon&#039;&#039; command &#039;&#039;route -n&#039;&#039; shows following:&lt;br /&gt;
 Kernel IP routing table&lt;br /&gt;
 Destination     Gateway         Genmask         Flags Metric Ref    Use Iface&lt;br /&gt;
 129.57.160.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1&lt;br /&gt;
 129.57.68.0     0.0.0.0         255.255.255.0   U     0      0        0 eth3&lt;br /&gt;
 129.57.69.0     0.0.0.0         255.255.255.0   U     0      0        0 dev5937&lt;br /&gt;
 129.57.64.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0&lt;br /&gt;
 169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth3&lt;br /&gt;
 0.0.0.0         129.57.68.100   0.0.0.0         UG    0      0        0 eth3&lt;br /&gt;
Run following commands:&lt;br /&gt;
 /sbin/route add -net 129.57.160.0 netmask 255.255.255.0 gw 129.57.160.5 dev eth1&lt;br /&gt;
 /sbin/route add -net 129.57.68.0 netmask 255.255.255.0 gw 129.57.68.26 dev eth3&lt;br /&gt;
 /sbin/route add -net 129.57.69.0 netmask 255.255.255.0 gw 129.57.69.206 dev dev5937&lt;br /&gt;
 /sbin/route add -net 129.57.64.0 netmask 255.255.255.0 gw 129.57.64.57 dev eth0&lt;br /&gt;
Now &#039;&#039;route -n&#039;&#039; shows following:&lt;br /&gt;
 Kernel IP routing table&lt;br /&gt;
 Destination     Gateway         Genmask         Flags Metric Ref    Use Iface&lt;br /&gt;
 129.57.160.0    129.57.160.5    255.255.255.0   UG    0      0        0 eth1&lt;br /&gt;
 129.57.160.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1&lt;br /&gt;
 129.57.68.0     129.57.68.26    255.255.255.0   UG    0      0        0 eth3&lt;br /&gt;
 129.57.68.0     0.0.0.0         255.255.255.0   U     0      0        0 eth3&lt;br /&gt;
 129.57.69.0     129.57.69.206   255.255.255.0   UG    0      0        0 dev5937&lt;br /&gt;
 129.57.69.0     0.0.0.0         255.255.255.0   U     0      0        0 dev5937&lt;br /&gt;
 129.57.64.0     129.57.64.57    255.255.255.0   UG    0      0        0 eth0&lt;br /&gt;
 129.57.64.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0&lt;br /&gt;
 169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth3&lt;br /&gt;
 0.0.0.0         129.57.68.100   0.0.0.0         UG    0      0        0 eth3&lt;br /&gt;
In that example automount will do configured using &#039;&#039;clonmon-daq1&#039;&#039; interface, because default &#039;&#039;clonmon&#039;&#039; interface is on external subnet. To make that routing table permanent (retore it after reboot) I tried to add four files with following contents to the &#039;&#039;/etc/sysconfig/network-scripts&#039;&#039; directory:&lt;br /&gt;
 route-eth1:&lt;br /&gt;
   GATEWAY0=129.57.160.5&lt;br /&gt;
   NETMASK0=255.255.255.0&lt;br /&gt;
   ADDRESS0=129.57.160.0&lt;br /&gt;
 route-eth3:&lt;br /&gt;
   GATEWAY0=129.57.68.26&lt;br /&gt;
   NETMASK0=255.255.255.0&lt;br /&gt;
   ADDRESS0=129.57.68.0&lt;br /&gt;
 route-dev5937:&lt;br /&gt;
   GATEWAY0=129.57.69.206&lt;br /&gt;
   NETMASK0=255.255.255.0&lt;br /&gt;
   ADDRESS0=129.57.69.0&lt;br /&gt;
 route-eth0:&lt;br /&gt;
   GATEWAY0=129.57.64.57&lt;br /&gt;
   NETMASK0=255.255.255.0&lt;br /&gt;
   ADDRESS0=129.57.64.0&lt;br /&gt;
It did not worked. Then I added four &#039;&#039;/sbin/route add ..&#039;&#039; lines to &#039;&#039;/etc/rc.local&#039;&#039; script, and it worked.&lt;br /&gt;
&lt;br /&gt;
From now on you can use remote &#039;ssh&#039; connection.&lt;br /&gt;
&lt;br /&gt;
* To configure your system to use the patch server, issue the following commands as root:&lt;br /&gt;
 # mount jlabsite:/site /mnt&lt;br /&gt;
 # /mnt/CC/linux/satellite-connect --patchall&lt;br /&gt;
The script will prompt you for an activation key, but if you don&#039;t know what this is, just hit ENTER and it will use a sensible default.  Depending on how many patches need to be applied to your system to bring it up to the current level, this script may take a very long time to run.  When it finishes, you should reboot your machine to make the new patches take effect.&lt;br /&gt;
&lt;br /&gt;
To install updates later run &#039;&#039;up2date -uf&#039;&#039; as &#039;&#039;root&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Configure [[SSH]].&lt;br /&gt;
&lt;br /&gt;
* Proceed with [[Linux Customization on CLON Cluster]] if applicable.&lt;br /&gt;
&lt;br /&gt;
To boot Linux in single user mode (no graphics), add &#039;&#039;single&#039;&#039; to the end of boot line during boot process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;background info&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Add startup script&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Create script in &#039;&#039;/etc/init.d/&#039;&#039; directory (use existing scripts as example). Must have a line like&lt;br /&gt;
 # chkconfig:	- 91 09&lt;br /&gt;
which specifies start and stop order. Run commands&lt;br /&gt;
 chkconfig --add &amp;lt;scriptname&amp;gt;&lt;br /&gt;
 chkconfig --level 3 &amp;lt;scriptname&amp;gt; on&lt;br /&gt;
for every level you want that script to be executed (usualy 3 and/or 4 and/or 5). Check if it os done using command&lt;br /&gt;
 chkconfig --list | grep &amp;lt;scriptname&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;xxx&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can choose to download the RHEL operating system directly from the Red Hat Web site and not receive a media kit from HP containing the software. This scenario occurs when the media option AJR is deselected from the order. (The media kit option is always selected by default. )&lt;br /&gt;
&lt;br /&gt;
It is necessary to register at the Red Hat Web site prior to download. Registration requires the activation code that each customer receives from HP when ordering either RHEL.&lt;br /&gt;
&lt;br /&gt;
You can download RHEL for each available platform as four CD ISO images or one DVD ISO image.&lt;br /&gt;
&lt;br /&gt;
Use the following procedure to download RHEL and create the installation media:&lt;br /&gt;
&lt;br /&gt;
   1.&lt;br /&gt;
&lt;br /&gt;
      Register and log in at the following Red Hat Web site:&lt;br /&gt;
&lt;br /&gt;
      www.redhat.com/rhn&lt;br /&gt;
   2.&lt;br /&gt;
&lt;br /&gt;
      Click on channels and then select Red Hat Enterprise Linux ES (v.4 for 64–bit Intel Itanium).&lt;br /&gt;
   3.&lt;br /&gt;
&lt;br /&gt;
      Select Downloads and then download the ISO images of install, compatibility and source disks&lt;br /&gt;
&lt;br /&gt;
      Files with ia64 in the name are for the Itanium platform.&lt;br /&gt;
   4.&lt;br /&gt;
&lt;br /&gt;
      Create the CDs or a DVD from the ISO images.&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
	IMPORTANT: Create the CDs or DVD using the contents of the ISO images. Do not create the CDs or DVD by burning the .iso files themselves to CD or DVD. For example, if you are using K3b to burn a CD, click Tools&amp;gt;CD&amp;gt;Burn CD Image, select the .iso image, then click Burn.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bootup scripts&#039;&#039;&#039; for example for level 5 execution (multiuser with X):&lt;br /&gt;
&lt;br /&gt;
 cp &amp;lt;script-file&amp;gt; /etc/init.d/&lt;br /&gt;
 chmod +x /etc/init.d/&amp;lt;script-file&amp;gt;&lt;br /&gt;
 ln -s /etc/init.d/&amp;lt;scriptfile&amp;gt; /etc/rc.d/rc5.d/S50&amp;lt;scriptfile&amp;gt;&lt;br /&gt;
 ln -s /etc/init.d/&amp;lt;scriptfile&amp;gt; /etc/rc.d/rc5.d/K50&amp;lt;scriptfile&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changing hostname/IP address&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 Changing hostname on RHEL&lt;br /&gt;
 1. Change the HOSTNAME line in /etc/sysconfig/network&lt;br /&gt;
 2. Change the hostname (FQDN and alias) in /etc/hosts&lt;br /&gt;
 3. Run &#039;/bin/hostname new_hostname&#039; for the hostname change to take effect immediately.&lt;br /&gt;
 4. Run &#039;/sbin/service syslog restart&#039; for syslog to log using the new hostname.&lt;br /&gt;
 A reboot is not required to change the system hostname.&lt;br /&gt;
&lt;br /&gt;
 IP address: You have to change the IP address entry in&lt;br /&gt;
 /etc/sysconfig/network-scripts/ifcfg-eth0.&lt;/div&gt;</summary>
		<author><name>Boiarino</name></author>
	</entry>
	<entry>
		<id>https://clonwiki0.jlab.org/wiki/index.php?title=Linux_Installation_Procedure&amp;diff=8701</id>
		<title>Linux Installation Procedure</title>
		<link rel="alternate" type="text/html" href="https://clonwiki0.jlab.org/wiki/index.php?title=Linux_Installation_Procedure&amp;diff=8701"/>
		<updated>2026-02-10T22:31:31Z</updated>

		<summary type="html">&lt;p&gt;Boiarino: /* Dell servers hardware trick(s) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Dell servers hardware trick(s) ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;!!! if BIOS date/time is incorrect, it may prevent redhat subscription to work. If BIOS does not remember time setting after power unplugged, on-board battery may need to be replaced&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* if looks dead, remove the power cords, then held in the on button for 30 seconds; then plug it back in and it may boots up fine - known Dell feature&lt;br /&gt;
&lt;br /&gt;
== ARM (CentsOS7) ==&lt;br /&gt;
&lt;br /&gt;
See [[yum]] for specifics.&lt;br /&gt;
&lt;br /&gt;
 yum install xauth wget bzip2 xterm expat-devel libX11-devel libXpm-devel motif-devel mariadb-devel&lt;br /&gt;
&lt;br /&gt;
== RHEL9 (64 bit) ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: select installation type &#039;&#039;&#039;H&#039;&#039;&#039;, then type &#039;&#039;&#039;B&#039;&#039;&#039;.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: during custom disk partitioning, select &#039;Standard&#039; for every partition, if you want it to be standard, or &#039;Raid&#039; if applicable&lt;br /&gt;
&lt;br /&gt;
Set root password (see instractions below), if you want to become superuser by typing just &#039;&#039;su&#039;&#039;. If becoming superuser by typing &#039;&#039;sudo su&#039;&#039; is good enough, do nothing (in that case graphics will not work in superuser mode).&lt;br /&gt;
&lt;br /&gt;
Install useful pachages:&lt;br /&gt;
 yum install ncdu mysql&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: graphic screen is disabled, run following command as root:&lt;br /&gt;
 systemctl set-default graphical.target&lt;br /&gt;
&lt;br /&gt;
== RHEL9 (64 bit) - for machine NOT under puppet control ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: select installation type &#039;&#039;&#039;D&#039;&#039;&#039; (not &#039;&#039;&#039;S&#039;&#039;&#039;, otherwise it will not be level 2 server)&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: during custom disk partitioning, select &#039;Standard&#039; for every partition, if you want it to be standard, or &#039;Raid&#039; if applicable&lt;br /&gt;
&lt;br /&gt;
When installation complete, ssh as authorized user and do following:&lt;br /&gt;
&lt;br /&gt;
 sudo yum install emacs&lt;br /&gt;
 cd /etc&lt;br /&gt;
 sudo chmod a+rw shadow&lt;br /&gt;
 sudo emacs shadow&lt;br /&gt;
&lt;br /&gt;
Copy to /etc/shadow root and other needed passwords from another clon machine. &lt;br /&gt;
&lt;br /&gt;
 sudo chmod a-rw shadow&lt;br /&gt;
&lt;br /&gt;
After that, type &#039;&#039;su&#039;&#039; to become superuser. All following settings can be done now without typing &#039;&#039;sudo&#039;&#039; every time. You still will not be able to ssh remotely as root - always ssh as authorized user and type &#039;&#039;su&#039;&#039; to become root.&lt;br /&gt;
&lt;br /&gt;
Update /etc/passwd and /etc/group using another clon machine as example.&lt;br /&gt;
&lt;br /&gt;
 yum install expat-devel libXaw-devel mysql-devel motif-devel ncurses-devel apr-devel net-snmp-utils&lt;br /&gt;
 yum install xorg-x11-utils # for xprop/xwininfo/etc creg stuff&lt;br /&gt;
 yum install s-nail # for /usr/bin/mail&lt;br /&gt;
 yum install ncdu&lt;br /&gt;
 yum install libconfig-devel # recent addition for CODA libraries&lt;br /&gt;
&lt;br /&gt;
To be able to ssh to old machines (like vme controllers under CentOS5), run following as root:&lt;br /&gt;
&lt;br /&gt;
 update-crypto-policies --set LEGACY&lt;br /&gt;
&lt;br /&gt;
and then probably reboot, not sure.&lt;br /&gt;
&lt;br /&gt;
Somebody mentioned also adding &#039;&#039;RequiredRSASize 1024&#039;&#039; to a config file in &#039;&#039;/etc/ssh/ssh_config.d/&#039;&#039;, but I did not do it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    Note: this changes all daemons and system settings and is a bit overkill if you only need to adjust the settings for ssh and sshd.&lt;br /&gt;
&lt;br /&gt;
    Exclude (only) sshd from the system-wide cryptographic policy. You opt-out by editing /etc/sysconfig/sshd and uncommenting the line # CRYPTO_POLICY= , (if necessary you can then adjust adjust /etc/ssh/sshd_config and add legacy crypto settings) and restart the ssh daemon.&lt;br /&gt;
&lt;br /&gt;
For the ssh command line client on the RHEL 9 system: you&#039;re recommended to edit ˜/.ssh/config and override the modern/secure system wide ssh client defaults by adding a Host entry that adds support for suitable legacy encryption options for that particular host:&lt;br /&gt;
&lt;br /&gt;
#    ˜/.ssh/config&lt;br /&gt;
&lt;br /&gt;
Host rhel6.example.com&lt;br /&gt;
  KexAlgorithms +diffie-hellman-group14-sha1&lt;br /&gt;
  MACs +hmac-sha1&lt;br /&gt;
  HostKeyAlgorithms +ssh-rsa&lt;br /&gt;
  PubkeyAcceptedKeyTypes +ssh-rsa&lt;br /&gt;
  PubkeyAcceptedAlgorithms +ssh-rsa&lt;br /&gt;
&lt;br /&gt;
Prepare auto-mounting directories:&lt;br /&gt;
&lt;br /&gt;
 cd /&lt;br /&gt;
 mv apps apps.orig&lt;br /&gt;
 mv home home.orig&lt;br /&gt;
 mv scratch scratch.orig&lt;br /&gt;
 mv work work.orig&lt;br /&gt;
 mkdir apps&lt;br /&gt;
 mkdir home&lt;br /&gt;
 mkdir scratch&lt;br /&gt;
 mkdir work&lt;br /&gt;
 mkdir logs&lt;br /&gt;
 cd /usr&lt;br /&gt;
 mv local local.orig&lt;br /&gt;
 mkdir local&lt;br /&gt;
 mkdir clas&lt;br /&gt;
 mkdir clas12&lt;br /&gt;
 mkdir downloads&lt;br /&gt;
 cd&lt;br /&gt;
&lt;br /&gt;
== RHEL8 (64 bit) ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; to boot from USB stick, insert USB stick, turn machine ON holding F2, and in BIOS Boot Configuration, set Enable Security Boot to OFF, save and exit, holding F2. When in BIOS again, in Boot Configuration make &#039;&#039;UEFI PHY USB ...&#039;&#039; first in boot sequence, local hard drive second, disable all other boot options, save and exit. Do NOT hold F2, Linux installation from USB stick will start. &#039;&#039;&#039;IMPORTANT:&#039;&#039;&#039; when asked about D/S options (very first question in installation process), &#039;&#039;&#039;REMOVE USB STICK BEFORE ANSWERING QUESTION ABOUT DESKTOP/SERVER&#039;&#039;&#039;, otherwise it will be destroyed by following installation steps !!!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; to disable/enable puppet, do following as root: &lt;br /&gt;
 puppet agent --disable &amp;quot;temporary&amp;quot;&lt;br /&gt;
 puppet agent --enable&lt;br /&gt;
&lt;br /&gt;
 yum install emacs&lt;br /&gt;
 yum install xorg-x11-fonts-misc&lt;br /&gt;
&lt;br /&gt;
Move and create some directories in preparation for automounts:&lt;br /&gt;
&lt;br /&gt;
 cd /&lt;br /&gt;
 mv apps apps.orig&lt;br /&gt;
 mv home home.orig&lt;br /&gt;
 mv scratch scratch.orig&lt;br /&gt;
 mkdir apps&lt;br /&gt;
 mkdir home&lt;br /&gt;
 mkdir scratch&lt;br /&gt;
 mkdir work&lt;br /&gt;
 mkdir logs&lt;br /&gt;
 cd /usr&lt;br /&gt;
 mv local local.orig&lt;br /&gt;
 mkdir local&lt;br /&gt;
 mkdir clas&lt;br /&gt;
 mkdir clas12&lt;br /&gt;
 mkdir downloads&lt;br /&gt;
 cd&lt;br /&gt;
&lt;br /&gt;
Add line &#039;&#039;&#039;+dir:/etc/auto.master.d&#039;&#039;&#039; to &#039;&#039;/etc/auto.master&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Create file &#039;&#039;/etc/auto.master.d/direct.autofs&#039;&#039; with the line &#039;&#039;&#039;/- /etc/auto.direct&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Create file &#039;&#039;/etc/auto.direct&#039;&#039; with the following contents:&lt;br /&gt;
&lt;br /&gt;
 # machine-dependent system directories&lt;br /&gt;
 /apps                 -rw,bg     clonfs1:/vol/apps/RHEL8_x86_64&lt;br /&gt;
 /usr/local            -rw,bg     clonfs1:/vol/local/RHEL8_x86_64&lt;br /&gt;
 # machine-independent system directories&lt;br /&gt;
 /home                 -rw,bg     clonfs1:/vol/home&lt;br /&gt;
 #/work                 -rw,bg     clonfs1-old:/vol/work&lt;br /&gt;
 /scratch              -rw,bg     clonfs1:/vol/scratch&lt;br /&gt;
 # machine-independent clas directories&lt;br /&gt;
 /usr/downloads        -rw,bg     clonfs1:/vol/downloads&lt;br /&gt;
 /usr/clas             -rw,bg     clonfs1:/vol/clas&lt;br /&gt;
 /usr/clas12           -rw,bg     clonfs1:/vol/clas12&lt;br /&gt;
 # Used for data storage before shipping to tape&lt;br /&gt;
 #/logs                 -rw,bg     clonfs1-old:/vol/logs&lt;br /&gt;
&lt;br /&gt;
Restart autofs:&lt;br /&gt;
&lt;br /&gt;
 service autofs reload&lt;br /&gt;
 service autofs restart&lt;br /&gt;
&lt;br /&gt;
Remove from the end of the &#039;&#039;/etc/passwd&#039;&#039; line &#039;&#039;&#039;+::::::&#039;&#039;&#039;, and add following:&lt;br /&gt;
&lt;br /&gt;
 hpsrun:x:8796:9998:hpsrun Account:/home/hpsrun:/bin/tcsh&lt;br /&gt;
 clasrun:x:2508:9998:Online DAQ:/home/clasrun:/bin/tcsh&lt;br /&gt;
 clasioc:x:6008:9998:CLAS IOCs:/home/clasioc:/bin/tcsh&lt;br /&gt;
 clas12run:x:6007:146:clas12run Account:/home/clas12run:/bin/tcsh&lt;br /&gt;
 clascron:x:3888:146:CLAS Cron Jobs:/home/clascron:/bin/tcsh&lt;br /&gt;
 clasboot:x:6000:146:Boot Scripts Only:/home/clasboot:/bin/tcsh&lt;br /&gt;
 clasmail:x:6003:146:CLAS Automated Mail:/home/clasmail:/bin/tcsh&lt;br /&gt;
 epics:x:5001:146:EPICS Account:/home/epics:/bin/tcsh&lt;br /&gt;
 nagios:x:6246:9997:Nagios:/home/nagios:/bin/tcsh&lt;br /&gt;
 +@clon_cluster::::::&lt;br /&gt;
 +sshd::::::&lt;br /&gt;
 +::::::/bin/false&lt;br /&gt;
&lt;br /&gt;
Update &#039;&#039;/etc/shadow&#039;&#039;, adding passwords for local accounts (copy it from another machine).&lt;br /&gt;
&lt;br /&gt;
Add following to &#039;&#039;/etc/group&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 clon:x:383:clascron&lt;br /&gt;
 onliners:x:9998:abbottd,avakian,baltzell,battagli,brooksw,bruhwel,boiarino,carman,chen,clasboot,clascron,clasrun,cole,cuevas,davidl,danagu,dugger,elton,epics,fklein,gilfoyle,giovanet,golovach,gurjyan,heddle,heyes,hovanes,jacobsg,jenkins,kliv,lcsmith,marki,mestayer,nerses,parkkj,pasyuk,primex,ripani,rossi,saw,staylor,sytnik,taiuti,taylorw,timmer,wooyoung&lt;br /&gt;
&lt;br /&gt;
== RHEL7 (64 bit) ==&lt;br /&gt;
&lt;br /&gt;
Installed using DVD provided by Computer Center, currently RHEL7.3. Requires MAC address to be registered with Computer Center (using jnet.jlab.org as &#039;boiarino&#039;) because it is network-based installation. On DELL servers, hold F2 after power on and go to &#039;Device Settings&#039; to see mac address. Remember machine memory size as well, will needed when create partitions, find it in &#039;System BIOS -&amp;gt; Memory Settings&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: all disks will be reformatted in a process, all information will be lost !&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dialog:&lt;br /&gt;
&lt;br /&gt;
* boot: &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Please enter the hostname of this system: &amp;lt;hostname&amp;gt; &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* What type of system are you building? (D)esktop: &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Is this a CUE level 1 or CUE level 2 System build (1/2): 2 &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Please enter the System Admin&#039;s CUE username: boiarino &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Do you want to use the default partitioning scheme (y/n)? n &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Are you sure you want to use your own partitioning scheme (y/n)? y &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Choose &#039;Standard Partition&#039; scheme and create following partitions: /boot - 1GB, swap - double memory size, / - the rest of space.&lt;br /&gt;
&lt;br /&gt;
Installation will proceed. When prompted, remove installation disk and reboot machine if not done automatically.&lt;br /&gt;
&lt;br /&gt;
After reboot patching process will be started and it will take a while, do not interrupt it, otherwise system will not be installed correctly.&lt;br /&gt;
&lt;br /&gt;
When machine reboots for the last time, ask Paul Letta to set usual hallb root password. From now on remote root access is possible. Alternatively, user &#039;&#039;boiarino&#039;&#039; can execute most of actions using &#039;&#039;sudo&#039;&#039;,&lt;br /&gt;
like &#039;&#039;sudo emacs&#039;&#039; for protected files. &#039;&#039;sudo reboot&#039;&#039; etc.&lt;br /&gt;
&lt;br /&gt;
Go to /boot/grub2 and modify file grub.cfg, Linux kernel boot options, adding options &#039;&#039;net.ifnames=0 biosdevname=0&#039;&#039;, so your boot string has following section:&lt;br /&gt;
&lt;br /&gt;
 ..... rhgb net.ifnames=0 biosdevname=0 quiet .....&lt;br /&gt;
&lt;br /&gt;
so whole line looks something like this:&lt;br /&gt;
&lt;br /&gt;
 linux16 /vmlinuz-3.10.0-327.18.2.el7.x86_64 root=UUID=b5d1b5ad-e3f6-4db4-8972-aa9c1a91d116 ro vconsole.keymap=us crashkernel=auto  vconsole.font=latarcyrheb-sun16 rhgb net.ifnames=0 biosdevname=0 quiet LANG=en_US.UTF-8&lt;br /&gt;
&lt;br /&gt;
Reboot machine, ethernet ports must be named &#039;&#039;eth0&#039;&#039;, &#039;&#039;eth1&#039;&#039; etc.&lt;br /&gt;
&lt;br /&gt;
To update manually, use commands &#039;&#039;yum list updates&#039;&#039; and &#039;&#039;yum update&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; add machine to the appropriate &#039;&#039;&#039;puppet&#039;&#039;&#039; group, it will do all following automatically (hopefully).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; on RHEL7.9, RPM EPEL REPO is not enabled by default, which prevents from installing nload, itcl, itk etc. To bring it back, it can be copied it from older machine, for example:&lt;br /&gt;
&lt;br /&gt;
 cd /etc/yum.repos.d&lt;br /&gt;
 scp clondaq7:/etc/yum.repos.d/epel.repo .&lt;br /&gt;
 cd /etc/pki/rpm-gpg&lt;br /&gt;
 scp clondaq7:/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 .&lt;br /&gt;
&lt;br /&gt;
Alternatively, following can be used to add repo&#039;s:&lt;br /&gt;
&lt;br /&gt;
 subscription-manager repos --enable &amp;lt;repo_id&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In particular, following have to be enabled to get nload, xpdf, python-alembic, tix, itcl, itk etc:&lt;br /&gt;
&lt;br /&gt;
 subscription-manager repos --enable JLab_EPEL_EPEL_7&lt;br /&gt;
 subscription-manager repos --enable rhel-7-workstation-optional-rpms&lt;br /&gt;
&lt;br /&gt;
Repo ID&#039;s can be obtained by:&lt;br /&gt;
&lt;br /&gt;
 subscription-manager repos --list&lt;br /&gt;
&lt;br /&gt;
Installed repo&#039;s can be seen by:&lt;br /&gt;
&lt;br /&gt;
 yum repolist&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Yum updates&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Edit the &#039;&#039;/etc/yum.conf&#039;&#039; file and add the following line to force installation of the 32bit and 64bit libraries:&lt;br /&gt;
&lt;br /&gt;
 multilib_policy=all&lt;br /&gt;
&lt;br /&gt;
Install following packages:&lt;br /&gt;
&lt;br /&gt;
 yum install xterm mesa-dri-drivers telnet rsh readline-devel net-snmp-utils tigervnc-server tigervnc xpdf nload mariadb-devel libxml2-devel glibc-devel qt-devel python-alembic openssl-devel apr-devel&lt;br /&gt;
 yum install libconfig-devel # recent addition for CODA libraries&lt;br /&gt;
&lt;br /&gt;
Fonts for EPICS EDMs:&lt;br /&gt;
&lt;br /&gt;
 yum install xorg-x11-fonts-75dpi xorg-x11-fonts-ISO8859-1-75dpi bitmap-miscfixed-fonts&lt;br /&gt;
 yum install bitmap-console-fonts bitmap-fixed-fonts bitmap-lucida-typewriter-fonts&lt;br /&gt;
 ln -s  /usr/share/X11/fonts/100dpi /etc/X11/fontpath.d/xorg-x11-fonts-100dpi:pri=60&lt;br /&gt;
 ln -s  /usr/share/X11/fonts/75dpi /etc/X11/fontpath.d/xorg-x11-fonts-75dpi:pri=50&lt;br /&gt;
 ln -s  /usr/share/X11/fonts/misc /etc/X11/fontpath.d/xorg-x11-fonts-misc:pri=40&lt;br /&gt;
 ln -s  /usr/share/fonts/bitmap /etc/X11/fontpath.d/bitmap-fonts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Do following to be able to compile and run 32-bit apps on 64-bit machine (for compatibility with 32bit applications):&lt;br /&gt;
&lt;br /&gt;
 yum install libXpm-devel libXaw-devel motif-devel glibc-devel ncurses-devel readline-devel&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Modify file &#039;&#039;/etc/passwd&#039;&#039; adding following:&lt;br /&gt;
&lt;br /&gt;
 hpsrun:x:8796:9998:hpsrun Account:/home/hpsrun:/bin/tcsh&lt;br /&gt;
 clasrun:x:2508:9998:Online DAQ:/home/clasrun:/bin/tcsh&lt;br /&gt;
 clasioc:x:6008:9998:CLAS IOCs:/home/clasioc:/bin/tcsh&lt;br /&gt;
 clas12run:x:6007:146:clas12run Account:/home/clas12run:/bin/tcsh&lt;br /&gt;
 clascron:x:3888:146:CLAS Cron Jobs:/home/clascron:/bin/tcsh&lt;br /&gt;
 clasboot:x:6000:146:Boot Scripts Only:/home/clasboot:/bin/tcsh&lt;br /&gt;
 clasmail:x:6003:146:CLAS Automated Mail:/home/clasmail:/bin/tcsh&lt;br /&gt;
 epics:x:5001:146:EPICS Account:/home/epics:/bin/tcsh&lt;br /&gt;
 nagios:x:6246:9997:Nagios:/home/nagios:/bin/tcsh&lt;br /&gt;
 +@clon_cluster::::::&lt;br /&gt;
 +sshd::::::&lt;br /&gt;
 +::::::/bin/false&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: user-related lines must be removed, like&lt;br /&gt;
&lt;br /&gt;
 +boiarino::::::&lt;br /&gt;
&lt;br /&gt;
as well as&lt;br /&gt;
&lt;br /&gt;
 +::::::&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: assumed that following line is in already:&lt;br /&gt;
&lt;br /&gt;
 +@ccc::::::&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: if following line exist, it must be placed in the end, or removed:&lt;br /&gt;
&lt;br /&gt;
 +::::::/bin/false&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Modify file &#039;&#039;/etc/group&#039;&#039; adding following:&lt;br /&gt;
&lt;br /&gt;
 onliners::9998:heyes,hujl,rwm,timmer,wolin,taylorw,cuevas,abbottd,abulafia,anciant,anghi,aswin,auger,avakian,banta,barrow,battagli,bjlee,bogdan,brooksw,bruhwel,boiarino,buckle,burchesk,burin,bzh,cetina,chen,cole,cords,corvi,costy,davidl,costy,davidl,dcarter,dcurry,dennisl,deppman,dhlee,doughty,drago,dytman,dugger,dugger,elton,fedro,ficenec,fklein,france,freyberg,gholden,gilfoyle,golovach,gurjyan,haddock,heddle,jenkins,jhardie,jmorris,kellyk,klusman,kmkim,kossov,lcsmith,longhi,manak,marchand,marki,mastersj,mjohnson,mosbackr,mueller,muguira,murphyl,necaise,odonnell,opper,parkkj,pasyuk,phkim,piot,riccardi,richardt,ripani,rossi,saw,sergpozd,serov,sholt,staylor,taiuti,tang,tedeschi,vineyard,vlassov,vvsap,weygand,wooyoung,burchesk,clasrun,giovanet,clasboot,clascoda,clasroot,clasmail,clascron,trigger,epics,southern,carstens,ccutter,danagu,heyes,huertas,jacobsg,kliv,lachniet,mestayer,primex,hovanes,nerses,sytnik,baltzell,carman&lt;br /&gt;
 clon::383:clascoda,clascron,clasmail&lt;br /&gt;
 nagios::9997:nagios&lt;br /&gt;
&lt;br /&gt;
Modify file &#039;&#039;/etc/shadow&#039;&#039; using an example from another RHEL7 clon machine (clonioc2 etc). Do &#039;&#039;chmod 600 shadow&#039;&#039; before editing and &#039;&#039;chmod 000 shadow&#039;&#039; after.&lt;br /&gt;
&lt;br /&gt;
Make sure file &#039;&#039;/etc/ssh/sshd_config&#039;&#039; has following line uncommented (must be pushed in by CC security scripts):&lt;br /&gt;
&lt;br /&gt;
 ##PermitUserEnvironment yes&lt;br /&gt;
&lt;br /&gt;
NOT NEEDED, DONE IN THE END OF FILE ALREADY !!! Uncomment following in file &#039;&#039;/etc/ssh/ssh_config&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 ##Host *&lt;br /&gt;
 ##ForwardX11 yes&lt;br /&gt;
&lt;br /&gt;
Add line &#039;export NO_AT_BRIDGE=1&#039; to the file &#039;/etc/environment&#039; to suppress annoying messages like &#039;** (emacs:38714): WARNING **: Couldn&#039;t register with accessibility bus: Did not receive a reply.&#039;&lt;br /&gt;
&lt;br /&gt;
If big (&amp;gt;2GB) partition to be formated, do following (for example /dev/sdb):&lt;br /&gt;
&lt;br /&gt;
 parted /dev/sdb&lt;br /&gt;
 (parted) print&lt;br /&gt;
 (parted) mklabel gpt&lt;br /&gt;
 (parted) print&lt;br /&gt;
 mkpart primary 0GB 25855.2GB&lt;br /&gt;
 (parted) print&lt;br /&gt;
 (parted) quit&lt;br /&gt;
&lt;br /&gt;
 mkfs.xfs /dev/sdb1&lt;br /&gt;
&lt;br /&gt;
then create /data and mount it using &#039;&#039;/etc/fstab&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 /dev/sdb1                                 /data                   xfs     defaults        1 2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; sometimes machine can loose NIS connection, then ssh to it becomes intermittent; if it happens ssh as root (may have to try several times) and run command&lt;br /&gt;
&lt;br /&gt;
 ypwhich&lt;br /&gt;
&lt;br /&gt;
to shows NIS server. If it returns nothing check file &#039;&#039;/etc/resolv.conf&#039;&#039;, it must have following (as on July 2019):&lt;br /&gt;
&lt;br /&gt;
 search jlab.org acc.jlab.org&lt;br /&gt;
 nameserver 129.57.90.255&lt;br /&gt;
 nameserver 129.57.32.101&lt;br /&gt;
&lt;br /&gt;
If file is empty or does not contain right info, fix it. After that run command&lt;br /&gt;
&lt;br /&gt;
 ypbind&lt;br /&gt;
&lt;br /&gt;
It should fix a problem. Run &#039;&#039;ypwhich&#039;&#039; to make sure.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Display Setting:&#039;&#039;&#039; if machine is multi-head, goto &#039;&#039;Applications-&amp;gt;System Tools-&amp;gt;Settings-&amp;gt;Devices-&amp;gt;Displays&#039;&#039; and arrange displays.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Proceed to the [[Linux Customization on CLON Cluster]].&lt;br /&gt;
&lt;br /&gt;
== RHEL6 (64 bit) ==&lt;br /&gt;
&lt;br /&gt;
Installed using CD provided by Computer Center. Requires MAC address to be registered with Computer Center (using jnet.jlab.org as &#039;boiarino&#039;) because it is network-based installation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: all disks will be reformatted in a process, all information will be lost !&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dialog:&lt;br /&gt;
&lt;br /&gt;
* boot: &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ...[D]esktop: [use &#039;s&#039; for server, &#039;d&#039; for desktop] &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* root password: enter root password&lt;br /&gt;
&lt;br /&gt;
* admin user: boiarino&lt;br /&gt;
&lt;br /&gt;
Installation will proceed. When prompted, remove installation disk and reboot machine if not done automatically. After reboot patching process will be started and it will take a while, do not interrupt it, otherwise system will not be installed correctly.&lt;br /&gt;
&lt;br /&gt;
To make emacs work, install&lt;br /&gt;
&lt;br /&gt;
 yum install libotf&lt;br /&gt;
&lt;br /&gt;
Edit the /etc/yum.conf file and add the following line to force installation of teh 32bit and 64bit libraries:&lt;br /&gt;
&lt;br /&gt;
 multilib_policy=all&lt;br /&gt;
&lt;br /&gt;
Install following packages:&lt;br /&gt;
&lt;br /&gt;
 yum install openmotif-devel xinetd mysql-devel cmake libXpm-devel net-snmp-utils&lt;br /&gt;
 yum install mesa-libGL-devel mesa-libGLU-devel mesa-libGLw-devel (for OpenGL, needed by ROOT)&lt;br /&gt;
 yum install libXaw-devel (for xterm)&lt;br /&gt;
 yum install expat-devel libgcj-devel (for evio/et)&lt;br /&gt;
&lt;br /&gt;
 yum install compat-libtermcap (for xterm)&lt;br /&gt;
 ln -s /lib/libtermcap.so.2 /usr/lib/libtermcap.so&lt;br /&gt;
 ###ln -s /lib64/libtermcap.so.2 /usr/lib64/libtermcap.so&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Install following fonts for EPICS EDMs:&lt;br /&gt;
&lt;br /&gt;
 yum install xorg-x11-fonts-75dpi xorg-x11-fonts-ISO8859-1-75dpi bitmap-miscfixed-fonts&lt;br /&gt;
 yum install bitmap-console-fonts bitmap-fixed-fonts bitmap-lucida-typewriter-fonts&lt;br /&gt;
 ln -s  /usr/share/X11/fonts/100dpi /etc/X11/fontpath.d/xorg-x11-fonts-100dpi:pri=60&lt;br /&gt;
 ln -s  /usr/share/X11/fonts/75dpi /etc/X11/fontpath.d/xorg-x11-fonts-75dpi:pri=50&lt;br /&gt;
 ln -s  /usr/share/X11/fonts/misc /etc/X11/fontpath.d/xorg-x11-fonts-misc:pri=40&lt;br /&gt;
 ln -s  /usr/share/fonts/bitmap /etc/X11/fontpath.d/bitmap-fonts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; Useful &#039;&#039;yum&#039;&#039; commands:&lt;br /&gt;
&lt;br /&gt;
 yum whatprovides libstdc++.so.5 - show which package contains libstdc++.so.5&lt;br /&gt;
&lt;br /&gt;
== RHEL5 ==&lt;br /&gt;
&lt;br /&gt;
Installed using CD provided by Computer Center. Requires MAC address to be registered with Computer Center (email to helpdesk@jlab.org) because it is network-based installation.&lt;br /&gt;
&lt;br /&gt;
Dialog:&lt;br /&gt;
&lt;br /&gt;
* boot: &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ...[D]esktop: Server (it is ignored, will do Desktop anyway ...)&lt;br /&gt;
&lt;br /&gt;
* root password: enter root password&lt;br /&gt;
&lt;br /&gt;
* system user: &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* manually partition disk: 100MB /boot, 2048 etc MB swap, the rest /.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CFENGINE&#039;&#039;&#039;: there are procesess restoring some system config files (in particular &#039;&#039;/etc/ssh/sshd_config&#039;&#039;) in according to the Computer Center - maintained templete. To shut them down: (1) comment out &#039;&#039;cfengine&#039;&#039;-related stuff in root cronjobs; (2) do &#039;&#039;/etc/init.d/cfengine stop&#039;&#039;; (3) do &#039;&#039;chkconfig cfengine off&#039;&#039;. Ask CC (Sherman White, Paul Letta) to fix templete.&lt;br /&gt;
&lt;br /&gt;
Run &#039;&#039;/usr/bin/system-config-authentication&#039;&#039; and set NIS servers list as &#039;&#039;clon00,clon10,nis1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Add following in the end of &#039;&#039;/etc/passwd&#039;&#039;:&lt;br /&gt;
 clasrun:x:2508:9998:Online DAQ:/home/clasrun:/bin/tcsh&lt;br /&gt;
 clas12run:x:6007:146:clas12run Account:/home/clas12run:/bin/tcsh&lt;br /&gt;
 clascron:x:6005:146:CLAS Cron Jobs:/home/clascron:/bin/tcsh&lt;br /&gt;
 clasboot:x:6000:146:Boot Scripts Only:/home/clasboot:/bin/tcsh&lt;br /&gt;
 clasmail:x:6003:146:CLAS Automated Mail:/home/clasmail:/bin/tcsh&lt;br /&gt;
 epics:x:5001:146:EPICS Account:/home/epics:/bin/tcsh&lt;br /&gt;
 nagios:x:6246:9997:Nagios:/home/nagios:/bin/tcsh&lt;br /&gt;
 +@clon_cluster::::::&lt;br /&gt;
 +@ccc::::::&lt;br /&gt;
&lt;br /&gt;
Add following in the end of &#039;&#039;/etc/group&#039;&#039;:&lt;br /&gt;
 onliners::9998:heyes,hujl,rwm,timmer,wolin,taylorw,cuevas,abbottd,abulafia,anciant,anghi,aswin,auger,avakian,banta,barrow,battagli,bjlee,bogdan,brooksw,bruhwel,boiarino,buckle,burchesk,burin,bzh,cetina,chen,cole,cords,corvi,costy,davidl,costy,davidl,dcarter,dcurry,dennisl,deppman,dhlee,doughty,drago,dytman,dugger,dugger,elton,fedro,ficenec,fklein,france,freyberg,gholden,gilfoyle,golovach,gurjyan,haddock,heddle,jenkins,jhardie,jmorris,kellyk,klusman,kmkim,kossov,lcsmith,longhi,manak,marchand,marki,mastersj,mjohnson,mosbackr,mueller,muguira,murphyl,necaise,odonnell,opper,parkkj,pasyuk,phkim,piot,riccardi,richardt,ripani,rossi,saw,sergpozd,serov,sholt,staylor,taiuti,tang,tedeschi,vineyard,vlassov,vvsap,weygand,wooyoung,burchesk,clasrun,giovanet,clasboot,clascoda,clasroot,clasmail,clascron,trigger,epics,southern,carstens,ccutter,danagu,heyes,huertas,jacobsg,kliv,lachniet,mestayer,primex,hovanes,nerses,sytnik&lt;br /&gt;
 clon::383:clascoda,clascron,clasmail&lt;br /&gt;
 nagios::9997:nagios&lt;br /&gt;
&lt;br /&gt;
Create &#039;&#039;/etc/shadow&#039;&#039; files with entries for users clasrun, epics and nagios (copy from another machine).&lt;br /&gt;
&lt;br /&gt;
Install updates: normally all updates should be installed by now, it can be done manually by commands&lt;br /&gt;
 yum list updates&lt;br /&gt;
 yum update&lt;br /&gt;
&lt;br /&gt;
Configure [[SSH]].&lt;br /&gt;
&lt;br /&gt;
Install missing packages:&lt;br /&gt;
 yum install openmotif-devel xinetd mysql-devel cmake&lt;br /&gt;
&lt;br /&gt;
Some additional packages on request (for EPICS):&lt;br /&gt;
&lt;br /&gt;
 yum install mc lapack lapack-devel blas blas-devel giflib-devel&lt;br /&gt;
&lt;br /&gt;
Proceed to the [[Linux Customization on CLON Cluster]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PROBLEMS&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
1. /usr/lib/libg2c.so link is missing&lt;br /&gt;
&lt;br /&gt;
FIXED ??? 2. /usr/lib/libXm.so link is missing&lt;br /&gt;
&lt;br /&gt;
3. Created /etc/shadow file for clasrun, epics and nagios&lt;br /&gt;
&lt;br /&gt;
== RHEL4 ==&lt;br /&gt;
&lt;br /&gt;
Get RHEL4 CDs from Paul Letta.&lt;br /&gt;
&lt;br /&gt;
Connect terminal, keyboard and mouse.&lt;br /&gt;
&lt;br /&gt;
Boot from CD1. Follow instructions. When asked, choose following options:&lt;br /&gt;
&lt;br /&gt;
* Choose &#039;Manually partition with Disk Druid&#039;, set /boot to 100MB, then / to 40GB, then swap to 8192MB or at least double memory size. The rest of disk can be set as /space.&lt;br /&gt;
&lt;br /&gt;
* Network: choose manually, type clonpc2.jlab.org; click &#039;EDIT&#039;, deactivate &#039;Configure using DHCP&#039;,&lt;br /&gt;
type IP address and netmask (255.255.255.0), click Ok.&lt;br /&gt;
Type Gateway (for example 129.57.167.99) and 3 DNS servers (129.57.167.5,129.57.167.14,129.57.32.100).&lt;br /&gt;
&lt;br /&gt;
* Choose &#039;No firewall&#039;&lt;br /&gt;
&lt;br /&gt;
* Disable &#039;SELinux&#039;&lt;br /&gt;
&lt;br /&gt;
* Choose &#039;Customize software packages to be installed&#039;, click &#039;Everything&#039;.&lt;br /&gt;
&lt;br /&gt;
You will be asked to install CD2, CD3 and CD4, then CD1 again.&lt;br /&gt;
Then you will be asked to click &#039;Reboot&#039;. First remove CD, then click &#039;Reboot&#039;.&lt;br /&gt;
You will be asked few more questions. When asked to activate service, choose&lt;br /&gt;
&#039;Tell me why I need to register ..&#039; and click &#039;Next&#039;. Choose &#039;I can not complete registration ..&#039;&lt;br /&gt;
and click &#039;Next&#039;. You will see &#039;System user&#039; screen, click &#039;Use network login..&#039;.&lt;br /&gt;
Choose &#039;Enable NIS support&#039; and click &#039;Configure NIS&#039;. Type NIS Domain: &#039;CCCHP&#039; and NIS Server: clon00.jlab.org.&lt;br /&gt;
Finish installation process.&lt;br /&gt;
&lt;br /&gt;
* fix files &#039;&#039;/etc/passwd&#039;&#039;, &#039;&#039;/etc/shadow&#039;&#039; and &#039;&#039;/etc/group&#039;&#039; adding clasrun etc (see examples on another machines).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: if machine has multiple network ports, Linux may not assign them properly to specified IP names and addresses. If problem occures, open network GUI and delete all existing records. After that, click &#039;&#039;New&#039;&#039; and pick hadrware port you want to configure from the list of available ports (tricky part is to know which RJ-45 connector corresponds to which port ..). Configure and activate it, make sure it works. Repeat for other ports. Results will be stored in directory &#039;&#039;/etc/sysconfig/network-scripts&#039;&#039;, file names will be &#039;&#039;ifcfg-eth0&#039;&#039;, &#039;&#039;ifcfg-eth1&#039;&#039; etc. If modifying those files manually, restart network by &#039;&#039;/etc/init.d/network restart&#039;&#039;. Finally, set routing, for example for &#039;&#039;clonmon&#039;&#039; command &#039;&#039;route -n&#039;&#039; shows following:&lt;br /&gt;
 Kernel IP routing table&lt;br /&gt;
 Destination     Gateway         Genmask         Flags Metric Ref    Use Iface&lt;br /&gt;
 129.57.160.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1&lt;br /&gt;
 129.57.68.0     0.0.0.0         255.255.255.0   U     0      0        0 eth3&lt;br /&gt;
 129.57.69.0     0.0.0.0         255.255.255.0   U     0      0        0 dev5937&lt;br /&gt;
 129.57.64.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0&lt;br /&gt;
 169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth3&lt;br /&gt;
 0.0.0.0         129.57.68.100   0.0.0.0         UG    0      0        0 eth3&lt;br /&gt;
Run following commands:&lt;br /&gt;
 /sbin/route add -net 129.57.160.0 netmask 255.255.255.0 gw 129.57.160.5 dev eth1&lt;br /&gt;
 /sbin/route add -net 129.57.68.0 netmask 255.255.255.0 gw 129.57.68.26 dev eth3&lt;br /&gt;
 /sbin/route add -net 129.57.69.0 netmask 255.255.255.0 gw 129.57.69.206 dev dev5937&lt;br /&gt;
 /sbin/route add -net 129.57.64.0 netmask 255.255.255.0 gw 129.57.64.57 dev eth0&lt;br /&gt;
Now &#039;&#039;route -n&#039;&#039; shows following:&lt;br /&gt;
 Kernel IP routing table&lt;br /&gt;
 Destination     Gateway         Genmask         Flags Metric Ref    Use Iface&lt;br /&gt;
 129.57.160.0    129.57.160.5    255.255.255.0   UG    0      0        0 eth1&lt;br /&gt;
 129.57.160.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1&lt;br /&gt;
 129.57.68.0     129.57.68.26    255.255.255.0   UG    0      0        0 eth3&lt;br /&gt;
 129.57.68.0     0.0.0.0         255.255.255.0   U     0      0        0 eth3&lt;br /&gt;
 129.57.69.0     129.57.69.206   255.255.255.0   UG    0      0        0 dev5937&lt;br /&gt;
 129.57.69.0     0.0.0.0         255.255.255.0   U     0      0        0 dev5937&lt;br /&gt;
 129.57.64.0     129.57.64.57    255.255.255.0   UG    0      0        0 eth0&lt;br /&gt;
 129.57.64.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0&lt;br /&gt;
 169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth3&lt;br /&gt;
 0.0.0.0         129.57.68.100   0.0.0.0         UG    0      0        0 eth3&lt;br /&gt;
In that example automount will do configured using &#039;&#039;clonmon-daq1&#039;&#039; interface, because default &#039;&#039;clonmon&#039;&#039; interface is on external subnet. To make that routing table permanent (retore it after reboot) I tried to add four files with following contents to the &#039;&#039;/etc/sysconfig/network-scripts&#039;&#039; directory:&lt;br /&gt;
 route-eth1:&lt;br /&gt;
   GATEWAY0=129.57.160.5&lt;br /&gt;
   NETMASK0=255.255.255.0&lt;br /&gt;
   ADDRESS0=129.57.160.0&lt;br /&gt;
 route-eth3:&lt;br /&gt;
   GATEWAY0=129.57.68.26&lt;br /&gt;
   NETMASK0=255.255.255.0&lt;br /&gt;
   ADDRESS0=129.57.68.0&lt;br /&gt;
 route-dev5937:&lt;br /&gt;
   GATEWAY0=129.57.69.206&lt;br /&gt;
   NETMASK0=255.255.255.0&lt;br /&gt;
   ADDRESS0=129.57.69.0&lt;br /&gt;
 route-eth0:&lt;br /&gt;
   GATEWAY0=129.57.64.57&lt;br /&gt;
   NETMASK0=255.255.255.0&lt;br /&gt;
   ADDRESS0=129.57.64.0&lt;br /&gt;
It did not worked. Then I added four &#039;&#039;/sbin/route add ..&#039;&#039; lines to &#039;&#039;/etc/rc.local&#039;&#039; script, and it worked.&lt;br /&gt;
&lt;br /&gt;
From now on you can use remote &#039;ssh&#039; connection.&lt;br /&gt;
&lt;br /&gt;
* To configure your system to use the patch server, issue the following commands as root:&lt;br /&gt;
 # mount jlabsite:/site /mnt&lt;br /&gt;
 # /mnt/CC/linux/satellite-connect --patchall&lt;br /&gt;
The script will prompt you for an activation key, but if you don&#039;t know what this is, just hit ENTER and it will use a sensible default.  Depending on how many patches need to be applied to your system to bring it up to the current level, this script may take a very long time to run.  When it finishes, you should reboot your machine to make the new patches take effect.&lt;br /&gt;
&lt;br /&gt;
To install updates later run &#039;&#039;up2date -uf&#039;&#039; as &#039;&#039;root&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Configure [[SSH]].&lt;br /&gt;
&lt;br /&gt;
* Proceed with [[Linux Customization on CLON Cluster]] if applicable.&lt;br /&gt;
&lt;br /&gt;
To boot Linux in single user mode (no graphics), add &#039;&#039;single&#039;&#039; to the end of boot line during boot process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;background info&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Add startup script&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Create script in &#039;&#039;/etc/init.d/&#039;&#039; directory (use existing scripts as example). Must have a line like&lt;br /&gt;
 # chkconfig:	- 91 09&lt;br /&gt;
which specifies start and stop order. Run commands&lt;br /&gt;
 chkconfig --add &amp;lt;scriptname&amp;gt;&lt;br /&gt;
 chkconfig --level 3 &amp;lt;scriptname&amp;gt; on&lt;br /&gt;
for every level you want that script to be executed (usualy 3 and/or 4 and/or 5). Check if it os done using command&lt;br /&gt;
 chkconfig --list | grep &amp;lt;scriptname&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;xxx&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can choose to download the RHEL operating system directly from the Red Hat Web site and not receive a media kit from HP containing the software. This scenario occurs when the media option AJR is deselected from the order. (The media kit option is always selected by default. )&lt;br /&gt;
&lt;br /&gt;
It is necessary to register at the Red Hat Web site prior to download. Registration requires the activation code that each customer receives from HP when ordering either RHEL.&lt;br /&gt;
&lt;br /&gt;
You can download RHEL for each available platform as four CD ISO images or one DVD ISO image.&lt;br /&gt;
&lt;br /&gt;
Use the following procedure to download RHEL and create the installation media:&lt;br /&gt;
&lt;br /&gt;
   1.&lt;br /&gt;
&lt;br /&gt;
      Register and log in at the following Red Hat Web site:&lt;br /&gt;
&lt;br /&gt;
      www.redhat.com/rhn&lt;br /&gt;
   2.&lt;br /&gt;
&lt;br /&gt;
      Click on channels and then select Red Hat Enterprise Linux ES (v.4 for 64–bit Intel Itanium).&lt;br /&gt;
   3.&lt;br /&gt;
&lt;br /&gt;
      Select Downloads and then download the ISO images of install, compatibility and source disks&lt;br /&gt;
&lt;br /&gt;
      Files with ia64 in the name are for the Itanium platform.&lt;br /&gt;
   4.&lt;br /&gt;
&lt;br /&gt;
      Create the CDs or a DVD from the ISO images.&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
	IMPORTANT: Create the CDs or DVD using the contents of the ISO images. Do not create the CDs or DVD by burning the .iso files themselves to CD or DVD. For example, if you are using K3b to burn a CD, click Tools&amp;gt;CD&amp;gt;Burn CD Image, select the .iso image, then click Burn.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bootup scripts&#039;&#039;&#039; for example for level 5 execution (multiuser with X):&lt;br /&gt;
&lt;br /&gt;
 cp &amp;lt;script-file&amp;gt; /etc/init.d/&lt;br /&gt;
 chmod +x /etc/init.d/&amp;lt;script-file&amp;gt;&lt;br /&gt;
 ln -s /etc/init.d/&amp;lt;scriptfile&amp;gt; /etc/rc.d/rc5.d/S50&amp;lt;scriptfile&amp;gt;&lt;br /&gt;
 ln -s /etc/init.d/&amp;lt;scriptfile&amp;gt; /etc/rc.d/rc5.d/K50&amp;lt;scriptfile&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changing hostname/IP address&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 Changing hostname on RHEL&lt;br /&gt;
 1. Change the HOSTNAME line in /etc/sysconfig/network&lt;br /&gt;
 2. Change the hostname (FQDN and alias) in /etc/hosts&lt;br /&gt;
 3. Run &#039;/bin/hostname new_hostname&#039; for the hostname change to take effect immediately.&lt;br /&gt;
 4. Run &#039;/sbin/service syslog restart&#039; for syslog to log using the new hostname.&lt;br /&gt;
 A reboot is not required to change the system hostname.&lt;br /&gt;
&lt;br /&gt;
 IP address: You have to change the IP address entry in&lt;br /&gt;
 /etc/sysconfig/network-scripts/ifcfg-eth0.&lt;/div&gt;</summary>
		<author><name>Boiarino</name></author>
	</entry>
	<entry>
		<id>https://clonwiki0.jlab.org/wiki/index.php?title=Linux_Installation_Procedure&amp;diff=8700</id>
		<title>Linux Installation Procedure</title>
		<link rel="alternate" type="text/html" href="https://clonwiki0.jlab.org/wiki/index.php?title=Linux_Installation_Procedure&amp;diff=8700"/>
		<updated>2026-02-10T19:56:03Z</updated>

		<summary type="html">&lt;p&gt;Boiarino: /* Dell servers hardware trick(s) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Dell servers hardware trick(s) ==&lt;br /&gt;
&lt;br /&gt;
* if looks dead, remove the power cords, then held in the on button for 30 seconds; then plug it back in and it may boots up fine - known Dell feature&lt;br /&gt;
&lt;br /&gt;
* if BIOS date/time is incorrect, it may prevent redhat subscription to work. If BIOS does not remember time setting after power unplugged, on-board battery may need to be replaced&lt;br /&gt;
&lt;br /&gt;
== ARM (CentsOS7) ==&lt;br /&gt;
&lt;br /&gt;
See [[yum]] for specifics.&lt;br /&gt;
&lt;br /&gt;
 yum install xauth wget bzip2 xterm expat-devel libX11-devel libXpm-devel motif-devel mariadb-devel&lt;br /&gt;
&lt;br /&gt;
== RHEL9 (64 bit) ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: select installation type &#039;&#039;&#039;H&#039;&#039;&#039;, then type &#039;&#039;&#039;B&#039;&#039;&#039;.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: during custom disk partitioning, select &#039;Standard&#039; for every partition, if you want it to be standard, or &#039;Raid&#039; if applicable&lt;br /&gt;
&lt;br /&gt;
Set root password (see instractions below), if you want to become superuser by typing just &#039;&#039;su&#039;&#039;. If becoming superuser by typing &#039;&#039;sudo su&#039;&#039; is good enough, do nothing (in that case graphics will not work in superuser mode).&lt;br /&gt;
&lt;br /&gt;
Install useful pachages:&lt;br /&gt;
 yum install ncdu mysql&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: graphic screen is disabled, run following command as root:&lt;br /&gt;
 systemctl set-default graphical.target&lt;br /&gt;
&lt;br /&gt;
== RHEL9 (64 bit) - for machine NOT under puppet control ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: select installation type &#039;&#039;&#039;D&#039;&#039;&#039; (not &#039;&#039;&#039;S&#039;&#039;&#039;, otherwise it will not be level 2 server)&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: during custom disk partitioning, select &#039;Standard&#039; for every partition, if you want it to be standard, or &#039;Raid&#039; if applicable&lt;br /&gt;
&lt;br /&gt;
When installation complete, ssh as authorized user and do following:&lt;br /&gt;
&lt;br /&gt;
 sudo yum install emacs&lt;br /&gt;
 cd /etc&lt;br /&gt;
 sudo chmod a+rw shadow&lt;br /&gt;
 sudo emacs shadow&lt;br /&gt;
&lt;br /&gt;
Copy to /etc/shadow root and other needed passwords from another clon machine. &lt;br /&gt;
&lt;br /&gt;
 sudo chmod a-rw shadow&lt;br /&gt;
&lt;br /&gt;
After that, type &#039;&#039;su&#039;&#039; to become superuser. All following settings can be done now without typing &#039;&#039;sudo&#039;&#039; every time. You still will not be able to ssh remotely as root - always ssh as authorized user and type &#039;&#039;su&#039;&#039; to become root.&lt;br /&gt;
&lt;br /&gt;
Update /etc/passwd and /etc/group using another clon machine as example.&lt;br /&gt;
&lt;br /&gt;
 yum install expat-devel libXaw-devel mysql-devel motif-devel ncurses-devel apr-devel net-snmp-utils&lt;br /&gt;
 yum install xorg-x11-utils # for xprop/xwininfo/etc creg stuff&lt;br /&gt;
 yum install s-nail # for /usr/bin/mail&lt;br /&gt;
 yum install ncdu&lt;br /&gt;
 yum install libconfig-devel # recent addition for CODA libraries&lt;br /&gt;
&lt;br /&gt;
To be able to ssh to old machines (like vme controllers under CentOS5), run following as root:&lt;br /&gt;
&lt;br /&gt;
 update-crypto-policies --set LEGACY&lt;br /&gt;
&lt;br /&gt;
and then probably reboot, not sure.&lt;br /&gt;
&lt;br /&gt;
Somebody mentioned also adding &#039;&#039;RequiredRSASize 1024&#039;&#039; to a config file in &#039;&#039;/etc/ssh/ssh_config.d/&#039;&#039;, but I did not do it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    Note: this changes all daemons and system settings and is a bit overkill if you only need to adjust the settings for ssh and sshd.&lt;br /&gt;
&lt;br /&gt;
    Exclude (only) sshd from the system-wide cryptographic policy. You opt-out by editing /etc/sysconfig/sshd and uncommenting the line # CRYPTO_POLICY= , (if necessary you can then adjust adjust /etc/ssh/sshd_config and add legacy crypto settings) and restart the ssh daemon.&lt;br /&gt;
&lt;br /&gt;
For the ssh command line client on the RHEL 9 system: you&#039;re recommended to edit ˜/.ssh/config and override the modern/secure system wide ssh client defaults by adding a Host entry that adds support for suitable legacy encryption options for that particular host:&lt;br /&gt;
&lt;br /&gt;
#    ˜/.ssh/config&lt;br /&gt;
&lt;br /&gt;
Host rhel6.example.com&lt;br /&gt;
  KexAlgorithms +diffie-hellman-group14-sha1&lt;br /&gt;
  MACs +hmac-sha1&lt;br /&gt;
  HostKeyAlgorithms +ssh-rsa&lt;br /&gt;
  PubkeyAcceptedKeyTypes +ssh-rsa&lt;br /&gt;
  PubkeyAcceptedAlgorithms +ssh-rsa&lt;br /&gt;
&lt;br /&gt;
Prepare auto-mounting directories:&lt;br /&gt;
&lt;br /&gt;
 cd /&lt;br /&gt;
 mv apps apps.orig&lt;br /&gt;
 mv home home.orig&lt;br /&gt;
 mv scratch scratch.orig&lt;br /&gt;
 mv work work.orig&lt;br /&gt;
 mkdir apps&lt;br /&gt;
 mkdir home&lt;br /&gt;
 mkdir scratch&lt;br /&gt;
 mkdir work&lt;br /&gt;
 mkdir logs&lt;br /&gt;
 cd /usr&lt;br /&gt;
 mv local local.orig&lt;br /&gt;
 mkdir local&lt;br /&gt;
 mkdir clas&lt;br /&gt;
 mkdir clas12&lt;br /&gt;
 mkdir downloads&lt;br /&gt;
 cd&lt;br /&gt;
&lt;br /&gt;
== RHEL8 (64 bit) ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; to boot from USB stick, insert USB stick, turn machine ON holding F2, and in BIOS Boot Configuration, set Enable Security Boot to OFF, save and exit, holding F2. When in BIOS again, in Boot Configuration make &#039;&#039;UEFI PHY USB ...&#039;&#039; first in boot sequence, local hard drive second, disable all other boot options, save and exit. Do NOT hold F2, Linux installation from USB stick will start. &#039;&#039;&#039;IMPORTANT:&#039;&#039;&#039; when asked about D/S options (very first question in installation process), &#039;&#039;&#039;REMOVE USB STICK BEFORE ANSWERING QUESTION ABOUT DESKTOP/SERVER&#039;&#039;&#039;, otherwise it will be destroyed by following installation steps !!!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; to disable/enable puppet, do following as root: &lt;br /&gt;
 puppet agent --disable &amp;quot;temporary&amp;quot;&lt;br /&gt;
 puppet agent --enable&lt;br /&gt;
&lt;br /&gt;
 yum install emacs&lt;br /&gt;
 yum install xorg-x11-fonts-misc&lt;br /&gt;
&lt;br /&gt;
Move and create some directories in preparation for automounts:&lt;br /&gt;
&lt;br /&gt;
 cd /&lt;br /&gt;
 mv apps apps.orig&lt;br /&gt;
 mv home home.orig&lt;br /&gt;
 mv scratch scratch.orig&lt;br /&gt;
 mkdir apps&lt;br /&gt;
 mkdir home&lt;br /&gt;
 mkdir scratch&lt;br /&gt;
 mkdir work&lt;br /&gt;
 mkdir logs&lt;br /&gt;
 cd /usr&lt;br /&gt;
 mv local local.orig&lt;br /&gt;
 mkdir local&lt;br /&gt;
 mkdir clas&lt;br /&gt;
 mkdir clas12&lt;br /&gt;
 mkdir downloads&lt;br /&gt;
 cd&lt;br /&gt;
&lt;br /&gt;
Add line &#039;&#039;&#039;+dir:/etc/auto.master.d&#039;&#039;&#039; to &#039;&#039;/etc/auto.master&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Create file &#039;&#039;/etc/auto.master.d/direct.autofs&#039;&#039; with the line &#039;&#039;&#039;/- /etc/auto.direct&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Create file &#039;&#039;/etc/auto.direct&#039;&#039; with the following contents:&lt;br /&gt;
&lt;br /&gt;
 # machine-dependent system directories&lt;br /&gt;
 /apps                 -rw,bg     clonfs1:/vol/apps/RHEL8_x86_64&lt;br /&gt;
 /usr/local            -rw,bg     clonfs1:/vol/local/RHEL8_x86_64&lt;br /&gt;
 # machine-independent system directories&lt;br /&gt;
 /home                 -rw,bg     clonfs1:/vol/home&lt;br /&gt;
 #/work                 -rw,bg     clonfs1-old:/vol/work&lt;br /&gt;
 /scratch              -rw,bg     clonfs1:/vol/scratch&lt;br /&gt;
 # machine-independent clas directories&lt;br /&gt;
 /usr/downloads        -rw,bg     clonfs1:/vol/downloads&lt;br /&gt;
 /usr/clas             -rw,bg     clonfs1:/vol/clas&lt;br /&gt;
 /usr/clas12           -rw,bg     clonfs1:/vol/clas12&lt;br /&gt;
 # Used for data storage before shipping to tape&lt;br /&gt;
 #/logs                 -rw,bg     clonfs1-old:/vol/logs&lt;br /&gt;
&lt;br /&gt;
Restart autofs:&lt;br /&gt;
&lt;br /&gt;
 service autofs reload&lt;br /&gt;
 service autofs restart&lt;br /&gt;
&lt;br /&gt;
Remove from the end of the &#039;&#039;/etc/passwd&#039;&#039; line &#039;&#039;&#039;+::::::&#039;&#039;&#039;, and add following:&lt;br /&gt;
&lt;br /&gt;
 hpsrun:x:8796:9998:hpsrun Account:/home/hpsrun:/bin/tcsh&lt;br /&gt;
 clasrun:x:2508:9998:Online DAQ:/home/clasrun:/bin/tcsh&lt;br /&gt;
 clasioc:x:6008:9998:CLAS IOCs:/home/clasioc:/bin/tcsh&lt;br /&gt;
 clas12run:x:6007:146:clas12run Account:/home/clas12run:/bin/tcsh&lt;br /&gt;
 clascron:x:3888:146:CLAS Cron Jobs:/home/clascron:/bin/tcsh&lt;br /&gt;
 clasboot:x:6000:146:Boot Scripts Only:/home/clasboot:/bin/tcsh&lt;br /&gt;
 clasmail:x:6003:146:CLAS Automated Mail:/home/clasmail:/bin/tcsh&lt;br /&gt;
 epics:x:5001:146:EPICS Account:/home/epics:/bin/tcsh&lt;br /&gt;
 nagios:x:6246:9997:Nagios:/home/nagios:/bin/tcsh&lt;br /&gt;
 +@clon_cluster::::::&lt;br /&gt;
 +sshd::::::&lt;br /&gt;
 +::::::/bin/false&lt;br /&gt;
&lt;br /&gt;
Update &#039;&#039;/etc/shadow&#039;&#039;, adding passwords for local accounts (copy it from another machine).&lt;br /&gt;
&lt;br /&gt;
Add following to &#039;&#039;/etc/group&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 clon:x:383:clascron&lt;br /&gt;
 onliners:x:9998:abbottd,avakian,baltzell,battagli,brooksw,bruhwel,boiarino,carman,chen,clasboot,clascron,clasrun,cole,cuevas,davidl,danagu,dugger,elton,epics,fklein,gilfoyle,giovanet,golovach,gurjyan,heddle,heyes,hovanes,jacobsg,jenkins,kliv,lcsmith,marki,mestayer,nerses,parkkj,pasyuk,primex,ripani,rossi,saw,staylor,sytnik,taiuti,taylorw,timmer,wooyoung&lt;br /&gt;
&lt;br /&gt;
== RHEL7 (64 bit) ==&lt;br /&gt;
&lt;br /&gt;
Installed using DVD provided by Computer Center, currently RHEL7.3. Requires MAC address to be registered with Computer Center (using jnet.jlab.org as &#039;boiarino&#039;) because it is network-based installation. On DELL servers, hold F2 after power on and go to &#039;Device Settings&#039; to see mac address. Remember machine memory size as well, will needed when create partitions, find it in &#039;System BIOS -&amp;gt; Memory Settings&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: all disks will be reformatted in a process, all information will be lost !&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dialog:&lt;br /&gt;
&lt;br /&gt;
* boot: &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Please enter the hostname of this system: &amp;lt;hostname&amp;gt; &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* What type of system are you building? (D)esktop: &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Is this a CUE level 1 or CUE level 2 System build (1/2): 2 &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Please enter the System Admin&#039;s CUE username: boiarino &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Do you want to use the default partitioning scheme (y/n)? n &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Are you sure you want to use your own partitioning scheme (y/n)? y &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Choose &#039;Standard Partition&#039; scheme and create following partitions: /boot - 1GB, swap - double memory size, / - the rest of space.&lt;br /&gt;
&lt;br /&gt;
Installation will proceed. When prompted, remove installation disk and reboot machine if not done automatically.&lt;br /&gt;
&lt;br /&gt;
After reboot patching process will be started and it will take a while, do not interrupt it, otherwise system will not be installed correctly.&lt;br /&gt;
&lt;br /&gt;
When machine reboots for the last time, ask Paul Letta to set usual hallb root password. From now on remote root access is possible. Alternatively, user &#039;&#039;boiarino&#039;&#039; can execute most of actions using &#039;&#039;sudo&#039;&#039;,&lt;br /&gt;
like &#039;&#039;sudo emacs&#039;&#039; for protected files. &#039;&#039;sudo reboot&#039;&#039; etc.&lt;br /&gt;
&lt;br /&gt;
Go to /boot/grub2 and modify file grub.cfg, Linux kernel boot options, adding options &#039;&#039;net.ifnames=0 biosdevname=0&#039;&#039;, so your boot string has following section:&lt;br /&gt;
&lt;br /&gt;
 ..... rhgb net.ifnames=0 biosdevname=0 quiet .....&lt;br /&gt;
&lt;br /&gt;
so whole line looks something like this:&lt;br /&gt;
&lt;br /&gt;
 linux16 /vmlinuz-3.10.0-327.18.2.el7.x86_64 root=UUID=b5d1b5ad-e3f6-4db4-8972-aa9c1a91d116 ro vconsole.keymap=us crashkernel=auto  vconsole.font=latarcyrheb-sun16 rhgb net.ifnames=0 biosdevname=0 quiet LANG=en_US.UTF-8&lt;br /&gt;
&lt;br /&gt;
Reboot machine, ethernet ports must be named &#039;&#039;eth0&#039;&#039;, &#039;&#039;eth1&#039;&#039; etc.&lt;br /&gt;
&lt;br /&gt;
To update manually, use commands &#039;&#039;yum list updates&#039;&#039; and &#039;&#039;yum update&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; add machine to the appropriate &#039;&#039;&#039;puppet&#039;&#039;&#039; group, it will do all following automatically (hopefully).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; on RHEL7.9, RPM EPEL REPO is not enabled by default, which prevents from installing nload, itcl, itk etc. To bring it back, it can be copied it from older machine, for example:&lt;br /&gt;
&lt;br /&gt;
 cd /etc/yum.repos.d&lt;br /&gt;
 scp clondaq7:/etc/yum.repos.d/epel.repo .&lt;br /&gt;
 cd /etc/pki/rpm-gpg&lt;br /&gt;
 scp clondaq7:/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 .&lt;br /&gt;
&lt;br /&gt;
Alternatively, following can be used to add repo&#039;s:&lt;br /&gt;
&lt;br /&gt;
 subscription-manager repos --enable &amp;lt;repo_id&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In particular, following have to be enabled to get nload, xpdf, python-alembic, tix, itcl, itk etc:&lt;br /&gt;
&lt;br /&gt;
 subscription-manager repos --enable JLab_EPEL_EPEL_7&lt;br /&gt;
 subscription-manager repos --enable rhel-7-workstation-optional-rpms&lt;br /&gt;
&lt;br /&gt;
Repo ID&#039;s can be obtained by:&lt;br /&gt;
&lt;br /&gt;
 subscription-manager repos --list&lt;br /&gt;
&lt;br /&gt;
Installed repo&#039;s can be seen by:&lt;br /&gt;
&lt;br /&gt;
 yum repolist&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Yum updates&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Edit the &#039;&#039;/etc/yum.conf&#039;&#039; file and add the following line to force installation of the 32bit and 64bit libraries:&lt;br /&gt;
&lt;br /&gt;
 multilib_policy=all&lt;br /&gt;
&lt;br /&gt;
Install following packages:&lt;br /&gt;
&lt;br /&gt;
 yum install xterm mesa-dri-drivers telnet rsh readline-devel net-snmp-utils tigervnc-server tigervnc xpdf nload mariadb-devel libxml2-devel glibc-devel qt-devel python-alembic openssl-devel apr-devel&lt;br /&gt;
 yum install libconfig-devel # recent addition for CODA libraries&lt;br /&gt;
&lt;br /&gt;
Fonts for EPICS EDMs:&lt;br /&gt;
&lt;br /&gt;
 yum install xorg-x11-fonts-75dpi xorg-x11-fonts-ISO8859-1-75dpi bitmap-miscfixed-fonts&lt;br /&gt;
 yum install bitmap-console-fonts bitmap-fixed-fonts bitmap-lucida-typewriter-fonts&lt;br /&gt;
 ln -s  /usr/share/X11/fonts/100dpi /etc/X11/fontpath.d/xorg-x11-fonts-100dpi:pri=60&lt;br /&gt;
 ln -s  /usr/share/X11/fonts/75dpi /etc/X11/fontpath.d/xorg-x11-fonts-75dpi:pri=50&lt;br /&gt;
 ln -s  /usr/share/X11/fonts/misc /etc/X11/fontpath.d/xorg-x11-fonts-misc:pri=40&lt;br /&gt;
 ln -s  /usr/share/fonts/bitmap /etc/X11/fontpath.d/bitmap-fonts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Do following to be able to compile and run 32-bit apps on 64-bit machine (for compatibility with 32bit applications):&lt;br /&gt;
&lt;br /&gt;
 yum install libXpm-devel libXaw-devel motif-devel glibc-devel ncurses-devel readline-devel&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Modify file &#039;&#039;/etc/passwd&#039;&#039; adding following:&lt;br /&gt;
&lt;br /&gt;
 hpsrun:x:8796:9998:hpsrun Account:/home/hpsrun:/bin/tcsh&lt;br /&gt;
 clasrun:x:2508:9998:Online DAQ:/home/clasrun:/bin/tcsh&lt;br /&gt;
 clasioc:x:6008:9998:CLAS IOCs:/home/clasioc:/bin/tcsh&lt;br /&gt;
 clas12run:x:6007:146:clas12run Account:/home/clas12run:/bin/tcsh&lt;br /&gt;
 clascron:x:3888:146:CLAS Cron Jobs:/home/clascron:/bin/tcsh&lt;br /&gt;
 clasboot:x:6000:146:Boot Scripts Only:/home/clasboot:/bin/tcsh&lt;br /&gt;
 clasmail:x:6003:146:CLAS Automated Mail:/home/clasmail:/bin/tcsh&lt;br /&gt;
 epics:x:5001:146:EPICS Account:/home/epics:/bin/tcsh&lt;br /&gt;
 nagios:x:6246:9997:Nagios:/home/nagios:/bin/tcsh&lt;br /&gt;
 +@clon_cluster::::::&lt;br /&gt;
 +sshd::::::&lt;br /&gt;
 +::::::/bin/false&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: user-related lines must be removed, like&lt;br /&gt;
&lt;br /&gt;
 +boiarino::::::&lt;br /&gt;
&lt;br /&gt;
as well as&lt;br /&gt;
&lt;br /&gt;
 +::::::&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: assumed that following line is in already:&lt;br /&gt;
&lt;br /&gt;
 +@ccc::::::&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: if following line exist, it must be placed in the end, or removed:&lt;br /&gt;
&lt;br /&gt;
 +::::::/bin/false&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Modify file &#039;&#039;/etc/group&#039;&#039; adding following:&lt;br /&gt;
&lt;br /&gt;
 onliners::9998:heyes,hujl,rwm,timmer,wolin,taylorw,cuevas,abbottd,abulafia,anciant,anghi,aswin,auger,avakian,banta,barrow,battagli,bjlee,bogdan,brooksw,bruhwel,boiarino,buckle,burchesk,burin,bzh,cetina,chen,cole,cords,corvi,costy,davidl,costy,davidl,dcarter,dcurry,dennisl,deppman,dhlee,doughty,drago,dytman,dugger,dugger,elton,fedro,ficenec,fklein,france,freyberg,gholden,gilfoyle,golovach,gurjyan,haddock,heddle,jenkins,jhardie,jmorris,kellyk,klusman,kmkim,kossov,lcsmith,longhi,manak,marchand,marki,mastersj,mjohnson,mosbackr,mueller,muguira,murphyl,necaise,odonnell,opper,parkkj,pasyuk,phkim,piot,riccardi,richardt,ripani,rossi,saw,sergpozd,serov,sholt,staylor,taiuti,tang,tedeschi,vineyard,vlassov,vvsap,weygand,wooyoung,burchesk,clasrun,giovanet,clasboot,clascoda,clasroot,clasmail,clascron,trigger,epics,southern,carstens,ccutter,danagu,heyes,huertas,jacobsg,kliv,lachniet,mestayer,primex,hovanes,nerses,sytnik,baltzell,carman&lt;br /&gt;
 clon::383:clascoda,clascron,clasmail&lt;br /&gt;
 nagios::9997:nagios&lt;br /&gt;
&lt;br /&gt;
Modify file &#039;&#039;/etc/shadow&#039;&#039; using an example from another RHEL7 clon machine (clonioc2 etc). Do &#039;&#039;chmod 600 shadow&#039;&#039; before editing and &#039;&#039;chmod 000 shadow&#039;&#039; after.&lt;br /&gt;
&lt;br /&gt;
Make sure file &#039;&#039;/etc/ssh/sshd_config&#039;&#039; has following line uncommented (must be pushed in by CC security scripts):&lt;br /&gt;
&lt;br /&gt;
 ##PermitUserEnvironment yes&lt;br /&gt;
&lt;br /&gt;
NOT NEEDED, DONE IN THE END OF FILE ALREADY !!! Uncomment following in file &#039;&#039;/etc/ssh/ssh_config&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 ##Host *&lt;br /&gt;
 ##ForwardX11 yes&lt;br /&gt;
&lt;br /&gt;
Add line &#039;export NO_AT_BRIDGE=1&#039; to the file &#039;/etc/environment&#039; to suppress annoying messages like &#039;** (emacs:38714): WARNING **: Couldn&#039;t register with accessibility bus: Did not receive a reply.&#039;&lt;br /&gt;
&lt;br /&gt;
If big (&amp;gt;2GB) partition to be formated, do following (for example /dev/sdb):&lt;br /&gt;
&lt;br /&gt;
 parted /dev/sdb&lt;br /&gt;
 (parted) print&lt;br /&gt;
 (parted) mklabel gpt&lt;br /&gt;
 (parted) print&lt;br /&gt;
 mkpart primary 0GB 25855.2GB&lt;br /&gt;
 (parted) print&lt;br /&gt;
 (parted) quit&lt;br /&gt;
&lt;br /&gt;
 mkfs.xfs /dev/sdb1&lt;br /&gt;
&lt;br /&gt;
then create /data and mount it using &#039;&#039;/etc/fstab&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 /dev/sdb1                                 /data                   xfs     defaults        1 2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; sometimes machine can loose NIS connection, then ssh to it becomes intermittent; if it happens ssh as root (may have to try several times) and run command&lt;br /&gt;
&lt;br /&gt;
 ypwhich&lt;br /&gt;
&lt;br /&gt;
to shows NIS server. If it returns nothing check file &#039;&#039;/etc/resolv.conf&#039;&#039;, it must have following (as on July 2019):&lt;br /&gt;
&lt;br /&gt;
 search jlab.org acc.jlab.org&lt;br /&gt;
 nameserver 129.57.90.255&lt;br /&gt;
 nameserver 129.57.32.101&lt;br /&gt;
&lt;br /&gt;
If file is empty or does not contain right info, fix it. After that run command&lt;br /&gt;
&lt;br /&gt;
 ypbind&lt;br /&gt;
&lt;br /&gt;
It should fix a problem. Run &#039;&#039;ypwhich&#039;&#039; to make sure.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Display Setting:&#039;&#039;&#039; if machine is multi-head, goto &#039;&#039;Applications-&amp;gt;System Tools-&amp;gt;Settings-&amp;gt;Devices-&amp;gt;Displays&#039;&#039; and arrange displays.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Proceed to the [[Linux Customization on CLON Cluster]].&lt;br /&gt;
&lt;br /&gt;
== RHEL6 (64 bit) ==&lt;br /&gt;
&lt;br /&gt;
Installed using CD provided by Computer Center. Requires MAC address to be registered with Computer Center (using jnet.jlab.org as &#039;boiarino&#039;) because it is network-based installation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: all disks will be reformatted in a process, all information will be lost !&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dialog:&lt;br /&gt;
&lt;br /&gt;
* boot: &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ...[D]esktop: [use &#039;s&#039; for server, &#039;d&#039; for desktop] &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* root password: enter root password&lt;br /&gt;
&lt;br /&gt;
* admin user: boiarino&lt;br /&gt;
&lt;br /&gt;
Installation will proceed. When prompted, remove installation disk and reboot machine if not done automatically. After reboot patching process will be started and it will take a while, do not interrupt it, otherwise system will not be installed correctly.&lt;br /&gt;
&lt;br /&gt;
To make emacs work, install&lt;br /&gt;
&lt;br /&gt;
 yum install libotf&lt;br /&gt;
&lt;br /&gt;
Edit the /etc/yum.conf file and add the following line to force installation of teh 32bit and 64bit libraries:&lt;br /&gt;
&lt;br /&gt;
 multilib_policy=all&lt;br /&gt;
&lt;br /&gt;
Install following packages:&lt;br /&gt;
&lt;br /&gt;
 yum install openmotif-devel xinetd mysql-devel cmake libXpm-devel net-snmp-utils&lt;br /&gt;
 yum install mesa-libGL-devel mesa-libGLU-devel mesa-libGLw-devel (for OpenGL, needed by ROOT)&lt;br /&gt;
 yum install libXaw-devel (for xterm)&lt;br /&gt;
 yum install expat-devel libgcj-devel (for evio/et)&lt;br /&gt;
&lt;br /&gt;
 yum install compat-libtermcap (for xterm)&lt;br /&gt;
 ln -s /lib/libtermcap.so.2 /usr/lib/libtermcap.so&lt;br /&gt;
 ###ln -s /lib64/libtermcap.so.2 /usr/lib64/libtermcap.so&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Install following fonts for EPICS EDMs:&lt;br /&gt;
&lt;br /&gt;
 yum install xorg-x11-fonts-75dpi xorg-x11-fonts-ISO8859-1-75dpi bitmap-miscfixed-fonts&lt;br /&gt;
 yum install bitmap-console-fonts bitmap-fixed-fonts bitmap-lucida-typewriter-fonts&lt;br /&gt;
 ln -s  /usr/share/X11/fonts/100dpi /etc/X11/fontpath.d/xorg-x11-fonts-100dpi:pri=60&lt;br /&gt;
 ln -s  /usr/share/X11/fonts/75dpi /etc/X11/fontpath.d/xorg-x11-fonts-75dpi:pri=50&lt;br /&gt;
 ln -s  /usr/share/X11/fonts/misc /etc/X11/fontpath.d/xorg-x11-fonts-misc:pri=40&lt;br /&gt;
 ln -s  /usr/share/fonts/bitmap /etc/X11/fontpath.d/bitmap-fonts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; Useful &#039;&#039;yum&#039;&#039; commands:&lt;br /&gt;
&lt;br /&gt;
 yum whatprovides libstdc++.so.5 - show which package contains libstdc++.so.5&lt;br /&gt;
&lt;br /&gt;
== RHEL5 ==&lt;br /&gt;
&lt;br /&gt;
Installed using CD provided by Computer Center. Requires MAC address to be registered with Computer Center (email to helpdesk@jlab.org) because it is network-based installation.&lt;br /&gt;
&lt;br /&gt;
Dialog:&lt;br /&gt;
&lt;br /&gt;
* boot: &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ...[D]esktop: Server (it is ignored, will do Desktop anyway ...)&lt;br /&gt;
&lt;br /&gt;
* root password: enter root password&lt;br /&gt;
&lt;br /&gt;
* system user: &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* manually partition disk: 100MB /boot, 2048 etc MB swap, the rest /.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CFENGINE&#039;&#039;&#039;: there are procesess restoring some system config files (in particular &#039;&#039;/etc/ssh/sshd_config&#039;&#039;) in according to the Computer Center - maintained templete. To shut them down: (1) comment out &#039;&#039;cfengine&#039;&#039;-related stuff in root cronjobs; (2) do &#039;&#039;/etc/init.d/cfengine stop&#039;&#039;; (3) do &#039;&#039;chkconfig cfengine off&#039;&#039;. Ask CC (Sherman White, Paul Letta) to fix templete.&lt;br /&gt;
&lt;br /&gt;
Run &#039;&#039;/usr/bin/system-config-authentication&#039;&#039; and set NIS servers list as &#039;&#039;clon00,clon10,nis1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Add following in the end of &#039;&#039;/etc/passwd&#039;&#039;:&lt;br /&gt;
 clasrun:x:2508:9998:Online DAQ:/home/clasrun:/bin/tcsh&lt;br /&gt;
 clas12run:x:6007:146:clas12run Account:/home/clas12run:/bin/tcsh&lt;br /&gt;
 clascron:x:6005:146:CLAS Cron Jobs:/home/clascron:/bin/tcsh&lt;br /&gt;
 clasboot:x:6000:146:Boot Scripts Only:/home/clasboot:/bin/tcsh&lt;br /&gt;
 clasmail:x:6003:146:CLAS Automated Mail:/home/clasmail:/bin/tcsh&lt;br /&gt;
 epics:x:5001:146:EPICS Account:/home/epics:/bin/tcsh&lt;br /&gt;
 nagios:x:6246:9997:Nagios:/home/nagios:/bin/tcsh&lt;br /&gt;
 +@clon_cluster::::::&lt;br /&gt;
 +@ccc::::::&lt;br /&gt;
&lt;br /&gt;
Add following in the end of &#039;&#039;/etc/group&#039;&#039;:&lt;br /&gt;
 onliners::9998:heyes,hujl,rwm,timmer,wolin,taylorw,cuevas,abbottd,abulafia,anciant,anghi,aswin,auger,avakian,banta,barrow,battagli,bjlee,bogdan,brooksw,bruhwel,boiarino,buckle,burchesk,burin,bzh,cetina,chen,cole,cords,corvi,costy,davidl,costy,davidl,dcarter,dcurry,dennisl,deppman,dhlee,doughty,drago,dytman,dugger,dugger,elton,fedro,ficenec,fklein,france,freyberg,gholden,gilfoyle,golovach,gurjyan,haddock,heddle,jenkins,jhardie,jmorris,kellyk,klusman,kmkim,kossov,lcsmith,longhi,manak,marchand,marki,mastersj,mjohnson,mosbackr,mueller,muguira,murphyl,necaise,odonnell,opper,parkkj,pasyuk,phkim,piot,riccardi,richardt,ripani,rossi,saw,sergpozd,serov,sholt,staylor,taiuti,tang,tedeschi,vineyard,vlassov,vvsap,weygand,wooyoung,burchesk,clasrun,giovanet,clasboot,clascoda,clasroot,clasmail,clascron,trigger,epics,southern,carstens,ccutter,danagu,heyes,huertas,jacobsg,kliv,lachniet,mestayer,primex,hovanes,nerses,sytnik&lt;br /&gt;
 clon::383:clascoda,clascron,clasmail&lt;br /&gt;
 nagios::9997:nagios&lt;br /&gt;
&lt;br /&gt;
Create &#039;&#039;/etc/shadow&#039;&#039; files with entries for users clasrun, epics and nagios (copy from another machine).&lt;br /&gt;
&lt;br /&gt;
Install updates: normally all updates should be installed by now, it can be done manually by commands&lt;br /&gt;
 yum list updates&lt;br /&gt;
 yum update&lt;br /&gt;
&lt;br /&gt;
Configure [[SSH]].&lt;br /&gt;
&lt;br /&gt;
Install missing packages:&lt;br /&gt;
 yum install openmotif-devel xinetd mysql-devel cmake&lt;br /&gt;
&lt;br /&gt;
Some additional packages on request (for EPICS):&lt;br /&gt;
&lt;br /&gt;
 yum install mc lapack lapack-devel blas blas-devel giflib-devel&lt;br /&gt;
&lt;br /&gt;
Proceed to the [[Linux Customization on CLON Cluster]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PROBLEMS&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
1. /usr/lib/libg2c.so link is missing&lt;br /&gt;
&lt;br /&gt;
FIXED ??? 2. /usr/lib/libXm.so link is missing&lt;br /&gt;
&lt;br /&gt;
3. Created /etc/shadow file for clasrun, epics and nagios&lt;br /&gt;
&lt;br /&gt;
== RHEL4 ==&lt;br /&gt;
&lt;br /&gt;
Get RHEL4 CDs from Paul Letta.&lt;br /&gt;
&lt;br /&gt;
Connect terminal, keyboard and mouse.&lt;br /&gt;
&lt;br /&gt;
Boot from CD1. Follow instructions. When asked, choose following options:&lt;br /&gt;
&lt;br /&gt;
* Choose &#039;Manually partition with Disk Druid&#039;, set /boot to 100MB, then / to 40GB, then swap to 8192MB or at least double memory size. The rest of disk can be set as /space.&lt;br /&gt;
&lt;br /&gt;
* Network: choose manually, type clonpc2.jlab.org; click &#039;EDIT&#039;, deactivate &#039;Configure using DHCP&#039;,&lt;br /&gt;
type IP address and netmask (255.255.255.0), click Ok.&lt;br /&gt;
Type Gateway (for example 129.57.167.99) and 3 DNS servers (129.57.167.5,129.57.167.14,129.57.32.100).&lt;br /&gt;
&lt;br /&gt;
* Choose &#039;No firewall&#039;&lt;br /&gt;
&lt;br /&gt;
* Disable &#039;SELinux&#039;&lt;br /&gt;
&lt;br /&gt;
* Choose &#039;Customize software packages to be installed&#039;, click &#039;Everything&#039;.&lt;br /&gt;
&lt;br /&gt;
You will be asked to install CD2, CD3 and CD4, then CD1 again.&lt;br /&gt;
Then you will be asked to click &#039;Reboot&#039;. First remove CD, then click &#039;Reboot&#039;.&lt;br /&gt;
You will be asked few more questions. When asked to activate service, choose&lt;br /&gt;
&#039;Tell me why I need to register ..&#039; and click &#039;Next&#039;. Choose &#039;I can not complete registration ..&#039;&lt;br /&gt;
and click &#039;Next&#039;. You will see &#039;System user&#039; screen, click &#039;Use network login..&#039;.&lt;br /&gt;
Choose &#039;Enable NIS support&#039; and click &#039;Configure NIS&#039;. Type NIS Domain: &#039;CCCHP&#039; and NIS Server: clon00.jlab.org.&lt;br /&gt;
Finish installation process.&lt;br /&gt;
&lt;br /&gt;
* fix files &#039;&#039;/etc/passwd&#039;&#039;, &#039;&#039;/etc/shadow&#039;&#039; and &#039;&#039;/etc/group&#039;&#039; adding clasrun etc (see examples on another machines).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: if machine has multiple network ports, Linux may not assign them properly to specified IP names and addresses. If problem occures, open network GUI and delete all existing records. After that, click &#039;&#039;New&#039;&#039; and pick hadrware port you want to configure from the list of available ports (tricky part is to know which RJ-45 connector corresponds to which port ..). Configure and activate it, make sure it works. Repeat for other ports. Results will be stored in directory &#039;&#039;/etc/sysconfig/network-scripts&#039;&#039;, file names will be &#039;&#039;ifcfg-eth0&#039;&#039;, &#039;&#039;ifcfg-eth1&#039;&#039; etc. If modifying those files manually, restart network by &#039;&#039;/etc/init.d/network restart&#039;&#039;. Finally, set routing, for example for &#039;&#039;clonmon&#039;&#039; command &#039;&#039;route -n&#039;&#039; shows following:&lt;br /&gt;
 Kernel IP routing table&lt;br /&gt;
 Destination     Gateway         Genmask         Flags Metric Ref    Use Iface&lt;br /&gt;
 129.57.160.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1&lt;br /&gt;
 129.57.68.0     0.0.0.0         255.255.255.0   U     0      0        0 eth3&lt;br /&gt;
 129.57.69.0     0.0.0.0         255.255.255.0   U     0      0        0 dev5937&lt;br /&gt;
 129.57.64.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0&lt;br /&gt;
 169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth3&lt;br /&gt;
 0.0.0.0         129.57.68.100   0.0.0.0         UG    0      0        0 eth3&lt;br /&gt;
Run following commands:&lt;br /&gt;
 /sbin/route add -net 129.57.160.0 netmask 255.255.255.0 gw 129.57.160.5 dev eth1&lt;br /&gt;
 /sbin/route add -net 129.57.68.0 netmask 255.255.255.0 gw 129.57.68.26 dev eth3&lt;br /&gt;
 /sbin/route add -net 129.57.69.0 netmask 255.255.255.0 gw 129.57.69.206 dev dev5937&lt;br /&gt;
 /sbin/route add -net 129.57.64.0 netmask 255.255.255.0 gw 129.57.64.57 dev eth0&lt;br /&gt;
Now &#039;&#039;route -n&#039;&#039; shows following:&lt;br /&gt;
 Kernel IP routing table&lt;br /&gt;
 Destination     Gateway         Genmask         Flags Metric Ref    Use Iface&lt;br /&gt;
 129.57.160.0    129.57.160.5    255.255.255.0   UG    0      0        0 eth1&lt;br /&gt;
 129.57.160.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1&lt;br /&gt;
 129.57.68.0     129.57.68.26    255.255.255.0   UG    0      0        0 eth3&lt;br /&gt;
 129.57.68.0     0.0.0.0         255.255.255.0   U     0      0        0 eth3&lt;br /&gt;
 129.57.69.0     129.57.69.206   255.255.255.0   UG    0      0        0 dev5937&lt;br /&gt;
 129.57.69.0     0.0.0.0         255.255.255.0   U     0      0        0 dev5937&lt;br /&gt;
 129.57.64.0     129.57.64.57    255.255.255.0   UG    0      0        0 eth0&lt;br /&gt;
 129.57.64.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0&lt;br /&gt;
 169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth3&lt;br /&gt;
 0.0.0.0         129.57.68.100   0.0.0.0         UG    0      0        0 eth3&lt;br /&gt;
In that example automount will do configured using &#039;&#039;clonmon-daq1&#039;&#039; interface, because default &#039;&#039;clonmon&#039;&#039; interface is on external subnet. To make that routing table permanent (retore it after reboot) I tried to add four files with following contents to the &#039;&#039;/etc/sysconfig/network-scripts&#039;&#039; directory:&lt;br /&gt;
 route-eth1:&lt;br /&gt;
   GATEWAY0=129.57.160.5&lt;br /&gt;
   NETMASK0=255.255.255.0&lt;br /&gt;
   ADDRESS0=129.57.160.0&lt;br /&gt;
 route-eth3:&lt;br /&gt;
   GATEWAY0=129.57.68.26&lt;br /&gt;
   NETMASK0=255.255.255.0&lt;br /&gt;
   ADDRESS0=129.57.68.0&lt;br /&gt;
 route-dev5937:&lt;br /&gt;
   GATEWAY0=129.57.69.206&lt;br /&gt;
   NETMASK0=255.255.255.0&lt;br /&gt;
   ADDRESS0=129.57.69.0&lt;br /&gt;
 route-eth0:&lt;br /&gt;
   GATEWAY0=129.57.64.57&lt;br /&gt;
   NETMASK0=255.255.255.0&lt;br /&gt;
   ADDRESS0=129.57.64.0&lt;br /&gt;
It did not worked. Then I added four &#039;&#039;/sbin/route add ..&#039;&#039; lines to &#039;&#039;/etc/rc.local&#039;&#039; script, and it worked.&lt;br /&gt;
&lt;br /&gt;
From now on you can use remote &#039;ssh&#039; connection.&lt;br /&gt;
&lt;br /&gt;
* To configure your system to use the patch server, issue the following commands as root:&lt;br /&gt;
 # mount jlabsite:/site /mnt&lt;br /&gt;
 # /mnt/CC/linux/satellite-connect --patchall&lt;br /&gt;
The script will prompt you for an activation key, but if you don&#039;t know what this is, just hit ENTER and it will use a sensible default.  Depending on how many patches need to be applied to your system to bring it up to the current level, this script may take a very long time to run.  When it finishes, you should reboot your machine to make the new patches take effect.&lt;br /&gt;
&lt;br /&gt;
To install updates later run &#039;&#039;up2date -uf&#039;&#039; as &#039;&#039;root&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Configure [[SSH]].&lt;br /&gt;
&lt;br /&gt;
* Proceed with [[Linux Customization on CLON Cluster]] if applicable.&lt;br /&gt;
&lt;br /&gt;
To boot Linux in single user mode (no graphics), add &#039;&#039;single&#039;&#039; to the end of boot line during boot process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;background info&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Add startup script&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Create script in &#039;&#039;/etc/init.d/&#039;&#039; directory (use existing scripts as example). Must have a line like&lt;br /&gt;
 # chkconfig:	- 91 09&lt;br /&gt;
which specifies start and stop order. Run commands&lt;br /&gt;
 chkconfig --add &amp;lt;scriptname&amp;gt;&lt;br /&gt;
 chkconfig --level 3 &amp;lt;scriptname&amp;gt; on&lt;br /&gt;
for every level you want that script to be executed (usualy 3 and/or 4 and/or 5). Check if it os done using command&lt;br /&gt;
 chkconfig --list | grep &amp;lt;scriptname&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;xxx&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can choose to download the RHEL operating system directly from the Red Hat Web site and not receive a media kit from HP containing the software. This scenario occurs when the media option AJR is deselected from the order. (The media kit option is always selected by default. )&lt;br /&gt;
&lt;br /&gt;
It is necessary to register at the Red Hat Web site prior to download. Registration requires the activation code that each customer receives from HP when ordering either RHEL.&lt;br /&gt;
&lt;br /&gt;
You can download RHEL for each available platform as four CD ISO images or one DVD ISO image.&lt;br /&gt;
&lt;br /&gt;
Use the following procedure to download RHEL and create the installation media:&lt;br /&gt;
&lt;br /&gt;
   1.&lt;br /&gt;
&lt;br /&gt;
      Register and log in at the following Red Hat Web site:&lt;br /&gt;
&lt;br /&gt;
      www.redhat.com/rhn&lt;br /&gt;
   2.&lt;br /&gt;
&lt;br /&gt;
      Click on channels and then select Red Hat Enterprise Linux ES (v.4 for 64–bit Intel Itanium).&lt;br /&gt;
   3.&lt;br /&gt;
&lt;br /&gt;
      Select Downloads and then download the ISO images of install, compatibility and source disks&lt;br /&gt;
&lt;br /&gt;
      Files with ia64 in the name are for the Itanium platform.&lt;br /&gt;
   4.&lt;br /&gt;
&lt;br /&gt;
      Create the CDs or a DVD from the ISO images.&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
	IMPORTANT: Create the CDs or DVD using the contents of the ISO images. Do not create the CDs or DVD by burning the .iso files themselves to CD or DVD. For example, if you are using K3b to burn a CD, click Tools&amp;gt;CD&amp;gt;Burn CD Image, select the .iso image, then click Burn.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bootup scripts&#039;&#039;&#039; for example for level 5 execution (multiuser with X):&lt;br /&gt;
&lt;br /&gt;
 cp &amp;lt;script-file&amp;gt; /etc/init.d/&lt;br /&gt;
 chmod +x /etc/init.d/&amp;lt;script-file&amp;gt;&lt;br /&gt;
 ln -s /etc/init.d/&amp;lt;scriptfile&amp;gt; /etc/rc.d/rc5.d/S50&amp;lt;scriptfile&amp;gt;&lt;br /&gt;
 ln -s /etc/init.d/&amp;lt;scriptfile&amp;gt; /etc/rc.d/rc5.d/K50&amp;lt;scriptfile&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changing hostname/IP address&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 Changing hostname on RHEL&lt;br /&gt;
 1. Change the HOSTNAME line in /etc/sysconfig/network&lt;br /&gt;
 2. Change the hostname (FQDN and alias) in /etc/hosts&lt;br /&gt;
 3. Run &#039;/bin/hostname new_hostname&#039; for the hostname change to take effect immediately.&lt;br /&gt;
 4. Run &#039;/sbin/service syslog restart&#039; for syslog to log using the new hostname.&lt;br /&gt;
 A reboot is not required to change the system hostname.&lt;br /&gt;
&lt;br /&gt;
 IP address: You have to change the IP address entry in&lt;br /&gt;
 /etc/sysconfig/network-scripts/ifcfg-eth0.&lt;/div&gt;</summary>
		<author><name>Boiarino</name></author>
	</entry>
	<entry>
		<id>https://clonwiki0.jlab.org/wiki/index.php?title=Move2silo&amp;diff=8699</id>
		<title>Move2silo</title>
		<link rel="alternate" type="text/html" href="https://clonwiki0.jlab.org/wiki/index.php?title=Move2silo&amp;diff=8699"/>
		<updated>2026-02-09T18:35:42Z</updated>

		<summary type="html">&lt;p&gt;Boiarino: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&#039;&#039;&#039;RHEL9&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
NOTE: package installed from &#039;&#039;yum&#039;&#039;, presumably by &#039;&#039;puppet&#039;&#039;, and presumably by command &#039;&#039;yum install jasmine-client&#039;&#039; (&#039;&#039;jasmine-client-54.10.5-1&#039;&#039;, or whatever newer vertion is)&lt;br /&gt;
&lt;br /&gt;
CLAS12(rg-l) data:&lt;br /&gt;
&lt;br /&gt;
 MAILTO=&amp;quot;&amp;quot;&lt;br /&gt;
 # Scan for to-tape files every 10 minutes&lt;br /&gt;
 0,10,20,30,40,50 * * * * /usr/bin/jmigrate /data/stage2 /data/stage2 /mss/clas12/rg-l/data -jvm:-Dfile.transfer.client.displayrates=true&lt;br /&gt;
 ##0,10,20,30,40,50 * * * * /usr/bin/jmigrate /data/stage2 /data/stage2 /mss/clas12/rg-l/data -jvm:-Dfile.transfer.client.displayrates=true -delete written&lt;br /&gt;
&lt;br /&gt;
PRAD test setup data:&lt;br /&gt;
&lt;br /&gt;
 MAILTO=&amp;quot;&amp;quot;&lt;br /&gt;
 # Scan for to-tape files every 10 minutes&lt;br /&gt;
 0,10,20,30,40,50 * * * * /usr/bin/jmigrate /data/stage2 /data/stage2 /mss/hallb/prad2/data -jvm:-Dfile.transfer.client.displayrates=true -delete written&lt;br /&gt;
&lt;br /&gt;
uRwell test setup data (clondaq11):&lt;br /&gt;
&lt;br /&gt;
 MAILTO=&amp;quot;&amp;quot;&lt;br /&gt;
 # Scan for to-tape files every 10 minutes&lt;br /&gt;
 0,10,20,30,40,50 * * * * /usr/bin/jmigrate /data/uRwell /data/uRwell /mss/clas12/detectors/uRwell/2026_EEL -jvm:-Dfile.transfer.client.displayrates=true -delete written&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; log files can be found in &#039;&#039;/tmp/clascron/jmigrate&#039;&#039; subdirectories&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; add flag &#039;&#039;-cache&#039;&#039; if want files to be stored in cache&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RHEL7&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
NOTE: &#039;&#039;jasmine&#039;&#039; software installed by Chris Larrieu to the area &#039;&#039;/usr/local/scicomp&#039;&#039; mounted on all RHEL7 machines&lt;br /&gt;
&lt;br /&gt;
Data moving process initiated by cronjob, running from &#039;clascron&#039; account, for example for HPS experiment on clondaq5:&lt;br /&gt;
&lt;br /&gt;
 0,10,20,30,40,50 * * * * /usr/local/scicomp/jasmine/bin/jmigrate /data/stage5 /data/stage5 /mss/hallb/hps/physrun2019/data -jvm:-Dfile.transfer.client.displayrates=true&lt;br /&gt;
&lt;br /&gt;
and for CLAS12 run group A on clondaq6:&lt;br /&gt;
&lt;br /&gt;
 0,10,20,30,40,50 * * * * /usr/local/scicomp/jasmine/bin/jmigrate /data/stage6 /data/stage6 /mss/clas12/rg-a/data -jvm:-Dfile.transfer.client.displayrates=true&lt;br /&gt;
&lt;br /&gt;
Cronjob files for different run periods can be found in &#039;&#039;~clascron/backup/&#039;&#039; directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;OLD&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In auto.master make sure the auto.direct is mounted without timeout:&lt;br /&gt;
&lt;br /&gt;
 /-      /etc/auto.direct  --timeout 0&lt;br /&gt;
&lt;br /&gt;
If changed, restart autofs (on RHEL7 do &#039;service autofs restart&#039;). To forcibly unmount do &#039;umount -lf /xxx/yyy&#039;.&lt;br /&gt;
&lt;br /&gt;
Following have to be in auto.direct:&lt;br /&gt;
&lt;br /&gt;
 /lustre/scicomp/jasmine/fairy2 -fstype=nfs,rw,async,vers=3 scidaqgw10b:/lustre/scicomp/jasmine/fairy2&lt;br /&gt;
&lt;br /&gt;
Following cronjob have to be running as user &#039;clascron&#039; on machine moving data to tape:&lt;br /&gt;
&lt;br /&gt;
 # Scan for to-tape files every 15 minutes&lt;br /&gt;
 10,25,40,55 * * * * /usr/local/scicomp/jasmine/bin/jmigrate /data/totape /data/totape /mss/clas12/er-a/data -jvm:-Dfile.transfer.client.displayrates=true&lt;br /&gt;
 # access occasionally to keep it visible&lt;br /&gt;
 * * * * * /bin/csh -c &amp;quot;(ls -al /lustre/scicomp/jasmine/fairy2/) &amp;gt;&amp;gt;&amp;amp;! /usr/logs/disks/clondaq6_lustre&amp;quot;&lt;br /&gt;
 * * * * * /bin/csh -c &amp;quot;(sleep 48; rm -f /usr/logs/disks/clondaq6_lustre) &amp;gt;&amp;gt;&amp;amp;! /dev/null&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Log files are in&lt;br /&gt;
 /usr/local/scicomp/jasmine/log/jmigrate/data-totape/.&lt;br /&gt;
&lt;br /&gt;
If job stuck, remove the lock file:&lt;br /&gt;
&lt;br /&gt;
 rm /tmp/jmigrate-data-totape.lock&lt;br /&gt;
&lt;br /&gt;
Useful command to check process status:&lt;br /&gt;
&lt;br /&gt;
 ps auxf | grep java&lt;br /&gt;
&lt;br /&gt;
If see something like&lt;br /&gt;
&lt;br /&gt;
 clascron 128847  0.0  1.0 7307240 662088 ?      D    Dec14   0:00  \_ java -DJMirror.minFileModif.........&lt;br /&gt;
&lt;br /&gt;
job marked as &#039;D&#039; is in uninterruptable state and cannot not be kiiled by &#039;kill -9&#039;. Other stuck jobs can be killed, they became &amp;lt;defunct&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
To see files on tape, ssh to ifarm65 and type:&lt;br /&gt;
&lt;br /&gt;
 ls -ltrh /mss/clas12/er-a/data/ | tail&lt;br /&gt;
&lt;br /&gt;
To see files still in cache:&lt;br /&gt;
&lt;br /&gt;
 ls -ltrh /cache/mss/clas12/er-a/data/ | tail&lt;br /&gt;
&lt;br /&gt;
To retrieve from the tape :&lt;br /&gt;
 jget /mss/clas12/er-a/data/clas_00XXXX.evio.Y #copy to the current directory&lt;br /&gt;
 jget /mss/clas12/er-a/data/clas_00XXXX.evio.Y /path/to/dir #copy to the directory with path&lt;br /&gt;
 jget /mss/clas12/er-a/data/clas_00XXXX.evio.Y /mss/clas12/er-a/data/clas_00XXXX.evio.Z /path/to/dir # copy two files&lt;br /&gt;
&lt;br /&gt;
Mover&#039;s status can be checked at https://scicomp.jlab.org/scicomp/moverStatus&lt;br /&gt;
&lt;br /&gt;
Job&#039;s schedule can be checked at https://scicomp.jlab.org/scicomp/tapeJob/scheduled&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: problems were observed in Dec 2017 moving data with NFS-mounted scidaqgw10b or scidaqgw10f. To fix stuched job, jcancel have to be issued on movers side. When NFS mount was removed and process started to use network socket, everything works.&lt;/div&gt;</summary>
		<author><name>Boiarino</name></author>
	</entry>
	<entry>
		<id>https://clonwiki0.jlab.org/wiki/index.php?title=Move2silo&amp;diff=8698</id>
		<title>Move2silo</title>
		<link rel="alternate" type="text/html" href="https://clonwiki0.jlab.org/wiki/index.php?title=Move2silo&amp;diff=8698"/>
		<updated>2026-02-06T20:14:26Z</updated>

		<summary type="html">&lt;p&gt;Boiarino: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&#039;&#039;&#039;RHEL9&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
NOTE: package installed from &#039;&#039;yum&#039;&#039;, presumably by &#039;&#039;puppet&#039;&#039;, and presumably by command &#039;&#039;yum install jasmine-client&#039;&#039; (&#039;&#039;jasmine-client-54.10.5-1&#039;&#039;, or whatever newer vertion is)&lt;br /&gt;
&lt;br /&gt;
CLAS12(rg-l) data:&lt;br /&gt;
&lt;br /&gt;
 MAILTO=&amp;quot;&amp;quot;&lt;br /&gt;
 # Scan for to-tape files every 10 minutes&lt;br /&gt;
 0,10,20,30,40,50 * * * * /usr/bin/jmigrate /data/stage2 /data/stage2 /mss/clas12/rg-l/data -jvm:-Dfile.transfer.client.displayrates=true&lt;br /&gt;
 ##0,10,20,30,40,50 * * * * /usr/bin/jmigrate /data/stage2 /data/stage2 /mss/clas12/rg-l/data -jvm:-Dfile.transfer.client.displayrates=true -delete written&lt;br /&gt;
&lt;br /&gt;
PRAD test setup data:&lt;br /&gt;
&lt;br /&gt;
 MAILTO=&amp;quot;&amp;quot;&lt;br /&gt;
 # Scan for to-tape files every 10 minutes&lt;br /&gt;
 0,10,20,30,40,50 * * * * /usr/bin/jmigrate /data/stage2 /data/stage2 /mss/hallb/prad2/data -jvm:-Dfile.transfer.client.displayrates=true -delete written&lt;br /&gt;
&lt;br /&gt;
uRwell test setup data (clondaq11):&lt;br /&gt;
&lt;br /&gt;
 MAILTO=&amp;quot;&amp;quot;&lt;br /&gt;
 # Scan for to-tape files every 10 minutes&lt;br /&gt;
 0,10,20,30,40,50 * * * * /usr/bin/jmigrate /data/uRwell /data/uRwell /mss/clas12/detectors/uRwell/2026_EEL -jvm:-Dfile.transfer.client.displayrates=true -delete written&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; log files can be found in &#039;&#039;/tmp/clascron/jmigrate&#039;&#039; subdirectories&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RHEL7&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
NOTE: &#039;&#039;jasmine&#039;&#039; software installed by Chris Larrieu to the area &#039;&#039;/usr/local/scicomp&#039;&#039; mounted on all RHEL7 machines&lt;br /&gt;
&lt;br /&gt;
Data moving process initiated by cronjob, running from &#039;clascron&#039; account, for example for HPS experiment on clondaq5:&lt;br /&gt;
&lt;br /&gt;
 0,10,20,30,40,50 * * * * /usr/local/scicomp/jasmine/bin/jmigrate /data/stage5 /data/stage5 /mss/hallb/hps/physrun2019/data -jvm:-Dfile.transfer.client.displayrates=true&lt;br /&gt;
&lt;br /&gt;
and for CLAS12 run group A on clondaq6:&lt;br /&gt;
&lt;br /&gt;
 0,10,20,30,40,50 * * * * /usr/local/scicomp/jasmine/bin/jmigrate /data/stage6 /data/stage6 /mss/clas12/rg-a/data -jvm:-Dfile.transfer.client.displayrates=true&lt;br /&gt;
&lt;br /&gt;
Cronjob files for different run periods can be found in &#039;&#039;~clascron/backup/&#039;&#039; directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;OLD&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In auto.master make sure the auto.direct is mounted without timeout:&lt;br /&gt;
&lt;br /&gt;
 /-      /etc/auto.direct  --timeout 0&lt;br /&gt;
&lt;br /&gt;
If changed, restart autofs (on RHEL7 do &#039;service autofs restart&#039;). To forcibly unmount do &#039;umount -lf /xxx/yyy&#039;.&lt;br /&gt;
&lt;br /&gt;
Following have to be in auto.direct:&lt;br /&gt;
&lt;br /&gt;
 /lustre/scicomp/jasmine/fairy2 -fstype=nfs,rw,async,vers=3 scidaqgw10b:/lustre/scicomp/jasmine/fairy2&lt;br /&gt;
&lt;br /&gt;
Following cronjob have to be running as user &#039;clascron&#039; on machine moving data to tape:&lt;br /&gt;
&lt;br /&gt;
 # Scan for to-tape files every 15 minutes&lt;br /&gt;
 10,25,40,55 * * * * /usr/local/scicomp/jasmine/bin/jmigrate /data/totape /data/totape /mss/clas12/er-a/data -jvm:-Dfile.transfer.client.displayrates=true&lt;br /&gt;
 # access occasionally to keep it visible&lt;br /&gt;
 * * * * * /bin/csh -c &amp;quot;(ls -al /lustre/scicomp/jasmine/fairy2/) &amp;gt;&amp;gt;&amp;amp;! /usr/logs/disks/clondaq6_lustre&amp;quot;&lt;br /&gt;
 * * * * * /bin/csh -c &amp;quot;(sleep 48; rm -f /usr/logs/disks/clondaq6_lustre) &amp;gt;&amp;gt;&amp;amp;! /dev/null&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Log files are in&lt;br /&gt;
 /usr/local/scicomp/jasmine/log/jmigrate/data-totape/.&lt;br /&gt;
&lt;br /&gt;
If job stuck, remove the lock file:&lt;br /&gt;
&lt;br /&gt;
 rm /tmp/jmigrate-data-totape.lock&lt;br /&gt;
&lt;br /&gt;
Useful command to check process status:&lt;br /&gt;
&lt;br /&gt;
 ps auxf | grep java&lt;br /&gt;
&lt;br /&gt;
If see something like&lt;br /&gt;
&lt;br /&gt;
 clascron 128847  0.0  1.0 7307240 662088 ?      D    Dec14   0:00  \_ java -DJMirror.minFileModif.........&lt;br /&gt;
&lt;br /&gt;
job marked as &#039;D&#039; is in uninterruptable state and cannot not be kiiled by &#039;kill -9&#039;. Other stuck jobs can be killed, they became &amp;lt;defunct&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
To see files on tape, ssh to ifarm65 and type:&lt;br /&gt;
&lt;br /&gt;
 ls -ltrh /mss/clas12/er-a/data/ | tail&lt;br /&gt;
&lt;br /&gt;
To see files still in cache:&lt;br /&gt;
&lt;br /&gt;
 ls -ltrh /cache/mss/clas12/er-a/data/ | tail&lt;br /&gt;
&lt;br /&gt;
To retrieve from the tape :&lt;br /&gt;
 jget /mss/clas12/er-a/data/clas_00XXXX.evio.Y #copy to the current directory&lt;br /&gt;
 jget /mss/clas12/er-a/data/clas_00XXXX.evio.Y /path/to/dir #copy to the directory with path&lt;br /&gt;
 jget /mss/clas12/er-a/data/clas_00XXXX.evio.Y /mss/clas12/er-a/data/clas_00XXXX.evio.Z /path/to/dir # copy two files&lt;br /&gt;
&lt;br /&gt;
Mover&#039;s status can be checked at https://scicomp.jlab.org/scicomp/moverStatus&lt;br /&gt;
&lt;br /&gt;
Job&#039;s schedule can be checked at https://scicomp.jlab.org/scicomp/tapeJob/scheduled&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: problems were observed in Dec 2017 moving data with NFS-mounted scidaqgw10b or scidaqgw10f. To fix stuched job, jcancel have to be issued on movers side. When NFS mount was removed and process started to use network socket, everything works.&lt;/div&gt;</summary>
		<author><name>Boiarino</name></author>
	</entry>
	<entry>
		<id>https://clonwiki0.jlab.org/wiki/index.php?title=CLON_Standard_Procedures&amp;diff=8697</id>
		<title>CLON Standard Procedures</title>
		<link rel="alternate" type="text/html" href="https://clonwiki0.jlab.org/wiki/index.php?title=CLON_Standard_Procedures&amp;diff=8697"/>
		<updated>2026-02-06T19:18:24Z</updated>

		<summary type="html">&lt;p&gt;Boiarino: /* SRS/Maroc/VMM3 test setup in EEL/125 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Contacts:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Computer Center 24/7 phone: 876-1794&lt;br /&gt;
* Sergey Boyarinov: USA cell: 757-232-6221 by Verizon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== MPD test in the Hall ===&lt;br /&gt;
&lt;br /&gt;
 ssh clasrun@clondaq9&lt;br /&gt;
 runcontrol -rocs&lt;br /&gt;
 Config: TEST3&lt;br /&gt;
 Download: sergey/test3.trg (random 15Hz) or whatever&lt;br /&gt;
&lt;br /&gt;
=== MPD test in EEL ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; controller test33 is in crate svt3, so to reboot it, command &#039;&#039;roc_reboot svt3&#039;&#039; should be used&lt;br /&gt;
&lt;br /&gt;
 ssh clasrun@clonfarm21&lt;br /&gt;
 setenv EXPID clasdev&lt;br /&gt;
 runcontrol -rocs&lt;br /&gt;
 Config: test33_clonfarm21&lt;br /&gt;
 Download: sergey/random.trg&lt;br /&gt;
&lt;br /&gt;
=== ALERT in the hall ===&lt;br /&gt;
&lt;br /&gt;
 ssh clasrun@clondaq7 (or vncviewer -Shared clondaq7:5901)&lt;br /&gt;
 killcoda&lt;br /&gt;
 runcontrol -rocs&lt;br /&gt;
 Configure: ALERT_CTOF_CND_TS&lt;br /&gt;
 Download: alert_cosmics.trg&lt;br /&gt;
&lt;br /&gt;
Data will be written to directories &#039;&#039;clondaq7:/data/stage_in/alert_xxxxxx&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Configuring ATOF: reference to Benjamin Raydo &amp;lt;braydo@jlab.org&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Config file for AHDC (Dream-based electronics) is &#039;&#039;$CLON_PARMS/mvt/alert1.cnf&#039;&#039;. It is symbolic link, set by pedestal measurement procedure, reference to Rafayel Paremuzyan &amp;lt;rafopar@jlab.org&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
AHDC pedestal run procedure (&#039;&#039;&#039;as clasrun !!!&#039;&#039;&#039;):&lt;br /&gt;
 ssh clasrun@alert1&lt;br /&gt;
   (make sure coda components, like coda_roc_gef, are not running on alert1)&lt;br /&gt;
 cd /home/clasrun/mvt/CodaScripts/&lt;br /&gt;
   (adjust alert1c.cnf if needed)&lt;br /&gt;
 ./Alert MvtRunBatchCol PEDRUNTST alert1c 1000 DEBUG&lt;br /&gt;
   (may need to delete lock file)&lt;br /&gt;
&lt;br /&gt;
=== Wolfram test setup in TEDF/1546 ===&lt;br /&gt;
&lt;br /&gt;
Just daq testing with random pulser:&lt;br /&gt;
 ssh clasrun@pcal0&lt;br /&gt;
 runcontrol -rocs&lt;br /&gt;
 Configure: pcal0&lt;br /&gt;
 Download: sergey/random.trg&lt;br /&gt;
&lt;br /&gt;
Production:&lt;br /&gt;
 ssh clasrun@clonpc27&lt;br /&gt;
 runcontrol -rocs&lt;br /&gt;
 Configure: WOLFRAM_POWDER&lt;br /&gt;
 Download: PCAL0/wolfram.trg&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
=== Sampa test setup in EEL/125 ===&lt;br /&gt;
&lt;br /&gt;
 ssh clasrun@clonpc11&lt;br /&gt;
 runcontrol -rocs&lt;br /&gt;
 Configure: clonpc11_svt3&lt;br /&gt;
 Download: sergey/svt3.trg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== VMM test setup in 12/B108 ===&lt;br /&gt;
&lt;br /&gt;
 ssh clasrun@clondaq8&lt;br /&gt;
 runcontrol -rocs&lt;br /&gt;
 Configure: clondaq8&lt;br /&gt;
 Download: sergey/dummy.trg&lt;br /&gt;
&lt;br /&gt;
See [[VMM3]] for details.&lt;br /&gt;
&lt;br /&gt;
=== SRS/Maroc/VMM3 test setup in EEL/125 ===&lt;br /&gt;
&lt;br /&gt;
 vncviewer clonsl3:3 (pass &#039;hpshodo&#039;)&lt;br /&gt;
 ssh clasrun@clondaq11&lt;br /&gt;
 runcontrol -rocs&lt;br /&gt;
 Configure: urwell_maroc&lt;br /&gt;
 Download: uRwellTestProto/test3_urwell_Random.trg&lt;br /&gt;
&lt;br /&gt;
=== Streaming test setup in Hall B Counting Room ===&lt;br /&gt;
&lt;br /&gt;
 ssh clondaq1&lt;br /&gt;
 runcontrol -rocs&lt;br /&gt;
&lt;br /&gt;
 Configure(test setup): TEST0 (test0 only), TEST0_TEST2 (test0 master + test2 slave)&lt;br /&gt;
 Download: STREAMING/test0_test2.trg, STREAMING/test0_dcrb.trg&lt;br /&gt;
&lt;br /&gt;
 Configure(hallb): DC2(dc21,dc22,dc23 standalone)&lt;br /&gt;
 Download: STREAMING/subway.trg&lt;br /&gt;
&lt;br /&gt;
=== BDX test setup in EEL/125 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Triggered daq:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 ssh clasrun@clondaq5&lt;br /&gt;
 runcontrol -rocs&lt;br /&gt;
 Configure: BDX0 (without writing to the disk), BDX0_ER (with writing)&lt;br /&gt;
 Download: BDX/bdx0_random.trg (internal random pulser)&lt;br /&gt;
           BDX/bdx0_generator.trg (external pulser)&lt;br /&gt;
           BDX/bdx0_scintillator.trg (two scintillators coincidence)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Streaming daq:&#039;&#039;&#039; (release 1.4.0_streaming)&lt;br /&gt;
&lt;br /&gt;
 ssh clasrun@clondaq10 (will be clondaq5 in future)&lt;br /&gt;
 runcontrol -rocs&lt;br /&gt;
 Configure: sro_dbx0_clondaq10&lt;br /&gt;
 Download: BDX/bdx0_streaming.trg&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Serial connection to bdx0vtp:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 ssh root@clonxt14&lt;br /&gt;
 xminicom -D /dev/ttyUSB0&lt;br /&gt;
&lt;br /&gt;
=== PRAD test setup in ESB ===&lt;br /&gt;
&lt;br /&gt;
 ssh clasrun@clondaq13&lt;br /&gt;
 runcontrol -rocs&lt;br /&gt;
 Configure: prad0, prad0_er&lt;br /&gt;
 Download: PRAD/prad0.trg&lt;br /&gt;
 (data will be recorded to local disk to directory /data)&lt;br /&gt;
&lt;br /&gt;
=== PETIROC test setup ===&lt;br /&gt;
&lt;br /&gt;
 ssh clasrun@clondaq11&lt;br /&gt;
 runcontrol -rocs&lt;br /&gt;
 Configure: clondaq11&lt;br /&gt;
&lt;br /&gt;
=== TEST1 setup (new controller, release 2.0.0) ===&lt;br /&gt;
&lt;br /&gt;
 ssh clasrun@clondaq15&lt;br /&gt;
 ssh test7&lt;br /&gt;
 runcontrol -rocs&lt;br /&gt;
 coda config: test1&lt;br /&gt;
 trigger file: $CLON_PARMS/trigger/test/test1.trg&lt;br /&gt;
 data files will be written to directory /work/test1/, file names &#039;test1_002....&#039;&lt;/div&gt;</summary>
		<author><name>Boiarino</name></author>
	</entry>
	<entry>
		<id>https://clonwiki0.jlab.org/wiki/index.php?title=Move2silo&amp;diff=8696</id>
		<title>Move2silo</title>
		<link rel="alternate" type="text/html" href="https://clonwiki0.jlab.org/wiki/index.php?title=Move2silo&amp;diff=8696"/>
		<updated>2026-02-06T16:28:05Z</updated>

		<summary type="html">&lt;p&gt;Boiarino: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&#039;&#039;&#039;RHEL9&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
NOTE: package installed from &#039;&#039;yum&#039;&#039;, presumably by &#039;&#039;puppet&#039;&#039;, and presumably by command &#039;&#039;yum install jasmine-client&#039;&#039; (&#039;&#039;jasmine-client-54.10.5-1&#039;&#039;, or whatever newer vertion is)&lt;br /&gt;
&lt;br /&gt;
CLAS12(rg-l) data:&lt;br /&gt;
&lt;br /&gt;
 MAILTO=&amp;quot;&amp;quot;&lt;br /&gt;
 # Scan for to-tape files every 10 minutes&lt;br /&gt;
 0,10,20,30,40,50 * * * * /usr/bin/jmigrate /data/stage2 /data/stage2 /mss/clas12/rg-l/data -jvm:-Dfile.transfer.client.displayrates=true&lt;br /&gt;
 ##0,10,20,30,40,50 * * * * /usr/bin/jmigrate /data/stage2 /data/stage2 /mss/clas12/rg-l/data -jvm:-Dfile.transfer.client.displayrates=true -delete written&lt;br /&gt;
&lt;br /&gt;
PRAD test setup data:&lt;br /&gt;
&lt;br /&gt;
 MAILTO=&amp;quot;&amp;quot;&lt;br /&gt;
 # Scan for to-tape files every 10 minutes&lt;br /&gt;
 0,10,20,30,40,50 * * * * /usr/bin/jmigrate /data/stage2 /data/stage2 /mss/hallb/prad2/data -jvm:-Dfile.transfer.client.displayrates=true -delete written&lt;br /&gt;
&lt;br /&gt;
uRwell test setup data (clondaq11):&lt;br /&gt;
&lt;br /&gt;
 MAILTO=&amp;quot;&amp;quot;&lt;br /&gt;
 # Scan for to-tape files every 10 minutes&lt;br /&gt;
 0,10,20,30,40,50 * * * * /usr/bin/jmigrate /data/uRwell /data/uRwell /mss/clas12/detectors/uRwell/2026_EEL -jvm:-Dfile.transfer.client.displayrates=true -delete written&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RHEL7&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
NOTE: &#039;&#039;jasmine&#039;&#039; software installed by Chris Larrieu to the area &#039;&#039;/usr/local/scicomp&#039;&#039; mounted on all RHEL7 machines&lt;br /&gt;
&lt;br /&gt;
Data moving process initiated by cronjob, running from &#039;clascron&#039; account, for example for HPS experiment on clondaq5:&lt;br /&gt;
&lt;br /&gt;
 0,10,20,30,40,50 * * * * /usr/local/scicomp/jasmine/bin/jmigrate /data/stage5 /data/stage5 /mss/hallb/hps/physrun2019/data -jvm:-Dfile.transfer.client.displayrates=true&lt;br /&gt;
&lt;br /&gt;
and for CLAS12 run group A on clondaq6:&lt;br /&gt;
&lt;br /&gt;
 0,10,20,30,40,50 * * * * /usr/local/scicomp/jasmine/bin/jmigrate /data/stage6 /data/stage6 /mss/clas12/rg-a/data -jvm:-Dfile.transfer.client.displayrates=true&lt;br /&gt;
&lt;br /&gt;
Cronjob files for different run periods can be found in &#039;&#039;~clascron/backup/&#039;&#039; directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;OLD&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In auto.master make sure the auto.direct is mounted without timeout:&lt;br /&gt;
&lt;br /&gt;
 /-      /etc/auto.direct  --timeout 0&lt;br /&gt;
&lt;br /&gt;
If changed, restart autofs (on RHEL7 do &#039;service autofs restart&#039;). To forcibly unmount do &#039;umount -lf /xxx/yyy&#039;.&lt;br /&gt;
&lt;br /&gt;
Following have to be in auto.direct:&lt;br /&gt;
&lt;br /&gt;
 /lustre/scicomp/jasmine/fairy2 -fstype=nfs,rw,async,vers=3 scidaqgw10b:/lustre/scicomp/jasmine/fairy2&lt;br /&gt;
&lt;br /&gt;
Following cronjob have to be running as user &#039;clascron&#039; on machine moving data to tape:&lt;br /&gt;
&lt;br /&gt;
 # Scan for to-tape files every 15 minutes&lt;br /&gt;
 10,25,40,55 * * * * /usr/local/scicomp/jasmine/bin/jmigrate /data/totape /data/totape /mss/clas12/er-a/data -jvm:-Dfile.transfer.client.displayrates=true&lt;br /&gt;
 # access occasionally to keep it visible&lt;br /&gt;
 * * * * * /bin/csh -c &amp;quot;(ls -al /lustre/scicomp/jasmine/fairy2/) &amp;gt;&amp;gt;&amp;amp;! /usr/logs/disks/clondaq6_lustre&amp;quot;&lt;br /&gt;
 * * * * * /bin/csh -c &amp;quot;(sleep 48; rm -f /usr/logs/disks/clondaq6_lustre) &amp;gt;&amp;gt;&amp;amp;! /dev/null&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Log files are in&lt;br /&gt;
 /usr/local/scicomp/jasmine/log/jmigrate/data-totape/.&lt;br /&gt;
&lt;br /&gt;
If job stuck, remove the lock file:&lt;br /&gt;
&lt;br /&gt;
 rm /tmp/jmigrate-data-totape.lock&lt;br /&gt;
&lt;br /&gt;
Useful command to check process status:&lt;br /&gt;
&lt;br /&gt;
 ps auxf | grep java&lt;br /&gt;
&lt;br /&gt;
If see something like&lt;br /&gt;
&lt;br /&gt;
 clascron 128847  0.0  1.0 7307240 662088 ?      D    Dec14   0:00  \_ java -DJMirror.minFileModif.........&lt;br /&gt;
&lt;br /&gt;
job marked as &#039;D&#039; is in uninterruptable state and cannot not be kiiled by &#039;kill -9&#039;. Other stuck jobs can be killed, they became &amp;lt;defunct&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
To see files on tape, ssh to ifarm65 and type:&lt;br /&gt;
&lt;br /&gt;
 ls -ltrh /mss/clas12/er-a/data/ | tail&lt;br /&gt;
&lt;br /&gt;
To see files still in cache:&lt;br /&gt;
&lt;br /&gt;
 ls -ltrh /cache/mss/clas12/er-a/data/ | tail&lt;br /&gt;
&lt;br /&gt;
To retrieve from the tape :&lt;br /&gt;
 jget /mss/clas12/er-a/data/clas_00XXXX.evio.Y #copy to the current directory&lt;br /&gt;
 jget /mss/clas12/er-a/data/clas_00XXXX.evio.Y /path/to/dir #copy to the directory with path&lt;br /&gt;
 jget /mss/clas12/er-a/data/clas_00XXXX.evio.Y /mss/clas12/er-a/data/clas_00XXXX.evio.Z /path/to/dir # copy two files&lt;br /&gt;
&lt;br /&gt;
Mover&#039;s status can be checked at https://scicomp.jlab.org/scicomp/moverStatus&lt;br /&gt;
&lt;br /&gt;
Job&#039;s schedule can be checked at https://scicomp.jlab.org/scicomp/tapeJob/scheduled&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: problems were observed in Dec 2017 moving data with NFS-mounted scidaqgw10b or scidaqgw10f. To fix stuched job, jcancel have to be issued on movers side. When NFS mount was removed and process started to use network socket, everything works.&lt;/div&gt;</summary>
		<author><name>Boiarino</name></author>
	</entry>
	<entry>
		<id>https://clonwiki0.jlab.org/wiki/index.php?title=Move2silo&amp;diff=8695</id>
		<title>Move2silo</title>
		<link rel="alternate" type="text/html" href="https://clonwiki0.jlab.org/wiki/index.php?title=Move2silo&amp;diff=8695"/>
		<updated>2026-02-06T16:18:09Z</updated>

		<summary type="html">&lt;p&gt;Boiarino: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&#039;&#039;&#039;RHEL9&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
NOTE: package installed from &#039;&#039;yum&#039;&#039;, presumably by &#039;&#039;puppet&#039;&#039;, and presumably by command &#039;&#039;yum install jasmine-client&#039;&#039; (&#039;&#039;jasmine-client-54.10.5-1&#039;&#039;, or whatever newer vertion is)&lt;br /&gt;
&lt;br /&gt;
CLAS12(rg-l) data:&lt;br /&gt;
&lt;br /&gt;
 MAILTO=&amp;quot;&amp;quot;&lt;br /&gt;
 # Scan for to-tape files every 10 minutes&lt;br /&gt;
 0,10,20,30,40,50 * * * * /usr/bin/jmigrate /data/stage2 /data/stage2 /mss/clas12/rg-l/data -jvm:-Dfile.transfer.client.displayrates=true&lt;br /&gt;
 ##0,10,20,30,40,50 * * * * /usr/bin/jmigrate /data/stage2 /data/stage2 /mss/clas12/rg-l/data -jvm:-Dfile.transfer.client.displayrates=true -delete written&lt;br /&gt;
&lt;br /&gt;
PRAD test setup data:&lt;br /&gt;
&lt;br /&gt;
 MAILTO=&amp;quot;&amp;quot;&lt;br /&gt;
 # Scan for to-tape files every 10 minutes&lt;br /&gt;
 0,10,20,30,40,50 * * * * /usr/bin/jmigrate /data/stage2 /data/stage2 /mss/hallb/prad2/data -jvm:-Dfile.transfer.client.displayrates=true -delete written&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RHEL7&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
NOTE: &#039;&#039;jasmine&#039;&#039; software installed by Chris Larrieu to the area &#039;&#039;/usr/local/scicomp&#039;&#039; mounted on all RHEL7 machines&lt;br /&gt;
&lt;br /&gt;
Data moving process initiated by cronjob, running from &#039;clascron&#039; account, for example for HPS experiment on clondaq5:&lt;br /&gt;
&lt;br /&gt;
 0,10,20,30,40,50 * * * * /usr/local/scicomp/jasmine/bin/jmigrate /data/stage5 /data/stage5 /mss/hallb/hps/physrun2019/data -jvm:-Dfile.transfer.client.displayrates=true&lt;br /&gt;
&lt;br /&gt;
and for CLAS12 run group A on clondaq6:&lt;br /&gt;
&lt;br /&gt;
 0,10,20,30,40,50 * * * * /usr/local/scicomp/jasmine/bin/jmigrate /data/stage6 /data/stage6 /mss/clas12/rg-a/data -jvm:-Dfile.transfer.client.displayrates=true&lt;br /&gt;
&lt;br /&gt;
Cronjob files for different run periods can be found in &#039;&#039;~clascron/backup/&#039;&#039; directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;OLD&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In auto.master make sure the auto.direct is mounted without timeout:&lt;br /&gt;
&lt;br /&gt;
 /-      /etc/auto.direct  --timeout 0&lt;br /&gt;
&lt;br /&gt;
If changed, restart autofs (on RHEL7 do &#039;service autofs restart&#039;). To forcibly unmount do &#039;umount -lf /xxx/yyy&#039;.&lt;br /&gt;
&lt;br /&gt;
Following have to be in auto.direct:&lt;br /&gt;
&lt;br /&gt;
 /lustre/scicomp/jasmine/fairy2 -fstype=nfs,rw,async,vers=3 scidaqgw10b:/lustre/scicomp/jasmine/fairy2&lt;br /&gt;
&lt;br /&gt;
Following cronjob have to be running as user &#039;clascron&#039; on machine moving data to tape:&lt;br /&gt;
&lt;br /&gt;
 # Scan for to-tape files every 15 minutes&lt;br /&gt;
 10,25,40,55 * * * * /usr/local/scicomp/jasmine/bin/jmigrate /data/totape /data/totape /mss/clas12/er-a/data -jvm:-Dfile.transfer.client.displayrates=true&lt;br /&gt;
 # access occasionally to keep it visible&lt;br /&gt;
 * * * * * /bin/csh -c &amp;quot;(ls -al /lustre/scicomp/jasmine/fairy2/) &amp;gt;&amp;gt;&amp;amp;! /usr/logs/disks/clondaq6_lustre&amp;quot;&lt;br /&gt;
 * * * * * /bin/csh -c &amp;quot;(sleep 48; rm -f /usr/logs/disks/clondaq6_lustre) &amp;gt;&amp;gt;&amp;amp;! /dev/null&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Log files are in&lt;br /&gt;
 /usr/local/scicomp/jasmine/log/jmigrate/data-totape/.&lt;br /&gt;
&lt;br /&gt;
If job stuck, remove the lock file:&lt;br /&gt;
&lt;br /&gt;
 rm /tmp/jmigrate-data-totape.lock&lt;br /&gt;
&lt;br /&gt;
Useful command to check process status:&lt;br /&gt;
&lt;br /&gt;
 ps auxf | grep java&lt;br /&gt;
&lt;br /&gt;
If see something like&lt;br /&gt;
&lt;br /&gt;
 clascron 128847  0.0  1.0 7307240 662088 ?      D    Dec14   0:00  \_ java -DJMirror.minFileModif.........&lt;br /&gt;
&lt;br /&gt;
job marked as &#039;D&#039; is in uninterruptable state and cannot not be kiiled by &#039;kill -9&#039;. Other stuck jobs can be killed, they became &amp;lt;defunct&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
To see files on tape, ssh to ifarm65 and type:&lt;br /&gt;
&lt;br /&gt;
 ls -ltrh /mss/clas12/er-a/data/ | tail&lt;br /&gt;
&lt;br /&gt;
To see files still in cache:&lt;br /&gt;
&lt;br /&gt;
 ls -ltrh /cache/mss/clas12/er-a/data/ | tail&lt;br /&gt;
&lt;br /&gt;
To retrieve from the tape :&lt;br /&gt;
 jget /mss/clas12/er-a/data/clas_00XXXX.evio.Y #copy to the current directory&lt;br /&gt;
 jget /mss/clas12/er-a/data/clas_00XXXX.evio.Y /path/to/dir #copy to the directory with path&lt;br /&gt;
 jget /mss/clas12/er-a/data/clas_00XXXX.evio.Y /mss/clas12/er-a/data/clas_00XXXX.evio.Z /path/to/dir # copy two files&lt;br /&gt;
&lt;br /&gt;
Mover&#039;s status can be checked at https://scicomp.jlab.org/scicomp/moverStatus&lt;br /&gt;
&lt;br /&gt;
Job&#039;s schedule can be checked at https://scicomp.jlab.org/scicomp/tapeJob/scheduled&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: problems were observed in Dec 2017 moving data with NFS-mounted scidaqgw10b or scidaqgw10f. To fix stuched job, jcancel have to be issued on movers side. When NFS mount was removed and process started to use network socket, everything works.&lt;/div&gt;</summary>
		<author><name>Boiarino</name></author>
	</entry>
	<entry>
		<id>https://clonwiki0.jlab.org/wiki/index.php?title=Network&amp;diff=8694</id>
		<title>Network</title>
		<link rel="alternate" type="text/html" href="https://clonwiki0.jlab.org/wiki/index.php?title=Network&amp;diff=8694"/>
		<updated>2026-02-04T16:54:28Z</updated>

		<summary type="html">&lt;p&gt;Boiarino: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Display traffic ==&lt;br /&gt;
&lt;br /&gt;
 nload -i 10000000 -o 10000000 p6p1&lt;br /&gt;
&lt;br /&gt;
 netstat -anp | grep &amp;lt;port&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; when setting secondary ports in &#039;&#039;nmtui&#039;&#039; as &#039;&#039;manual&#039;&#039;, always specify jlab default &#039;DNS servers&#039; and &#039;Search domains&#039;, just in case !!! It looks like it prevents &#039;&#039;/etc/resolv.conf&#039;&#039; from being overwritten under certain circumstances, for example:&lt;br /&gt;
&lt;br /&gt;
                              ┌───────────────────────────┤ Edit Connection ├───────────────────────────┐&lt;br /&gt;
                              │                                                                         │ &lt;br /&gt;
                              │         Profile name enp161s0np0_____________________________           │ &lt;br /&gt;
                              │               Device enp161s0np0 (94:6D:AE:EF:87:68)_________           │ &lt;br /&gt;
                              │                                                                         │ &lt;br /&gt;
                              │ ═ ETHERNET                                                    &amp;lt;Show&amp;gt;    │ &lt;br /&gt;
                              │ ═ 802.1X SECURITY                                             &amp;lt;Show&amp;gt;    │ &lt;br /&gt;
                              │                                                                         │ &lt;br /&gt;
                              │ ╤ IPv4 CONFIGURATION &amp;lt;Manual&amp;gt;                                 &amp;lt;Hide&amp;gt;    │ &lt;br /&gt;
                              │ │          Addresses 129.57.69.10/24__________ &amp;lt;Remove&amp;gt;                 │ &lt;br /&gt;
                              │ │                    &amp;lt;Add...&amp;gt;                                           │ &lt;br /&gt;
                              │ │            Gateway 129.57.69.1______________                          │ &lt;br /&gt;
                              │ │        DNS servers 129.57.90.255____________ &amp;lt;Remove&amp;gt;                 │ &lt;br /&gt;
                              │ │                    129.57.32.101____________ &amp;lt;Remove&amp;gt;                 │ &lt;br /&gt;
                              │ │                    &amp;lt;Add...&amp;gt;                                           │ &lt;br /&gt;
                              │ │     Search domains jlab.org_________________ &amp;lt;Remove&amp;gt;                 │ &lt;br /&gt;
                              │ │                    acc.jlab.org_____________ &amp;lt;Remove&amp;gt;                 │ &lt;br /&gt;
                              │ │                    &amp;lt;Add...&amp;gt;                                           │ &lt;br /&gt;
                              │ │                                                                       │ &lt;br /&gt;
                              │ │            Routing (No custom routes) &amp;lt;Edit...&amp;gt;                       │ &lt;br /&gt;
                              │ │ [ ] Never use this network for default route                          │ &lt;br /&gt;
                              │ │ [X] Ignore automatically obtained routes                              │ &lt;br /&gt;
                              │ │ [X] Ignore automatically obtained DNS parameters                      │ &lt;br /&gt;
                              │ │                                                                       │ &lt;br /&gt;
                              │ │ [ ] Require IPv4 addressing for this connection                       │ &lt;br /&gt;
                              │ └                                                                       │ &lt;br /&gt;
                              │                                                                         │ &lt;br /&gt;
                              │ ═ IPv6 CONFIGURATION &amp;lt;Automatic&amp;gt;                              &amp;lt;Show&amp;gt;    │ &lt;br /&gt;
                              │                                                                         │ &lt;br /&gt;
                              │ [X] Automatically connect                                               │ &lt;br /&gt;
                              │ [X] Available to all users                                              │ &lt;br /&gt;
                              │                                                                         │ &lt;br /&gt;
                              │                                                           &amp;lt;Cancel&amp;gt; &amp;lt;OK&amp;gt; │ &lt;br /&gt;
                              │                                                                        &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; after changing network,you may need to reboot machine to update &#039;&#039;nmtui&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; New links will shows up as &#039;&#039;Wired connection ..&#039;&#039;, so run &#039;&#039;nmtui&#039;&#039;, and in every new connection change &#039;&#039;Profile name&#039;&#039; from  &#039;&#039;Wired connection ..&#039;&#039; to the actual device name, like &#039;&#039;enp0s29u1u6&#039;&#039;, to avoid confusion while setting bond later.&lt;br /&gt;
&lt;br /&gt;
== Local network configuring using nmtui - example ==&lt;br /&gt;
&lt;br /&gt;
               ┌───────────────────────────┤ Edit Connection ├───────────────────────────┐&lt;br /&gt;
               │                                                                         │&lt;br /&gt;
               │         Profile name localport1______________________________           │&lt;br /&gt;
               │               Device E8:EA:6A:40:2F:50 (enp0s20u6)___________           │&lt;br /&gt;
               │                                                                         │&lt;br /&gt;
               │ ═ ETHERNET                                                    &amp;lt;Show&amp;gt;    │&lt;br /&gt;
               │                                                                         │&lt;br /&gt;
               │ ╤ IPv4 CONFIGURATION &amp;lt;Manual&amp;gt;                                 &amp;lt;Hide&amp;gt;    │&lt;br /&gt;
               │ │          Addresses 192.168.0.11_____________ &amp;lt;Remove&amp;gt;                 │&lt;br /&gt;
               │ │                    &amp;lt;Add...&amp;gt;                                           │&lt;br /&gt;
               │ │            Gateway _________________________                          │&lt;br /&gt;
               │ │        DNS servers &amp;lt;Add...&amp;gt;                                           │&lt;br /&gt;
               │ │     Search domains &amp;lt;Add...&amp;gt;                                           │&lt;br /&gt;
               │ │                                                                       │&lt;br /&gt;
               │ │            Routing (No custom routes) &amp;lt;Edit...&amp;gt;                       │&lt;br /&gt;
               │ │ [X] Never use this network for default route                          │&lt;br /&gt;
               │ │ [X] Ignore automatically obtained routes                              │&lt;br /&gt;
               │ │ [X] Ignore automatically obtained DNS parameters                      │&lt;br /&gt;
               │ │                                                                       │&lt;br /&gt;
               │ │ [X] Require IPv4 addressing for this connection                       │&lt;br /&gt;
               │ └                                                                       │&lt;br /&gt;
               │                                                                         │&lt;br /&gt;
               │ ═ IPv6 CONFIGURATION &amp;lt;Automatic&amp;gt;                              &amp;lt;Show&amp;gt;    │&lt;br /&gt;
               │                                                                         │&lt;br /&gt;
               │ [X] Automatically connect                                               │&lt;br /&gt;
               │ [X] Available to all users                                              │&lt;br /&gt;
               │                                                                         │&lt;br /&gt;
               │                                                           &amp;lt;Cancel&amp;gt; &amp;lt;OK&amp;gt; │&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bond two network ports together, links to the switch (example for clonfarm21) ==&lt;br /&gt;
&lt;br /&gt;
 nmcli connection add type bond con-name enp_bond ifname enp_bond bond.options mode=802.3ad&lt;br /&gt;
 nmcli connection add type ethernet ifname ens7np0 master enp_bond&lt;br /&gt;
 nmcli connection add type ethernet ifname ens2np0 master enp_bond&lt;br /&gt;
 nmcli connection show&lt;br /&gt;
&lt;br /&gt;
Last command will show follwoing:&lt;br /&gt;
&lt;br /&gt;
 NAME                UUID                                  TYPE      DEVICE   &lt;br /&gt;
 enp_bond            969dc408-bb43-49e0-8c29-62965f70f4c7  bond      enp_bond &lt;br /&gt;
 ens10f0             f333ab08-b67a-41c9-9108-7658af3435d0  ethernet  ens10f0  &lt;br /&gt;
 ens2np0             85e7f4bd-5daf-3095-b207-bdcaf14d903c  ethernet  ens2np0  &lt;br /&gt;
 ens7np0             5abd79b1-22e9-4210-9262-fc2dbbda51f7  ethernet  ens7np0  &lt;br /&gt;
 lo                  bcf93a26-5114-45c5-b586-9288dfefbb33  loopback  lo       &lt;br /&gt;
 bond-slave-ens2np0  7961787a-f51f-459d-9bf8-0add8a528679  ethernet  --       &lt;br /&gt;
 bond-slave-ens7np0  aa376ad3-fd9f-44a2-8154-04685ce2da72  ethernet  --       &lt;br /&gt;
 ens10f1             0c14d2dd-c3bc-4d3d-8c7d-04cded521498  ethernet  --       &lt;br /&gt;
 usb0                4fef7067-fb03-4115-ac62-c95a91979384  ethernet  --&lt;br /&gt;
&lt;br /&gt;
Now, set bond method to &#039;manual&#039;, and set IP address:&lt;br /&gt;
&lt;br /&gt;
 nmcli connection modify enp_bond ipv4.method manual ipv4.address 129.57.69.11/24&lt;br /&gt;
&lt;br /&gt;
Set [[Routing]] if needed.&lt;br /&gt;
&lt;br /&gt;
Run &#039;nmtui&#039;, you can actually do there everything what was done above. In addition, set mode &#039;&#039;&#039;Broadcast&#039;&#039;&#039; (IT IS IMPORTANT !), and MII=100/0/0.&lt;br /&gt;
&lt;br /&gt;
Finally, disactivate both ens2np0 and ens7np0, and activate enp_bond; using &#039;nmtui&#039;, or command &#039;nmcli connection down/up &amp;lt;connection&amp;gt;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: in our case, enp_bond inheritate mac from ens2np0, but IP from ens7np0; only ens7np0 was registered on jnet.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: to change hash policy to &#039;&#039;layer3+4&#039;&#039;, do following&lt;br /&gt;
&lt;br /&gt;
 echo 1 &amp;gt; /sys/class/net/enp_bond/bonding/xmit_hash_policy&lt;br /&gt;
 cat /sys/class/net/enp_bond/bonding/xmit_hash_policy&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: to change frame size (default mtu=1500), do following&lt;br /&gt;
&lt;br /&gt;
 nmcli connection modify enp_bond 802-3-ethernet.mtu 9000&lt;br /&gt;
&lt;br /&gt;
to check result (and other setting):&lt;br /&gt;
&lt;br /&gt;
 more /etc/NetworkManager/system-connections/enp_bond.nmconnection&lt;br /&gt;
&lt;br /&gt;
It can be done temporary, for example for interface &#039;&#039;ens2np0&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 ip link set dev ens2np0 mtu 9000&lt;br /&gt;
&lt;br /&gt;
To apply changes, restart NetworkManager:&lt;br /&gt;
&lt;br /&gt;
 systemctl restart NetworkManager&lt;br /&gt;
&lt;br /&gt;
or bring the connection down and up:&lt;br /&gt;
&lt;br /&gt;
 nmcli connection down ens2np0&lt;br /&gt;
 nmcli connection up ens2np0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To delete bond, run following command:&lt;br /&gt;
&lt;br /&gt;
 nmcli connection delete enp_bond&lt;br /&gt;
&lt;br /&gt;
== Bond four network ports together, links to Maroc electronics (example for clondaq9) ==&lt;br /&gt;
&lt;br /&gt;
 nmcli connection add type bond con-name enp_bond ifname enp_bond bond.options mode=broadcast&lt;br /&gt;
 nmcli connection add type ethernet ifname enp0s20u5 master enp_bond&lt;br /&gt;
 nmcli connection add type ethernet ifname enp0s20u6 master enp_bond&lt;br /&gt;
 nmcli connection add type ethernet ifname enp0s29u1u5 master enp_bond&lt;br /&gt;
 nmcli connection add type ethernet ifname enp0s29u1u6 master enp_bond&lt;br /&gt;
 nmcli connection show&lt;br /&gt;
 nmcli connection modify enp_bond ipv4.method manual ipv4.address 192.168.0.2/24&lt;br /&gt;
&lt;br /&gt;
Deactivate individual ports and activate bond:&lt;br /&gt;
&lt;br /&gt;
 nmcli connection down enp0s20u5&lt;br /&gt;
 nmcli connection down enp0s20u6&lt;br /&gt;
 nmcli connection down enp0s29u1u5&lt;br /&gt;
 nmcli connection down enp0s29u1u6&lt;br /&gt;
 nmcli connection up enp_bond&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Run &#039;&#039;nmtui&#039;&#039; and fix remaining details - screen should looks like this:&lt;br /&gt;
         ┌────────────────────────────┤ Edit Connection ├────────────────────────────┐&lt;br /&gt;
         │                                                                           │&lt;br /&gt;
         │           Profile name enp_bond________________________________           │&lt;br /&gt;
         │                 Device enp_bond________________________________           │&lt;br /&gt;
         │                                                                           │&lt;br /&gt;
         │ ╤ BOND                                                          &amp;lt;Hide&amp;gt;    │&lt;br /&gt;
         │ │ Slaves                                                                  │&lt;br /&gt;
         │ │ ┌─────────────────────────────────────────────────┐                     │&lt;br /&gt;
         │ │ │ bond-slave-enp0s29u1u6                        ↑ │ &amp;lt;Add&amp;gt;               │&lt;br /&gt;
         │ │ │ bond-slave-enp0s29u1u5                        ▒ │                     │&lt;br /&gt;
         │ │ │ bond-slave-enp0s20u6                          ▒ │ &amp;lt;Edit...&amp;gt;           │&lt;br /&gt;
         │ │ │ bond-slave-enp0s20u5                          ▒ │                     │&lt;br /&gt;
         │ │ │                                               ▒ │ &amp;lt;Delete&amp;gt;            │&lt;br /&gt;
         │ │ │                                               ↓ │                     │&lt;br /&gt;
         │ │ └─────────────────────────────────────────────────┘                     │&lt;br /&gt;
         │ │                 Mode &amp;lt;Broadcast&amp;gt;                                        │&lt;br /&gt;
         │ │      Link monitoring &amp;lt;MII (recommended)&amp;gt;                                │&lt;br /&gt;
         │ │ Monitoring frequency 100_______ ms                                      │&lt;br /&gt;
         │ │        Link up delay 0_________ ms                                      │&lt;br /&gt;
         │ │      Link down delay 0_________ ms                                      │&lt;br /&gt;
         │ │   Cloned MAC address ________________________________________           │&lt;br /&gt;
         │ └                                                                         │&lt;br /&gt;
         │                                                                           │&lt;br /&gt;
         │ ╤ IPv4 CONFIGURATION   &amp;lt;Manual&amp;gt;                                 &amp;lt;Hide&amp;gt;    │&lt;br /&gt;
         │ │            Addresses 192.168.0.2/24___________ &amp;lt;Remove&amp;gt;                 │&lt;br /&gt;
         │ │                      &amp;lt;Add...&amp;gt;                                           │&lt;br /&gt;
         │ │              Gateway _________________________                          │&lt;br /&gt;
         │ │          DNS servers &amp;lt;Add...&amp;gt;                                           │&lt;br /&gt;
         │ │       Search domains &amp;lt;Add...&amp;gt;                                           │&lt;br /&gt;
         │ │                                                                         │&lt;br /&gt;
         │ │              Routing (No custom routes) &amp;lt;Edit...&amp;gt;                       │&lt;br /&gt;
         │ │ [X] Never use this network for default route                            │&lt;br /&gt;
         │ │ [X] Ignore automatically obtained routes                                │&lt;br /&gt;
         │ │ [X] Ignore automatically obtained DNS parameters                        │&lt;br /&gt;
         │ │                                                                         │&lt;br /&gt;
         │ │ [X] Require IPv4 addressing for this connection                         │&lt;br /&gt;
         │ └                                                                         │&lt;br /&gt;
         │                                                                           │&lt;br /&gt;
         │ ═ IPv6 CONFIGURATION   &amp;lt;Automatic&amp;gt;                              &amp;lt;Show&amp;gt;    │&lt;br /&gt;
         │                                                                           │&lt;br /&gt;
         │ [X] Automatically connect                                                 │&lt;br /&gt;
         │ [X] Available to all users                                                │&lt;br /&gt;
         │                                                                           │&lt;br /&gt;
         │                                                             &amp;lt;Cancel&amp;gt; &amp;lt;OK&amp;gt; │&lt;br /&gt;
         │                                                                           │&lt;/div&gt;</summary>
		<author><name>Boiarino</name></author>
	</entry>
	<entry>
		<id>https://clonwiki0.jlab.org/wiki/index.php?title=Linux_Boot_Server&amp;diff=8693</id>
		<title>Linux Boot Server</title>
		<link rel="alternate" type="text/html" href="https://clonwiki0.jlab.org/wiki/index.php?title=Linux_Boot_Server&amp;diff=8693"/>
		<updated>2026-02-03T21:40:18Z</updated>

		<summary type="html">&lt;p&gt;Boiarino: /* VTP CentOS boot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Main boot server is clon01&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TO DO&#039;&#039;&#039; Check UBOOT commands to erase existing environment variables:&lt;br /&gt;
&lt;br /&gt;
 env default -a -f&lt;br /&gt;
 env erase&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;VTP CentOS boot&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
UBOOT (example for gem0vtp):&lt;br /&gt;
&lt;br /&gt;
 Zynq&amp;gt; printenv&lt;br /&gt;
 autoload=no&lt;br /&gt;
 baudrate=115200&lt;br /&gt;
 bootcmd=run tftpboot&lt;br /&gt;
 bootdelay=3&lt;br /&gt;
 bootro=setenv bootargs ${bootargs} ro&lt;br /&gt;
 bootrw=setenv bootargs ${bootargs} rw&lt;br /&gt;
 devicetree_image=devicetree.dtb&lt;br /&gt;
 devicetree_load_address=0x2000000&lt;br /&gt;
 ethact=ethernet@e000b000&lt;br /&gt;
 ethaddr=ce:ba:f0:03:xx:xx&lt;br /&gt;
 extargs=setenv bootargs ${bootargs} console=ttyPS0,115200 ip=:::::eth0:dhcp uio_pdrv_genirq.of_id=my-uio rootwait cma=384MB&lt;br /&gt;
 fdt_high=0x20000000&lt;br /&gt;
 fdtcontroladdr=3ffa9e30&lt;br /&gt;
 initrd_high=0x20000000&lt;br /&gt;
 kernel_image=uImage-4.4.0-xilinx-00004-g8d932a&lt;br /&gt;
 kernel_load_address=0x2080000&lt;br /&gt;
 load_devicetree=if tftpboot ${devicetree_load_address} ${tftppath}/${devicetree_image}; then echo OK; else echo FAILED; reset; fi;&lt;br /&gt;
 load_dhcp=if dhcp; then echo OK; else echo FAILED; reset; fi;&lt;br /&gt;
 load_kernel=if tftpboot ${kernel_load_address} ${tftppath}/${kernel_image}; then echo OK; else echo FAILED; reset; fi;&lt;br /&gt;
 modeboot=sdboot&lt;br /&gt;
 netmask=255.255.255.0&lt;br /&gt;
 nfsargs=setenv bootargs nfsroot=${rootserverip}:${rootpath},vers=3&lt;br /&gt;
 rootpath=/vol/diskless/CentOS7/armv7/root&lt;br /&gt;
 rootserverip=129.57.167.152&lt;br /&gt;
 serverip=129.57.167.4&lt;br /&gt;
 stderr=serial@e0000000&lt;br /&gt;
 stdin=serial@e0000000&lt;br /&gt;
 stdout=serial@e0000000&lt;br /&gt;
 tftp_boot_string=echo TFTPing Image to RAM&lt;br /&gt;
 tftpboot=run load_dhcp tftp_boot_string nfsargs extargs bootro load_kernel load_devicetree &amp;amp;&amp;amp; bootm ${kernel_load_address} - ${devicetree_load_address}&lt;br /&gt;
 tftpboot_rw=dhcp &amp;amp;&amp;amp; run tftp_boot_string nfsargs extargs bootrw load_kernel load_devicetree &amp;amp;&amp;amp; bootm ${kernel_load_address} - ${devicetree_load_address}&lt;br /&gt;
 tftppath=linux-install/CentOS7-armv7-Diskless&lt;br /&gt;
 &lt;br /&gt;
 Environment size: 1603/131068 bytes&lt;br /&gt;
 Zynq&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy-Paste following on uboot prompt to program above settings (do it by groups as shown, otherwise it may place some bull...):&lt;br /&gt;
&lt;br /&gt;
 setenv bootargs&lt;br /&gt;
 setenv gatewayip&lt;br /&gt;
 setenv ipaddr&lt;br /&gt;
 setenv kernel_path&lt;br /&gt;
 setenv nfsip&lt;br /&gt;
 setenv nfsroot&lt;br /&gt;
 setenv sdboot&lt;br /&gt;
 setenv sdboot_no&lt;br /&gt;
 setenv setboot&lt;br /&gt;
 setenv tftpboot_no&lt;br /&gt;
&lt;br /&gt;
 setenv autoload &#039;no&#039;&lt;br /&gt;
 setenv baudrate &#039;115200&#039;&lt;br /&gt;
 setenv bootcmd &#039;run tftpboot&#039;&lt;br /&gt;
 setenv bootdelay &#039;3&#039;&lt;br /&gt;
 setenv bootro &#039;setenv bootargs ${bootargs} ro&#039;&lt;br /&gt;
 setenv bootrw &#039;setenv bootargs ${bootargs} rw&#039;&lt;br /&gt;
 setenv devicetree_image &#039;devicetree.dtb&#039;&lt;br /&gt;
 setenv devicetree_load_address &#039;0x2000000&#039;&lt;br /&gt;
 setenv ethact &#039;ethernet@e000b000&#039;&lt;br /&gt;
 setenv ethaddr &#039;ce:ba:f0:03:00:d1&#039;&lt;br /&gt;
 setenv extargs &#039;setenv bootargs ${bootargs} console=ttyPS0,115200 ip=:::::eth0:dhcp uio_pdrv_genirq.of_id=my-uio rootwait cma=384MB&#039;&lt;br /&gt;
 setenv fdt_high &#039;0x20000000&#039;&lt;br /&gt;
 setenv fdtcontroladdr &#039;3ffa9e30&#039;&lt;br /&gt;
 setenv initrd_high &#039;0x20000000&#039;&lt;br /&gt;
 setenv kernel_image &#039;uImage-4.4.0-xilinx-00004-g8d932a&#039;&lt;br /&gt;
 setenv kernel_load_address &#039;0x2080000&#039;&lt;br /&gt;
 &lt;br /&gt;
 setenv load_devicetree &#039;if tftpboot ${devicetree_load_address} ${tftppath}/${devicetree_image}; then echo OK; else echo FAILED; reset; fi;&#039;&lt;br /&gt;
 setenv load_dhcp &#039;if dhcp; then echo OK; else echo FAILED; reset; fi;&#039;&lt;br /&gt;
 setenv load_kernel &#039;if tftpboot ${kernel_load_address} ${tftppath}/${kernel_image}; then echo OK; else echo FAILED; reset; fi;&#039;&lt;br /&gt;
 setenv modeboot &#039;sdboot&#039;&lt;br /&gt;
 setenv netmask &#039;255.255.255.0&#039;&lt;br /&gt;
 setenv nfsargs &#039;setenv bootargs nfsroot=${rootserverip}:${rootpath},vers=3&#039;&lt;br /&gt;
 setenv rootpath &#039;/vol/diskless/CentOS7/armv7/root&#039;&lt;br /&gt;
 setenv rootserverip &#039;129.57.167.152&#039;&lt;br /&gt;
 setenv serverip &#039;129.57.167.4&#039;&lt;br /&gt;
 setenv stderr &#039;serial@e0000000&#039;&lt;br /&gt;
 setenv stdin &#039;serial@e0000000&#039;&lt;br /&gt;
 setenv stdout &#039;serial@e0000000&#039;&lt;br /&gt;
 setenv tftp_boot_string &#039;echo TFTPing Image to RAM&#039;&lt;br /&gt;
 &lt;br /&gt;
 setenv tftpboot &#039;run load_dhcp tftp_boot_string nfsargs extargs bootro load_kernel load_devicetree &amp;amp;&amp;amp; bootm ${kernel_load_address} - ${devicetree_load_address}&#039;&lt;br /&gt;
 setenv tftpboot_rw &#039;dhcp &amp;amp;&amp;amp; run tftp_boot_string nfsargs extargs bootrw load_kernel load_devicetree &amp;amp;&amp;amp; bootm ${kernel_load_address} - ${devicetree_load_address}&#039;&lt;br /&gt;
 setenv tftppath &#039;linux-install/CentOS7-armv7-Diskless&#039;&lt;br /&gt;
 &lt;br /&gt;
After that, customize following:&lt;br /&gt;
&lt;br /&gt;
 ethaddr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;tftpboot server settings&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 /tftpboot/linux-install/CentOS7-armv7-Diskless/uImage-4.4.0-xilinx-00004-g8d932a&lt;br /&gt;
                                                uImage-4.4.0-xilinx-00003-gdf4da5&lt;br /&gt;
                                                zynq-jlab-vtp.dtb_fixed_uio&lt;br /&gt;
                                                devicetree.dtb -&amp;gt; zynq-jlab-vtp.dtb_fixed_uio&lt;br /&gt;
&lt;br /&gt;
By default, root filesystem will be read-only. To make it &#039;rw&#039;, stop booting process on serial connection, type &#039;&#039;run tftpboot_rw&#039;&#039; and push &amp;lt;enter&amp;gt;. After that you can ssh as root and run &#039;&#039;yum&#039;&#039; etc.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;VTP Archlinux boot&#039;&#039;&#039; ==&lt;br /&gt;
 &lt;br /&gt;
 Zynq&amp;gt; printenv&lt;br /&gt;
 autoload=no&lt;br /&gt;
 baudrate=115200&lt;br /&gt;
 bootargs=console=ttyPS0,115200 ip=:::::eth0:dhcp nfsroot=${nfsip}:${nfsroot},${nfsargs} uio_pdrv_genirq.of_id=my-uio ro rootwait&lt;br /&gt;
 bootcmd=run $modeboot&lt;br /&gt;
 bootdelay=3&lt;br /&gt;
 devicetree_image=zynq-jlab-vtp.dtb&lt;br /&gt;
 devicetree_load_address=0x2000000&lt;br /&gt;
 ethact=ethernet@e000b000&lt;br /&gt;
 ethaddr=CE:BA:F0:03:00:02&lt;br /&gt;
 fdt_high=0x20000000&lt;br /&gt;
 fdtcontroladdr=3ffa9e30&lt;br /&gt;
 gatewayip=129.57.68.100&lt;br /&gt;
 initrd_high=0x20000000&lt;br /&gt;
 ipaddr=129.57.68.38&lt;br /&gt;
 kernel_image=uImage&lt;br /&gt;
 kernel_load_address=0x2080000&lt;br /&gt;
 kernel_path=linux-install/ArchLinux-armv71&lt;br /&gt;
 modeboot=sdboot&lt;br /&gt;
 netmask=255.255.255.0&lt;br /&gt;
 nfsargs=vers=3,tcp,timeo=600,retrans=10&lt;br /&gt;
 nfsip=129.57.167.152&lt;br /&gt;
 nfsroot=/vol/diskless/ArchLinux/armv7-devel/root&lt;br /&gt;
 sdboot=run setboot; echo Copying Linux from TFTP server to RAM...; echo Download Kernel; if tftpboot 0x2080000 linux-install/ArchLinux-armv71/uImage; then echo OK; else echo FAILED; reset; fi; echo Download DeviceTree; if tftpboot 0x2000000 linux-install/ArchLinux-armv71/zynq-jlab-vtp.dtb; then echo OK; else echo FAILED; reset; fi; echo Boot system; bootm 0x2080000 - 0x2000000&lt;br /&gt;
 sdboot_no=if mmcinfo; then echo Copying Linux from SD to RAM... &amp;amp;&amp;amp; load mmc 0 ${kernel_load_address} ${kernel_image} &amp;amp;&amp;amp; load mmc 0 ${devicetree_load_address} ${devicetree_image} &amp;amp;&amp;amp; bootm ${kernel_load_address} - ${devicetree_load_address}; fi&lt;br /&gt;
 serverip=129.57.167.4&lt;br /&gt;
 setboot=setenv bootargs console=ttyPS0,115200 ip=:::::eth0:dhcp nfsroot=${nfsip}:${nfsroot},${nfsargs} uio_pdrv_genirq.of_id=my-uio ro rootwait&lt;br /&gt;
 stderr=serial@e0000000&lt;br /&gt;
 stdin=serial@e0000000&lt;br /&gt;
 stdout=serial@e0000000&lt;br /&gt;
 tftpboot_no=echo Copying Linux from tftp server to RAM... &amp;amp;&amp;amp;tftpboot ${kernel_load_address} linux_vtp/${kernel_image} &amp;amp;&amp;amp;tftpboot ${devicetree_load_address} linux_vtp/${devicetree_image} &amp;amp;&amp;amp;bootm ${kernel_load_address} - ${devicetree_load_address};&lt;br /&gt;
 &lt;br /&gt;
 Environment size: 1828/131068 bytes&lt;br /&gt;
 Zynq&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy-Paste following on uboot prompt to program above settings (do it line-by-line, otherwise it may place some bull...):&lt;br /&gt;
&lt;br /&gt;
 setenv autoload &#039;no&#039;&lt;br /&gt;
 setenv baudrate &#039;115200&#039;&lt;br /&gt;
 setenv bootargs &#039;console=ttyPS0,115200 ip=:::::eth0:dhcp nfsroot=${nfsip}:${nfsroot},${nfsargs} uio_pdrv_genirq.of_id=my-uio ro rootwait&#039;&lt;br /&gt;
 setenv bootcmd &#039;run $modeboot&#039;&lt;br /&gt;
 setenv bootdelay &#039;3&#039;&lt;br /&gt;
 setenv devicetree_image &#039;zynq-jlab-vtp.dtb&#039;&lt;br /&gt;
 setenv devicetree_load_address &#039;0x2000000&#039;&lt;br /&gt;
 setenv ethact &#039;ethernet@e000b000&#039;&lt;br /&gt;
 setenv ethaddr &#039;CE:BA:F0:03:00:02&#039;&lt;br /&gt;
 setenv fdt_high &#039;0x20000000&#039;&lt;br /&gt;
 setenv fdtcontroladdr &#039;3ffa9e30&#039;&lt;br /&gt;
 setenv gatewayip &#039;129.57.68.100&#039;&lt;br /&gt;
 setenv initrd_high &#039;0x20000000&#039;&lt;br /&gt;
 setenv ipaddr &#039;129.57.68.38&#039;&lt;br /&gt;
 setenv kernel_image &#039;uImage&#039;&lt;br /&gt;
 setenv kernel_load_address &#039;0x2080000&#039;&lt;br /&gt;
 setenv kernel_path &#039;linux-install/ArchLinux-armv71&#039;&lt;br /&gt;
 setenv modeboot &#039;sdboot&#039;&lt;br /&gt;
 setenv netmask &#039;255.255.255.0&#039;&lt;br /&gt;
 setenv nfsargs &#039;vers=3,tcp,timeo=600,retrans=10&#039;&lt;br /&gt;
 setenv nfsip &#039;129.57.167.152&#039;&lt;br /&gt;
 setenv nfsroot &#039;/vol/diskless/ArchLinux/armv7-devel/root&#039;&lt;br /&gt;
 setenv sdboot &#039;run setboot; echo Copying Linux from TFTP server to RAM...; echo Download Kernel; if tftpboot 0x2080000 linux-install/ArchLinux-armv71/uImage; then echo OK; else echo FAILED; reset; fi; echo Download DeviceTree; if tftpboot 0x2000000 linux-install/ArchLinux-armv71/zynq-jlab-vtp.dtb; then echo OK; else echo FAILED; reset; fi; echo Boot system; bootm 0x2080000 - 0x2000000&#039;&lt;br /&gt;
 setenv sdboot_no &#039;if mmcinfo; then echo Copying Linux from SD to RAM... &amp;amp;&amp;amp; load mmc 0 ${kernel_load_address} ${kernel_image} &amp;amp;&amp;amp; load mmc 0 ${devicetree_load_address} ${devicetree_image} &amp;amp;&amp;amp; bootm ${kernel_load_address} - ${devicetree_load_address}; fi&#039;&lt;br /&gt;
 setenv serverip &#039;129.57.167.4&#039;&lt;br /&gt;
 setenv setboot &#039;setenv bootargs console=ttyPS0,115200 ip=:::::eth0:dhcp nfsroot=${nfsip}:${nfsroot},${nfsargs} uio_pdrv_genirq.of_id=my-uio ro rootwait&#039;&lt;br /&gt;
 setenv stderr &#039;serial@e0000000&#039;&lt;br /&gt;
 setenv stdin &#039;serial@e0000000&#039;&lt;br /&gt;
 setenv stdout &#039;serial@e0000000&#039;&lt;br /&gt;
 setenv tftpboot_no &#039;echo Copying Linux from tftp server to RAM... &amp;amp;&amp;amp;tftpboot ${kernel_load_address} linux_vtp/${kernel_image} &amp;amp;&amp;amp;tftpboot ${devicetree_load_address} linux_vtp/${devicetree_image} &amp;amp;&amp;amp;bootm ${kernel_load_address} - ${devicetree_load_address};&#039;&lt;br /&gt;
&lt;br /&gt;
After that, customize following:&lt;br /&gt;
 ethaddr&lt;br /&gt;
 gatewayip&lt;br /&gt;
 ipaddr&lt;br /&gt;
 netmask&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Setting of the Linux server to be used for PXE and EFI boot of the VME controllers&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Login to the server as root. Copy two files to the root directory and untar them:&lt;br /&gt;
 cd /&lt;br /&gt;
 cp /usr/downloads/tftpboot.tar.gz_clondaq15 tftpboot.tar.gz&lt;br /&gt;
 cp /usr/downloads/diskless.tar.gz_clondaq15 diskless.tar.gz&lt;br /&gt;
 gunzip tftpboot.tar.gz&lt;br /&gt;
 gunzip diskless.tar.gz&lt;br /&gt;
 tar xvf tftpboot.tar&lt;br /&gt;
 tar xvf diskless.tar&lt;br /&gt;
 rm tftpboot.tar diskless.tar&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Make sure correct snapshot location in root area &#039;&#039;/diskless/CentOS7/x86_64/root/etc/sysconfig/readonly-root&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 CLIENTSTATE=192.168.10.1:/diskless/CentOS7/x86_64/snapshot&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;/diskless/CentOS7/x86_64/root&#039;&#039; area, &#039;&#039;/etc/ssh/sshd_config&#039;&#039; must have following setting (to allow remote ssh):&lt;br /&gt;
&lt;br /&gt;
 #UsePAM yes&lt;br /&gt;
&lt;br /&gt;
it will be propagated to the controller&#039;s snapshot area on the first boot when corresponding &#039;&#039;snapshot/&amp;lt;vme_controller_name&amp;gt;&#039;&#039; directory will be created. Not sure about other settings:&lt;br /&gt;
&lt;br /&gt;
 HostbasedAuthentication yes&lt;br /&gt;
 #HostbasedAuthentication no&lt;br /&gt;
&lt;br /&gt;
 IgnoreRhosts no&lt;br /&gt;
 #IgnoreRhosts yes&lt;br /&gt;
&lt;br /&gt;
 PasswordAuthentication yes&lt;br /&gt;
 #PasswordAuthentication yes&lt;br /&gt;
 PasswordAuthentication yes&lt;br /&gt;
&lt;br /&gt;
 #UsePrivilegeSeparation sandbox		# Default for new installations.&lt;br /&gt;
 UsePrivilegeSeparation sandbox		# Default for new installations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To add or remove VME controllers, modify following files:&lt;br /&gt;
 /var/named/10.168.192.in-addr.arpa.db&lt;br /&gt;
 /var/named/clontest.com&lt;br /&gt;
 /etc/dhcp/dhcpd.conf&lt;br /&gt;
&lt;br /&gt;
restart corresponding services:&lt;br /&gt;
 systemctl restart dhcpd&lt;br /&gt;
 systemctl restart named&lt;br /&gt;
&lt;br /&gt;
and check services status:&lt;br /&gt;
 systemctl status dhcpd&lt;br /&gt;
 systemctl status named&lt;br /&gt;
&lt;br /&gt;
To set gateway, add&lt;br /&gt;
 net.ipv4.ip_forward=1&lt;br /&gt;
to &#039;&#039;/etc/sysctl.conf&#039;&#039; and execute&lt;br /&gt;
 sysctl -p&lt;br /&gt;
&lt;br /&gt;
Configure [[NFS]]&lt;br /&gt;
&lt;br /&gt;
Configure [[DHCP server]]&lt;br /&gt;
&lt;br /&gt;
Configure [[DNS server]] (&#039;&#039;&#039;NOTE:&#039;&#039;&#039; resolv.conf is different for local server !)&lt;br /&gt;
&lt;br /&gt;
Configure [[Tftp]] and [[Tftpboot]]&lt;br /&gt;
&lt;br /&gt;
Configure [[Iptables]]&lt;br /&gt;
&lt;br /&gt;
Do not forget (is it for controllers ?):&lt;br /&gt;
 chattr +i /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 yum install ypbind (????)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Configuring snapshot area&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The list of files and directories which suppose to be in snapshot area (which has RW permissions) should be set in config file &#039;&#039;/diskless/.../snapshot/files&#039;&#039;. In particular, &#039;&#039;/et&#039;&#039; has to be added there, and also directory &#039;&#039;/diskless/.../root/et&#039;&#039; should be created.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Reboot server, make sure everything is running as expected.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Configuring in chroot&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: using &#039;&#039;chroot&#039;&#039; method will allow to run &#039;&#039;yum&#039;&#039;, but &#039;&#039;systemctl&#039;&#039; commands will not work. Instead of using &#039;&#039;chroot&#039;&#039;, you may boot coontroller with &#039;&#039;rw&#039;&#039; option instead of &#039;&#039;ro&#039;&#039;. For VME boot, it can be done by changing &#039;&#039;grub.cnf&#039;&#039;, while for VTP boot you have to stop boot proocess using serial connection, and then type &#039;&#039;run tftpboot_rw&#039;&#039;.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Since root area in VME controllers will be read-only, you cannot ssh to controllers as root and change anything there, only snapshot area can be modified. To make changes in root area, in particular to configure and run &#039;&#039;yum&#039;&#039;, &#039;&#039;chroot&#039; command should be used. Login to the boot server as root and do following:&lt;br /&gt;
&lt;br /&gt;
 mount -o bind /home /diskless/CentOS7/x86_64/root/home&lt;br /&gt;
 mount -o bind /usr/local /diskless/CentOS7/x86_64/root/usr/local&lt;br /&gt;
 mount -o bind /usr/clas12 /diskless/CentOS7/x86_64/root/usr/clas12&lt;br /&gt;
 chroot /diskless/CentOS7/x86_64/root&lt;br /&gt;
&lt;br /&gt;
After that you will see all root directories as if you login to VME controller, and modifications can be made.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Configure yum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Add &#039;&#039;multilib_policy=all&#039;&#039; to &#039;&#039;/etc/yum.conf&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Add (and remove the rest ?) following to &#039;&#039;/etc/yum.repos.d/CentOS-Base.repo&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 [base]&lt;br /&gt;
 name=CentOS-$releasever - Base&lt;br /&gt;
 baseurl=http://archive.kernel.org/centos-vault/centos/$releasever/os/$basearch/&lt;br /&gt;
&lt;br /&gt;
Clean yum database:&lt;br /&gt;
&lt;br /&gt;
 rm /var/lib/rpm/__db.*&lt;br /&gt;
&lt;br /&gt;
Install following using yum:&lt;br /&gt;
&lt;br /&gt;
 yum install motif-devel tcl-devel tk-devel libXpm-devel apr-devel libXaw-devel ncurses-devel libconfig-devel&lt;br /&gt;
&lt;br /&gt;
Install following for &#039;&#039;dbedit&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 yum install tix itcl itk&lt;br /&gt;
&lt;br /&gt;
Install remaining tcl stuff from &#039;&#039;/usr/local/src&#039;&#039;, mounted as &#039;&#039;/zzz&#039;&#039; above:&lt;br /&gt;
 &lt;br /&gt;
 cd /zzz/mysqltcl-3.052&lt;br /&gt;
 make install&lt;br /&gt;
 ln -s /usr/lib/mysqltcl-3.052 /usr/lib64/tcl8.5/mysqltcl-3.052&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: Login from console may not work because of file &#039;&#039;/etc/securetty&#039;&#039; permissions, it must be 644.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: THere is a service PAM, it may prevent login from console if some required services did not start. To work around, comment out some lines in &#039;&#039;/etc/pam.d/system-auth-ac&#039;&#039; file:&lt;br /&gt;
&lt;br /&gt;
 #%PAM-1.0&lt;br /&gt;
 # This file is auto-generated.&lt;br /&gt;
 # User changes will be destroyed the next time authconfig is run.&lt;br /&gt;
 #auth        required      pam_env.so&lt;br /&gt;
 auth        sufficient    pam_unix.so nullok try_first_pass&lt;br /&gt;
 #auth        requisite     pam_succeed_if.so uid &amp;gt;= 1000 quiet_success&lt;br /&gt;
 #auth        required      pam_deny.so&lt;br /&gt;
 &lt;br /&gt;
 #account     required      pam_unix.so&lt;br /&gt;
 account     sufficient    pam_localuser.so&lt;br /&gt;
 account     sufficient    pam_succeed_if.so uid &amp;lt; 1000 quiet&lt;br /&gt;
 #account     required      pam_permit.so&lt;br /&gt;
 &lt;br /&gt;
 password    requisite     pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=&lt;br /&gt;
 password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok&lt;br /&gt;
 #password    required      pam_deny.so&lt;br /&gt;
 &lt;br /&gt;
 session     optional      pam_keyinit.so revoke&lt;br /&gt;
 #session     required      pam_limits.so&lt;br /&gt;
 -session     optional      pam_systemd.so&lt;br /&gt;
 session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid&lt;br /&gt;
 #session     required      pam_unix.so&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;After Linux boot server is ready and operational, VME controllers can be booted. On the first boot, individual &#039;&#039;/diskless/.../snapshot/&amp;lt;controller name&amp;gt;&#039;&#039; directory will be created for each controller. For VME controller specific information see [[VME]]&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Boiarino</name></author>
	</entry>
	<entry>
		<id>https://clonwiki0.jlab.org/wiki/index.php?title=Linux_Boot_Server&amp;diff=8692</id>
		<title>Linux Boot Server</title>
		<link rel="alternate" type="text/html" href="https://clonwiki0.jlab.org/wiki/index.php?title=Linux_Boot_Server&amp;diff=8692"/>
		<updated>2026-02-03T21:39:04Z</updated>

		<summary type="html">&lt;p&gt;Boiarino: /* Configuring in chroot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Main boot server is clon01&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TO DO&#039;&#039;&#039; Check UBOOT commands to erase existing environment variables:&lt;br /&gt;
&lt;br /&gt;
 env default -a -f&lt;br /&gt;
 env erase&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;VTP CentOS boot&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
UBOOT (example for gem0vtp; &#039;&#039;&#039;NOTE: for copy-paste, lines with &#039;$&#039; and &#039;{&#039; and similar have to be in single quote brackets !&#039;&#039;&#039;):&lt;br /&gt;
&lt;br /&gt;
 Zynq&amp;gt; printenv&lt;br /&gt;
 autoload=no&lt;br /&gt;
 baudrate=115200&lt;br /&gt;
 bootcmd=run tftpboot&lt;br /&gt;
 bootdelay=3&lt;br /&gt;
 bootro=setenv bootargs ${bootargs} ro&lt;br /&gt;
 bootrw=setenv bootargs ${bootargs} rw&lt;br /&gt;
 devicetree_image=devicetree.dtb&lt;br /&gt;
 devicetree_load_address=0x2000000&lt;br /&gt;
 ethact=ethernet@e000b000&lt;br /&gt;
 ethaddr=ce:ba:f0:03:xx:xx&lt;br /&gt;
 extargs=setenv bootargs ${bootargs} console=ttyPS0,115200 ip=:::::eth0:dhcp uio_pdrv_genirq.of_id=my-uio rootwait cma=384MB&lt;br /&gt;
 fdt_high=0x20000000&lt;br /&gt;
 fdtcontroladdr=3ffa9e30&lt;br /&gt;
 initrd_high=0x20000000&lt;br /&gt;
 kernel_image=uImage-4.4.0-xilinx-00004-g8d932a&lt;br /&gt;
 kernel_load_address=0x2080000&lt;br /&gt;
 load_devicetree=if tftpboot ${devicetree_load_address} ${tftppath}/${devicetree_image}; then echo OK; else echo FAILED; reset; fi;&lt;br /&gt;
 load_dhcp=if dhcp; then echo OK; else echo FAILED; reset; fi;&lt;br /&gt;
 load_kernel=if tftpboot ${kernel_load_address} ${tftppath}/${kernel_image}; then echo OK; else echo FAILED; reset; fi;&lt;br /&gt;
 modeboot=sdboot&lt;br /&gt;
 netmask=255.255.255.0&lt;br /&gt;
 nfsargs=setenv bootargs nfsroot=${rootserverip}:${rootpath},vers=3&lt;br /&gt;
 rootpath=/vol/diskless/CentOS7/armv7/root&lt;br /&gt;
 rootserverip=129.57.167.152&lt;br /&gt;
 serverip=129.57.167.4&lt;br /&gt;
 stderr=serial@e0000000&lt;br /&gt;
 stdin=serial@e0000000&lt;br /&gt;
 stdout=serial@e0000000&lt;br /&gt;
 tftp_boot_string=echo TFTPing Image to RAM&lt;br /&gt;
 tftpboot=run load_dhcp tftp_boot_string nfsargs extargs bootro load_kernel load_devicetree &amp;amp;&amp;amp; bootm ${kernel_load_address} - ${devicetree_load_address}&lt;br /&gt;
 tftpboot_rw=dhcp &amp;amp;&amp;amp; run tftp_boot_string nfsargs extargs bootrw load_kernel load_devicetree &amp;amp;&amp;amp; bootm ${kernel_load_address} - ${devicetree_load_address}&lt;br /&gt;
 tftppath=linux-install/CentOS7-armv7-Diskless&lt;br /&gt;
 &lt;br /&gt;
 Environment size: 1603/131068 bytes&lt;br /&gt;
 Zynq&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy-Paste following on uboot prompt to program above settings (do it by groups as shown, otherwise it may place some bull...):&lt;br /&gt;
&lt;br /&gt;
 setenv bootargs&lt;br /&gt;
 setenv gatewayip&lt;br /&gt;
 setenv ipaddr&lt;br /&gt;
 setenv kernel_path&lt;br /&gt;
 setenv nfsip&lt;br /&gt;
 setenv nfsroot&lt;br /&gt;
 setenv sdboot&lt;br /&gt;
 setenv sdboot_no&lt;br /&gt;
 setenv setboot&lt;br /&gt;
 setenv tftpboot_no&lt;br /&gt;
&lt;br /&gt;
 setenv autoload &#039;no&#039;&lt;br /&gt;
 setenv baudrate &#039;115200&#039;&lt;br /&gt;
 setenv bootcmd &#039;run tftpboot&#039;&lt;br /&gt;
 setenv bootdelay &#039;3&#039;&lt;br /&gt;
 setenv bootro &#039;setenv bootargs ${bootargs} ro&#039;&lt;br /&gt;
 setenv bootrw &#039;setenv bootargs ${bootargs} rw&#039;&lt;br /&gt;
 setenv devicetree_image &#039;devicetree.dtb&#039;&lt;br /&gt;
 setenv devicetree_load_address &#039;0x2000000&#039;&lt;br /&gt;
 setenv ethact &#039;ethernet@e000b000&#039;&lt;br /&gt;
 setenv ethaddr &#039;ce:ba:f0:03:00:d1&#039;&lt;br /&gt;
 setenv extargs &#039;setenv bootargs ${bootargs} console=ttyPS0,115200 ip=:::::eth0:dhcp uio_pdrv_genirq.of_id=my-uio rootwait cma=384MB&#039;&lt;br /&gt;
 setenv fdt_high &#039;0x20000000&#039;&lt;br /&gt;
 setenv fdtcontroladdr &#039;3ffa9e30&#039;&lt;br /&gt;
 setenv initrd_high &#039;0x20000000&#039;&lt;br /&gt;
 setenv kernel_image &#039;uImage-4.4.0-xilinx-00004-g8d932a&#039;&lt;br /&gt;
 setenv kernel_load_address &#039;0x2080000&#039;&lt;br /&gt;
 &lt;br /&gt;
 setenv load_devicetree &#039;if tftpboot ${devicetree_load_address} ${tftppath}/${devicetree_image}; then echo OK; else echo FAILED; reset; fi;&#039;&lt;br /&gt;
 setenv load_dhcp &#039;if dhcp; then echo OK; else echo FAILED; reset; fi;&#039;&lt;br /&gt;
 setenv load_kernel &#039;if tftpboot ${kernel_load_address} ${tftppath}/${kernel_image}; then echo OK; else echo FAILED; reset; fi;&#039;&lt;br /&gt;
 setenv modeboot &#039;sdboot&#039;&lt;br /&gt;
 setenv netmask &#039;255.255.255.0&#039;&lt;br /&gt;
 setenv nfsargs &#039;setenv bootargs nfsroot=${rootserverip}:${rootpath},vers=3&#039;&lt;br /&gt;
 setenv rootpath &#039;/vol/diskless/CentOS7/armv7/root&#039;&lt;br /&gt;
 setenv rootserverip &#039;129.57.167.152&#039;&lt;br /&gt;
 setenv serverip &#039;129.57.167.4&#039;&lt;br /&gt;
 setenv stderr &#039;serial@e0000000&#039;&lt;br /&gt;
 setenv stdin &#039;serial@e0000000&#039;&lt;br /&gt;
 setenv stdout &#039;serial@e0000000&#039;&lt;br /&gt;
 setenv tftp_boot_string &#039;echo TFTPing Image to RAM&#039;&lt;br /&gt;
 &lt;br /&gt;
 setenv tftpboot &#039;run load_dhcp tftp_boot_string nfsargs extargs bootro load_kernel load_devicetree &amp;amp;&amp;amp; bootm ${kernel_load_address} - ${devicetree_load_address}&#039;&lt;br /&gt;
 setenv tftpboot_rw &#039;dhcp &amp;amp;&amp;amp; run tftp_boot_string nfsargs extargs bootrw load_kernel load_devicetree &amp;amp;&amp;amp; bootm ${kernel_load_address} - ${devicetree_load_address}&#039;&lt;br /&gt;
 setenv tftppath &#039;linux-install/CentOS7-armv7-Diskless&#039;&lt;br /&gt;
 &lt;br /&gt;
After that, customize following:&lt;br /&gt;
&lt;br /&gt;
 ethaddr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;tftpboot server settings&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 /tftpboot/linux-install/CentOS7-armv7-Diskless/uImage-4.4.0-xilinx-00004-g8d932a&lt;br /&gt;
                                                uImage-4.4.0-xilinx-00003-gdf4da5&lt;br /&gt;
                                                zynq-jlab-vtp.dtb_fixed_uio&lt;br /&gt;
                                                devicetree.dtb -&amp;gt; zynq-jlab-vtp.dtb_fixed_uio&lt;br /&gt;
&lt;br /&gt;
By default, root filesystem will be read-only. To make it &#039;rw&#039;, stop booting process on serial connection, type &#039;&#039;run tftpboot_rw&#039;&#039; and push &amp;lt;enter&amp;gt;. After that you can ssh as root and run &#039;&#039;yum&#039;&#039; etc.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;VTP Archlinux boot&#039;&#039;&#039; ==&lt;br /&gt;
 &lt;br /&gt;
 Zynq&amp;gt; printenv&lt;br /&gt;
 autoload=no&lt;br /&gt;
 baudrate=115200&lt;br /&gt;
 bootargs=console=ttyPS0,115200 ip=:::::eth0:dhcp nfsroot=${nfsip}:${nfsroot},${nfsargs} uio_pdrv_genirq.of_id=my-uio ro rootwait&lt;br /&gt;
 bootcmd=run $modeboot&lt;br /&gt;
 bootdelay=3&lt;br /&gt;
 devicetree_image=zynq-jlab-vtp.dtb&lt;br /&gt;
 devicetree_load_address=0x2000000&lt;br /&gt;
 ethact=ethernet@e000b000&lt;br /&gt;
 ethaddr=CE:BA:F0:03:00:02&lt;br /&gt;
 fdt_high=0x20000000&lt;br /&gt;
 fdtcontroladdr=3ffa9e30&lt;br /&gt;
 gatewayip=129.57.68.100&lt;br /&gt;
 initrd_high=0x20000000&lt;br /&gt;
 ipaddr=129.57.68.38&lt;br /&gt;
 kernel_image=uImage&lt;br /&gt;
 kernel_load_address=0x2080000&lt;br /&gt;
 kernel_path=linux-install/ArchLinux-armv71&lt;br /&gt;
 modeboot=sdboot&lt;br /&gt;
 netmask=255.255.255.0&lt;br /&gt;
 nfsargs=vers=3,tcp,timeo=600,retrans=10&lt;br /&gt;
 nfsip=129.57.167.152&lt;br /&gt;
 nfsroot=/vol/diskless/ArchLinux/armv7-devel/root&lt;br /&gt;
 sdboot=run setboot; echo Copying Linux from TFTP server to RAM...; echo Download Kernel; if tftpboot 0x2080000 linux-install/ArchLinux-armv71/uImage; then echo OK; else echo FAILED; reset; fi; echo Download DeviceTree; if tftpboot 0x2000000 linux-install/ArchLinux-armv71/zynq-jlab-vtp.dtb; then echo OK; else echo FAILED; reset; fi; echo Boot system; bootm 0x2080000 - 0x2000000&lt;br /&gt;
 sdboot_no=if mmcinfo; then echo Copying Linux from SD to RAM... &amp;amp;&amp;amp; load mmc 0 ${kernel_load_address} ${kernel_image} &amp;amp;&amp;amp; load mmc 0 ${devicetree_load_address} ${devicetree_image} &amp;amp;&amp;amp; bootm ${kernel_load_address} - ${devicetree_load_address}; fi&lt;br /&gt;
 serverip=129.57.167.4&lt;br /&gt;
 setboot=setenv bootargs console=ttyPS0,115200 ip=:::::eth0:dhcp nfsroot=${nfsip}:${nfsroot},${nfsargs} uio_pdrv_genirq.of_id=my-uio ro rootwait&lt;br /&gt;
 stderr=serial@e0000000&lt;br /&gt;
 stdin=serial@e0000000&lt;br /&gt;
 stdout=serial@e0000000&lt;br /&gt;
 tftpboot_no=echo Copying Linux from tftp server to RAM... &amp;amp;&amp;amp;tftpboot ${kernel_load_address} linux_vtp/${kernel_image} &amp;amp;&amp;amp;tftpboot ${devicetree_load_address} linux_vtp/${devicetree_image} &amp;amp;&amp;amp;bootm ${kernel_load_address} - ${devicetree_load_address};&lt;br /&gt;
 &lt;br /&gt;
 Environment size: 1828/131068 bytes&lt;br /&gt;
 Zynq&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy-Paste following on uboot prompt to program above settings (do it line-by-line, otherwise it may place some bull...):&lt;br /&gt;
&lt;br /&gt;
 setenv autoload &#039;no&#039;&lt;br /&gt;
 setenv baudrate &#039;115200&#039;&lt;br /&gt;
 setenv bootargs &#039;console=ttyPS0,115200 ip=:::::eth0:dhcp nfsroot=${nfsip}:${nfsroot},${nfsargs} uio_pdrv_genirq.of_id=my-uio ro rootwait&#039;&lt;br /&gt;
 setenv bootcmd &#039;run $modeboot&#039;&lt;br /&gt;
 setenv bootdelay &#039;3&#039;&lt;br /&gt;
 setenv devicetree_image &#039;zynq-jlab-vtp.dtb&#039;&lt;br /&gt;
 setenv devicetree_load_address &#039;0x2000000&#039;&lt;br /&gt;
 setenv ethact &#039;ethernet@e000b000&#039;&lt;br /&gt;
 setenv ethaddr &#039;CE:BA:F0:03:00:02&#039;&lt;br /&gt;
 setenv fdt_high &#039;0x20000000&#039;&lt;br /&gt;
 setenv fdtcontroladdr &#039;3ffa9e30&#039;&lt;br /&gt;
 setenv gatewayip &#039;129.57.68.100&#039;&lt;br /&gt;
 setenv initrd_high &#039;0x20000000&#039;&lt;br /&gt;
 setenv ipaddr &#039;129.57.68.38&#039;&lt;br /&gt;
 setenv kernel_image &#039;uImage&#039;&lt;br /&gt;
 setenv kernel_load_address &#039;0x2080000&#039;&lt;br /&gt;
 setenv kernel_path &#039;linux-install/ArchLinux-armv71&#039;&lt;br /&gt;
 setenv modeboot &#039;sdboot&#039;&lt;br /&gt;
 setenv netmask &#039;255.255.255.0&#039;&lt;br /&gt;
 setenv nfsargs &#039;vers=3,tcp,timeo=600,retrans=10&#039;&lt;br /&gt;
 setenv nfsip &#039;129.57.167.152&#039;&lt;br /&gt;
 setenv nfsroot &#039;/vol/diskless/ArchLinux/armv7-devel/root&#039;&lt;br /&gt;
 setenv sdboot &#039;run setboot; echo Copying Linux from TFTP server to RAM...; echo Download Kernel; if tftpboot 0x2080000 linux-install/ArchLinux-armv71/uImage; then echo OK; else echo FAILED; reset; fi; echo Download DeviceTree; if tftpboot 0x2000000 linux-install/ArchLinux-armv71/zynq-jlab-vtp.dtb; then echo OK; else echo FAILED; reset; fi; echo Boot system; bootm 0x2080000 - 0x2000000&#039;&lt;br /&gt;
 setenv sdboot_no &#039;if mmcinfo; then echo Copying Linux from SD to RAM... &amp;amp;&amp;amp; load mmc 0 ${kernel_load_address} ${kernel_image} &amp;amp;&amp;amp; load mmc 0 ${devicetree_load_address} ${devicetree_image} &amp;amp;&amp;amp; bootm ${kernel_load_address} - ${devicetree_load_address}; fi&#039;&lt;br /&gt;
 setenv serverip &#039;129.57.167.4&#039;&lt;br /&gt;
 setenv setboot &#039;setenv bootargs console=ttyPS0,115200 ip=:::::eth0:dhcp nfsroot=${nfsip}:${nfsroot},${nfsargs} uio_pdrv_genirq.of_id=my-uio ro rootwait&#039;&lt;br /&gt;
 setenv stderr &#039;serial@e0000000&#039;&lt;br /&gt;
 setenv stdin &#039;serial@e0000000&#039;&lt;br /&gt;
 setenv stdout &#039;serial@e0000000&#039;&lt;br /&gt;
 setenv tftpboot_no &#039;echo Copying Linux from tftp server to RAM... &amp;amp;&amp;amp;tftpboot ${kernel_load_address} linux_vtp/${kernel_image} &amp;amp;&amp;amp;tftpboot ${devicetree_load_address} linux_vtp/${devicetree_image} &amp;amp;&amp;amp;bootm ${kernel_load_address} - ${devicetree_load_address};&#039;&lt;br /&gt;
&lt;br /&gt;
After that, customize following:&lt;br /&gt;
 ethaddr&lt;br /&gt;
 gatewayip&lt;br /&gt;
 ipaddr&lt;br /&gt;
 netmask&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Setting of the Linux server to be used for PXE and EFI boot of the VME controllers&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Login to the server as root. Copy two files to the root directory and untar them:&lt;br /&gt;
 cd /&lt;br /&gt;
 cp /usr/downloads/tftpboot.tar.gz_clondaq15 tftpboot.tar.gz&lt;br /&gt;
 cp /usr/downloads/diskless.tar.gz_clondaq15 diskless.tar.gz&lt;br /&gt;
 gunzip tftpboot.tar.gz&lt;br /&gt;
 gunzip diskless.tar.gz&lt;br /&gt;
 tar xvf tftpboot.tar&lt;br /&gt;
 tar xvf diskless.tar&lt;br /&gt;
 rm tftpboot.tar diskless.tar&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Make sure correct snapshot location in root area &#039;&#039;/diskless/CentOS7/x86_64/root/etc/sysconfig/readonly-root&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 CLIENTSTATE=192.168.10.1:/diskless/CentOS7/x86_64/snapshot&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;/diskless/CentOS7/x86_64/root&#039;&#039; area, &#039;&#039;/etc/ssh/sshd_config&#039;&#039; must have following setting (to allow remote ssh):&lt;br /&gt;
&lt;br /&gt;
 #UsePAM yes&lt;br /&gt;
&lt;br /&gt;
it will be propagated to the controller&#039;s snapshot area on the first boot when corresponding &#039;&#039;snapshot/&amp;lt;vme_controller_name&amp;gt;&#039;&#039; directory will be created. Not sure about other settings:&lt;br /&gt;
&lt;br /&gt;
 HostbasedAuthentication yes&lt;br /&gt;
 #HostbasedAuthentication no&lt;br /&gt;
&lt;br /&gt;
 IgnoreRhosts no&lt;br /&gt;
 #IgnoreRhosts yes&lt;br /&gt;
&lt;br /&gt;
 PasswordAuthentication yes&lt;br /&gt;
 #PasswordAuthentication yes&lt;br /&gt;
 PasswordAuthentication yes&lt;br /&gt;
&lt;br /&gt;
 #UsePrivilegeSeparation sandbox		# Default for new installations.&lt;br /&gt;
 UsePrivilegeSeparation sandbox		# Default for new installations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To add or remove VME controllers, modify following files:&lt;br /&gt;
 /var/named/10.168.192.in-addr.arpa.db&lt;br /&gt;
 /var/named/clontest.com&lt;br /&gt;
 /etc/dhcp/dhcpd.conf&lt;br /&gt;
&lt;br /&gt;
restart corresponding services:&lt;br /&gt;
 systemctl restart dhcpd&lt;br /&gt;
 systemctl restart named&lt;br /&gt;
&lt;br /&gt;
and check services status:&lt;br /&gt;
 systemctl status dhcpd&lt;br /&gt;
 systemctl status named&lt;br /&gt;
&lt;br /&gt;
To set gateway, add&lt;br /&gt;
 net.ipv4.ip_forward=1&lt;br /&gt;
to &#039;&#039;/etc/sysctl.conf&#039;&#039; and execute&lt;br /&gt;
 sysctl -p&lt;br /&gt;
&lt;br /&gt;
Configure [[NFS]]&lt;br /&gt;
&lt;br /&gt;
Configure [[DHCP server]]&lt;br /&gt;
&lt;br /&gt;
Configure [[DNS server]] (&#039;&#039;&#039;NOTE:&#039;&#039;&#039; resolv.conf is different for local server !)&lt;br /&gt;
&lt;br /&gt;
Configure [[Tftp]] and [[Tftpboot]]&lt;br /&gt;
&lt;br /&gt;
Configure [[Iptables]]&lt;br /&gt;
&lt;br /&gt;
Do not forget (is it for controllers ?):&lt;br /&gt;
 chattr +i /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 yum install ypbind (????)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Configuring snapshot area&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The list of files and directories which suppose to be in snapshot area (which has RW permissions) should be set in config file &#039;&#039;/diskless/.../snapshot/files&#039;&#039;. In particular, &#039;&#039;/et&#039;&#039; has to be added there, and also directory &#039;&#039;/diskless/.../root/et&#039;&#039; should be created.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Reboot server, make sure everything is running as expected.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Configuring in chroot&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: using &#039;&#039;chroot&#039;&#039; method will allow to run &#039;&#039;yum&#039;&#039;, but &#039;&#039;systemctl&#039;&#039; commands will not work. Instead of using &#039;&#039;chroot&#039;&#039;, you may boot coontroller with &#039;&#039;rw&#039;&#039; option instead of &#039;&#039;ro&#039;&#039;. For VME boot, it can be done by changing &#039;&#039;grub.cnf&#039;&#039;, while for VTP boot you have to stop boot proocess using serial connection, and then type &#039;&#039;run tftpboot_rw&#039;&#039;.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Since root area in VME controllers will be read-only, you cannot ssh to controllers as root and change anything there, only snapshot area can be modified. To make changes in root area, in particular to configure and run &#039;&#039;yum&#039;&#039;, &#039;&#039;chroot&#039; command should be used. Login to the boot server as root and do following:&lt;br /&gt;
&lt;br /&gt;
 mount -o bind /home /diskless/CentOS7/x86_64/root/home&lt;br /&gt;
 mount -o bind /usr/local /diskless/CentOS7/x86_64/root/usr/local&lt;br /&gt;
 mount -o bind /usr/clas12 /diskless/CentOS7/x86_64/root/usr/clas12&lt;br /&gt;
 chroot /diskless/CentOS7/x86_64/root&lt;br /&gt;
&lt;br /&gt;
After that you will see all root directories as if you login to VME controller, and modifications can be made.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Configure yum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Add &#039;&#039;multilib_policy=all&#039;&#039; to &#039;&#039;/etc/yum.conf&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Add (and remove the rest ?) following to &#039;&#039;/etc/yum.repos.d/CentOS-Base.repo&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 [base]&lt;br /&gt;
 name=CentOS-$releasever - Base&lt;br /&gt;
 baseurl=http://archive.kernel.org/centos-vault/centos/$releasever/os/$basearch/&lt;br /&gt;
&lt;br /&gt;
Clean yum database:&lt;br /&gt;
&lt;br /&gt;
 rm /var/lib/rpm/__db.*&lt;br /&gt;
&lt;br /&gt;
Install following using yum:&lt;br /&gt;
&lt;br /&gt;
 yum install motif-devel tcl-devel tk-devel libXpm-devel apr-devel libXaw-devel ncurses-devel libconfig-devel&lt;br /&gt;
&lt;br /&gt;
Install following for &#039;&#039;dbedit&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 yum install tix itcl itk&lt;br /&gt;
&lt;br /&gt;
Install remaining tcl stuff from &#039;&#039;/usr/local/src&#039;&#039;, mounted as &#039;&#039;/zzz&#039;&#039; above:&lt;br /&gt;
 &lt;br /&gt;
 cd /zzz/mysqltcl-3.052&lt;br /&gt;
 make install&lt;br /&gt;
 ln -s /usr/lib/mysqltcl-3.052 /usr/lib64/tcl8.5/mysqltcl-3.052&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: Login from console may not work because of file &#039;&#039;/etc/securetty&#039;&#039; permissions, it must be 644.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: THere is a service PAM, it may prevent login from console if some required services did not start. To work around, comment out some lines in &#039;&#039;/etc/pam.d/system-auth-ac&#039;&#039; file:&lt;br /&gt;
&lt;br /&gt;
 #%PAM-1.0&lt;br /&gt;
 # This file is auto-generated.&lt;br /&gt;
 # User changes will be destroyed the next time authconfig is run.&lt;br /&gt;
 #auth        required      pam_env.so&lt;br /&gt;
 auth        sufficient    pam_unix.so nullok try_first_pass&lt;br /&gt;
 #auth        requisite     pam_succeed_if.so uid &amp;gt;= 1000 quiet_success&lt;br /&gt;
 #auth        required      pam_deny.so&lt;br /&gt;
 &lt;br /&gt;
 #account     required      pam_unix.so&lt;br /&gt;
 account     sufficient    pam_localuser.so&lt;br /&gt;
 account     sufficient    pam_succeed_if.so uid &amp;lt; 1000 quiet&lt;br /&gt;
 #account     required      pam_permit.so&lt;br /&gt;
 &lt;br /&gt;
 password    requisite     pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=&lt;br /&gt;
 password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok&lt;br /&gt;
 #password    required      pam_deny.so&lt;br /&gt;
 &lt;br /&gt;
 session     optional      pam_keyinit.so revoke&lt;br /&gt;
 #session     required      pam_limits.so&lt;br /&gt;
 -session     optional      pam_systemd.so&lt;br /&gt;
 session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid&lt;br /&gt;
 #session     required      pam_unix.so&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;After Linux boot server is ready and operational, VME controllers can be booted. On the first boot, individual &#039;&#039;/diskless/.../snapshot/&amp;lt;controller name&amp;gt;&#039;&#039; directory will be created for each controller. For VME controller specific information see [[VME]]&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Boiarino</name></author>
	</entry>
	<entry>
		<id>https://clonwiki0.jlab.org/wiki/index.php?title=Linux_Boot_Server&amp;diff=8691</id>
		<title>Linux Boot Server</title>
		<link rel="alternate" type="text/html" href="https://clonwiki0.jlab.org/wiki/index.php?title=Linux_Boot_Server&amp;diff=8691"/>
		<updated>2026-02-03T21:37:51Z</updated>

		<summary type="html">&lt;p&gt;Boiarino: /* Configuring in chroot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Main boot server is clon01&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TO DO&#039;&#039;&#039; Check UBOOT commands to erase existing environment variables:&lt;br /&gt;
&lt;br /&gt;
 env default -a -f&lt;br /&gt;
 env erase&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;VTP CentOS boot&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
UBOOT (example for gem0vtp; &#039;&#039;&#039;NOTE: for copy-paste, lines with &#039;$&#039; and &#039;{&#039; and similar have to be in single quote brackets !&#039;&#039;&#039;):&lt;br /&gt;
&lt;br /&gt;
 Zynq&amp;gt; printenv&lt;br /&gt;
 autoload=no&lt;br /&gt;
 baudrate=115200&lt;br /&gt;
 bootcmd=run tftpboot&lt;br /&gt;
 bootdelay=3&lt;br /&gt;
 bootro=setenv bootargs ${bootargs} ro&lt;br /&gt;
 bootrw=setenv bootargs ${bootargs} rw&lt;br /&gt;
 devicetree_image=devicetree.dtb&lt;br /&gt;
 devicetree_load_address=0x2000000&lt;br /&gt;
 ethact=ethernet@e000b000&lt;br /&gt;
 ethaddr=ce:ba:f0:03:xx:xx&lt;br /&gt;
 extargs=setenv bootargs ${bootargs} console=ttyPS0,115200 ip=:::::eth0:dhcp uio_pdrv_genirq.of_id=my-uio rootwait cma=384MB&lt;br /&gt;
 fdt_high=0x20000000&lt;br /&gt;
 fdtcontroladdr=3ffa9e30&lt;br /&gt;
 initrd_high=0x20000000&lt;br /&gt;
 kernel_image=uImage-4.4.0-xilinx-00004-g8d932a&lt;br /&gt;
 kernel_load_address=0x2080000&lt;br /&gt;
 load_devicetree=if tftpboot ${devicetree_load_address} ${tftppath}/${devicetree_image}; then echo OK; else echo FAILED; reset; fi;&lt;br /&gt;
 load_dhcp=if dhcp; then echo OK; else echo FAILED; reset; fi;&lt;br /&gt;
 load_kernel=if tftpboot ${kernel_load_address} ${tftppath}/${kernel_image}; then echo OK; else echo FAILED; reset; fi;&lt;br /&gt;
 modeboot=sdboot&lt;br /&gt;
 netmask=255.255.255.0&lt;br /&gt;
 nfsargs=setenv bootargs nfsroot=${rootserverip}:${rootpath},vers=3&lt;br /&gt;
 rootpath=/vol/diskless/CentOS7/armv7/root&lt;br /&gt;
 rootserverip=129.57.167.152&lt;br /&gt;
 serverip=129.57.167.4&lt;br /&gt;
 stderr=serial@e0000000&lt;br /&gt;
 stdin=serial@e0000000&lt;br /&gt;
 stdout=serial@e0000000&lt;br /&gt;
 tftp_boot_string=echo TFTPing Image to RAM&lt;br /&gt;
 tftpboot=run load_dhcp tftp_boot_string nfsargs extargs bootro load_kernel load_devicetree &amp;amp;&amp;amp; bootm ${kernel_load_address} - ${devicetree_load_address}&lt;br /&gt;
 tftpboot_rw=dhcp &amp;amp;&amp;amp; run tftp_boot_string nfsargs extargs bootrw load_kernel load_devicetree &amp;amp;&amp;amp; bootm ${kernel_load_address} - ${devicetree_load_address}&lt;br /&gt;
 tftppath=linux-install/CentOS7-armv7-Diskless&lt;br /&gt;
 &lt;br /&gt;
 Environment size: 1603/131068 bytes&lt;br /&gt;
 Zynq&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy-Paste following on uboot prompt to program above settings (do it by groups as shown, otherwise it may place some bull...):&lt;br /&gt;
&lt;br /&gt;
 setenv bootargs&lt;br /&gt;
 setenv gatewayip&lt;br /&gt;
 setenv ipaddr&lt;br /&gt;
 setenv kernel_path&lt;br /&gt;
 setenv nfsip&lt;br /&gt;
 setenv nfsroot&lt;br /&gt;
 setenv sdboot&lt;br /&gt;
 setenv sdboot_no&lt;br /&gt;
 setenv setboot&lt;br /&gt;
 setenv tftpboot_no&lt;br /&gt;
&lt;br /&gt;
 setenv autoload &#039;no&#039;&lt;br /&gt;
 setenv baudrate &#039;115200&#039;&lt;br /&gt;
 setenv bootcmd &#039;run tftpboot&#039;&lt;br /&gt;
 setenv bootdelay &#039;3&#039;&lt;br /&gt;
 setenv bootro &#039;setenv bootargs ${bootargs} ro&#039;&lt;br /&gt;
 setenv bootrw &#039;setenv bootargs ${bootargs} rw&#039;&lt;br /&gt;
 setenv devicetree_image &#039;devicetree.dtb&#039;&lt;br /&gt;
 setenv devicetree_load_address &#039;0x2000000&#039;&lt;br /&gt;
 setenv ethact &#039;ethernet@e000b000&#039;&lt;br /&gt;
 setenv ethaddr &#039;ce:ba:f0:03:00:d1&#039;&lt;br /&gt;
 setenv extargs &#039;setenv bootargs ${bootargs} console=ttyPS0,115200 ip=:::::eth0:dhcp uio_pdrv_genirq.of_id=my-uio rootwait cma=384MB&#039;&lt;br /&gt;
 setenv fdt_high &#039;0x20000000&#039;&lt;br /&gt;
 setenv fdtcontroladdr &#039;3ffa9e30&#039;&lt;br /&gt;
 setenv initrd_high &#039;0x20000000&#039;&lt;br /&gt;
 setenv kernel_image &#039;uImage-4.4.0-xilinx-00004-g8d932a&#039;&lt;br /&gt;
 setenv kernel_load_address &#039;0x2080000&#039;&lt;br /&gt;
 &lt;br /&gt;
 setenv load_devicetree &#039;if tftpboot ${devicetree_load_address} ${tftppath}/${devicetree_image}; then echo OK; else echo FAILED; reset; fi;&#039;&lt;br /&gt;
 setenv load_dhcp &#039;if dhcp; then echo OK; else echo FAILED; reset; fi;&#039;&lt;br /&gt;
 setenv load_kernel &#039;if tftpboot ${kernel_load_address} ${tftppath}/${kernel_image}; then echo OK; else echo FAILED; reset; fi;&#039;&lt;br /&gt;
 setenv modeboot &#039;sdboot&#039;&lt;br /&gt;
 setenv netmask &#039;255.255.255.0&#039;&lt;br /&gt;
 setenv nfsargs &#039;setenv bootargs nfsroot=${rootserverip}:${rootpath},vers=3&#039;&lt;br /&gt;
 setenv rootpath &#039;/vol/diskless/CentOS7/armv7/root&#039;&lt;br /&gt;
 setenv rootserverip &#039;129.57.167.152&#039;&lt;br /&gt;
 setenv serverip &#039;129.57.167.4&#039;&lt;br /&gt;
 setenv stderr &#039;serial@e0000000&#039;&lt;br /&gt;
 setenv stdin &#039;serial@e0000000&#039;&lt;br /&gt;
 setenv stdout &#039;serial@e0000000&#039;&lt;br /&gt;
 setenv tftp_boot_string &#039;echo TFTPing Image to RAM&#039;&lt;br /&gt;
 &lt;br /&gt;
 setenv tftpboot &#039;run load_dhcp tftp_boot_string nfsargs extargs bootro load_kernel load_devicetree &amp;amp;&amp;amp; bootm ${kernel_load_address} - ${devicetree_load_address}&#039;&lt;br /&gt;
 setenv tftpboot_rw &#039;dhcp &amp;amp;&amp;amp; run tftp_boot_string nfsargs extargs bootrw load_kernel load_devicetree &amp;amp;&amp;amp; bootm ${kernel_load_address} - ${devicetree_load_address}&#039;&lt;br /&gt;
 setenv tftppath &#039;linux-install/CentOS7-armv7-Diskless&#039;&lt;br /&gt;
 &lt;br /&gt;
After that, customize following:&lt;br /&gt;
&lt;br /&gt;
 ethaddr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;tftpboot server settings&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 /tftpboot/linux-install/CentOS7-armv7-Diskless/uImage-4.4.0-xilinx-00004-g8d932a&lt;br /&gt;
                                                uImage-4.4.0-xilinx-00003-gdf4da5&lt;br /&gt;
                                                zynq-jlab-vtp.dtb_fixed_uio&lt;br /&gt;
                                                devicetree.dtb -&amp;gt; zynq-jlab-vtp.dtb_fixed_uio&lt;br /&gt;
&lt;br /&gt;
By default, root filesystem will be read-only. To make it &#039;rw&#039;, stop booting process on serial connection, type &#039;&#039;run tftpboot_rw&#039;&#039; and push &amp;lt;enter&amp;gt;. After that you can ssh as root and run &#039;&#039;yum&#039;&#039; etc.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;VTP Archlinux boot&#039;&#039;&#039; ==&lt;br /&gt;
 &lt;br /&gt;
 Zynq&amp;gt; printenv&lt;br /&gt;
 autoload=no&lt;br /&gt;
 baudrate=115200&lt;br /&gt;
 bootargs=console=ttyPS0,115200 ip=:::::eth0:dhcp nfsroot=${nfsip}:${nfsroot},${nfsargs} uio_pdrv_genirq.of_id=my-uio ro rootwait&lt;br /&gt;
 bootcmd=run $modeboot&lt;br /&gt;
 bootdelay=3&lt;br /&gt;
 devicetree_image=zynq-jlab-vtp.dtb&lt;br /&gt;
 devicetree_load_address=0x2000000&lt;br /&gt;
 ethact=ethernet@e000b000&lt;br /&gt;
 ethaddr=CE:BA:F0:03:00:02&lt;br /&gt;
 fdt_high=0x20000000&lt;br /&gt;
 fdtcontroladdr=3ffa9e30&lt;br /&gt;
 gatewayip=129.57.68.100&lt;br /&gt;
 initrd_high=0x20000000&lt;br /&gt;
 ipaddr=129.57.68.38&lt;br /&gt;
 kernel_image=uImage&lt;br /&gt;
 kernel_load_address=0x2080000&lt;br /&gt;
 kernel_path=linux-install/ArchLinux-armv71&lt;br /&gt;
 modeboot=sdboot&lt;br /&gt;
 netmask=255.255.255.0&lt;br /&gt;
 nfsargs=vers=3,tcp,timeo=600,retrans=10&lt;br /&gt;
 nfsip=129.57.167.152&lt;br /&gt;
 nfsroot=/vol/diskless/ArchLinux/armv7-devel/root&lt;br /&gt;
 sdboot=run setboot; echo Copying Linux from TFTP server to RAM...; echo Download Kernel; if tftpboot 0x2080000 linux-install/ArchLinux-armv71/uImage; then echo OK; else echo FAILED; reset; fi; echo Download DeviceTree; if tftpboot 0x2000000 linux-install/ArchLinux-armv71/zynq-jlab-vtp.dtb; then echo OK; else echo FAILED; reset; fi; echo Boot system; bootm 0x2080000 - 0x2000000&lt;br /&gt;
 sdboot_no=if mmcinfo; then echo Copying Linux from SD to RAM... &amp;amp;&amp;amp; load mmc 0 ${kernel_load_address} ${kernel_image} &amp;amp;&amp;amp; load mmc 0 ${devicetree_load_address} ${devicetree_image} &amp;amp;&amp;amp; bootm ${kernel_load_address} - ${devicetree_load_address}; fi&lt;br /&gt;
 serverip=129.57.167.4&lt;br /&gt;
 setboot=setenv bootargs console=ttyPS0,115200 ip=:::::eth0:dhcp nfsroot=${nfsip}:${nfsroot},${nfsargs} uio_pdrv_genirq.of_id=my-uio ro rootwait&lt;br /&gt;
 stderr=serial@e0000000&lt;br /&gt;
 stdin=serial@e0000000&lt;br /&gt;
 stdout=serial@e0000000&lt;br /&gt;
 tftpboot_no=echo Copying Linux from tftp server to RAM... &amp;amp;&amp;amp;tftpboot ${kernel_load_address} linux_vtp/${kernel_image} &amp;amp;&amp;amp;tftpboot ${devicetree_load_address} linux_vtp/${devicetree_image} &amp;amp;&amp;amp;bootm ${kernel_load_address} - ${devicetree_load_address};&lt;br /&gt;
 &lt;br /&gt;
 Environment size: 1828/131068 bytes&lt;br /&gt;
 Zynq&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy-Paste following on uboot prompt to program above settings (do it line-by-line, otherwise it may place some bull...):&lt;br /&gt;
&lt;br /&gt;
 setenv autoload &#039;no&#039;&lt;br /&gt;
 setenv baudrate &#039;115200&#039;&lt;br /&gt;
 setenv bootargs &#039;console=ttyPS0,115200 ip=:::::eth0:dhcp nfsroot=${nfsip}:${nfsroot},${nfsargs} uio_pdrv_genirq.of_id=my-uio ro rootwait&#039;&lt;br /&gt;
 setenv bootcmd &#039;run $modeboot&#039;&lt;br /&gt;
 setenv bootdelay &#039;3&#039;&lt;br /&gt;
 setenv devicetree_image &#039;zynq-jlab-vtp.dtb&#039;&lt;br /&gt;
 setenv devicetree_load_address &#039;0x2000000&#039;&lt;br /&gt;
 setenv ethact &#039;ethernet@e000b000&#039;&lt;br /&gt;
 setenv ethaddr &#039;CE:BA:F0:03:00:02&#039;&lt;br /&gt;
 setenv fdt_high &#039;0x20000000&#039;&lt;br /&gt;
 setenv fdtcontroladdr &#039;3ffa9e30&#039;&lt;br /&gt;
 setenv gatewayip &#039;129.57.68.100&#039;&lt;br /&gt;
 setenv initrd_high &#039;0x20000000&#039;&lt;br /&gt;
 setenv ipaddr &#039;129.57.68.38&#039;&lt;br /&gt;
 setenv kernel_image &#039;uImage&#039;&lt;br /&gt;
 setenv kernel_load_address &#039;0x2080000&#039;&lt;br /&gt;
 setenv kernel_path &#039;linux-install/ArchLinux-armv71&#039;&lt;br /&gt;
 setenv modeboot &#039;sdboot&#039;&lt;br /&gt;
 setenv netmask &#039;255.255.255.0&#039;&lt;br /&gt;
 setenv nfsargs &#039;vers=3,tcp,timeo=600,retrans=10&#039;&lt;br /&gt;
 setenv nfsip &#039;129.57.167.152&#039;&lt;br /&gt;
 setenv nfsroot &#039;/vol/diskless/ArchLinux/armv7-devel/root&#039;&lt;br /&gt;
 setenv sdboot &#039;run setboot; echo Copying Linux from TFTP server to RAM...; echo Download Kernel; if tftpboot 0x2080000 linux-install/ArchLinux-armv71/uImage; then echo OK; else echo FAILED; reset; fi; echo Download DeviceTree; if tftpboot 0x2000000 linux-install/ArchLinux-armv71/zynq-jlab-vtp.dtb; then echo OK; else echo FAILED; reset; fi; echo Boot system; bootm 0x2080000 - 0x2000000&#039;&lt;br /&gt;
 setenv sdboot_no &#039;if mmcinfo; then echo Copying Linux from SD to RAM... &amp;amp;&amp;amp; load mmc 0 ${kernel_load_address} ${kernel_image} &amp;amp;&amp;amp; load mmc 0 ${devicetree_load_address} ${devicetree_image} &amp;amp;&amp;amp; bootm ${kernel_load_address} - ${devicetree_load_address}; fi&#039;&lt;br /&gt;
 setenv serverip &#039;129.57.167.4&#039;&lt;br /&gt;
 setenv setboot &#039;setenv bootargs console=ttyPS0,115200 ip=:::::eth0:dhcp nfsroot=${nfsip}:${nfsroot},${nfsargs} uio_pdrv_genirq.of_id=my-uio ro rootwait&#039;&lt;br /&gt;
 setenv stderr &#039;serial@e0000000&#039;&lt;br /&gt;
 setenv stdin &#039;serial@e0000000&#039;&lt;br /&gt;
 setenv stdout &#039;serial@e0000000&#039;&lt;br /&gt;
 setenv tftpboot_no &#039;echo Copying Linux from tftp server to RAM... &amp;amp;&amp;amp;tftpboot ${kernel_load_address} linux_vtp/${kernel_image} &amp;amp;&amp;amp;tftpboot ${devicetree_load_address} linux_vtp/${devicetree_image} &amp;amp;&amp;amp;bootm ${kernel_load_address} - ${devicetree_load_address};&#039;&lt;br /&gt;
&lt;br /&gt;
After that, customize following:&lt;br /&gt;
 ethaddr&lt;br /&gt;
 gatewayip&lt;br /&gt;
 ipaddr&lt;br /&gt;
 netmask&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Setting of the Linux server to be used for PXE and EFI boot of the VME controllers&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Login to the server as root. Copy two files to the root directory and untar them:&lt;br /&gt;
 cd /&lt;br /&gt;
 cp /usr/downloads/tftpboot.tar.gz_clondaq15 tftpboot.tar.gz&lt;br /&gt;
 cp /usr/downloads/diskless.tar.gz_clondaq15 diskless.tar.gz&lt;br /&gt;
 gunzip tftpboot.tar.gz&lt;br /&gt;
 gunzip diskless.tar.gz&lt;br /&gt;
 tar xvf tftpboot.tar&lt;br /&gt;
 tar xvf diskless.tar&lt;br /&gt;
 rm tftpboot.tar diskless.tar&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Make sure correct snapshot location in root area &#039;&#039;/diskless/CentOS7/x86_64/root/etc/sysconfig/readonly-root&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 CLIENTSTATE=192.168.10.1:/diskless/CentOS7/x86_64/snapshot&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;/diskless/CentOS7/x86_64/root&#039;&#039; area, &#039;&#039;/etc/ssh/sshd_config&#039;&#039; must have following setting (to allow remote ssh):&lt;br /&gt;
&lt;br /&gt;
 #UsePAM yes&lt;br /&gt;
&lt;br /&gt;
it will be propagated to the controller&#039;s snapshot area on the first boot when corresponding &#039;&#039;snapshot/&amp;lt;vme_controller_name&amp;gt;&#039;&#039; directory will be created. Not sure about other settings:&lt;br /&gt;
&lt;br /&gt;
 HostbasedAuthentication yes&lt;br /&gt;
 #HostbasedAuthentication no&lt;br /&gt;
&lt;br /&gt;
 IgnoreRhosts no&lt;br /&gt;
 #IgnoreRhosts yes&lt;br /&gt;
&lt;br /&gt;
 PasswordAuthentication yes&lt;br /&gt;
 #PasswordAuthentication yes&lt;br /&gt;
 PasswordAuthentication yes&lt;br /&gt;
&lt;br /&gt;
 #UsePrivilegeSeparation sandbox		# Default for new installations.&lt;br /&gt;
 UsePrivilegeSeparation sandbox		# Default for new installations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To add or remove VME controllers, modify following files:&lt;br /&gt;
 /var/named/10.168.192.in-addr.arpa.db&lt;br /&gt;
 /var/named/clontest.com&lt;br /&gt;
 /etc/dhcp/dhcpd.conf&lt;br /&gt;
&lt;br /&gt;
restart corresponding services:&lt;br /&gt;
 systemctl restart dhcpd&lt;br /&gt;
 systemctl restart named&lt;br /&gt;
&lt;br /&gt;
and check services status:&lt;br /&gt;
 systemctl status dhcpd&lt;br /&gt;
 systemctl status named&lt;br /&gt;
&lt;br /&gt;
To set gateway, add&lt;br /&gt;
 net.ipv4.ip_forward=1&lt;br /&gt;
to &#039;&#039;/etc/sysctl.conf&#039;&#039; and execute&lt;br /&gt;
 sysctl -p&lt;br /&gt;
&lt;br /&gt;
Configure [[NFS]]&lt;br /&gt;
&lt;br /&gt;
Configure [[DHCP server]]&lt;br /&gt;
&lt;br /&gt;
Configure [[DNS server]] (&#039;&#039;&#039;NOTE:&#039;&#039;&#039; resolv.conf is different for local server !)&lt;br /&gt;
&lt;br /&gt;
Configure [[Tftp]] and [[Tftpboot]]&lt;br /&gt;
&lt;br /&gt;
Configure [[Iptables]]&lt;br /&gt;
&lt;br /&gt;
Do not forget (is it for controllers ?):&lt;br /&gt;
 chattr +i /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 yum install ypbind (????)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Configuring snapshot area&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The list of files and directories which suppose to be in snapshot area (which has RW permissions) should be set in config file &#039;&#039;/diskless/.../snapshot/files&#039;&#039;. In particular, &#039;&#039;/et&#039;&#039; has to be added there, and also directory &#039;&#039;/diskless/.../root/et&#039;&#039; should be created.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Reboot server, make sure everything is running as expected.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Configuring in chroot&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; using &#039;&#039;chroot&#039;&#039; method will allow to run &#039;&#039;yum&#039;&#039;, but &#039;&#039;systemctl&#039;&#039; commands will not work. Instead of using &#039;&#039;chroot&#039;&#039;, you may boot coontroller with &#039;&#039;rw&#039;&#039; option instead of &#039;&#039;ro&#039;&#039;. For VME boot, it can be done by changing &#039;&#039;grub.cnf&#039;&#039;, while for VTP boot you have to stop boot proocess using serial connection, and then type &#039;&#039;run tftpboot_rw&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Since root area in VME controllers will be read-only, you cannot ssh to controllers as root and change anything there, only snapshot area can be modified. To make changes in root area, in particular to configure and run &#039;&#039;yum&#039;&#039;, &#039;&#039;chroot&#039; command should be used. Login to the boot server as root and do following:&lt;br /&gt;
&lt;br /&gt;
 mount -o bind /home /diskless/CentOS7/x86_64/root/home&lt;br /&gt;
 mount -o bind /usr/local /diskless/CentOS7/x86_64/root/usr/local&lt;br /&gt;
 mount -o bind /usr/clas12 /diskless/CentOS7/x86_64/root/usr/clas12&lt;br /&gt;
 chroot /diskless/CentOS7/x86_64/root&lt;br /&gt;
&lt;br /&gt;
After that you will see all root directories as if you login to VME controller, and modifications can be made.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Configure yum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Add &#039;&#039;multilib_policy=all&#039;&#039; to &#039;&#039;/etc/yum.conf&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Add (and remove the rest ?) following to &#039;&#039;/etc/yum.repos.d/CentOS-Base.repo&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 [base]&lt;br /&gt;
 name=CentOS-$releasever - Base&lt;br /&gt;
 baseurl=http://archive.kernel.org/centos-vault/centos/$releasever/os/$basearch/&lt;br /&gt;
&lt;br /&gt;
Clean yum database:&lt;br /&gt;
&lt;br /&gt;
 rm /var/lib/rpm/__db.*&lt;br /&gt;
&lt;br /&gt;
Install following using yum:&lt;br /&gt;
&lt;br /&gt;
 yum install motif-devel tcl-devel tk-devel libXpm-devel apr-devel libXaw-devel ncurses-devel libconfig-devel&lt;br /&gt;
&lt;br /&gt;
Install following for &#039;&#039;dbedit&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 yum install tix itcl itk&lt;br /&gt;
&lt;br /&gt;
Install remaining tcl stuff from &#039;&#039;/usr/local/src&#039;&#039;, mounted as &#039;&#039;/zzz&#039;&#039; above:&lt;br /&gt;
 &lt;br /&gt;
 cd /zzz/mysqltcl-3.052&lt;br /&gt;
 make install&lt;br /&gt;
 ln -s /usr/lib/mysqltcl-3.052 /usr/lib64/tcl8.5/mysqltcl-3.052&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: Login from console may not work because of file &#039;&#039;/etc/securetty&#039;&#039; permissions, it must be 644.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: THere is a service PAM, it may prevent login from console if some required services did not start. To work around, comment out some lines in &#039;&#039;/etc/pam.d/system-auth-ac&#039;&#039; file:&lt;br /&gt;
&lt;br /&gt;
 #%PAM-1.0&lt;br /&gt;
 # This file is auto-generated.&lt;br /&gt;
 # User changes will be destroyed the next time authconfig is run.&lt;br /&gt;
 #auth        required      pam_env.so&lt;br /&gt;
 auth        sufficient    pam_unix.so nullok try_first_pass&lt;br /&gt;
 #auth        requisite     pam_succeed_if.so uid &amp;gt;= 1000 quiet_success&lt;br /&gt;
 #auth        required      pam_deny.so&lt;br /&gt;
 &lt;br /&gt;
 #account     required      pam_unix.so&lt;br /&gt;
 account     sufficient    pam_localuser.so&lt;br /&gt;
 account     sufficient    pam_succeed_if.so uid &amp;lt; 1000 quiet&lt;br /&gt;
 #account     required      pam_permit.so&lt;br /&gt;
 &lt;br /&gt;
 password    requisite     pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=&lt;br /&gt;
 password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok&lt;br /&gt;
 #password    required      pam_deny.so&lt;br /&gt;
 &lt;br /&gt;
 session     optional      pam_keyinit.so revoke&lt;br /&gt;
 #session     required      pam_limits.so&lt;br /&gt;
 -session     optional      pam_systemd.so&lt;br /&gt;
 session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid&lt;br /&gt;
 #session     required      pam_unix.so&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;After Linux boot server is ready and operational, VME controllers can be booted. On the first boot, individual &#039;&#039;/diskless/.../snapshot/&amp;lt;controller name&amp;gt;&#039;&#039; directory will be created for each controller. For VME controller specific information see [[VME]]&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Boiarino</name></author>
	</entry>
	<entry>
		<id>https://clonwiki0.jlab.org/wiki/index.php?title=Linux_Boot_Server&amp;diff=8690</id>
		<title>Linux Boot Server</title>
		<link rel="alternate" type="text/html" href="https://clonwiki0.jlab.org/wiki/index.php?title=Linux_Boot_Server&amp;diff=8690"/>
		<updated>2026-02-03T21:35:47Z</updated>

		<summary type="html">&lt;p&gt;Boiarino: /* Configuring in chroot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Main boot server is clon01&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TO DO&#039;&#039;&#039; Check UBOOT commands to erase existing environment variables:&lt;br /&gt;
&lt;br /&gt;
 env default -a -f&lt;br /&gt;
 env erase&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;VTP CentOS boot&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
UBOOT (example for gem0vtp; &#039;&#039;&#039;NOTE: for copy-paste, lines with &#039;$&#039; and &#039;{&#039; and similar have to be in single quote brackets !&#039;&#039;&#039;):&lt;br /&gt;
&lt;br /&gt;
 Zynq&amp;gt; printenv&lt;br /&gt;
 autoload=no&lt;br /&gt;
 baudrate=115200&lt;br /&gt;
 bootcmd=run tftpboot&lt;br /&gt;
 bootdelay=3&lt;br /&gt;
 bootro=setenv bootargs ${bootargs} ro&lt;br /&gt;
 bootrw=setenv bootargs ${bootargs} rw&lt;br /&gt;
 devicetree_image=devicetree.dtb&lt;br /&gt;
 devicetree_load_address=0x2000000&lt;br /&gt;
 ethact=ethernet@e000b000&lt;br /&gt;
 ethaddr=ce:ba:f0:03:xx:xx&lt;br /&gt;
 extargs=setenv bootargs ${bootargs} console=ttyPS0,115200 ip=:::::eth0:dhcp uio_pdrv_genirq.of_id=my-uio rootwait cma=384MB&lt;br /&gt;
 fdt_high=0x20000000&lt;br /&gt;
 fdtcontroladdr=3ffa9e30&lt;br /&gt;
 initrd_high=0x20000000&lt;br /&gt;
 kernel_image=uImage-4.4.0-xilinx-00004-g8d932a&lt;br /&gt;
 kernel_load_address=0x2080000&lt;br /&gt;
 load_devicetree=if tftpboot ${devicetree_load_address} ${tftppath}/${devicetree_image}; then echo OK; else echo FAILED; reset; fi;&lt;br /&gt;
 load_dhcp=if dhcp; then echo OK; else echo FAILED; reset; fi;&lt;br /&gt;
 load_kernel=if tftpboot ${kernel_load_address} ${tftppath}/${kernel_image}; then echo OK; else echo FAILED; reset; fi;&lt;br /&gt;
 modeboot=sdboot&lt;br /&gt;
 netmask=255.255.255.0&lt;br /&gt;
 nfsargs=setenv bootargs nfsroot=${rootserverip}:${rootpath},vers=3&lt;br /&gt;
 rootpath=/vol/diskless/CentOS7/armv7/root&lt;br /&gt;
 rootserverip=129.57.167.152&lt;br /&gt;
 serverip=129.57.167.4&lt;br /&gt;
 stderr=serial@e0000000&lt;br /&gt;
 stdin=serial@e0000000&lt;br /&gt;
 stdout=serial@e0000000&lt;br /&gt;
 tftp_boot_string=echo TFTPing Image to RAM&lt;br /&gt;
 tftpboot=run load_dhcp tftp_boot_string nfsargs extargs bootro load_kernel load_devicetree &amp;amp;&amp;amp; bootm ${kernel_load_address} - ${devicetree_load_address}&lt;br /&gt;
 tftpboot_rw=dhcp &amp;amp;&amp;amp; run tftp_boot_string nfsargs extargs bootrw load_kernel load_devicetree &amp;amp;&amp;amp; bootm ${kernel_load_address} - ${devicetree_load_address}&lt;br /&gt;
 tftppath=linux-install/CentOS7-armv7-Diskless&lt;br /&gt;
 &lt;br /&gt;
 Environment size: 1603/131068 bytes&lt;br /&gt;
 Zynq&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy-Paste following on uboot prompt to program above settings (do it by groups as shown, otherwise it may place some bull...):&lt;br /&gt;
&lt;br /&gt;
 setenv bootargs&lt;br /&gt;
 setenv gatewayip&lt;br /&gt;
 setenv ipaddr&lt;br /&gt;
 setenv kernel_path&lt;br /&gt;
 setenv nfsip&lt;br /&gt;
 setenv nfsroot&lt;br /&gt;
 setenv sdboot&lt;br /&gt;
 setenv sdboot_no&lt;br /&gt;
 setenv setboot&lt;br /&gt;
 setenv tftpboot_no&lt;br /&gt;
&lt;br /&gt;
 setenv autoload &#039;no&#039;&lt;br /&gt;
 setenv baudrate &#039;115200&#039;&lt;br /&gt;
 setenv bootcmd &#039;run tftpboot&#039;&lt;br /&gt;
 setenv bootdelay &#039;3&#039;&lt;br /&gt;
 setenv bootro &#039;setenv bootargs ${bootargs} ro&#039;&lt;br /&gt;
 setenv bootrw &#039;setenv bootargs ${bootargs} rw&#039;&lt;br /&gt;
 setenv devicetree_image &#039;devicetree.dtb&#039;&lt;br /&gt;
 setenv devicetree_load_address &#039;0x2000000&#039;&lt;br /&gt;
 setenv ethact &#039;ethernet@e000b000&#039;&lt;br /&gt;
 setenv ethaddr &#039;ce:ba:f0:03:00:d1&#039;&lt;br /&gt;
 setenv extargs &#039;setenv bootargs ${bootargs} console=ttyPS0,115200 ip=:::::eth0:dhcp uio_pdrv_genirq.of_id=my-uio rootwait cma=384MB&#039;&lt;br /&gt;
 setenv fdt_high &#039;0x20000000&#039;&lt;br /&gt;
 setenv fdtcontroladdr &#039;3ffa9e30&#039;&lt;br /&gt;
 setenv initrd_high &#039;0x20000000&#039;&lt;br /&gt;
 setenv kernel_image &#039;uImage-4.4.0-xilinx-00004-g8d932a&#039;&lt;br /&gt;
 setenv kernel_load_address &#039;0x2080000&#039;&lt;br /&gt;
 &lt;br /&gt;
 setenv load_devicetree &#039;if tftpboot ${devicetree_load_address} ${tftppath}/${devicetree_image}; then echo OK; else echo FAILED; reset; fi;&#039;&lt;br /&gt;
 setenv load_dhcp &#039;if dhcp; then echo OK; else echo FAILED; reset; fi;&#039;&lt;br /&gt;
 setenv load_kernel &#039;if tftpboot ${kernel_load_address} ${tftppath}/${kernel_image}; then echo OK; else echo FAILED; reset; fi;&#039;&lt;br /&gt;
 setenv modeboot &#039;sdboot&#039;&lt;br /&gt;
 setenv netmask &#039;255.255.255.0&#039;&lt;br /&gt;
 setenv nfsargs &#039;setenv bootargs nfsroot=${rootserverip}:${rootpath},vers=3&#039;&lt;br /&gt;
 setenv rootpath &#039;/vol/diskless/CentOS7/armv7/root&#039;&lt;br /&gt;
 setenv rootserverip &#039;129.57.167.152&#039;&lt;br /&gt;
 setenv serverip &#039;129.57.167.4&#039;&lt;br /&gt;
 setenv stderr &#039;serial@e0000000&#039;&lt;br /&gt;
 setenv stdin &#039;serial@e0000000&#039;&lt;br /&gt;
 setenv stdout &#039;serial@e0000000&#039;&lt;br /&gt;
 setenv tftp_boot_string &#039;echo TFTPing Image to RAM&#039;&lt;br /&gt;
 &lt;br /&gt;
 setenv tftpboot &#039;run load_dhcp tftp_boot_string nfsargs extargs bootro load_kernel load_devicetree &amp;amp;&amp;amp; bootm ${kernel_load_address} - ${devicetree_load_address}&#039;&lt;br /&gt;
 setenv tftpboot_rw &#039;dhcp &amp;amp;&amp;amp; run tftp_boot_string nfsargs extargs bootrw load_kernel load_devicetree &amp;amp;&amp;amp; bootm ${kernel_load_address} - ${devicetree_load_address}&#039;&lt;br /&gt;
 setenv tftppath &#039;linux-install/CentOS7-armv7-Diskless&#039;&lt;br /&gt;
 &lt;br /&gt;
After that, customize following:&lt;br /&gt;
&lt;br /&gt;
 ethaddr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;tftpboot server settings&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 /tftpboot/linux-install/CentOS7-armv7-Diskless/uImage-4.4.0-xilinx-00004-g8d932a&lt;br /&gt;
                                                uImage-4.4.0-xilinx-00003-gdf4da5&lt;br /&gt;
                                                zynq-jlab-vtp.dtb_fixed_uio&lt;br /&gt;
                                                devicetree.dtb -&amp;gt; zynq-jlab-vtp.dtb_fixed_uio&lt;br /&gt;
&lt;br /&gt;
By default, root filesystem will be read-only. To make it &#039;rw&#039;, stop booting process on serial connection, type &#039;&#039;run tftpboot_rw&#039;&#039; and push &amp;lt;enter&amp;gt;. After that you can ssh as root and run &#039;&#039;yum&#039;&#039; etc.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;VTP Archlinux boot&#039;&#039;&#039; ==&lt;br /&gt;
 &lt;br /&gt;
 Zynq&amp;gt; printenv&lt;br /&gt;
 autoload=no&lt;br /&gt;
 baudrate=115200&lt;br /&gt;
 bootargs=console=ttyPS0,115200 ip=:::::eth0:dhcp nfsroot=${nfsip}:${nfsroot},${nfsargs} uio_pdrv_genirq.of_id=my-uio ro rootwait&lt;br /&gt;
 bootcmd=run $modeboot&lt;br /&gt;
 bootdelay=3&lt;br /&gt;
 devicetree_image=zynq-jlab-vtp.dtb&lt;br /&gt;
 devicetree_load_address=0x2000000&lt;br /&gt;
 ethact=ethernet@e000b000&lt;br /&gt;
 ethaddr=CE:BA:F0:03:00:02&lt;br /&gt;
 fdt_high=0x20000000&lt;br /&gt;
 fdtcontroladdr=3ffa9e30&lt;br /&gt;
 gatewayip=129.57.68.100&lt;br /&gt;
 initrd_high=0x20000000&lt;br /&gt;
 ipaddr=129.57.68.38&lt;br /&gt;
 kernel_image=uImage&lt;br /&gt;
 kernel_load_address=0x2080000&lt;br /&gt;
 kernel_path=linux-install/ArchLinux-armv71&lt;br /&gt;
 modeboot=sdboot&lt;br /&gt;
 netmask=255.255.255.0&lt;br /&gt;
 nfsargs=vers=3,tcp,timeo=600,retrans=10&lt;br /&gt;
 nfsip=129.57.167.152&lt;br /&gt;
 nfsroot=/vol/diskless/ArchLinux/armv7-devel/root&lt;br /&gt;
 sdboot=run setboot; echo Copying Linux from TFTP server to RAM...; echo Download Kernel; if tftpboot 0x2080000 linux-install/ArchLinux-armv71/uImage; then echo OK; else echo FAILED; reset; fi; echo Download DeviceTree; if tftpboot 0x2000000 linux-install/ArchLinux-armv71/zynq-jlab-vtp.dtb; then echo OK; else echo FAILED; reset; fi; echo Boot system; bootm 0x2080000 - 0x2000000&lt;br /&gt;
 sdboot_no=if mmcinfo; then echo Copying Linux from SD to RAM... &amp;amp;&amp;amp; load mmc 0 ${kernel_load_address} ${kernel_image} &amp;amp;&amp;amp; load mmc 0 ${devicetree_load_address} ${devicetree_image} &amp;amp;&amp;amp; bootm ${kernel_load_address} - ${devicetree_load_address}; fi&lt;br /&gt;
 serverip=129.57.167.4&lt;br /&gt;
 setboot=setenv bootargs console=ttyPS0,115200 ip=:::::eth0:dhcp nfsroot=${nfsip}:${nfsroot},${nfsargs} uio_pdrv_genirq.of_id=my-uio ro rootwait&lt;br /&gt;
 stderr=serial@e0000000&lt;br /&gt;
 stdin=serial@e0000000&lt;br /&gt;
 stdout=serial@e0000000&lt;br /&gt;
 tftpboot_no=echo Copying Linux from tftp server to RAM... &amp;amp;&amp;amp;tftpboot ${kernel_load_address} linux_vtp/${kernel_image} &amp;amp;&amp;amp;tftpboot ${devicetree_load_address} linux_vtp/${devicetree_image} &amp;amp;&amp;amp;bootm ${kernel_load_address} - ${devicetree_load_address};&lt;br /&gt;
 &lt;br /&gt;
 Environment size: 1828/131068 bytes&lt;br /&gt;
 Zynq&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy-Paste following on uboot prompt to program above settings (do it line-by-line, otherwise it may place some bull...):&lt;br /&gt;
&lt;br /&gt;
 setenv autoload &#039;no&#039;&lt;br /&gt;
 setenv baudrate &#039;115200&#039;&lt;br /&gt;
 setenv bootargs &#039;console=ttyPS0,115200 ip=:::::eth0:dhcp nfsroot=${nfsip}:${nfsroot},${nfsargs} uio_pdrv_genirq.of_id=my-uio ro rootwait&#039;&lt;br /&gt;
 setenv bootcmd &#039;run $modeboot&#039;&lt;br /&gt;
 setenv bootdelay &#039;3&#039;&lt;br /&gt;
 setenv devicetree_image &#039;zynq-jlab-vtp.dtb&#039;&lt;br /&gt;
 setenv devicetree_load_address &#039;0x2000000&#039;&lt;br /&gt;
 setenv ethact &#039;ethernet@e000b000&#039;&lt;br /&gt;
 setenv ethaddr &#039;CE:BA:F0:03:00:02&#039;&lt;br /&gt;
 setenv fdt_high &#039;0x20000000&#039;&lt;br /&gt;
 setenv fdtcontroladdr &#039;3ffa9e30&#039;&lt;br /&gt;
 setenv gatewayip &#039;129.57.68.100&#039;&lt;br /&gt;
 setenv initrd_high &#039;0x20000000&#039;&lt;br /&gt;
 setenv ipaddr &#039;129.57.68.38&#039;&lt;br /&gt;
 setenv kernel_image &#039;uImage&#039;&lt;br /&gt;
 setenv kernel_load_address &#039;0x2080000&#039;&lt;br /&gt;
 setenv kernel_path &#039;linux-install/ArchLinux-armv71&#039;&lt;br /&gt;
 setenv modeboot &#039;sdboot&#039;&lt;br /&gt;
 setenv netmask &#039;255.255.255.0&#039;&lt;br /&gt;
 setenv nfsargs &#039;vers=3,tcp,timeo=600,retrans=10&#039;&lt;br /&gt;
 setenv nfsip &#039;129.57.167.152&#039;&lt;br /&gt;
 setenv nfsroot &#039;/vol/diskless/ArchLinux/armv7-devel/root&#039;&lt;br /&gt;
 setenv sdboot &#039;run setboot; echo Copying Linux from TFTP server to RAM...; echo Download Kernel; if tftpboot 0x2080000 linux-install/ArchLinux-armv71/uImage; then echo OK; else echo FAILED; reset; fi; echo Download DeviceTree; if tftpboot 0x2000000 linux-install/ArchLinux-armv71/zynq-jlab-vtp.dtb; then echo OK; else echo FAILED; reset; fi; echo Boot system; bootm 0x2080000 - 0x2000000&#039;&lt;br /&gt;
 setenv sdboot_no &#039;if mmcinfo; then echo Copying Linux from SD to RAM... &amp;amp;&amp;amp; load mmc 0 ${kernel_load_address} ${kernel_image} &amp;amp;&amp;amp; load mmc 0 ${devicetree_load_address} ${devicetree_image} &amp;amp;&amp;amp; bootm ${kernel_load_address} - ${devicetree_load_address}; fi&#039;&lt;br /&gt;
 setenv serverip &#039;129.57.167.4&#039;&lt;br /&gt;
 setenv setboot &#039;setenv bootargs console=ttyPS0,115200 ip=:::::eth0:dhcp nfsroot=${nfsip}:${nfsroot},${nfsargs} uio_pdrv_genirq.of_id=my-uio ro rootwait&#039;&lt;br /&gt;
 setenv stderr &#039;serial@e0000000&#039;&lt;br /&gt;
 setenv stdin &#039;serial@e0000000&#039;&lt;br /&gt;
 setenv stdout &#039;serial@e0000000&#039;&lt;br /&gt;
 setenv tftpboot_no &#039;echo Copying Linux from tftp server to RAM... &amp;amp;&amp;amp;tftpboot ${kernel_load_address} linux_vtp/${kernel_image} &amp;amp;&amp;amp;tftpboot ${devicetree_load_address} linux_vtp/${devicetree_image} &amp;amp;&amp;amp;bootm ${kernel_load_address} - ${devicetree_load_address};&#039;&lt;br /&gt;
&lt;br /&gt;
After that, customize following:&lt;br /&gt;
 ethaddr&lt;br /&gt;
 gatewayip&lt;br /&gt;
 ipaddr&lt;br /&gt;
 netmask&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Setting of the Linux server to be used for PXE and EFI boot of the VME controllers&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Login to the server as root. Copy two files to the root directory and untar them:&lt;br /&gt;
 cd /&lt;br /&gt;
 cp /usr/downloads/tftpboot.tar.gz_clondaq15 tftpboot.tar.gz&lt;br /&gt;
 cp /usr/downloads/diskless.tar.gz_clondaq15 diskless.tar.gz&lt;br /&gt;
 gunzip tftpboot.tar.gz&lt;br /&gt;
 gunzip diskless.tar.gz&lt;br /&gt;
 tar xvf tftpboot.tar&lt;br /&gt;
 tar xvf diskless.tar&lt;br /&gt;
 rm tftpboot.tar diskless.tar&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Make sure correct snapshot location in root area &#039;&#039;/diskless/CentOS7/x86_64/root/etc/sysconfig/readonly-root&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 CLIENTSTATE=192.168.10.1:/diskless/CentOS7/x86_64/snapshot&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;/diskless/CentOS7/x86_64/root&#039;&#039; area, &#039;&#039;/etc/ssh/sshd_config&#039;&#039; must have following setting (to allow remote ssh):&lt;br /&gt;
&lt;br /&gt;
 #UsePAM yes&lt;br /&gt;
&lt;br /&gt;
it will be propagated to the controller&#039;s snapshot area on the first boot when corresponding &#039;&#039;snapshot/&amp;lt;vme_controller_name&amp;gt;&#039;&#039; directory will be created. Not sure about other settings:&lt;br /&gt;
&lt;br /&gt;
 HostbasedAuthentication yes&lt;br /&gt;
 #HostbasedAuthentication no&lt;br /&gt;
&lt;br /&gt;
 IgnoreRhosts no&lt;br /&gt;
 #IgnoreRhosts yes&lt;br /&gt;
&lt;br /&gt;
 PasswordAuthentication yes&lt;br /&gt;
 #PasswordAuthentication yes&lt;br /&gt;
 PasswordAuthentication yes&lt;br /&gt;
&lt;br /&gt;
 #UsePrivilegeSeparation sandbox		# Default for new installations.&lt;br /&gt;
 UsePrivilegeSeparation sandbox		# Default for new installations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To add or remove VME controllers, modify following files:&lt;br /&gt;
 /var/named/10.168.192.in-addr.arpa.db&lt;br /&gt;
 /var/named/clontest.com&lt;br /&gt;
 /etc/dhcp/dhcpd.conf&lt;br /&gt;
&lt;br /&gt;
restart corresponding services:&lt;br /&gt;
 systemctl restart dhcpd&lt;br /&gt;
 systemctl restart named&lt;br /&gt;
&lt;br /&gt;
and check services status:&lt;br /&gt;
 systemctl status dhcpd&lt;br /&gt;
 systemctl status named&lt;br /&gt;
&lt;br /&gt;
To set gateway, add&lt;br /&gt;
 net.ipv4.ip_forward=1&lt;br /&gt;
to &#039;&#039;/etc/sysctl.conf&#039;&#039; and execute&lt;br /&gt;
 sysctl -p&lt;br /&gt;
&lt;br /&gt;
Configure [[NFS]]&lt;br /&gt;
&lt;br /&gt;
Configure [[DHCP server]]&lt;br /&gt;
&lt;br /&gt;
Configure [[DNS server]] (&#039;&#039;&#039;NOTE:&#039;&#039;&#039; resolv.conf is different for local server !)&lt;br /&gt;
&lt;br /&gt;
Configure [[Tftp]] and [[Tftpboot]]&lt;br /&gt;
&lt;br /&gt;
Configure [[Iptables]]&lt;br /&gt;
&lt;br /&gt;
Do not forget (is it for controllers ?):&lt;br /&gt;
 chattr +i /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 yum install ypbind (????)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Configuring snapshot area&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The list of files and directories which suppose to be in snapshot area (which has RW permissions) should be set in config file &#039;&#039;/diskless/.../snapshot/files&#039;&#039;. In particular, &#039;&#039;/et&#039;&#039; has to be added there, and also directory &#039;&#039;/diskless/.../root/et&#039;&#039; should be created.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Reboot server, make sure everything is running as expected.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Configuring in chroot&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; using &#039;&#039;chroot&#039;&#039; method will allow to run &#039;&#039;yum&#039;&#039;, but &#039;&#039;systemctl&#039;&#039; commands will not work. Instead of using &#039;&#039;chroot&#039;&#039;, you may boot coontroller with &#039;&#039;rw&#039;&#039; option instead of &#039;&#039;ro&#039;&#039;. For VME boot, it can be done by changing &#039;&#039;grub.cnf&#039;&#039;, while for VTP boot you have to stop boot proocess using serial connection, and then type &#039;&#039;run ftp....&lt;br /&gt;
&lt;br /&gt;
Since root area in VME controllers will be read-only, you cannot ssh to controllers as root and change anything there, only snapshot area can be modified. To make changes in root area, in particular to configure and run &#039;&#039;yum&#039;&#039;, &#039;&#039;chroot&#039; command should be used. Login to the boot server as root and do following:&lt;br /&gt;
&lt;br /&gt;
 mount -o bind /home /diskless/CentOS7/x86_64/root/home&lt;br /&gt;
 mount -o bind /usr/local /diskless/CentOS7/x86_64/root/usr/local&lt;br /&gt;
 mount -o bind /usr/clas12 /diskless/CentOS7/x86_64/root/usr/clas12&lt;br /&gt;
 chroot /diskless/CentOS7/x86_64/root&lt;br /&gt;
&lt;br /&gt;
After that you will see all root directories as if you login to VME controller, and modifications can be made.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Configure yum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Add &#039;&#039;multilib_policy=all&#039;&#039; to &#039;&#039;/etc/yum.conf&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Add (and remove the rest ?) following to &#039;&#039;/etc/yum.repos.d/CentOS-Base.repo&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 [base]&lt;br /&gt;
 name=CentOS-$releasever - Base&lt;br /&gt;
 baseurl=http://archive.kernel.org/centos-vault/centos/$releasever/os/$basearch/&lt;br /&gt;
&lt;br /&gt;
Clean yum database:&lt;br /&gt;
&lt;br /&gt;
 rm /var/lib/rpm/__db.*&lt;br /&gt;
&lt;br /&gt;
Install following using yum:&lt;br /&gt;
&lt;br /&gt;
 yum install motif-devel tcl-devel tk-devel libXpm-devel apr-devel libXaw-devel ncurses-devel libconfig-devel&lt;br /&gt;
&lt;br /&gt;
Install following for &#039;&#039;dbedit&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 yum install tix itcl itk&lt;br /&gt;
&lt;br /&gt;
Install remaining tcl stuff from &#039;&#039;/usr/local/src&#039;&#039;, mounted as &#039;&#039;/zzz&#039;&#039; above:&lt;br /&gt;
 &lt;br /&gt;
 cd /zzz/mysqltcl-3.052&lt;br /&gt;
 make install&lt;br /&gt;
 ln -s /usr/lib/mysqltcl-3.052 /usr/lib64/tcl8.5/mysqltcl-3.052&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: Login from console may not work because of file &#039;&#039;/etc/securetty&#039;&#039; permissions, it must be 644.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: THere is a service PAM, it may prevent login from console if some required services did not start. To work around, comment out some lines in &#039;&#039;/etc/pam.d/system-auth-ac&#039;&#039; file:&lt;br /&gt;
&lt;br /&gt;
 #%PAM-1.0&lt;br /&gt;
 # This file is auto-generated.&lt;br /&gt;
 # User changes will be destroyed the next time authconfig is run.&lt;br /&gt;
 #auth        required      pam_env.so&lt;br /&gt;
 auth        sufficient    pam_unix.so nullok try_first_pass&lt;br /&gt;
 #auth        requisite     pam_succeed_if.so uid &amp;gt;= 1000 quiet_success&lt;br /&gt;
 #auth        required      pam_deny.so&lt;br /&gt;
 &lt;br /&gt;
 #account     required      pam_unix.so&lt;br /&gt;
 account     sufficient    pam_localuser.so&lt;br /&gt;
 account     sufficient    pam_succeed_if.so uid &amp;lt; 1000 quiet&lt;br /&gt;
 #account     required      pam_permit.so&lt;br /&gt;
 &lt;br /&gt;
 password    requisite     pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=&lt;br /&gt;
 password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok&lt;br /&gt;
 #password    required      pam_deny.so&lt;br /&gt;
 &lt;br /&gt;
 session     optional      pam_keyinit.so revoke&lt;br /&gt;
 #session     required      pam_limits.so&lt;br /&gt;
 -session     optional      pam_systemd.so&lt;br /&gt;
 session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid&lt;br /&gt;
 #session     required      pam_unix.so&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;After Linux boot server is ready and operational, VME controllers can be booted. On the first boot, individual &#039;&#039;/diskless/.../snapshot/&amp;lt;controller name&amp;gt;&#039;&#039; directory will be created for each controller. For VME controller specific information see [[VME]]&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Boiarino</name></author>
	</entry>
	<entry>
		<id>https://clonwiki0.jlab.org/wiki/index.php?title=Systemd&amp;diff=8689</id>
		<title>Systemd</title>
		<link rel="alternate" type="text/html" href="https://clonwiki0.jlab.org/wiki/index.php?title=Systemd&amp;diff=8689"/>
		<updated>2026-02-03T21:29:32Z</updated>

		<summary type="html">&lt;p&gt;Boiarino: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Creating service in systemd (RHEL7 and up) ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; on Centos5 for DiagGuiServer, described below, placing startup into &#039;&#039;rc.local&#039;&#039; works better - no extra environment settings from clasrun user is required, probably because of rc.local executed AFTER all systemd services, have to understand. Example of the working &#039;&#039;/etc/rc.d/rc.local&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 touch /var/lock/subsys/local&lt;br /&gt;
 &lt;br /&gt;
 rm -f /var/log/DiagGuiServer.log&lt;br /&gt;
 touch /var/log/DiagGuiServer.log&lt;br /&gt;
 chmod 777 /var/log/DiagGuiServer.log&lt;br /&gt;
 su clasrun -c &amp;quot;DiagGuiServer init &amp;gt;&amp;gt; /var/log/DiagGuiServer.log &amp;amp;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTES:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 systemctl list-units | grep -o &#039;.*\.mount&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== DiagGuiServer example (VME) ==&lt;br /&gt;
&lt;br /&gt;
Create file &#039;&#039;/usr/lib/systemd/system/DiagGuiServer.service&#039;&#039; with following contents:&lt;br /&gt;
&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=DiagGuiServer&lt;br /&gt;
 #After=network.target&lt;br /&gt;
 #Requires=autofs.service&lt;br /&gt;
 #Requires=nfs-utils.service nfs-lock.service autofs.service&lt;br /&gt;
 #Requires=autofs.service&lt;br /&gt;
 #After=network.target apps.mount home.mount usr-clas12.mount usr-local.mount&lt;br /&gt;
 #After=-.mount&lt;br /&gt;
 #RequiresMountsFor=/usr/clas12/release/2.0.0/coda/Linux_x86_64_RHEL7_vme/bin&lt;br /&gt;
 #Wants=remote-fs.target&lt;br /&gt;
 #After=remote-fs.target&lt;br /&gt;
 #ConditionPathExists=/usr/clas12/release/2.0.0/coda/Linux_x86_64_RHEL7_vme/bin &lt;br /&gt;
&lt;br /&gt;
 [Service]&lt;br /&gt;
 Type=simple&lt;br /&gt;
 User=clasrun&lt;br /&gt;
 Group=onliners&lt;br /&gt;
 ExecStart=/usr/clas12/release/2.0.0/coda/Linux_x86_64_RHEL7_vme/bin/DiagGuiServer init&lt;br /&gt;
 Restart=on-failure&lt;br /&gt;
 RestartSec=10&lt;br /&gt;
&lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; various commented out settings in [Unit] section were tried to make sure DiagGuiServer service run after everything else is ready (in particular automounts), but nothing really worked; solution was to allow restart on failure in section [Service], so after a couple of failures service DiagGuiServer finally starts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Create directory &#039;&#039;/etc/systemd/system/DiagGuiServer.service.d/&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Create file &#039;&#039;/etc/systemd/system/DiagGuiServer.service.d/override.conf&#039;&#039; with following contents:&lt;br /&gt;
&lt;br /&gt;
 [Service]&lt;br /&gt;
 Environment=&amp;quot;LD_LIBRARY_PATH=/apps/gcc/11.5.0/lib:/apps/gcc/11.5.0/lib64:/usr/lib:/usr/local/lib:/usr/local/activemq/lib:/usr/clas12/release/2.0.0/coda/Linux_x86_64_RHEL7_vme/lib:/usr/clas12/release/2.0.0/clon/Linux_x86_64_RHEL7_vme/lib:/usr/clas12/release/2.0.0/clon/lib&amp;quot;&lt;br /&gt;
 Environment=&amp;quot;IPC_HOST=clon00&amp;quot;&lt;br /&gt;
 Environment=&amp;quot;MYSQL_HOST=clondb1&amp;quot;&lt;br /&gt;
 Environment=&amp;quot;EXPID=clasrun&amp;quot;&lt;br /&gt;
 Environment=&amp;quot;CLON_PARMS=/usr/clas12/release/2.0.0/parms&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Following commands can be used to control service:&lt;br /&gt;
&lt;br /&gt;
 systemctl daemon-reload&lt;br /&gt;
 systemctl start DiagGuiServer&lt;br /&gt;
 systemctl stop DiagGuiServer&lt;br /&gt;
 systemctl status DiagGuiServer&lt;br /&gt;
&lt;br /&gt;
In case of problems, useful command:&lt;br /&gt;
&lt;br /&gt;
 journalctl -u DiagGuiServer&lt;br /&gt;
&lt;br /&gt;
To start service at boot time, execute command:&lt;br /&gt;
&lt;br /&gt;
 systemctl enable DiagGuiServer&lt;br /&gt;
&lt;br /&gt;
following message should come up on screen:&lt;br /&gt;
&lt;br /&gt;
Created symlink from /etc/systemd/system/multi-user.target.wants/DiagGuiServer.service to /usr/lib/systemd/system/DiagGuiServer.service.&lt;br /&gt;
&lt;br /&gt;
== DiagGui example (VTP) ==&lt;br /&gt;
&lt;br /&gt;
Create file &#039;&#039;/usr/lib/systemd/system/DiagGuiServer.service&#039;&#039; with following contents:&lt;br /&gt;
&lt;br /&gt;
 [Service]&lt;br /&gt;
 ##&lt;br /&gt;
 ## see /etc/systemd/system/DiagGuiServer.service.d/override.conf&lt;br /&gt;
 ##Environment=&amp;quot;LD_LIBRARY_PATH=/usr/clas12/release/2.0.0/coda/Linux_armv7l_RHEL7/lib:/usr/local/activemq/lib&amp;quot; &amp;quot;SESSION=clasprod&amp;quot; &amp;quot;EXPID=clasrun&amp;quot; &amp;quot;IPC_HOST=clon00&amp;quot; &amp;quot;CLON_PARMS=/usr/clas12/release/2.0.0/parms&amp;quot; &amp;quot;MYSQL_HOST=clondb1&amp;quot;&lt;br /&gt;
 ##&lt;br /&gt;
 User=clasrun&lt;br /&gt;
 Group=onliners&lt;br /&gt;
 Type=simple&lt;br /&gt;
 ExecStart=/usr/clas12/release/2.0.0/coda/Linux_armv7l_RHEL7/bin/vtpserver&lt;br /&gt;
 Restart=no&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
Create directory /etc/systemd/system/DiagGuiServer.service.d/.&lt;br /&gt;
&lt;br /&gt;
Create file /etc/systemd/system/DiagGuiServer.service.d/override.conf with following contents: &lt;br /&gt;
&lt;br /&gt;
 [Service]&lt;br /&gt;
 Environment=&amp;quot;LD_LIBRARY_PATH=/apps/gcc/11.5.0/lib:/apps/gcc/11.5.0/lib64:/usr/clas12/release/2.0.0/coda/Linux_armv7l_RHEL7/lib:/usr/local/activemq/lib&amp;quot;&lt;br /&gt;
 Environment=&amp;quot;SESSION=clasprod&amp;quot;&lt;br /&gt;
 Environment=&amp;quot;EXPID=clasrun&amp;quot;&lt;br /&gt;
 Environment=&amp;quot;IPC_HOST=clon00&amp;quot;&lt;br /&gt;
 Environment=&amp;quot;CLON_PARMS=/usr/clas12/release/2.0.0/parms&amp;quot;&lt;br /&gt;
 Environment=&amp;quot;MYSQL_HOST=clondb1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Following commands can be used to control service:&lt;br /&gt;
&lt;br /&gt;
 systemctl daemon-reload&lt;br /&gt;
 systemctl start DiagGuiServer&lt;br /&gt;
 systemctl stop DiagGuiServer&lt;br /&gt;
 systemctl status DiagGuiServer&lt;br /&gt;
&lt;br /&gt;
In case of problems, useful command:&lt;br /&gt;
&lt;br /&gt;
 journalctl -u DiagGuiServer&lt;br /&gt;
&lt;br /&gt;
To start service at boot time, execute command:&lt;br /&gt;
&lt;br /&gt;
 systemctl enable DiagGuiServer&lt;br /&gt;
&lt;br /&gt;
following message should come up on screen:&lt;br /&gt;
&lt;br /&gt;
Created symlink from /etc/systemd/system/multi-user.target.wants/DiagGuiServer.service to /usr/lib/systemd/system/DiagGuiServer.service.&lt;/div&gt;</summary>
		<author><name>Boiarino</name></author>
	</entry>
	<entry>
		<id>https://clonwiki0.jlab.org/wiki/index.php?title=Systemd&amp;diff=8688</id>
		<title>Systemd</title>
		<link rel="alternate" type="text/html" href="https://clonwiki0.jlab.org/wiki/index.php?title=Systemd&amp;diff=8688"/>
		<updated>2026-02-03T16:08:18Z</updated>

		<summary type="html">&lt;p&gt;Boiarino: /* DiagGui example (VTP) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Creating service in systemd (RHEL7 and up) ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; on Centos5 for DiagGuiServer, described below, placing startup into &#039;&#039;rc.local&#039;&#039; works better - no extra environment settings from clasrun user is required, probably because of rc.local executed AFTER all systemd services, have to understand. Example of the working &#039;&#039;/etc/rc.d/rc.local&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 touch /var/lock/subsys/local&lt;br /&gt;
 &lt;br /&gt;
 rm -f /var/log/DiagGuiServer.log&lt;br /&gt;
 touch /var/log/DiagGuiServer.log&lt;br /&gt;
 chmod 777 /var/log/DiagGuiServer.log&lt;br /&gt;
 su clasrun -c &amp;quot;DiagGuiServer init &amp;gt;&amp;gt; /var/log/DiagGuiServer.log &amp;amp;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTES:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 systemctl list-units | grep -o &#039;.*\.mount&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== DiagGuiServer example (VME) ==&lt;br /&gt;
&lt;br /&gt;
Create file &#039;&#039;/usr/lib/systemd/system/DiagGuiServer.service&#039;&#039; with following contents:&lt;br /&gt;
&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=DiagGuiServer&lt;br /&gt;
 #After=network.target&lt;br /&gt;
 #Requires=autofs.service&lt;br /&gt;
 #Requires=nfs-utils.service nfs-lock.service autofs.service&lt;br /&gt;
 #Requires=autofs.service&lt;br /&gt;
 #After=network.target apps.mount home.mount usr-clas12.mount usr-local.mount&lt;br /&gt;
 #After=-.mount&lt;br /&gt;
 #RequiresMountsFor=/usr/clas12/release/2.0.0/coda/Linux_x86_64_RHEL7_vme/bin&lt;br /&gt;
 #Wants=remote-fs.target&lt;br /&gt;
 #After=remote-fs.target&lt;br /&gt;
 #ConditionPathExists=/usr/clas12/release/2.0.0/coda/Linux_x86_64_RHEL7_vme/bin &lt;br /&gt;
&lt;br /&gt;
 [Service]&lt;br /&gt;
 Type=simple&lt;br /&gt;
 User=clasrun&lt;br /&gt;
 Group=onliners&lt;br /&gt;
 ExecStart=/usr/clas12/release/2.0.0/coda/Linux_x86_64_RHEL7_vme/bin/DiagGuiServer init&lt;br /&gt;
 Restart=on-failure&lt;br /&gt;
 RestartSec=10&lt;br /&gt;
&lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; various commented out settings in [Unit] section were tried to make sure DiagGuiServer service run after everything else is ready (in particular automounts), but nothing really worked; solution was to allow restart on failure in section [Service], so after a couple of failures service DiagGuiServer finally starts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Create directory &#039;&#039;/etc/systemd/system/DiagGuiServer.service.d/&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Create file &#039;&#039;/etc/systemd/system/DiagGuiServer.service.d/override.conf&#039;&#039; with following contents:&lt;br /&gt;
&lt;br /&gt;
 [Service]&lt;br /&gt;
 Environment=&amp;quot;LD_LIBRARY_PATH=/apps/gcc/11.5.0/lib:/apps/gcc/11.5.0/lib64:/usr/lib:/usr/local/lib:/usr/local/activemq/lib:/usr/clas12/release/2.0.0/coda/Linux_x86_64_RHEL7_vme/lib:/usr/clas12/release/2.0.0/clon/Linux_x86_64_RHEL7_vme/lib:/usr/clas12/release/2.0.0/clon/lib&amp;quot;&lt;br /&gt;
 Environment=&amp;quot;IPC_HOST=clon00&amp;quot;&lt;br /&gt;
 Environment=&amp;quot;MYSQL_HOST=clondb1&amp;quot;&lt;br /&gt;
 Environment=&amp;quot;EXPID=clasrun&amp;quot;&lt;br /&gt;
 Environment=&amp;quot;CLON_PARMS=/usr/clas12/release/2.0.0/parms&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Following commands can be used to control service:&lt;br /&gt;
&lt;br /&gt;
 systemctl daemon-reload&lt;br /&gt;
 systemctl start DiagGuiServer&lt;br /&gt;
 systemctl stop DiagGuiServer&lt;br /&gt;
 systemctl status DiagGuiServer&lt;br /&gt;
&lt;br /&gt;
In case of problems, useful command:&lt;br /&gt;
&lt;br /&gt;
 journalctl -u DiagGuiServer&lt;br /&gt;
&lt;br /&gt;
To start service at boot time, execute command:&lt;br /&gt;
&lt;br /&gt;
 systemctl enable DiagGuiServer&lt;br /&gt;
&lt;br /&gt;
following message should come up on screen:&lt;br /&gt;
&lt;br /&gt;
 Created symlink from /etc/systemd/system/multi-user.target.wants/DiagGuiServer.service to /usr/lib/systemd/system/DiagGuiServer.service.&lt;br /&gt;
&lt;br /&gt;
== DiagGui example (VTP) ==&lt;br /&gt;
&lt;br /&gt;
Create file &#039;&#039;/usr/lib/systemd/system/DiagGuiServer.service&#039;&#039; with following contents:&lt;br /&gt;
&lt;br /&gt;
 [Service]&lt;br /&gt;
 ##&lt;br /&gt;
 ## see /etc/systemd/system/DiagGuiServer.service.d/override.conf&lt;br /&gt;
 ##Environment=&amp;quot;LD_LIBRARY_PATH=/usr/clas12/release/2.0.0/coda/Linux_armv7l_RHEL7/lib:/usr/local/activemq/lib&amp;quot; &amp;quot;SESSION=clasprod&amp;quot; &amp;quot;EXPID=clasrun&amp;quot; &amp;quot;IPC_HOST=clon00&amp;quot; &amp;quot;CLON_PARMS=/usr/clas12/release/2.0.0/parms&amp;quot; &amp;quot;MYSQL_HOST=clondb1&amp;quot;&lt;br /&gt;
 ##&lt;br /&gt;
 User=clasrun&lt;br /&gt;
 Group=onliners&lt;br /&gt;
 Type=simple&lt;br /&gt;
 ExecStart=/usr/clas12/release/2.0.0/coda/Linux_armv7l_RHEL7/bin/vtpserver&lt;br /&gt;
 Restart=no&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
Create directory /etc/systemd/system/DiagGuiServer.service.d/.&lt;br /&gt;
&lt;br /&gt;
Create file /etc/systemd/system/DiagGuiServer.service.d/override.conf with following contents: &lt;br /&gt;
&lt;br /&gt;
 [Service]&lt;br /&gt;
 Environment=&amp;quot;LD_LIBRARY_PATH=/apps/gcc/11.5.0/lib:/apps/gcc/11.5.0/lib64:/usr/clas12/release/2.0.0/coda/Linux_armv7l_RHEL7/lib:/usr/local/activemq/lib&amp;quot;&lt;br /&gt;
 Environment=&amp;quot;SESSION=clasprod&amp;quot;&lt;br /&gt;
 Environment=&amp;quot;EXPID=clasrun&amp;quot;&lt;br /&gt;
 Environment=&amp;quot;IPC_HOST=clon00&amp;quot;&lt;br /&gt;
 Environment=&amp;quot;CLON_PARMS=/usr/clas12/release/2.0.0/parms&amp;quot;&lt;br /&gt;
 Environment=&amp;quot;MYSQL_HOST=clondb1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Following commands can be used to control service:&lt;br /&gt;
&lt;br /&gt;
 systemctl daemon-reload&lt;br /&gt;
 systemctl start DiagGuiServer&lt;br /&gt;
 systemctl stop DiagGuiServer&lt;br /&gt;
 systemctl status DiagGuiServer&lt;br /&gt;
&lt;br /&gt;
In case of problems, useful command:&lt;br /&gt;
&lt;br /&gt;
 journalctl -u DiagGuiServer&lt;br /&gt;
&lt;br /&gt;
To start service at boot time, execute command:&lt;br /&gt;
&lt;br /&gt;
 systemctl enable DiagGuiServer&lt;br /&gt;
&lt;br /&gt;
following message should come up on screen:&lt;br /&gt;
&lt;br /&gt;
Created symlink from /etc/systemd/system/multi-user.target.wants/DiagGuiServer.service to /usr/lib/systemd/system/DiagGuiServer.service.&lt;/div&gt;</summary>
		<author><name>Boiarino</name></author>
	</entry>
	<entry>
		<id>https://clonwiki0.jlab.org/wiki/index.php?title=Systemd&amp;diff=8687</id>
		<title>Systemd</title>
		<link rel="alternate" type="text/html" href="https://clonwiki0.jlab.org/wiki/index.php?title=Systemd&amp;diff=8687"/>
		<updated>2026-02-03T15:30:24Z</updated>

		<summary type="html">&lt;p&gt;Boiarino: /* DiagGui example (VTP) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Creating service in systemd (RHEL7 and up) ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; on Centos5 for DiagGuiServer, described below, placing startup into &#039;&#039;rc.local&#039;&#039; works better - no extra environment settings from clasrun user is required, probably because of rc.local executed AFTER all systemd services, have to understand. Example of the working &#039;&#039;/etc/rc.d/rc.local&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 touch /var/lock/subsys/local&lt;br /&gt;
 &lt;br /&gt;
 rm -f /var/log/DiagGuiServer.log&lt;br /&gt;
 touch /var/log/DiagGuiServer.log&lt;br /&gt;
 chmod 777 /var/log/DiagGuiServer.log&lt;br /&gt;
 su clasrun -c &amp;quot;DiagGuiServer init &amp;gt;&amp;gt; /var/log/DiagGuiServer.log &amp;amp;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTES:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 systemctl list-units | grep -o &#039;.*\.mount&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== DiagGuiServer example (VME) ==&lt;br /&gt;
&lt;br /&gt;
Create file &#039;&#039;/usr/lib/systemd/system/DiagGuiServer.service&#039;&#039; with following contents:&lt;br /&gt;
&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=DiagGuiServer&lt;br /&gt;
 #After=network.target&lt;br /&gt;
 #Requires=autofs.service&lt;br /&gt;
 #Requires=nfs-utils.service nfs-lock.service autofs.service&lt;br /&gt;
 #Requires=autofs.service&lt;br /&gt;
 #After=network.target apps.mount home.mount usr-clas12.mount usr-local.mount&lt;br /&gt;
 #After=-.mount&lt;br /&gt;
 #RequiresMountsFor=/usr/clas12/release/2.0.0/coda/Linux_x86_64_RHEL7_vme/bin&lt;br /&gt;
 #Wants=remote-fs.target&lt;br /&gt;
 #After=remote-fs.target&lt;br /&gt;
 #ConditionPathExists=/usr/clas12/release/2.0.0/coda/Linux_x86_64_RHEL7_vme/bin &lt;br /&gt;
&lt;br /&gt;
 [Service]&lt;br /&gt;
 Type=simple&lt;br /&gt;
 User=clasrun&lt;br /&gt;
 Group=onliners&lt;br /&gt;
 ExecStart=/usr/clas12/release/2.0.0/coda/Linux_x86_64_RHEL7_vme/bin/DiagGuiServer init&lt;br /&gt;
 Restart=on-failure&lt;br /&gt;
 RestartSec=10&lt;br /&gt;
&lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; various commented out settings in [Unit] section were tried to make sure DiagGuiServer service run after everything else is ready (in particular automounts), but nothing really worked; solution was to allow restart on failure in section [Service], so after a couple of failures service DiagGuiServer finally starts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Create directory &#039;&#039;/etc/systemd/system/DiagGuiServer.service.d/&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Create file &#039;&#039;/etc/systemd/system/DiagGuiServer.service.d/override.conf&#039;&#039; with following contents:&lt;br /&gt;
&lt;br /&gt;
 [Service]&lt;br /&gt;
 Environment=&amp;quot;LD_LIBRARY_PATH=/apps/gcc/11.5.0/lib:/apps/gcc/11.5.0/lib64:/usr/lib:/usr/local/lib:/usr/local/activemq/lib:/usr/clas12/release/2.0.0/coda/Linux_x86_64_RHEL7_vme/lib:/usr/clas12/release/2.0.0/clon/Linux_x86_64_RHEL7_vme/lib:/usr/clas12/release/2.0.0/clon/lib&amp;quot;&lt;br /&gt;
 Environment=&amp;quot;IPC_HOST=clon00&amp;quot;&lt;br /&gt;
 Environment=&amp;quot;MYSQL_HOST=clondb1&amp;quot;&lt;br /&gt;
 Environment=&amp;quot;EXPID=clasrun&amp;quot;&lt;br /&gt;
 Environment=&amp;quot;CLON_PARMS=/usr/clas12/release/2.0.0/parms&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Following commands can be used to control service:&lt;br /&gt;
&lt;br /&gt;
 systemctl daemon-reload&lt;br /&gt;
 systemctl start DiagGuiServer&lt;br /&gt;
 systemctl stop DiagGuiServer&lt;br /&gt;
 systemctl status DiagGuiServer&lt;br /&gt;
&lt;br /&gt;
In case of problems, useful command:&lt;br /&gt;
&lt;br /&gt;
 journalctl -u DiagGuiServer&lt;br /&gt;
&lt;br /&gt;
To start service at boot time, execute command:&lt;br /&gt;
&lt;br /&gt;
 systemctl enable DiagGuiServer&lt;br /&gt;
&lt;br /&gt;
following message should come up on screen:&lt;br /&gt;
&lt;br /&gt;
 Created symlink from /etc/systemd/system/multi-user.target.wants/DiagGuiServer.service to /usr/lib/systemd/system/DiagGuiServer.service.&lt;br /&gt;
&lt;br /&gt;
== DiagGui example (VTP) ==&lt;br /&gt;
&lt;br /&gt;
Create file &#039;&#039;/usr/lib/systemd/system/DiagGuiServer.service&#039;&#039; with following contents:&lt;br /&gt;
&lt;br /&gt;
 [Service]&lt;br /&gt;
 ##&lt;br /&gt;
 ## see /etc/systemd/system/DiagGuiServer.service.d/override.conf&lt;br /&gt;
 ##Environment=&amp;quot;LD_LIBRARY_PATH=/usr/clas12/release/2.0.0/coda/Linux_armv7l_RHEL7/lib:/usr/local/activemq/lib&amp;quot; &amp;quot;SESSION=clasprod&amp;quot; &amp;quot;EXPID=clasrun&amp;quot; &amp;quot;IPC_HOST=clon00&amp;quot; &amp;quot;CLON_PARMS=/usr/clas12/release/2.0.0/parms&amp;quot; &amp;quot;MYSQL_HOST=clondb1&amp;quot;&lt;br /&gt;
 ##&lt;br /&gt;
 User=clasrun&lt;br /&gt;
 Group=onliners&lt;br /&gt;
 Type=simple&lt;br /&gt;
 ExecStart=/usr/clas12/release/2.0.0/coda/Linux_armv7l_RHEL7/bin/vtpserver&lt;br /&gt;
 Restart=no&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
Create directory /etc/systemd/system/DiagGuiServer.service.d/.&lt;br /&gt;
&lt;br /&gt;
Create file /etc/systemd/system/DiagGuiServer.service.d/override.conf with following contents: &lt;br /&gt;
&lt;br /&gt;
 [Service]&lt;br /&gt;
 Environment=&amp;quot;LD_LIBRARY_PATH=/usr/clas12/release/2.0.0/coda/Linux_armv7l_RHEL7/lib:/usr/local/activemq/lib&amp;quot;&lt;br /&gt;
 Environment=&amp;quot;SESSION=clasprod&amp;quot;&lt;br /&gt;
 Environment=&amp;quot;EXPID=clasrun&amp;quot;&lt;br /&gt;
 Environment=&amp;quot;IPC_HOST=clon00&amp;quot;&lt;br /&gt;
 Environment=&amp;quot;CLON_PARMS=/usr/clas12/release/2.0.0/parms&amp;quot;&lt;br /&gt;
 Environment=&amp;quot;MYSQL_HOST=clondb1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Following commands can be used to control service:&lt;br /&gt;
&lt;br /&gt;
 systemctl daemon-reload&lt;br /&gt;
 systemctl start DiagGuiServer&lt;br /&gt;
 systemctl stop DiagGuiServer&lt;br /&gt;
 systemctl status DiagGuiServer&lt;br /&gt;
&lt;br /&gt;
In case of problems, useful command:&lt;br /&gt;
&lt;br /&gt;
 journalctl -u DiagGuiServer&lt;br /&gt;
&lt;br /&gt;
To start service at boot time, execute command:&lt;br /&gt;
&lt;br /&gt;
 systemctl enable DiagGuiServer&lt;br /&gt;
&lt;br /&gt;
following message should come up on screen:&lt;br /&gt;
&lt;br /&gt;
Created symlink from /etc/systemd/system/multi-user.target.wants/DiagGuiServer.service to /usr/lib/systemd/system/DiagGuiServer.service.&lt;/div&gt;</summary>
		<author><name>Boiarino</name></author>
	</entry>
	<entry>
		<id>https://clonwiki0.jlab.org/wiki/index.php?title=Systemd&amp;diff=8686</id>
		<title>Systemd</title>
		<link rel="alternate" type="text/html" href="https://clonwiki0.jlab.org/wiki/index.php?title=Systemd&amp;diff=8686"/>
		<updated>2026-02-03T15:29:24Z</updated>

		<summary type="html">&lt;p&gt;Boiarino: /* DiagGui example (VTP) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Creating service in systemd (RHEL7 and up) ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; on Centos5 for DiagGuiServer, described below, placing startup into &#039;&#039;rc.local&#039;&#039; works better - no extra environment settings from clasrun user is required, probably because of rc.local executed AFTER all systemd services, have to understand. Example of the working &#039;&#039;/etc/rc.d/rc.local&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 touch /var/lock/subsys/local&lt;br /&gt;
 &lt;br /&gt;
 rm -f /var/log/DiagGuiServer.log&lt;br /&gt;
 touch /var/log/DiagGuiServer.log&lt;br /&gt;
 chmod 777 /var/log/DiagGuiServer.log&lt;br /&gt;
 su clasrun -c &amp;quot;DiagGuiServer init &amp;gt;&amp;gt; /var/log/DiagGuiServer.log &amp;amp;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTES:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 systemctl list-units | grep -o &#039;.*\.mount&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== DiagGuiServer example (VME) ==&lt;br /&gt;
&lt;br /&gt;
Create file &#039;&#039;/usr/lib/systemd/system/DiagGuiServer.service&#039;&#039; with following contents:&lt;br /&gt;
&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=DiagGuiServer&lt;br /&gt;
 #After=network.target&lt;br /&gt;
 #Requires=autofs.service&lt;br /&gt;
 #Requires=nfs-utils.service nfs-lock.service autofs.service&lt;br /&gt;
 #Requires=autofs.service&lt;br /&gt;
 #After=network.target apps.mount home.mount usr-clas12.mount usr-local.mount&lt;br /&gt;
 #After=-.mount&lt;br /&gt;
 #RequiresMountsFor=/usr/clas12/release/2.0.0/coda/Linux_x86_64_RHEL7_vme/bin&lt;br /&gt;
 #Wants=remote-fs.target&lt;br /&gt;
 #After=remote-fs.target&lt;br /&gt;
 #ConditionPathExists=/usr/clas12/release/2.0.0/coda/Linux_x86_64_RHEL7_vme/bin &lt;br /&gt;
&lt;br /&gt;
 [Service]&lt;br /&gt;
 Type=simple&lt;br /&gt;
 User=clasrun&lt;br /&gt;
 Group=onliners&lt;br /&gt;
 ExecStart=/usr/clas12/release/2.0.0/coda/Linux_x86_64_RHEL7_vme/bin/DiagGuiServer init&lt;br /&gt;
 Restart=on-failure&lt;br /&gt;
 RestartSec=10&lt;br /&gt;
&lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; various commented out settings in [Unit] section were tried to make sure DiagGuiServer service run after everything else is ready (in particular automounts), but nothing really worked; solution was to allow restart on failure in section [Service], so after a couple of failures service DiagGuiServer finally starts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Create directory &#039;&#039;/etc/systemd/system/DiagGuiServer.service.d/&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Create file &#039;&#039;/etc/systemd/system/DiagGuiServer.service.d/override.conf&#039;&#039; with following contents:&lt;br /&gt;
&lt;br /&gt;
 [Service]&lt;br /&gt;
 Environment=&amp;quot;LD_LIBRARY_PATH=/apps/gcc/11.5.0/lib:/apps/gcc/11.5.0/lib64:/usr/lib:/usr/local/lib:/usr/local/activemq/lib:/usr/clas12/release/2.0.0/coda/Linux_x86_64_RHEL7_vme/lib:/usr/clas12/release/2.0.0/clon/Linux_x86_64_RHEL7_vme/lib:/usr/clas12/release/2.0.0/clon/lib&amp;quot;&lt;br /&gt;
 Environment=&amp;quot;IPC_HOST=clon00&amp;quot;&lt;br /&gt;
 Environment=&amp;quot;MYSQL_HOST=clondb1&amp;quot;&lt;br /&gt;
 Environment=&amp;quot;EXPID=clasrun&amp;quot;&lt;br /&gt;
 Environment=&amp;quot;CLON_PARMS=/usr/clas12/release/2.0.0/parms&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Following commands can be used to control service:&lt;br /&gt;
&lt;br /&gt;
 systemctl daemon-reload&lt;br /&gt;
 systemctl start DiagGuiServer&lt;br /&gt;
 systemctl stop DiagGuiServer&lt;br /&gt;
 systemctl status DiagGuiServer&lt;br /&gt;
&lt;br /&gt;
In case of problems, useful command:&lt;br /&gt;
&lt;br /&gt;
 journalctl -u DiagGuiServer&lt;br /&gt;
&lt;br /&gt;
To start service at boot time, execute command:&lt;br /&gt;
&lt;br /&gt;
 systemctl enable DiagGuiServer&lt;br /&gt;
&lt;br /&gt;
following message should come up on screen:&lt;br /&gt;
&lt;br /&gt;
 Created symlink from /etc/systemd/system/multi-user.target.wants/DiagGuiServer.service to /usr/lib/systemd/system/DiagGuiServer.service.&lt;br /&gt;
&lt;br /&gt;
== DiagGui example (VTP) ==&lt;br /&gt;
&lt;br /&gt;
Create file &#039;&#039;/usr/lib/systemd/system/DiagGuiServer.service&#039;&#039; with following contents:&lt;br /&gt;
&lt;br /&gt;
 [Service]&lt;br /&gt;
 ##&lt;br /&gt;
 ## see /etc/systemd/system/DiagGuiServer.service.d/override.conf&lt;br /&gt;
 ##Environment=&amp;quot;LD_LIBRARY_PATH=/usr/clas12/release/2.0.0/coda/Linux_armv7l_RHEL7/lib:/usr/local/activemq/lib&amp;quot; &amp;quot;SESSION=clasprod&amp;quot; &amp;quot;EXPID=clasrun&amp;quot; &amp;quot;IPC_HOST=clon00&amp;quot; &amp;quot;CLON_PARMS=/usr/clas12/release/2.0.0/parms&amp;quot; &amp;quot;MYSQL_HOST=clondb1&amp;quot;&lt;br /&gt;
 ##&lt;br /&gt;
 User=clasrun&lt;br /&gt;
 Group=onliners&lt;br /&gt;
 Type=simple&lt;br /&gt;
 ExecStart=/usr/clas12/release/2.0.0/coda/Linux_armv7l_RHEL7/bin/vtpserver&lt;br /&gt;
 Restart=no&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
Create directory /etc/systemd/system/DiagGuiServer.service.d/.&lt;br /&gt;
&lt;br /&gt;
Create file /etc/systemd/system/DiagGuiServer.service.d/override.conf with following contents: &lt;br /&gt;
&lt;br /&gt;
 [Service]&lt;br /&gt;
 Environment=&amp;quot;LD_LIBRARY_PATH=/usr/clas12/release/2.0.0/coda/Linux_armv7l_RHEL7/lib:/usr/local/activemq/lib&amp;quot;&lt;br /&gt;
 Environment=&amp;quot;SESSION=clasprod&amp;quot;&lt;br /&gt;
 Environment=&amp;quot;EXPID=clasrun&amp;quot;&lt;br /&gt;
 Environment=&amp;quot;IPC_HOST=clon00&amp;quot;&lt;br /&gt;
 Environment=&amp;quot;CLON_PARMS=/usr/clas12/release/2.0.0/parms&amp;quot;&lt;br /&gt;
 Environment=&amp;quot;MYSQL_HOST=clondb1&amp;quot;&lt;/div&gt;</summary>
		<author><name>Boiarino</name></author>
	</entry>
	<entry>
		<id>https://clonwiki0.jlab.org/wiki/index.php?title=Systemd&amp;diff=8685</id>
		<title>Systemd</title>
		<link rel="alternate" type="text/html" href="https://clonwiki0.jlab.org/wiki/index.php?title=Systemd&amp;diff=8685"/>
		<updated>2026-02-03T15:23:50Z</updated>

		<summary type="html">&lt;p&gt;Boiarino: /* DiagGuiServer example (VME) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Creating service in systemd (RHEL7 and up) ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; on Centos5 for DiagGuiServer, described below, placing startup into &#039;&#039;rc.local&#039;&#039; works better - no extra environment settings from clasrun user is required, probably because of rc.local executed AFTER all systemd services, have to understand. Example of the working &#039;&#039;/etc/rc.d/rc.local&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 touch /var/lock/subsys/local&lt;br /&gt;
 &lt;br /&gt;
 rm -f /var/log/DiagGuiServer.log&lt;br /&gt;
 touch /var/log/DiagGuiServer.log&lt;br /&gt;
 chmod 777 /var/log/DiagGuiServer.log&lt;br /&gt;
 su clasrun -c &amp;quot;DiagGuiServer init &amp;gt;&amp;gt; /var/log/DiagGuiServer.log &amp;amp;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTES:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 systemctl list-units | grep -o &#039;.*\.mount&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== DiagGuiServer example (VME) ==&lt;br /&gt;
&lt;br /&gt;
Create file &#039;&#039;/usr/lib/systemd/system/DiagGuiServer.service&#039;&#039; with following contents:&lt;br /&gt;
&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=DiagGuiServer&lt;br /&gt;
 #After=network.target&lt;br /&gt;
 #Requires=autofs.service&lt;br /&gt;
 #Requires=nfs-utils.service nfs-lock.service autofs.service&lt;br /&gt;
 #Requires=autofs.service&lt;br /&gt;
 #After=network.target apps.mount home.mount usr-clas12.mount usr-local.mount&lt;br /&gt;
 #After=-.mount&lt;br /&gt;
 #RequiresMountsFor=/usr/clas12/release/2.0.0/coda/Linux_x86_64_RHEL7_vme/bin&lt;br /&gt;
 #Wants=remote-fs.target&lt;br /&gt;
 #After=remote-fs.target&lt;br /&gt;
 #ConditionPathExists=/usr/clas12/release/2.0.0/coda/Linux_x86_64_RHEL7_vme/bin &lt;br /&gt;
&lt;br /&gt;
 [Service]&lt;br /&gt;
 Type=simple&lt;br /&gt;
 User=clasrun&lt;br /&gt;
 Group=onliners&lt;br /&gt;
 ExecStart=/usr/clas12/release/2.0.0/coda/Linux_x86_64_RHEL7_vme/bin/DiagGuiServer init&lt;br /&gt;
 Restart=on-failure&lt;br /&gt;
 RestartSec=10&lt;br /&gt;
&lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; various commented out settings in [Unit] section were tried to make sure DiagGuiServer service run after everything else is ready (in particular automounts), but nothing really worked; solution was to allow restart on failure in section [Service], so after a couple of failures service DiagGuiServer finally starts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Create directory &#039;&#039;/etc/systemd/system/DiagGuiServer.service.d/&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Create file &#039;&#039;/etc/systemd/system/DiagGuiServer.service.d/override.conf&#039;&#039; with following contents:&lt;br /&gt;
&lt;br /&gt;
 [Service]&lt;br /&gt;
 Environment=&amp;quot;LD_LIBRARY_PATH=/apps/gcc/11.5.0/lib:/apps/gcc/11.5.0/lib64:/usr/lib:/usr/local/lib:/usr/local/activemq/lib:/usr/clas12/release/2.0.0/coda/Linux_x86_64_RHEL7_vme/lib:/usr/clas12/release/2.0.0/clon/Linux_x86_64_RHEL7_vme/lib:/usr/clas12/release/2.0.0/clon/lib&amp;quot;&lt;br /&gt;
 Environment=&amp;quot;IPC_HOST=clon00&amp;quot;&lt;br /&gt;
 Environment=&amp;quot;MYSQL_HOST=clondb1&amp;quot;&lt;br /&gt;
 Environment=&amp;quot;EXPID=clasrun&amp;quot;&lt;br /&gt;
 Environment=&amp;quot;CLON_PARMS=/usr/clas12/release/2.0.0/parms&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Following commands can be used to control service:&lt;br /&gt;
&lt;br /&gt;
 systemctl daemon-reload&lt;br /&gt;
 systemctl start DiagGuiServer&lt;br /&gt;
 systemctl stop DiagGuiServer&lt;br /&gt;
 systemctl status DiagGuiServer&lt;br /&gt;
&lt;br /&gt;
In case of problems, useful command:&lt;br /&gt;
&lt;br /&gt;
 journalctl -u DiagGuiServer&lt;br /&gt;
&lt;br /&gt;
To start service at boot time, execute command:&lt;br /&gt;
&lt;br /&gt;
 systemctl enable DiagGuiServer&lt;br /&gt;
&lt;br /&gt;
following message should come up on screen:&lt;br /&gt;
&lt;br /&gt;
 Created symlink from /etc/systemd/system/multi-user.target.wants/DiagGuiServer.service to /usr/lib/systemd/system/DiagGuiServer.service.&lt;br /&gt;
&lt;br /&gt;
== DiagGui example (VTP) ==&lt;br /&gt;
&lt;br /&gt;
Create file &#039;&#039;/usr/lib/systemd/system/DiagGui.service&#039;&#039; with following contents:&lt;br /&gt;
&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=DiagGui Service&lt;br /&gt;
 Wants=remote-fs.target&lt;br /&gt;
 After=remote-fs.target&lt;br /&gt;
 &lt;br /&gt;
 [Service]&lt;br /&gt;
 Environment=&amp;quot;LD_LIBRARY_PATH=/usr/clas12/release/2.0.0/coda/Linux_armv7l_RHEL7/lib:/usr/local/activemq/lib&amp;quot; &amp;quot;SESSION=clasprod&amp;quot; &amp;quot;EXPID=clasrun&amp;quot; &amp;quot;IPC_HOST=clon00&amp;quot; &amp;quot;CLON_PARMS=/usr/clas12/release/2.0.0/parms&amp;quot; &amp;quot;MYSQL_HOST=clondb1&amp;quot;&lt;br /&gt;
 User=clasrun&lt;br /&gt;
 Type=simple&lt;br /&gt;
 ExecStart=/usr/clas12/release/2.0.0/coda/Linux_armv7l_RHEL7/bin/vtpserver&lt;br /&gt;
 Restart=no&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;/div&gt;</summary>
		<author><name>Boiarino</name></author>
	</entry>
	<entry>
		<id>https://clonwiki0.jlab.org/wiki/index.php?title=Systemd&amp;diff=8684</id>
		<title>Systemd</title>
		<link rel="alternate" type="text/html" href="https://clonwiki0.jlab.org/wiki/index.php?title=Systemd&amp;diff=8684"/>
		<updated>2026-02-03T15:15:03Z</updated>

		<summary type="html">&lt;p&gt;Boiarino: /* DiagGuiServer example (VME) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Creating service in systemd (RHEL7 and up) ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; on Centos5 for DiagGuiServer, described below, placing startup into &#039;&#039;rc.local&#039;&#039; works better - no extra environment settings from clasrun user is required, probably because of rc.local executed AFTER all systemd services, have to understand. Example of the working &#039;&#039;/etc/rc.d/rc.local&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 touch /var/lock/subsys/local&lt;br /&gt;
 &lt;br /&gt;
 rm -f /var/log/DiagGuiServer.log&lt;br /&gt;
 touch /var/log/DiagGuiServer.log&lt;br /&gt;
 chmod 777 /var/log/DiagGuiServer.log&lt;br /&gt;
 su clasrun -c &amp;quot;DiagGuiServer init &amp;gt;&amp;gt; /var/log/DiagGuiServer.log &amp;amp;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTES:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 systemctl list-units | grep -o &#039;.*\.mount&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== DiagGuiServer example (VME) ==&lt;br /&gt;
&lt;br /&gt;
Create file &#039;&#039;/usr/lib/systemd/system/DiagGuiServer.service&#039;&#039; with following contents:&lt;br /&gt;
&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=DiagGuiServer&lt;br /&gt;
 #After=network.target&lt;br /&gt;
 #Requires=autofs.service&lt;br /&gt;
 #Requires=nfs-utils.service nfs-lock.service autofs.service&lt;br /&gt;
 #Requires=autofs.service&lt;br /&gt;
 #After=network.target apps.mount home.mount usr-clas12.mount usr-local.mount&lt;br /&gt;
 #After=-.mount&lt;br /&gt;
 #RequiresMountsFor=/usr/clas12/release/2.0.0/coda/Linux_x86_64_RHEL7_vme/bin&lt;br /&gt;
 #Wants=remote-fs.target&lt;br /&gt;
 #After=remote-fs.target&lt;br /&gt;
 #ConditionPathExists=/usr/clas12/release/2.0.0/coda/Linux_x86_64_RHEL7_vme/bin &lt;br /&gt;
&lt;br /&gt;
 [Service]&lt;br /&gt;
 Type=simple&lt;br /&gt;
 User=clasrun&lt;br /&gt;
 Group=onliners&lt;br /&gt;
 ExecStart=/usr/clas12/release/2.0.0/coda/Linux_x86_64_RHEL7_vme/bin/DiagGuiServer init&lt;br /&gt;
 Restart=on-failure&lt;br /&gt;
 RestartSec=10&lt;br /&gt;
&lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; various commented out settings in [Unit] section were tried to make sure DiagGuiServer service run after everything else is ready (in particular automounts), but nothing really worked; solution was to allow restart on failure in section [Service], so after a couple of failures service DiagGuiServer finally starts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Create directory &#039;&#039;/etc/systemd/system/DiagGuiServer.service.d/&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Create file &#039;&#039;/etc/systemd/system/DiagGuiServer.service.d/override.conf&#039;&#039; with following contents:&lt;br /&gt;
&lt;br /&gt;
 [Service]&lt;br /&gt;
 Environment=&amp;quot;LD_LIBRARY_PATH=/apps/gcc/11.5.0/lib:/apps/gcc/11.5.0/lib64:/usr/lib:/usr/local/lib:/usr/local/activemq/lib:/usr/clas12/release/2.0.0/coda/Linux_x86_64_RHEL7_vme/lib:/usr/clas12/release/2.0.0/clon/Linux_x86_64_RHEL7_vme/lib:/usr/clas12/release/2.0.0/clon/lib&amp;quot;&lt;br /&gt;
 Environment=&amp;quot;IPC_HOST=clon00&amp;quot;&lt;br /&gt;
 Environment=&amp;quot;MYSQL_HOST=clondb1&amp;quot;&lt;br /&gt;
 Environment=&amp;quot;EXPID=clasrun&amp;quot;&lt;br /&gt;
 Environment=&amp;quot;CLON_PARMS=/usr/clas12/release/2.0.0/parms&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Following commands can be used to control service:&lt;br /&gt;
&lt;br /&gt;
 systemctl daemon-reload&lt;br /&gt;
 systemctl start DiagGuiServer&lt;br /&gt;
 systemctl stop DiagGuiServer&lt;br /&gt;
 systemctl status DiagGuiServer&lt;br /&gt;
&lt;br /&gt;
To start service at boot time, execute command:&lt;br /&gt;
&lt;br /&gt;
 systemctl enable DiagGuiServer&lt;br /&gt;
&lt;br /&gt;
following message should come up on screen:&lt;br /&gt;
&lt;br /&gt;
 Created symlink from /etc/systemd/system/multi-user.target.wants/DiagGuiServer.service to /usr/lib/systemd/system/DiagGuiServer.service.&lt;br /&gt;
&lt;br /&gt;
== DiagGui example (VTP) ==&lt;br /&gt;
&lt;br /&gt;
Create file &#039;&#039;/usr/lib/systemd/system/DiagGui.service&#039;&#039; with following contents:&lt;br /&gt;
&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=DiagGui Service&lt;br /&gt;
 Wants=remote-fs.target&lt;br /&gt;
 After=remote-fs.target&lt;br /&gt;
 &lt;br /&gt;
 [Service]&lt;br /&gt;
 Environment=&amp;quot;LD_LIBRARY_PATH=/usr/clas12/release/2.0.0/coda/Linux_armv7l_RHEL7/lib:/usr/local/activemq/lib&amp;quot; &amp;quot;SESSION=clasprod&amp;quot; &amp;quot;EXPID=clasrun&amp;quot; &amp;quot;IPC_HOST=clon00&amp;quot; &amp;quot;CLON_PARMS=/usr/clas12/release/2.0.0/parms&amp;quot; &amp;quot;MYSQL_HOST=clondb1&amp;quot;&lt;br /&gt;
 User=clasrun&lt;br /&gt;
 Type=simple&lt;br /&gt;
 ExecStart=/usr/clas12/release/2.0.0/coda/Linux_armv7l_RHEL7/bin/vtpserver&lt;br /&gt;
 Restart=no&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;/div&gt;</summary>
		<author><name>Boiarino</name></author>
	</entry>
	<entry>
		<id>https://clonwiki0.jlab.org/wiki/index.php?title=Clon01&amp;diff=8683</id>
		<title>Clon01</title>
		<link rel="alternate" type="text/html" href="https://clonwiki0.jlab.org/wiki/index.php?title=Clon01&amp;diff=8683"/>
		<updated>2026-02-02T22:12:37Z</updated>

		<summary type="html">&lt;p&gt;Boiarino: /* clon01 is the main boot server for VME, VTP and VxWorks controllers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== &#039;&#039;&#039;clon01&#039;&#039;&#039; is the main boot server for VME, VTP and VxWorks controllers ==&lt;br /&gt;
&lt;br /&gt;
Install [[Tftp]] and [[Tftpboot]] software.&lt;br /&gt;
&lt;br /&gt;
Install [[VxWorks]] boot software.&lt;br /&gt;
&lt;br /&gt;
Since we are customizing &#039;&#039;/etc/auto.direct&#039;&#039;, we have to disable puppet:&lt;br /&gt;
&lt;br /&gt;
 systemctl stop puppet&lt;br /&gt;
 systemctl disable puppet&lt;br /&gt;
&lt;br /&gt;
Create directory for automounts:&lt;br /&gt;
&lt;br /&gt;
 mkdir /mnt/admin&lt;br /&gt;
&lt;br /&gt;
Add following section to the end of the &#039;&#039;/etc/auto.direct&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 # clonfs mounts&lt;br /&gt;
 /mnt/admin/clonfs1            -rw,bg  clonfs1:/&lt;br /&gt;
 /mnt/admin/clonfs1a-old        -rw,bg  clonfs1a-old:/&lt;br /&gt;
 /mnt/admin/clonfs1a-old-home   -rw,bg  clonfs1a-old:/vol/home&lt;br /&gt;
 #&lt;br /&gt;
 /mnt/admin/clonfs1-apps       -rw,bg  clonfs1:/vol/apps&lt;br /&gt;
 /mnt/admin/clonfs1-archives   -rw,bg  clonfs1:/vol/archives&lt;br /&gt;
 /mnt/admin/clonfs1-clas       -rw,bg  clonfs1:/vol/clas&lt;br /&gt;
 /mnt/admin/clonfs1-clas12     -rw,bg  clonfs1:/vol/clas12&lt;br /&gt;
 /mnt/admin/clonfs1-clonweb    -rw,bg  clonfs1:/vol/clonweb&lt;br /&gt;
 /mnt/admin/clonfs1-clonwiki   -rw,bg  clonfs1:/vol/clonwiki&lt;br /&gt;
 /mnt/admin/clonfs1-diskless   -rw,bg  clonfs1:/vol/diskless&lt;br /&gt;
 /mnt/admin/clonfs1-downloads  -rw,bg  clonfs1:/vol/downloads&lt;br /&gt;
 /mnt/admin/clonfs1-home       -rw,bg  clonfs1:/vol/home&lt;br /&gt;
 /mnt/admin/clonfs1-local      -rw,bg  clonfs1:/vol/local&lt;br /&gt;
 /mnt/admin/clonfs1-logs       -rw,bg  clonfs1:/vol/logs&lt;br /&gt;
 /mnt/admin/clonfs1-mysql      -rw,bg  clonfs1:/vol/mysql&lt;br /&gt;
 /mnt/admin/clonfs1-scratch    -rw,bg  clonfs1:/vol/scratch&lt;br /&gt;
&lt;br /&gt;
Reload autofs:&lt;br /&gt;
&lt;br /&gt;
 systemctl reload autofs&lt;br /&gt;
&lt;br /&gt;
Make useful symlink:&lt;br /&gt;
&lt;br /&gt;
 cd /&lt;br /&gt;
 ln -s /mnt/admin/clonfs1-diskless diskless&lt;br /&gt;
&lt;br /&gt;
== old ==&lt;br /&gt;
&lt;br /&gt;
SUN Ultra 24 Workstation: JLAB inventory number: F424093, SysSN: 0906FMB01R.&lt;br /&gt;
&lt;br /&gt;
old: SUN Blade 2000, 2x900MHz Ultra SPARC-IIIi, 2GB RAM. Primary use - EPICS applications.&lt;br /&gt;
&lt;br /&gt;
After Solaris installation and customization, start cronjobs from epics account. File is &#039;&#039;~epics/cron/crontab.txt&#039;&#039; so cronjobs can be started by command&lt;br /&gt;
 crontab crontab.txt&lt;br /&gt;
Up-to-date cron job file is located in &#039;&#039;/var/spool/cron/crontabs/epics&#039;&#039;, so if &#039;&#039;/var&#039;&#039; directory was saved before Solaris reinstalling you can check it out.&lt;br /&gt;
&lt;br /&gt;
Establish passwordless connection with machine &#039;&#039;devsrv.acc.jlab.org&#039;&#039;: login to &#039;&#039;clon01&#039;&#039; as &#039;&#039;epics&#039;&#039; and type&lt;br /&gt;
 ssh  devsrv.acc.jlab.org&lt;br /&gt;
Exit and ssh again, this time it should not ask for password.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== old info - not valid ==&lt;br /&gt;
&lt;br /&gt;
Data Mover (move2silo, EPICS)&lt;br /&gt;
&lt;br /&gt;
SUN Blade 2000, 2x900MHz Ultra SPARC-IIIi, 2GB RAM ---+ CLON01&lt;br /&gt;
&lt;br /&gt;
This is *Sun Blade 2000* dual CPU (SPARC IIIi) server which primary use in the *CLAS DAQ is Data Mover*. The secondary use of it is *EPICS* visualisation workstation.&lt;br /&gt;
&lt;br /&gt;
This server runs also &lt;br /&gt;
   * VERITAS Cluster Server&lt;br /&gt;
   * NIS Slave Server&lt;br /&gt;
   * INGRES Server&lt;br /&gt;
   * CLON Printer Server (for CLONHP and CLONHP2 printers)&lt;br /&gt;
&lt;br /&gt;
---++ Data Mover&lt;br /&gt;
Location: /usr/local/system/raid&lt;br /&gt;
&lt;br /&gt;
Program: move2silo&lt;br /&gt;
&lt;br /&gt;
Logs: logs/&lt;br /&gt;
&lt;br /&gt;
To start it manually: &amp;lt;pre&amp;gt; &lt;br /&gt;
[root@clon01]$ cd /ssa&lt;br /&gt;
[root@clon01]$ mv presilo1 gopresilo&lt;br /&gt;
[root@clon01]$ move2silo &amp;gt;&amp;amp; /dev/null &amp;amp; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To move Data Mover to *CLON10* edit file */usr/local/system/raid/checkraid* uncommenting corresponding line:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
# for CLON10&lt;br /&gt;
#  /usr/local/system/raid/move2silo &amp;gt;&amp;amp; /usr/local/system/raid/log &amp;amp;&lt;br /&gt;
&lt;br /&gt;
# for CLON01&lt;br /&gt;
  rsh clon01 /usr/local/system/raid/move2silo &amp;quot;&amp;gt;&amp;amp;&amp;quot; /usr/local/system/raid/log &amp;quot;&amp;amp;&amp;quot;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---++ Memory Monitoring Tool *CEDIAG*&lt;br /&gt;
&lt;br /&gt;
location: /opt/SUNWcest/bin/cediag&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[root@clon01 ~]$ cediag&lt;br /&gt;
cediag: Revision: 1.78 @ 2005/02/11 15:54:29 UTC&lt;br /&gt;
cediag: Analysed System: SunOS 5.8 with KUP 117350-06 (MPR active)&lt;br /&gt;
cediag: Pages Retired: 0 (0.00%)&lt;br /&gt;
cediag: findings: 0 datapath fault message(s) found&lt;br /&gt;
cediag: findings: 0 UE(s) found - there is no rule#3 match&lt;br /&gt;
cediag: findings: 0 DIMMs with a failure pattern matching rule#4&lt;br /&gt;
cediag: findings: 0 DIMMs with a failure pattern matching rule#5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Boiarino</name></author>
	</entry>
	<entry>
		<id>https://clonwiki0.jlab.org/wiki/index.php?title=Systemd&amp;diff=8682</id>
		<title>Systemd</title>
		<link rel="alternate" type="text/html" href="https://clonwiki0.jlab.org/wiki/index.php?title=Systemd&amp;diff=8682"/>
		<updated>2026-02-02T22:10:41Z</updated>

		<summary type="html">&lt;p&gt;Boiarino: /* Creating service in systemd (RHEL7 and up) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Creating service in systemd (RHEL7 and up) ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; on Centos5 for DiagGuiServer, described below, placing startup into &#039;&#039;rc.local&#039;&#039; works better - no extra environment settings from clasrun user is required, probably because of rc.local executed AFTER all systemd services, have to understand. Example of the working &#039;&#039;/etc/rc.d/rc.local&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 touch /var/lock/subsys/local&lt;br /&gt;
 &lt;br /&gt;
 rm -f /var/log/DiagGuiServer.log&lt;br /&gt;
 touch /var/log/DiagGuiServer.log&lt;br /&gt;
 chmod 777 /var/log/DiagGuiServer.log&lt;br /&gt;
 su clasrun -c &amp;quot;DiagGuiServer init &amp;gt;&amp;gt; /var/log/DiagGuiServer.log &amp;amp;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTES:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 systemctl list-units | grep -o &#039;.*\.mount&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== DiagGuiServer example (VME) ==&lt;br /&gt;
&lt;br /&gt;
Create file &#039;&#039;/usr/lib/systemd/system/DiagGuiServer.service&#039;&#039; with following contents:&lt;br /&gt;
&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=DiagGuiServer&lt;br /&gt;
 #After=network.target&lt;br /&gt;
 #Requires=autofs.service&lt;br /&gt;
 #Requires=nfs-utils.service nfs-lock.service autofs.service&lt;br /&gt;
 #Requires=autofs.service&lt;br /&gt;
 #After=network.target apps.mount home.mount usr-clas12.mount usr-local.mount&lt;br /&gt;
 #After=-.mount&lt;br /&gt;
 #RequiresMountsFor=/usr/clas12/release/2.0.0/coda/Linux_x86_64_RHEL7_vme/bin&lt;br /&gt;
 #Wants=remote-fs.target&lt;br /&gt;
 #After=remote-fs.target&lt;br /&gt;
 #ConditionPathExists=/usr/clas12/release/2.0.0/coda/Linux_x86_64_RHEL7_vme/bin &lt;br /&gt;
&lt;br /&gt;
 [Service]&lt;br /&gt;
 Type=simple&lt;br /&gt;
 User=clasrun&lt;br /&gt;
 Group=onliners&lt;br /&gt;
 ExecStart=/usr/clas12/release/2.0.0/coda/Linux_x86_64_RHEL7_vme/bin/DiagGuiServer init&lt;br /&gt;
 Restart=on-failure&lt;br /&gt;
 RestartSec=10&lt;br /&gt;
&lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; various commented out settings in [Unit] section were tried to make sure DiagGuiServer service run after everything else is ready (in particular automounts), but nothing really worked; solution was to allow restart on failure in section [Service], so after a couple of failures service DiagGuiServer finally starts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Create directory &#039;&#039;/etc/systemd/system/DiagGuiServer.service.d/&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Create file &#039;&#039;/etc/systemd/system/DiagGuiServer.service.d/override.conf&#039;&#039; with following contents:&lt;br /&gt;
&lt;br /&gt;
 [Service]&lt;br /&gt;
 Environment=&amp;quot;LD_LIBRARY_PATH=/apps/gcc/11.5.0/lib:/apps/gcc/11.5.0/lib64:/usr/lib:/usr/local/lib:/usr/local/activemq/lib:/usr/clas12/release/2.0.0/coda/Linux_x86_64_RHEL7_vme/lib:/usr/clas12/release/2.0.0/clon/Linux_x86_64_RHEL7_vme/lib:/usr/clas12/release/2.0.0/clon/lib&amp;quot;&lt;br /&gt;
 Environment=&amp;quot;IPC_HOST=clon00&amp;quot;&lt;br /&gt;
 Environment=&amp;quot;MYSQL_HOST=clondb1&amp;quot;&lt;br /&gt;
 Environment=&amp;quot;EXPID=clasrun&amp;quot;&lt;br /&gt;
 Environment=&amp;quot;CLON_PARMS=/usr/clas12/release/2.0.0/parms&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Following commands can be used to control service:&lt;br /&gt;
&lt;br /&gt;
 systemctl start DiagGuiServer&lt;br /&gt;
 systemctl stop DiagGuiServer&lt;br /&gt;
 systemctl status DiagGuiServer&lt;br /&gt;
&lt;br /&gt;
To start service at boot time, execute command:&lt;br /&gt;
&lt;br /&gt;
 systemctl enable DiagGuiServer&lt;br /&gt;
&lt;br /&gt;
following message should come up on screen:&lt;br /&gt;
&lt;br /&gt;
 Created symlink from /etc/systemd/system/multi-user.target.wants/DiagGuiServer.service to /usr/lib/systemd/system/DiagGuiServer.service.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== DiagGui example (VTP) ==&lt;br /&gt;
&lt;br /&gt;
Create file &#039;&#039;/usr/lib/systemd/system/DiagGui.service&#039;&#039; with following contents:&lt;br /&gt;
&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=DiagGui Service&lt;br /&gt;
 Wants=remote-fs.target&lt;br /&gt;
 After=remote-fs.target&lt;br /&gt;
 &lt;br /&gt;
 [Service]&lt;br /&gt;
 Environment=&amp;quot;LD_LIBRARY_PATH=/usr/clas12/release/2.0.0/coda/Linux_armv7l_RHEL7/lib:/usr/local/activemq/lib&amp;quot; &amp;quot;SESSION=clasprod&amp;quot; &amp;quot;EXPID=clasrun&amp;quot; &amp;quot;IPC_HOST=clon00&amp;quot; &amp;quot;CLON_PARMS=/usr/clas12/release/2.0.0/parms&amp;quot; &amp;quot;MYSQL_HOST=clondb1&amp;quot;&lt;br /&gt;
 User=clasrun&lt;br /&gt;
 Type=simple&lt;br /&gt;
 ExecStart=/usr/clas12/release/2.0.0/coda/Linux_armv7l_RHEL7/bin/vtpserver&lt;br /&gt;
 Restart=no&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;/div&gt;</summary>
		<author><name>Boiarino</name></author>
	</entry>
	<entry>
		<id>https://clonwiki0.jlab.org/wiki/index.php?title=Systemd&amp;diff=8681</id>
		<title>Systemd</title>
		<link rel="alternate" type="text/html" href="https://clonwiki0.jlab.org/wiki/index.php?title=Systemd&amp;diff=8681"/>
		<updated>2026-02-02T22:07:16Z</updated>

		<summary type="html">&lt;p&gt;Boiarino: /* Creating service in systemd (RHEL7 and up) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Creating service in systemd (RHEL7 and up) ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; on Centos5 for DiagGuiServer, described below, placing startup into &#039;&#039;rc.local&#039;&#039; works better - no extra environment settings from clasrun user is required, probably because of rc.local executed AFTER all systemd services, have to understand. Example of the working &#039;&#039;/etc/rc.d/rc.local&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 touch /var/lock/subsys/local&lt;br /&gt;
 &lt;br /&gt;
 rm -f /var/log/DiagGuiServer.log&lt;br /&gt;
 touch /var/log/DiagGuiServer.log&lt;br /&gt;
 chmod 777 /var/log/DiagGuiServer.log&lt;br /&gt;
 su clasrun -c &amp;quot;DiagGuiServer init &amp;gt;&amp;gt; /var/log/DiagGuiServer.log &amp;amp;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTES:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 systemctl list-units | grep -o &#039;.*\.mount&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DiagGuiServer example (VME)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Create file &#039;&#039;/usr/lib/systemd/system/DiagGuiServer.service&#039;&#039; with following contents:&lt;br /&gt;
&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=DiagGuiServer&lt;br /&gt;
 #After=network.target&lt;br /&gt;
 #Requires=autofs.service&lt;br /&gt;
 #Requires=nfs-utils.service nfs-lock.service autofs.service&lt;br /&gt;
 #Requires=autofs.service&lt;br /&gt;
 #After=network.target apps.mount home.mount usr-clas12.mount usr-local.mount&lt;br /&gt;
 #After=-.mount&lt;br /&gt;
 #RequiresMountsFor=/usr/clas12/release/2.0.0/coda/Linux_x86_64_RHEL7_vme/bin&lt;br /&gt;
 #Wants=remote-fs.target&lt;br /&gt;
 #After=remote-fs.target&lt;br /&gt;
 #ConditionPathExists=/usr/clas12/release/2.0.0/coda/Linux_x86_64_RHEL7_vme/bin &lt;br /&gt;
&lt;br /&gt;
 [Service]&lt;br /&gt;
 Type=simple&lt;br /&gt;
 User=clasrun&lt;br /&gt;
 Group=onliners&lt;br /&gt;
 ExecStart=/usr/clas12/release/2.0.0/coda/Linux_x86_64_RHEL7_vme/bin/DiagGuiServer init&lt;br /&gt;
 Restart=on-failure&lt;br /&gt;
 RestartSec=10&lt;br /&gt;
&lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; various commented out settings in [Unit] section were tried to make sure DiagGuiServer service run after everything else is ready (in particular automounts), but nothing really worked; solution was to allow restart on failure in section [Service], so after a couple of failures service DiagGuiServer finally starts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Create directory &#039;&#039;/etc/systemd/system/DiagGuiServer.service.d/&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Create file &#039;&#039;/etc/systemd/system/DiagGuiServer.service.d/override.conf&#039;&#039; with following contents:&lt;br /&gt;
&lt;br /&gt;
 [Service]&lt;br /&gt;
 Environment=&amp;quot;LD_LIBRARY_PATH=/apps/gcc/11.5.0/lib:/apps/gcc/11.5.0/lib64:/usr/lib:/usr/local/lib:/usr/local/activemq/lib:/usr/clas12/release/2.0.0/coda/Linux_x86_64_RHEL7_vme/lib:/usr/clas12/release/2.0.0/clon/Linux_x86_64_RHEL7_vme/lib:/usr/clas12/release/2.0.0/clon/lib&amp;quot;&lt;br /&gt;
 Environment=&amp;quot;IPC_HOST=clon00&amp;quot;&lt;br /&gt;
 Environment=&amp;quot;MYSQL_HOST=clondb1&amp;quot;&lt;br /&gt;
 Environment=&amp;quot;EXPID=clasrun&amp;quot;&lt;br /&gt;
 Environment=&amp;quot;CLON_PARMS=/usr/clas12/release/2.0.0/parms&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Following commands can be used to control service:&lt;br /&gt;
&lt;br /&gt;
 systemctl start DiagGuiServer&lt;br /&gt;
 systemctl stop DiagGuiServer&lt;br /&gt;
 systemctl status DiagGuiServer&lt;br /&gt;
&lt;br /&gt;
To start service at boot time, execute command:&lt;br /&gt;
&lt;br /&gt;
 systemctl enable DiagGuiServer&lt;br /&gt;
&lt;br /&gt;
following message should come up on screen:&lt;br /&gt;
&lt;br /&gt;
 Created symlink from /etc/systemd/system/multi-user.target.wants/DiagGuiServer.service to /usr/lib/systemd/system/DiagGuiServer.service.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DiagGui example (VTP)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Create file &#039;&#039;/usr/lib/systemd/system/DiagGui.service&#039;&#039; with following contents:&lt;br /&gt;
&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=DiagGui Service&lt;br /&gt;
 Wants=remote-fs.target&lt;br /&gt;
 After=remote-fs.target&lt;br /&gt;
 &lt;br /&gt;
 [Service]&lt;br /&gt;
 Environment=&amp;quot;LD_LIBRARY_PATH=/usr/clas12/release/1.4.0/coda/Linux_armv7l/lib:/usr/local/activemq/lib&amp;quot; &amp;quot;SESSION=clasprod&amp;quot; &amp;quot;EXPID=clasrun&amp;quot; &amp;quot;IPC_HOST=clon00&amp;quot; &amp;quot;CLON_PARMS=/usr/clas12/release/1.4.0/parms&amp;quot; &amp;quot;MYSQL_HOST=clondb1&amp;quot;&lt;br /&gt;
 User=clasrun&lt;br /&gt;
 Type=simple&lt;br /&gt;
 ExecStart=/usr/clas12/release/1.4.0/coda/Linux_armv7l/bin/vtpserver&lt;br /&gt;
 Restart=no&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;/div&gt;</summary>
		<author><name>Boiarino</name></author>
	</entry>
	<entry>
		<id>https://clonwiki0.jlab.org/wiki/index.php?title=Systemd&amp;diff=8680</id>
		<title>Systemd</title>
		<link rel="alternate" type="text/html" href="https://clonwiki0.jlab.org/wiki/index.php?title=Systemd&amp;diff=8680"/>
		<updated>2026-02-02T21:45:03Z</updated>

		<summary type="html">&lt;p&gt;Boiarino: /* Creating service in systemd (RHEL7 and up) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Creating service in systemd (RHEL7 and up) ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; on Centos5 for DiagGuiServer, described below, placing startup into &#039;&#039;rc.local&#039;&#039; works better - no extra environment settings from clasrun user is required, probably because of rc.local executed AFTER all systemd services, have to understand. Example of the working &#039;&#039;/etc/rc.d/rc.local&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 touch /var/lock/subsys/local&lt;br /&gt;
 &lt;br /&gt;
 rm -f /var/log/DiagGuiServer.log&lt;br /&gt;
 touch /var/log/DiagGuiServer.log&lt;br /&gt;
 chmod 777 /var/log/DiagGuiServer.log&lt;br /&gt;
 su clasrun -c &amp;quot;DiagGuiServer init &amp;gt;&amp;gt; /var/log/DiagGuiServer.log &amp;amp;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTES:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 systemctl list-units | grep -o &#039;.*\.mount&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DiagGuiServer example (VME)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Create file &#039;&#039;/usr/lib/systemd/system/DiagGuiServer.service&#039;&#039; with following contents:&lt;br /&gt;
&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=DiagGuiServer&lt;br /&gt;
 #After=network.target&lt;br /&gt;
 #Requires=autofs.service&lt;br /&gt;
 #Requires=nfs-utils.service nfs-lock.service autofs.service&lt;br /&gt;
 #Requires=autofs.service&lt;br /&gt;
 #After=network.target apps.mount home.mount usr-clas12.mount usr-local.mount&lt;br /&gt;
 #After=-.mount&lt;br /&gt;
 #RequiresMountsFor=/usr/clas12/release/2.0.0/coda/Linux_x86_64_RHEL7_vme/bin&lt;br /&gt;
 #Wants=remote-fs.target&lt;br /&gt;
 #After=remote-fs.target&lt;br /&gt;
 #ConditionPathExists=/usr/clas12/release/2.0.0/coda/Linux_x86_64_RHEL7_vme/bin &lt;br /&gt;
&lt;br /&gt;
 [Service]&lt;br /&gt;
 Type=simple&lt;br /&gt;
 User=clasrun&lt;br /&gt;
 Group=onliners&lt;br /&gt;
 ExecStart=/usr/clas12/release/2.0.0/coda/Linux_x86_64_RHEL7_vme/bin/DiagGuiServer init&lt;br /&gt;
 Restart=on-failure&lt;br /&gt;
 RestartSec=10&lt;br /&gt;
&lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; various commented out settings in [Unit] section were tried to make sure DiagGuiServer service run after everything else is ready (in particular automounts), but nothing really worked; solution was to allow restart on failure in section [Service], so after a couple of failures service DiagGuiServer finally starts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Create directory &#039;&#039;/etc/systemd/system/DiagGuiServer.service.d/&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Create file &#039;&#039;/etc/systemd/system/DiagGuiServer.service.d/override.conf&#039;&#039; with following contents:&lt;br /&gt;
&lt;br /&gt;
 [Service]&lt;br /&gt;
 Environment=&amp;quot;LD_LIBRARY_PATH=/apps/gcc/11.5.0/lib:/apps/gcc/11.5.0/lib64:/usr/lib:/usr/local/lib:/usr/local/activemq/lib:/usr/clas12/release/2.0.0/coda/Linux_x86_64_RHEL7_vme/lib:/usr/clas12/release/2.0.0/clon/Linux_x86_64_RHEL7_vme/lib:/usr/clas12/release/2.0.0/clon/lib&amp;quot;&lt;br /&gt;
 Environment=&amp;quot;IPC_HOST=clon00&amp;quot;&lt;br /&gt;
 Environment=&amp;quot;MYSQL_HOST=clondb1&amp;quot;&lt;br /&gt;
 Environment=&amp;quot;EXPID=clasrun&amp;quot;&lt;br /&gt;
 Environment=&amp;quot;CLON_PARMS=/usr/clas12/release/2.0.0/parms&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Following commands can be used to control service:&lt;br /&gt;
&lt;br /&gt;
 systemctl start DiagGuiServer&lt;br /&gt;
 systemctl stop DiagGuiServer&lt;br /&gt;
 systemctl status DiagGuiServer&lt;br /&gt;
&lt;br /&gt;
To start service at boot time, execute command:&lt;br /&gt;
&lt;br /&gt;
 systemctl enable DiagGuiServer&lt;br /&gt;
&lt;br /&gt;
following message should come up on screen:&lt;br /&gt;
&lt;br /&gt;
 Created symlink from /etc/systemd/system/default.target.wants/DiagGuiServer.service to /usr/lib/systemd/system/DiagGuiServer.service.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DiagGui example (VTP)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Create file &#039;&#039;/usr/lib/systemd/system/DiagGui.service&#039;&#039; with following contents:&lt;br /&gt;
&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=DiagGui Service&lt;br /&gt;
 Wants=remote-fs.target&lt;br /&gt;
 After=remote-fs.target&lt;br /&gt;
 &lt;br /&gt;
 [Service]&lt;br /&gt;
 Environment=&amp;quot;LD_LIBRARY_PATH=/usr/clas12/release/1.4.0/coda/Linux_armv7l/lib:/usr/local/activemq/lib&amp;quot; &amp;quot;SESSION=clasprod&amp;quot; &amp;quot;EXPID=clasrun&amp;quot; &amp;quot;IPC_HOST=clon00&amp;quot; &amp;quot;CLON_PARMS=/usr/clas12/release/1.4.0/parms&amp;quot; &amp;quot;MYSQL_HOST=clondb1&amp;quot;&lt;br /&gt;
 User=clasrun&lt;br /&gt;
 Type=simple&lt;br /&gt;
 ExecStart=/usr/clas12/release/1.4.0/coda/Linux_armv7l/bin/vtpserver&lt;br /&gt;
 Restart=no&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;/div&gt;</summary>
		<author><name>Boiarino</name></author>
	</entry>
</feed>