Subversion Repositories freemyipod

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
771 user890104 1
                  ____ ___  ____  _____ _____ ____  
2
   ___ _ __ ___  / ___/ _ \|  _ \| ____|  ___/ ___| 
3
  / _ \ '_ ` _ \| |  | | | | |_) |  _| | |_  \___ \ 
4
 |  __/ | | | | | |___ |_| |  _ <| |___|  _|  ___) |
5
  \___|_| |_| |_|\____\___/|_| \_\_____|_|   |____/ 
6
 
7
emCOREFS is a FUSE-based filesystem that uses emCORE's Monitor API
903 user890104 8
to provide communication with device's FS. It is mostly complete,
9
and works well. It runs on both Linux and Mac OS X.
771 user890104 10
 
11
For communication with the device, this application uses libusb 1.0.
12
 
13
Building
14
--------
15
You need:
915 user890104 16
1. GCC and GNU Make (Xcode on OS X)
771 user890104 17
2. pkg-config
18
3. libusb >= 1.0
903 user890104 19
4. libfuse >= 2.8 (or fuse4x on x64 OS X)
800 user890104 20
5. all dependencies of the above
771 user890104 21
 
903 user890104 22
Installing needed packages on Ubuntu
915 user890104 23
sudo apt-get install gcc make pkg-config libusb-1.0-0-dev libfuse-dev
903 user890104 24
 
771 user890104 25
Compiling:
903 user890104 26
standard build, no debug messages, only fatal errors on startup are shown.
27
$ make build/emcorefs
800 user890104 28
 
903 user890104 29
debug build, some debug/error messages are shown. libusb debug messages are enabled, too.
30
$ make debug
771 user890104 31
 
800 user890104 32
You can prefix any of these with
33
CFLAGS="-DDEBUG_USB_PACKETS"
34
in order to have a dump of the usb traffic that's being sent and received.
35
 
771 user890104 36
Testing:
903 user890104 37
test the connection and some basic emCORE functions. useful only to developers.
38
$ make build/emcore-test
39
$ ./build/emcore-test
800 user890104 40
 
771 user890104 41
Running
42
-------
800 user890104 43
You need FUSE >= 2.8 installed. (or fuse4x on x64 OS X)
903 user890104 44
Currently tested on Linux (Ubuntu 11.04 x86) and Mac OS X (10.6.8 x64).
800 user890104 45
 
771 user890104 46
Starting: ./emcorefs <mountpoint>
903 user890104 47
 
800 user890104 48
Stopping: fusermount -u <mountpoint as seen in /etc/mtab> (Linux)
49
          diskutil unmount <mountpoint as seen in /etc/mtab> (OS X)
903 user890104 50
 
771 user890104 51
Known bugs/issues
52
-----------------
53
* Running FUSE with multithreading breaks file reading because of
54
    the way these are implemented on emCORE's side.
55
    Workaround: use the "-s" option.
903 user890104 56
* Some errors are not handled properly, EIO (Input/output error) is
771 user890104 57
    given in many cases where there's a more descriptive error
58
    message available. Will be fixed in the future.
903 user890104 59
* Rename/move in the filesystem itself is currently disabled, since
60
    the underlying filesystem call crashes the emCORE kernel.
61
    Workaround: move the file/dir on another filesystem, then rename
62
    it if needed, then move it back.
771 user890104 63
 
64
Future plans
65
------------
66
* Merge some functions that are doing similar tasks to reduce code
903 user890104 67
    duplication.
68
* Return proper error codes in FS operations.
771 user890104 69
 
70
Bug reporting
71
-------------
72
Main developer: Vencislav "user890104" Atanasov
73
How to contact: http://www.freemyipod.org/wiki/Contact
74
 
75
License terms
76
-------------
77
emCOREFS is distributed under the same license terms as emCORE.
78
 
79
emCORE is free software: you can redistribute it and/or
80
modify it under the terms of the GNU General Public License as
81
published by the Free Software Foundation, either version 2 of the
82
License, or (at your option) any later version.
83
 
84
emCORE is distributed in the hope that it will be useful,
85
but WITHOUT ANY WARRANTY; without even the implied warranty of
86
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
87
See the GNU General Public License for more details.
88
 
89
You should have received a copy of the GNU General Public License
90
along with emCORE.  If not, see <http://www.gnu.org/licenses/>.