From GameBrew - a wiki dedicated to Video Game Homebrew.
As of the beginning of April 2018, Nintendo has discontinued the Streetpass Relay system - which has effectively killed HomePass in its' current state. If any further developments are made to the HomePass system (e.g. some sort of Homebrew version), then this sheet will be updated to reflect those changes. But for now it is a sad farewell to one of the best updates Nintendo released for the 3DS. It's been a fun 5 years - so long and thanks for all the passes!
RaspiPass - 3DS
Current installations should be able to be made functional again by running the following over SSH:
sudo iptables -A INPUT -s 188.8.131.52 -j ACCEPT sudo iptables -A INPUT -s 184.108.40.206 -j ACCEPT sudo iptables -A INPUT -s 220.127.116.11 -j ACCEPT sudo iptables -A OUTPUT -d 18.104.22.168 -j ACCEPT sudo iptables -A OUTPUT -d 22.214.171.124 -j ACCEPT sudo iptables -A OUTPUT -d 126.96.36.199 -j ACCEPT sudo iptables -A FORWARD -d 188.8.131.52 -j ACCEPT sudo iptables -A FORWARD -d 184.108.40.206 -j ACCEPT sudo iptables -A FORWARD -d 220.127.116.11 -j ACCEPT sudo iptables -A FORWARD -s 18.104.22.168 -j ACCEPT sudo iptables -A FORWARD -s 22.214.171.124 -j ACCEPT sudo iptables -A FORWARD -s 126.96.36.199 -j ACCEPT sudo iptables-save > /raspi_secure/firewall.rules
For those who prefer re-imaging (probably most) I've got an image of 0.74 with the updated firewall rules zipping for uploading now. There's also a beta release in the git working local tree of the image. You can give that a look-see by SSH'ing in and running.
git checkout working
sudo ./scripts/copy_to_sysdirs.sh -a
The main changes worth noting in the beta are:
- A better back-end for the Web GUI (I learned how!)
- Locale changing from the Web GUI (I learned how!)
(previous post continues below....)
New version - 0.7.4 12/12/2016
Released 0.7.4 in the hope it will solve some of the errors people have been reporting. I recommend you reimage rather than upgrade, due to some filesystem changes altering/overriding log locations.
Changes this version
There are a few changes this version, including some script standardisation and directory changes.
Log & live config location changes
- Moved almost every dynamic RaspiPass file (eg logs, dynamic config) to /var/raspipass
- Configured two tmpfs drives mounted on /var/raspipass and /var/log/apache2 in order to reduce SD use
- Added configuration in copy_to_sysdirs.sh to create these mount points in fstab if they do not exist (reboot required after)
- Standardised scripts with parameters - all scripts now have an -h parameter
- Improved update script
- Altered copy_to_sysdirs.sh to reference a csv file /git/scripts/filepermissions to use as a source when copying & setting permissions
- Added more logs to /raspi_secure/clear_logs.sh
- Cleaned up output of clear_logs.sh and set_defaults.sh
- Removed copy_to_gitdir.sh - this was only required when I wasn't using Git properly :)
- Removed lots of commented out lines of code that were used during initial debugging
- Set up daily downloading of latest version file from GitHub raw servers (for update checking)
- Added notification of required reboot to Web GUI (triggered by presence of /var/raspipass/reboot - message is contents of first line
- Added daily download task (at 00:00:00) of latest master 'version' file from GitHub server to check for latest version file
- Permitted access to GitHub raw server to allow above download
For people diving in just to update, or who know what they're doing, the key links you may need are below. I've finally started making some proper docs on the GitHub page's wiki - this documentation will likely be more detailed than the (still verbose) documentation here.
What is RaspiPass?
RaspiPass is a means of accessing StreetPass Relay points from your home, allowing you to send and receive StreetPass hits all over the world. It uses a method commonly known as *Homepass* to emulate an existing StreetPass Relay access point, and exchange hits with Nintendo's servers.
Previous versions of RaspiPass existed for the Raspberry Pi 1 and 2 but relied on an external USB wireless network adapter, and these were only distributed to friends as complete units with compatible wifi dongles. With the release of the Raspberry Pi 3 and it's on-board wifi adapter, RaspiPass as it's known today was created. It was the first of its kind written specifically for the Raspberry Pi 3, intended to be a single unit without any need of peripherals.
- Simple setup using only a Raspberry Pi 3 and its onboard hardware
- Activates automatically based on user-configurable random timings
- Configuration via web front-end
- Firewall configuration to only allow traffic necessary for StreetPass Relay and device operation/configuration
Download & Prepare
- Download the latest zipped image from the Dropbox directory
- Download and run Win32 Disk Imager (Windows) or ApplePi-Baker (Mac)
- If running Windows, extract the .img file from the zipped image file
- Insert a Micro-SD card 2Gb or larger
Write Image - Windows
- Open Win32 Disk Imager
- Click the "Open" icon and select the .img file extracted earlier
- Select your Micro-SD's drive letter from the drop-down
- Click the "Write" button to write the image to the selected drive
- Once complete, close Win32 Disk Imager and safely eject your Micro-SD
Write Image - Mac
- Open ApplePi-Baker - you will need to enter your admin password
- Select your Micro-SD in the left of the window
- Click "Prep for NOOBS" to format the card
- Click the "..." button in the Restore section of the window, and select the RaspiPass .zip file downloaded earlier
- Click the "Restore" button to write the image to the selected drive
- Once complete, close ApplePi-Baker and safely eject your Micro-SD
- Insert the Micro-SD card into your powered-down Raspberry Pi 3 (with ethernet connected) and turn on
- Allow the device to boot up (the first boot may take a little while as it may need to perform some initial storage fiddling)
- Open http://raspipass/ to access the Web GUI and adjust settings as desired
- From here the device should run automatically. You can force the script to start, or shut down the device by using the buttons under the "Admin Tasks" tab in the Web GUI.
From here the device should run automatically. You can force the script to start, or shut down the device by using the buttons under the "Admin Tasks" tab in the Web GUI.
What are the login details?
User: raspi Password: pinchie
Does this work on a Raspberry Pi 2?
Not out-of-the-box. The software is set up to use the Raspberry Pi 3's on-board wireless chip, while the Pi 2 has no on-board wifi. If you can find a USB wifi adapter that will let you create an AP and change the MAC address, you may be able to use the image to get you most of the way, and you'll just have to set up your wifi adapter to work on wlan0. Results will vary from adapter to adapter, but others have succeeded using this software, a Pi2, and the right wireless adapter.
How secure is the wireless network this creates?
Hopefully, bloody secure.
The iptables configuration is set to allow only traffic necessary for your 3DS to jump onto the network, get an address, and talk specifically to the Nintendo StreetPass Relay servers. I do invite you to jump onto the network with another device and do some penetration testing - I'm always anxious to try and close any loopholes I may have left open. So far in my testing I haven't found any major security issues.
Why can't I get your image onto a 2Gb card?
While I've been through a couple of "2Gb" cards trying to find the smallest. After a few attempts and suggestions I'm currently using a Kingston 2Gb with a total size of 1,954,545,664 bytes.
What I've learned is that cards of the same labelled size are not actually the same, and can vary from brand to brand. I aim to keep the image as small as possible, but if you find a "2Gb" card that's smaller than the image requires, you may have to use a 4Gb. Alternatively, I'm very willing to trade our 2Gb cards - my larger one for your smaller one - in order to make a more compatible image.
Can I install manually, or do I have to use the disk image?
Well there's nothing stopping you installing manually. There is a deprecated guide here, but be sure to download the most recent firewall configuration from the GitHub repo, or you won't get any StreetPass hits.
I have a router/laptop/other device I can create an access point with... can't I just use that?
Absolutely. As long as you can change the MAC address and set the SSID to the correct name you can do this yourself. See the Homepass Site for the info you'll need.
Can I use RaspiPass with RetroPie/XBMC/other Raspberry Pi software?
Yes and no.
While RaspiPass is at its heart just a glorified BASH script, the way it uses the network interfaces may cause some issues with other software. It 'bridges' the wired and wireless interfaces into a single interface - br0. When the wireless interface is brought down to turn off a hotspot there can be a few seconds of transmission delay while the OS sorts itself out. By all means try it, but I can't guarantee flawless performance of other software.
The strict firewall setting can also be a hindrance, but if you're willing to sacrifice the security of the open network for co-functionality with other Pi software then that's up to you - I just try to make it as secure as possible at the time of distribution. Any decisions you make from there are up to you. :)
While this is basically a project I tend to set-and-forget (by design), I am very open to any suggestions for improvements, and even moreso if you find any issues I've overlooked. If you have any problems, questions, bugs or suggestions, either post in this topic or hop over to the GitHub page here.
If you're a software or web developer and want to take a look through to see what you can add, please feel free. I apologise in advance for your brain after seeing my code.. I rarely code anything, and my web design skills are basic programming skills with a complete lack of aesthetic knowledge thrown in. Please feel free to play around and make improvements. If you want to collaborate, I'd be delighted.