Giter Club home page Giter Club logo

Comments (29)

pavel-demin avatar pavel-demin commented on June 8, 2024

you only get out of this error by reflashing the SD card

I didn't realize that nginx writes a lot of logs to /var/log/redpitaya_nginx/debug.log. Could it be that the SD card gets full and it somehow slows down the SDR server running on Red Pitaya?

from red-pitaya-notes.

on3vna avatar on3vna commented on June 8, 2024

root@red-pitaya:# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/root 1000568 728496 204028 79% /
devtmpfs 230276 0 230276 0% /dev
tmpfs 238608 0 238608 0% /dev/shm
tmpfs 238608 4400 234208 2% /run
tmpfs 5120 4 5116 1% /run/lock
tmpfs 238608 0 238608 0% /sys/fs/cgroup
/dev/mmcblk0p1 11222 5608 5614 50% /boot
root@red-pitaya:
#

from red-pitaya-notes.

on3vna avatar on3vna commented on June 8, 2024

root@red-pitaya:/# fdisk -l

Disk /dev/ram0: 16 MiB, 16777216 bytes, 32768 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/ram1: 16 MiB, 16777216 bytes, 32768 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/ram2: 16 MiB, 16777216 bytes, 32768 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/ram3: 16 MiB, 16777216 bytes, 32768 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/ram4: 16 MiB, 16777216 bytes, 32768 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/ram5: 16 MiB, 16777216 bytes, 32768 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/ram6: 16 MiB, 16777216 bytes, 32768 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/ram7: 16 MiB, 16777216 bytes, 32768 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/ram8: 16 MiB, 16777216 bytes, 32768 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/ram9: 16 MiB, 16777216 bytes, 32768 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/ram10: 16 MiB, 16777216 bytes, 32768 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/ram11: 16 MiB, 16777216 bytes, 32768 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/ram12: 16 MiB, 16777216 bytes, 32768 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/ram13: 16 MiB, 16777216 bytes, 32768 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/ram14: 16 MiB, 16777216 bytes, 32768 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/ram15: 16 MiB, 16777216 bytes, 32768 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/mmcblk0: 7.4 GiB, 7948206080 bytes, 15523840 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x6f7fd5bb

Device Boot Start End Sectors Size Id Type
/dev/mmcblk0p1 8192 30719 22528 11M e W95 FAT16 (LBA)
/dev/mmcblk0p2 30720 2097151 2066432 1009M 83 Linux

root@red-pitaya:/#

from red-pitaya-notes.

pavel-demin avatar pavel-demin commented on June 8, 2024
root@red-pitaya:~# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/root 1000568 728496 204028 79% /

The SD card isn't full. So, it should be something else.

from red-pitaya-notes.

on3vna avatar on3vna commented on June 8, 2024

Pavel,

Here a trace on the ALSA when starting up HPSDR on the RED PITAYA and then starting up HPSDR pc:

There you will see pop up:
read(0, "\372\5\372\5\367\272\367\272\367y\367y\371\4\371\4\373\244\373\244\376|\376|\0\323\0\323\2L\2L"..., 4096) = 4096
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(3, SNDRV_TIMER_IOCTL_STOP, 0x54a1) = 0
clock_gettime(CLOCK_MONOTONIC, {986, 326250127}) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
clock_gettime(CLOCK_MONOTONIC, {986, 326547410}) = 0
clock_gettime(CLOCK_MONOTONIC, {986, 326707030}) = 0
write(2, "underrun!!! (at least 0.457 ms l"..., 37) = 37

Starting HPSDR transceiver server.
2016/07/08 15:06:43 [notice] 1593#0: signal 17 (SIGCHLD) received
2016/07/08 15:06:43 [info] 1593#0: waitpid() failed (10: No child processes)
Application loaded succesfully!Playing raw data 'stdin' : Signed 16 bit Big Endian, Rate 48000 Hz, Stereo
underrun!!! (at least 0.544 ms long)
underrun!!! (at least 0.457 ms long)
underrun!!! (at least 0.538 ms long)
underrun!!! (at least 0.872 ms long)
underrun!!! (at least 0.802 ms long)
underrun!!! (at least 0.489 ms long)
underrun!!! (at least 0.533 ms long)
underrun!!! (at least 0.675 ms long)
underrun!!! (at least 0.393 ms long)
underrun!!! (at least 0.516 ms long)
underrun!!! (at least 0.524 ms long)
underrun!!! (at least 0.387 ms long)

