Homebrew Official libiosuhax - PPC IPC library for communication to /dev/iosuhax

icw35

Well-Known Member
Member
Joined
Sep 22, 2010
Messages
542
Trophies
1
XP
706
Country
I compiled dimoks latest iosuhax fw.img and it works fine. Is this enough to use ftpii everywhere? Or do I need to compile this libiosu too? If I do, how do I link them?

Nvm. I just found the release notes on how to include :)
 

icw35

Well-Known Member
Member
Joined
Sep 22, 2010
Messages
542
Trophies
1
XP
706
Country
So, I compiled everything and got it all working. Wow. Simply wow. FTP everywhere...auto mount of SD everything works nicely!

FanBloodyTastic.

Thank you Dimok for this wonderful tool.
 
  • Like
Reactions: QuarkTheAwesome

dimok

Well-Known Member
OP
Member
Joined
Jan 11, 2009
Messages
728
Trophies
3
XP
2,635
Country
United States
Just curious... I haven't touched anything on the file system but do /dev/odd* work like in the unix world?

What I'm getting at is, is there a /dev/odd "file" (or similar) that could access the raw optical drive in order to dump encrypted disc images?

Do the storage devices even work like that? CAN they be copied like a file?

Just some thoughts...
Yep basically that's how it works yes. You can use the FSA_RawOpen() / Read/Write/Close functions of libiosuhax to access it even from PPC and dump whatever device you want in raw form to a file on the SD card.
 

brienj

Trying to avoid getting cancer
Member
Joined
Jan 3, 2016
Messages
1,232
Trophies
0
Website
twitter.com
XP
2,142
Country
United States
In that case; I'd love to see your solution to FAT USBs in homebrew rather than the constant complaints that the public solution isn't up to your standards. If you want homebrew developers to use a different set of tools; then give them a different set of tools. I know I'd like to keep dependencies to a minimum (especially if one of those is a CFW) but you seem to have forgotten that whatever sorcery you're using isn't available to anyone else. All we've had the privilege of receiving is your complaints and radio silence from Wulfy once public ARM-side stuff got rolling. It's not a good look; and if this CFW setup takes off don't be suprised if your tools don't get much developer support (in the unlikely event they are released at all).

I've seen some of the stuff you're working on (both you specifically and your team as a whole) and it's very cool. You lot have a knack for nice, elegant solutions; and I want things I make to be supportive of that. However; if you decide to keep criticizing public work in a non-constructive way like this and you keep failing to work with any of us while simultaneously expecting everyone to accommodate for developments nobody is allowed to see - don't be suprised when you find out (as @vgmoose would put it) that we didn't wait for Superman.

(P.S. I've noticed who I'm speaking for in this post is a bit nebulus. To clarify; I only speak for myself, my feelings and my experiences, although I feel a few hard-hitting homebrewers echo this sentiment.)
I echo your sentiment. I've been pretty non-existent for two months for a variety of reasons, and they aren't all because I've been busy ...

I hope to at least get something contributed soon, it all depends on a few things though.
 

ploggy

WAKA! WAKA!
Member
Joined
Aug 29, 2007
Messages
4,822
Trophies
2
XP
7,868
Country
United Kingdom
I echo your sentiment. I've been pretty non-existent for two months for a variety of reasons, and they aren't all because I've been busy ...

I hope to at least get something contributed soon, it all depends on a few things though.
Is there any chance you could add this new lib to Retroarch please? Retroarch WiiU is pretty good already but file loading times are deadly lol
and if this new lib could help even a little, it will be worth it :)

Thanks
 

BullyWiiPlaza

Nintendo Hacking <3
Member
Joined
Aug 2, 2014
Messages
1,932
Trophies
0
XP
2,477
Country
Germany
PPC IPC library for /dev/iosuhax:
Just use "make" and "make install". Then link the library with -liosuhax in your makefile and use it. There is a already build library in the releases section.
I successfully compiled the static library libiosuhax.a but I'm having trouble linking against it:
Code:
D:\Consoles\WiiU\Applications\Browser\tcpgecko>make
linking ... tcpgecko.elf
c:/devkitpro/devkitppc/bin/../lib/gcc/powerpc-eabi/4.8.2/../../../../powerpc-eabi/bin/ld.exe: cannot find -liosuhax
collect2.exe: error: ld returned 1 exit status
make[1]: *** [/d/Consoles/WiiU/Applications/Browser/tcpgecko/tcpgecko.elf] Error 1
make: *** [build] Error 2
The way I edited the Makefile is as follows:
Code:
LIBS    := -lz -liosuhax # the last part has been added
And I placed the libiosuhax.a in the project root directory:
anrvmqlb.png
I also tried placing it in the src folder/build folder and renaming but it always gave me the same compilation error. This might be pretty nooby but help is appreciated, thanks. My repository is here.
 
Last edited by BullyWiiPlaza,

Zarklord

Well-Known Member
Member
Joined
May 13, 2016
Messages
194
Trophies
0
Age
25
XP
268
Country
United States
I successfully compiled the static library libiosuhax.a but I'm having trouble linking against it:
Code:
D:\Consoles\WiiU\Applications\Browser\tcpgecko>make
linking ... tcpgecko.elf
c:/devkitpro/devkitppc/bin/../lib/gcc/powerpc-eabi/4.8.2/../../../../powerpc-eabi/bin/ld.exe: cannot find -liosuhax
collect2.exe: error: ld returned 1 exit status
make[1]: *** [/d/Consoles/WiiU/Applications/Browser/tcpgecko/tcpgecko.elf] Error 1
make: *** [build] Error 2
The way I edited the Makefile is as follows:
Code:
LIBS    := -lz -liosuhax # the last part has been added
And I placed the libiosuhax.a in the project root directory:
anrvmqlb.png
I also tried placing it in the src folder/build folder and renaming but it always gave me the same compilation error. This might be pretty nooby but help is appreciated, thanks. My repository is here.
you do "make install" after doing "make", which copies the files into the correct devkitPPC folder, and then do make on your project, you don't need to copy libiosuhax.a anywhere manually.
 

