Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

uhd: fix python api feature #307435

Merged
merged 7 commits into from
May 2, 2024
Merged

Conversation

doronbehar
Copy link
Contributor

Motivation for this change
Things done
  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
  • Tested, as applicable:
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
  • Tested basic functionality of all binary files (usually in ./result/bin/)
  • 22.05 Release Notes (or backporting 21.11 Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
    • (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes
  • Fits CONTRIBUTING.md.

@ofborg ofborg bot requested review from fpletz, bjornfor and tomberek April 28, 2024 11:43
@ofborg ofborg bot added 11.by: package-maintainer This PR was created by the maintainer of the package it changes 10.rebuild-darwin: 11-100 10.rebuild-linux: 11-100 labels Apr 28, 2024
@ofborg ofborg bot requested a review from jiegec April 28, 2024 12:02
@bjornfor
Copy link
Contributor

Commit message typo: cmakeBook -> cmakeBool

@doronbehar
Copy link
Contributor Author

Thanks!

@doronbehar
Copy link
Contributor Author

@systemofapwne I noticed your ❤️ reaction, but I'm not sure if that means "I approve". Here's the layout of the build, in case you don't have time to build it on your machine.

$ tree --charset=ascii result --du -h
[712M]  result
|-- [1.3M]  bin
|   |-- [8.6K]  rfnoc_image_builder
|   |-- [ 87K]  uhd_adc_self_cal
|   |-- [219K]  uhd_cal_rx_iq_balance
|   |-- [220K]  uhd_cal_tx_dc_offset
|   |-- [219K]  uhd_cal_tx_iq_balance
|   |-- [116K]  uhd_config_info
|   |-- [150K]  uhd_find_devices
|   |-- [ 86K]  uhd_image_loader
|   |-- [ 35K]  uhd_images_downloader
|   |-- [213K]  uhd_usrp_probe
|   |-- [9.6K]  usrp2_card_burner
|   |-- [2.5K]  usrpctl
|   `-- [6.7K]  usrp_hwd.py
|-- [ 21M]  lib
|   |-- [  15]  libuhd.so -> libuhd.so.4.6.0
|   |-- [ 19M]  libuhd.so.4.6.0
|   |-- [1.4M]  python3.11
|   |   `-- [1.4M]  site-packages
|   |       `-- [1.4M]  usrp_mpm
|   |           |-- [ 15K]  aurora_control.py
|   |           |-- [ 15K]  bfrfs.py
|   |           |-- [ 22K]  bist.py
|   |           |-- [ 62K]  chips
|   |           |   |-- [7.4K]  adf400x.py
|   |           |   |-- [3.3K]  ds125df410.py
|   |           |   |-- [4.1K]  ic_reg_maps
|   |           |   |   `-- [ 143]  __init__.py
|   |           |   |-- [ 318]  __init__.py
|   |           |   |-- [2.7K]  lmk03328.py
|   |           |   |-- [3.9K]  lmk04828.py
|   |           |   |-- [6.6K]  lmk04832.py
|   |           |   |-- [6.9K]  lmk05318.py
|   |           |   |-- [ 13K]  lmx2572.py
|   |           |   `-- [ 11K]  max10_cpld_flash_ctrl.py
|   |           |-- [2.6K]  compat_num.py
|   |           |-- [ 11K]  components.py
|   |           |-- [104K]  cores
|   |           |   |-- [ 44K]  eyescan.py
|   |           |   |-- [ 228]  __init__.py
|   |           |   |-- [ 21K]  nijesdcore.py
|   |           |   |-- [ 33K]  tdc_sync.py
|   |           |   `-- [1.5K]  white_rabbit.py
|   |           |-- [288K]  dboard_manager
|   |           |   |-- [5.6K]  ad936x_db.py
|   |           |   |-- [ 10K]  adc_rh.py
|   |           |   |-- [7.7K]  base.py
|   |           |   |-- [ 19K]  dac_rh.py
|   |           |   |-- [3.5K]  dboard_iface.py
|   |           |   |-- [4.0K]  e31x_db.py
|   |           |   |-- [1.2K]  empty_slot.py
|   |           |   |-- [4.2K]  fbx.py
|   |           |   |-- [3.3K]  gain_rh.py
|   |           |   |-- [4.0K]  gaintables_rh.py
|   |           |   |-- [ 749]  __init__.py
|   |           |   |-- [ 13K]  lmk_mg.py
|   |           |   |-- [ 17K]  lmk_rh.py
|   |           |   |-- [ 22K]  magnesium.py
|   |           |   |-- [5.8K]  magnesium_update_cpld.py
|   |           |   |-- [ 29K]  mg_init.py
|   |           |   |-- [6.7K]  mg_periphs.py
|   |           |   |-- [9.9K]  neon.py
|   |           |   |-- [ 23K]  rh_init.py
|   |           |   |-- [ 23K]  rhodium.py
|   |           |   |-- [5.2K]  rhodium_update_cpld.py
|   |           |   |-- [8.7K]  rh_periphs.py
|   |           |   |-- [1.1K]  test.py
|   |           |   |-- [ 465]  unknown.py
|   |           |   |-- [3.8K]  x4xx_db_iface.py
|   |           |   |-- [6.4K]  x4xx_db.py
|   |           |   |-- [5.7K]  x4xx_debug_db.py
|   |           |   |-- [6.5K]  x4xx_if_test_cca.py
|   |           |   |-- [ 19K]  zbx.py
|   |           |   `-- [ 15K]  zbx_update_cpld.py
|   |           |-- [3.4K]  discovery.py
|   |           |-- [4.1K]  e31x_legacy_eeprom.py
|   |           |-- [7.0K]  eeprom.py
|   |           |-- [4.9K]  ethdispatch.py
|   |           |-- [5.0K]  fpga_bit_to_bin.py
|   |           |-- [ 16K]  gpsd_iface.py
|   |           |-- [ 740]  __init__.py
|   |           |-- [5.8K]  mpmlog.py
|   |           |-- [1.1K]  mpmtypes.py
|   |           |-- [ 11K]  mpmutils.py
|   |           |-- [597K]  periph_manager
|   |           |   |-- [ 61K]  base.py
|   |           |   |-- [7.4K]  common.py
|   |           |   |-- [7.2K]  e31x_periphs.py
|   |           |   |-- [ 29K]  e31x.py
|   |           |   |-- [ 13K]  e320_periphs.py
|   |           |   |-- [ 28K]  e320.py
|   |           |   |-- [ 328]  __init__.py
|   |           |   |-- [ 13K]  n3xx_periphs.py
|   |           |   |-- [ 44K]  n3xx.py
|   |           |   |-- [ 11K]  sim.py
|   |           |   |-- [ 25K]  x4xx_clk_aux.py
|   |           |   |-- [ 13K]  x4xx_clock_ctrl.py
|   |           |   |-- [ 20K]  x4xx_clock_lookup.py
|   |           |   |-- [ 58K]  x4xx_clock_mgr.py
|   |           |   |-- [ 35K]  x4xx_clock_policy.py
|   |           |   |-- [1.1K]  x4xx_clock_types.py
|   |           |   |-- [ 40K]  x4xx_dio_control.py
|   |           |   |-- [5.3K]  x4xx_gps_mgr.py
|   |           |   |-- [9.3K]  x4xx_mb_cpld.py
|   |           |   |-- [ 29K]  x4xx_periphs.py
|   |           |   |-- [ 44K]  x4xx.py
|   |           |   |-- [ 13K]  x4xx_reference_pll.py
|   |           |   |-- [ 35K]  x4xx_rfdc_ctrl.py
|   |           |   |-- [ 25K]  x4xx_rfdc_regs.py
|   |           |   |-- [ 15K]  x4xx_sample_pll.py
|   |           |   `-- [ 11K]  x4xx_update_cpld.py
|   |           |-- [3.3K]  prefs.py
|   |           |-- [1.9K]  process_manager.py
|   |           |-- [ 26K]  rpc_server.py
|   |           |-- [ 77K]  simulator
|   |           |   |-- [6.0K]  chdr_endpoint.py
|   |           |   |-- [ 10K]  chdr_stream.py
|   |           |   |-- [5.0K]  config.py
|   |           |   |-- [ 241]  hardware_presets.py
|   |           |   |-- [   0]  __init__.py
|   |           |   |-- [ 12K]  noc_block_regs.py
|   |           |   |-- [6.8K]  rfnoc_common.py
|   |           |   |-- [ 11K]  rfnoc_graph.py
|   |           |   |-- [4.9K]  sample_source.py
|   |           |   |-- [3.0K]  sim_dboard.py
|   |           |   |-- [9.3K]  stream_endpoint_node.py
|   |           |   `-- [4.8K]  stream_ep_regs.py
|   |           |-- [ 56K]  sys_utils
|   |           |   |-- [2.9K]  db_flash.py
|   |           |   |-- [3.5K]  dtoverlay.py
|   |           |   |-- [1.4K]  ectool.py
|   |           |   |-- [1.9K]  filesystem_status.py
|   |           |   |-- [1.7K]  gpio.py
|   |           |   |-- [2.7K]  i2c_dev.py
|   |           |   |-- [ 204]  __init__.py
|   |           |   |-- [2.8K]  mount.py
|   |           |   |-- [7.3K]  net.py
|   |           |   |-- [ 12K]  sysfs_gpio.py
|   |           |   |-- [2.5K]  sysfs_thermal.py
|   |           |   |-- [4.3K]  udev.py
|   |           |   |-- [7.2K]  uio.py
|   |           |   `-- [2.1K]  watchdog.py
|   |           |-- [ 731]  test_bfrfs.py
|   |           |-- [4.4K]  tlv_eeprom.py
|   |           |-- [5.8K]  user_eeprom.py
|   |           `-- [ 27K]  xports
|   |               |-- [ 276]  __init__.py
|   |               |-- [6.1K]  xport_adapter_ctrl.py
|   |               |-- [3.9K]  xport_adapter_mgr.py
|   |               `-- [ 12K]  xportmgr_udp.py
|   |-- [8.7K]  udev
|   |   `-- [4.7K]  rules.d
|   |       `-- [ 758]  uhd-usrp.rules
|   `-- [1.2M]  uhd
|       `-- [1.2M]  utils
|           |-- [185K]  b2xx_fx3_utils
|           |-- [3.3K]  convert_cal_data.py
|           |-- [209K]  converter_benchmark
|           |-- [5.5K]  converter_benchmark.py
|           |-- [150K]  fx2_init_eeprom
|           |-- [141K]  octoclock_burn_eeprom
|           |-- [151K]  query_gpsdo_sensors
|           |-- [ 35K]  uhd_images_downloader.py
|           |-- [ 11K]  uhd_power_cal.py
|           |-- [9.6K]  usrp2_card_burner.py
|           |-- [2.1K]  usrp2_recovery.py
|           |-- [149K]  usrp_burn_db_eeprom
|           `-- [141K]  usrp_burn_mb_eeprom
`-- [689M]  share
    |-- [ 10K]  doc
    |   `-- [6.1K]  uhd
    |       |-- [ 796]  LICENSE
    |       `-- [1.3K]  README.md
    |-- [ 22K]  man
    |   `-- [ 18K]  man1
    |       |-- [1.2K]  uhd_cal_rx_iq_balance.1.gz
    |       |-- [1.2K]  uhd_cal_tx_dc_offset.1.gz
    |       |-- [1.2K]  uhd_cal_tx_iq_balance.1.gz
    |       |-- [1005]  uhd_config_info.1.gz
    |       |-- [1.6K]  uhd_find_devices.1.gz
    |       |-- [1.8K]  uhd_image_loader.1.gz
    |       |-- [1.1K]  uhd_images_downloader.1.gz
    |       |-- [1.8K]  uhd_usrp_probe.1.gz
    |       |-- [ 934]  usrp2_card_burner.1.gz
    |       |-- [1.6K]  usrpctl.1.gz
    |       `-- [1.0K]  usrp_n2xx_simple_net_burner.1.gz
    `-- [689M]  uhd
        |-- [6.9K]  cal
        |   |-- [ 435]  cal_metadata.fbs
        |   |-- [ 758]  dsa_cal.fbs
        |   |-- [ 731]  iq_cal.fbs
        |   `-- [1.0K]  pwr_cal.fbs
        |-- [689M]  images
        |   |-- [4.2M]  bit
        |   |   |-- [914K]  usrp_n200_r3_fpga.bit
        |   |   |-- [870K]  usrp_n200_r4_fpga.bit
        |   |   |-- [1.2M]  usrp_n210_r3_fpga.bit
        |   |   `-- [1.2M]  usrp_n210_r4_fpga.bit
        |   |-- [8.7K]  inventory.json
        |   |-- [ 796]  LICENSE
        |   |-- [ 17K]  octoclock_bootloader.hex
        |   |-- [ 22K]  octoclock_r4_fw.hex
        |   |-- [179K]  usrp1_fpga_4rx.rbf
        |   |-- [177K]  usrp1_fpga.rbf
        |   |-- [ 17K]  usrp1_fw.ihx
        |   |-- [842K]  usrp2_fpga.bin
        |   |-- [ 16K]  usrp2_fw.bin
        |   |-- [502K]  usrp_b100_fpga_2rx.bin
        |   |-- [508K]  usrp_b100_fpga.bin
        |   |-- [ 14K]  usrp_b100_fw.ihx
        |   |-- [ 20K]  usrp_b200_bl.img
        |   |-- [2.3M]  usrp_b200_fpga.bin
        |   |-- [1.5K]  usrp_b200_fpga.rpt
        |   |-- [502K]  usrp_b200_fw.hex
        |   |-- [2.3M]  usrp_b200mini_fpga.bin
        |   |-- [1.5K]  usrp_b200mini_fpga.rpt
        |   |-- [4.0M]  usrp_b205mini_fpga.bin
        |   |-- [1.5K]  usrp_b205mini_fpga.rpt
        |   |-- [4.0M]  usrp_b210_fpga.bin
        |   |-- [1.5K]  usrp_b210_fpga.rpt
        |   |-- [3.9M]  usrp_e310_sg1_fpga.bit
        |   |-- [  57]  usrp_e310_sg1_fpga.bit.md5
        |   |-- [1.8K]  usrp_e310_sg1_fpga.dts
        |   |-- [  57]  usrp_e310_sg1_fpga.dts.md5
        |   |-- [ 24K]  usrp_e310_sg1_fpga.rpt
        |   |-- [3.9M]  usrp_e310_sg1_idle_fpga.bit
        |   |-- [  62]  usrp_e310_sg1_idle_fpga.bit.md5
        |   |-- [ 767]  usrp_e310_sg1_idle_fpga.dts
        |   |-- [  62]  usrp_e310_sg1_idle_fpga.dts.md5
        |   |-- [ 19K]  usrp_e310_sg1_idle_fpga.rpt
        |   |-- [3.9M]  usrp_e310_sg3_fpga.bit
        |   |-- [  57]  usrp_e310_sg3_fpga.bit.md5
        |   |-- [1.8K]  usrp_e310_sg3_fpga.dts
        |   |-- [  57]  usrp_e310_sg3_fpga.dts.md5
        |   |-- [ 24K]  usrp_e310_sg3_fpga.rpt
        |   |-- [3.9M]  usrp_e310_sg3_idle_fpga.bit
        |   |-- [  62]  usrp_e310_sg3_idle_fpga.bit.md5
        |   |-- [ 767]  usrp_e310_sg3_idle_fpga.dts
        |   |-- [  62]  usrp_e310_sg3_idle_fpga.dts.md5
        |   |-- [ 19K]  usrp_e310_sg3_idle_fpga.rpt
        |   |-- [ 13M]  usrp_e320_fpga_1G.bit
        |   |-- [  56]  usrp_e320_fpga_1G.bit.md5
        |   |-- [2.2K]  usrp_e320_fpga_1G.dts
        |   |-- [  56]  usrp_e320_fpga_1G.dts.md5
        |   |-- [ 76K]  usrp_e320_fpga_1G.rpt
        |   |-- [ 13M]  usrp_e320_fpga_AA.bit
        |   |-- [  56]  usrp_e320_fpga_AA.bit.md5
        |   |-- [1.8K]  usrp_e320_fpga_AA.dts
        |   |-- [  56]  usrp_e320_fpga_AA.dts.md5
        |   |-- [ 79K]  usrp_e320_fpga_AA.rpt
        |   |-- [ 13M]  usrp_e320_fpga_XG.bit
        |   |-- [  56]  usrp_e320_fpga_XG.bit.md5
        |   |-- [2.3K]  usrp_e320_fpga_XG.dts
        |   |-- [  56]  usrp_e320_fpga_XG.dts.md5
        |   |-- [ 82K]  usrp_e320_fpga_XG.rpt
        |   |-- [ 16K]  usrp_n200_fw.bin
        |   |-- [914K]  usrp_n200_r2_fpga.bin
        |   |-- [923K]  usrp_n200_r3_fpga.bin
        |   |-- [874K]  usrp_n200_r4_fpga.bin
        |   |-- [ 16K]  usrp_n210_fw.bin
        |   |-- [1.2M]  usrp_n210_r2_fpga.bin
        |   |-- [1.2M]  usrp_n210_r3_fpga.bin
        |   |-- [1.2M]  usrp_n210_r4_fpga.bin
        |   |-- [ 13M]  usrp_n300_fpga_AA.bit
        |   |-- [  56]  usrp_n300_fpga_AA.bit.md5
        |   |-- [2.2K]  usrp_n300_fpga_AA.dts
        |   |-- [  56]  usrp_n300_fpga_AA.dts.md5
        |   |-- [ 72K]  usrp_n300_fpga_AA.rpt
        |   |-- [ 13M]  usrp_n300_fpga_HG.bit
        |   |-- [  56]  usrp_n300_fpga_HG.bit.md5
        |   |-- [3.1K]  usrp_n300_fpga_HG.dts
        |   |-- [  56]  usrp_n300_fpga_HG.dts.md5
        |   |-- [ 76K]  usrp_n300_fpga_HG.rpt
        |   |-- [ 13M]  usrp_n300_fpga_WX.bit
        |   |-- [  56]  usrp_n300_fpga_WX.bit.md5
        |   |-- [3.0K]  usrp_n300_fpga_WX.dts
        |   |-- [  56]  usrp_n300_fpga_WX.dts.md5
        |   |-- [ 79K]  usrp_n300_fpga_WX.rpt
        |   |-- [ 13M]  usrp_n300_fpga_XG.bit
        |   |-- [  56]  usrp_n300_fpga_XG.bit.md5
        |   |-- [3.2K]  usrp_n300_fpga_XG.dts
        |   |-- [  56]  usrp_n300_fpga_XG.dts.md5
        |   |-- [ 73K]  usrp_n300_fpga_XG.rpt
        |   |-- [ 17M]  usrp_n310_fpga_AA.bit
        |   |-- [  56]  usrp_n310_fpga_AA.bit.md5
        |   |-- [3.0K]  usrp_n310_fpga_AA.dts
        |   |-- [  56]  usrp_n310_fpga_AA.dts.md5
        |   |-- [ 77K]  usrp_n310_fpga_AA.rpt
        |   |-- [ 17M]  usrp_n310_fpga_HG.bit
        |   |-- [  56]  usrp_n310_fpga_HG.bit.md5
        |   |-- [3.9K]  usrp_n310_fpga_HG.dts
        |   |-- [  56]  usrp_n310_fpga_HG.dts.md5
        |   |-- [ 80K]  usrp_n310_fpga_HG.rpt
        |   |-- [ 17M]  usrp_n310_fpga_WX.bit
        |   |-- [  56]  usrp_n310_fpga_WX.bit.md5
        |   |-- [3.8K]  usrp_n310_fpga_WX.dts
        |   |-- [  56]  usrp_n310_fpga_WX.dts.md5
        |   |-- [ 84K]  usrp_n310_fpga_WX.rpt
        |   |-- [ 17M]  usrp_n310_fpga_XG.bit
        |   |-- [  56]  usrp_n310_fpga_XG.bit.md5
        |   |-- [4.0K]  usrp_n310_fpga_XG.dts
        |   |-- [  56]  usrp_n310_fpga_XG.dts.md5
        |   |-- [ 77K]  usrp_n310_fpga_XG.rpt
        |   |-- [ 17M]  usrp_n320_fpga_AA.bit
        |   |-- [  56]  usrp_n320_fpga_AA.bit.md5
        |   |-- [3.4K]  usrp_n320_fpga_AA.dts
        |   |-- [  56]  usrp_n320_fpga_AA.dts.md5
        |   |-- [ 76K]  usrp_n320_fpga_AA.rpt
        |   |-- [ 17M]  usrp_n320_fpga_AQ.bit
        |   |-- [  56]  usrp_n320_fpga_AQ.bit.md5
        |   |-- [5.1K]  usrp_n320_fpga_AQ.dts
        |   |-- [  56]  usrp_n320_fpga_AQ.dts.md5
        |   |-- [ 90K]  usrp_n320_fpga_AQ.rpt
        |   |-- [ 17M]  usrp_n320_fpga_HG.bit
        |   |-- [  56]  usrp_n320_fpga_HG.bit.md5
        |   |-- [4.4K]  usrp_n320_fpga_HG.dts
        |   |-- [  56]  usrp_n320_fpga_HG.dts.md5
        |   |-- [ 81K]  usrp_n320_fpga_HG.rpt
        |   |-- [ 17M]  usrp_n320_fpga_WX.bit
        |   |-- [  56]  usrp_n320_fpga_WX.bit.md5
        |   |-- [4.2K]  usrp_n320_fpga_WX.dts
        |   |-- [  56]  usrp_n320_fpga_WX.dts.md5
        |   |-- [ 85K]  usrp_n320_fpga_WX.rpt
        |   |-- [ 17M]  usrp_n320_fpga_XG.bit
        |   |-- [  56]  usrp_n320_fpga_XG.bit.md5
        |   |-- [4.4K]  usrp_n320_fpga_XG.dts
        |   |-- [  56]  usrp_n320_fpga_XG.dts.md5
        |   |-- [ 79K]  usrp_n320_fpga_XG.rpt
        |   |-- [ 17M]  usrp_n320_fpga_XQ.bit
        |   |-- [  56]  usrp_n320_fpga_XQ.bit.md5
        |   |-- [5.2K]  usrp_n320_fpga_XQ.dts
        |   |-- [  56]  usrp_n320_fpga_XQ.dts.md5
        |   |-- [ 89K]  usrp_n320_fpga_XQ.rpt
        |   |-- [ 11M]  usrp_x300_fpga_HG.bit
        |   |-- [ 15M]  usrp_x300_fpga_HG.lvbitx
        |   |-- [ 90K]  usrp_x300_fpga_HG.rpt
        |   |-- [ 11M]  usrp_x300_fpga_XG.bit
        |   |-- [ 15M]  usrp_x300_fpga_XG.lvbitx
        |   |-- [ 88K]  usrp_x300_fpga_XG.rpt
        |   |-- [ 15M]  usrp_x310_fpga_HG.bit
        |   |-- [ 20M]  usrp_x310_fpga_HG.lvbitx
        |   |-- [ 90K]  usrp_x310_fpga_HG.rpt
        |   |-- [ 15M]  usrp_x310_fpga_XG.bit
        |   |-- [ 20M]  usrp_x310_fpga_XG.lvbitx
        |   |-- [ 88K]  usrp_x310_fpga_XG.rpt
        |   |-- [ 33M]  usrp_x410_fpga_CG_400.bit
        |   |-- [  60]  usrp_x410_fpga_CG_400.bit.md5
        |   |-- [ 10K]  usrp_x410_fpga_CG_400.dts
        |   |-- [  60]  usrp_x410_fpga_CG_400.dts.md5
        |   |-- [ 44K]  usrp_x410_fpga_CG_400.rpt
        |   |-- [ 33M]  usrp_x410_fpga_UC_200.bit
        |   |-- [  60]  usrp_x410_fpga_UC_200.bit.md5
        |   |-- [9.5K]  usrp_x410_fpga_UC_200.dts
        |   |-- [  60]  usrp_x410_fpga_UC_200.dts.md5
        |   |-- [ 62K]  usrp_x410_fpga_UC_200.rpt
        |   |-- [ 33M]  usrp_x410_fpga_X4_200.bit
        |   |-- [  60]  usrp_x410_fpga_X4_200.bit.md5
        |   |-- [ 11K]  usrp_x410_fpga_X4_200.dts
        |   |-- [  60]  usrp_x410_fpga_X4_200.dts.md5
        |   |-- [ 75K]  usrp_x410_fpga_X4_200.rpt
        |   |-- [ 33M]  usrp_x440_fpga_CG_1600.bit
        |   |-- [  61]  usrp_x440_fpga_CG_1600.bit.md5
        |   |-- [ 10K]  usrp_x440_fpga_CG_1600.dts
        |   |-- [  61]  usrp_x440_fpga_CG_1600.dts.md5
        |   |-- [ 38K]  usrp_x440_fpga_CG_1600.rpt
        |   |-- [ 33M]  usrp_x440_fpga_CG_400.bit
        |   |-- [  60]  usrp_x440_fpga_CG_400.bit.md5
        |   |-- [ 10K]  usrp_x440_fpga_CG_400.dts
        |   |-- [  60]  usrp_x440_fpga_CG_400.dts.md5
        |   |-- [ 38K]  usrp_x440_fpga_CG_400.rpt
        |   |-- [ 33M]  usrp_x440_fpga_X4_1600.bit
        |   |-- [  61]  usrp_x440_fpga_X4_1600.bit.md5
        |   |-- [ 11K]  usrp_x440_fpga_X4_1600.dts
        |   |-- [  61]  usrp_x440_fpga_X4_1600.dts.md5
        |   |-- [ 76K]  usrp_x440_fpga_X4_1600.rpt
        |   |-- [ 33M]  usrp_x440_fpga_X4_200.bit
        |   |-- [  60]  usrp_x440_fpga_X4_200.bit.md5
        |   |-- [ 11K]  usrp_x440_fpga_X4_200.dts
        |   |-- [  60]  usrp_x440_fpga_X4_200.dts.md5
        |   |-- [ 48K]  usrp_x440_fpga_X4_200.rpt
        |   |-- [ 33M]  usrp_x440_fpga_X4_400.bit
        |   |-- [  60]  usrp_x440_fpga_X4_400.bit.md5
        |   |-- [ 11K]  usrp_x440_fpga_X4_400.dts
        |   |-- [  60]  usrp_x440_fpga_X4_400.dts.md5
        |   |-- [ 76K]  usrp_x440_fpga_X4_400.rpt
        |   `-- [4.9M]  winusb_driver
        |       |-- [2.6M]  amd64
        |       |   |-- [1.6M]  WdfCoInstaller01009.dll
        |       |   `-- [979K]  winusbcoinstaller2.dll
        |       |-- [6.2K]  erllc_uhd_b100.inf
        |       |-- [6.2K]  erllc_uhd_b200.inf
        |       |-- [6.3K]  erllc_uhd_b200mini.inf
        |       |-- [2.3K]  erllc_uhd_b200_reinit.inf
        |       |-- [6.2K]  erllc_uhd_b205mini.inf
        |       |-- [ 11K]  erllc_uhd.cat
        |       |-- [ 676]  erllc_uhd_makecat.cdf
        |       |-- [6.2K]  erllc_uhd_usrp1.inf
        |       `-- [2.2M]  x86
        |           |-- [1.4M]  WdfCoInstaller01009.dll
        |           `-- [831K]  winusbcoinstaller2.dll
        `-- [ 44K]  rfnoc
            |-- [ 21K]  blocks
            |   |-- [1.1K]  addsub.yml
            |   |-- [ 856]  axi_ram_fifo.yml
            |   |-- [ 904]  ddc.yml
            |   |-- [ 905]  duc.yml
            |   |-- [1.0K]  fft_1x64.yml
            |   |-- [1.1K]  fir_filter.yml
            |   |-- [1.0K]  fosphor.yml
            |   |-- [ 950]  keep_one_in_n.yml
            |   |-- [ 945]  logpwr.yml
            |   |-- [ 933]  moving_avg.yml
            |   |-- [1.2K]  null_src_sink.yml
            |   |-- [1.2K]  radio.yml
            |   |-- [1.0K]  replay.yml
            |   |-- [ 920]  siggen.yml
            |   |-- [ 620]  split_stream.yml
            |   |-- [ 680]  switchboard.yml
            |   |-- [1.2K]  vector_iir.yml
            |   `-- [ 988]  window.yml
            `-- [ 19K]  core
                |-- [ 394]  e310_bsp.yml
                |-- [ 436]  e320_bsp.yml
                |-- [3.8K]  io_signatures.yml
                |-- [ 561]  n300_bsp.yml
                |-- [ 783]  n310_bsp.yml
                |-- [ 783]  n320_bsp.yml
                |-- [3.3K]  rfnoc_imagebuilder_args.json
                |-- [ 785]  x300_bsp.yml
                |-- [ 785]  x310_bsp.yml
                |-- [1.5K]  x410_bsp.yml
                `-- [1.7K]  x440_bsp.yml

 2.8G used in 33 directories, 400 files

@systemofapwne
Copy link

@systemofapwne I noticed your ❤️ reaction, but I'm not sure if that means "I approve". Here's the layout of the build, in case you don't have time to build it on your machine.

$ tree --charset=ascii result --du -h
[712M]  result
|-- [1.3M]  bin
|   |-- [8.6K]  rfnoc_image_builder
|   |-- [ 87K]  uhd_adc_self_cal
|   |-- [219K]  uhd_cal_rx_iq_balance
|   |-- [220K]  uhd_cal_tx_dc_offset
|   |-- [219K]  uhd_cal_tx_iq_balance
|   |-- [116K]  uhd_config_info
|   |-- [150K]  uhd_find_devices
|   |-- [ 86K]  uhd_image_loader
|   |-- [ 35K]  uhd_images_downloader
|   |-- [213K]  uhd_usrp_probe
|   |-- [9.6K]  usrp2_card_burner
|   |-- [2.5K]  usrpctl
|   `-- [6.7K]  usrp_hwd.py
|-- [ 21M]  lib
|   |-- [  15]  libuhd.so -> libuhd.so.4.6.0
|   |-- [ 19M]  libuhd.so.4.6.0
|   |-- [1.4M]  python3.11
|   |   `-- [1.4M]  site-packages
|   |       `-- [1.4M]  usrp_mpm
|   |           |-- [ 15K]  aurora_control.py
|   |           |-- [ 15K]  bfrfs.py
|   |           |-- [ 22K]  bist.py
|   |           |-- [ 62K]  chips
|   |           |   |-- [7.4K]  adf400x.py
|   |           |   |-- [3.3K]  ds125df410.py
|   |           |   |-- [4.1K]  ic_reg_maps
|   |           |   |   `-- [ 143]  __init__.py
|   |           |   |-- [ 318]  __init__.py
|   |           |   |-- [2.7K]  lmk03328.py
|   |           |   |-- [3.9K]  lmk04828.py
|   |           |   |-- [6.6K]  lmk04832.py
|   |           |   |-- [6.9K]  lmk05318.py
|   |           |   |-- [ 13K]  lmx2572.py
|   |           |   `-- [ 11K]  max10_cpld_flash_ctrl.py
|   |           |-- [2.6K]  compat_num.py
|   |           |-- [ 11K]  components.py
|   |           |-- [104K]  cores
|   |           |   |-- [ 44K]  eyescan.py
|   |           |   |-- [ 228]  __init__.py
|   |           |   |-- [ 21K]  nijesdcore.py
|   |           |   |-- [ 33K]  tdc_sync.py
|   |           |   `-- [1.5K]  white_rabbit.py
|   |           |-- [288K]  dboard_manager
|   |           |   |-- [5.6K]  ad936x_db.py
|   |           |   |-- [ 10K]  adc_rh.py
|   |           |   |-- [7.7K]  base.py
|   |           |   |-- [ 19K]  dac_rh.py
|   |           |   |-- [3.5K]  dboard_iface.py
|   |           |   |-- [4.0K]  e31x_db.py
|   |           |   |-- [1.2K]  empty_slot.py
|   |           |   |-- [4.2K]  fbx.py
|   |           |   |-- [3.3K]  gain_rh.py
|   |           |   |-- [4.0K]  gaintables_rh.py
|   |           |   |-- [ 749]  __init__.py
|   |           |   |-- [ 13K]  lmk_mg.py
|   |           |   |-- [ 17K]  lmk_rh.py
|   |           |   |-- [ 22K]  magnesium.py
|   |           |   |-- [5.8K]  magnesium_update_cpld.py
|   |           |   |-- [ 29K]  mg_init.py
|   |           |   |-- [6.7K]  mg_periphs.py
|   |           |   |-- [9.9K]  neon.py
|   |           |   |-- [ 23K]  rh_init.py
|   |           |   |-- [ 23K]  rhodium.py
|   |           |   |-- [5.2K]  rhodium_update_cpld.py
|   |           |   |-- [8.7K]  rh_periphs.py
|   |           |   |-- [1.1K]  test.py
|   |           |   |-- [ 465]  unknown.py
|   |           |   |-- [3.8K]  x4xx_db_iface.py
|   |           |   |-- [6.4K]  x4xx_db.py
|   |           |   |-- [5.7K]  x4xx_debug_db.py
|   |           |   |-- [6.5K]  x4xx_if_test_cca.py
|   |           |   |-- [ 19K]  zbx.py
|   |           |   `-- [ 15K]  zbx_update_cpld.py
|   |           |-- [3.4K]  discovery.py
|   |           |-- [4.1K]  e31x_legacy_eeprom.py
|   |           |-- [7.0K]  eeprom.py
|   |           |-- [4.9K]  ethdispatch.py
|   |           |-- [5.0K]  fpga_bit_to_bin.py
|   |           |-- [ 16K]  gpsd_iface.py
|   |           |-- [ 740]  __init__.py
|   |           |-- [5.8K]  mpmlog.py
|   |           |-- [1.1K]  mpmtypes.py
|   |           |-- [ 11K]  mpmutils.py
|   |           |-- [597K]  periph_manager
|   |           |   |-- [ 61K]  base.py
|   |           |   |-- [7.4K]  common.py
|   |           |   |-- [7.2K]  e31x_periphs.py
|   |           |   |-- [ 29K]  e31x.py
|   |           |   |-- [ 13K]  e320_periphs.py
|   |           |   |-- [ 28K]  e320.py
|   |           |   |-- [ 328]  __init__.py
|   |           |   |-- [ 13K]  n3xx_periphs.py
|   |           |   |-- [ 44K]  n3xx.py
|   |           |   |-- [ 11K]  sim.py
|   |           |   |-- [ 25K]  x4xx_clk_aux.py
|   |           |   |-- [ 13K]  x4xx_clock_ctrl.py
|   |           |   |-- [ 20K]  x4xx_clock_lookup.py
|   |           |   |-- [ 58K]  x4xx_clock_mgr.py
|   |           |   |-- [ 35K]  x4xx_clock_policy.py
|   |           |   |-- [1.1K]  x4xx_clock_types.py
|   |           |   |-- [ 40K]  x4xx_dio_control.py
|   |           |   |-- [5.3K]  x4xx_gps_mgr.py
|   |           |   |-- [9.3K]  x4xx_mb_cpld.py
|   |           |   |-- [ 29K]  x4xx_periphs.py
|   |           |   |-- [ 44K]  x4xx.py
|   |           |   |-- [ 13K]  x4xx_reference_pll.py
|   |           |   |-- [ 35K]  x4xx_rfdc_ctrl.py
|   |           |   |-- [ 25K]  x4xx_rfdc_regs.py
|   |           |   |-- [ 15K]  x4xx_sample_pll.py
|   |           |   `-- [ 11K]  x4xx_update_cpld.py
|   |           |-- [3.3K]  prefs.py
|   |           |-- [1.9K]  process_manager.py
|   |           |-- [ 26K]  rpc_server.py
|   |           |-- [ 77K]  simulator
|   |           |   |-- [6.0K]  chdr_endpoint.py
|   |           |   |-- [ 10K]  chdr_stream.py
|   |           |   |-- [5.0K]  config.py
|   |           |   |-- [ 241]  hardware_presets.py
|   |           |   |-- [   0]  __init__.py
|   |           |   |-- [ 12K]  noc_block_regs.py
|   |           |   |-- [6.8K]  rfnoc_common.py
|   |           |   |-- [ 11K]  rfnoc_graph.py
|   |           |   |-- [4.9K]  sample_source.py
|   |           |   |-- [3.0K]  sim_dboard.py
|   |           |   |-- [9.3K]  stream_endpoint_node.py
|   |           |   `-- [4.8K]  stream_ep_regs.py
|   |           |-- [ 56K]  sys_utils
|   |           |   |-- [2.9K]  db_flash.py
|   |           |   |-- [3.5K]  dtoverlay.py
|   |           |   |-- [1.4K]  ectool.py
|   |           |   |-- [1.9K]  filesystem_status.py
|   |           |   |-- [1.7K]  gpio.py
|   |           |   |-- [2.7K]  i2c_dev.py
|   |           |   |-- [ 204]  __init__.py
|   |           |   |-- [2.8K]  mount.py
|   |           |   |-- [7.3K]  net.py
|   |           |   |-- [ 12K]  sysfs_gpio.py
|   |           |   |-- [2.5K]  sysfs_thermal.py
|   |           |   |-- [4.3K]  udev.py
|   |           |   |-- [7.2K]  uio.py
|   |           |   `-- [2.1K]  watchdog.py
|   |           |-- [ 731]  test_bfrfs.py
|   |           |-- [4.4K]  tlv_eeprom.py
|   |           |-- [5.8K]  user_eeprom.py
|   |           `-- [ 27K]  xports
|   |               |-- [ 276]  __init__.py
|   |               |-- [6.1K]  xport_adapter_ctrl.py
|   |               |-- [3.9K]  xport_adapter_mgr.py
|   |               `-- [ 12K]  xportmgr_udp.py
|   |-- [8.7K]  udev
|   |   `-- [4.7K]  rules.d
|   |       `-- [ 758]  uhd-usrp.rules
|   `-- [1.2M]  uhd
|       `-- [1.2M]  utils
|           |-- [185K]  b2xx_fx3_utils
|           |-- [3.3K]  convert_cal_data.py
|           |-- [209K]  converter_benchmark
|           |-- [5.5K]  converter_benchmark.py
|           |-- [150K]  fx2_init_eeprom
|           |-- [141K]  octoclock_burn_eeprom
|           |-- [151K]  query_gpsdo_sensors
|           |-- [ 35K]  uhd_images_downloader.py
|           |-- [ 11K]  uhd_power_cal.py
|           |-- [9.6K]  usrp2_card_burner.py
|           |-- [2.1K]  usrp2_recovery.py
|           |-- [149K]  usrp_burn_db_eeprom
|           `-- [141K]  usrp_burn_mb_eeprom
`-- [689M]  share
    |-- [ 10K]  doc
    |   `-- [6.1K]  uhd
    |       |-- [ 796]  LICENSE
    |       `-- [1.3K]  README.md
    |-- [ 22K]  man
    |   `-- [ 18K]  man1
    |       |-- [1.2K]  uhd_cal_rx_iq_balance.1.gz
    |       |-- [1.2K]  uhd_cal_tx_dc_offset.1.gz
    |       |-- [1.2K]  uhd_cal_tx_iq_balance.1.gz
    |       |-- [1005]  uhd_config_info.1.gz
    |       |-- [1.6K]  uhd_find_devices.1.gz
    |       |-- [1.8K]  uhd_image_loader.1.gz
    |       |-- [1.1K]  uhd_images_downloader.1.gz
    |       |-- [1.8K]  uhd_usrp_probe.1.gz
    |       |-- [ 934]  usrp2_card_burner.1.gz
    |       |-- [1.6K]  usrpctl.1.gz
    |       `-- [1.0K]  usrp_n2xx_simple_net_burner.1.gz
    `-- [689M]  uhd
        |-- [6.9K]  cal
        |   |-- [ 435]  cal_metadata.fbs
        |   |-- [ 758]  dsa_cal.fbs
        |   |-- [ 731]  iq_cal.fbs
        |   `-- [1.0K]  pwr_cal.fbs
        |-- [689M]  images
        |   |-- [4.2M]  bit
        |   |   |-- [914K]  usrp_n200_r3_fpga.bit
        |   |   |-- [870K]  usrp_n200_r4_fpga.bit
        |   |   |-- [1.2M]  usrp_n210_r3_fpga.bit
        |   |   `-- [1.2M]  usrp_n210_r4_fpga.bit
        |   |-- [8.7K]  inventory.json
        |   |-- [ 796]  LICENSE
        |   |-- [ 17K]  octoclock_bootloader.hex
        |   |-- [ 22K]  octoclock_r4_fw.hex
        |   |-- [179K]  usrp1_fpga_4rx.rbf
        |   |-- [177K]  usrp1_fpga.rbf
        |   |-- [ 17K]  usrp1_fw.ihx
        |   |-- [842K]  usrp2_fpga.bin
        |   |-- [ 16K]  usrp2_fw.bin
        |   |-- [502K]  usrp_b100_fpga_2rx.bin
        |   |-- [508K]  usrp_b100_fpga.bin
        |   |-- [ 14K]  usrp_b100_fw.ihx
        |   |-- [ 20K]  usrp_b200_bl.img
        |   |-- [2.3M]  usrp_b200_fpga.bin
        |   |-- [1.5K]  usrp_b200_fpga.rpt
        |   |-- [502K]  usrp_b200_fw.hex
        |   |-- [2.3M]  usrp_b200mini_fpga.bin
        |   |-- [1.5K]  usrp_b200mini_fpga.rpt
        |   |-- [4.0M]  usrp_b205mini_fpga.bin
        |   |-- [1.5K]  usrp_b205mini_fpga.rpt
        |   |-- [4.0M]  usrp_b210_fpga.bin
        |   |-- [1.5K]  usrp_b210_fpga.rpt
        |   |-- [3.9M]  usrp_e310_sg1_fpga.bit
        |   |-- [  57]  usrp_e310_sg1_fpga.bit.md5
        |   |-- [1.8K]  usrp_e310_sg1_fpga.dts
        |   |-- [  57]  usrp_e310_sg1_fpga.dts.md5
        |   |-- [ 24K]  usrp_e310_sg1_fpga.rpt
        |   |-- [3.9M]  usrp_e310_sg1_idle_fpga.bit
        |   |-- [  62]  usrp_e310_sg1_idle_fpga.bit.md5
        |   |-- [ 767]  usrp_e310_sg1_idle_fpga.dts
        |   |-- [  62]  usrp_e310_sg1_idle_fpga.dts.md5
        |   |-- [ 19K]  usrp_e310_sg1_idle_fpga.rpt
        |   |-- [3.9M]  usrp_e310_sg3_fpga.bit
        |   |-- [  57]  usrp_e310_sg3_fpga.bit.md5
        |   |-- [1.8K]  usrp_e310_sg3_fpga.dts
        |   |-- [  57]  usrp_e310_sg3_fpga.dts.md5
        |   |-- [ 24K]  usrp_e310_sg3_fpga.rpt
        |   |-- [3.9M]  usrp_e310_sg3_idle_fpga.bit
        |   |-- [  62]  usrp_e310_sg3_idle_fpga.bit.md5
        |   |-- [ 767]  usrp_e310_sg3_idle_fpga.dts
        |   |-- [  62]  usrp_e310_sg3_idle_fpga.dts.md5
        |   |-- [ 19K]  usrp_e310_sg3_idle_fpga.rpt
        |   |-- [ 13M]  usrp_e320_fpga_1G.bit
        |   |-- [  56]  usrp_e320_fpga_1G.bit.md5
        |   |-- [2.2K]  usrp_e320_fpga_1G.dts
        |   |-- [  56]  usrp_e320_fpga_1G.dts.md5
        |   |-- [ 76K]  usrp_e320_fpga_1G.rpt
        |   |-- [ 13M]  usrp_e320_fpga_AA.bit
        |   |-- [  56]  usrp_e320_fpga_AA.bit.md5
        |   |-- [1.8K]  usrp_e320_fpga_AA.dts
        |   |-- [  56]  usrp_e320_fpga_AA.dts.md5
        |   |-- [ 79K]  usrp_e320_fpga_AA.rpt
        |   |-- [ 13M]  usrp_e320_fpga_XG.bit
        |   |-- [  56]  usrp_e320_fpga_XG.bit.md5
        |   |-- [2.3K]  usrp_e320_fpga_XG.dts
        |   |-- [  56]  usrp_e320_fpga_XG.dts.md5
        |   |-- [ 82K]  usrp_e320_fpga_XG.rpt
        |   |-- [ 16K]  usrp_n200_fw.bin
        |   |-- [914K]  usrp_n200_r2_fpga.bin
        |   |-- [923K]  usrp_n200_r3_fpga.bin
        |   |-- [874K]  usrp_n200_r4_fpga.bin
        |   |-- [ 16K]  usrp_n210_fw.bin
        |   |-- [1.2M]  usrp_n210_r2_fpga.bin
        |   |-- [1.2M]  usrp_n210_r3_fpga.bin
        |   |-- [1.2M]  usrp_n210_r4_fpga.bin
        |   |-- [ 13M]  usrp_n300_fpga_AA.bit
        |   |-- [  56]  usrp_n300_fpga_AA.bit.md5
        |   |-- [2.2K]  usrp_n300_fpga_AA.dts
        |   |-- [  56]  usrp_n300_fpga_AA.dts.md5
        |   |-- [ 72K]  usrp_n300_fpga_AA.rpt
        |   |-- [ 13M]  usrp_n300_fpga_HG.bit
        |   |-- [  56]  usrp_n300_fpga_HG.bit.md5
        |   |-- [3.1K]  usrp_n300_fpga_HG.dts
        |   |-- [  56]  usrp_n300_fpga_HG.dts.md5
        |   |-- [ 76K]  usrp_n300_fpga_HG.rpt
        |   |-- [ 13M]  usrp_n300_fpga_WX.bit
        |   |-- [  56]  usrp_n300_fpga_WX.bit.md5
        |   |-- [3.0K]  usrp_n300_fpga_WX.dts
        |   |-- [  56]  usrp_n300_fpga_WX.dts.md5
        |   |-- [ 79K]  usrp_n300_fpga_WX.rpt
        |   |-- [ 13M]  usrp_n300_fpga_XG.bit
        |   |-- [  56]  usrp_n300_fpga_XG.bit.md5
        |   |-- [3.2K]  usrp_n300_fpga_XG.dts
        |   |-- [  56]  usrp_n300_fpga_XG.dts.md5
        |   |-- [ 73K]  usrp_n300_fpga_XG.rpt
        |   |-- [ 17M]  usrp_n310_fpga_AA.bit
        |   |-- [  56]  usrp_n310_fpga_AA.bit.md5
        |   |-- [3.0K]  usrp_n310_fpga_AA.dts
        |   |-- [  56]  usrp_n310_fpga_AA.dts.md5
        |   |-- [ 77K]  usrp_n310_fpga_AA.rpt
        |   |-- [ 17M]  usrp_n310_fpga_HG.bit
        |   |-- [  56]  usrp_n310_fpga_HG.bit.md5
        |   |-- [3.9K]  usrp_n310_fpga_HG.dts
        |   |-- [  56]  usrp_n310_fpga_HG.dts.md5
        |   |-- [ 80K]  usrp_n310_fpga_HG.rpt
        |   |-- [ 17M]  usrp_n310_fpga_WX.bit
        |   |-- [  56]  usrp_n310_fpga_WX.bit.md5
        |   |-- [3.8K]  usrp_n310_fpga_WX.dts
        |   |-- [  56]  usrp_n310_fpga_WX.dts.md5
        |   |-- [ 84K]  usrp_n310_fpga_WX.rpt
        |   |-- [ 17M]  usrp_n310_fpga_XG.bit
        |   |-- [  56]  usrp_n310_fpga_XG.bit.md5
        |   |-- [4.0K]  usrp_n310_fpga_XG.dts
        |   |-- [  56]  usrp_n310_fpga_XG.dts.md5
        |   |-- [ 77K]  usrp_n310_fpga_XG.rpt
        |   |-- [ 17M]  usrp_n320_fpga_AA.bit
        |   |-- [  56]  usrp_n320_fpga_AA.bit.md5
        |   |-- [3.4K]  usrp_n320_fpga_AA.dts
        |   |-- [  56]  usrp_n320_fpga_AA.dts.md5
        |   |-- [ 76K]  usrp_n320_fpga_AA.rpt
        |   |-- [ 17M]  usrp_n320_fpga_AQ.bit
        |   |-- [  56]  usrp_n320_fpga_AQ.bit.md5
        |   |-- [5.1K]  usrp_n320_fpga_AQ.dts
        |   |-- [  56]  usrp_n320_fpga_AQ.dts.md5
        |   |-- [ 90K]  usrp_n320_fpga_AQ.rpt
        |   |-- [ 17M]  usrp_n320_fpga_HG.bit
        |   |-- [  56]  usrp_n320_fpga_HG.bit.md5
        |   |-- [4.4K]  usrp_n320_fpga_HG.dts
        |   |-- [  56]  usrp_n320_fpga_HG.dts.md5
        |   |-- [ 81K]  usrp_n320_fpga_HG.rpt
        |   |-- [ 17M]  usrp_n320_fpga_WX.bit
        |   |-- [  56]  usrp_n320_fpga_WX.bit.md5
        |   |-- [4.2K]  usrp_n320_fpga_WX.dts
        |   |-- [  56]  usrp_n320_fpga_WX.dts.md5
        |   |-- [ 85K]  usrp_n320_fpga_WX.rpt
        |   |-- [ 17M]  usrp_n320_fpga_XG.bit
        |   |-- [  56]  usrp_n320_fpga_XG.bit.md5
        |   |-- [4.4K]  usrp_n320_fpga_XG.dts
        |   |-- [  56]  usrp_n320_fpga_XG.dts.md5
        |   |-- [ 79K]  usrp_n320_fpga_XG.rpt
        |   |-- [ 17M]  usrp_n320_fpga_XQ.bit
        |   |-- [  56]  usrp_n320_fpga_XQ.bit.md5
        |   |-- [5.2K]  usrp_n320_fpga_XQ.dts
        |   |-- [  56]  usrp_n320_fpga_XQ.dts.md5
        |   |-- [ 89K]  usrp_n320_fpga_XQ.rpt
        |   |-- [ 11M]  usrp_x300_fpga_HG.bit
        |   |-- [ 15M]  usrp_x300_fpga_HG.lvbitx
        |   |-- [ 90K]  usrp_x300_fpga_HG.rpt
        |   |-- [ 11M]  usrp_x300_fpga_XG.bit
        |   |-- [ 15M]  usrp_x300_fpga_XG.lvbitx
        |   |-- [ 88K]  usrp_x300_fpga_XG.rpt
        |   |-- [ 15M]  usrp_x310_fpga_HG.bit
        |   |-- [ 20M]  usrp_x310_fpga_HG.lvbitx
        |   |-- [ 90K]  usrp_x310_fpga_HG.rpt
        |   |-- [ 15M]  usrp_x310_fpga_XG.bit
        |   |-- [ 20M]  usrp_x310_fpga_XG.lvbitx
        |   |-- [ 88K]  usrp_x310_fpga_XG.rpt
        |   |-- [ 33M]  usrp_x410_fpga_CG_400.bit
        |   |-- [  60]  usrp_x410_fpga_CG_400.bit.md5
        |   |-- [ 10K]  usrp_x410_fpga_CG_400.dts
        |   |-- [  60]  usrp_x410_fpga_CG_400.dts.md5
        |   |-- [ 44K]  usrp_x410_fpga_CG_400.rpt
        |   |-- [ 33M]  usrp_x410_fpga_UC_200.bit
        |   |-- [  60]  usrp_x410_fpga_UC_200.bit.md5
        |   |-- [9.5K]  usrp_x410_fpga_UC_200.dts
        |   |-- [  60]  usrp_x410_fpga_UC_200.dts.md5
        |   |-- [ 62K]  usrp_x410_fpga_UC_200.rpt
        |   |-- [ 33M]  usrp_x410_fpga_X4_200.bit
        |   |-- [  60]  usrp_x410_fpga_X4_200.bit.md5
        |   |-- [ 11K]  usrp_x410_fpga_X4_200.dts
        |   |-- [  60]  usrp_x410_fpga_X4_200.dts.md5
        |   |-- [ 75K]  usrp_x410_fpga_X4_200.rpt
        |   |-- [ 33M]  usrp_x440_fpga_CG_1600.bit
        |   |-- [  61]  usrp_x440_fpga_CG_1600.bit.md5
        |   |-- [ 10K]  usrp_x440_fpga_CG_1600.dts
        |   |-- [  61]  usrp_x440_fpga_CG_1600.dts.md5
        |   |-- [ 38K]  usrp_x440_fpga_CG_1600.rpt
        |   |-- [ 33M]  usrp_x440_fpga_CG_400.bit
        |   |-- [  60]  usrp_x440_fpga_CG_400.bit.md5
        |   |-- [ 10K]  usrp_x440_fpga_CG_400.dts
        |   |-- [  60]  usrp_x440_fpga_CG_400.dts.md5
        |   |-- [ 38K]  usrp_x440_fpga_CG_400.rpt
        |   |-- [ 33M]  usrp_x440_fpga_X4_1600.bit
        |   |-- [  61]  usrp_x440_fpga_X4_1600.bit.md5
        |   |-- [ 11K]  usrp_x440_fpga_X4_1600.dts
        |   |-- [  61]  usrp_x440_fpga_X4_1600.dts.md5
        |   |-- [ 76K]  usrp_x440_fpga_X4_1600.rpt
        |   |-- [ 33M]  usrp_x440_fpga_X4_200.bit
        |   |-- [  60]  usrp_x440_fpga_X4_200.bit.md5
        |   |-- [ 11K]  usrp_x440_fpga_X4_200.dts
        |   |-- [  60]  usrp_x440_fpga_X4_200.dts.md5
        |   |-- [ 48K]  usrp_x440_fpga_X4_200.rpt
        |   |-- [ 33M]  usrp_x440_fpga_X4_400.bit
        |   |-- [  60]  usrp_x440_fpga_X4_400.bit.md5
        |   |-- [ 11K]  usrp_x440_fpga_X4_400.dts
        |   |-- [  60]  usrp_x440_fpga_X4_400.dts.md5
        |   |-- [ 76K]  usrp_x440_fpga_X4_400.rpt
        |   `-- [4.9M]  winusb_driver
        |       |-- [2.6M]  amd64
        |       |   |-- [1.6M]  WdfCoInstaller01009.dll
        |       |   `-- [979K]  winusbcoinstaller2.dll
        |       |-- [6.2K]  erllc_uhd_b100.inf
        |       |-- [6.2K]  erllc_uhd_b200.inf
        |       |-- [6.3K]  erllc_uhd_b200mini.inf
        |       |-- [2.3K]  erllc_uhd_b200_reinit.inf
        |       |-- [6.2K]  erllc_uhd_b205mini.inf
        |       |-- [ 11K]  erllc_uhd.cat
        |       |-- [ 676]  erllc_uhd_makecat.cdf
        |       |-- [6.2K]  erllc_uhd_usrp1.inf
        |       `-- [2.2M]  x86
        |           |-- [1.4M]  WdfCoInstaller01009.dll
        |           `-- [831K]  winusbcoinstaller2.dll
        `-- [ 44K]  rfnoc
            |-- [ 21K]  blocks
            |   |-- [1.1K]  addsub.yml
            |   |-- [ 856]  axi_ram_fifo.yml
            |   |-- [ 904]  ddc.yml
            |   |-- [ 905]  duc.yml
            |   |-- [1.0K]  fft_1x64.yml
            |   |-- [1.1K]  fir_filter.yml
            |   |-- [1.0K]  fosphor.yml
            |   |-- [ 950]  keep_one_in_n.yml
            |   |-- [ 945]  logpwr.yml
            |   |-- [ 933]  moving_avg.yml
            |   |-- [1.2K]  null_src_sink.yml
            |   |-- [1.2K]  radio.yml
            |   |-- [1.0K]  replay.yml
            |   |-- [ 920]  siggen.yml
            |   |-- [ 620]  split_stream.yml
            |   |-- [ 680]  switchboard.yml
            |   |-- [1.2K]  vector_iir.yml
            |   `-- [ 988]  window.yml
            `-- [ 19K]  core
                |-- [ 394]  e310_bsp.yml
                |-- [ 436]  e320_bsp.yml
                |-- [3.8K]  io_signatures.yml
                |-- [ 561]  n300_bsp.yml
                |-- [ 783]  n310_bsp.yml
                |-- [ 783]  n320_bsp.yml
                |-- [3.3K]  rfnoc_imagebuilder_args.json
                |-- [ 785]  x300_bsp.yml
                |-- [ 785]  x310_bsp.yml
                |-- [1.5K]  x410_bsp.yml
                `-- [1.7K]  x440_bsp.yml

 2.8G used in 33 directories, 400 files

Sorry, I didn't find the time to check this on my machine yet, but I will give this a try by today.

@systemofapwne
Copy link

systemofapwne commented Apr 30, 2024

So I just tested your PR. It builds fine, yet it still fails on installing the python module. I tested everything using this flake here:

{
  description = "A very basic flake";

  inputs = {
    #nixpkgs.url = "github:systemofapwne/nixpkgs?ref=12f5fb3";  # my hacky PR
    nixpkgs.url = "github:doronbehar/nixpkgs?ref=0c60ffa";      # More elegant PR
  };
  outputs = { self, nixpkgs }:
  let
    pkgs  = import nixpkgs { system = "x86_64-linux"; };
    ps    = pkgs.python3.pkgs;
  in {

    uhd = (ps.toPythonModule (pkgs.uhd.override {
      python3         = pkgs.python3;
      enableUtils     = true;
      enableCApi      = false;
      enablePythonApi = true;
      enableOctoClock = false;
      enableMpmd      = false;
      enableB100      = false;
      enableB200      = false;
      enableUsrp1     = false;
      enableUsrp2     = false;
      enableX300      = true;
      enableN300      = false;
      enableN320      = false;
      enableE300      = false;
      enableE320      = false;
    }));
  
    defaultPackage.x86_64-linux = pkgs.buildEnv {
      name = "sdr-env-2";
      paths = [
        (pkgs.python3.withPackages(ps: [
          ps.numpy
          self.uhd
        ]))
      ];
    };
  };
}

I think the reason is, that upstreams Python VENV check still returns true and thus ignores UHD_PYTHON_DIR. My compile log has entries like this:

uhd> -- Python checking for virtual environment
uhd> -- Python checking for virtual environment - found
uhd> -- Python virtual environment detected -- Ignoring UHD_PYTHON_DIR.

...

uhd> /nix/store/65dnxjhnlyzz0c20jvwjq3snfjvq8hwk-python3-3.11.9-env/lib/python3.11/site-packages/setuptools/_distutils/cmd.py:66: SetuptoolsDeprecationWarning: setup.py install is deprecated.
uhd> !!
uhd>         ********************************************************************************
uhd>         Please avoid running ``setup.py`` directly.
uhd>         Instead, use pypa/build, pypa/installer or other
uhd>         standards-based tools.
uhd>         See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html for details.
uhd>         ********************************************************************************
uhd> !!
uhd>   self.initialize_options()
uhd> /nix/store/65dnxjhnlyzz0c20jvwjq3snfjvq8hwk-python3-3.11.9-env/lib/python3.11/site-packages/setuptools/_distutils/cmd.py:66: EasyInstallDeprecationWarning: easy_install command is deprecated.
uhd> !!
uhd>         ********************************************************************************
uhd>         Please avoid running ``setup.py`` and ``easy_install``.
uhd>         Instead, use pypa/build, pypa/installer or other
uhd>         standards-based tools.
uhd>         See https://github.com/pypa/setuptools/issues/917 for details.
uhd>         ********************************************************************************
uhd> !!
uhd>   self.initialize_options()
uhd> Including packages in pyuhd: []
uhd> error: can't create or remove files in install directory
uhd> The following error occurred while trying to add or remove files in the
uhd> installation directory:
uhd>     [Errno 13] Permission denied: '/nix/store/65dnxjhnlyzz0c20jvwjq3snfjvq8hwk-python3-3.11.9-env/lib/python3.11/site-packages/test-easy-install-5239.write-test'
uhd> The installation directory you specified (via --install-dir, --prefix, or
uhd> the distutils default setting) was:
uhd>     /nix/store/65dnxjhnlyzz0c20jvwjq3snfjvq8hwk-python3-3.11.9-env/lib/python3.11/site-packages/

Here is my complete compile log: compile.log

@doronbehar
Copy link
Contributor Author

It builds fine, yet it still fails on installing the python module.

Haha I haven't noticed these errors! Thanks for pointing them out. Certainly this is not ideal, but I'm not sure I understand if you are lacking any files in the result/ - I found many Python files there, with a similar layout to the files found on the debian package.

I'm trying to think of a way to fix those errors in the meantime.

@doronbehar

This comment was marked as outdated.

@doronbehar
Copy link
Contributor Author

I'm now building locally what I pushed - will update if it works (it'll take a few hours because my resources are limited at the moment).

@doronbehar
Copy link
Contributor Author

OK I got it :) It wasn't trivial at all... I built it locally, and I also made sure the python utilities the build produces all work by using a correct python interpreter, besides usrp_hwd.py which seems buggy (reported upstream here).

