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