Giter Site home page Giter Site logo

plutosdr-fw's Introduction

plutosdr-fw

PlutoSDR Firmware for the ADALM-PLUTO Active Learning Module

Latest binary Release : GitHub Release Github Releases

Firmware License : Many Licenses Many License Many License Many License and many others.

Instructions from the Wiki: Building the image

  • Build Instructions
 sudo apt-get install git build-essential fakeroot libncurses5-dev libssl-dev ccache
 sudo apt-get install dfu-util u-boot-tools device-tree-compiler libssl1.0-dev mtools
 sudo apt-get install bc python cpio zip unzip rsync file wget
 git clone --recursive https://github.com/analogdevicesinc/plutosdr-fw.git
 cd plutosdr-fw
 export VIVADO_SETTINGS=/opt/Xilinx/Vivado/2021.2/settings64.sh
 make

Due to incompatibility between the AMD/Xilinx GCC toolchain supplied with Vivado/Vitis and Buildroot. This project switched to Buildroot external Toolchain: Linaro GCC 7.3-2018.05 7.3.1

https://releases.linaro.org/components/toolchain/binaries/7.3-2018.05/arm-linux-gnueabihf/

This toolchain is used to build: Buildroot, Linux and u-boot

"error "timeout while establishing a connection with SDK"" (procedure "getsdkchan" line 108) invoked from within "getsdkchan" (procedure "createhw" line 26) invoked from within "createhw {*}$args" (procedure "::sdk::create_hw_project" line 3) invoked from within "sdk create_hw_project -name hw_0 -hwspec build/system_top.hdf" (file "scripts/create_fsbl_project.tcl" line 5)