Now I'm testing locally these packages:

{uhd,gnuradio{,3_{8,9}}}{,Minimal}

Your review @systemofapwne is welcome now again.

@doronbehar
Copy link
Contributor Author

OK Now all of these packages build, and produce the desired output (fixed a small mistake since last time).

Will wait a day or two for comments to arrive, if not, will self merge.

@systemofapwne
Copy link

I was able to build the package with the flake I provided earlier. Importing the UHD python module now works properly. However I did not test for functionality yet, since I lack the hardware at home. I will plan to test this tomorrow, when I am back in the lab.

Thank you for the great job!

@systemofapwne
Copy link

I just confirmed that your PR works pretty well with our SDRs using the python API. I fully approve your PR.

@doronbehar
Copy link
Contributor Author

Great! Thanks!

@doronbehar doronbehar merged commit 50a655b into NixOS:master May 2, 2024
24 checks passed
@doronbehar doronbehar deleted the pkg/uhd-python branch May 2, 2024 14:37
@systemofapwne
Copy link

Does it also make sense to back-port it to the respective channels, that support the current UHD 4.6?

@doronbehar
Copy link
Contributor Author

Hmm technically it is a new feature added to the package, so it's not a classic PR to backport to the stable channels. I think though it won't hurt anyone, especially if we are a few weeks before the branch off of the next release.

What I'm not sure I understood, was what do you mean by:

the respective channels, that support the current UHD 4.6?

@systemofapwne
Copy link

What I'm not sure I understood, was what do you mean by:

the respective channels, that support the current UHD 4.6?

I was referring to the nixos release channels, that are already on 4.6. release-23.11 seems to already be on 4.6.
But lets stick to your initial assesment of this being a new feature. I can wait for 24.05 ;)

@doronbehar
Copy link
Contributor Author

We could also backport the updates from UHD 4.4 -> 4.6 but that feels a bit risky, and especially if you are using a flake setup, and you already compile your uhd for your project, I think it won't matter too much for you :). Thanks for you patience. 🥂

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
10.rebuild-darwin: 11-100 10.rebuild-linux: 11-100 11.by: package-maintainer This PR was created by the maintainer of the package it changes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants