I have an X410 device that I'm trying to update for use with UHD v4.4.0.
It hasn't been used for a while, so at least several releases ago.
I followed the procedure in the X410 manual
(https://files.ettus.com/manual/page_usrp_x4xx.html#x4xx_updating_filesystems_mender)
to update the filesystem. After doing so, the unit boots as expected and
it looks like it's using the correct filesystem;
/etc/mender/artifact_info contains:
artifact_name=v4.4.0.0_x4xx
However, UHD-based applications aren't able to communicate with the
device. uhd_find_devices does function somewhat; when I run it on the
X410 itself, it returns:
root@ni-x4xx-XXXXXX:~# uhd_find_devices
[INFO] [UHD] linux; GNU C++ version 9.2.0; Boost_107100;
UHD_4.4.0.0-0-g5fac246b
--------------------------------------------------
-- UHD Device 0
--------------------------------------------------
Device Address:
serial:
claimed: False
fpga:
mgmt_addr: 127.0.0.1
name:
product:
reachable: No
type:
However, uhd_usrp_probe fails:
root@ni-x4xx-XXXXXX:~# uhd_usrp_probe --args addr=127.0.0.1,type=x4xx
[INFO] [UHD] linux; GNU C++ version 9.2.0; Boost_107100;
UHD_4.4.0.0-0-g5fac246b
Error: LookupError: KeyError: No devices found for ----->
Device Address:
addr: 127.0.0.1
type: x4xx
I thought I might need to reload the FPGA image, so I tried to load the
CG_400 image and got the following:
root@ni-x4xx-XXXXXX:~# uhd_image_loader --args
mgmt_addr=127.0.0.1,type=x4xx,fpga=CG_400
[INFO] [UHD] linux; GNU C++ version 9.2.0; Boost_107100;
UHD_4.4.0.0-0-g5fac246b
No applicable UHD devices found[ERROR] [MPMD IMAGE LOADER]
mpmd_image_loader only supports a single device.
I see the same results if I try to run uhd_usrp_probe from an external
host using UHD v4.4.0. Since the uhg_image_loader output suggested an
issue with MPM, I poked around and found that the usrp-hwd systemd unit
(the MPM hardware daemon) is failing to finish startup. Its log output
contains:
root@ni-x4xx-XXXXXX:~# journalctl -u usrp-hwd -f
Feb 09 12:37:33 ni-x4xx-XXXXXX systemd[1]: Starting USRP Hardware
Daemon (MPM)...
Feb 09 12:37:35 ni-x4xx-XXXXXX usrp_hwd.py[868]: [MPM.main] [INFO]
Launching USRP/MPM, version: 4.4.0.0-g5fac246b
Feb 09 12:37:35 ni-x4xx-XXXXXX usrp_hwd.py[868]: [MPM.main] [INFO]
Spawning RPC process...
Feb 09 12:37:35 ni-x4xx-XXXXXX systemd[1]: usrp-hwd.service:
Supervising process 872 which is not our child. We'll most likely not
notice when it exits.
Feb 09 12:37:35 ni-x4xx-XXXXXX usrp_hwd.py[868]: [MPM.main] [INFO]
Spawning discovery process...
Feb 09 12:37:35 ni-x4xx-XXXXXX usrp_hwd.py[868]: [MPM.main] [INFO]
Processes launched. Registering signal handlers.
Feb 09 12:37:35 ni-x4xx-XXXXXX usrp_hwd.py[868]:
[MPM.PeriphManager] [INFO] Device serial number: YYYYYYY
Feb 09 12:37:39 ni-x4xx-XXXXXX usrp_hwd.py[868]: metal: info:
metal_uio_dev_open: No IRQ for device 1000100000.usp_rf_data_converter.
Feb 09 12:37:39 ni-x4xx-XXXXXX usrp_hwd.py[868]: metal: info:
metal_uio_dev_open: No IRQ for device 1000100000.usp_rf_data_converter.
Feb 09 12:37:39 ni-x4xx-XXXXXX usrp_hwd.py[868]: metal: info:
metal_uio_dev_open: No IRQ for device 1000100000.usp_rf_data_converter.
Feb 09 12:37:39 ni-x4xx-XXXXXX usrp_hwd.py[868]: metal: info:
metal_uio_dev_open: No IRQ for device 1000100000.usp_rf_data_converter.
Feb 09 12:37:39 ni-x4xx-XXXXXX usrp_hwd.py[868]: metal: error:
Feb 09 12:37:39 ni-x4xx-XXXXXX usrp_hwd.py[868]: Requested block
not available in XRFdc_SetThresholdClrMode
Feb 09 12:37:39 ni-x4xx-XXXXXX usrp_hwd.py[868]: metal: error:
Feb 09 12:37:39 ni-x4xx-XXXXXX usrp_hwd.py[868]: Requested block
not available in XRFdc_SetThresholdClrMode
Feb 09 12:37:39 ni-x4xx-XXXXXX usrp_hwd.py[868]: metal: error:
Feb 09 12:37:39 ni-x4xx-XXXXXX usrp_hwd.py[868]: Requested block
not available in XRFdc_SetThresholdClrMode
Feb 09 12:37:39 ni-x4xx-XXXXXX usrp_hwd.py[868]: metal: error:
Feb 09 12:37:39 ni-x4xx-XXXXXX usrp_hwd.py[868]: Requested block
not available in XRFdc_SetThresholdClrMode
Feb 09 12:37:39 ni-x4xx-XXXXXX usrp_hwd.py[868]: metal: error:
Feb 09 12:37:39 ni-x4xx-XXXXXX usrp_hwd.py[868]: Requested block
not available in XRFdc_SetThresholdClrMode
Feb 09 12:37:39 ni-x4xx-XXXXXX usrp_hwd.py[868]: metal: error:
Feb 09 12:37:39 ni-x4xx-XXXXXX usrp_hwd.py[868]: Requested block
not available in XRFdc_SetThresholdClrMode
Feb 09 12:37:39 ni-x4xx-XXXXXX usrp_hwd.py[868]: metal: error:
Feb 09 12:37:39 ni-x4xx-XXXXXX usrp_hwd.py[868]: Requested block
not available in XRFdc_SetThresholdClrMode
Feb 09 12:37:39 ni-x4xx-XXXXXX usrp_hwd.py[868]: metal: error:
Feb 09 12:37:39 ni-x4xx-XXXXXX usrp_hwd.py[868]: Requested block
not available in XRFdc_SetThresholdClrMode
Feb 09 12:37:39 ni-x4xx-XXXXXX usrp_hwd.py[868]: metal: error:
Feb 09 12:37:39 ni-x4xx-XXXXXX usrp_hwd.py[868]: Requested block
not available in XRFdc_SetThresholdClrMode
Feb 09 12:37:39 ni-x4xx-XXXXXX usrp_hwd.py[868]: metal: error:
Feb 09 12:37:39 ni-x4xx-XXXXXX usrp_hwd.py[868]: Requested block
not available in XRFdc_SetThresholdClrMode
Feb 09 12:37:39 ni-x4xx-XXXXXX usrp_hwd.py[868]: metal: error:
Feb 09 12:37:39 ni-x4xx-XXXXXX usrp_hwd.py[868]: Requested block
not available in XRFdc_SetThresholdClrMode
Feb 09 12:37:39 ni-x4xx-XXXXXX usrp_hwd.py[868]: metal: error:
Feb 09 12:37:39 ni-x4xx-XXXXXX usrp_hwd.py[868]: Requested block
not available in XRFdc_SetThresholdClrMode
Feb 09 12:37:39 ni-x4xx-XXXXXX usrp_hwd.py[868]: metal: info:
Feb 09 12:37:39 ni-x4xx-XXXXXX usrp_hwd.py[868]: DTC Scan T1
Feb 09 12:37:39 ni-x4xx-XXXXXX usrp_hwd.py[868]: metal: info:
ADC0:
000000000000000000000000000111122222000000000000000000000000000*#000000000000000000000000001111322222000000000000000000000000000
Feb 09 12:37:39 ni-x4xx-XXXXXX usrp_hwd.py[868]: metal: info:
ADC2:
000000000000000000000000000000000000111122222000000000000000000#00000000*0000000000000000000000000001111222220000000000000000000
Feb 09 12:37:39 ni-x4xx-XXXXXX usrp_hwd.py[868]: metal: info:
ADC0: Marker: - 76, 0
Feb 09 12:37:39 ni-x4xx-XXXXXX usrp_hwd.py[868]: metal: info:
ADC2: Marker: - 76, 4
Feb 09 12:37:39 ni-x4xx-XXXXXX usrp_hwd.py[868]: metal: info:
SysRef period in terms of ADC T1s = 1152
Feb 09 12:37:39 ni-x4xx-XXXXXX usrp_hwd.py[868]: metal: info:
ADC target latency = 1228
Feb 09 12:37:39 ni-x4xx-XXXXXX usrp_hwd.py[868]: metal: info:
Feb 09 12:37:39 ni-x4xx-XXXXXX usrp_hwd.py[868]: DTC Scan T1
Feb 09 12:37:39 ni-x4xx-XXXXXX usrp_hwd.py[868]: metal: info:
DAC0:
0000000000000000000000000000000000011112222200000000000000000000#000000*00000000000000000000000000001111222220000000000000000000
Feb 09 12:37:39 ni-x4xx-XXXXXX usrp_hwd.py[868]: metal: info:
DAC1:
00000000000000000000000000000000000000011112222000000000000000000000000#000*0000000000000000000000000000111132222000000000000000
Feb 09 12:37:39 ni-x4xx-XXXXXX usrp_hwd.py[868]: metal: info:
DAC0: Marker: - 51, 0
Feb 09 12:37:39 ni-x4xx-XXXXXX usrp_hwd.py[868]: metal: info:
DAC1: Marker: - 51, 0
Feb 09 12:37:39 ni-x4xx-XXXXXX usrp_hwd.py[868]: metal: info:
SysRef period in terms of DAC T1s = 2304
Feb 09 12:37:39 ni-x4xx-XXXXXX usrp_hwd.py[868]: metal: info:
DAC target latency = 800
Feb 09 12:37:39 ni-x4xx-XXXXXX usrp_hwd.py[868]: metal: error:
Error : DAC alignment target latency of 816 < minimum possible 816
Feb 09 12:37:40 ni-x4xx-XXXXXX usrp_hwd.py[868]: metal: info:
Feb 09 12:37:40 ni-x4xx-XXXXXX usrp_hwd.py[868]: DTC Scan T1
Feb 09 12:37:40 ni-x4xx-XXXXXX usrp_hwd.py[868]: metal: info:
ADC0:
0000000000000000000000000000111122222000000000000000000000000000*000000000000000000000000000111132222000000000000000000000000000
Feb 09 12:37:40 ni-x4xx-XXXXXX usrp_hwd.py[868]: metal: info:
ADC2:
0000000000000000000000000000000000001111222220000000000000000000#0000000*0000000000000000000000000000111122222000000000000000000
Feb 09 12:37:40 ni-x4xx-XXXXXX usrp_hwd.py[868]: metal: info:
ADC0: Marker: - 76, 0
Feb 09 12:37:40 ni-x4xx-XXXXXX usrp_hwd.py[868]: metal: info:
ADC2: Marker: - 76, 4
Feb 09 12:37:40 ni-x4xx-XXXXXX usrp_hwd.py[868]: metal: info:
SysRef period in terms of ADC T1s = 1152
Feb 09 12:37:40 ni-x4xx-XXXXXX usrp_hwd.py[868]: metal: info:
ADC target latency = 1228
Feb 09 12:37:40 ni-x4xx-XXXXXX usrp_hwd.py[868]: metal: info:
Feb 09 12:37:40 ni-x4xx-XXXXXX usrp_hwd.py[868]: DTC Scan T1
Feb 09 12:37:40 ni-x4xx-XXXXXX usrp_hwd.py[868]: metal: info:
DAC0:
0000000000000000000000000000000000011113222220000000000000000000#0000000*0000000000000000000000000000111122222000000000000000000
Feb 09 12:37:40 ni-x4xx-XXXXXX usrp_hwd.py[868]: metal: info:
DAC1:
000000000000000000000000000000000000000111132222000000000000000000000000#000*000000000000000000000000000011112222200000000000000
Feb 09 12:37:40 ni-x4xx-XXXXXX usrp_hwd.py[868]: metal: info:
DAC0: Marker: - 51, 0
Feb 09 12:37:40 ni-x4xx-XXXXXX usrp_hwd.py[868]: metal: info:
DAC1: Marker: - 51, 0
Feb 09 12:37:40 ni-x4xx-XXXXXX usrp_hwd.py[868]: metal: info:
SysRef period in terms of DAC T1s = 2304
Feb 09 12:37:40 ni-x4xx-XXXXXX usrp_hwd.py[868]: metal: info:
DAC target latency = 800
Feb 09 12:37:40 ni-x4xx-XXXXXX usrp_hwd.py[868]: metal: error:
Error : DAC alignment target latency of 816 < minimum possible 816
Feb 09 12:39:03 ni-x4xx-XXXXXX systemd[1]: usrp-hwd.service: start
operation timed out. Terminating.
Feb 09 12:39:03 ni-x4xx-XXXXXX usrp_hwd.py[868]: [MPM.kill] [INFO]
Terminating pid: 872
Feb 09 12:39:03 ni-x4xx-XXXXXX usrp_hwd.py[868]: [MPM.kill] [INFO]
Terminating pid: 873
Feb 09 12:39:03 ni-x4xx-XXXXXX systemd[1]: usrp-hwd.service:
Killing process 872 (n/a) with signal SIGKILL.
Feb 09 12:39:03 ni-x4xx-XXXXXX systemd[1]: usrp-hwd.service: Failed
with result 'timeout'.
Feb 09 12:39:03 ni-x4xx-XXXXXX systemd[1]: Failed to start USRP
Hardware Daemon (MPM).
Anyone have any guidance on how I can resolve the MPM issue? I am fine
with losing any state that is on the device in order to get it to work.
Thanks.
Jason
_______________________________________________
USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-le...@lists.ettus.com