root 11473 1 1 15:06 ? 00:00:00 aplay --format=S16_BE --channels
root 11475 1719 0 15:06 ttyPS0 00:00:00 ps -ef
root@red-pitaya:# strace -p 11473
Process 11473 attached
read(0, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 24) = 24
read(0, "\0\0", 2) = 2
write(2, "Playing raw data 'stdin' : ", 27) = 27
write(2, "Signed 16 bit Big Endian, ", 26) = 26
write(2, "Rate 48000 Hz, ", 15) = 15
write(2, "Stereo", 6) = 6
write(2, "\n", 1) = 1
brk(0x6e000) = 0x6e000
ioctl(3, SNDRV_TIMER_IOCTL_PARAMS or TIOCSTI, 0xbeaa2638) = 0
read(0, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4070) = 4070
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
read(0, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
read(0, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
read(0, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
read(0, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
read(0, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
read(0, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
read(0, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
read(0, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
read(0, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
read(0, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
read(0, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
read(0, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
read(0, "\374t\374t\377\262\377\262\3d\3d\6\307\6\307\t\30\t\30\t\310\t\310\10\252\10\252\6\5\6\5"..., 4096) = 4096
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
read(0, "\361\367\361\367\362\260\362\260\366R\366R\374^\374^\3\216\3\216\n+\n+\16\204\16\204\17p\17p"..., 4096) = 4096
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
read(0, "\3711\3711\366\247\366\247\365\6\365\6\363\361\363\361\363S\363S\363v\363v\364\317\364\317\367\255\367\255"..., 4096) = 4096
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(3, SNDRV_TIMER_IOCTL_START, 0x54a0) = 0
semop(65536, {{0, 0, 0}, {0, 1, SEM_UNDO}}, 2) = 0
semop(65536, {{0, -1, SEM_UNDO|IPC_NOWAIT}}, 1) = 0
clock_gettime(CLOCK_MONOTONIC, {984, 513555037}) = 0
read(0, "\375:\375:\370O\370O\364\313\364\313\363
\363~\364\204\364\204\367O\367O\372\344\372\344\376.\376."..., 4096) = 4096
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
poll([{fd=3, events=POLLIN|POLLERR|POLLNVAL}], 1, -1) = 1 ([{fd=3, revents=POLLIN}])
semop(65536, {{0, 0, 0}, {0, 1, SEM_UNDO}}, 2) = 0
semop(65536, {{0, -1, SEM_UNDO|IPC_NOWAIT}}, 1) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
read(3, "\6\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\3\0\0\0\330\3\0\0h\350l\36\0\0\0\0"..., 64) = 48
read(3, 0xbeaa29a8, 64) = -1 EAGAIN (Resource temporarily unavailable)
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
poll([{fd=3, events=POLLIN|POLLERR|POLLNVAL}], 1, -1) = 1 ([{fd=3, revents=POLLIN}])
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
semop(65536, {{0, 0, 0}, {0, 1, SEM_UNDO}}, 2) = 0
semop(65536, {{0, -1, SEM_UNDO|IPC_NOWAIT}}, 1) = 0
read(3, "\1\0\0\0\330\3\0\0\344B\301\37\1\0\0\0", 64) = 16
read(0, "\t\3\t\3\v\332\v\332\16}\16}\20E\20E\20\216\20\216\16\337\16\337\v\n\v\n\5T\5T"..., 4096) = 4096
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
poll([{fd=3, events=POLLIN|POLLERR|POLLNVAL}], 1, -1) = 1 ([{fd=3, revents=POLLIN}])
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
semop(65536, {{0, 0, 0}, {0, 1, SEM_UNDO}}, 2) = 0
semop(65536, {{0, -1, SEM_UNDO|IPC_NOWAIT}}, 1) = 0
read(3, "\1\0\0\0\330\3\0\0\372\253\1!\1\0\0\0", 64) = 16
read(0, "\376\312\376\312\2\265\2\265\6+\6+\10\231\10\231\t\231\t\231\t\16\t\16\0079\0079\4\253\4\253"..., 4096) = 4096
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
poll([{fd=3, events=POLLIN|POLLERR|POLLNVAL}], 1, -1) = 1 ([{fd=3, revents=POLLIN}])
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
semop(65536, {{0, 0, 0}, {0, 1, SEM_UNDO}}, 2) = 0
semop(65536, {{0, -1, SEM_UNDO|IPC_NOWAIT}}, 1) = 0
read(3, "\1\0\0\0\330\3\0\0i\21B"\1\0\0\0", 64) = 16
read(0, "\3\0\3\0\4\f\4\f\4\6\4\6\3\212\3\212\3.\3.\3.\3.\3X\3X\3#\3#"..., 4096) = 4096
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
semop(65536, {{0, 0, 0}, {0, 1, SEM_UNDO}}, 2) = 0
semop(65536, {{0, -1, SEM_UNDO|IPC_NOWAIT}}, 1) = 0
read(0, "\3\f\3\f\0\251\0\251\376W\376W\374f\374f\373\n\373\n\372H\372H\371\363\371\363\371\273\371\273"..., 4096) = 4096
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
semop(65536, {{0, 0, 0}, {0, 1, SEM_UNDO}}, 2) = 0
semop(65536, {{0, -1, SEM_UNDO|IPC_NOWAIT}}, 1) = 0
read(0, "\365G\365G\370G\370G\375\326\375\326\3\377\3\377\10\257\10\257\n\n\10\202\10\202\3\314\3\314"..., 4096) = 4096
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
semop(65536, {{0, 0, 0}, {0, 1, SEM_UNDO}}, 2) = 0
semop(65536, {{0, -1, SEM_UNDO|IPC_NOWAIT}}, 1) = 0
read(0, "\357m\357m\362K\362K\365E\365E\370\4\370\4\372W\372W\374$\374$\375^\375^\375\370\375\370"..., 4096) = 4096
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
semop(65536, {{0, 0, 0}, {0, 1, SEM_UNDO}}, 2) = 0
semop(65536, {{0, -1, SEM_UNDO|IPC_NOWAIT}}, 1) = 0
read(0, "\354e\354e\356M\356M\3626\3626\367[\367[\374\373\374\373\2v\2v\7M\7M\v\24\v\24"..., 4096) = 4096
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
semop(65536, {{0, 0, 0}, {0, 1, SEM_UNDO}}, 2) = 0
semop(65536, {{0, -1, SEM_UNDO|IPC_NOWAIT}}, 1) = 0
read(0, "\377\357\377\357\374\273\374\273\374\4\374\4\3766\3766\2\272\2\272\10C\10C\r@\r@\20e\20e"..., 4096) = 4096
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
semop(65536, {{0, 0, 0}, {0, 1, SEM_UNDO}}, 2) = 0
semop(65536, {{0, -1, SEM_UNDO|IPC_NOWAIT}}, 1) = 0
read(0, "\7\273\7\273\6?\6?\2\371\2\371\377n\377n\375\33\375\33\374\350\374\350\376\312\376\312\1\321\1\321"..., 4096) = 4096
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
semop(65536, {{0, 0, 0}, {0, 1, SEM_UNDO}}, 2) = 0
semop(65536, {{0, -1, SEM_UNDO|IPC_NOWAIT}}, 1) = 0
read(0, "\370\32\370\32\366\240\366\240\370:\370:\374\223\374\223\2=\2=\0073\0073\t\222\t\222\10V\10V"..., 4096) = 4096
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(3, SNDRV_TIMER_IOCTL_STOP, 0x54a1) = 0
clock_gettime(CLOCK_MONOTONIC, {985, 258032055}) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
clock_gettime(CLOCK_MONOTONIC, {985, 258411791}) = 0
clock_gettime(CLOCK_MONOTONIC, {985, 258576313}) = 0
write(2, "underrun!!! (at least 0.544 ms l"..., 37) = 37
ioctl(3, SNDRV_TIMER_IOCTL_PARAMS or TIOCSTI, 0xbeaa2980) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
read(0, "\365\370\365\370\370\352\370\352\373l\373l\3751\3751\376H\376H\377\10\377\10\377\336\377\336\1\27\1\27"..., 4096) = 4096
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
read(0, "\363\243\363\243\362]\362]\363P\363P\366\241\366\241\373\324\373\324\1\315\1\315\7\23\7\23\n5\n5"..., 4096) = 4096
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
read(0, "\2D\2D\375\23\375\23\370\315\370\315\366o\366o\366s\366s\370\267\370\267\374\225\374\225\1\26\1\26"..., 4096) = 4096
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
read(0, "\377\242\377\242\375\265\375\265\375\341\375\341\0E\0E\4G\4G\10\305\10\305\fs\fs\16:\16:"..., 4096) = 4096
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
read(0, "\5\223\5\223\4\276\4\276\2\204\2\204\377r\377r\374J\374J\371\322\371\322\370\241\370\241\370\365\370\365"..., 4096) = 4096
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
read(0, "\377\35\377\35\3770\3770\377\220\377\220\0\207\0\207\2%\2%\4 \4 \5\352\5\352\6\325\6\325"..., 4096) = 4096
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
read(0, "\362\37\362\37\361T\361T\362\360\362\360\366\323\366\323\3741\3741\1\302\1\302\6"\6"\10=\10="..., 4096) = 4096
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
read(0, "\375\350\375\350\0(\0(\4A\4A\t8\t8\r\213\r\213\17\250\17\250\16r\16r\t\265\t\265"..., 4096) = 4096
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
read(0, "\0\222\0\222\0\307\0\307\377\356\377\356\375\371\375\371\373%\373%\367\365\367\365\365\26\365\26\363/\363/"..., 4096) = 4096
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
read(0, "\376\310\376\310\373\372\373\372\371\371\367\212\367\212\366\363\366\363\367\273\367\273\371\272\371\272\374\217\374\217"..., 4096) = 4096
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
read(0, "\3741\3741\374\345\374\345\375T\375T\375\263\375\263\376B\376B\377&\377&\0]\0]\1\305\1\305"..., 4096) = 4096
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
read(0, "\364\263\364\263\370(\370(\3754\3754\2\225\2\225\6\376\6\376\t\177\t\177\t\316\t\316\10S\10S"..., 4096) = 4096
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
read(0, "\1S\1S\376j\376j\373+\373+\370\225\370\225\367\204\367\204\370h\370h\373\33\373\33\376\350\376\350"..., 4096) = 4096
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
read(0, "\3y\3y\2\360\2\360\2J\2J\1\201\1\201\0m\0m\376\330\376\330\374\245\374\245\371\377\371\377"..., 4096) = 4096
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
read(0, "\370\256\370\256\367m\367m\367\v\367\v\367\232\367\232\371\4\371\4\373\0\373\0\375\23\375\23\376\256\376\256"..., 4096) = 4096
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(3, SNDRV_TIMER_IOCTL_START, 0x54a0) = 0
semop(65536, {{0, 0, 0}, {0, 1, SEM_UNDO}}, 2) = 0
semop(65536, {{0, -1, SEM_UNDO|IPC_NOWAIT}}, 1) = 0
clock_gettime(CLOCK_MONOTONIC, {985, 605523806}) = 0
read(0, "\3\f\3\f\3\313\3\313\5D\5D\6\302\6\302\7y\7y\6\316\6\316\4\221\4\221\1\31\1\31"..., 4096) = 4096
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
poll([{fd=3, events=POLLIN|POLLERR|POLLNVAL}], 1, -1) = 1 ([{fd=3, revents=POLLIN}])
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
read(3, "\6\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\3\0\0\0\331\3\0\0&:\361#\0\0\0\0", 64) = 32
read(3, 0xbeaa29a8, 64) = -1 EAGAIN (Resource temporarily unavailable)
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
poll([{fd=3, events=POLLIN|POLLERR|POLLNVAL}], 1, -1) = 1 ([{fd=3, revents=POLLIN}])
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
semop(65536, {{0, 0, 0}, {0, 1, SEM_UNDO}}, 2) = 0
semop(65536, {{0, -1, SEM_UNDO|IPC_NOWAIT}}, 1) = 0
read(3, "\1\0\0\0\331\3\0\0\fp\377$\1\0\0\0", 64) = 16
read(0, "\373S\373S\373w\373w\375\17\375\17\377\332\377\332\3/\3/\6=\6=\10H\10H\10\357\10\357"..., 4096) = 4096
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
poll([{fd=3, events=POLLIN|POLLERR|POLLNVAL}], 1, -1) = 1 ([{fd=3, revents=POLLIN}])
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
semop(65536, {{0, 0, 0}, {0, 1, SEM_UNDO}}, 2) = 0
semop(65536, {{0, -1, SEM_UNDO|IPC_NOWAIT}}, 1) = 0
read(3, "\1\0\0\0\331\3\0\0[\331?&\1\0\0\0", 64) = 16
read(0, "\374\32\374\32\370\231\370\231\366\335\366\335\366\331\366\331\370\37\370\37\372\17\372\17\374\37\374\37\375\374\375\374"..., 4096) = 4096
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
poll([{fd=3, events=POLLIN|POLLERR|POLLNVAL}], 1, -1) = 1 ([{fd=3, revents=POLLIN}])
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
semop(65536, {{0, 0, 0}, {0, 1, SEM_UNDO}}, 2) = 0
semop(65536, {{0, -1, SEM_UNDO|IPC_NOWAIT}}, 1) = 0
read(0, "\377u\377u\0\262\0\262\2"\2"\2\331\2\331\2\24\2\24\377\223\377\223\373\264\373\264\367d\367d"..., 4096) = 4096
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
semop(65536, {{0, 0, 0}, {0, 1, SEM_UNDO}}, 2) = 0
semop(65536, {{0, -1, SEM_UNDO|IPC_NOWAIT}}, 1) = 0
read(0, "\371\211\371\211\3737\3737\375\362\375\362\0\206\0\206\1\312\1\312\1\16\1\16\376a\376a\372\214\372\214"..., 4096) = 4096
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
semop(65536, {{0, 0, 0}, {0, 1, SEM_UNDO}}, 2) = 0
semop(65536, {{0, -1, SEM_UNDO|IPC_NOWAIT}}, 1) = 0
read(0, "\371G\371G\373\341\373\341\375\n\375\n\375\26\375\26\374\335\374\335\375F\375F\376\342\376\342\1\235\1\235"..., 4096) = 4096
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0
ioctl(5, SNDRV_PCM_IOCTL_SYNC_PTR, 0x3c420) = 0

from red-pitaya-notes.

 avatar commented on June 8, 2024

You may want to look at this: http://askubuntu.com/questions/129621/ubuntu-locks-up-when-swap-full

Since df does not show swap space, you can probe it (on a working system) as follows:

swapon -s

and

foo@red-pitaya:/# free -m
total used free shared buffers cached
Mem: 466 182 283 4 21 134
-/+ buffers/cache: 26 439
Swap: 0 0 0

from red-pitaya-notes.

on3vna avatar on3vna commented on June 8, 2024

Pavel and XYEFA,

I've got a break trough of this problem yesterday, changed code and did some initial testing,but I still want to test the solution under several conditions. Reboot restart, start stop the application monitor in transmit mode.
I also want to start first from a fresh image that will be in the coming days.
Keep you posted.

73
Johan

from red-pitaya-notes.

 avatar commented on June 8, 2024

@on3vna You may also want to read the notes relating to ALSA here: https://www.raspberrypi.org/documentation/configuration/device-tree.md ... I do not know if this is applicable to you.

Regards

from red-pitaya-notes.

on3vna avatar on3vna commented on June 8, 2024

Pavel , XYEFA

Still had to handle some rare conditions but they are also ok now.
Now to do is testing with transmit and see if it still is working.

73 Johan
ON3VNA

from red-pitaya-notes.

on3vna avatar on3vna commented on June 8, 2024

Pavel,

Did testing of the solution seems ok to me.
In stead of using aplay is have implemented the sound in the server, so there is no more need for the aplay.

Extra needed on the red pitaya:

apt-get install libasound2 alsa-utils alsa-oss
apt-get install libasound2-dev

compile the application:
With Lasound:

arm-linux-gnueabihf-gcc -O3 -march=armv7-a -mcpu=cortex-a9 -mtune=cortex-a9 -mfpu=neon -mfloat-abi=hard projects/sdr_transceiver_hpsdr/server/sdr-transceiver-hpsdr.c -o sdr-transceiver-hpsdr -D_GNU_SOURCE -Iprojects/sdr_transceiver_hpsdr/server -lm -lpthread -v -lasound

How do I get my version now in the git? I have never used this before.

Rgds
Johan
73 de ON3VNA

from red-pitaya-notes.

pavel-demin avatar pavel-demin commented on June 8, 2024

Hi Johan,

Thanks for finding a solution to this problem.

I think that the easiest way to add your code to the git repository is to go to https://github.com/pavel-demin/red-pitaya-notes/blob/master/projects/sdr_transceiver_hpsdr/server/sdr-transceiver-hpsdr.c and edit the file via the web browser by pressing the 'Edit this file' icon.

Or follow the first two steps from the following tutorial:
https://help.github.com/articles/fork-a-repo/
then edit sdr-transceiver-hpsdr.c on your computer and then run git commit and git push

Best regards,

Pavel

from red-pitaya-notes.

on3vna avatar on3vna commented on June 8, 2024

Hey Pavel,

Today noticed some interesting thing: When i was testing yesterday I was using 100Mb connections and did not have any problem with loss of sound, but today i was using 1Gb connections and was confronted with the same sound loss even with the new code.
Just now connected HPSDR PC and RED HPSDR on a 100Mb hub and observe the behaviour.
It will be a hard one the find i guess why on 1Gb link it fails.... as there is not much debug output available.

Rgds
Johan
73 de ON3VNA

from red-pitaya-notes.

pavel-demin avatar pavel-demin commented on June 8, 2024

It's a known problem. The main source of the problem is the UDP protocol implementation in the modern operating systems (MS Windows and GNU Linux). Sometimes, there are long delays between the UDP packets sent from PC to Red Pitaya. When it happens, the buffer of audio samples on the Red Pitaya side underflows and you hear a click. More details can be found at the following links:
http://www.tau.ac.il/~stoledo/Bib/Pubs/qex-jan-feb-2011-toledo.pdf (page 14)
https://groups.yahoo.com/neo/groups/n2adr-sdr/conversations/topics/101
https://groups.google.com/forum/#!topic/sdr-widget/UpLStkqTEoQ

For the I/Q samples the workaround is a quite deep (16k samples) FIFO buffer.

I think that something similar should work for the audio samples.

from red-pitaya-notes.

on3vna avatar on3vna commented on June 8, 2024

Good afternoon Pavel,

I will have a look into it. See what I can do.
Keep you posted.
Rgds
Johan
73 de ON3VNA

from red-pitaya-notes.

on3vna avatar on3vna commented on June 8, 2024

Hey Pavel,

From what I observed in the last testing, i strongly start to suspect that the communication between the USB part on the FPGA and the linux kernel gets lost due to the high traffic on the ip interface.
If the ip interface and the USB part on the FPGA are on the same bus then that would explain it.
IP block to busy to handle all the packets on the network.
I have put some extra syslog code in the audio part and there i don't see any anomalies concerning contact loss between the application and the ALSA.

I also found somewhere in Xilinx that the USB should be defined as full speed when using sound.
But i don't know where to check that.

Rgds
Johan
73 de ON3VNA

from red-pitaya-notes.

on3vna avatar on3vna commented on June 8, 2024

Hey Pavel,

This is what i found this morning when running on a 1gb link:
It seems no more interrupts are handled for usb when the sound is gone

root@red-pitaya:# cat /proc/interrupts
CPU0 CPU1
16: 0 0 GIC 27 Edge gt
17: 0 0 GIC 43 Level ttc_clockevent
18: 8481 45729 GIC 29 Edge twd
21: 43 0 GIC 39 Level f8007100.adc
141: 2 0 GIC 57 Level cdns-i2c
143: 0 0 GIC 35 Level f800c000.ocmc
144: 466 0 GIC 59 Level xuartps
146: 0 0 GIC 58 Level e0006000.spi
147: 0 0 GIC 81 Level e0007000.spi
148: 0 0 GIC 51 Level e000d000.spi
149: 421534 0 GIC 54 Level eth0
150: 3172 0 GIC 56 Level mmc0
151: 0 0 GIC 45 Level f8003000.dmac
152: 0 0 GIC 46 Level f8003000.dmac
153: 0 0 GIC 47 Level f8003000.dmac
154: 0 0 GIC 48 Level f8003000.dmac
155: 0 0 GIC 49 Level f8003000.dmac
156: 0 0 GIC 72 Level f8003000.dmac
157: 0 0 GIC 73 Level f8003000.dmac
158: 0 0 GIC 74 Level f8003000.dmac
159: 0 0 GIC 75 Level f8003000.dmac
160: 1 0 GIC 40 Level f8007000.devcfg
166: 16694 0 GIC 53 Level e0002000.usb
167: 0 0 GIC 41 Edge f8005000.watchdog
IPI1: 0 0 Timer broadcast interrupts
IPI2: 3014 6030 Rescheduling interrupts
IPI3: 0 0 Function call interrupts
IPI4: 54 22 Single function call interrupts
IPI5: 0 0 CPU stop interrupts
IPI6: 1 0 IRQ work interrupts
IPI7: 0 0 completion interrupts
Err: 0
root@red-pitaya:
# cat /proc/interrupts
CPU0 CPU1
16: 0 0 GIC 27 Edge gt
17: 0 0 GIC 43 Level ttc_clockevent
18: 9006 51003 GIC 29 Edge twd
21: 43 0 GIC 39 Level f8007100.adc
141: 2 0 GIC 57 Level cdns-i2c
143: 0 0 GIC 35 Level f800c000.ocmc
144: 502 0 GIC 59 Level xuartps
146: 0 0 GIC 58 Level e0006000.spi
147: 0 0 GIC 81 Level e0007000.spi
148: 0 0 GIC 51 Level e000d000.spi
149: 474552 0 GIC 54 Level eth0
150: 3172 0 GIC 56 Level mmc0
151: 0 0 GIC 45 Level f8003000.dmac
152: 0 0 GIC 46 Level f8003000.dmac
153: 0 0 GIC 47 Level f8003000.dmac
154: 0 0 GIC 48 Level f8003000.dmac
155: 0 0 GIC 49 Level f8003000.dmac
156: 0 0 GIC 72 Level f8003000.dmac
157: 0 0 GIC 73 Level f8003000.dmac
158: 0 0 GIC 74 Level f8003000.dmac
159: 0 0 GIC 75 Level f8003000.dmac
160: 1 0 GIC 40 Level f8007000.devcfg
166: 16694 0 GIC 53 Level e0002000.usb
167: 0 0 GIC 41 Edge f8005000.watchdog
IPI1: 0 0 Timer broadcast interrupts
IPI2: 3021 6189 Rescheduling interrupts
IPI3: 0 0 Function call interrupts
IPI4: 54 22 Single function call interrupts
IPI5: 0 0 CPU stop interrupts
IPI6: 1 0 IRQ work interrupts
IPI7: 0 0 completion interrupts
Err: 0
root@red-pitaya:# cat /proc/interrupts
CPU0 CPU1
16: 0 0 GIC 27 Edge gt
17: 0 0 GIC 43 Level ttc_clockevent
18: 9714 57488 GIC 29 Edge twd
21: 43 0 GIC 39 Level f8007100.adc
141: 2 0 GIC 57 Level cdns-i2c
143: 0 0 GIC 35 Level f800c000.ocmc
144: 538 0 GIC 59 Level xuartps
146: 0 0 GIC 58 Level e0006000.spi
147: 0 0 GIC 81 Level e0007000.spi
148: 0 0 GIC 51 Level e000d000.spi
149: 540517 0 GIC 54 Level eth0
150: 3172 0 GIC 56 Level mmc0
151: 0 0 GIC 45 Level f8003000.dmac
152: 0 0 GIC 46 Level f8003000.dmac
153: 0 0 GIC 47 Level f8003000.dmac
154: 0 0 GIC 48 Level f8003000.dmac
155: 0 0 GIC 49 Level f8003000.dmac
156: 0 0 GIC 72 Level f8003000.dmac
157: 0 0 GIC 73 Level f8003000.dmac
158: 0 0 GIC 74 Level f8003000.dmac
159: 0 0 GIC 75 Level f8003000.dmac
160: 1 0 GIC 40 Level f8007000.devcfg
166: 16694 0 GIC 53 Level e0002000.usb
167: 0 0 GIC 41 Edge f8005000.watchdog
IPI1: 0 0 Timer broadcast interrupts
IPI2: 3035 6445 Rescheduling interrupts
IPI3: 0 0 Function call interrupts
IPI4: 54 22 Single function call interrupts
IPI5: 0 0 CPU stop interrupts
IPI6: 1 0 IRQ work interrupts
IPI7: 0 0 completion interrupts
Err: 0
root@red-pitaya:
#

from red-pitaya-notes.

on3vna avatar on3vna commented on June 8, 2024

Pavel,
I also implemented in the code the use of syslog.
So i have added in /etc/rsyslog.conf the following line:

local0.* -/var/log/hpsdr.log

Also uploaded the file with the changes.

Rgds
Johan
73 de ON3VNA

from red-pitaya-notes.

on3vna avatar on3vna commented on June 8, 2024

Pavel,

Can I send you a PM concerning this ?

Rgds
Johan

from red-pitaya-notes.

pavel-demin avatar pavel-demin commented on June 8, 2024

Yes, sure. The address is in my profile.

from red-pitaya-notes.

on3vna avatar on3vna commented on June 8, 2024

Pavel,

New code is available. This with the interrupt routing of the USB to the second core should do the trick.
Now working on a 1Gb link between HPSDR and the RED PITAYA.

Also the start.sh (stop.sh) needs to be adopted, removing the alsa stuff.
Also the rc.local for routing the int to the second core.

Rgds
Johan

from red-pitaya-notes.

pavel-demin avatar pavel-demin commented on June 8, 2024

Thanks for the good news!

Have you checked if the interrupt routing also fixes the version with aplay? If possible, I'd prefer to keep the version with aplay because it works with the small customized SD card image.

from red-pitaya-notes.

on3vna avatar on3vna commented on June 8, 2024

Hey Pavel,

No I did not check the int routing with the aplay.
I just coded everything from scratch forgetting about the aplay.
I dont see any problem to run the code on the small SD card image.
I still use the SD image you made with only the new code so should not be a problem .

73
Johan

from red-pitaya-notes.

on3vna avatar on3vna commented on June 8, 2024

This is the size of the new file
-rwxr-xr-x 1 root root 21584 Aug 15 15:33 sdr-transceiver-hpsdr

from red-pitaya-notes.

pavel-demin avatar pavel-demin commented on June 8, 2024

I dont see any problem to run the code on the small SD card image.

The problem is that the alsa/asound library isn't installed on the SD cards provided by Red Pitaya.

Another problem is that I'll have to cross-compile the alsa/asound library on my development machine. I'd prefer not to do it.

from red-pitaya-notes.

ka6s avatar ka6s commented on June 8, 2024

Pavel,

I saw somewhere that the asound was only unidirectional, i.e. can only be
used to play the audio out. Is that correct?

Steve KA6S

On Mon, Aug 15, 2016 at 9:25 AM, Pavel Demin [email protected]
wrote:

I dont see any problem to run the code on the small SD card image.

The problem is that the alsa/asound library isn't installed on the SD
cards provided by Red Pitaya.

Another problem is that I'll have to cross-compile the alsa/asound library
on my development machine. I'd prefer not to do it.


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
#305 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABsJOJ7m2getgI4J6AcoKqsakyhEdXEjks5qgJMHgaJpZM4JDRzi
.

from red-pitaya-notes.

pavel-demin avatar pavel-demin commented on June 8, 2024

I saw somewhere that the asound was only unidirectional, i.e. can only be used to play the audio out. Is that correct?

In my understanding, libasound is the name of the Debian package for the ALSA library:
https://packages.debian.org/jessie/libasound2

The ALSA library provides both snd_pcm_writei and snd_pcm_readi functions:
http://www.alsa-project.org/alsa-doc/alsa-lib/group___p_c_m.html

So, both playback and recording are available.

from red-pitaya-notes.

ka6s avatar ka6s commented on June 8, 2024

Pavel - I saw your email on this in another thread - and I've obtained your
development platform version and loaded the alsa libs on it. I now have
sound with an $8 USB Sound dongle!

I've tried the current HPSDR link - and it doesn't seem to have the sound
system installed. So to turn the development version into a booting sdr
transceiver - what files do I need to install where?

Thanks!

Steve KA6S

On Mon, Aug 15, 2016 at 10:53 AM, Pavel Demin [email protected]
wrote:

I saw somewhere that the asound was only unidirectional, i.e. can only be
used to play the audio out. Is that correct?

In my understanding, libasound is the name of the Debian package for the
ALSA library:
https://packages.debian.org/jessie/libasound2

The ALSA library provides both snd_pcm_writei and snd_pcm_readi functions:
http://www.alsa-project.org/alsa-doc/alsa-lib/group___p_c_m.html

So, both playback and recording are available.


You are receiving this because you commented.
Reply to this email directly, view it on GitHub
#305 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABsJOHRUztc9SiFSdCbGrf0vGI9617j4ks5qgKeJgaJpZM4JDRzi
.

from red-pitaya-notes.

pavel-demin avatar pavel-demin commented on June 8, 2024

So to turn the development version into a booting sdr transceiver - what files do I need to install where?

I think that adding the following lines to /etc/rc.local should start the SDR application just after the boot:

cd /opt/redpitaya/www/apps/sdr_transceiver_hpsdr
cat sdr_transceiver_hpsdr.bit > /dev/xdevcfg
source start.sh

from red-pitaya-notes.

pavel-demin avatar pavel-demin commented on June 8, 2024

I'm closing this issue because SDR transceiver compatible with HPSDR now supports audio playback/capture and CW sidetone generation via the WM8731 and TLV320AIC23B I2S audio codecs.

If there are problems with the USB audio devices, then I'd suggest switching to the I2S audio codecs.

from red-pitaya-notes.

Related Issues (20)

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.