| Index: emcore/trunk/tools/emcorefs/README | 
| — | — | @@ -5,8 +5,8 @@ | 
| 6 | 6 | \___|_| |_| |_|\____\___/|_| \_\_____|_|   |____/ | 
| 7 | 7 |  | 
| 8 | 8 | emCOREFS is a FUSE-based filesystem that uses emCORE's Monitor API | 
| 9 |  | -to provide communication with device's FS. It is not yet complete,
 | 
| 10 |  | -but most features are done. It runs on both Linux and Mac OS X.
 | 
|  | 9 | +to provide communication with device's FS. It is mostly complete, | 
|  | 10 | +and works well. It runs on both Linux and Mac OS X. | 
| 11 | 11 |  | 
| 12 | 12 | For communication with the device, this application uses libusb 1.0. | 
| 13 | 13 |  | 
| — | — | @@ -13,18 +13,21 @@ | 
| 14 | 14 | Building | 
| 15 | 15 | -------- | 
| 16 | 16 | You need: | 
| 17 |  | -1. GCC(<4.5) and GNU Make on Linux // Xcode on OS X
 | 
|  | 17 | +1. GCC 4.4 and GNU Make (Xcode on OS X) | 
| 18 | 18 | 2. pkg-config | 
| 19 | 19 | 3. libusb >= 1.0 | 
| 20 |  | -4. libfuse >= 2.8 on Linux // fuse4x on x64 OS X
 | 
|  | 20 | +4. libfuse >= 2.8 (or fuse4x on x64 OS X) | 
| 21 | 21 | 5. all dependencies of the above | 
| 22 | 22 |  | 
|  | 23 | +Installing needed packages on Ubuntu | 
|  | 24 | +sudo apt-get install gcc-4.4 make pkg-config libusb-1.0-0-dev libfuse-dev | 
|  | 25 | + | 
| 23 | 26 | Compiling: | 
| 24 |  | -make - standard build, no debug messages, only fatal errors on
 | 
| 25 |  | -    startup are shown.
 | 
|  | 27 | +standard build, no debug messages, only fatal errors on startup are shown. | 
|  | 28 | +$ make build/emcorefs | 
| 26 | 29 |  | 
| 27 |  | -make debug - debug build, some debug/error messages are shown.
 | 
| 28 |  | -    libusb debug messages are enabled, too.
 | 
|  | 30 | +debug build, some debug/error messages are shown. libusb debug messages are enabled, too. | 
|  | 31 | +$ make debug | 
| 29 | 32 |  | 
| 30 | 33 | You can prefix any of these with | 
| 31 | 34 | CFLAGS="-DDEBUG_USB_PACKETS" | 
| — | — | @@ -31,39 +34,38 @@ | 
| 32 | 35 | in order to have a dump of the usb traffic that's being sent and received. | 
| 33 | 36 |  | 
| 34 | 37 | Testing: | 
| 35 |  | -make test - run the build without FUSE debugging messages, going
 | 
| 36 |  | -    into the background if it connects to the device successfully.
 | 
|  | 38 | +test the connection and some basic emCORE functions. useful only to developers. | 
|  | 39 | +$ make build/emcore-test | 
|  | 40 | +$ ./build/emcore-test | 
| 37 | 41 |  | 
| 38 |  | -make testdebug - run the build in the foreground, showing FUSE debug
 | 
| 39 |  | -    messages in the terminal.
 | 
| 40 |  | -
 | 
| 41 | 42 | Running | 
| 42 | 43 | ------- | 
| 43 | 44 | You need FUSE >= 2.8 installed. (or fuse4x on x64 OS X) | 
| 44 |  | -Currently tested on:
 | 
| 45 |  | -- Linux (Ubuntu 11.04 x86)
 | 
| 46 |  | -- Mac OS X (10.6.8 x64)
 | 
|  | 45 | +Currently tested on Linux (Ubuntu 11.04 x86) and Mac OS X (10.6.8 x64). | 
| 47 | 46 |  | 
| 48 | 47 | Starting: ./emcorefs <mountpoint> | 
|  | 48 | + | 
| 49 | 49 | Stopping: fusermount -u <mountpoint as seen in /etc/mtab> (Linux) | 
| 50 | 50 | diskutil unmount <mountpoint as seen in /etc/mtab> (OS X) | 
|  | 51 | + | 
| 51 | 52 | Known bugs/issues | 
| 52 | 53 | ----------------- | 
| 53 |  | -* Write support not tested very well.
 | 
| 54 | 54 | * Running FUSE with multithreading breaks file reading because of | 
| 55 | 55 | the way these are implemented on emCORE's side. | 
| 56 | 56 | Workaround: use the "-s" option. | 
| 57 |  | -* Most errors are not handled properly, EIO (Input/output error) is
 | 
|  | 57 | +* Some errors are not handled properly, EIO (Input/output error) is | 
| 58 | 58 | given in many cases where there's a more descriptive error | 
| 59 | 59 | message available. Will be fixed in the future. | 
| 60 |  | -* Linking using gcc-4.5+ doesn't seem to work properly. You can set
 | 
| 61 |  | -    the desired GCC version with the GCC Makefile viariable.
 | 
| 62 |  | -    For example: GCC=gcc-4.4 make debug
 | 
|  | 60 | +* Rename/move in the filesystem itself is currently disabled, since | 
|  | 61 | +    the underlying filesystem call crashes the emCORE kernel. | 
|  | 62 | +    Workaround: move the file/dir on another filesystem, then rename | 
|  | 63 | +    it if needed, then move it back. | 
| 63 | 64 |  | 
| 64 | 65 | Future plans | 
| 65 | 66 | ------------ | 
| 66 | 67 | * Merge some functions that are doing similar tasks to reduce code | 
| 67 |  | -    duplication. Return proper error codes in FS operations.
 | 
|  | 68 | +    duplication. | 
|  | 69 | +* Return proper error codes in FS operations. | 
| 68 | 70 |  | 
| 69 | 71 | Bug reporting | 
| 70 | 72 | ------------- |