Hello Flavio,

Most likely the problem is related to the CF - as I wrote in that old
article, most CF cards in IDE mode lie about support of the DMA mode. They
do support UDMA so most people never notice that small lie. But Axis CPU
used in the camera has a bug of it's own - and this bug is related to the
UDMA. If the card would hostly report that it does not support DMA camera
driver would just go to PIO mode (ABSOLUTELY NOT SUITABLE for the video
recording - both slow and using to much of the camera CPU resources), but
it does not, so camera may hang up and never come out of the boot scripts.
So what we did was to add some known "bad" cards to the driver black list:


http://elphel.cvs.sourceforge.net/viewvc/elphel/elphel353-8.0/os/linux-2.6-tag--devboard-R2_10-4/drivers/ide/ide-dma.c?view=markup(lines
130..136).

At some point we black-listed all no-name cards (we did not find any among
them that did support  DMA) You may use hdparm -I  (from
http://192.168.0.9/phpshell.php, telnet or serial console that you should
have cable for) and the only way to re-enable (if you card matches the
black-listed one) the card is to modify that file and recompile the camera
firmware. The only type of CF cards we use ourselves is "Sandisk Extreme
III".

When the card is blacklisted, camera bots correctly and is able to mount
(and use) the card - it can be used to save images or very slow video
(still useful for timelapse), but not the normal video.

You may test the speed of the CF card (that test will destroy data on it!)
with the following command (again - phpshell, telnet, serial console):

time dd if=/dev/circbuf of=/dev/hda #(or hdb - depending how is the card
inserted/configured)

/dev/circbuf is the circular buffer ~19MB in size that is very fast to read
for the camera, so the speed will be related to the CF itself

You may try it on /dev/null first:

[root@Goniometer /dev]16713# time dd if=/dev/circbuf of=/dev/null
38656+0 records in
38656+0 records out
real    0m 0.43s
user    0m 0.11s
sys     0m 0.32s

With phpshell you may just open the following link (provided you have the
default IP) - just replace all spaces in the command line with "+" signs
http://192.168.0.9/phpshell.php?command=time+dd+if=/dev/circbuf+of=/dev/null

Then divide 19MB by the time measured.

Andrey
_______________________________________________
Support-list mailing list
Support-list@support.elphel.com
http://support.elphel.com/mailman/listinfo/support-list_support.elphel.com

Reply via email to