Nintendo DS Wireless Networking Guide Version 0.43
Copyright 2005 - 2006, TJ Nardi (MS3FGX@gmail.com)
================================================================================
= Contents =
================================================================================
1. Introduction & Overview
1.1...Introduction
1.2...Why was this Guide Written?
2. Setting up your DS
2.1...Introduction to WiFi Setup on the DS
2.2...Configuring a WiFi Connection on the DS
2.2.1...Step 1
2.2.2...Step 2
2.2.2.1...Automatic Configuration
2.2.2.2...Manual Configuration
2.2.2.3...AOSS Configuration
2.2.3...Step 3
2.3...Configuring a Connection with the Nintendo Wi-Fi USB Connector
2.4...Wi-Fi Connection Options Menu
2.4.1...System Information
2.4.2...Erase Nintendo WFC Configuration
2.4.3...Transfer Nintendo WFC Configuration
3. Setting Up Your Own AP (Basic)
3.1...Using a WiFi Router
3.1.1...Using a Stand-Alone AP
3.2...Using the Nintendo Wi-Fi USB Connector
3.2.1...Requirements
3.2.2...Pre-Installation
3.2.3...Installation
3.3...Nintendo Wi-Fi USB Connector Versus Wireless Router
3.3.1...Compatibility
3.3.2...Security
3.3.3...Efficiency & Convenience
3.3.4...Verdict
4. Setting Up Your Own AP (Advanced)
4.1...Configuring a Software AP in GNU/Linux
4.1.1...WiFi Options in GNU/Linux
4.1.2...Setting up the Hardware
4.1.3...Setting up the Software
4.1.3.1...IP Ranges
4.1.3.2...Routing
4.1.3.3...Static IP
4.1.3.4...DHCP
4.1.4...The Complete DS_AP Script
4.2...Configuring a Software AP in Windows
4.3...Configuring a Software AP in Mac OS
4.4...Hacking the Nintendo Wi-Fi USB Connector
4.4.1...Using the Nintendo Wi-Fi USB Connector with AOL
5. Network Security
6. FAQ & Troubleshooting
7. Reference
7.1...Networking Glossary
7.2...Software AP Compatible WiFi Hardware and Drivers
7.2.1...GNU/Linux
7.2.2...Windows
7.2.3...Mac OS
7.3...Finding the Current TCP/IP Information
7.3.1...Under GNU/Linux
7.3.2...Under Windows
7.3.3...Under Mac OS
7.4...Tips for Increasing WiFi Range
7.4.1...Sync Rate
7.4.2...Antennas
7.4.3...Router Firmware
8. Thinking Out Loud
8.1...Rate Autonegotiation
8.2...WiFi vs. NiFi
8.3...Nintendo Wi-Fi USB Connector vs. Software AP
8.4...What Happened to WPA?
8.5...A Tale of Two Consoles
8.6...Ad-Hoc on the DS
8.7...Monkey See, Monkey Don't
8.8...The Cisco Kid
8.9...Escaping Captivity
8.9.1...Nintendo Wi-Fi USB Connector
8.9.2...MAC Cloning
8.9.3...Nintendo DS Browser
9. Misc
9.1...Version Information
9.2...Future Additions
9.3...Help Wanted
9.4...Credits
================================================================================
= 1. Introduction & Overview =
================================================================================
--------------------------------------------------------------------------------
- 1.1 Introduction -
--------------------------------------------------------------------------------
I welcome you to the first guide I have ever submitted. The reasoning behind
this guide, and my goals with it, are covered elsewhere. I just thought I would
start the guide off with a little general background information about it and
myself.
I am a Network Administrator by profession. Some would say that networking is
my life, and others would say that I have no life at all. Both parties would
probably be correct. I saw the opportunity to use my knowledge to help others
on a fairly large scale when the DS was announced to have WiFi capability, and
this guide is the end result.
Considerable time and money has been spent researching this guide. I have spent
hundreds of dollars to buy the hardware needed to test all of the things you
will read here. Hardware that I had no use for, but could not in good
conscience write about unless I had in my own hands.
This document was written entirely by myself, but even though I wrote this on
my own, I have had support and help from others, and they are all thanked in
the credits.
I also encourage anyone who reads this guide to email me with their impressions
or suggestions. I am always open to new ideas for the guide, so drop me a line
if you think there is something I should cover. Even if you don't have a
technical comment or idea, general feedback is always welcome as well.
If you want more one-on-one help with anything I have covered in the guide, or
something is not exactly clear to you from what I have written, feel free to
email me with that as well. A few people have already emailed me with the
problems they were having, and we were able to work out a solution together,
which is what this is all about in the first place.
A word of warning though, I feel that if you chose to use a text-based method
of communicating with others, you should at least form that text properly. So
if you are going to email me, then make sure it is done in proper English. I
hate "133t speak", and if I receive an email written in it, I assure you, I
will redefine the word "unhelpful".
Finally, perhaps a little technical information on this document itself. This
guide was written completely in vim, and spell checked with Aspell. I did not
use word wrap, and instead manually entered carriage returns at or before 80
characters as I wrote it. Big fun.
I hope that you enjoy this guide, and more importantly, I hope that it helps
you.
--------------------------------------------------------------------------------
- 1.2 Why was this Guide Written? -
--------------------------------------------------------------------------------
The answer to that question is not what you might think.
Prior to the opus you are currently reading, I had never written a single FAQ
or guide of any sort. This is because I never felt there was anything worth
writing about, and if there was, certainly somebody else would do it.
But, coming to the end of 2005, no serious WiFi guide had been written for the
DS, and even worse, there was even more confusion then usual, as Nintendo had
released their own WiFi adapter, and it had gotten to the point that some
people actually believed that the Nintendo Wi-Fi USB Connector was the only way
to get online.
At the same time, the Nintendo Wi-Fi USB Connector troubled me, as it put heavy
limits on what sort of hardware and software it would work with. Limits that
did not have to exist. Many people out there, including myself, do not use
Windows XP, or Windows at all for that matter. Nintendo obviously did not care
too much about the Linux and Mac OS users of the world, or even people running
older versions of Windows itself.
So, due in no small part to my own greed, my initial idea was to write a guide
that would detail how to use nearly any WiFi device as an AP for the DS in
Linux. Then I realized that (other than myself) roughly 4 people would benefit
from such a guide.
Then I said, "Fine, I will expand that to Mac OS as well." Alright, that gives
us 10 more people.
So far, I have 14 people on the edge of their seats.
I was starting to figure this was useless, so I came to the conclusion that I
couldn't just write about setting up a software AP in Linux, or even in Linux
and Mac OS. I would need to cover everything possible.
I would have to cover creating a soft AP in all 3 major operating systems. But,
what good is a guide on creating and setting up an AP, if you don't tell people
how to connect their device to it? So I would also have to cover how to setup
the DS with WiFi. Of course, many people just want to use their standard
wireless routers, so I would have to cover that as well. While on this grand
adventure of networking, I might as well document my observations and
experiments too...
So, from my simple initial goal, we now have the guide you are currently
reading. A document that, I hope, will help everyone who reads it, from people
who just want to get their DS working with their existing router, to Linux
users who want to fight the system.
That is why this guide is called the "DS Wireless Networking Guide", rather than
something like "WiFi FAQ". This document is not intended to be a simple FAQ
giving obvious answers to equally obvious questions. This is intended to be the
Bible of the DS's WiFi abilities. It is a technical look at the DS, WiFi
technology, and networking in general.
================================================================================
= 2. Setting up your DS =
================================================================================
--------------------------------------------------------------------------------
- 2.1 Introduction to WiFi Setup on the DS -
--------------------------------------------------------------------------------
So here is where things get murky. Because of Nintendo talking so much about
their designated public APs, and the WiFi Adapter, some people have gotten the
idea that the DS does not work with normal WiFi hardware, and needs to get
online using special Nintendo software/hardware. This is completely untrue, and
here we will talk about getting the DS online with your average home wireless
router.
A few details on the WiFi setup for the DS. Unlike the PSP, the DS itself has
no capacity to configure it's WiFi hardware, search for APs, do a connection
test, etc.
This ability is added by each online game for the DS. They all contain the same
identical WiFi setup and testing application, so one explanation will cover
every online DS game ever released. How convenient.
In addition, contrary to what many people assumed, WiFi configuration
information is not saved to the game cart, but is written to free space on the
firmware EEPROM inside the DS itself. This means that once you configure your
DS for WiFi connectivity in one game, you don't have to do it for other games.
There is enough free space on the firmware EEPROM to hold 3 separate WiFi
connection profiles. An interesting note is that, unlike the PSP, you don't
need to actually tell the system which profile to use, it will automatically
determine which one of the connection profiles to use, without user
intervention (actually, you can't manually select which profile to use even if
you wanted to).
So now that we know some specifics about the WiFi configuration for the DS,
let's figure out how to do it.
--------------------------------------------------------------------------------
- 2.2 Configuring a WiFi Connection on the DS -
--------------------------------------------------------------------------------
Each game is different, so you will need to find out how to get into the WiFi
configuration system by reading the manual for your game. Assuming you have
found it, let's go over the basic setup.
Once you get into the WiFi setup, you will be presented by a large blue button
that says "Nintendo Wi-Fi Settings" and a smaller orange button that says
"Options". For now, we are only interested in the Settings menus, so click on
that button.
From here on, the setup process is separated into 3 major parts. Let's take a
look at each one, and what each does.
--------------------------------------------------------------------------------
- 2.2.1 Step 1 -
--------------------------------------------------------------------------------
For step one, you will chose which WiFi profile you want to work with. Again,
the DS can hold 3 such profiles, so you can have one for home, work, and a
spare for public APs. How you use these profiles is up to you, so chose which
one you want to setup, and click it.
--------------------------------------------------------------------------------
- 2.2.2 Step 2 -
--------------------------------------------------------------------------------
Here you must choose how you want to configure your DS. Either Automatically,
Manually, or with an AOSS device. Let's talk a bit about each one, and give an
example setup.
--------------------------------------------------------------------------------
- 2.2.2.1 Automatic Configuration -
--------------------------------------------------------------------------------
This is the mode most people are looking for; this will enable you to get
online with your DS with almost any WiFi router out there. At home or away,
if you want to get online with the DS, this is the first part of the
configuration you are going to be looking at.
To enter this mode, click on the button, "Search for an Access Point". You
should then get the message "Searching for an access point..." along with a
noise. This will take a few seconds, and afterwards, you will be presented with
a list of all the AP's detected in range (if any where found).
For each AP, you will see three pieces of information:
The first, and perhaps most relevant is the name of the WiFi network, or SSID.
This is the name that was given to the network to help identify it. You will be
using this name to figure out what device you are actually connecting to.
Second is an image of a lock. Very simply, if the lock is open, there is no
encryption on the network and you will be able to immediately connect to it. If
the lock is closed, that means encryption is in place. The lock can be two
different colors. Red indicates WEP, which means you will need the WEP key for
that network if you want to connect to it. The lock could also be gray, which
means the network is using WPA. At this time (more on this in my "Thinking out
Loud" section), WEP is the only supported form of encryption for the DS, so if
you see a gray lock, you cannot connect to that network.
The last piece of information is a simple indication of signal strength. This
should be pretty simple for most people to decipher, since it is very similar
to the signal strength indicator on cell phones. The more bars, the better the
signal. Additionally, the icon itself will be green, yellow, or red, indicating
the condition of the connection. Green is obviously the best, and red is
either very low, or no connection at all. You might as well ignore any APs that
show up consistently as red, as it is likely the signal is not strong enough to
connect.
Now that we know what all that means, take a look at the list and decide which
one you want to connect to. Simply click on it, and it will automatically setup
the connection. If a WEP key is required, a prompt will come up asking you for
it.
You will then see a message confirming that the setup has been saved, and then
it will ask to run a Connection Test (Step 3). Assuming everything worked and
you have a good signal, you should get a message saying "Connection Successful"
and it should return to the main WiFi setup menu. If you got this message, you
are ready to play online.
Now, this is obviously the easiest and most applicable of the connection
options. However, it depends on a few things which may be a problem depending
on the network setup. First, it depends that the network you are connecting to
has SSID Broadcast enabled. This is not always true, as many people chose to
cloak their SSID to make it less obvious to other WiFi users. Second, this
depends on a DHCP server on the network. A WiFi router contains a DHCP server
element (though it might not be enabled on the particular router you are
connecting to), but a more advanced network, using WiFi APs and not
consumer-type hardware may or may not have network-wide DHCP enabled.
If you fall into a group where either of these is a problem, then the next
option is for you.
--------------------------------------------------------------------------------
- 2.2.2.2 Manual Configuration -
--------------------------------------------------------------------------------
This mode is for more advanced setups. Probably 80% of users will not need this
option, but for those of us that do, be glad it is here.
To get here, get yourself to Step 2 as described earlier, and click on "Manual
Setup".
I assume that if you are at this screen, you already know what you are doing.
You know what an IP address is, you know what a subnet mask is, and you don't
need to waste time reading detailed explanations about them, and I certainly
don't need to waste time writing them. If you do need a more detailed
explanation about these terms than I am giving here, take a look at the
"Networking Glossary".
You are given the following options in the Manual Setup:
+------------------------------------------------------------------------------+
| Setting | Description |
+------------------------------------------------------------------------------+
| SSID | This is the name of the WiFi network you |
| | want to connect to. |
|------------------------------------------------------------------------------|
| WEP Key | Enter the WEP key here, if WEP is enabled. |
|------------------------------------------------------------------------------|
| Auto-obtain IP Address | This gives you the option to disable or |
| | enable DHCP. |
|------------------------------------------------------------------------------|
| IP Address | This allows you to manually assign an IP |
| | address for the DS to use. |
|------------------------------------------------------------------------------|
| Subnet Mask | This allows you to manually assign the |
| | subnet mask for the DS to use. |
|------------------------------------------------------------------------------|
| Gateway | This is the IP for whatever router you are |
| | using to connect out to the internet. |
|------------------------------------------------------------------------------|
| Primary DNS | These options allow you to assign |
| Secondary DNS | primary and backup DNS servers. |
+------------------------------------------------------------------------------+
At the top there is also a button labeled "Test Connection" which you can use
to make a quick check of the current settings. At the bottom there are buttons
to Cancel and Save Settings. When you choose Save Settings, you will be
prompted to perform a Connection Test (Step 3), let it run, and if it passes,
you are ready to play online.
Again, if you have gotten this far, you likely don't need any more guidance
than that. The Manual mode is a nice addition for advanced users, but does lack
MAC Spoofing and Proxy support, which might be a problem for some people.
--------------------------------------------------------------------------------
- 2.2.2.3 AOSS Configuration -
--------------------------------------------------------------------------------
AOSS (AirStation One-Touch Secure System) is a system designed by Buffalo
Technology to automatically setup a secure WiFi connection. This attempts to
address a major problem with WiFi technology, or perhaps more accurately, the
use of WiFi technology. Due to the popularity of WiFi, it is in use by many
people who do not really understand the technology and how to properly use it.
This has lead to literally millions of insecure WiFi networks all over the
world, posing a massive security risk for individuals, businesses, and indeed,
the Internet itself.
To use the AOSS feature, your router needs to support AOSS. I'll save you the
time of doing the research, and tell you, it almost certainly does not support
AOSS. AOSS is (at the time of this writing, and the time of the launch of
Nintendo Wi-Fi Connection) a new, and fairly rare technology. Unless you have
a very recent router from Buffalo Technology, you aren't going to have AOSS.
But for those who do, or will in the future, here is a quick run down of the
AOSS setup:
Navigate to Step 2 as done before, and then click the button that says "AOSS".
The DS will then begin scanning for a signal from the AOSS device. While it is
doing this, go to your router and locate the AOSS button on the front panel.
Hold the button down until it starts to blink, then let go. After a minute or
so, the DS and the router should have worked out the proper connection
settings, and the DS will inform you of this, and save the settings to the
firmware. Again, like in the other modes, it will also prompt you to start a
Connection Test. If the Connection Test is successful, you are ready to play
online.
--------------------------------------------------------------------------------
- 2.2.3 Step 3 -
--------------------------------------------------------------------------------
Step 3 is simply the Connection Test that the DS WiFi setup program runs after
you configure any WiFi connection.
In this Step, the DS will test the WiFi connection by first associating with
the AP, authenticating, and then contacting the Nintendo Wi-Fi Connection
servers.
You have no control over any of this, and if all goes well, Step 3 should
simply say "Connection Successful", and return to the main menu. If any part
of the test fails, it will give you a fairly detailed error message about what
exactly it failed to do, and will also give you contact information for
Nintendo of America. In addition, it may give you an error code that you can
put into a form on NintendoWiFi.com and try to find a solution there.
The vast array of problems that can come up with WiFi and all the error codes
and messages the DS may display are well beyond the scope of this document.
The only thing I can tell you is that the DS does at least tell you what it
failed to do, so you at least have a place to start your troubleshooting.
--------------------------------------------------------------------------------
- 2.3 Configuring a Connection with the Nintendo Wi-Fi USB Connector -
--------------------------------------------------------------------------------
Nintendo realized that as common as WiFi is today, there are still many people
that do not have access to it, and are intimidated by technology too much to
try and setup their own router just to use the Nintendo Wi-Fi Connection.
Because of this, Nintendo has developed the "Nintendo Wi-Fi USB Connector".
This device is a USB WiFi adapter that can be used to get the DS (and only the
DS) online without the luxury of a real WiFi router. This is great for some
people, but it's relatively high price and OS requirements have left quite a
few people unhappy with it.
To use the Nintendo Wi-Fi USB Connector, we don't go through the usual steps
to configure the WiFi. Instead, from the the WiFi setup, click the button that
says "Connect to your Nintendo Wi-Fi USB Connector". You will be prompted to
setup the Wi-Fi Connector on your computer, and to press A once you have done
so.
You should already have the Connector setup on your computer, but if you have
not, then jump to Section 3.2 and read how to do so. If you have your Connector
setup already, then just keep reading here.
Press A on the DS to connect it to the Wi-Fi Connector. After a few seconds,
you should get a pop-up on your computer saying that a user wants to connect to
the Nintendo Wi-Fi Connection. Open up the Registration Tool by double clicking
the WFC logo, and you will see a list of DS's that are trying to connect to
your computer. To identify individual DS units, the list shows the nickname
that the user entered on that DS. Simply right-click on the DS you want to
manage, and either Allow or Deny access for that DS.
After granting permission for the DS, you will see a message on the DS that
says it has saved the configuration options, and it will ask you to run a
Connection Test, as usual. If the test passes, you are ready to play online.
One note on the Wi-Fi Connector, you can only have 5 people connected up to the
computer at once. This is probably not a problem for most sane individuals, but
it is still something that should be noted.
--------------------------------------------------------------------------------
- 2.4 Wi-Fi Connection Options Menu -
--------------------------------------------------------------------------------
Here I will briefly describe the functions that are available under the
"Options" menu on the main screen on the "Nintendo Wi-Fi Connection Setup"
program.
--------------------------------------------------------------------------------
- 2.4.1 System Information -
--------------------------------------------------------------------------------
On this screen, you will see both the DS's hardware MAC address, which you may
need if you are using MAC filtering on your AP.
Under this, you will see your DS's Nintendo Wi-Fi Connection ID, which is a
unique ID created for your DS the first time it logged onto the WFC. It is what
identifies your system and links it with your "My Nintendo" account for stat
tracking.
--------------------------------------------------------------------------------
- 2.4.2 Erase Nintendo WFC Configuration -
--------------------------------------------------------------------------------
As the name implies, this option will completely erase all of the WiFi settings
on your DS, as well as your WFC ID. You will only want to use this option if
you are selling the DS, or want to completely start over with your WFC career.
*IMPORTANT*
Once deleted, there is no way to restore this information or your WFC ID.
--------------------------------------------------------------------------------
- 2.4.3 Transfer Nintendo WFC Configuration -
--------------------------------------------------------------------------------
Since WFC identifies users based on their WFC ID rather than the standard
username and password combination, once you sign on to WFC with a DS, that must
be the DS you use at all times, or else your stats will not be kept track of.
This however causes a problem if you ever want to get a new DS. Thankfully,
Nintendo saw ahead and added this feature, which will allow you to transfer
your WFC ID and settings to another DS.
Let's call your old DS with your WFC information "DS A", and the new DS that
you wish to transfer the information into, "DS B".
Start DS A with a WFC game, get into the "Wi-Fi Connection Option" menu, and
select "Transfer Nintendo WFC Configuration". The DS will then show you some
information about what you are about to do. Hit "OK" on both of these screens.
Now, on DS B, start the system and go to "DS Download Play", you should see
"Nintendo WFC Configuration Transfer" come up. Select it and press "Yes" to
download it into your system. Back on DS A, you must select "Yes" to transfer
the information into DS B.
If there is already WFC information on DS B, it will warn you, and you will
have to hit "OK" to overwrite it.
After that, the transfer will begin. This should take around 30 seconds. After
the transfer, select "OK" on both DS A and DS B, which will save the changes
and shut down both systems.
As far as WFC is aware, DS B has now taken the identity of DS A. Your WFC ID
has been transferred, as well as your configured WiFi profiles. All of your
Friend Codes will still be valid, and your new DS will also remain linked to
your "My Nintendo" account.
*IMPORTANT*
Transferring the WFC settings from one DS to another permanently deletes the
information from the old DS. Only transfer WFC settings if you are sure that is
what you want.
================================================================================
= 3. Setting Up Your Own AP (Basic) =
================================================================================
For the vast majority of computer users out there, there are two main options
for setting up your own AP in your home.
You can either buy a wireless router (or a stand-alone AP to add to your
current wired router) or buy the Nintendo Wi-Fi USB Connector. Personally, for
many reasons, I would suggest the router.
Not only does it add a hardware firewall to your network, it is a much more
capable device for the price, compared to the fairly high price of the
Connector, which can't be used for anything else. Also, the router is
independent of the OS on the computers it is connected to, which means people
running Linux, Mac OS, and older versions of Windows, can all use the router
along with your DS.
But regardless, I must be objective as possible, and describe all
possibilities, so in this section we will cover the two major options.
--------------------------------------------------------------------------------
- 3.1 Using a WiFi Router -
--------------------------------------------------------------------------------
Not to get into a rant here, but the device you know as a router isn't actually
a router.
The average SOHO (Small Office Home Office) "router" is a combination of 2 or
more devices. In the case of a wired router, it is a combination of an actual
router, and a 10/100 switch. In the case of a WiFi router, then you are talking
about a device made up of a router, a 10/100 switch, and a WiFi AP.
Not to shatter your world perspective there, but I wanted to at least clear up
the misconception. It is just easier to market these combination devices as
"routers" to the public. It is also easier to type router than to type out
what it really is, so I might as well refer to it as such as well.
First of all, there is no way I can adequately describe the setup of every
WiFi router out there. There are just too many brands, models, and options.
What I can do is point you to the official list of tested routers by Nintendo:
http://nintendowifi.com/customersupport/supportedRouters.do
If you don't have a WiFi router, and want to get one to use the Nintendo Wi-Fi
Connection, this is a good a place as any to check for suggestions. Linksys
makes the best consumer-grade routers available today, so if you are going to
buy a router, do yourself a favor and get yourself the Linksys WRT54G. Yes,
there are cheaper routers, and those routers are almost all of the ones with a
low rating. You get what you pay for, plain and simple.
As for setting up each router, Nintendo has already done that work for you as
well:
http://nintendowifi.com/consumerservice/routerSetup.do
Beyond that, there is not much I have to say about this part. Nintendo has
already done a far better job then I can testing routers and detailing their
setup. Follow their guides, and you will have no problems.
--------------------------------------------------------------------------------
- 3.1.1 Using a Stand-Alone AP -
--------------------------------------------------------------------------------
I felt this was better suited as a note to the main router section since they
are so similar in concept.
As I talked about in the beginning of this section, the normal consumer grade
"wireless router" is a combination of many networking devices, including a WiFi
AP. So then as you may have guessed, it is possible to get a wired router, and
buy an add-on AP to give the router WiFi capabilities.
This is a good concept, but in the real world is not terribly practical. The
problem here is that most WiFi APs worth buying (or in other words, aren't
trash) easily cost as much if not more than a brand new SOHO router. In
addition, Nintendo has done no testing with these devices, nor have they
detailed setup guides for the different models and brands of them out there.
That means that if you choose to go this route, you are not only likely to pay
more than you have to, but you have no assurance the end result is going to
work, and are completely alone on the setup.
If you can, do yourself a favor, and buy a complete WiFi router.
--------------------------------------------------------------------------------
- 3.2 Using the Nintendo Wi-Fi USB Connector -
--------------------------------------------------------------------------------
The setup for the Wi-Fi Connector is pretty straight forward, there isn't a
whole lot you need to do, or much that can go wrong (as long as you follow all
of the directions, anyway).
The most likely problem you will face is if you use a software firewall. You
will need to allow the Wi-Fi Connector software though the firewall, but
unfortunately some of these products do not work properly with the Wi-Fi
Connector, and so that isn't always possible. Due to the amount of firewall
products out there, I can't advise on how to correctly configure each one to
work with the Wi-Fi Connector software. You will have to check the help files,
or the developer's website, to find out how to allow programs though the
firewall, and what (if any) adjustments need to be made for the Wi-Fi Connector
to work with it). The Nintendowifi.com website also contains some information
on software firewalls which might help you if you run into a problem.
--------------------------------------------------------------------------------
- 3.2.1 Requirements -
--------------------------------------------------------------------------------
There are a few requirements you need to meet to be able to use the Wi-Fi
Connector. Check to make sure your setup is compatible before you purchase, or
try to install, the Connector.
You will need:
Broadband Internet
Windows XP
USB 2.0
A few notes on these requirements:
The source of the Internet connection does not really matter. Technically, it
doesn't even have to be broadband. All that matters is you have a network
interface on your machine that can connect out to the Internet in some way.
This interface can also be wired or wireless. So for example, if your router is
not compatible with the DS, but you have a laptop equipped with a wireless
adapter and a free USB port, you could use the Connector with that to get the
DS online.
Windows XP is required for the Wi-Fi Connector to work. It does not work on any
other version of Microsoft Windows. Be sure you understand this before you
purchase it.
The Wi-Fi Connector does not work with USB 1.0 or USB Hubs. Be sure you have
one free USB 2.0 port before you purchase the Connector. The Connector comes
with a USB extension cable, so don't worry if your only free port is in the
back of the computer, you can use the extension cable to bring the actual
Connector to the front of the machine. If you do not have USB 2.0 in your
computer, you can purchase a USB 2.0 PCI card for around $20 - $30 at most
retailers, such as Radio Shack, CompUSA, or BestBuy.
--------------------------------------------------------------------------------
- 3.2.2 Pre-Installation -
--------------------------------------------------------------------------------
Before you do anything, go to the Nintendowifi.com site and download the latest
version of the Wi-Fi Connector software. The version on the CD that came with
your Connector is likely out of date, and there are important fixes in the
latest versions.
Don't insert the Wi-Fi Connector until the installation process tells you it is
time to. If you plug the Connector in first, it will start the "New Hardware
Wizard", and it will not be able to find the appropriate drivers.
You will want to make sure ICS is not already setup and in use on your system.
By default it is not, and unless you specifically setup ICS on your machine
before, it will not be running, and there should be no problem.
The Wi-Fi Connector documentation recommends that if your computer is connected
to a router with an IP of 192.168.0.1 or 192.168.1.1, that you should change
the router's IP to 192.168.2.1. Personally, I don't understand why they
recommend this, since the Wi-Fi Connector sets up an IP range that isn't even
in the 192.168.x.x range. When I did the research for this section of the guide
I did it with my main router at 192.168.1.1, and had no problems at all. Still,
Nintendo recommends it for whatever reason, so I mention it in case anyone
actually has a conflict with their router at those IPs.
Now that you have checked your system to make sure it meets the requirements,
and completed the pre-installation steps, you can continue on with the actual
installation.
--------------------------------------------------------------------------------
- 3.2.3 Installation -
--------------------------------------------------------------------------------
You should have downloaded a file named "Nintendo_WFC_USB.zip". Inside this
archive there will be a folder called "NintendoWFCReg", extract this to the
Desktop.
Open the folder you just extracted, and double click the "Setup.exe" file
inside to start the installer. You will see a welcome message and a warning
that firewall or anti-virus software could effect the Connector. Click OK.
You will then be shown a box that contains multiple languages. Highlight the
language you want the installer to continue in, and click OK.
Let the installer run for a bit as the progress bar fills. After a minute or
two, the installer will ask you to plug the Connector into the computer. The
installer does not make a noise or have a pop-up to tell you to do this, so if
you aren't paying attention, you can miss this line, and the installer will
just sit there doing nothing. I know I missed it the first time I installed the
software.
Once you plug in the Connector, the message on the installer should change, and
the progress bar will start moving again. The "Found new hardware" pop-up will
also come up, as well as a few other windows that involve the installation of
the drivers. You don't have to do anything with these other windows or pop-ups,
the installation software will take care of it all, just ignore them.
At this point, the light on the Connector should be blinking.
After the windows about the new hardware, you should also see a message about
the computer finding a new network device. Ignore this as well. Around this
time, the installer will say it is setting up ICS.
Soon after, the installation will finish, and the installer will say "Setup
Complete". Click OK to exit the installer. You may now delete the
"NintendoWFCReg" folder if you wish.
After closing the installer, the registration tool should start in the task
bar, which appears as the WFC logo.
At this point, the installation of the Nintendo Wi-Fi USB Connector is
complete. You will now need to setup and register your DS systems with it to
play online.
Read Section 2.3, "Configuring a Connection with the Nintendo Wi-Fi USB
Connector" to find out how to register your DS with the Wi-Fi Connector.
--------------------------------------------------------------------------------
- 3.3 Nintendo Wi-Fi USB Connector Versus Wireless Router -
--------------------------------------------------------------------------------
For users who want to get online with the DS as quickly and as easily as
possible, both a standard wireless router and Nintendo's proprietary soft AP
are the best options. They are both priced close enough for cost not to be an
issue (at the time of this writing), and they both achieve the same end goal
to the user, to get the DS online within only a few minutes, and with minimal
setup and technical knowledge required.
But are they really so similar? While the end result of both options is the
same, there is a bit more to consider in the larger picture.
In this section, I am going to point out a few of the major differences between
the Wi-Fi Connector and your average wireless router. While everything in this
section might not be immediately obvious, it is all well worth considering when
you are making a decision about which device to invest in.
--------------------------------------------------------------------------------
- 3.3.1 Compatibility -
--------------------------------------------------------------------------------
Device compatibility is one of the largest differences between the Wi-Fi
Connector and a wireless router. For many people, this might be the deciding
factor as to which device they go with.
A wireless router is more compatible than the Wi-Fi Connector on multiple
levels. The first, and most obvious, compatibility difference between the two
is that the Wi-Fi Connector only allows Nintendo products to connect to it (DS
and Wii), while a wireless router will work with any WiFi device.
Now, it is possible to hack the Wi-Fi Connector (as will be explained later in
this guide), but doing so is fairly difficult, and takes a bit of time. It is
much easier to just get a router in the first place, and save yourself the
trouble if you want to use other WiFi devices besides the DS.
The second compatibility issue is that of the operating systems required on the
computers in the network. For the Wi-Fi Connector, you are limited to Windows
XP to configure and run the wireless network. Not only that, but the Wi-Fi
Connector also requires software to be installed on the host computer, so you
can't just plug it into a random computer and get the DS online.
However, if you use a wireless router, there is no OS requirement at all, in
fact, you don't even need a computer beyond the initial router setup. Even
then, all you need is a device with a decent browser.
This is because the router works on the hardware layers of the OSI model, while
the Wi-Fi Connector operates on the software OSI layers, and as such requires a
computer to do much of the work for it.
Any device that utilizes TCP/IP and/or WiFi can communicate and use a wireless
router. So if you are running Linux or Mac OS, or you just want to get other
devices online (PDA, PSP, etc), then you should get a wireless router rather
than the Wi-Fi Connector.
--------------------------------------------------------------------------------
- 3.3.2 Security -
--------------------------------------------------------------------------------
While the wireless router clearly has the upper hand in terms of compatibility,
in terms of security, it is harder to declare a clear winner. Both devices are
excellent in their respective strengths, it just happens those strengths are
completely different between the two.
In terms of WiFi security, the Wi-Fi Connector has the router beat. While many
methods of securing a WiFi network are detailed in the Network Security
section, the fact remains that WEP is a fallible technology. The Wi-Fi
Connector on the other hand, uses a completely proprietary and unique
challenge-response system, that as of this writing, has not been exploited.
The bottom line is, at this point in time, WEP can easily be cracked, but the
Wi-Fi Connector's user registration system can't.
However, it isn't as clean cut as all that. While the Wi-Fi Connector wins out
on wireless security hands down, the wireless router has the considerable
advantage of including an inbound firewall which will protect any device
connected to it. This will protect your network from Internet attacks, such as
worms and malicious crackers. The Wi-Fi Connector offers no firewalling ability
at all.
So in the end, it depends on where you think you are most likely to be
attacked. If you value wireless security, get the Wi-Fi Connector, but if you
are more concerned with keeping your network secure from the Internet side, get
the wireless router.
--------------------------------------------------------------------------------
- 3.3.3 Efficiency & Convenience -
--------------------------------------------------------------------------------
Few people ever think of this aspect of the debate, but it is certainly an
important one to consider.
In terms of energy efficiency, the Wi-Fi Connector is terrible, as it requires
a computer to operate. This means that any time you want to play online with
the DS, you will have to start your computer up (or keep it running). The
computer can't even be in sleep mode, as that would stop the software from
functioning.
Clearly, this takes a lot more energy than the wireless router would. The
router is a small, efficient device, that doesn't contain any moving parts.
This means that not only will it only use a fraction of the electricity of the
computer, but it will also be silent as it operates. A wireless router is
designed to be turned on, configured, and left to run indefinitely.
This is where the issue of convenience comes in. Let's say you are laying in
bed, and decide you want to play a few rounds in Metroid before falling asleep.
Well, if you are using the Wi-Fi Connector, you will have to get out of bed,
start up the computer, play the game, then get back out to shut the computer
down. On the other hand, with the router, you can play online at anytime
without prior setup. The router is always up, so you can play whenever you want
without having to worry about turning anything on or off.
Obviously, in terms of both energy efficiency and convenience, the wireless
router is superior. Convenience especially is important in relation to the DS,
since the whole point of online games on a portable system is the ability to
quickly and easily get into a match.
--------------------------------------------------------------------------------
- 3.3.4 Verdict -
--------------------------------------------------------------------------------
In all aspects beyond wireless security, the router is ahead of the Wi-Fi
Connector. If all other traits are to be considered equal, and most of them
are, then the clear winner in my humble opinion is the wireless router.
Affordable, efficient, and reliable, a good router will serve you and your
devices for years without you having to worry about it.
Just make sure you get a quality router, configure it properly, and keep up on
any firmware updates it may have, and you should have no problems.
================================================================================
= 4. Setting Up Your Own AP (Advanced) =
================================================================================
First of all, if you are this far in the guide, welcome. My goal with the
Advanced Section is just that, to detail much more advanced setups than what
the average computer user would ever need, or likely even understand.
Specifically, I am talking about software APs, or using an existing WiFi
client device (USB, PCI, or PCMCIA WiFi card) as an AP that the DS can actually
use to connect to the internet. The advantage of this is obvious, not only are
you free of the Windows XP limitation of the official USB Connector, you are
free to pay what you feel is fair. Personally, I did most of the research and
testing for this guide using a PCMCIA 802.11b adapter that I bought for $4
from eBay.
For all of these setups, you will only need three things; a WiFi device with
fairly good drivers, a broadband internet connection, and an Ethernet card.
I hope this section is of use to those who are advanced enough to know the
official USB Connector is not some magical device, but not quite advanced
enough to actually get a standard WiFi adapter working, or perhaps just don't
want to have to do it without some guidance.
--------------------------------------------------------------------------------
- 4.1 Configuring a Software AP in GNU/Linux -
--------------------------------------------------------------------------------
There is little surprise I chose to cover GNU/Linux first. This was originally
the whole goal of this document. Besides that, Linux is without a doubt the
most capable OS mentioned in this document when it comes to networking.
All of the following has been tested with my own hardware and on my own
network. Everything I put down here has worked for me, and should work for you
as well.
My test setup is a laptop running Slackware 10.2 with kernel release 2.6.10,
on the hardware side, I am using a PCMCIA WiFi card with an RTL8180 chipset.
I am using the card with unofficial open source drivers written by
Andrea Merello.
Much like in the Manual Configuration Section, in the Linux Section, I am not
going to go into painful detail about everything. If you have managed to
install a fairly advanced Linux distribution and are reading this document
from there, you probably don't need much help from me.
--------------------------------------------------------------------------------
- 4.1.1 WiFi Options in GNU/Linux -
--------------------------------------------------------------------------------
I also then suspect you know the situation of WiFi in Linux. Namely, the poor
hardware support that comes from manufacturers not wanting to release
documentation on their hardware. This leaves Linux users with 4 options when
it comes to WiFi drivers.
1. Binary Linux Drivers
------------------------
These are bad because they are statically compiled against a certain kernel
release and build. That might be fine if you are running that identical setup,
but a lot of us are not. It is nice that the manufacturers went ahead and
worked out a binary driver release for their hardware, but it is far from
ideal.
2. Unofficial Open Source Drivers
----------------------------------
Now we are talking. These are drivers created by individual users or groups of
users that wanted no more than to have their WiFi hardware work. These are
usually not quite as stable as more "mature" projects, but are almost always
better than using a binary Linux driver. These projects may or may not be part
of the official kernel tree, so you might need to compile and install them
yourself.
3. Official Open Source Drivers
--------------------------------
These are similar to the second option, but are maintained by larger teams, or
even the manufacturer of the device itself. These are usually part of the
official kernel tree, so your distro might already have these installed, and if
not, you can easily compile them from the official kernel tree.
4. Windows Binary Drivers through Ndiswrapper
----------------------------------------------
Ugh. This is the bottom of the barrel here. You use this right before you just
run a really long network cable to your laptop. To give the developers credit,
Ndiswrapper is an absolutely incredible piece of software; to be able to take
drivers from Windows and use them in a completely different OS is an amazing
achievement. But at the same time, it can be very unstable, and often not all
features of the card are workable through Ndiswrapper.
WiFi drivers in Linux are enough to write a whole other guide on, I can't
possibly go into it here. All I can say is find a card that works with either
option 2 or 3. If you can't do that, or already have a card that is supported
through 1 and 4, give the following a shot, but I can't make any promises.
On that same note, this entire project hinges on the ability of your WiFi
card's drivers to operate in Master mode. I can't speak for all cards, but
most of the drivers I have used in Linux have supported this. You should check
the documentation included with the drivers to find out if your setup supports
it.
In addition to the WiFi drivers, you are also going to need to have the
Wireless Tools package installed. This will vary with distro, but nearly all
distros should have this available by now.
--------------------------------------------------------------------------------
- 4.1.2 Setting up the Hardware -
--------------------------------------------------------------------------------
The easiest part of this process is setting up the WiFi adapter as an AP.
Again, this feature depends on the driver itself, so if you get an error
message when running any of these commands, you are going to want to do some
research and figure out where your drivers stand on Master mode.
Also, before you go any farther, if you have not already, you should really
check the WiFi setup on your computer to make sure it is working properly.
Connect to a known AP, do some scanning, etc. Make sure you have a stable
system before you start trying to get into a more advanced setup like this.
I am going to give sample commands, and then describe what each one is doing
and why. At the end of this part of the guide, I will be putting together a
sample start up script that you can use on your system with a little
modification.
For this guide, I will be using the most common interface names. Namely, the
WiFi device will be known as wlan0, and the Ethernet device will be known as
eth0.
The first and most important thing you need to do is to set the WiFi device
into Master mode. To do this, you are going to want to run the following
command:
iwconfig wlan0 mode Master
This will put the WiFi device at wlan0 into Master mode, or in other words, an
access point. To be able to connect to this AP though, we need to give it some
more information. Let's start with the SSID:
iwconfig wla0 essid "LINUX_AP"
The SSID can be whatever you chose. Choose something that is short and easy to
remember.
The DS is a bit picky as to what it wants to connect to, so the following two
commands will setup the AP in a way the DS will accept.
iwconfig wlan0 channel 6
iwconfig wlan0 rate 2M
This puts the channel to 6, and the rate to 2 Mbps (more about that in
"Thinking out Loud"). Channel 6 is fine for the US, but in other countries,
WiFi APs run on different channels, so you may need to adjust the channel
based on your region.
And that's it; your hardware is now setup.
Follow section 2.2.2.1 to scan for an AP. You should see the AP you just
created on the list. Click on it to connect to it.
...
And then watch as it shows an error message. Why does it show an error message
you ask? That is because while we have setup the hardware, we have not setup
the network to actually route traffic over the connection. We have only won
half the battle.
But we now have an AP that the DS sees and will connect to, so we are almost
there. Let's now go over your options for the software setup.
--------------------------------------------------------------------------------
- 4.1.3 Setting up the Software -
--------------------------------------------------------------------------------
Next, we are going to go over some of the required and optional software
configurations to get the DS actually online.
For the purposes of this example, we are going to assume that you already have
a working internet connection in place through your Ethernet card, either by
being directly connected to a wired router, a broadband modem, or some other
network.
--------------------------------------------------------------------------------
- 4.1.3.1 IP Ranges -
--------------------------------------------------------------------------------
You will need to decide what IP range to use for your new wireless network.
You will need to use an IP range that is both in the Class C range and is NOT
the range your computer's Ethernet card is in.
A good range that follows these rules is 192.168.2.x. Most routers are setup
to use either 192.168.0.x or 192.168.1.x, so 192.168.2.x should be out of the
range that any router would have assigned.
So for this document, I will use 192.168.2.x as the IP range for the DS. If
this does not fit your network for whatever reason, you can of course change
this, but keep in mind the two rules you must follow.
To setup your AP with the new IP, run the command:
ifconfig wlan0 up 192.168.2.1
This will now bring up TCP/IP on the AP, and give it the IP 192.168.2.1.
Now that we have an IP for this device, let's get the rest of the networking
sorted out.
--------------------------------------------------------------------------------
- 4.1.3.2 Routing -
--------------------------------------------------------------------------------
The next thing you need to get setup is a route between your Ethernet
connection and the WiFi AP you just created.
To do this, we will be using something called IP masquerading or NAT (Network
Address Translation). This allows one computer with an internet connection
(our newly created AP) to share that internet connection with many clients.
To do this in Linux, you will need to use iptables. To use iptables, you will
need to be running a kernel release of 2.4.x or above. Many distros are
shipping with 2.6.x at this point, and all of them (that I know of) are using
at least 2.4.x. So you should have no problem here.
The following commands will setup NAT between eth0 and wlan0:
iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
iptables --append FORWARD --in-interface wlan0 -j ACCEPT
echo 1 > /proc/sys/net/ipv4/ip_forward
We now have a connection bridged between your computer's internet connection,
and the WiFi AP.
Next up, we need to give the DS an IP. To do this, we have two options, either
setting up the DS manually, or using DHCP. As manual configuration is the
quicker of the two, let's cover that first.
--------------------------------------------------------------------------------
- 4.1.3.3 Static IP -
--------------------------------------------------------------------------------
To setup a static IP, we will need to follow Section 2.2.2.2 of this guide.
To get the DS connected in our example setup, enter the following information:
SSID
LINUX_AP
IP Address
192.168.2.2
Gateway
192.168.2.1
Primary DNS/Secondary DNS
For these, you will need to input the IP's of your ISPs DNS servers.
After entering this data, save the configuration and let it run the Connection
Test. If everything has gone well so far, it will pass.
Congratulations, you have just setup a basic software AP, and avoided having
to buy a proprietary device! Hooray for open source!
--------------------------------------------------------------------------------
- 4.1.3.4 DHCP -
--------------------------------------------------------------------------------
To use DHCP, you will need to have the DHCP server installed on your machine.
The easiest way to check this is to run "which dhcpd", which should give a
response like:
bash# which dhcpd
/usr/sbin/dhcpd
If you get that message, your system already has the DHCP server installed. If
you get an error, then you will need to install it. The installation process
will depend on what distro you are running, so consult it's documentation to
find out how to install the DHCP server package.
Now that we have the DHCP server, we will need to feed it a configuration file
so it can setup a DHCP pool to use.
Take a look at the following section to see the complete DHCP configuration
file.
--------------------------------------------------------------------------------
- 4.1.4 The Complete DS_AP Script -
--------------------------------------------------------------------------------
So here it is, the complete script that will automatically give you a AP that
you can connect to with your DS.
The reason I give this last, and detail everything first, is that I want you
to understand what is going on here, so that you can fix any problems that
may come up. I also want you to understand the requirements for this script
to work (see Section 4.1.1, "WiFi Options in GNU/Linux").
If you think you have everything you need, then copy the following text to a
file named "DS_AP"
#!/bin/sh
#
# DS_AP
VER="Version 1.2"
# A script to startup a software AP for the Nintendo DS
# Written by TJ Nardi for the DS Wireless Networking Guide
#
#-CHANGELOG-
# v1.2, Checks to make sure user is root before running
# v1.1, Added DHCP client support for NIC
# v1.0, First Release
# Define system variables here
# Disable/enable DHCP server (0 = disable, 1 = enable)
USEDHCP=1
# Path and file name to the DHCPD config file
CONFFILE=./DS_DHCP.conf
# WiFi card interface
WLAN="wlan0"
# Network interface
ETHER="eth0"
# Bring up eth0 with DHCP before starting AP (0 = disable, 1 = enable)
ETHUP=0
# DHCP hostname (only used if above is enabled)
DHCPHOST="LINUXAP"
# SSID of AP
SSID="LINUX_AP"
# Channel for AP
CHANNEL=6
# IP of AP
IPADDR="192.168.2.1"
#------No need to edit past this line-------#
# Values for debug
MODE="Master"
RATE="2M"
DHCPTIME=20
# Clear the screen
clear
# Before we waste any time, make sure the user is running with root
# permissions
if [ "$UID" -eq "0" ]
then
# OK, the user has root permissions, let's get rolling...
# Title
echo "Nintendo DS WiFi Access Point Startup Script, ${VER}"
echo "-----------------------------------------------------------"
# Bring up Ethernet (optional)
if [[ ${ETHUP} = "1" ]]
then
echo "Setting up ${ETHER}..."
echo " Checking if DHCP is running..."
# Check if PID file exists
if [[ -a /var/run/dhcpcd-${ETHER}.pid ]]
then
# If DHCP has already been run, don't run it again
echo ""
echo " +----------------------------------------------------+"
echo " | WARNING! |"
echo " | Interace already appears to be configured! |"
echo " +----------------------------------------------------+"
else
# If DHCP has not been run, then run it now
echo " OK, DHCP not running on ${ETHER}"
if which dhcpcd > /dev/null 2>&1
then
echo " Starting DHCP on ${ETHER}..."
# Get DHCP IP
dhcpcd -t ${DHCPTIME} -d -h ${DHCPHOST} ${ETHER}
# Display new IP info
#echo "$(/sbin/ifconfig ${ETHER})"
else
# If dhcpcd is not found, print error message
echo ""
echo " +----------------------------------------------------+"
echo " | ERROR! |"
echo " | DHCPCD not found! Please install it and try again. |"
echo " +----------------------------------------------------+"
exit 2
fi
fi
fi
# Fo, hum! Roffles...
# Set up the WiFi hardware
echo ""
echo "Setting up ${WLAN}..."
echo " +---------------------+"
# Set mode
iwconfig ${WLAN} mode ${MODE}
echo " | Mode | ${MODE}"
# Set SSID
iwconfig ${WLAN} essid ${SSID}
echo " | SSID | ${SSID}"
# Set channel
iwconfig ${WLAN} channel ${CHANNEL}
echo " | Channel | ${CHANNEL}"
# Set data rate
iwconfig ${WLAN} rate ${RATE}
echo " | Rate | ${RATE}"
echo " +---------------------+"
# Set IP for AP
echo ""
echo "Setting up TCP/IP..."
ifconfig ${WLAN} up ${IPADDR}
echo " Interface ${WLAN} given IP of ${IPADDR}."
# Enable NAT through IPtables
echo ""
echo "Setting up Network Address Translation..."
iptables --table nat --append POSTROUTING --out-interface ${ETHER} -j MASQUERADE
iptables --append FORWARD --in-interface ${WLAN} -j ACCEPT
echo 1 > /proc/sys/net/ipv4/ip_forward
# If DHCP is enabled continue on, if not, end
echo ""
if [[ ${USEDHCP} = "1" ]]
then
echo "DHCP Support Enabled!"
echo ""
echo "Setting up DHCP Server..."
# Make sure the server is installed
if which dhcpd > /dev/null 2>&1; then
# Make sure the server isn't already running
if [ -f /var/run/dhcpd.pid ]; then
echo ""
echo "+----------------------------------------------------+"
echo "| WARNING! |"
echo "| DHCPD is already running! |"
echo "+----------------------------------------------------+"
else
# Start dhcpd with WLAN interface and DS config file
echo ""
dhcpd ${WLAN} -cf ${CONFFILE}
echo ""
echo "Done!"
fi
else
echo ""
echo "+----------------------------------------------------+"
echo "| ERROR! |"
echo "|DHCPD not found! Please install DHCPD and try again.|"
echo "+----------------------------------------------------+"
exit 2
fi
else
echo "DHCP Support Disabled!"
fi
echo ""
echo "System Setup Complete!"
# That should do it...
# If the user doesn't have root permissions, they end up here
else
echo "Sorry, you need to have root permissions to run this script."
echo "Either login as root, or run this though sudo."
fi
# EOF
Now, you will want to make the file executable, so run the following command in
the directory where DS_AP is saved:
chmod +x ./DS_AP
Now, for the DHCP section to work, you will need to have a DHCP configuration
file.
Paste the following lines into a file named "DS_DHCP.conf" and save it in the
same directory as DS_AP (the location of the DHCP file can be changed in DS_AP
if you wish).
# DS_DHCP.conf
#
# A simple DHCP configuration file to go
# with the DS_AP script.
#
# Global Options
# This line defines the DNS servers the DS will use
# feel free to change these to those of your ISP
option domain-name-servers 4.2.2.2, 4.2.2.3;
ddns-update-style none;
# Range
subnet 192.168.2.0 netmask 255.255.255.0
{
range 192.168.2.100 192.168.2.150;
option routers 192.168.2.1;
}
# EOF
You will want to read over the top section of DS_AP and make sure those
settings are correct in relation to your hardware and LAN setup. You have to
make sure the AP IP is in a different IP range than your current network. I
wrote the scripts to use the 192.168.2.x network, since I know of know home
router that uses this network (they mainly use 192.168.1.x, and some use
192.168.0.x). If anyone has a home router that uses the 192.168.2.x network,
please send me an email so I can modify the scripts to use something else.
Unless it will cause a problem on your network, use the default IPs for both
files, just to keep things simple.
Also, as with most things involving system configuration in Linux, you will
need to run the DS_AP script as root, or at least though sudo. Otherwise you
will get nothing but "Permission Denied" errors when you try and run it.
Now, plug in your Ethernet and WiFi cards, run the script, and pray.
--------------------------------------------------------------------------------
- 4.2 Configuring a Software AP in Windows -
--------------------------------------------------------------------------------
Current Status:
The Windows soft AP setup is going to be forked into two different sections in
terms of hardware, and one unified section for software.
On the hardware side, I am going to be covering the RT2500, which is the most
likely option for most people as it is the most prolific chipset that supports
Master mode, and I will also cover generic Master mode-capable chipsets (such
as Centrino).
Aside from the hardware configuration, the setup will be the same, so both
hardware options will share one common software guide.
--------------------------------------------------------------------------------
- 4.3 Configuring a Software AP in Mac OS -
--------------------------------------------------------------------------------
Current Status:
Now that I have done a lot more testing, the situation is much better than I
previously thought.
The software side is going to need a bit of adjustment by the user, so it won't
all be a point-and-click affair, but this section is still going to be the
shortest by far, as it is so easy to do this under OSX.
Unfortunately, it seems like this will only work with an AirPort Extreme card,
and NOT the standard 802.11b AirPort card. I am not happy about this, but with
so many people buying new Macs today, I guess it isn't too big of a problem,
most people running OSX likely already have one of the Extreme cards, since
Apple packs them into so much of their hardware.
--------------------------------------------------------------------------------
- 4.4 Hacking the Nintendo Wi-Fi USB Connector -
--------------------------------------------------------------------------------
While the Wi-Fi USB Connector is designed to make getting online as easy as
possible for people without being too technical, there are still some advanced
things you can do with it, though completely unintentional on Nintendo's part.
--------------------------------------------------------------------------------
- 4.4.1 Using the Nintendo Wi-Fi USB Connector with AOL -
--------------------------------------------------------------------------------
It seems like a lot of people are asking this same question, so I decided to
add it to the guide, even though the main Wi-Fi USB Connector section has not
even been started.
Keep in mind, this is for AOL High Speed (with a true broadband connection),
not dialup. It is possible to get on the WFC with dialup, but I do not plan to
cover it in this guide. Dialup users slow down the game for everyone else; I
am sorry, but it is the 21st century, if you don't have broadband, for whatever
reasons, you shouldn't be playing online with those that do.
The key to using the Wi-Fi Connector (and any other soft AP) with AOL is to not
use the official AOL software to connect. You must create a new connection, and
use that to log in.
To do this in Windows XP, you will first click "Start", then "Control Panel",
then "Network and Internet Connections", finally, click on "Network
Connections".
You will now see a screen that shows your current Ethernet connections. On the
top left hand corner of this window, you should see a small box that says
"Network Tasks". Within that box there is an option that says "Create a new
connection", click it to start the "New Connection Wizard".
The first page of the wizard describes what it can help you do. Click "Next",
and it will ask what kind of connection you want to make. Make sure the radio
button next to "Connect to the Internet" is selected (by default, it is). Then
click "Next".
Select "Set up my connection manually", and click "Next".
Select "Connect using a broadband connection that requires a username and
password", and click "Next".
The wizard will then prompt you for the name of this new connection. You can
use anything you like, but it is probably a good idea to make it something
you will remember later. Naming it "AOL WFC" would not be a bad idea. After you
have entered the name, click "Next".
Now you will need to enter your AOL username. Enter your username, with the
aol.com suffix (I.E. username@aol.com). You can then either enter your password
here to have it saved, or leave the box blank so that you will be prompted for
the password every time it tries to connect. It doesn't matter either way for
the purposes of the Wi-Fi USB Connector, so do whatever you feel comfortable
with.
After entering in your credentials, then remove the check for "Make this the
default Internet connection", but leave the other two options enabled. Then
click "Next".
On the final screen, you will see an overview of the setup for the connection
you just made. Look over it to see if it appears correct, if not, go back and
check everything. There is also an option to "Add a shortcut to this connection
to my desktop". Selecting this would probably save you some trouble down the
line. If you are happy with everything, click "Finish".
Now, when you want to use this new connection, you would either click the
shortcut the wizard made, or select it from the "Network Connections" screen.
After you have signed into AOL with this new connection, go ahead and install
the Nintendo Wi-Fi USB Connector, and all should be well.
A little note, I said to make sure to disable "Make this the default Internet
connection" so that you could still use the AOL software to get on the internet
normally. If you would like to bypass the AOL software completely, keeping that
option enabled will make that your primary internet connection, and allow you
to use the internet without the AOL software.
================================================================================
= 5. Network Security =
================================================================================
This section will be ready for the next version of the guide. It is massive.
================================================================================
= 6. FAQ & Troubleshooting =
================================================================================
This section will aim to answer common questions, and resolve common problems.
It needs a bit more work before it can go live though, I think.
================================================================================
= 7. Reference =
================================================================================
Here is some general information that may be of use to people reading this
guide, I will add more to this as the guide expands.
--------------------------------------------------------------------------------
- 7.1 Networking Glossary -
--------------------------------------------------------------------------------
These are simple definitions for some of the terms used in this document.
IP Address
An IP address is the human-readable address used to define a device on the
network. The easiest way to think of an IP address is like a phone number.
Everyone with a phone has a phone number and that number is unique to that
person but not necessarily to that phone. A phone can have it's number changed,
just as a device on the network can have it's IP changed.
DHCP
DHCP is system that allows the automatic assignment of IP addresses to
devices on a network. Almost all home routers have a DHCP server, and the
majority of people connected to home routers, wired or wireless, are using
DHCP. DHCP is advantageous as it makes adding new devices to the network very
simple.
DNS
If the IP address is to be compared to a phone number, then DNS could be
compared to the phone book. A DNS server holds records that equate hostnames
to IP addresses. This is used to convert human-friendly addresses, like
Nintendo.com, to IP addresses.
Gateway
A gateway is another term for a router. In this case, the gateway is the
router that connects the internal network to the internet.
WEP
A method of wireless encryption. WEP is very insecure. However, it is all
the DS supports, so we all will have to live with it.
Access Point
An access point, for the purposes of this document, is a device that serves
as a WiFi master. Other devices can connect up to the AP, and through that, to
the network.
MAC Address
The MAC address of a device is built into it's networking hardware. Every
network-enabled device has a unique MAC address that can be used to identify
it.
--------------------------------------------------------------------------------
- 7.2 Software AP Compatible WiFi Hardware and Drivers -
--------------------------------------------------------------------------------
The following lists hardware and drivers that either I have personally tested,
or have on good authority, should work with a software AP setup.
--------------------------------------------------------------------------------
- 7.2.1 GNU/Linux -
--------------------------------------------------------------------------------
+-------------------------------------------------+
| Device | Interface | Driver |
+-------------------------------------------------+
| Realtek RTL8180 | PCMCIA | rtl8180 + sa2400 |
| Linksys WM11 | PCMCIA | HostAP |
| AmbiCom WL1100C | CF Card | HostAP |
| Centrino | Mini-PCI | IPW2100 |
+-------------------------------------------------+
--------------------------------------------------------------------------------
- 7.2.2 Windows -
--------------------------------------------------------------------------------
+-------------------------------------------------+
| Device | Interface | Driver |
+-------------------------------------------------+
| Centrino | Mini-PCI | Offcial Drivers |
| RT2500 | PCI | Gigabyte SoftAP |
+-------------------------------------------------+
--------------------------------------------------------------------------------
- 7.2.2 Mac OS -
--------------------------------------------------------------------------------
+-------------------------------------------------+
| Device | Interface | Driver |
+-------------------------------------------------+
| AirPort Extreme | PCI | AirPort Drivers |
+-------------------------------------------------+
--------------------------------------------------------------------------------
- 7.3 Finding the Current TCP/IP Information -
--------------------------------------------------------------------------------
I have noticed that many people seem confused as to how to check their current
TCP/IP information in order to input manual settings into the DS. The following
sections will cover how to find your current TCP/IP information (IP, subnet,
gateway, and DNS servers) in Windows, Linux, and Mac OS.
Do note, that for all of the operating systems listed, the first DNS server
listed is always the primary, and the next server listed is the secondary. In
reality, the order that the DNS servers are queried does not really matter
for most home users, so don't worry too much about the order in which you enter
them on the DS. In fact, some users might find they don't even have a secondary
server listed.
If you are unclear as to the meaning of any of the information below, consult
Section 7.1 "Networking Glossary".
--------------------------------------------------------------------------------
- 7.3.1 Under GNU/Linux -
--------------------------------------------------------------------------------
Under Linux, there are a few commands you will want to run to get all of the
TCP/IP information.
The first command we will look at is "ifconfig", which will show you the IP
settings for any interface on the system.
The output of "ifconfig" will look something like this:
eth0 Link encap:Ethernet HWaddr 00:0A:E6:D0:17:93
inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST NOTRAILERS RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2763 errors:0 dropped:0 overruns:0 frame:0
TX packets:2986 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1543179 (1.4 MiB) TX bytes:390496 (381.3 KiB)
Interrupt:11 Base address:0x2000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:61 errors:0 dropped:0 overruns:0 frame:0
TX packets:61 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:6708 (6.5 KiB) TX bytes:6708 (6.5 KiB)
Your system may have more interfaces than this, but the one you are most likely
going to want to look at is eth0, your primary Ethernet adapter. The entry for
"inet addr" is your machine's IP, and the entry for "Mask" is your subnet.
Now that we have the IP information, we will now look for our default gateway.
To find the default gateway, run the command "route".
The output of "route" will look something like this:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
loopback * 255.0.0.0 U 0 0 0 lo
default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
Here, the last line is the important one. This shows the default router your
machine is using to connect out to the internet.
Finally, we will find the DNS servers the machine is using to resolve hostnames
to IP addresses. To find the current DNS servers, we will look in the file
"/etc/resolv.conf".
To read the file, we will use the command "cat /etc/resolv.conf". The contents
of the resolv.conf file will look similar to this:
# Generated by dhcpcd for interface eth0
nameserver 151.204.0.84
nameserver 151.197.0.39
--------------------------------------------------------------------------------
- 7.3.2 Under Windows -
--------------------------------------------------------------------------------
Under Windows, there is really only one command you need to know to find out
the current TCP/IP information for your machine. First, you will want to open
up the command interpreter. To do this, click the "Start" button, then click on
"Run" and in the dialog box, type in "cmd". Then hit enter.
You will be presented with the command interpreter window, in this window, you
will type the command "ipconfig /all".
The output will look similar to this:
Windows IP Configuration
Host Name . . . . . . . . . . . . : MyComputer
Primary Dns Suffix . . . . . . . :
Node Type . . . . . . . . . . . . : Unknown
IP Routing Enabled. . . . . . . . : No
WINS Proxy Enabled. . . . . . . . : No
Ethernet adapter Local Area Connection:
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : Generic Ethernet Controller
Physical Address. . . . . . . . . : 00-XX-00-XX-00-XX
Dhcp Enabled. . . . . . . . . . . : Yes
IP Address. . . . . . . . . . . . : 192.168.1.100
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.1.1
DNS Servers . . . . . . . . . . . : 151.204.0.84
151.197.0.39
This command shows all of the information you should need to fill in the IP
information on your DS.
--------------------------------------------------------------------------------
- 7.3.3 Mac OS -
--------------------------------------------------------------------------------
Like Linux, Mac OS uses the "ifconfig" tool to set and view TCP/IP options.
The output of "ifconfig" will look something like this:
lo0: flags=8049 mtu 16384
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
inet 127.0.0.1 netmask 0xff000000
gif0: flags=8010 mtu 1280
stf0: flags=0<> mtu 1280
en0: flags=8863 mtu 1500
inet6 fe80::20a:95ff:fed4:3456%en0 prefixlen 64 scopeid 0x4
inet 192.168.1.100 netmask 0xffffff00 broadcast 192.168.1.255
ether 00:0a:95:d4:34:56
media: autoselect (10baseT/UTP ) status: active
supported media: autoselect
fw0: flags=8822 mtu 2030
lladdr 00:0a:95:ff:fe:d4:34:56
media: autoselect status: inactive
supported media: autoselect
Here, the primary Ethernet adapter is "en0". The entry after "inet" is the IP
for the machine.
Again, as in Linux, you will view the contents of /etc/resolv.conf to see the
DNS servers:
To read the file, we will use the command "cat /etc/resolv.conf". The contents
of the resolv.conf file will look similar to this:
nameserver 151.204.0.84
nameserver 151.197.0.39
The method to view the default gateway is different in Mac OS than Linux. To
find the default gateway under Mac OS, run the command "netstat -m".
The output of "netstat -m" will look something like this:
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 192.168.1.1 UGSc 17 35 en0
127 127.0.0.1 UCS 0 0 lo0
127.0.0.1 127.0.0.1 UH 12 323181 lo0
192.168.1 link#4 UCS 1 0 en0
192.168.1.1 0:20:78:ce:c0:ec UHLW 16 0 en0 1158
192.168.1.100 127.0.0.1 UHS 0 10 lo0
Here, the top line is the important one. This shows the default router your
machine is using to connect out to the internet.
--------------------------------------------------------------------------------
- 7.4 Tips for Increasing WiFi Range -
--------------------------------------------------------------------------------
A common complaint of WiFi technology is the relatively short useful range. The
DS is especially susceptible to this fault due to the extremely simplistic
antenna it employs (imagine a one inch strip of tin foil on a bit of plastic,
that should give you a pretty good idea of what we are dealing with).
Luckily, there are quite a few things you can do to increase the useful range
of your WiFi hardware. Note that none of these tips are DS-specific. These will
work with any WiFi devices you might have.
--------------------------------------------------------------------------------
- 7.4.1 Sync Rate -
--------------------------------------------------------------------------------
The easiest way to improve signal strength in fringe areas is to decrease the
sync rate of the hardware. This seems counter-intuitive at first, to slow down
the link in order to increase it's performance. To understand this concept, you
first have to understand how radio's communicate with each other.
To put it simply, the worse the signal is between two radios, the slower data
has to be transmitted to ensure it is properly transferred. Because of this,
WiFi hardware automatically changes the transmission rate as the signal strength
goes up and down.
However, this can be a problem in some situations. Let's say that the WiFi card
you are using is designed to go from 11 Mbps to 5.5 Mbps when the signal drops
below 50%. Now, what happens when you are using this device in an area where
the signal strength wavers between 45% and 55%?
Every time the signal drops below the specified rate, the card will request
that the AP communicate with it slower, and when the signal goes back up, it
will then request that the AP speeds up again.
If you are in an area where the signal is constantly shifting around, the
devices can spend a good deal of their time just trying to decide how fast they
should be communicating. In the process, data can be needlessly lost, requiring
it to be retransmitted, bringing down the overall speed of the link even more.
Clearly, this is a vicious and pointless cycle. The design of the hardware
itself will slow down communication more than the low signal will.
Luckily, the solution is very simple. Just manually lock the sync rate of your
hardware to a low speed if you do not have a strong signal. While you will be
taking the hit in bandwidth, you will be making up for it in the long run by
not having to deal with the problems associated with rate autonegotiation.
--------------------------------------------------------------------------------
- 7.4.2 Antennas -
--------------------------------------------------------------------------------
While the weak antenna on the DS is a constant (well, technically it could be
modified with an external antenna connector, but that is a bit out of the scope
of this document), the antennas on your WiFi router can usually be changed out
for ones of higher gain. Linksys, for example, makes a set of 7 dB high-gain
omnidirectional antennas that connect right up to many of their routers.
You can also fit your router (or even some PCI and PCMCIA cards) with
directional antennas. These can dramatically increase range, and can be
purchased inexpensively (in fact, you can even build your own). However, the
problem with directional antennas is just that, they focus the signal from the
device's transceiver in a single direction, rather than equally spreading it
around as an omnidirectional antenna does. Unfortunately, to see any benefit
from a directional antenna, you would need to always keep the client device
in-line with the antenna. For a mobile device like the DS, this is obviously
not what you want.
So, try to find some high-gain omnidirectional antennas for your hardware,
either official products from the manufacturer, or a third party product.
--------------------------------------------------------------------------------
- 7.4.3 Router Firmware -
--------------------------------------------------------------------------------
Not only will the latest official firmware for a router often fix problems you
might be having and increase performance, some routers have third party
firmwares available that radically change the abilities and performance of the
router. Namely, it is possible to increase the radio power much higher than
it's stock configuration allows
When talking about third party firmware for routers, you are mainly going to be
dealing with the Linksys WRT54G. The WRT54G is not only considered the best
consumer router available, but it is also easily the most flexible router on
the market, as it runs the Linux operating system. Since Linux is licensed
under the GPL, Linksys had to make public their version of Linux built for the
WRT54G. This allowed other developers to build their own customized versions of
the operating system.
It is important to note however, that as of version 5 of the WRT54G, it no
longer runs Linux, and instead uses a simplified firmware, along with less
powerful hardware. Linksys has forked the development of the WRT54G, there is
now the standard consumer version, and the WRT54GL, which is the Linux version.
If you want to experiment with alternate firmwares, you need either a pre-5
WRT54G, or the WRT54GL. In fact, many people have been reporting problems with
the v5 WRT54Gs, so you might be better off getting a WRT54GL even if you never
plan on hacking it.
There are many replacement firmware's for the WRT54G, many more than I can
cover here, but you may want to check out HyperWRT or DD-WRT to start with.
Likewise, the installation of third party firmware is out of the scope of this
document, so you will have to look on the website for the firmware you are
looking to install.
Take a look at the Wikipedia page on the WRT54G to get more information on it's
hardware revisions and third party firmware.
http://en.wikipedia.org/wiki/WRT54G
================================================================================
= 8. Thinking Out Loud =
================================================================================
In this section, I will share my observations, thoughts, and experiments in
reference to the Nintendo DS and it's WiFi capabilities.
--------------------------------------------------------------------------------
- 8.1 Rate Autonegotiation -
--------------------------------------------------------------------------------
I made this observation the first time I played Mario Kart DS.
I was setting up the DS with two routers, one G router, a Linksys WRT54G, and a
B router, a Linksys BEFW11S4. When connecting to the routers, I noticed the
time taken for both the connection test and the actual login to the Nintendo
Wi-Fi Connection took considerably longer when authenticating against the
WRT54G than the BEFW11S4.
Looking at the setup for both routers, I examined all of the settings that were
different between them. On the WRT54G, the rate was set as Auto, and on the
BEFW11S4, it was locked at 2 Mbps. Setting the rate on the WRT54G to 2 Mbps
cleared up the problem, and my login times were the same on both routers.
Why is this? Because the WiFi hardware in the DS only operates at 2 Mbps,
rather than the full 11 Mbps 802.11b is capable of, let alone the 54 Mbps that
802.11g can run at.
The DS needs to communicate to the router that it only operates at a reduced
rate, at which point the router must then slow down it's own transmission speed
and at the same time, tell all the other clients of the wireless network that
they must drop their speed down as well. You see, a wireless network is only
as fast as the slowest device connected to it, so if the 2 Mbps DS joins a
802.11g network running at 54 Mbps, the whole network will instantly drop down
to 2 Mbps.
This process takes time to work out, and in the case of some hardware, like the
WRT54G, this can produce a noticeable lag in connection times. Manually setting
the rate to 2 Mbps forgoes the autonegotiation, and considerably speeds up the
connection times.
If you are noticing it takes a long time to complete the Connection
Test, or it seems to be taking too long to log into the system, manually set
the rate for your router to 2 Mbps, and it should resolve the problem.
--------------------------------------------------------------------------------
- 8.2 WiFi vs. NiFi -
--------------------------------------------------------------------------------
Here is the first thing you need to know; every wireless function on the DS
uses WiFi. This alone confuses many people, as local wireless multiplayer is
neither online nor easily tunneled (unlike the PSP), which would seem to
indicate it is using some different wireless technology, but that just isn't
the case.
WiFi is a standard for wireless networking defined by the IEEE 802.11
specification. That means that WiFi is a general term for many different
products and technologies.
For it's local multiplayer, the DS uses WiFi only as a transport medium. The
OSI Network model defines 7 layers of network connectivity. Without getting
into very technical detail, the IEEE 802.11 specification only defines layers 1
and 2. TCP/IP (what people commonly use WiFi for) does not start to emerge
until layer 3, where IPv4/IPv6 are defined, and then TCP/UDP on layer 4.
Instead of using TCP/IP over WiFi for local multiplayer, Nintendo has
developed their own communication protocol that is specifically designed
for gaming. It is faster, more efficient, and much simpler than TCP/IP or UDP.
This protocol doesn't come into play (like TCP/IP) until after layer 2. So
while it is not TCP/IP, what we all associate WiFi with, it is certainly still
within the IEEE 802.11 specification, and therefore, is WiFi.
Think of the DS's WiFi hardware as a blank sheet of paper. It lays down all the
rules for WiFi connectivity, but it is up to individual developers to decide
what that WiFi hardware is going to be used for. Nintendo's proprietary
protocol for local wireless, or TCP/IP for online games.
For games using the Nintendo Wi-Fi Connection, a TCP/IP stack is included in
the game software itself. So with a designated game, the DS can work with normal
WiFi networks.
This is in contrast with the PSP, which uses TCP/IP over WiFi for both it's
online and local multiplayer games. It uses Infrastructure mode for online
games, and Ad-Hoc mode for local multiplayer games. This is an easy way to go,
but does lack the advantage of being specifically designed for games. Perhaps
this is why we have not seen the local multiplayer features of the PSP used as
well as they have been on the DS (Download Play, 10 player single card multi,
Download Stations, etc).
So, what is this protocol that Nintendo created called? Thankfully for me, as
I have no creativity, somebody has already named it for us. The usual term for
the DS to DS protocol in the homebrew world is NiFi, a play on Nintendo and
WiFi.
I hope that clears up some of the confusion as to what NiFi refers to, and why
it is really WiFi, just in an unusual form.
--------------------------------------------------------------------------------
- 8.3 Nintendo Wi-Fi USB Connector vs. Software AP -
--------------------------------------------------------------------------------
The point of this guide, at least originally, was covering the setup of
software APs in Linux and Mac OS, since Nintendo had already provided a method
to do so for Windows users.
However, many people are unhappy with the official Nintendo option, and wish to
create their own software AP in Windows. So the question is, which is the
better option?
Even without completing this guide, I would have to advise most Windows users
to just get the official Nintendo adapter.
Make no mistake, it is certainly possible to create a software AP in Windows.
The problem lies with the needlessly restrictive nature of the Windows OS, and
it's drivers. Creating a software AP in Linux and Mac OS is easy, to do so in
Windows is frustratingly difficult, and only works with some chipsets. Unless
your current WiFi card has a compatible soft AP driver, you would be doing
yourself a favor by getting the official adapter.
If you do already have a compatible card, then you can make a fair comparison
with the official adapter.
The official adapter does have the advantage of including DHCP support, as well
as per-device access restrictions out of the box. If you are happy with static
IP on your DS (though you could do DHCP with a bit more work), and don't have
the need for per-device access control, the soft AP option would be good for
you.
Beyond that, there is little difference. Price does come up, since you can get
a compatible card for less than the official adapter. Though most of the
compatible cards are PCI or PCMCIA, so that may be an issue for you if you want
a USB solution. The soft AP should also work on any OS supported by the
device's drivers, something that cannot be said for the Windows XP only
official adapter.
So if you are a Windows user and are debating about which to chose, find out
what chipset your current card has, or how much a compatible card would cost.
If you already own a compatible card, or can get one for cheaper than the
official adapter, give the soft AP a shot.
--------------------------------------------------------------------------------
- 8.4 What Happened to WPA? -
--------------------------------------------------------------------------------
A major complaint about the DS's WiFi implementation is the lack of WPA
support. While this is minor or non-existent to some users, others value the
security of their wireless network and would rather not compromise it.
To those who value their "security" I would have to point out that WiFi, by
design, is an insecure system in the first place. Even WPA can be cracked with
relative ease with current software. If you are that concerned with network
security, I would advise you to stop using WiFi completely.
But regardless, there is hope. As the TCP/IP implementation is included in each
game card, and not on the system itself, it is completely possible for Nintendo
to add WPA support in software with later game releases.
This has not been officially been mentioned, but with enough people requesting
it, there is little reason for them to not include it. So now might be a good
time to send an email to Nintendo requesting that they consider including WPA
support in future WiFi titles.
--------------------------------------------------------------------------------
- 8.5 A Tale of Two Consoles -
--------------------------------------------------------------------------------
While researching the for the guide, I noticed a odd behavior when two systems
connected to the same AP and played on the WFC.
Testing with Animal Crossing: Wild World, I would connect my DS (DS A) to a
friend's DS (DS B) though local wireless, and begin wandering around his town.
If I then took a second DS (DS C) and connected to DS A though WFC, I would
start to have problems. It would work fine for the first few minutes, but
invariably, within the first 10 minutes, all of the systems would crash, and
give various error messages about losing contact with the host, or problems
with lag.
I can confirm this behavior on the Linksys WRT54G 100% of the time during my
tests. I also tested the same situation with my soft AP created for this
guide, and while it lasted longer than the WRT54G, it too would crash after
awhile.
I have not found an exact cause for this, I will have to take a look at the
network traffic going between the 3 with a sniffer to find out what is
actually happening.
One theoretical solution (I have not tested this) is to use static IP on one
of the two systems connecting to the same AP, and putting that static IP in
the DMZ of the router. This would ensure there is no collisions at the router
when it tries to route packets to the same devices on the same ports (one
theory I have as to why they crash).
I'll update this section as I learn more, and hopefully find a fix.
--------------------------------------------------------------------------------
- 8.6 Ad-Hoc on the DS -
--------------------------------------------------------------------------------
One of the very first things I looked into when starting this guide, and
really, even before I started the guide, was getting the DS online though an
Ad-Hoc connection.
Normally, the DS (as do most devices) connects to the internet in
Infrastructure mode. That is, there is a single dedicated access point, which
serves as the gateway between the local network and the internet.
I was looking into the exact opposite, getting the DS online by connecting to
an Ad-Hoc network. In this situation, there would be no dedicated access point,
and instead, all of the devices connect to each other on a peer to peer basis.
The reason getting the DS online though Ad-Hoc would be advantageous is because
almost every WiFi device on the market can operate in Ad-Hoc mode, while only
some can operate in Master mode (which is required for it to act as an access
point to facilitate Infrastructure mode). This would allow you to use almost
every WiFi adapter ever made as a soft AP, under every OS.
So the very first experiments I did with my Linux test setup was to create some
Ad-Hoc networks, and try to connect to them. When doing "Search for an Access
Point", The DS showed the Ad-Hoc networks with full signal and unlocked but
when trying to connect to them, the signal indicator on the "Connection Test"
would stay at red, and I would eventually get the error 51302 (can't connect to
AP).
Despite my best efforts, I am always stalled at this error. Unfortunately, at
this point, it seems like it is just not possible for the DS to connect to an
Ad-Hoc network. I will continue experimenting with it, and update if I make any
progress.
--------------------------------------------------------------------------------
- 8.7 Monkey See, Monkey Don't -
--------------------------------------------------------------------------------
One of the most interesting things I have noted about the WFC setup utility,
and the most aggravating thing as well, is the unreliability of the "Search for
Access Points" function (Section 2.2.2.1, "Automatic Configuration").
The utility will show networks that the DS cannot even connect to, such as
Ad-Hoc networks, G-Only networks, and WPA encrypted networks (though at least
for WPA, it indicates right off the bat that it can't connect to it). You can
usually tell when it has listed an incompatible network, since when you try to
connect to it, the signal indicator will immediately go to red, with no signal
bars, even though it probably showed full signal a split second ago.
It also has a tendency to show APs that have low signal as having full signal
strength. This can cause a very confusing situation, in which the DS will show
an AP will a good signal, but every time you connect, you will get an error
message.
So, just because the DS shows it listed under "Search for Access Points", don't
assume you can actually do anything with it.
--------------------------------------------------------------------------------
- 8.8 The Cisco Kid -
--------------------------------------------------------------------------------
While doing research for the guide (alright, I was trying to play Mario Kart at
a public AP), I noticed the DS seemed to be having trouble connecting to their
Cisco AP. Specifically, it was a Cisco Aironet 1100 (when they asked why I was
standing on a chair reading the model number off the AP, I told them I live
by no man's laws).
The problem seemed to be that the DHCP server was taking too long to respond. I
attempted to connect many times, and had the same problem. It wasn't just the
DS either, my Linux laptop also had trouble pulling a DHCP lease. Windows will
wait seemingly forever for the DHCP ACK response, so Windows machines seem to
handle it without much fuss. I set the wait time for the DHCP response up a bit
higher, and was then able to connect fine from my Linux machine.
Of course, the wait time can't be adjusted on the DS, so you can't do anything
about that.
The only solution is to connect to the Cisco AP with a laptop, note the IP it
gets from the DHCP server, shut down the laptop, and then manually configure
the DS with the IP your laptop got.
I am not sure what other Cisco products, if any, have this problem, I am going
to try to get my hands on some Cisco APs and do some tests. If anyone else has
had experience connecting to Cisco hardware, drop me a line and let me know how
it went.
--------------------------------------------------------------------------------
- 8.9 Escaping Captivity -
--------------------------------------------------------------------------------
The DS has no problem connecting to open WiFi APs that are scattered around in
stores, libraries, malls, etc. However, it is increasingly common for APs to be
locked down with what is known as a "captive portal".
A captive portal is a proxy system that does not let client systems inside the
network connect out to the Internet until they have been authenticated. These
systems are often found in schools or coffee shops. The goal of the captive
portal is to keep people from using the wireless network without authorization,
or often more accurately, without paying.
The mechanism though which the captive portal works is fairly simple. When the
client connects to the network and tries to access the Internet, traffic must
go though the proxy server on the network. This proxy server will put up a
login screen in the client's web browser when they attempt to access a website.
The user must put in their login information, or (in the case of a pay AP)
their payment information, to continue. Once the proxy server has accepted the
information they have entered, the MAC address of the machine the user logged
in from is then allowed full access to the Internet.
In the case of the DS, there are a few ways around this.
--------------------------------------------------------------------------------
- 8.9.1 Nintendo Wi-Fi USB Connector -
--------------------------------------------------------------------------------
The first, and most troublesome, is to bring a laptop and the Nintendo Wi-Fi
USB Connector to the AP. You can then login with the laptop, and share that
connection out to the DS though the Connector as described in Section 3.2,
"Using the Nintendo Wi-Fi USB Connector".
This is the method Nintendo suggests, but is obviously not ideal for a number
of reasons. You may not have a laptop capable of operating with the Wi-Fi
Connector, and even if you do, you probably don't want to be carrying it around
all the time just to play online with the DS.
However, if you already have a laptop with WiFi capabilities, there is a less
convoluted way to get through.
--------------------------------------------------------------------------------
- 8.9.2 MAC Cloning -
--------------------------------------------------------------------------------
While the MAC address of the DS cannot be changed by the user, the MAC address
of the wireless card in your laptop generally can be (not all drivers
support this, but it is usually a good bet that they do). You can use this to
your advantage to get the DS online though a captive portal.
The first thing you need to do is check the MAC address of your DS. Take a look
at Section 2.4, "Wi-Fi Connection Options Menu" for information about how to
find it on your system.
Once you have the MAC address of the DS, set it as MAC of your laptop's
wireless card. To the network, your laptop and DS will now appear to be the
same device.
After you have cloned the MAC of the DS, connect to the wireless network with
your laptop, and login though the captive portal system.
Then, turn off the wireless card in your laptop, and configure your DS with
the AP using "Automatic Configuration" (see Section 2.2.2.1).
If done correctly, the DS should be able to connect to the Internet
successfully.
--------------------------------------------------------------------------------
- 8.9.3 Nintendo DS Browser -
--------------------------------------------------------------------------------
With the release of the Nintendo DS Browser (in Japan, at least), it is now
very easy to get though captive portal systems with just the DS itself. Of
course, you will need to purchase the DS Browser, which is an added expense,
but if you were interested in the Browser in the first place, then it isn't
really a big deal.
All you need to do is to use the "Automatic Configuration" to setup the DS with
the AP, then start up the Browser. You will then be presented with the captive
portal login, at which point you would proceed as you would on your laptop.
When you are logged in and can access the Internet normally, turn off the DS,
put in the game you want to play online, and start it up. The proxy should
still have your DS's MAC authenticated, so the game will be able to get though
without any problem.
================================================================================
= 9. Misc. =
================================================================================
--------------------------------------------------------------------------------
- 9.1 Version Information -
--------------------------------------------------------------------------------
Changes for 0.43:
Fixed capitalization of Section names
Clarified Section 8.8, "Monkey See, Monkey Don't"
Clarified Section 7.3, "Finding the Current TCP/IP Information"
Cleaned up Section 7.2, "Software AP Compatible WiFi Hardware and Drivers"
Fixed up text in Section 2.2.2.1, "Automatic Configuration"
Fixed up text in Section 8.2, "WiFi vs. NiFi"
Rewrote much of Section 8.1, "Rate Autonegotiation"
Added Section 7.4, "Tips for Increasing WiFi Range"
Cleaned up Section 4.1.1, "WiFi Options in GNU/Linux"
Replaced "WMB/WiFiMe" with "FAQ & Troubleshooting", as it is more important
Added Section 3.3, "Nintendo Wi-Fi USB Connector Versus Wireless Router"
Rewrote Section 2.3, "Configuring a Connection with...Wi-Fi USB Connector"
Added Section 3.2, "Using the Nintendo Wi-Fi USB Connector"
Updated the current status of soft AP research for Windows and Mac OS
Removed Section 8.4, "Network Security", replaced by Section 5
Added Section 8.9, "Escaping Captivity"
Updated DS_AP to Version 1.2
Changed DNS servers in DS_DHCP.conf
Changes for 0.42:
Many small fixes, spelling, capitalization, etc
Extensive minor edits and changes
Created new framework for future sections, sections above 4 increased by 2
Created new Sections, "Network Security" and "WMB/WiFiMe"
Changed copyright in DS_AP (since guide is not hosted only on GameFAQs)
Updated the current status of soft AP research for Windows and Mac OS
Updated Section 8.4, "Network Security"
Renamed Section 8.1, "Rate Autonegotiation"
Moved Section 1.2 to Section 8.2, since 1.2 made no sense where it was
Rewrote Section 1.2 to become "Why was this Guide Written?"
Rewrote Section 1.1
Rewrote intro to Section 4
Added Section 4.4, "Hacking the Nintendo Wi-Fi USB Connector"
Added Section 4.4.1, "Using the Nintendo Wi-Fi USB Connector with AOL"
Added Section 9.2, "Future Additions"
Edited Section 4.1 so I don't sound like a total tool
Added Section 8.7, "Ad-Hoc on the DS"
Added Section 9.3, "Help Wanted"
Added Section 8.8, "Monkey See, Monkey Don't"
Added Section 8.9, "The Cisco Kid"
Updated DS_AP to Version 1.1
Expanded Section 2.4.3, "Transfer Nintendo WFC Configuration"
Changes for 0.41:
Fixed incorrect DHCP configuration file
Reordered Section 7
Moved Section 5.2 to 5.3
Added Section 5.2, "Software AP Compatible WiFi Hardware and Drivers"
Changed order of 5.3 Sections
Changed information in Section 5.3 so IP setup is the same in each OS
Added note about running DS_AP as root
Swapped 4.2 and 4.3 to reflect OS order used though the rest of the guide
0.40: Second release.
Changes for 0.40:
Completed Section 4.1 "Configuring a Software AP in GNU/Linux"
Added Section 2.4, "Wi-Fi Connection Options Menu"
Added Section 5.2, "Finding the Current TCP/IP Information"
Added Section 6.6, "A Tale of Two Consoles"
0.20: First release. Covers most of soft AP in Linux, and majority of DS
configuration.
--------------------------------------------------------------------------------
- 9.2 Future Additions -
--------------------------------------------------------------------------------
I feel this guide is fairly unique, as it can never really be complete. There
will always be new ideas to cover, and more observations to note. But even so,
here is a brief list of things I am working on, both in the short and long
term.
Long Term:
Revise DS_AP to add new functions
Cover Datel WiFi Max
Cover "DS Browser" (this should allow getting around captive portals)
Cover WMB/WiFiMe (?)
Short Term:
Add section "Of Mice and Megabits"
Add section about using Nintendo Wi-Fi Connector as standard soft AP
Complete Mac OS and Windows soft AP sections
Compare and contrast USB Wi-Fi Connector with router/APs
--------------------------------------------------------------------------------
- 9.3 Help Wanted -
--------------------------------------------------------------------------------
It takes a village to write a guide...or something.
So here is my problem, a lot of things I want to do for future guide updates
require me to get information on other people's systems, to connect with people
over WFC and study the network traffic, etc.
Unfortunately, I have no friends in the real world...and such, I need to contact
strangers on the internet to assist me.
Here I will list information and help I need for the guide. If you can provide
any of the information I am looking for, or are willing to go a few rounds with
me in some WFC games to test some new ideas, please contact me via email. If
you assist me, your name will go in the credits.
What I need:
WFC Players
I need players that can trade Friend Codes with me in Mario Kart DS, Animal
Crossing: Wild World, Tetris DS, and Metroid Prime: Hunters. I need to test
with max players, so I am looking for at least 2 people per game, since I
already have one person who can assist. If you know how to use IRC that will be
a plus, since I might have that setup so everyone can communicate during the
testing.
Linux Users
I need to find out the path and executable names of various Linux programs
on different distributions. I have done all of the work for this guide on
Slackware, and I want to make sure everything in the guide and DS_AP will work
on other distros. I need to know what distro you are running, and what programs
it uses for DHCP (both client and server). Also, if you could test DS_AP, that
would be great. If you are unsure as to how to find any of this information,
email me, and I can walk you though getting exactly what I need.
Mac Users
My ideas on soft APs in OSX are not going as well as I hoped, so if anyone
has thoughts on that, I would be interested to hear them. My problem now seems
to be that AirPort cards can't do what I need, but AirPort Extreme cards can.
So if you are running OSX and have an AirPort Extreme card, I would very much
like to talk to you.
AOL High Speed Users
If some people could test Section 4.4.1, "Using the Nintendo Wi-Fi USB
Connector with AOL", and report how it went, I would appreciate it.
--------------------------------------------------------------------------------
- 9.4 Credits -
--------------------------------------------------------------------------------
Thanks to:
Phillip Sanders for allowing me to use his general document format and ASCII
appearance.
Linus Torvalds for creating the Linux kernel, and making the world happy.
Patrick Volkerding for creating Slackware, and making me happy.
Andrea Merello, for writing the RTL8180 driver I use for my WiFi hardware.
RGCDude, for doing an infinitely better job editing this than he did testing DW.
Maxx, for guidance on submitting materials.
ravuya, for OSX information and screen shots. www.rav.efbnet.com
Everyone I don't hate.
# EOF
09/10/2006
1426
11
Join MyDS to vote for your favourite story!
More Info:
Wi-Fi USB Connector
Related News:
Related Reviews: