| 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 | -------------
|