you may be able to work around it by preventing eclipse from using GTK3 for the Standard Widget Toolkit (SWT). Prior to running make, also set the following environment variable: 
```bash
export SWT_GTK3=0

This problem seems to affect Ubuntu 16.04LTS only.

  • Updating your local repository
     git pull
     git submodule update --init --recursive
  • Build Artifacts
     michael@HAL9000:~/devel/plutosdr-fw$ ls -AGhl build
     total 543M
     -rw-rw-r-- 1 michael   69 Mär  1 09:28 boot.bif
     -rw-rw-r-- 1 michael 443K Mär  1 09:28 boot.bin
     -rw-rw-r-- 1 michael 443K Mär  1 09:28 boot.dfu
     -rw-rw-r-- 1 michael 572K Mär  1 09:28 boot.frm
     -rw-rw-r-- 1 michael 475M Mär  1 09:28 legal-info-v0.36.tar.gz
     -rw-rw-r-- 1 michael 617K Mär  1 09:25 LICENSE.html
     -rw-rw-r-- 1 michael  11M Mär  1 09:27 pluto.dfu
     -rw-rw-r-- 1 michael  11M Mär  1 09:28 pluto.frm
     -rw-rw-r-- 1 michael   33 Mär  1 09:28 pluto.frm.md5
     -rw-rw-r-- 1 michael  11M Mär  1 09:27 pluto.itb
     -rw-rw-r-- 1 michael  20M Mär  1 09:28 plutosdr-fw-v0.36.zip
     -rw-rw-r-- 1 michael 578K Mär  1 09:28 plutosdr-jtag-bootstrap-v0.36.zip
     -rw-rw-r-- 1 michael 441K Mär  1 09:26 ps7_init.c
     -rw-rw-r-- 1 michael 442K Mär  1 09:26 ps7_init_gpl.c
     -rw-rw-r-- 1 michael 4,2K Mär  1 09:26 ps7_init_gpl.h
     -rw-rw-r-- 1 michael 3,6K Mär  1 09:26 ps7_init.h
     -rw-rw-r-- 1 michael 2,4M Mär  1 09:26 ps7_init.html
     -rw-rw-r-- 1 michael  31K Mär  1 09:26 ps7_init.tcl
     -rw-r--r-- 1 michael 5,3M Mär  1 09:25 rootfs.cpio.gz
     drwxrwxr-x 6 michael 4,0K Mär  1 09:26 sdk
     -rw-rw-r-- 1 michael 943K Mär  1 09:26 system_top.bit
     -rw-rw-r-- 1 michael 716K Mär  1 09:26 system_top.xsa
     -rwxrwxr-x 1 michael 761K Mär  1 09:28 u-boot.elf
     -rw-rw---- 1 michael 128K Mär  1 09:28 uboot-env.bin
     -rw-rw---- 1 michael 129K Mär  1 09:28 uboot-env.dfu
     -rw-rw-r-- 1 michael 7,0K Mär  1 09:28 uboot-env.txt
     -rwxrwxr-x 1 michael 4,1M Mär  1 09:24 zImage
     -rw-rw-r-- 1 michael  22K Mär  1 09:26 zynq-pluto-sdr.dtb
     -rw-rw-r-- 1 michael  22K Mär  1 09:26 zynq-pluto-sdr-revb.dtb
     -rw-rw-r-- 1 michael  23K Mär  1 09:26 zynq-pluto-sdr-revc.dtb
  • Main targets

    File Comment
    pluto.frm Main PlutoSDR firmware file used with the USB Mass Storage Device
    pluto.dfu Main PlutoSDR firmware file used in DFU mode
    boot.frm First and Second Stage Bootloader (u-boot + fsbl + uEnv) used with the USB Mass Storage Device
    boot.dfu First and Second Stage Bootloader (u-boot + fsbl) used in DFU mode
    uboot-env.dfu u-boot default environment used in DFU mode
    plutosdr-fw-vX.XX.zip ZIP archive containg all of the files above
    plutosdr-jtag-bootstrap-vX.XX.zip ZIP archive containg u-boot and Vivao TCL used for JATG bootstrapping
  • Other intermediate targets

    File Comment
    boot.bif Boot Image Format file used to generate the Boot Image
    boot.bin Final Boot Image
    pluto.frm.md5 md5sum of the pluto.frm file
    pluto.itb u-boot Flattened Image Tree
    rootfs.cpio.gz The Root Filesystem archive
    sdk Vivado/XSDK Build folder including the FSBL
    system_top.bit FPGA Bitstream (from HDF)
    system_top.hdf FPGA Hardware Description File exported by Vivado
    u-boot.elf u-boot ELF Binary
    uboot-env.bin u-boot default environment in binary format created form uboot-env.txt
    uboot-env.txt u-boot default environment in human readable text format
    zImage Compressed Linux Kernel Image
    zynq-pluto-sdr.dtb Device Tree Blob for Rev.A
    zynq-pluto-sdr-revb.dtb Device Tree Blob for Rev.B
    zynq-pluto-sdr-revc.dtb Device Tree Blob for Rev.C

plutosdr-fw's People

Contributors

aandrisa avatar af7ss avatar balister avatar bia1708 avatar ccraluca avatar commodo avatar menkueclab avatar mhennerich avatar rgetz avatar tfcollins avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

plutosdr-fw's Issues

Suggested new system variable, xo_nominal_frequency

I have noticed conflicts between programs which use "xo_correction" to mitigate the crystal oscillator errors and programs which do it themselves in their DSP software. SDR Console is an example of the latter; and sdrangel is an example of the former.

I also note that sdrangel, and perhaps others, presume that the oscillator will always be 40 MHz. This may not always be ideal. There is at least one GPSDO which includes a synthesizer on its output. It can be used as 40MHz and say 25 MHz references if desired. This is useful when using existing LNBs to access 10.0 to 10.5 GHz. However, I also have instruments which require a 10 MHz reference. Since it appears Pluto works nicely with a 10 MHz reference it would be nice to change it appropriately.

However, some may wish to use a frequency that makes LNB's work nicely with Pluto and be done with it. That frequency may not be a nice even frequency. And it would be hard for a program that sees an xo_correction value of 23.7533356 MHz to figure out that the intended frequency of an external crystal oscillator rather than GPSDO was nominally 23.753333MHz.

Finally I note that one correspondent has suggested a circuit for automatically switching between the onboard clock and a GPSDO input. These may not both be 40 MHz, either.

Putting this all together I am suggesting creating an xo_nominal_frequency system variable to store the nominal clock frequency and possibly make xo_correction be an ephemeral value. Then programs can pick up what is the intended clock frequency and store corrections as parts per million so they can do the right thing.

{^_^} Joanne DOw

review procedure for update firmware

https://wiki.analog.com/university/tools/pluto/users/firmware

"5.This will cause LED1 to blink rapidly. This means programming is taking place. Do not remove power (or USB) while the device is blinking rapidly. It does take approximately 4 minutes to properly program the device.
6.Still do not unplug things. Try to be more patient.
7.Once the device is done programming, it will re-appear as a mass storage device.
8.Now you can unplug it, and use it as normal."

This procedure description is not very accurate, because after the device is programmed, one should unplug and plug again the device in order for this to reappear as a mass storage device. If one just waits, nothing will happen.
So in my opinion steps 6 and 7 are not a true for description of the valid procedure.

Can't read build/pluto.itb.tmp: Invalid argument

I encounter the problem when build firmware with the following message:
u-boot-xlnx/tools/mkimage: Can't read build/pluto.itb.tmp: Invalid argument
11:26:05 Build Finished (took 1s.63ms)
Invoking scanner config builder on project
Building '/hw_0'
cp build/sdk/hw_0/system_top.bit build/system_top.bit
u-boot-xlnx/tools/mkimage -f scripts/pluto.its build/pluto.itb
sh: 1: dtc: not found
u-boot-xlnx/tools/mkimage: Can't read build/pluto.itb.tmp: Invalid argument
Makefile:131: recipe for target 'build/pluto.itb' failed
make: *** [build/pluto.itb] Error 255
rm linux/arch/arm/boot/dts/zynq-pluto-sdr-revc.dtb linux/arch/arm/boot/dts/zynq-pluto-sdr.dtb linux/arch/arm/boot/dts/zynq-pluto-sdr-revb.dtb

my os is : ubuntu 16.04 , vivado version is 2018.2 and the tag of plutosdr-fw is v0.31

Can anyone give some suggestion?

Trouble with executing command line arguments after ssh to pluto.local

I've been exploring cross-compiling and execution of functions from the command line
after ssh-ing into pluto.local.

In version v0.29, it does not appear to be possible to run python any longer from the command line.
Perhaps I missing something, but it seems no additional command line shell scripts run, after
download.

This was possible in earlier versions of the pluto.frm

Suggestions?

Thanks
Glen Langston

sox doesn't run anymore

Hi all, I just noticed that sox no longer works within the firmware on my pluto. I don't recall the last time I used it, but it did work previously. This is the version that is selectable in make xconfig and then built into the fw. I've done a make clean in plutosdr-fw and make distclean in buildroot, drop back in my buildroot .config file and build from scratch without any difference.

sox: error while loading shared libraries: libssp.so.0: cannot open shared object file: No such file or directory

I have never had SSP enabled in the Build options section, btw, maybe this is a new req of sox or one of its deps?

Any point in the right direction would be appreciated, thanks!

config.txt

Vivado Recommended Version

Hi all,

Has the firmware been tested with 2017.2 with Update yet? I note that only 2016.2 is listed here so would appreciate if someone can shed some light here.

Best, Chris

[Wiki] - Developers page, missing links

link: https://wiki.analog.com/university/tools/pluto/developers

PDF:
ADALM-PLUTO for Developers [Analog Devices Wiki].pdf

The following links leads to pages that are not found. These links are found in the developers link provided above. These are also highlighted in the PDF file.

  • Introduction
  • Accessing the console
  • Accessing FPGA JTAG

Other sections have no links yet.

  • Section 7

For Sections 3 and 4, the links leads to AD9361 reference designs and drivers.

buildroot failed

Hello,

I am trying to build the firmware on Ubuntu 18.10. The build fails during the buildroot phase with the following error:

CC freadahead.o
freadahead.c: In function 'freadahead':
CC fseek.o
freadahead.c:92:3: error: #error "Please port gnulib freadahead.c to your platform! Look at the definition of fflush, fread, ungetc on your system, then report this to bug-gnulib."
#error "Please port gnulib freadahead.c to your platform! Look at the definition of fflush, fread, ungetc on your system, then report this to bug-gnulib."
^~~~~
make[5]: *** [Makefile:1915: freadahead.o] Error 1
make[5]: *** Waiting for unfinished jobs....
make[5]: Leaving directory '/media/sdr/plutosdr-fw/buildroot/output/build/host-m4-1.4.18/lib'

Hit & Miss - device_persistent_keys

Maybe because I have a Pluto Revision D, but getting persistent keys working appears to be broken. After many many installs of either v0.32 or v0.34 via drag & drop or DFU, I've only seen a password being saved twice. Even on those 2 occasions device_persistent_keys returned immediately without printing a response.

file system support on Pluto

I was looking at mounting a Linux USB thumb drive, but I noticed:

CONFIG_BLK_DEBUG_FS=y
CONFIG_SCSI_PROC_FS=y
CONFIG_USB_F_FS=y
CONFIG_USB_CONFIGFS_F_FS=y
CONFIG_FS_POSIX_ACL=y
CONFIG_FSNOTIFY=y
CONFIG_FAT_FS=y
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y
CONFIG_PROC_FS=y
CONFIG_CONFIGFS_FS=y
CONFIG_DEBUG_FS=y

It would be nice to support some native Linux file systems, to allow easier switch_root

# CONFIG_EXT2_FS is not set
# CONFIG_EXT3_FS is not set
# CONFIG_EXT4_FS is not set
# CONFIG_BTRFS_FS is not set

? I'm not sure how much bigger this will make things (just pick for the default, no need for all).

-Robin

Pluto USB controller performance

I did some testing with my Pluto running the v0.34 firmware, and I noticed that, no matter the configuration (USB host with RTL8153 network adapter, USB device with any of the network gadgets or the IIO USB backend), the USB controller seems to not be able to push more than 20-25MB/s of data to the host, or pull around 17-20MB/s from the host.

CPU usage on the Pluto seems to be reasonable, less than 50%.
That same RTL8153 adapter can do more than 40MB/s for both directions (one at a time, of course) on an Intel USB host controller (on a 480Mbps "high speed" port).

I've been wondering, is this a hardware limitation of the USB controller inside the Zynq, or could it be a driver problem?
Given the CPU usage isn't that high, this might point towards a hardware limitation of the USB IP implemented in the Zynq. I tried to do some research, but found no performance tests.

If this is not a hardware limitation, then it might be worth investigating for the extra performance.

Pluto looks dead after changing wifi settings in config.txt

Hi,

I changed my wifi password in config.txt, blinking LED after that and not booting up after that. LED1 is just dim constant. Not recognise by USB or nothing.

P.S. I had another Pluto, I tried that USB with that and it booted up fine. I tried different USB cable with the faulty Pluto but it is same thing with that. Is there any way I can fix that ?

I checked out this link https://wiki.analog.com/university/tools/pluto/users/firmware#dfu_update as suggested but couldn't find DFU capable USB device.

Here is my lsusb -t output, connected Pluto with system,

medit@medit-Vostro-230:~$ lsusb
Bus 001 Device 003: ID 03f0:4f17 Hewlett-Packard Color LaserJet CM1312 MFP
Bus 001 Device 002: ID 058f:6362 Alcor Micro Corp. Flash Card Reader/Writer
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 002: ID 045e:0750 Microsoft Corp. Wired Keyboard 600
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 002: ID 046d:c018 Logitech, Inc. Optical Wheel Mouse
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
medit@medit-Vostro-230:~$ lsusb | grep 0456
medit@medit-Vostro-230:~$ lsusb -t
/:  Bus 05.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
    |__ Port 2: Dev 2, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
    |__ Port 2: Dev 2, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
    |__ Port 2: Dev 3, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/8p, 480M
    |__ Port 2: Dev 2, If 0, Class=Mass Storage, Driver=usb-storage

Also I didn't get any dmesgs if i connect or disconnect my Pluto.

Does this means Pluto is dead ? Is there any other workaround this ?

Pluto

build fails because fsbl.elf is searched in wrong dir

Part of the error log looks like this:

....
Building target: fsbl.elf
Invoking: ARM v7 gcc linker
arm-none-eabi-gcc -mcpu=cortex-a9 -mfpu=vfpv3 -mfloat-abi=hard -Wl,-build-id=none -specs=Xilinx.spec -Wl,-T -Wl,../src/lscript.ld -L../../fsbl_bsp/ps7_cortexa9_0/lib -o "fsbl.elf"  ./src/fsbl_handoff.o ./src/fsbl_hooks.o ./src/image_mover.o ./src/main.o ./src/md5.o ./src/nand.o ./src/nor.o ./src/pcap.o ./src/ps7_init.o ./src/qspi.o ./src/rsa.o ./src/sd.o   -Wl,--start-group,-lxil,-lgcc,-lc,--end-group -Wl,--start-group,-lxilffs,-lxil,-lgcc,-lc,--end-group -Wl,--start-group,-lrsa,-lxil,-lgcc,-lc,--end-group
Finished building target: fsbl.elf
 
Invoking: ARM v7 Print Size
arm-none-eabi-size fsbl.elf  |tee "fsbl.elf.size"
   text    data     bss     dec     hex filename
  55184   10532   71816  137532   2193c fsbl.elf
Finished building: fsbl.elf.size
 
make[1]: Leaving directory '/mnt/live/memory/data/Work/plutosdr-fw/build/sdk/fsbl/Debug'

13:38:02 Build Finished (took 1s.170ms)

Invoking scanner config builder on project 
Building '/hw_0'
make -j2 -C u-boot-xlnx ARCH=arm zynq_pluto_defconfig
make[1]: Entering directory '/mnt/live/memory/data/Work/plutosdr-fw/u-boot-xlnx'
#
# configuration written to .config
#
make[1]: Leaving directory '/mnt/live/memory/data/Work/plutosdr-fw/u-boot-xlnx'
make -j2 -C u-boot-xlnx ARCH=arm CROSS_COMPILE=arm-xilinx-linux-gnueabi- UBOOTVERSION="PlutoSDR v0.20-PlutoSDR"
make[1]: Entering directory '/mnt/live/memory/data/Work/plutosdr-fw/u-boot-xlnx'
scripts/kconfig/conf  --silentoldconfig Kconfig
  CHK     include/config.h
  GEN     include/autoconf.mk
  GEN     include/autoconf.mk.dep
  GEN     spl/include/autoconf.mk
  CHK     include/config/uboot.release
  CHK     include/generated/timestamp_autogenerated.h
  UPD     include/generated/timestamp_autogenerated.h
  CHK     include/generated/version_autogenerated.h
  CHK     include/generated/generic-asm-offsets.h
  CHK     include/generated/asm-offsets.h
  HOSTCC  tools/mkenvimage.o
  HOSTCC  tools/fit_image.o
  HOSTCC  tools/image-host.o
  HOSTCC  tools/dumpimage.o
  HOSTCC  tools/mkimage.o
  HOSTLD  tools/fit_info
  HOSTLD  tools/fit_check_sign
  HOSTLD  tools/mkenvimage
  HOSTLD  tools/dumpimage
  HOSTLD  tools/mkimage
  CC      cmd/version.o
  CC      common/main.o
  LD      cmd/built-in.o
  CC      common/board_f.o
  LD      common/built-in.o
  CC      drivers/usb/gadget/f_thor.o
  LD      drivers/usb/gadget/built-in.o
  CC      lib/display_options.o
  LD      lib/built-in.o
  CC      spl/common/spl/spl.o
  LD      spl/common/spl/built-in.o
  LD      u-boot
  OBJCOPY u-boot.srec
  CC      spl/lib/display_options.o
  OBJCOPY u-boot-nodtb.bin
  SYM     u-boot.sym
  LD      spl/lib/built-in.o
  COPY    u-boot.bin
  LD      spl/u-boot-spl
  MKIMAGE u-boot.img
  OBJCOPY spl/u-boot-spl-nodtb.bin
  COPY    spl/u-boot-spl.bin
  MKIMAGE spl/boot.bin
make[1]: Leaving directory '/mnt/live/memory/data/Work/plutosdr-fw/u-boot-xlnx'
cp u-boot-xlnx/u-boot build/u-boot.elf
bash -c "source /mnt/sda4/Work/Xilinx/Vivado/2016.4/settings64.sh && bootgen -image build/boot.bif -w -o build/boot.bin"
[ERROR]  : Can't read file - build/sdk/fsbl/Release/fsbl.elf
make: *** [Makefile:96: build/boot.bin] Error 1

and the error seems obvious. It is looking for the fsbl.elf file in the build/sdk/fsbl/Release/ but instead that file is built in build/sdk/fsbl/Debug/.

Just doing something like ln -s Debug Release in build/sdk/fsbl/ fixes the issue right away and the build completes successfully.

I guess a good clue is that it said at some point it states "Build of configuration Debug for project fsbl" but I am not sure where that comes from.

Nevertheless, this has to be fixed somewhere so we don't have to do workarounds to build.

build error :Incorrect selection of kernel headers: expected 4.14.x, got 4.9.x

hello ,The errors I encountered in compiling:Incorrect selection of kernel headers: expected 4.14.x, got 4.9.x.
I configured the environment variables according to the information in readme.What went wrong is buildroot.

OS:ubuntu16.04.6
vivado :2017.4
plutosdr-fw tag:v0.32

doc/COPYING.LGPL: OK (sha256: 5decad7e58d90d44335bf2f45ce27563bd911065c6a1a02dfa7647c4efee75c8)

host-fakeroot 1.20.2 Collecting legal info
COPYING: OK (sha256: fc82ca8b6fdb18d4e3e85cfd8ab58d1bcd3f1b29abe782895abd91d64763f8e7)
host-makedevs Collecting legal info
WARNING: the Buildroot source code has not been saved
Legal info produced in /home/liuxf/work/plutosdr-fw/buildroot/output/legal-info
make[1]: Leaving directory '/home/liuxf/work/plutosdr-fw/buildroot'
scripts/legal_info_html.sh "PlutoSDR" "/home/liuxf/work/plutosdr-fw/buildroot/board/pluto/VERSIONS"
cp build/LICENSE.html buildroot/board/pluto/msd/LICENSE.html
make -C buildroot TOOLCHAIN_EXTERNAL_INSTALL_DIR= ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- BUSYBOX_CONFIG_FILE=/home/liuxf/work/plutosdr-fw/buildroot/board/pluto/busybox-1.25.0.config all
make[1]: Entering directory '/home/liuxf/work/plutosdr-fw/buildroot'
toolchain-external-custom Configuring
Incorrect selection of kernel headers: expected 4.14.x, got 4.9.x
package/pkg-generic.mk:254: recipe for target '/home/liuxf/work/plutosdr-fw/buildroot/output/build/toolchain-external-custom/.stamp_configured' failed
make[2]: *** [/home/liuxf/work/plutosdr-fw/buildroot/output/build/toolchain-external-custom/.stamp_configured] Error 1
Makefile:84: recipe for target '_all' failed
make[1]: *** [_all] Error 2
make[1]: Leaving directory '/home/liuxf/work/plutosdr-fw/buildroot'
Makefile:91: recipe for target 'buildroot/output/images/rootfs.cpio.gz' failed
make: *** [buildroot/output/images/rootfs.cpio.gz] Error 2

unable to create iio buffer: Input/output error

When I first started to test DAC Buffer Output on Pluto, I got 2 times this error: "Unable to create iio buffer: Input/output error" after pressing load sinewave_0.x.mat.
But after that I still tried for more than an hour to reproduce this and I couldn't make it happen anymore.
This happened only in slow attack gain control.
I use Pluto model revB, with Windows7 on my PC, firmware v0.21.

Save default ssh key to flash

A few people have asked to save the ssh host host key to the flash (via fw_setenv) so that it is recovered, and which allows it not to be so annoying when plugging in/out devices...

making root password easier to change

A couple people have asked for a easy way to change/update the root password without having to recompile the entire image.

Saving ROOTPASSWORD with fw_setenv, and using that might be an easy way?

Getting stuck at "Reading makefile 'Makefile'..."

Hello,
I have followed the build Instructions in the readme:

export CROSS_COMPILE=arm-linux-gnueabihf-
export PATH=$PATH:/home/ottega/bin/Xilinx/SDK/2019.1/gnu/aarch32/lin/gcc-arm-linux-gnueabi/bin
export VIVADO_SETTINGS=/home/ottega/bin/Xilinx/Vivado/2019.1/settings64.sh
make -d

but it gets struck at:

GNU Make 4.3
Built for x86_64-pc-linux-gnu
Copyright (C) 1988-2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Reading makefiles...
Reading makefile 'Makefile'...

I have waited for at least 1h but it was still stuck.

Do you have any idea how to solve the issue?

Best,
Ottega

legal_info_html.sh goes into infinite loop for http code 302

For dropbear I get this http 302

curl -IsS https://matt.ucc.asn.au/dropbear/releases
result = HTTP/2 302
date: Sat, 06 Aug 2022 12:42:01 GMT
content-length: 0
location: https://matt.ucc.asn.au/dropbear/releases
cf-cache-status: DYNAMIC
expect-ct: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
report-to: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=FawCCY%2B6QQRbsu%2BKZu3XdegGmzThjBiJ3GuAxExzd7hBjkng%2FxBvPpLQ4nY%2BrZdZVbQAuUBVw%2FbIUymxUDcwF2lq8x4wzZcLbJ%2BXa1LP27asTMtIVcOSQRYS2hRPW2QuYg%3D%3D"}],"group":"cf-nel","max_age":604800}
nel: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
server: cloudflare
cf-ray: 7367d999eb8dbb4d-FRA

the relay location is the same as the original location, thus its just an infinite loop and the script never finishes. I have added a retry limit to fix this: https://github.com/catkira/plutosdr-fw/commit/301778c4a15b35597bbdfbced3307bdc9518d1a9

I have other stuff too in my master branch, therefore its easiest if You cherry-pick this commit in case You want to merge it.

Submodules can't be shallowed cloned

Submodules u-boot-xlnx, buildroot and linux currently refer to commits which are not tagged or branch HEAD.

This makes impossible for git submodule to do a shallow clone, which greatly increases download times and disk usage.

hdl currently refers to a commit tagged, so that one is fine.

The disk space currently used after a full clone is 3.1GB and a shallow clone would be 1.4GB

For releases please tag the commits used on the submodules and push them to github. The tag name is not relevant, any random name is fine, but could also be for eg. "for-plutosdr-fw-v0.29". This is just to make the git protocol expose this commits for a outside shallow clone.

Cannot enable extended range with fw 0.32

Hi,

I couldn't get the extended range to work in FW 0.32 using the
# fw_setenv attr_name compatible
# fw_setenv attr_val ad9364

https://wiki.analog.com/university/tools/pluto/users/customizing

Downgrading to 0.31 again, and then this extension works again.

Seems to be others observing similar issue:
https://www.reddit.com/r/RTLSDR/comments/htauqc/plutosdr_new_firmware_032_disables_frequency_hack/

Is the frequency extension supposed to work also under 0.32?

Can't not change external reference clock for pluto

In our design we need to change the external reference clock for pluto. We follow the instructions of this wiki page https://wiki.analog.com/university/tools/pluto/devs/booting?s[]=reference&s[]=clock&s[]=pluto . Unlucky, it doesn't seem work anyway. We can only capture the right data when external reference clock is 40MHz。

Here is the modification we did:

  1. In device tree file zynq-pluto-sdr.dtsi:

clocks {
ad9364_clkin: clock@0 {
#clock-cells = <0>;
compatible = "adjustable-clock";
clock-frequency = <20000000>; /*modified here /
clock-accuracy = <200000>; /
200 ppm (ppb) */
clock-output-names = "ad9364_ext_refclk";
};

and

&spi0 {
status = "okay";
/....../
/* add following 2 scripts*/
adi,ad936x_skip_ext_refclk = <1>;
ad936x_skip_ext_refclk = <1>;

  1. In file ad9361.c we added some debug code, such as:

static int ad9361_probe(struct spi_device *spi)
{
struct iio_dev *indio_dev;
struct ad9361_rf_phy_state *st;
struct ad9361_rf_phy *phy;
struct clk *clk = NULL;
int ret, rev;

dev_info(&spi->dev, "%s : enter (%s)", __func__,
	 spi_get_device_id(spi)->name);

clk = devm_clk_get(&spi->dev, NULL);

dev_info(&spi->dev, "%s : Get clock freq from dec: %d", __func__, clk_get_rate(clk)); /* add debug infor*/
if (IS_ERR(clk)) {
	return -EPROBE_DEFER;
}

After these modification go to directory /pluto-fw and run command make
When everything done, copied pluto.frm file to usb mass storage device, rejected and updated the firmware.
What we found was(use dmesg command in console):

ad9361 spi0.0: ad9361_probe : enter (ad9364)
ad9361 spi0.0: ad9361_probe : Get clock freq from dec: 39999785
ad9361 spi0.0: ad9361_probe : Phy freq clk: 39999785
ad9361 spi0.0: ad9361_setup: spi clock is 39999785
ad9361 spi0.0: ad9361_setup: default spi clock is 39999785
ad9361 spi0.0: ad9361_setup: Got spi clock is 39999785
ad9361 spi0.0: Calibration TIMEOUT (0x5E, 0x80)

Still the reference clock is 40MHz.

The we typed these commands via console:

fw_setenv ad936x_ext_refclk “<20000000>“
fw_setenv xo_correction 19999764

reboot the device, nothing new happened!

Did we miss something important ? Can anyone give some suggestion, thanks in advance.

Add libgpiod to rootfs

Adding libgpiod including gpioset, gpioget etc. would allow the ambitious user to use the unused MIOs on the PCB as software-controllable GPIOs.

adm1177 missing from fw 0.33

When using the fw 0.32 you can use the adm1177 for instance in the libiio osc program to measure and show the usb V and I

When fw 0.33 is loaded the adm1177 is missing and therefore the useful USB data is missing.

Is this an error/bug or on purpose?

Thanks

adapt setup_env script to Vitis

@rgetz the newer Vivado/Vitis versions use /tools/Xilinx as prefix. I think the setup_env script should support the old /opt/Xilinx and the new /tools/Xilinx for a transition period. Will You update this script or should users setup up their environment manually as described in README.md ?

'/etc/init.d/S41network stop' seems broken

looks like udhcpd doesn't put the the right pid in the run file

cat /run/udhcpd.pid

825

ps aux | grep dhcp

826 root /usr/sbin/udhcpd /etc/udhcpd.conf

Which causes the stop to fail...

ps aux | grep dhcp

826 root /usr/sbin/udhcpd /etc/udhcpd.conf
976 root grep dhcp

/etc/init.d/S41 stop

-sh: /etc/init.d/S41: not found

/etc/init.d/S41network stop

Stopping dhcpd Daemon & httpd Server: FAIL

ps aux | grep dhcp

826 root /usr/sbin/udhcpd /etc/udhcpd.conf
1028 root grep dhcp

/etc/init.d/S41network restart

Stopping dhcpd Daemon & httpd Server: killall: httpd: no process killed
FAIL
Starting dhcpd Daemon & httpd Server: OK

ps aux | grep dhcp

826 root /usr/sbin/udhcpd /etc/udhcpd.conf
1072 root /usr/sbin/udhcpd /etc/udhcpd.conf
1083 root grep dhcp

v0.28 of firmware is overwritten with v0.29

Hello

I trying to debug a PlutoSDR issue with running retrogram-plutosdr, it was suggested that I should
try an earlier firmware version. I've now tried to twice to download version v0.28
and install it using dfu-util. I find that each time, after the reboot, that v0.29 is reported
to be loaded after ssh-ing into pluto.local.

So, my guess is that the pluto.dfu version was overwritten with v0.29 in the .zip file.

https://github.com/analogdevicesinc/plutosdr-fw/releases/tag/v0.28

I've been using the link above to get the versions.

I was able to get v0.27 successfully.

Could a v0.28 zip file be retrieved and put on the web?

Thanks

Glen

*** Error in `passwd': free(): invalid pointer: 0x000c02bb ***

