libntfs_ext library compilation with cellsdk

My opinion is that JB format should be avoided if possible. NTFS and games in folder format - I don't think it will happen. Estwald already included a lot of stuff to make libntfs_ext a system driver (hooking the standard syscalls), but I think that for a vsh prx it will be a lot to ask.

That's exactly why I was asking you...
Given the obvious limitations in play, my original hopes for further integration for instance in netiso & rawseciso, have kind of diminished somewhat...

It's true that JB folders aren't the future although I am often amazed at the number of users still using it.
Anyway I was hoping for ntfs ps2iso support at least... Atm ntfs support by copying the iso internally is far from ideal..
 
I also added a prepNTFS() function :) to webMAN. It will scan ntfs drives at startup and after "refrsh xml" is pressed.

p.s. Hmm.. there are some memory issues with it... I'll look into it.
I didn't look at your source code yet but yesterday i removed psl1ght support for libntfs_ext in my repo. So there is no more definitions from psl1ght functions to cellsdk functions.This is the link to the commit https://github.com/freddy38510/libntfs_ext/commit/1ef26a87f94b65b227f35036783693ad0eb81258

By the way, you did a great job. I never could go through those steps with my actual knowledges.
 
I also added a prepNTFS() function :) to webMAN. It will scan ntfs drives at startup and after "refrsh xml" is pressed.

p.s. Hmm.. there are some memory issues with it... I'll look into it.

I highly recommend debugging on DEX, a friend of mine patched "is_debuggable" from lv2 to attach any process with Target Manager/Debugger, including vsh

9fc41b9038d87268f34b7362b29ac4ac.jpg


Btw this offset is 4.81 dex lv2

fdeb6e759e8a7a8676fce20f25a2a74a.png


62c8deeb72e4fa0701dade72e07fcb3a.jpg


1999f98dd2f83d33798c8010f1c1705b.jpg


c3e4bdd3ac54fc7acf24071284522a3e.jpg


Sent from my iPhone using Tapatalk
 
Last edited:
I also added a prepNTFS() function :) to webMAN. It will scan ntfs drives at startup and after "refrsh xml" is pressed.

p.s. Hmm.. there are some memory issues with it... I'll look into it.

WOW! It's impressive the progress that you have achieved in only few days.

BTW I tested webMAN 1.45 and found this issue:
- Listing the root through ftp, I noticed that everytime that I listed my ntfs device, it was listed with a random number (e.g. /dev_ntfs70 or /dev_ntfs30). However, I could only it access using /dev_ntfs00. I think this is a bug in libntfs_ext, since I had this issue on IRISMAN too.
 
@Joonie: Well it is ok now :) good we have malloc/free now ;) webMAN now looks for ntfs games on start up (and when refresh xml/html is selected).

@aldostools: It is not really random... There is a bug with "ntfsMountAll" or with "ntfsUnmount"... I'm using a drive with 3 ntfs partitions and the first time I mount it I get ntfs0..ntfs2, second time ntfs3..ntfs5 and third time ntfs6..ntfs8... And after the third mount/unmount it is not possible to mount anymore because it reaches the limit active devices/partitions.
 
deank said:
@aldostools: It is not really random... There is a bug with "ntfsMountAll" or with "ntfsUnmount"... I'm using a drive with 3 ntfs partitions and the first time I mount it I get ntfs0..ntfs2, second time ntfs3..ntfs5 and third time ntfs6..ntfs8... And after the third mount/unmount it is not possible to mount anymore because it reaches the limit active devices/partitions.

Ok, the point is that even if the drive is listed as ntfs3 it only can be accessed as ntfs0.
IIRC when ntfs_dirnext returns ntfs3, ntfs4..., it should be listed as ntfs0, ntfs1, ... etc. (i.e. always starting in 0)
 
I don't have this issue. Drive is always mounted as /dev_ntfs00 to /dev_ntfs20 (three partitions).
Can you redownload and test it again?

Currently the only downside is that once the PS3 is started with ntfs drive connected - no more ntfs drives can be added/detected.
If the PS3 is started without any ntfs drives - there is no problem to plug 1 or 2 drives at any later time.

New drives (if none attached) are looked for each time refresh xml/html is clicked or when ftp session is created.

