hi Bryn: 2014-07-07 23:52 GMT+08:00 Bryn M. Reeves <bmr@xxxxxxxxxx>: > 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). so sg_read will not hammer on the page cache like dd without "iflags=direct" thanks for your kind help, -- 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