[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Linrad] Re: Linrad053 and Ubuntu

Hi All,

Ermanno reported a bug when running Linrad02-53 with native
ALSA under Ubuntu.

The error is a buffer overflow, line 93 in lsetad.c:
char alsa_dev_plughw_pcm_name [10];
does not allocate enough space. Change it to:
char alsa_dev_plughw_pcm_name [16];

It is interesting (=frustrating) that this error is not
reported when I run with valgrind under e.g. Debian.

Maybe the memory allocation is aligned to actually reserve
a couple of more bytes and that the formal error therefore
does not cause any problem. Under Ubuntu, at run time, there
seems to be some error checking because xlinrad exits with:
*** buffer overflow detected ***: ./xlinrad terminated
followed by a traceback that points to an address within Linrad
(that I have no idea how to use) plus a (useless to me) 
memory map.

Linrad now runs well as a transceiver under Debian and svgalib.
The X11 server causes some extra latency, I have not yet added
a "tx output delay margin" that could be set to accomodate 
the latency times of the X11 server.
This can be done - but there will be a small penalty when running 
under X11 in a longer time delay between the key is pushed and RF 
appears at the antenna. 

I have not been sucessful in installing svgalib under Ubuntu.
Another thing is that X11 uses far more cpu time under Ubuntu 
compared to Debian. I do not think the memory checking that seems to
be included in Linrad when compiled under Ubuntu is responsible 
because the xlinrad executable compiled under Debian runs at 28% cpu
load exactly as the ./xlinrad compiled under Ubuntu. When I run 
the same executable under Debian X11 on the same computer with 
the same parameters, the cpu load is 17% only (with svgalib 15%.)

When running the system monitor together with Linrad using the same
computer and linrad parameters, the cpu load as shown by the system
monitor is 90% with Ubuntu while it is 30% with Debian.

Maybe ALSA is compiled with memory error checking under Ubuntu?
(And other X11 parts as well?)

The system monitor adds a large latency time so output delay margin 
has to be set high. It is also necessary to set a low "max DMA rate"
to make soundcard buffers large when running the system monitor.
There is not yet any Tx output delay margin so the Tx side does 
not work if the system monitor is allowed to run.

                          ---   ooo   ---

Before I upload Linrad-02.54 with the alsa_dev_plughw_pcm_name 
correction I would like to know if there is anything else that 
does not seem right with 02-53.



You received this message because you are subscribed to the Google Groups "Linrad" group.
To post to this group, send email to linrad@xxxxxxxxxxxxxxxx
To unsubscribe from this group, send email to linrad+unsubscribe@xxxxxxxxxxxxxxxx
For more options, visit this group at http://groups.google.com/group/linrad?hl=en