Dean
 
I think webMAN 1.45n is ready for official release with ntfs support.

Thanks to @freddy38510 for the good job with libntfs_ext cellsdk changes, @aldostools for the information about the vsh exported libraries, @Joonie and @bguerville for the tests. Hopefully still there are users who use webMAN over the feature-rich webMAN MOD. :)

* Added access to ntfs drives via FTP
* Up to 2 drives x 4 partitions supported (/dev_ntfs00 to /dev_ntfs70)
* No need for external prepNTFS (ntfs drives are scanned at system startup or if later attached - when refresh html/xml buttons are pressed or when FTP session is created)

http://deanbg.com/webMAN_1.45.zip (all the stuff)
http://deanbg.com/webftp_server.sprx (182KB Cobra+NetSRV+NTFS support)

Source can be compiled with or without NTFS support by defining USE_NTFS in main.c and changing the Makefile.

Dean

p.s. If you downloaded the files earlier - redownload them, because the FTP was left into read-only mode.
 
Last edited:
I think webMAN 1.45n is ready for official release with ntfs support.

Thanks to @freddy38510 for the good job with libntfs_ext cellsdk changes, @aldostools for the information about the vsh exported libraries, @Joonie and @bguerville for the tests. Hopefully still there are users who use webMAN over the feature-rich webMAN MOD. :)

* Added access to ntfs drives via FTP
* Up to 2 drives x 4 partitions supported (/dev_ntfs00 to /dev_ntfs70)
* No need for external prepNTFS (ntfs drives are scanned at system startup or if later attached - when refresh html/xml buttons are pressed or when FTP session is created)

http://deanbg.com/webMAN_1.45.zip (all the stuff)
http://deanbg.com/webftp_server.sprx (182KB Cobra+NetSRV+NTFS support)

Source can be compiled with or without NTFS support by defining USE_NTFS in main.c and changing the Makefile.

Dean

p.s. If you downloaded the files earlier - redownload them, because the FTP was left into read-only mode.

If you don't mind, I have added a few extra features to your awesome release:
- NTFS volumes now can be listed also through the web file manager
- NTFS files can be downloaded through web
- Added support for multi-part ISOs from ps3netsrv (supported by my fork of ps3netsrv)
- Added support for 4.80 DEX

SRC+BIN: http://aldostools.org/temp/test/webMAN_1.45n_av.rar

NOTE: This is NOT webMAN MOD... this is webMAN "vanilla".
 
I think webMAN 1.45n is ready for official release with ntfs support.

Thanks to @freddy38510 for the good job with libntfs_ext cellsdk changes, @aldostools for the information about the vsh exported libraries, @Joonie and @bguerville for the tests. Hopefully still there are users who use webMAN over the feature-rich webMAN MOD. :)

* Added access to ntfs drives via FTP
* Up to 2 drives x 4 partitions supported (/dev_ntfs00 to /dev_ntfs70)
* No need for external prepNTFS (ntfs drives are scanned at system startup or if later attached - when refresh html/xml buttons are pressed or when FTP session is created)

http://deanbg.com/webMAN_1.45.zip (all the stuff)
http://deanbg.com/webftp_server.sprx (182KB Cobra+NetSRV+NTFS support)

Source can be compiled with or without NTFS support by defining USE_NTFS in main.c and changing the Makefile.

Dean

p.s. If you downloaded the files earlier - redownload them, because the FTP was left into read-only mode.
And to be fair, the libntfs_ext port to cellsdk was not done solely by @freddy38510...
@Zar also provided his wisdom in certain parts...
 
wow, I knew you were cooking some magic stuff. I didn't expect you to finish so fast.

Thank you


It is not really random... There is a bug with "ntfsMountAll" or with "ntfsUnmount"... I'm using a drive with 3 ntfs partitions and the first time I mount it I get ntfs0..ntfs2, second time ntfs3..ntfs5 and third time ntfs6..ntfs8... And after the third mount/unmount it is not possible to mount anymore because it reaches the limit active devices/partitions.

I noticied it too, look in the sample i wrote, it mount the partition with ntfsmount then ntfsmountdevice then ntfsmountall and everytime the number is increased. I didn't rly investigate but I think the issue come from 'unmount'.
I didn't notice this issue in ManaGunZ.
 
