On Mon, Jul 07, 2014 at 11:39:05PM +0800, loody wrote: > hi David: > > 2014-07-07 23:06 GMT+08:00 David Laight <David.Laight@xxxxxxxxxx>: > > From: Lars Melin > > ... > >> sgread is not included in BusyBox but you should have "touch". > >> Create a dummy file on the disk and let cron touch it every 4 minutes. > > > > You don't need 'touch' a shell redirect eg ": >file" will do open(..., O_CREAT|O_TRUNC). > > However that still might not force an actual disc access. > > > > In any case you really only want to do a read, doing a write will kill the NAND memory. > > actually I have searched the scsi/usb layer for possible dummy read, > even read sector 0 is fine, but in vain. > > I found the read > a. determined by VFS -> block layer, > b. Block layer put it in queue > c. call scsi pre-queue function to usb layer. > > That mean if I try to read sector from usb devices, I have to create a > queue and follow above b) and c) rule. > is there any already kernel API I can use? > > sincerely appreciate all yours help, If you don't want to put sg_read into your image you could just use a dd; busybox includes an implementation that should be good enough. Just make sure you use the right flags to use O_DIRECT access or you'll just end up hammering on the page cache. Iirc that's "iflags=direct" (check the busybox docs to make sure it's the same). Regards, Bryn. -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html