Difference between revisions of "Experimental PC"

From Applied Optics Wiki
Jump to: navigation, search
 
(9 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 +
Extra stuff for all the experimental hardware that might need setting up. The information contained here will also be useful if you want to install any of these bits of hardware on any other Linux PC.
 +
 +
==2023 Update==
 +
[[Experimental PC Kubuntu 22.04]] supersedes most of this page.
 +
 
==2022 Update==
 
==2022 Update==
 
Much of the information in the [[Experimental PC old]] page is now out-dated and/or refers to hardware that is no longer in use. This new page attempts to build a modern version, please contribute by adding instructions for software they use regularly.  
 
Much of the information in the [[Experimental PC old]] page is now out-dated and/or refers to hardware that is no longer in use. This new page attempts to build a modern version, please contribute by adding instructions for software they use regularly.  
Line 6: Line 11:
  
 
__TOC__
 
__TOC__
 
<big>Extra stuff for all the experimental hardware that might need setting up, for instance in PCs like '''blanket''', '''carpet''', '''pouffe''' etc.</big>
 
 
The information contained here will also be useful if you want to install any of these bits of hardware on any other Linux PC.
 
 
Includes a bit of information about c-scan too.
 
  
 
== Pre-install ==
 
== Pre-install ==
Line 31: Line 30:
 
# Any extra configuration files you need (e.g. /etc/stages/IW_stage_origin) - copy off a PC that already has this hardware installed (or you may find a copy in /home/share/backup_system_files/<name of PC> )
 
# Any extra configuration files you need (e.g. /etc/stages/IW_stage_origin) - copy off a PC that already has this hardware installed (or you may find a copy in /home/share/backup_system_files/<name of PC> )
  
 +
 +
== ThorLabs APT control components ==
 +
 +
See [[ThorLabs apt stages]].
  
 
== Scope (and AFG) utilities ==
 
== Scope (and AFG) utilities ==
Line 64: Line 67:
 
**tek_afg_upload_arb
 
**tek_afg_upload_arb
 
**tek user library
 
**tek user library
 +
 
=== LeCroy scope ===
 
=== LeCroy scope ===
 
==== VXI11-compatible LeCroy scopes ====
 
Anything bought in 2010 onwards (generally black, though we've got one blue one)...
 
  
 
*cd /home/scan/source/hardware/lecroy/
 
*cd /home/scan/source/hardware/lecroy/
Line 74: Line 75:
 
*lgetwf
 
*lgetwf
  
 +
== PI pci stages* ==
 +
Experimental PC Old instructions on this cover up to driver_2.6. Below are updated instructions for driver_3.xx_v1.0, but are sios specific! sios install may need to be ported from L4, or sios may need to painfully upgrade to latest os/kernel.
  
== PI PCI stage driver ==
+
*cd /home/scan/source/dev/pi_pci/driver_3.xx_v1.0/library/
*cd /home/scan/source/dev/pi_pci/driver_2.6/library/
+
*make clean; make; sudo make install;
*make clean; make; sudo make install
+
*// for new PC may need to double check that g++ is installed, and possibly libncurses5-dev
*Installs:
 
**pi_save_pos
 
**pi_recall_pos
 
**(pi_user library)
 
**/etc/pi_stage/stage_database/
 
 
 
 
*cd /home/scan/source/hardware/pi_pci_stage/
 
*cd /home/scan/source/hardware/pi_pci_stage/
*make clean; make; sudo make install
+
*// for kernel versions 5.4 and older certain headers don't have consistent filepaths wrt /usr/src/*headers* and /usr/include/linux/. so below is mainly specific to outdated kernels in sios at the moment.
*Installs:
+
*// cp /usr/local/include/pi_stage.h from ejectorseat to your local experimental pc (last stable version for sios on ejectorseat)
**set_stages_safe
+
*make clean; make; sudo make install;
**manual_pci_stage (manual_stage)
+
*cd /home/scan/source/dev/pi_pci/driver_3.xx_v1.0/driver/
**/etc/pi_stage/position_um '''if''' it doesn't already exist (default stage position file, all axes at 0)
+
*// permissions for this directory are wild, root and scan users don't seem to be able to write/access certain files during "make" so temporary work around right now is to cp -r the entire /driver directory onto the local disk (e.g. in /tmp/something) where the local user for sure has full permissions on every file and sub-directory
**/etc/pi_stage/installed_stages - this is the default list of installed stages, '''which you may need to edit if yours are different:'''
+
*make
axis 0  m-531.dd
+
*// if there are errors about /etc/pi_stage/position not existing cp or mv position_um to it. if there are errors complaining about things at the kernel level, then you might need to install source files: sudo apt-get install linux-source
axis 1  m-531.dd
+
*sudo ./install_pi_stage
axis 2  m-605.2dd
 
axis 3  m-605.2dd
 
 
 
*cd /home/scan/source/dev/pi_pci/driver_2.6/driver/
 
*make
 
*sudo ./install_pi_stage_recall
 
*Installs:
 
**PI PCI stage device driver
 
  
'''Note:''' if you see something like the following after the last "make"....:
 
 
make -C /lib/modules/2.6.27.45-0.1-default/build M=/home/scan/source/dev/pi_pci/driver_2.6/driver modules
 
make[1]: Entering directory `/usr/src/linux-2.6.27.45-0.1-obj/x86_64/default'
 
make[1]: *** No rule to make target `modules'.  Stop.
 
make[1]: Leaving directory `/usr/src/linux-2.6.27.45-0.1-obj/x86_64/default'
 
make: *** [default] Error 2
 
 
... it means that you don't have the kernel-source package installed. To fix this:
 
*sudo zypper install kernel-source
 
then...
 
*cd /home/scan/source/dev/pi_pci/driver_2.6/driver/
 
*make
 
*sudo ./install_pi_stage_recall
 
 
For kernels newer than 2.6.36, I had to make changes to the driver to get it to compile, replacing ioctl with unblocked_ioctl (and also in the BNS driver).
 
  
 
== PI USB stage driver ==
 
== PI USB stage driver ==
This is a bunch of lines we ran to in order to the usb stages (kinda..) to work. I think the format of udev rules has changed since the scripts were first written and the SYSFS should be replaced with ATTRS. This should fix the problem of the device not being recognised automatically when plugged in.  
+
I think the format of udev rules has changed since the scripts were first written and the SYSFS should be replaced with ATTRS. This should fix the problem of the device not being recognised automatically when plugged in.  
  
 
*cd /home/scan/source/hardware/pi_usb_stage/utils/cmd_line_utils/
 
*cd /home/scan/source/hardware/pi_usb_stage/utils/cmd_line_utils/
 
*make clean; make all; sudo make install;
 
*make clean; make all; sudo make install;
*sudo /sbin/modprobe -q ftdi_sio vendor=0x1a72 product=0x1007 (for dc motor controller, product=0x1001 for stepper motor controller)
 
 
*sudo ./actually_install_pi_usb
 
*sudo ./actually_install_pi_usb
*(maybe run pi_usb_send MN /dev/pi_usb0)
+
*check if /etc/udev/rules.d/98-pi-usb.rules exists and change SYSFS to ATTRS (the remove rules should still be okay).
*check if /etc/udev/rules.d/98-pi-usb.rules exists
 
 
*cd /home/scan/source/hardware/pi_usb_stage/utils/manual_usb_stage/
 
*cd /home/scan/source/hardware/pi_usb_stage/utils/manual_usb_stage/
 
*make clean; make all; sudo make install;
 
*make clean; make all; sudo make install;
*... restart?
 
 
*look at /etc/pi_stage/usb_installed_stages, change stage_model_here to whatever model file you need to use... (axis 0  m-062.pd)
 
*look at /etc/pi_stage/usb_installed_stages, change stage_model_here to whatever model file you need to use... (axis 0  m-062.pd)
 
 
  
 
== Newport mirrors ==
 
== Newport mirrors ==
Control of the capacitive feedback newport CONEX mirror. Separate scripts for Newport Agilis.  
+
Control of the capacitive feedback newport CONEX mirror. Separate scripts for Newport Agilis exisit.  
  
 
*cd /home/scan/source/hardware/newport_CONEX
 
*cd /home/scan/source/hardware/newport_CONEX
 
*sudo make; sudo make install;
 
*sudo make; sudo make install;
 
*Installs:
 
*Installs:
newport_control
+
**newport_control
  
== ThorLabs APT control components ==
+
and copies the appropriate udev rule to the local machine.
See [[ThorLabs apt stages]].
 
  
  
 
== c-scan ==
 
== c-scan ==
I had to make a once-only change to blanket's c_scan Makefile, due to going from a 2.4 kernel to a 2.6 kernel (and subsequent change of BNS device driver).
 
  
 
*cd /home/scan/source/hardware/scanner/
 
*cd /home/scan/source/hardware/scanner/
 +
*edit or create the Makefile for your machine - i.e. Makefile.swing you need to comment in the modules you want to install here
 
*make clean; make; sudo make install  
 
*make clean; make; sudo make install  
 
*sudo cp ~sds/bin/cscan /usr/local/bin/
 
*sudo cp ~sds/bin/cscan /usr/local/bin/
Line 157: Line 124:
 
**c_scan man pages
 
**c_scan man pages
 
**cscan: this performs a "''touch''" on the con-file that you're running with c_scan, so you can see the time at which you started the scan, and - by the time stamp on the data file - the time at which you finished the scan.
 
**cscan: this performs a "''touch''" on the con-file that you're running with c_scan, so you can see the time at which you started the scan, and - by the time stamp on the data file - the time at which you finished the scan.
 +
 +
  
 
== d-scan ==
 
== d-scan ==
To be written.
+
Modern version of c-scan with greater flexibility etc.
 +
*cd /home/scan/source/d_scan/d_scan
 +
*edit or create the Makefile for your machine - i.e. Makefile.swing you need to comment in the modules you want to install here
 +
*make clean; make; sudo make install
 +
*Find errors and debug
 +
 
 +
*Fair chance you'll run into problems with the OpenCV version, you'll need to get an older version from the git repository ~good luck~.

Latest revision as of 15:31, 28 February 2023

Extra stuff for all the experimental hardware that might need setting up. The information contained here will also be useful if you want to install any of these bits of hardware on any other Linux PC.

2023 Update

Experimental PC Kubuntu 22.04 supersedes most of this page.

2022 Update

Much of the information in the Experimental PC old page is now out-dated and/or refers to hardware that is no longer in use. This new page attempts to build a modern version, please contribute by adding instructions for software they use regularly.

Back to Linux How-tos


Pre-install

Scenario 1: inherited PC with working hardware, updating Linux

  1. Make a list of all the hardware you have (or likely to have) attached to the PC
  2. From this list, work out which programs/utilities you use
    • Most of these will already be installed in /usr/local/bin/
  3. Work out how to recompile (and re-install) all these programs
    • Most will have their source code in /home/scan/source/hardware/
  4. Save all the configuration files you think you might need
    • Most of these will be in /etc/


Scenario 2: Adding new hardware to an already up-to-date PC

  1. Use this wiki, find the instructions for the relevant hardware
  2. Any extra configuration files you need (e.g. /etc/stages/IW_stage_origin) - copy off a PC that already has this hardware installed (or you may find a copy in /home/share/backup_system_files/<name of PC> )


ThorLabs APT control components

See ThorLabs apt stages.

Scope (and AFG) utilities

These are the standard command-line utilities to grab traces, save setups etc

vxi11

(Used by Agilent and Tek utilities, and a low-level diagnostic tool in its own right)

  • cd /home/scan/source/hardware/vxi11/
  • make clean; make; sudo make install
  • Installs:
    • vxi11_cmd
    • vxi11 user library

Agilent scope

  • cd /home/scan/source/hardware/agilent_scope/
  • make clean; make; sudo make install
  • Installs:
    • agetwf
    • agilent_load_setup
    • agilent_save_setup

Tek scope/AFG

  • cd /home/scan/source/hardware/tek/
  • make clean; make; sudo make install
  • Installs:
    • tgetwf
    • tek_load_setup
    • tek_save_setup
    • tek_afg_upload_arb
    • tek user library

LeCroy scope

  • cd /home/scan/source/hardware/lecroy/
  • make clean; make; sudo make install
  • Installs:
  • lgetwf

PI pci stages*

Experimental PC Old instructions on this cover up to driver_2.6. Below are updated instructions for driver_3.xx_v1.0, but are sios specific! sios install may need to be ported from L4, or sios may need to painfully upgrade to latest os/kernel.

  • cd /home/scan/source/dev/pi_pci/driver_3.xx_v1.0/library/
  • make clean; make; sudo make install;
  • // for new PC may need to double check that g++ is installed, and possibly libncurses5-dev
  • cd /home/scan/source/hardware/pi_pci_stage/
  • // for kernel versions 5.4 and older certain headers don't have consistent filepaths wrt /usr/src/*headers* and /usr/include/linux/. so below is mainly specific to outdated kernels in sios at the moment.
  • // cp /usr/local/include/pi_stage.h from ejectorseat to your local experimental pc (last stable version for sios on ejectorseat)
  • make clean; make; sudo make install;
  • cd /home/scan/source/dev/pi_pci/driver_3.xx_v1.0/driver/
  • // permissions for this directory are wild, root and scan users don't seem to be able to write/access certain files during "make" so temporary work around right now is to cp -r the entire /driver directory onto the local disk (e.g. in /tmp/something) where the local user for sure has full permissions on every file and sub-directory
  • make
  • // if there are errors about /etc/pi_stage/position not existing cp or mv position_um to it. if there are errors complaining about things at the kernel level, then you might need to install source files: sudo apt-get install linux-source
  • sudo ./install_pi_stage


PI USB stage driver

I think the format of udev rules has changed since the scripts were first written and the SYSFS should be replaced with ATTRS. This should fix the problem of the device not being recognised automatically when plugged in.

  • cd /home/scan/source/hardware/pi_usb_stage/utils/cmd_line_utils/
  • make clean; make all; sudo make install;
  • sudo ./actually_install_pi_usb
  • check if /etc/udev/rules.d/98-pi-usb.rules exists and change SYSFS to ATTRS (the remove rules should still be okay).
  • cd /home/scan/source/hardware/pi_usb_stage/utils/manual_usb_stage/
  • make clean; make all; sudo make install;
  • look at /etc/pi_stage/usb_installed_stages, change stage_model_here to whatever model file you need to use... (axis 0 m-062.pd)

Newport mirrors

Control of the capacitive feedback newport CONEX mirror. Separate scripts for Newport Agilis exisit.

  • cd /home/scan/source/hardware/newport_CONEX
  • sudo make; sudo make install;
  • Installs:
    • newport_control

and copies the appropriate udev rule to the local machine.


c-scan

  • cd /home/scan/source/hardware/scanner/
  • edit or create the Makefile for your machine - i.e. Makefile.swing you need to comment in the modules you want to install here
  • make clean; make; sudo make install
  • sudo cp ~sds/bin/cscan /usr/local/bin/
  • Installs:
    • c_scan
    • c_scan man pages
    • cscan: this performs a "touch" on the con-file that you're running with c_scan, so you can see the time at which you started the scan, and - by the time stamp on the data file - the time at which you finished the scan.


d-scan

Modern version of c-scan with greater flexibility etc.

  • cd /home/scan/source/d_scan/d_scan
  • edit or create the Makefile for your machine - i.e. Makefile.swing you need to comment in the modules you want to install here
  • make clean; make; sudo make install
  • Find errors and debug
  • Fair chance you'll run into problems with the OpenCV version, you'll need to get an older version from the git repository ~good luck~.