Last edited:
And to be fair, the libntfs_ext port to cellsdk was not done solely by @freddy38510...
@Zar also provided his wisdom in certain parts...
Yes that's right. I just did the "easy" part of the porting. I learned a lot of things with you guys @Zar and @bguerville, even if i never wrote a single line of C langage code before.

Later, i will update the prx sample based on the work Deank done. That will be a starting point of documentation to anybody for futures developments with the library.

Ps: I still consider that the library needs more tests/fixes/optimizations in its actual state.
 
I think webMAN 1.45n is ready for official release with ntfs support.

http://deanbg.com/webMAN_1.45.zip (all the stuff)
http://deanbg.com/webftp_server.sprx (182KB Cobra+NetSRV+NTFS support)
I just downloaded the zip file. I'm trying to update the prx sample on my repo, it seems that you made some modifications in the library (i talked about "libntfs_prx.a" which is 795ko).

Could you tell us how you fixed that ?
Code:
undefined reference to `mbsrtowcs'
undefined reference to `mbsinit'
undefined reference to `mbrtowc'
undefined reference to `wcrtomb'

Or simply provide the source code of the library for prx, if you don't mind. Maybe just unistr.c file, if this is the only one involved.

Edit: I fixed that by undefine HAVE_MBSINIT in config.h
Code:
/* Define to 1 if you have the `mbsinit' function. */
#undef HAVE_MBSINIT

Is that right ? The prx compiles fine like that.
 
Last edited:
I just downloaded the zip file. I'm trying to update the prx sample on my repo, it seems that you made some modifications in the library (i talked about "libntfs_prx.a" which is 795ko).

Could you tell us how you fixed that ?
Code:
undefined reference to `mbsrtowcs'
undefined reference to `mbsinit'
undefined reference to `mbrtowc'
undefined reference to `wcrtomb'

Or simply provide the source code of the library for prx, if you don't mind. Maybe just unistr.c file, if this is the only one involved.

Edit: I fixed that by undefine HAVE_MBSINIT in config.h
Code:
/* Define to 1 if you have the `mbsinit' function. */
#undef HAVE_MBSINIT

Is that right ? The prx compiles fine like that.
Iirc deank used the libc.c file in the wMM project to take care of these undefined references...
Am not sure yet why he needed a new lib for prx because I was able to include the original library without having to modify it at all...
 
Last edited:
Iirc deank used the libc.c file in the wMM project to take care of these undefined references...
Yes i know, i'm using it too. When i compile the prx sample linking with the library by deank, it compiles fine. When i linking with the library on my repo i got these undefined references.

Edit:
Code:
[freddy:~/Desktop/webMan 1.45/lib] $ nm -A *.a | grep mbrtowc
[freddy:~/Desktop/webMan 1.45/lib] $ nm -A *.a | grep mbtowc
libntfs_prx.a:unistr.ppu.o:                 U .mbtowc

[freddy:~/Desktop/libntfs_ext] $ nm -A *.a | grep mbrtowc
libntfs_ext.a:unistr.ppu.o:                 U .mbrtowc
 
Last edited:
Edit: I fixed that by undefine HAVE_MBSINIT in config.h
Code:
/* Define to 1 if you have the `mbsinit' function. */
#undef HAVE_MBSINIT

Is that right ? The prx compiles fine like that.

Yes, that's exactly what is needed, but that is not enough. ntfsLock/ntfsUnlock must be changed (with simple "return") and CACHE_DEFAULT_PAGE_COUNT in ntfs.h should not be more than 16 (although higher values work but cost a lot of memory).

@bguerville: I didn't use libc.c from wMM. I added to webMAN's libc.c the external imports (but not as #defines).
 
Yes, that's exactly what is needed.

@bguerville: I didn't use libc.c from wMM. I added to webMAN's libc.c the external imports (but not as #defines).
Yes. Am looking at the file now & realising that there are no defines in it, I thought from previous posts that you were gonna define those but either I was wrong or you changed your mind..

Why did you need to make a different lib for prx? The original lib worked fine did it not?
 

Similar threads

Back
Top