Subversion Repositories freemyipod

Rev

Rev 829 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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