BullyWiiPlaza

Nintendo Hacking <3
Member
Joined
Aug 2, 2014
Messages
1,932
Trophies
0
XP
2,477
Country
Germany
you do "make install" after doing "make", which copies the files into the correct devkitPPC folder, and then do make on your project, you don't need to copy libiosuhax.a anywhere manually.
It doesn't seem like it copied itself there, why are you saying that? dimok said you need to edit the makefile and according to you, it works without but it doesn't:
Code:
D:\Consoles\WiiU\Applications\Browser\haxchi\installer>make
main.c
d:/Consoles/WiiU/Applications/Browser/haxchi/installer/src/main.c:14:21: fatal error: iosuhax.h: No such file or directory
 #include <iosuhax.h>
                     ^
compilation terminated.
make[1]: *** [main.o] Error 1
make: *** [build] Error 2
 
Last edited by BullyWiiPlaza,

nexusmtz

Well-Known Member
Member
Joined
Feb 17, 2016
Messages
1,386
Trophies
0
XP
1,425
Country
United States
The way I edited the Makefile is as follows:
LIBS := -lz -liosuhax # the last part has been added
And I placed the libiosuhax.a in the project root directory:
DRIVE-BY observation: Wouldn't you either specify the lib before the switches, or put the name of the library after the -l? Without looking at everything else, I'd have used -liosuhax if the lib was named iosuhax.a. Basically, look to see where it's finding z, and do that.
 
  • Like
Reactions: BullyWiiPlaza

BullyWiiPlaza

Nintendo Hacking <3
Member
Joined
Aug 2, 2014
Messages
1,932
Trophies
0
XP
2,477
Country
Germany
Uh, so I installed the library, included it in the current source file and used one function from it but I get that the function is undefined?
Code:
#include <iosuhax.h>
// ... random stuff inbetween
int res = IOSUHAX_Open(NULL);
Code:
D:\Consoles\WiiU\Applications\Browser\tcpgecko>make
pygecko.c
linking ... tcpgecko.elf
pygecko.o: In function `rungecko':
pygecko.c:(.text.rungecko+0x850): undefined reference to `IOSUHAX_Open'
collect2.exe: error: ld returned 1 exit status
make[1]: *** [/d/Consoles/WiiU/Applications/Browser/tcpgecko/tcpgecko.elf] Error 1
make: *** [build] Error 2
The iosuhax.h file says this:
Code:
int IOSUHAX_Open(const char *dev);  // if dev == NULL the default path /dev/iosuhax will be used
 
Last edited by BullyWiiPlaza,

Zarklord

Well-Known Member
Member
Joined
May 13, 2016
Messages
194
Trophies
0
Age
25
XP
268
Country
United States
Uh, so I installed the library, included it in the current source file and used one function from it but I get that the function is undefined?
Code:
#include<iosuhax.h>
// ... random stuff inbetween
int res = IOSUHAX_Open(NULL);
Code:
D:\Consoles\WiiU\Applications\Browser\tcpgecko>make
pygecko.c
linking ... tcpgecko.elf
pygecko.o: In function `rungecko':
pygecko.c:(.text.rungecko+0x850): undefined reference to `IOSUHAX_Open'
collect2.exe: error: ld returned 1 exit status
make[1]: *** [/d/Consoles/WiiU/Applications/Browser/tcpgecko/tcpgecko.elf] Error 1
make: *** [build] Error 2
The iosuhax.h file says this:
Code:
int IOSUHAX_Open(const char *dev);  // if dev == NULL the default path /dev/iosuhax will be used
hmm :unsure: did you run "make clean" and then "make" just to make sure it wasnt some weird compile bug?
 

BullyWiiPlaza

Nintendo Hacking <3
Member
Joined
Aug 2, 2014
Messages
1,932
Trophies
0
XP
2,477
Country
Germany
how odd...
just to double check you have
  1. done "make" then "make install" in libiosuhax directory
  2. -liosuhax is in your makefile
if thats all true and correct then i really have zero ideas
I realized I had to edit the Makefile still but another error:
Code:
LIBS    := -lz -liosuhax
Code:
c:/devkitPro/portlibs/ppc/lib\libiosuhax.a(iosuhax.o): In function `IOSUHAX_Open':
iosuhax.c:(.text.IOSUHAX_Open+0x3e): undefined reference to `IOS_Open'
iosuhax.c:(.text.IOSUHAX_Open+0x42): undefined reference to `IOS_Open'
iosuhax.c:(.text.IOSUHAX_Open+0x72): undefined reference to `IOS_Ioctl'
iosuhax.c:(.text.IOSUHAX_Open+0x76): undefined reference to `IOS_Ioctl'
iosuhax.c:(.text.IOSUHAX_Open+0xaa): undefined reference to `IOS_Close'
iosuhax.c:(.text.IOSUHAX_Open+0xb2): undefined reference to `IOS_Close'
collect2.exe: error: ld returned 1 exit status
make[1]: *** [/d/Consoles/WiiU/Applications/Browser/tcpgecko/tcpgecko.elf] Error 1
make: *** [build] Error 2
It doesn't find the IOSU functions referenced in the library which is odd. How come?
 
Last edited by BullyWiiPlaza,

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    NinStar @ NinStar: CRAZY HAMBURGER