G'Day, > As I understand you have copied ow_ds9097.c and made your changes to it. > DS9097_reset() send a resetbyte 0xF0 and read a byte. If received byte > is 0xF0, no devices where found on the bus and it's therefor no use > to search for more devices in DS9097_next_both() where it exits later. > If received byte is 0, the 1-wire bus has a short circuit. > Otherwise there seem to be devices 1-wire devices to use. > > I guess you get a result !=0 and !=0xF0 since you make a debug output > like: "OMAP_reset(): AnyDevices = 1" (and I suppose you return 0 from > OMAP_reset() to indicate reset was successful)
That is correct: I have maintained that aspect as-is. > If you start: owfs --foreground --error_level=9 --error_print=2 > -o /dev/wire /mnt/1wire I have now tried that. --error_level and --error_print were not recognised (they must have been added since the last release), and if I use --foreground I end up stuck because I can only have one terminal: I did not think about that aspect until after I tried it. > Add debugging in ow_dir.c:FS_realdir() just after BUS_select(pn2) > and BUS_first(sn,pn2) and make sure they both return 0, otherwise > it will never enter the loop and list the devices on the 1-wire bus. I added a couple of messages to that function, and it never even gets called, let alone BUS_select()/BUS_first() getting called. Indeed, none of the BUS_*() functions seem to get called at any time. `ls /mnt/1wire/uncached/' does not appear to help either. I decided to trace back, and it seems FS_realdir() is called by FS_dir_seek(), however that function is never called either; nor is FS_dir(). If I continue to follow the path, FS_dir() seems to only called from owfs in FS_getdir(), which also never seems to be called. >From what I can gather, I would have to go into FUSE to find where that is called... so I turned my attention to where owfs gets FUSE started. I took the following line: if ( LibStart() ) ow_exit(1) ; and turned it into: testing = LibStart(); fprintf(stderr, "LibStart() returned %d", testing); if ( testing ) ow_exit(1) ; Interestingly enough, I never saw that output. It got to the line before calling LibStart(), but never printed `testing', yet I could still access parts of the file system. I know nothing about how FUSE works, but I would have thought it would be a case of all-or-nothing. I am rather stuck now: I had not expected to find anything like this. Is the problem likely with FUSE as I suspect, or may it perhaps be somewhere else? Thanks for the assistance so far, Matthew ------------------------------------------------------- This SF.Net email is sponsored by the 'Do More With Dual!' webinar happening July 14 at 8am PDT/11am EDT. We invite you to explore the latest in dual core and dual graphics technology at this free one hour event hosted by HP, AMD, and NVIDIA. To register visit http://www.hp.com/go/dualwebinar _______________________________________________ Owfs-developers mailing list Owfs-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/owfs-developers