From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757715Ab0G2OxY (ORCPT ); Thu, 29 Jul 2010 10:53:24 -0400 Received: from fall-pradero.atl.sa.earthlink.net ([207.69.195.104]:34233 "EHLO fall-pradero.atl.sa.earthlink.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757687Ab0G2OxW (ORCPT ); Thu, 29 Jul 2010 10:53:22 -0400 X-Greylist: delayed 690 seconds by postgrey-1.27 at vger.kernel.org; Thu, 29 Jul 2010 10:53:22 EDT Date: Thu, 29 Jul 2010 10:41:50 -0400 (EDT) From: Mark Whitis X-X-Sender: whitis@cervantes To: linux-kernel@vger.kernel.org Subject: Re: usbtmc makes Rigol DS1052E oscilloscope crash Message-ID: User-Agent: Alpine 2.00 (DEB 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On May 25, 2010, 10:34 AM dfnsonfsduifb at gmx wrote: > I'm experiencing trouble connecting to a Rigol DS1052E oscilloscope via > the usbtmc USB class driver. When requesting small amounts of data it > works quite nicely, but when requesting a large chunk (i.e. when > requesting the whole memory to be transferred), the read aborts, the > connection times out and ultimately this leads to the oscilloscope > crashing. On my system, I have a similar problem but with somewhat different symptoms. I only get 2018 bytes back, whether the scope sends 8192 or 524288 bytes. 610 bytes and 1210 bytes read ok. In the source for this module, I notice that there is a 2048 byte buffer and a 10ms timeout, either of which could cause trouble depending on how they are used. Linux cervantes 2.6.28-11-generic #42-Ubuntu SMP Fri Apr 17 01:58:03 UTC 2009 x86_64 GNU/Linux ./rigolterm Rigol Technologies,DS1052E,DS1ED122307041,00.02.04.00.01 Rigol Technologies,DS1052E,DS1ED122307041,00.02.04.00.01 rigol> *IDN? [56]:Rigol Technologies,DS1052E,DS1ED122307041,00.02.04.00.01 rigol> :ACQUIRE:MEMDEPTH LONG No response [-1]: rigol> :WAVFORM:POINTS:MODE RAW No response [-1]: rigol> :RUN No response [-1]: rigol> :FORCE No response [-1]: rigol> :STOP No response [-1]: rigol> :CHAN1:MEMD? No response [-1]: rigol> :CHAN1:MEMD? No response [-1]: rigol> :CHAN1:MEMD? No response [-1]: rigol> :CHAN1:MEMD? No response [-1]: rigol> :CHAN1:MEMD? [6]:524288 rigol> :WAV:DATA? CHANNEL1 No response [-1]: rigol> :WAV:DATA? CHANNEL1 No response [-1]: rigol> :WAV:DATA? CHANNEL1 [2018]: 23 38 30 30 35 32 34 32 38 38 CA CA CA CA CA CA CA CA CA CA CA CA CA CA CA CA CA CA CA CA CA CA CA C9 CA C9 CA C9 CA CA C9 CA CA CA CA C9 C9 CA CA C9 C9 C9 C9 C9 CA CA C9 CA CA CA C9 C9 C9 C9 C9 CA CA CA CA C9 CA CA C9 CA CA CA CA C9 CA C9 CA C9 CA CA CA CA C9 C9 C9 CA CA C9 C9 CA C9 CA CA C9 CA CA CA CA C9 CA CA CA CA CA CA C9 CA C9 CA C9 C9 C9 C9 CA CA C9 C9 CA CA CA CA CA C9 C9 CA CA CA C9 CA C9 CA C9 CA C9 C9 CA C9 CA CA C9 C9 CA C9 CA C9 C9 C9 CA C9 CA CA C9 C9 CA CA CA C9 C9 C9 CA CA CA CA CA CA CA C9 C9 C9 CA C9 C9 C9 C9 CA CA C9 C9 C9 CA C9 CA C9 C9 CA C9 CA CA C9 C9 CA CA C9 C9 CA CA CA C9 CA C9 CA CA CA CA C9 C9 CA CA CA CA CA CA C9 CA C9 CA C9 CA CA C9 C9 CA CA CA CA CA C9 CA C9 C9 CA CA C9 C9 CA CA CA CA C9 C9 C9 CA C9 CA C9 C9 C9 CA CA C9 C9 C9 C9 C9 CA CA CA CA C9 C9 CA C9 C9 C9 C9 C9 CA C9 CA C9 C9 CA CA CA CA C9 CA CA CA CA C9 CA CA CA C9 C9 CA C9 C9 CA C9 CA CA CA C9 C9 CA C9 CA CA CA CA C9 CA CA C9 C9 C9 C9 C9 C9 CA CA CA C9 C9 C9 CA CA C9 CA C9 CA C9 C9 C9 C9 C9 C9 CA C9 CA C9 C9 CA C9 C9 C9 CA CA C9 CA CA CA CA CA CA CA C9 C9 C9 C9 C9 CA CA CA CA C9 C9 C9 CA CA CA CA C9 C9 C9 C9 C9 CA CA CA CA CA CA C9 CA C9 C9 C9 CA CA CA CA C9 CA CA CA C9 CA C9 C9 C9 C9 C9 C9 C9 CA C9 CA C9 CA C9 C9 C9 CA CA CA CA CA CA CA C9 C9 C9 C9 C9 C9 CA C9 C9 C9 C9 CA CA CA CA CA C9 C9 C9 C9 CA CA CA CA CA CA CA C9 CA CA CA C9 CA CA C9 CA C9 C9 C9 CA CA C9 CA CA C9 CA C9 CA CA CA CA C9 C9 CA C9 CA CA C9 C9 CA CA CA CA CA CA CA CA CA C9 CA C9 CA CA CA CA CA CA CA CA CA CA C9 CA CA CA CA CA CA C9 C9 CA C9 CA C9 C9 CA CA C9 C9 CA C9 CA CA CA C9 C9 CA C9 C9 CA CA CA CA CA C9 CA CA CA CA C9 C9 C9 CA CA C9 C9 CA CA CA CA CA C9 C9 C9 C9 CA CA C9 C9 C9 C9 C9 CA C9 C9 C9 CA CA CA CA CA CA CA CA C9 CA CA CA C9 C9 CA CA C9 CA CA CA CA CA CA C9 C9 CA CA C9 CA CA CA CA C9 CA C9 C9 CA CA C9 CA C9 CA CA CA C9 C9 CA CA C9 CA CA CA C9 C9 C9 CA C9 C9 CA C9 CA CA C9 CA C9 CA CA C9 C9 CA C9 CA C9 CA CA CA CA C9 C9 C9 CA CA CA CA CA CA CA CA CA CA CA CA CA CA CA CA CA CA C9 CA CA CA CA C9 CA CA CA C9 CA C9 CA C9 C9 CA C9 CA CA CA CA C9 CA C9 CA CA CA CA CA CA CA C9 CA CA CA C9 C9 C9 C9 C9 CA CA CA C9 CA C9 CA C9 C9 CA CA CA C9 C9 CA CA C9 C9 C9 C9 CA CA CA CA CA CA CA CA CA C9 C9 CA C9 C9 C9 C9 CA CA CA C9 C9 C9 CA CA CA CA CA CA CA CA CA C9 CA C9 C9 CA CA C9 C9 CA CA CA CA CA CA CA CA C9 C9 C9 C9 C9 C9 CA C9 CA C9 C9 CA CA C9 C9 C9 CA CA CA CA C9 C9 CA CA C9 C9 CA CA C9 C9 C9 CA CA CA CA C9 CA C9 CA C9 C9 C9 CA CA C9 CA C9 C9 CA CA C9 C9 C9 CA CA C9 CA C9 CA C9 C9 C9 C9 CA CA C9 C9 C9 CA CA CA C9 CA C9 CA CA C9 C9 C9 C9 CA C9 CA CA C9 CA C9 CA C9 C9 C9 CA CA C9 C9 C9 CA CA CA C9 C9 CA CA CA C9 C9 CA CA CA C9 C9 C9 C9 C9 C9 C9 CA C9 C9 CA CA CA CA C9 CA C9 CA CA C9 C9 CA CA CA C9 C9 CA C9 CA CA CA CA C9 CA C9 CA C9 CA CA C9 C9 C9 C9 C9 C9 CA CA CA C9 C9 C9 C9 C9 C9 CA C9 C9 CA C9 CA CA CA C9 C9 CA CA C9 CA C9 CA C9 C9 C9 C9 CA C9 C9 CA C9 C9 C9 CA CA C9 C9 CA CA C9 C9 CA CA CA C9 C9 C9 CA C9 C9 CA C9 C9 CA CA C9 C9 C9 CA CA CA C9 C9 C9 CA C9 C9 C9 CA C9 C9 CA C9 C9 C9 CA C9 C9 C9 C9 C9 C9 CA CA C9 C9 C9 C9 CA C9 C9 C9 C9 C9 C9 CA CA CA C9 CA CA CA C9 C9 C9 C9 CA C9 CA CA C9 C9 C9 C9 C9 C9 CA CA C9 C9 CA CA C9 C9 C9 C9 CA C9 C9 CA CA C9 C9 C9 C9 CA CA C9 C9 C9 CA C9 C9 C9 C9 CA C9 C9 C9 C9 CA C9 C9 C9 C9 CA C9 C9 CA C9 C9 C9 C9 C9 CA C9 C9 C9 C9 C9 C9 CA CA CA C9 C9 CA CA CA CA CA C9 C9 C9 C9 CA C9 C9 C9 C9 C9 CA C9 C9 C9 CA C9 CA C9 CA CA C9 CA CA C9 C9 CA C9 C9 CA C9 C9 C9 C9 CA CA C9 C9 C9 C9 CA C9 C9 CA CA CA C9 C9 CA C9 C9 CA C9 C9 CA C9 C9 CA CA C9 C9 C9 C9 CA CA CA C9 CA C9 C9 CA CA CA C9 CA CA C9 CA CA C9 C9 C9 C9 CA C9 C9 CA C9 C9 C9 C9 C9 CA CA CA CA C9 CA CA CA C9 C9 C9 C9 CA C9 CA C9 C9 C9 C9 C9 CA CA C9 C9 C9 CA C9 CA CA C9 C9 CA CA C9 C9 C9 C9 C9 C9 C9 C9 C9 CA CA C9 C9 C9 C9 CA C9 C9 CA CA C9 C9 C9 C9 C9 CA C9 CA CA C9 C9 C9 C9 C9 C9 CA C9 CA C9 C9 C9 C9 C9 C9 CA CA C9 C9 C9 C9 C9 CA CA C9 CA CA C9 C9 C9 C9 C9 CA C9 CA C9 C9 C9 C9 CA CA CA C9 C9 C9 C9 CA CA CA CA C9 CA C9 C9 C9 C9 CA C9 CA C9 C9 CA C9 C9 CA C9 CA CA C9 C9 CA CA CA CA C9 C9 CA C9 C9 C9 CA C9 C9 C9 C9 C9 CA CA C9 C9 C9 CA CA C9 C9 C9 C9 CA C9 CA C9 C9 CA CA C9 CA C9 CA CA C9 C9 C9 CA C9 C9 CA C9 C9 C9 C9 C9 C9 C9 CA C9 C9 C9 CA CA CA C9 C9 CA C9 C9 C9 CA CA C9 CA CA C9 CA C9 C9 CA C9 CA C9 CA C9 C9 C9 C9 CA C9 C9 CA C9 CA C9 C9 C9 C9 CA C9 CA C9 CA C9 CA C9 C9 C9 C9 CA C9 C9 C9 C9 C9 C9 C9 C9 C9 C9 C9 C9 C9 C9 C9 C9 C9 C9 C9 CA C9 C9 CA C9 C9 C9 CA CA C9 CA CA C9 C9 CA C9 C9 CA CA C9 C9 CA CA C9 C9 C9 C9 CA C9 C9 CA CA C9 CA C9 C9 C9 CA CA C9 C9 C9 C9 C9 CA C9 C9 C9 CA CA CA C9 C9 CA CA C9 CA CA C9 C9 CA C9 CA C9 C9 CA C9 C9 C9 CA C9 CA C9 C9 C9 C9 C9 CA C9 C9 C9 C9 C9 C9 C9 C9 C9 C9 C9 C9 C9 C9 CA CA C9 C9 C9 CA C9 C9 CA C9 C9 CA C9 C9 C9 C9 C9 C9 C9 C9 C9 C9 C9 CA C9 C9 CA C9 C9 CA CA C9 C9 CA C9 C9 C9 C9 C9 CA C9 CA C9 C9 C9 C9 C9 C9 CA C9 C9 C9 C9 CA CA C9 CA C9 C9 C9 CA C9 C9 CA CA C9 C9 C9 C9 CA C9 C9 CA C9 C9 C9 C9 CA CA C9 C9 C9 C9 CA C9 C9 CA C9 C9 C9 C9 C9 C9 C9 CA CA C9 C9 CA C9 CA CA C9 C9 C9 C9 C9 C9 CA C9 C9 CA C9 C9 C9 CA CA C9 C9 C9 C9 CA C9 CA CA C9 CA CA C9 C9 CA C9 CA CA CA CA CA CA C9 C9 C9 C9 C9 CA C9 C9 CA C9 C9 C9 C9 C9 C9 C9 C9 CA CA CA C9 C9 CA C9 C9 CA C9 CA C9 C9 CA C9 CA C9 CA C9 C9 C9 C9 CA C9 CA CA CA C9 C9 C9 C9 C9 C9 CA CA CA C9 C9 C9 C9 C9 CA C9 C9 C9 C9 CA CA C9 CA C9 CA C9 C9 CA C9 CA C9 C9 C9 C9 C9 C9 CA C9 CA C9 C9 CA C9 CA C9 C9 CA C9 CA C9 CA C9 CA C9 C9 CA C9 CA CA CA C9 CA C9 CA C9 C9 C9 C9 C9 CA CA C9 C9 C9 C9 C9 C9 CA CA C9 C9 CA CA CA C9 C9 CA CA CA CA C9 CA CA C9 CA CA CA C9 CA C9 C9 C9 C9 C9 CA C9 C9 CA CA CA C9 C9 C9 CA CA C9 CA C9 C9 C9 CA CA CA C9 CA C9 C9 CA C9 C9 C9 CA C9 C9 C9 C9 C9 CA CA C9 C9 CA C9 C9 C9 C9 C9 C9 C9 C9 C9 CA CA C9 C9 C9 CA CA C9 C9 CA CA C9 C9 C9 C9 CA C9 CA C9 C9 CA C9 CA C9 C9 C9 C9 C9 C9 C9 CA C9 CA C9 C9 CA CA C9 C9 CA CA CA C9 CA CA CA C9 CA CA CA C9 CA C9 C9 CA CA C9 CA CA CA C9 C9 CA CA C9 C9 CA C9 C9 CA CA C9 C9 C9 C9 C9 C9 CA C9 CA C9 C9 CA CA C9 C9 C9 C9 CA C9 CA CA C9 C9 C9 C9 CA CA C9 C9 CA C9 CA C9 C9 CA CA CA C9 CA CA CA C9 C9 C9 CA CA C9 CA C9 C9 C9 CA C9 C9 C9 CA C9 C9 C9 C9 C9 C9 C9 CA CA C9 C9 C9 CA rigol> rigol> :WAVE:DATA? CHANNEL1 No response [-1]: rigol> :WAVE:DATA? CHANNEL1 No response [-1]: rigol> *IDN? No response [-1]: rigol> *IDN? No response [-1]: rigol> *IDN? [56]:Rigol Technologies,DS1052E,DS1ED122307041,00.02.04.00.01 rigol> :WAV:DATA? CHANNEL1 [2018]: 23 38 30 30 35 32 34 32 38 38 CA CA CA CA CA CA CA CA CA CA CA CA CA CA CA CA CA CA CA CA CA CA CA C9 CA C9 CA C9 CA CA C9 CA CA CA CA C9 C9 CA ... Bytes 2-9 (starting at 0) in the response are the length of the following data in ASCII digits: 00524288. Some flakyness on intermittently responding to commands is also evident. This seems to happen after a big data transfer. Intermittent response to commands continues if the program is exited and restarted or the scope power cycled. Even after removing and reloading the kernel module. // rigolterm.c - Copyright 2010 by Mark Whitis #include #include #include #include #include #include #include #include char *new_fgets(char *s, int size, FILE *stream) { char *rc; int i; s[0]=0; rc=fgets(s,size,stream); // remove newline for(i=0;i0) && (rc "); new_fgets(cmd,sizeof(cmd),stdin); rigol_write(handle, cmd); rc=rigol_read(handle, buf,sizeof(buf)); if(rc<256) { // Assume text printf("[%d]:%s\n", rc,buf); } else { printf("[%d]:\n",rc); for(i=0;i