There is no problem with transfering files from/into original Xbox on (up to 7) Windows machine, it is either FTP through Filezilla (slow, unconvenient) or using Xplorer360 to put files on FATX formatted USB stick (there is a need for USB-to-Xbox converted but I've got one or two).
Problem is, I cannot replicate the second option on Linux - both USB FATX Formatter and Xplorer360 runs via Wine but they do not detect USB drive. Questions are:
Is it possible for those apps to detect USB when using Wine?
Is there a dedicated Linux software to format USB stick as FATX?
Is there any native Linux equivalent to Xplorer360?
I've been using Linux for years now, and I'm still no coder, but maybe if you post the build output (or the last 10 lines or so) it'll hint at what the problem is.
I use live anti-X once in a while, it runs on an ancient laptop I have and will boot a live distro to do a full HDD dump to the LAN. Can also restore like that. Nice distro.
Anti-X has no systemd, and as a Slackware user I completely understand 😀 (I do use Debian/raspbian on the server-like machines, which both have the pottering malware). But perhaps fatx/libfatx is expecting something a bit Ubuntu-y? Not sure what you would want to do about that.....
Just tried building this in a Debian 12 (bookworm) x64 virtual machine, and it looks like it should work
1root@debvm:~$ apt-get install libfuse-dev cmake pkg-config 2Reading package lists... Done 3Building dependency tree... Done 4Reading state information... Done 5pkg-config is already the newest version (0.29.2-1). 6pkg-config set to manually installed. 7The following additional packages will be installed: 8 cmake-data libjsoncpp24 librhash0 9Suggested packages: 10 cmake-doc ninja-build 11The following NEW packages will be installed: 12 cmake cmake-data libfuse-dev libjsoncpp24 librhash0 130 upgraded, 5 newly installed, 0 to remove and 0 not upgraded. 14Need to get 8,556 kB of archives. 15After this operation, 39.9 MB of additional disk space will be used. 16Do you want to continue? [Y/n] 17Get:1 http://deb.debian.org/debian bullseye/main amd64 cmake-data all 3.18.4-2+deb11u1 [1,725 kB] 18Get:2 http://deb.debian.org/debian bullseye/main amd64 libjsoncpp24 amd64 1.9.4-4 [78.9 kB] 19Get:3 http://deb.debian.org/debian bullseye/main amd64 librhash0 amd64 1.4.1-2 [129 kB] 20Get:4 http://deb.debian.org/debian bullseye/main amd64 cmake amd64 3.18.4-2+deb11u1 [5,593 kB] 21Get:5 http://deb.debian.org/debian bullseye/main amd64 libfuse-dev amd64 2.9.9-5 [1,031 kB] 22Fetched 8,556 kB in 2s (4,465 kB/s) 23Selecting previously unselected package cmake-data. 24(Reading database ... 113918 files and directories currently installed.) 25Preparing to unpack .../cmake-data_3.18.4-2+deb11u1_all.deb ... 26Unpacking cmake-data (3.18.4-2+deb11u1) ... 27Selecting previously unselected package libjsoncpp24:amd64. 28Preparing to unpack .../libjsoncpp24_1.9.4-4_amd64.deb ... 29Unpacking libjsoncpp24:amd64 (1.9.4-4) ... 30Selecting previously unselected package librhash0:amd64. 31Preparing to unpack .../librhash0_1.4.1-2_amd64.deb ... 32Unpacking librhash0:amd64 (1.4.1-2) ... 33Selecting previously unselected package cmake. 34Preparing to unpack .../cmake_3.18.4-2+deb11u1_amd64.deb ... 35Unpacking cmake (3.18.4-2+deb11u1) ... 36Selecting previously unselected package libfuse-dev:amd64. 37Preparing to unpack .../libfuse-dev_2.9.9-5_amd64.deb ... 38Unpacking libfuse-dev:amd64 (2.9.9-5) ... 39Setting up libfuse-dev:amd64 (2.9.9-5) ... 40Setting up libjsoncpp24:amd64 (1.9.4-4) ... 41Setting up librhash0:amd64 (1.4.1-2) ... 42Setting up cmake-data (3.18.4-2+deb11u1) ... 43Setting up cmake (3.18.4-2+deb11u1) ... 44Processing triggers for man-db (2.9.4-2) ... 45Processing triggers for libc-bin (2.31-13+deb11u7) ... 46root@debvm:~$ git clone https://github.com/mborgerson/fatx && cd fatx 47Cloning into 'fatx'... 48remote: Enumerating objects: 549, done. 49remote: Counting objects: 100% (288/288), done. 50remote: Compressing objects: 100% (124/124), done. 51remote: Total 549 (delta 198), reused 178 (delta 164), pack-reused 261 52Receiving objects: 100% (549/549), 299.29 KiB | 2.88 MiB/s, done. 53Resolving deltas: 100% (332/332), done. 54root@debvm:~/fatx$ mkdir build && cd build 55root@debvm:~/fatx/build$ cmake .. 56-- The C compiler identification is GNU 10.2.1 57-- The CXX compiler identification is GNU 10.2.1 58-- Detecting C compiler ABI info 59-- Detecting C compiler ABI info - done 60-- Check for working C compiler: /usr/bin/cc - skipped
…Show last 129 lines
61-- Detecting C compile features 62-- Detecting C compile features - done 63-- Detecting CXX compiler ABI info 64-- Detecting CXX compiler ABI info - done 65-- Check for working CXX compiler: /usr/bin/c++ - skipped 66-- Detecting CXX compile features 67-- Detecting CXX compile features - done 68-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.2") 69-- Checking for one of the modules 'fuse' 70-- Configuring done 71-- Generating done 72-- Build files have been written to: /root/fatx/build 73root@debvm:~/fatx/build$ make 74Scanning dependencies of target fatx 75[ 5%] Building C object CMakeFiles/fatx.dir/libfatx/fatx.c.o 76[ 10%] Building C object CMakeFiles/fatx.dir/libfatx/fatx_attr.c.o 77[ 15%] Building C object CMakeFiles/fatx.dir/libfatx/fatx_dev.c.o 78[ 20%] Building C object CMakeFiles/fatx.dir/libfatx/fatx_dir.c.o 79[ 25%] Building C object CMakeFiles/fatx.dir/libfatx/fatx_disk.c.o 80[ 30%] Building C object CMakeFiles/fatx.dir/libfatx/fatx_fat.c.o 81[ 35%] Building C object CMakeFiles/fatx.dir/libfatx/fatx_file.c.o 82[ 40%] Building C object CMakeFiles/fatx.dir/libfatx/fatx_log.c.o 83[ 45%] Building C object CMakeFiles/fatx.dir/libfatx/fatx_misc.c.o 84[ 50%] Building C object CMakeFiles/fatx.dir/libfatx/fatx_partition.c.o 85[ 55%] Building C object CMakeFiles/fatx.dir/libfatx/ext.c.o 86[ 60%] Linking C static library libfatx.a 87[ 60%] Built target fatx 88Scanning dependencies of target fatxfs 89[ 65%] Building C object fatxfs/CMakeFiles/fatxfs.dir/fatxfs_fuse.c.o 90[ 70%] Linking C executable fatxfs 91[ 70%] Built target fatxfs 92Scanning dependencies of target gfatx_autogen 93[ 75%] Automatic MOC and UIC for target gfatx 94[ 75%] Built target gfatx_autogen 95Scanning dependencies of target gfatx 96[ 80%] Building CXX object gfatx/CMakeFiles/gfatx.dir/gfatx_autogen/mocs_compilation.cpp.o 97[ 85%] Building CXX object gfatx/CMakeFiles/gfatx.dir/main.cpp.o 98[ 90%] Building CXX object gfatx/CMakeFiles/gfatx.dir/mainwindow.cpp.o 99[ 95%] Building CXX object gfatx/CMakeFiles/gfatx.dir/fatxfilesystemmodel.cpp.o 100[100%] Linking CXX executable gfatx 101[100%] Built target gfatx 102root@debvm:~/fatx/build$ cd fatxfs/ 103root@debvm:~/fatx/build/fatxfs$ ./fatxfs 104please specify device path 105root@debvm:~/fatx/build/fatxfs$ ./fatxfs --help 106FATXFS - Userspace FATX Filesystem Driver 107 108Usage: fatxfs <device> <mountpoint> [<options>] 109 or: fatxfs <device> <mountpoint> --drive=c|e|x|y|z|f [<options>] 110 or: fatxfs <device> <mountpoint> --offset=<offset> --size=<size> [<options>] 111 112General options: 113 -o opt, [opt...] mount options 114 -h --help print help 115 -V --version print version 116 117FATXFS options: 118 --drive=<letter> mount a partition by its drive letter 119 --offset=<offset> specify the offset (in bytes) of a partition manually 120 --size=<size> specify the size (in bytes) of a partition manually 121 --sector-size=<size> specify the size (in bytes) of a device sector (default is 512) 122 --log=<log path> enable fatxfs logging 123 --loglevel=<level> control the log output level (a higher value yields more output) 124 125Disk formatting options: 126 --format=<format> specify the format (retail, f-takes-all) to initialize the device to 127 --sectors-per-cluster=<size> specify the sectors per cluster when initializing non-retail partitions (default is 128) 128 --destroy-all-existing-data acknowledge that device formatting will destroy all existing data 129 130FUSE options: 131 -d -o debug enable debug output (implies -f) 132 -f foreground operation 133 -s disable multi-threaded operation 134 135 -o allow_other allow access to other users 136 -o allow_root allow access to root 137 -o auto_unmount auto unmount on process termination 138 -o nonempty allow mounts over non-empty file/dir 139 -o default_permissions enable permission checking by kernel 140 -o fsname=NAME set filesystem name 141 -o subtype=NAME set filesystem type 142 -o large_read issue large read requests (2.4 only) 143 -o max_read=N set maximum size of read requests 144 145 -o hard_remove immediate removal (don't hide files) 146 -o use_ino let filesystem set inode numbers 147 -o readdir_ino try to fill in d_ino in readdir 148 -o direct_io use direct I/O 149 -o kernel_cache cache files in kernel 150 -o [no]auto_cache enable caching based on modification times (off) 151 -o umask=M set file permissions (octal) 152 -o uid=N set file owner 153 -o gid=N set file group 154 -o entry_timeout=T cache timeout for names (1.0s) 155 -o negative_timeout=T cache timeout for deleted names (0.0s) 156 -o attr_timeout=T cache timeout for attributes (1.0s) 157 -o ac_attr_timeout=T auto cache timeout for attributes (attr_timeout) 158 -o noforget never forget cached inodes 159 -o remember=T remember cached inodes for T seconds (0s) 160 -o nopath don't supply path if not necessary 161 -o intr allow requests to be interrupted 162 -o intr_signal=NUM signal to send on interrupt (10) 163 -o modules=M1[:M2...] names of modules to push onto filesystem stack 164 165 -o max_write=N set maximum size of write requests 166 -o max_readahead=N set maximum readahead 167 -o max_background=N set number of maximum background requests 168 -o congestion_threshold=N set kernel's congestion threshold 169 -o async_read perform reads asynchronously (default) 170 -o sync_read perform reads synchronously 171 -o atomic_o_trunc enable atomic open+truncate support 172 -o big_writes enable larger than 4kB writes 173 -o no_remote_lock disable remote file locking 174 -o no_remote_flock disable remote file locking (BSD) 175 -o no_remote_posix_lock disable remove file locking (POSIX) 176 -o [no_]splice_write use splice to write to the fuse device 177 -o [no_]splice_move move data while splicing to the fuse device 178 -o [no_]splice_read use splice to read from the fuse device 179 180Module options: 181 182[iconv] 183 -o from_code=CHARSET original encoding of file names (default: UTF-8) 184 -o to_code=CHARSET new encoding of the file names (default: UTF-8) 185 186[subdir] 187 -o subdir=DIR prepend this directory to all paths (mandatory) 188 -o [no]rellinks transform absolute symlinks to relative
Thanks for your effort. Meanwhile I had to go back to Win7 on that PC so I'll try it once more once I reinstall Linux again, maybe some Ubuntu based this time.
BTW I'll ask why Wine could not see USB drive in various apps, is there a workaround for that? It would be much simpler to just run those tools like Xplorer360 on Linux with all their QOL features and user friendly GUI.
Wine is a bit of a blind spot for me, I've not used it much in a long time. I went from using nearly all FOSS on Windows, to nearly all FOSS on FOSS... I cut the windows-only stuff whilst still on Windows.
But my thoughts are to do with a 64/32 bit thing: if your Windows program is old then it might be using 32bit WINE on 64bit Linux, which uses the 32bit linux compatibility libs for Linux. Otherwise, probably some kind of permissions thing.....
Work around? Virtualise Windows, USB pass-through.
BTW I'll ask why Wine could not see USB drive in various apps, is there a workaround for that? It would be much simpler to just run those tools like Xplorer360 on Linux with all their QOL features and user friendly GUI.
No, not yet. The basic problem is a program like Xplorer360 expects raw device access, using the windows device/driver APIs... however that access is unavailable as the host (linux) drivers have claimed the raw device. For this sort of thing to work, WINE would need a 'bridge' code/driver to match the windows API calls to the underlying linux hardware driver. An analogous case in WINE is wrt USB game controllers.... which typically work. That happens because the 'bridge' as it were, is the USB HID descriptors (not the device itself)... ie; the windows program doesn't have raw device access using the windows (driver) API, but instead the HID events generated by the linux game-controller driver are translated into windows USB controller HID events, and that's what the windows program sees. You cannot, for instance, run any windows program designed for that game controller (to change any settings, leds, etc etc) and have it work, because it's expecting the windows driver to provide the raw device access such programs need.
I just used the fuse fatx package the other day to pull a load of installed games from an Xbox 360 internal drive to play with the Xenia emulator... It worked perfectly.
My understanding is that it should also work fine with the OG Xbox drive, as long as it is 'unlocked'.
It comes with fuse mount integration, fsck utility and mkfs.fatx format tool.
progman.exewrote on 2023-11-16, 15:30:Just tried building this in a Debian 12 (bookworm) x64 virtual machine, and it looks like it should work […] Show full quote
Just tried building this in a Debian 12 (bookworm) x64 virtual machine, and it looks like it should work
1root@debvm:~$ apt-get install libfuse-dev cmake pkg-config 2Reading package lists... Done 3Building dependency tree... Done 4Reading state information... Done 5pkg-config is already the newest version (0.29.2-1). 6pkg-config set to manually installed. 7The following additional packages will be installed: 8 cmake-data libjsoncpp24 librhash0 9Suggested packages: 10 cmake-doc ninja-build 11The following NEW packages will be installed: 12 cmake cmake-data libfuse-dev libjsoncpp24 librhash0 130 upgraded, 5 newly installed, 0 to remove and 0 not upgraded. 14Need to get 8,556 kB of archives. 15After this operation, 39.9 MB of additional disk space will be used. 16Do you want to continue? [Y/n] 17Get:1 http://deb.debian.org/debian bullseye/main amd64 cmake-data all 3.18.4-2+deb11u1 [1,725 kB] 18Get:2 http://deb.debian.org/debian bullseye/main amd64 libjsoncpp24 amd64 1.9.4-4 [78.9 kB] 19Get:3 http://deb.debian.org/debian bullseye/main amd64 librhash0 amd64 1.4.1-2 [129 kB] 20Get:4 http://deb.debian.org/debian bullseye/main amd64 cmake amd64 3.18.4-2+deb11u1 [5,593 kB] 21Get:5 http://deb.debian.org/debian bullseye/main amd64 libfuse-dev amd64 2.9.9-5 [1,031 kB] 22Fetched 8,556 kB in 2s (4,465 kB/s) 23Selecting previously unselected package cmake-data. 24(Reading database ... 113918 files and directories currently installed.) 25Preparing to unpack .../cmake-data_3.18.4-2+deb11u1_all.deb ... 26Unpacking cmake-data (3.18.4-2+deb11u1) ... 27Selecting previously unselected package libjsoncpp24:amd64. 28Preparing to unpack .../libjsoncpp24_1.9.4-4_amd64.deb ... 29Unpacking libjsoncpp24:amd64 (1.9.4-4) ... 30Selecting previously unselected package librhash0:amd64. 31Preparing to unpack .../librhash0_1.4.1-2_amd64.deb ... 32Unpacking librhash0:amd64 (1.4.1-2) ... 33Selecting previously unselected package cmake. 34Preparing to unpack .../cmake_3.18.4-2+deb11u1_amd64.deb ... 35Unpacking cmake (3.18.4-2+deb11u1) ... 36Selecting previously unselected package libfuse-dev:amd64. 37Preparing to unpack .../libfuse-dev_2.9.9-5_amd64.deb ... 38Unpacking libfuse-dev:amd64 (2.9.9-5) ... 39Setting up libfuse-dev:amd64 (2.9.9-5) ... 40Setting up libjsoncpp24:amd64 (1.9.4-4) ... 41Setting up librhash0:amd64 (1.4.1-2) ... 42Setting up cmake-data (3.18.4-2+deb11u1) ... 43Setting up cmake (3.18.4-2+deb11u1) ... 44Processing triggers for man-db (2.9.4-2) ... 45Processing triggers for libc-bin (2.31-13+deb11u7) ... 46root@debvm:~$ git clone https://github.com/mborgerson/fatx && cd fatx 47Cloning into 'fatx'... 48remote: Enumerating objects: 549, done. 49remote: Counting objects: 100% (288/288), done. 50remote: Compressing objects: 100% (124/124), done. 51remote: Total 549 (delta 198), reused 178 (delta 164), pack-reused 261 52Receiving objects: 100% (549/549), 299.29 KiB | 2.88 MiB/s, done. 53Resolving deltas: 100% (332/332), done. 54root@debvm:~/fatx$ mkdir build && cd build 55root@debvm:~/fatx/build$ cmake .. 56-- The C compiler identification is GNU 10.2.1 57-- The CXX compiler identification is GNU 10.2.1 58-- Detecting C compiler ABI info 59-- Detecting C compiler ABI info - done 60-- Check for working C compiler: /usr/bin/cc - skipped
…Show last 129 lines
61-- Detecting C compile features 62-- Detecting C compile features - done 63-- Detecting CXX compiler ABI info 64-- Detecting CXX compiler ABI info - done 65-- Check for working CXX compiler: /usr/bin/c++ - skipped 66-- Detecting CXX compile features 67-- Detecting CXX compile features - done 68-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.2") 69-- Checking for one of the modules 'fuse' 70-- Configuring done 71-- Generating done 72-- Build files have been written to: /root/fatx/build 73root@debvm:~/fatx/build$ make 74Scanning dependencies of target fatx 75[ 5%] Building C object CMakeFiles/fatx.dir/libfatx/fatx.c.o 76[ 10%] Building C object CMakeFiles/fatx.dir/libfatx/fatx_attr.c.o 77[ 15%] Building C object CMakeFiles/fatx.dir/libfatx/fatx_dev.c.o 78[ 20%] Building C object CMakeFiles/fatx.dir/libfatx/fatx_dir.c.o 79[ 25%] Building C object CMakeFiles/fatx.dir/libfatx/fatx_disk.c.o 80[ 30%] Building C object CMakeFiles/fatx.dir/libfatx/fatx_fat.c.o 81[ 35%] Building C object CMakeFiles/fatx.dir/libfatx/fatx_file.c.o 82[ 40%] Building C object CMakeFiles/fatx.dir/libfatx/fatx_log.c.o 83[ 45%] Building C object CMakeFiles/fatx.dir/libfatx/fatx_misc.c.o 84[ 50%] Building C object CMakeFiles/fatx.dir/libfatx/fatx_partition.c.o 85[ 55%] Building C object CMakeFiles/fatx.dir/libfatx/ext.c.o 86[ 60%] Linking C static library libfatx.a 87[ 60%] Built target fatx 88Scanning dependencies of target fatxfs 89[ 65%] Building C object fatxfs/CMakeFiles/fatxfs.dir/fatxfs_fuse.c.o 90[ 70%] Linking C executable fatxfs 91[ 70%] Built target fatxfs 92Scanning dependencies of target gfatx_autogen 93[ 75%] Automatic MOC and UIC for target gfatx 94[ 75%] Built target gfatx_autogen 95Scanning dependencies of target gfatx 96[ 80%] Building CXX object gfatx/CMakeFiles/gfatx.dir/gfatx_autogen/mocs_compilation.cpp.o 97[ 85%] Building CXX object gfatx/CMakeFiles/gfatx.dir/main.cpp.o 98[ 90%] Building CXX object gfatx/CMakeFiles/gfatx.dir/mainwindow.cpp.o 99[ 95%] Building CXX object gfatx/CMakeFiles/gfatx.dir/fatxfilesystemmodel.cpp.o 100[100%] Linking CXX executable gfatx 101[100%] Built target gfatx 102root@debvm:~/fatx/build$ cd fatxfs/ 103root@debvm:~/fatx/build/fatxfs$ ./fatxfs 104please specify device path 105root@debvm:~/fatx/build/fatxfs$ ./fatxfs --help 106FATXFS - Userspace FATX Filesystem Driver 107 108Usage: fatxfs <device> <mountpoint> [<options>] 109 or: fatxfs <device> <mountpoint> --drive=c|e|x|y|z|f [<options>] 110 or: fatxfs <device> <mountpoint> --offset=<offset> --size=<size> [<options>] 111 112General options: 113 -o opt, [opt...] mount options 114 -h --help print help 115 -V --version print version 116 117FATXFS options: 118 --drive=<letter> mount a partition by its drive letter 119 --offset=<offset> specify the offset (in bytes) of a partition manually 120 --size=<size> specify the size (in bytes) of a partition manually 121 --sector-size=<size> specify the size (in bytes) of a device sector (default is 512) 122 --log=<log path> enable fatxfs logging 123 --loglevel=<level> control the log output level (a higher value yields more output) 124 125Disk formatting options: 126 --format=<format> specify the format (retail, f-takes-all) to initialize the device to 127 --sectors-per-cluster=<size> specify the sectors per cluster when initializing non-retail partitions (default is 128) 128 --destroy-all-existing-data acknowledge that device formatting will destroy all existing data 129 130FUSE options: 131 -d -o debug enable debug output (implies -f) 132 -f foreground operation 133 -s disable multi-threaded operation 134 135 -o allow_other allow access to other users 136 -o allow_root allow access to root 137 -o auto_unmount auto unmount on process termination 138 -o nonempty allow mounts over non-empty file/dir 139 -o default_permissions enable permission checking by kernel 140 -o fsname=NAME set filesystem name 141 -o subtype=NAME set filesystem type 142 -o large_read issue large read requests (2.4 only) 143 -o max_read=N set maximum size of read requests 144 145 -o hard_remove immediate removal (don't hide files) 146 -o use_ino let filesystem set inode numbers 147 -o readdir_ino try to fill in d_ino in readdir 148 -o direct_io use direct I/O 149 -o kernel_cache cache files in kernel 150 -o [no]auto_cache enable caching based on modification times (off) 151 -o umask=M set file permissions (octal) 152 -o uid=N set file owner 153 -o gid=N set file group 154 -o entry_timeout=T cache timeout for names (1.0s) 155 -o negative_timeout=T cache timeout for deleted names (0.0s) 156 -o attr_timeout=T cache timeout for attributes (1.0s) 157 -o ac_attr_timeout=T auto cache timeout for attributes (attr_timeout) 158 -o noforget never forget cached inodes 159 -o remember=T remember cached inodes for T seconds (0s) 160 -o nopath don't supply path if not necessary 161 -o intr allow requests to be interrupted 162 -o intr_signal=NUM signal to send on interrupt (10) 163 -o modules=M1[:M2...] names of modules to push onto filesystem stack 164 165 -o max_write=N set maximum size of write requests 166 -o max_readahead=N set maximum readahead 167 -o max_background=N set number of maximum background requests 168 -o congestion_threshold=N set kernel's congestion threshold 169 -o async_read perform reads asynchronously (default) 170 -o sync_read perform reads synchronously 171 -o atomic_o_trunc enable atomic open+truncate support 172 -o big_writes enable larger than 4kB writes 173 -o no_remote_lock disable remote file locking 174 -o no_remote_flock disable remote file locking (BSD) 175 -o no_remote_posix_lock disable remove file locking (POSIX) 176 -o [no_]splice_write use splice to write to the fuse device 177 -o [no_]splice_move move data while splicing to the fuse device 178 -o [no_]splice_read use splice to read from the fuse device 179 180Module options: 181 182[iconv] 183 -o from_code=CHARSET original encoding of file names (default: UTF-8) 184 -o to_code=CHARSET new encoding of the file names (default: UTF-8) 185 186[subdir] 187 -o subdir=DIR prepend this directory to all paths (mandatory) 188 -o [no]rellinks transform absolute symlinks to relative
gfatx built too
I know this is old, but I tried to use this on Debian 10. It seems to be the only option to read a Xbox OG harddisk on Linux.
The tool does compile, but in the end I don't have the "fatxfs" executable, but only a "gfatx" one which should be a utility to browse, but without mounting capabilities. It skips compiling fatxfs and I don't know what's going wrong.
My output is like this:
1root@ws52:~# git clone https://github.com/mborgerson/fatx && cd fatx 2Cloning into 'fatx'... 3remote: Enumerating objects: 549, done. 4remote: Counting objects: 100% (288/288), done. 5remote: Compressing objects: 100% (124/124), done. 6remote: Total 549 (delta 198), reused 178 (delta 164), pack-reused 261 (from 1) 7Receiving objects: 100% (549/549), 299.29 KiB | 5.54 MiB/s, done. 8Resolving deltas: 100% (332/332), done. 9root@ws52:~/fatx# mkdir build && cd build 10root@ws52:~/fatx/build# cmake .. 11-- The C compiler identification is GNU 8.3.0 12-- The CXX compiler identification is GNU 8.3.0 13-- Check for working C compiler: /usr/bin/cc 14-- Check for working C compiler: /usr/bin/cc -- works 15-- Detecting C compiler ABI info 16-- Detecting C compiler ABI info - done 17-- Detecting C compile features 18-- Detecting C compile features - done 19-- Check for working CXX compiler: /usr/bin/c++ 20-- Check for working CXX compiler: /usr/bin/c++ -- works 21-- Detecting CXX compiler ABI info 22-- Detecting CXX compiler ABI info - done 23-- Detecting CXX compile features 24-- Detecting CXX compile features - done 25-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29") 26-- Checking for one of the modules 'fuse' 27-- Configuring done 28-- Generating done 29-- Build files have been written to: /root/fatx/build 30root@ws52:~/fatx/build# make 31Scanning dependencies of target fatx 32[ 5%] Building C object CMakeFiles/fatx.dir/libfatx/fatx.c.o 33[ 11%] Building C object CMakeFiles/fatx.dir/libfatx/fatx_attr.c.o 34[ 16%] Building C object CMakeFiles/fatx.dir/libfatx/fatx_dev.c.o 35[ 22%] Building C object CMakeFiles/fatx.dir/libfatx/fatx_dir.c.o 36[ 27%] Building C object CMakeFiles/fatx.dir/libfatx/fatx_disk.c.o 37[ 33%] Building C object CMakeFiles/fatx.dir/libfatx/fatx_fat.c.o 38[ 38%] Building C object CMakeFiles/fatx.dir/libfatx/fatx_file.c.o 39[ 44%] Building C object CMakeFiles/fatx.dir/libfatx/fatx_log.c.o 40[ 50%] Building C object CMakeFiles/fatx.dir/libfatx/fatx_misc.c.o 41[ 55%] Building C object CMakeFiles/fatx.dir/libfatx/fatx_partition.c.o 42[ 61%] Building C object CMakeFiles/fatx.dir/libfatx/ext.c.o 43[ 66%] Linking C static library libfatx.a 44[ 66%] Built target fatx 45Scanning dependencies of target gfatx_autogen 46[ 72%] Automatic MOC and UIC for target gfatx 47[ 72%] Built target gfatx_autogen 48Scanning dependencies of target gfatx 49[ 77%] Building CXX object gfatx/CMakeFiles/gfatx.dir/main.cpp.o 50[ 83%] Building CXX object gfatx/CMakeFiles/gfatx.dir/mainwindow.cpp.o 51[ 88%] Building CXX object gfatx/CMakeFiles/gfatx.dir/fatxfilesystemmodel.cpp.o 52[ 94%] Building CXX object gfatx/CMakeFiles/gfatx.dir/gfatx_autogen/mocs_compilation.cpp.o 53[100%] Linking CXX executable gfatx 54[100%] Built target gfatx 55root@ws52:~/fatx/build#
Because it requires Windows 10 minimum while I use Linux primary. And my Xbox hard drives are P-ATA while most Windows 10 capable PC's don't have two P-ATA channels anymore.
If FatXplorer worked on Windows XP I definitely used it.
$ cd fatx
$ mkdir build
$ cd build/
$ cmake ..
CMake Deprecation Warning at CMakeLists.txt:18 (cmake_minimum_required):
Compat […] Show full quote
$ cd fatx
$ mkdir build
$ cd build/
$ cmake ..
CMake Deprecation Warning at CMakeLists.txt:18 (cmake_minimum_required):
Compatibility with CMake < 3.5 will be removed from a future version of
CMake.
Update the VERSION argument <min> value or use a ...<max> suffix to tell
CMake that the project does not need compatibility with older versions.
-- The C compiler identification is GNU 13.3.0
-- The CXX compiler identification is GNU 13.3.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found PkgConfig: /usr/bin/pkg-config (found version "1.8.1")
-- Checking for one of the modules 'fuse'
-- Configuring done (0.7s)
-- Generating done (0.0s)
-- Build files have been written to: /home/megatron/src/fatx/build
$ make
[ 4%] Building C object CMakeFiles/fatx.dir/libfatx/fatx.c.o
[ 9%] Building C object CMakeFiles/fatx.dir/libfatx/fatx_a […] Show full quote
$ make
[ 4%] Building C object CMakeFiles/fatx.dir/libfatx/fatx.c.o
[ 9%] Building C object CMakeFiles/fatx.dir/libfatx/fatx_attr.c.o
[ 14%] Building C object CMakeFiles/fatx.dir/libfatx/fatx_dev.c.o
[ 19%] Building C object CMakeFiles/fatx.dir/libfatx/fatx_dir.c.o
[ 23%] Building C object CMakeFiles/fatx.dir/libfatx/fatx_disk.c.o
[ 28%] Building C object CMakeFiles/fatx.dir/libfatx/fatx_fat.c.o
[ 33%] Building C object CMakeFiles/fatx.dir/libfatx/fatx_file.c.o
[ 38%] Building C object CMakeFiles/fatx.dir/libfatx/fatx_log.c.o
[ 42%] Building C object CMakeFiles/fatx.dir/libfatx/fatx_misc.c.o
[ 47%] Building C object CMakeFiles/fatx.dir/libfatx/fatx_partition.c.o
[ 52%] Building C object CMakeFiles/fatx.dir/libfatx/ext.c.o
[ 57%] Linking C static library libfatx.a
[ 57%] Built target fatx
[ 61%] Building C object fatxfs/CMakeFiles/fatxfs.dir/fatxfs_fuse.c.o
[ 66%] Linking C executable fatxfs
[ 66%] Built target fatxfs
[ 66%] Built target gfatx_autogen_timestamp_deps
[ 71%] Automatic MOC and UIC for target gfatx
[ 71%] Built target gfatx_autogen
[ 76%] Building CXX object gfatx/CMakeFiles/gfatx.dir/gfatx_autogen/mocs_compilation.cpp.o
[ 80%] Building CXX object gfatx/CMakeFiles/gfatx.dir/main.cpp.o
[ 85%] Building CXX object gfatx/CMakeFiles/gfatx.dir/mainwindow.cpp.o
[ 90%] Building CXX object gfatx/CMakeFiles/gfatx.dir/fatxfilesystemmodel.cpp.o
[ 95%] Linking CXX executable gfatx
[100%] Built target gfatx
$ ls fatxfs/
CMakeFiles cmake_install.cmake fatxfs Makefile
$ ls gfatx/
CMakeFiles cmake_install.cmake gfatx gfatx_autogen […] Show full quote
$ ls fatxfs/
CMakeFiles cmake_install.cmake fatxfs Makefile
$ ls gfatx/
CMakeFiles cmake_install.cmake gfatx gfatx_autogen Makefile