When I try to change the root password in pluto, I get an error....

Welcome to:
______ _       _        _________________
| ___ \ |     | |      /  ___|  _  \ ___ \
| |_/ / |_   _| |_ ___ \ `--.| | | | |_/ /
|  __/| | | | | __/ _ \ `--. \ | | |    /
| |   | | |_| | || (_) /\__/ / |/ /| |\ \
\_|   |_|\__,_|\__\___/\____/|___/ \_| \_|

v0.31
http://wiki.analog.com/university/tools/pluto

# passwd
Changing password for root
New password: 
Retype password: 
*** Error in `passwd': free(): invalid pointer: 0x000c02bb ***
Aborted

buildroot fails at host-lzip

Any pointers would be great.

clean clone from this am.

>>>   Buildroot 2018.02.1-g325c7b2ddd Collecting legal info
COPYING: OK (sha256: 9755181e27175cb3510b4da8629caa406fb355a19aa8e7d55f06bf8ab33323c4)
/usr/bin/make -j1 O=/home/rgetz/github/plutosdr-fw/buildroot/output HOSTCC="/usr/bin/gcc" HOSTCXX="/usr/bin/g++" silentoldconfig
make[2]: Entering directory '/home/rgetz/github/plutosdr-fw/buildroot'
make[2]: Leaving directory '/home/rgetz/github/plutosdr-fw/buildroot'
>>> host-tar 1.29 Collecting legal info
ERROR: No hash found for COPYING
>>> host-lzip 1.19 Downloading
--2019-05-13 14:38:36--  http://download.savannah.gnu.org/releases/lzip/lzip-1.19.tar.gz
Resolving download.savannah.gnu.org (download.savannah.gnu.org)... 209.51.188.200, 2001:470:142:5::200
Connecting to download.savannah.gnu.org (download.savannah.gnu.org)|209.51.188.200|:80... connected.
HTTP request sent, awaiting response... 302 Moved Temporarily
Location: http://gnu.mirrors.pair.com/savannah/savannah/lzip/lzip-1.19.tar.gz [following]
--2019-05-13 14:38:36--  http://gnu.mirrors.pair.com/savannah/savannah/lzip/lzip-1.19.tar.gz
Resolving gnu.mirrors.pair.com (gnu.mirrors.pair.com)... 216.92.2.134
Connecting to gnu.mirrors.pair.com (gnu.mirrors.pair.com)|216.92.2.134|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 100277 (98K) [application/x-gzip]
Saving to: ‘/home/rgetz/github/plutosdr-fw/buildroot/output/build/.lzip-1.19.tar.gz.cDb0Jf/output’

/home/rgetz/github/plutosdr- 100%[==============================================>]  97.93K  --.-KB/s    in 0.07s   

2019-05-13 14:38:36 (1.39 MB/s) - ‘/home/rgetz/github/plutosdr-fw/buildroot/output/build/.lzip-1.19.tar.gz.cDb0Jf/output’ saved [100277/100277]

lzip-1.19.tar.gz: OK (sha256: ffadc4f56be1bc0d3ae155ec4527bd003133bdc703a753b2cc683f610e646ba9)
>>> host-lzip 1.19 Extracting
gzip -d -c /home/rgetz/github/plutosdr-fw/buildroot/dl/lzip-1.19.tar.gz | /home/rgetz/github/plutosdr-fw/buildroot/output/host/bin/tar --strip-components=1 -C /home/rgetz/github/plutosdr-fw/buildroot/output/build/host-lzip-1.19   -xf -
/bin/bash: /home/rgetz/github/plutosdr-fw/buildroot/output/host/bin/tar: No such file or directory
make[1]: *** [package/pkg-generic.mk:158: /home/rgetz/github/plutosdr-fw/buildroot/output/build/host-lzip-1.19/.stamp_extracted] Error 127
make[1]: Leaving directory '/home/rgetz/github/plutosdr-fw/buildroot'
make: *** [Makefile:94: buildroot/output/images/rootfs.cpio.gz] Error 2
rgetz@brain:~/Downloads$ tree ~/github/plutosdr-fw/buildroot/output/host/
/home/rgetz/github/plutosdr-fw/buildroot/output/host/
├── arm-buildroot-linux-gnueabihf
│   └── sysroot
├── lib
├── lib64 -> lib
└── usr -> .

5 directories, 0 files

Issue with buildroot busybox "error in paths"

make -C buildroot TOOLCHAIN_EXTERNAL_INSTALL_DIR= ARCH=arm CROSS_COMPILE=arm-xilinx-linux-gnueabi- BUSYBOX_CONFIG_FILE=/home/michael/devel/pluto/plutosdr-fw/buildroot/board/pluto/busybox-1.25.0.config all
make: Entering directory '/home/black/plutosdr-fw/buildroot'
for f in /home/michael/devel/pluto/plutosdr-fw/buildroot/board/pluto/busybox-1.25.0.config ; do if [ ! -f "${f}" ]; then printf "Kconfig fragment '%s' for '%s' does not exist\n" "${f}" "busybox"; exit 1; fi; done
Kconfig fragment '/home/michael/devel/pluto/plutosdr-fw/buildroot/board/pluto/busybox-1.25.0.config' for 'busybox' does not exist
make[1]: *** [package/busybox/busybox.mk:387: /home/michael/devel/pluto/plutosdr-fw/buildroot/board/pluto/busybox-1.25.0.config] Error 1
make: *** [Makefile:84: _all] Error 2
make: Leaving directory '/home/black/plutosdr-fw/buildroot'

I tried to search for "/home/michael/devel" by "grep -ir " to know where it come from with no luck.
All my sources is up to date and git status gives me every thing right and submodules also.

also try to understand :
https://buildroot.org/downloads/manual/manual.html#_infrastructure_for_packages_using_kconfig_for_configuration_files

Thanks in advance

build rootfs failed

rm -f zImage
rm -rf build/*
make -C linux ARCH=arm zynq_pluto_defconfig
make[1]: warning: jobserver unavailable: using -j1. Add '+' to parent make rule.
make[1]: Entering directory '/home/sunrise/plutosdr/plutosdr-fw/linux'

configuration written to .config

make[1]: Leaving directory '/home/sunrise/plutosdr/plutosdr-fw/linux'
make -C linux -j 6 ARCH=arm CROSS_COMPILE=arm-xilinx-linux-gnueabi- zImage UIMAGE_LOADADDR=0x8000
make[1]: warning: -jN forced in submake: disabling jobserver mode.
make[1]: Entering directory '/home/sunrise/plutosdr/plutosdr-fw/linux'
scripts/kconfig/conf --silentoldconfig Kconfig
CHK include/config/kernel.release
CHK include/generated/uapi/linux/version.h
CHK include/generated/utsrelease.h
CHK include/generated/timeconst.h
CHK include/generated/bounds.h
CHK include/generated/asm-offsets.h
CALL scripts/checksyscalls.sh
CHK include/generated/compile.h
GZIP kernel/config_data.gz
CHK kernel/config_data.h
Kernel: arch/arm/boot/Image is ready
Kernel: arch/arm/boot/zImage is ready
make[1]: Leaving directory '/home/sunrise/plutosdr/plutosdr-fw/linux'
cp linux/arch/arm/boot/zImage build/zImage
make -C buildroot ARCH=arm zynq_pluto_defconfig
make[1]: warning: jobserver unavailable: using -j1. Add '+' to parent make rule.
make[1]: Entering directory '/home/sunrise/plutosdr/plutosdr-fw/buildroot'

configuration written to /home/sunrise/plutosdr/plutosdr-fw/buildroot/.config

make[1]: Leaving directory '/home/sunrise/plutosdr/plutosdr-fw/buildroot'
make -C buildroot legal-info
make[1]: warning: jobserver unavailable: using -j1. Add '+' to parent make rule.
make[1]: Entering directory '/home/sunrise/plutosdr/plutosdr-fw/buildroot'

Buildroot 2018.02.1-g04dceb2376 Collecting legal info
COPYING: OK (sha256: 9755181e27175cb3510b4da8629caa406fb355a19aa8e7d55f06bf8ab33323c4)
/usr/bin/make -j1 O=/home/sunrise/plutosdr/plutosdr-fw/buildroot/output HOSTCC="/usr/bin/gcc" HOSTCXX="/usr/bin/g++" silentoldconfig
make[2]: Entering directory '/home/sunrise/plutosdr/plutosdr-fw/buildroot'
make[2]: Leaving directory '/home/sunrise/plutosdr/plutosdr-fw/buildroot'
host-lzip 1.19 Collecting legal info
ERROR: No hash found for COPYING

You seem to have the current working directory in your
LD_LIBRARY_PATH environment variable. This doesn't work.
support/dependencies/dependencies.mk:25: recipe for target 'core-dependencies' failed
make[1]: *** [core-dependencies] Error 1
make[1]: Leaving directory '/home/sunrise/plutosdr/plutosdr-fw/buildroot'
Makefile:91: recipe for target 'buildroot/output/images/rootfs.cpio.gz' failed
make: *** [buildroot/output/images/rootfs.cpio.gz] Error 2

v0.32 and sdrangel on windows/linux -- rx audio stutter; tx not tested.

I have recently installed sdrangel 4.14.20 on windows and compiled from source on linux the same version.
I also updated the f/w to 0.32. Flashing takes pretty long compared to 0.31 (as in, maybe 4x longer?)

Anyways, 0.32 gives a stuttering sound ; reverting back to 0.31 gives a smooth sound.

Not sure if this is sdrangel related or v0.32 related or both.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.