Re: Wii WIFI support ideas

Malcolm <[email protected]> Sat, 12 Jul 2008 22:46:11 +0100
Newsgroups gmane.linux.ports.game-cube.devel
Message-ID <[email protected]>
2008/7/12 Maarten ter Huurne <[email protected]>:
> On Saturday 12 July 2008, Malcolm wrote:
>> 3) Write a driver that can send and receive UDP packets using IOS
>> sockets. Implement IP over UDP using TUN/TAP in a similar way to IP over
>> DNS. http://thomer.com/howtos/nstx.html
> A combination of TUN and exposing IOS sockets to user space would allow all
> three options:

Sounds like a plan.

> How does the demo sending work? Does the Wii act like an access point to the
> DS? Or are the Wii and the DS just two normal hosts connected to a normal
> access point?

The Wii sends beacons, so it's acting like an access point to the DS.
No other access point is used.
DS demo downloading isn't a standard protocol.

> The device nodes "/dev/net/ip/bottom" and "/dev/wl0" haven't been reverse
> engineered yet (at least, no public documentation seems to be available),
> maybe one of these allow lower level access?

That's what I'm hoping.

> Patching the IOS to add ioctls that allow you to send and receive raw IP
> packets would be sufficient. Still not an easy task, but not as hard as
> replacing IOS entirely.

I think IP packets is still too high level, ethernet packets are what
we want to send.
I'm not keen on patching/replacing IOS.

> Possibly another option:
>
> 7) Use ptrace() from an external process to intercept socket system calls
> from a process and perform IOS socket calls instead.
> - Not a transparent solution
> + Works with existing binaries

Using a library and LD_PRELOAD could work too.

-- 
Malcolm Parsons

-------------------------------------------------------------------------
Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
Studies have shown that voting for your favorite open source project,
along with a healthy diet, reduces your potential for chronic lameness
and boredom. Vote Now at http://www.sourceforge.net/community/cca08