Page History
...
- segment level should "disable" on restart
- will still have problems when the zombie hsd is removed from the cnf
- better: can also disable on control-C signal (handles case where hsd is removed from cnf)
- another possibility: the collection mechanism reports all participating hsd's/opal's and the "supervisor" drp process (determined by the named-semaphore) could disable the unused ones
Setting Up New HSD Nodes
Driver is in git@github.com:slaclab/l2si-hsd.git.
Code Block |
---|
cd software/kernel
make
cp pcie_adc.ko /usr/lib/modules/3.10.0-1160.2.2.el7.x86_64/extra
depmod |
Might need to do insmod first? Unlike datadev.ko, this doesn't need any parameters.
depmod will update this file:
Code Block |
---|
daq-tmo-hsd-01:~$ grep pcie /usr/lib/modules/3.10.0-1062.9.1.el7.x86_64/modules.alias
alias pci:v00001B4Bd00002B42sv*sd*bc*sc*i* mwifiex_pcie
alias pci:v000011ABd00002B42sv*sd*bc*sc*i* mwifiex_pcie
alias pci:v000011ABd00002B38sv*sd*bc*sc*i* mwifiex_pcie
alias pci:v000011ABd00002B30sv*sd*bc*sc*i* mwifiex_pcie
alias pci:v00001A4Ad00002100sv*sd*bc*sc*i* pcie_adc
daq-tmo-hsd-01:~$
|
See the pcie device numbers in /dev/pcie_adc*.
2 hsd cards can talk to 1 data card, and each data card has 4 LR4 transceivers (2 per hsd-card).
Then startup pv servers for both A&B (and potentially 2 cards hooked up to 1 data card) with: "hsdpvs -P DAQ:TMO:HSD:2_41:A" (currently these go on ct002).
Startup the hsdioc process like this: "hsd134PVs -P DAQ:TMO:HSD:2_41 -d /dev/pcie_adc_41". This also programs the right clock frequencies for the timing link to the XPM, so you can check XPM link lock with xpmpva at this point.
One can run kcuStatus on the drp node to set clock frequencies and look at link lock on that side.
Now we can bring up hsdpva like "hsdpva DAQ:TMO:HSD:2_41:A DAQ:TMO:HSD:2_41:B".
PvaDetector
- If you're seeing std::bad_alloc, see note above in 'datadev Driver' about configuring tdetsim.service
- use "-vvv" to get printout of timestamp matching process
- options to executable: "-1" is fuzzy timestamping, "-0" is no timestamp matching, and no argument is precise timestamp matching.
- the IP where the PV is served might not be the same as the IP returned by a ping. For example: ping ctl-kfe-cam-02 returns 172.21.92.80, but the PV is served at 172.21.156.96
- netconfig can be used to determine the IP where the PV is served. For example:
/reg/common/tools/bin/netconfig search ctl-kfe-cam-02-drp
ctl-kfe-cam-02-drp:
subnet: daq-drp-neh.pcdsn
Ethernet Address: b4:2e:99:ab:14:4f
IP: 172.21.156.96
Contact: uid=velmir,ou=People,dc=reg,o=slac
PC Number: 00000
Location: Same as ctl-kfe-cam-02
Description: DRP interface for ctl-kfe-cam-02
Puppet Classes:Found 1 entries that match ctl-kfe-cam-02-drp.
...