I recently picked up one of these mini routers to play with for my various IoT projects:
GL-AR150 smart router, 150Mbps OpenWrt Pre-installed
The AR150 uses an AR9331 SoC, the same processor found in the WiFi Pineapple.
Without too much effort, you can install the WiFi Pineapple firmware on an AR150. The procedure goes like this:
- build firmware-mod-kit from https://code.google.com/archive/p/firmware-mod-kit/wikis/Documentation.wiki
- extract wifipineapple firmware (https://www.wifipineapple.com/nano) with firmware-mod-kit
- clone https://github.com/domino-team/openwrt-cc/tree/73d51063bca71574206f2ce162f6bc6046f8e3ab/include
- cp -r firmware-mod-kit/fmk/rootfs/* openwrt-cc/files/
- rm -rf openwrt-cc/files/lib/modules/3.18.23/
- rm -rf openwrt-cc/files/sbin/modprobe
- and finally, build openwrt-cc.
Or download the prebuilt bin from here:
edit: removed download as per request from the WiFi Pineapple devs
To flash/upgrade your AR150, follow the uboot flashing instructions at http://www.gl-inet.com/uboot-flashing/
Then, follow the instructions at https://forums.hak5.org/index.php?/topic/37196-wifi-pineapple-primer/ to get up and running.
For the (optional) 2nd wireless adapter, I successfully used an ALFA AWUS036NHA, which contains the same AR9271 chipset as the Pineapple.
Updated June 7 2016:
Fixed the build instructions;
- The latest openwrt-cc code from GLi contains a kernel update that causes issues, use the revision above to stay in sync with the Pineapple kernel.
- Fixed the issue people were having with iptables (by removing the kernel modules packed with the Pineapple firmware and using the ones we built)
- Fixed modprobe (no idea why removing the modprobe shortcut fixes things!)
Added rtl8187 drivers for ALFA AWUS036H support (AWUS036NHA works without additional drivers)
Some people have had issues running firmware-mod-kit on their favorite distro, personally I have had no issues with Linux Mint 17.3 Cinnamon (64bit) from http://www.osboxes.org/linux-mint/
New build can be found on the github page.
Thanks to Nahuel Grisolia of cintainfinita.com for help with finding solutions to these issues!
Hey! While trying to extract the 1.0.6 firmware I’ve got “No supported file system found! Aborting”. Any help? thanks.
Done =) binwalk binary problem
Hi there! So I flashed the AR-150 with the nano-1.0.5-gl-ar150-sysupgrade.bin. Unfortunately, now the AR-150 won’t generate traffic on the WAN port, nor assign DHCP in the range 172.16.42.100-150 (as it should when emulating the Pineapple). The AR-150 is not “bricked” as it replies normally via WiFi on 192.168.8.1 (see below). When I browse (using Chrome) to 192.168.8.1:1471 over WiFi (using the default GL-AR150-XXX ESSID and password), I get the default setup screen, but when I click “Get Started” I get a popup window saying “The WiFi Pineapple is still booting – Please wait until the WiFi Pineapple has fully booted. The setup will continue automatically.” and the screen never goes away, nor does setup proceed any further.
Apologies if this is the wrong place to ask this question.
Nmap scan report for 192.168.8.1
Host is up, received conn-refused (0.0014s latency).
Scanned at 2016-05-22 05:31:27 EDT for 71s
PORT STATE SERVICE REASON VERSION
22/tcp open ssh syn-ack Dropbear sshd 2015.67 (protocol 2.0)
|ssh-hostkey:
53/tcp open domain syn-ack dnsmasq 2.73
| dns-nsid:
| bind.version: dnsmasq-2.73
80/tcp open http syn-ack nginx 1.4.7
|_http-favicon: Unknown favicon MD5: D41D8CD98F00B204E9800998ECF8427E
|_http-methods: No Allow or Public header in OPTIONS response (status code 405)
|_http-title: Site doesn’t have a title (text/html; charset=UTF-8).
1471/tcp open http syn-ack nginx 1.4.7
|_http-methods: No Allow or Public header in OPTIONS response (status code 405)
|_http-title: WiFi Pineapple
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Peter,
I had the same issue. While searching for a possible solution I came across a random twitter post with some instructions.
Amazingly it worked. Since I don’t 100% understand how/why it worked – use at your own risk.
Here is the post.
https://twitter.com/_billy_zane/status/723699490318897153
I’m having the same problems – the webpage is stuck at the wifi pineapple is still booting page I used 106. I can however ssh into the box without a problem. Any ponters to get this box moving on?
have you tried re-flashing the device?
That Twitter post worked, Thanks 🙂
Has anyone got the box to work via USB? I can connect via Ethernet but nothing via usb – tried a few different usb cables / splitters
I have successfully set this up and my issue could be due to lack of understanding. When I go to networking>WIFI Client Mode my Interface list is empty and Scanning always results in nothing found. How can i use this feature to connect it to my home wifi?
To get around this i tried plugging it to the router via ethernet. This seems to put pineapple into some kind of bridged mode. However i cannot figure out how to access the ar150 while in this mode. of course the gateway address leads to my main router and besides that the ar150 and my pc share the same ip, since my connection goes through it. how do i access the ar150 while it is in this mode?
lastly i have an alfa awus036h. I tried to plug it in but nothing seems to happen. I have a feeling that similar to cellphones and tablets there is no power over the usb? I had hoped this might show up in the interfaces talked about above, but without power nothing is happening. has anyone gotten this external wifi adapter to work with the ar150?
OG, I am having the same problems. I think the blank interface list comes from the AR-150 only having one radio while the Pineapple has two. I am also having issues getting a USB wireless interface to initialize.
root@Pineapple:~# lsusb
Bus 001 Device 004: ID 148f:5370 Ralink Technology, Corp. RT5370 Wireless Adapter
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
But the device does not appear in ifconfig or iwconfig.
it appears the 5370 drivers are not in the firmware. How can we add these drivers?
Flash the firmware I just posted and follow the instructions at https://forums.hak5.org/index.php?/topic/37196-wifi-pineapple-primer/
The Pineapple looks for internet at 172.16.42.42, on my laptop I connect to my wifi, then using ICS I share the wifi to the Pineapple via ethernet.
The new version no longer is able to recognize my USB drive, and does not work with my TP-WN722N. Seems like a step backwards. The USB drive used to show up as /dev/sda and it was easy to mount /dev/sda1 as /sd so I could install modules and dependencies. Now fdisk -l shows a bunch of mtdblock devices. My TPlink used to populate as wlan1 as soon as I plugged it in, and the modules would work. Now it appears to not work at all even thought it is AR9271. Side note, my RT5370 still does not work, but modprobe and insmod seem in better shape:
root@Pineapple:~# modprobe rt2800usb
failed to find a module named rt2800usb
root@Pineapple:~# insmod rt2800usb
insmod: can’t insert ‘rt2800usb’: No such file or directory
Moreover, it appears the uboot recovery mode (hold reset while powering on) does not function any more, so I am stuck with this firmware. Please let me know if you know how to recover from this.
Nevermind, and sorry for the alarm. I can get into the recovery. My timing was off. From: http://www.gl-inet.com/docs/smartrouter/?diy_flashing.html
If you don’t have serial ttl connected, you can still do it using the RESET button.
While pressing the RESET button, power on the device. You will see the GREEN LED flashing.
Hold the RESET button unitl the GREEN LED flash 5 times, the RED LED will light up. Release your finger now.
It actually blinks the RED LED 5 times, then you let go of the reset button. Firmware flash interface is available at 192.168.1.1.
I reflashed the v2 of 1.0.6 because I filled up the 2.1MB free space by trying to install the dependencies for nmap. (should have known that would happen).
Top priority now is getting the USB drive to mount.
how do you include the FILES directory when runninhg make?
tried make image FILES=files/ but errors on build, so what is the coorect command line to use?
Also why doesnt the make info command work?
regards
steve0
the files are included automatically
thanks will rebuild vm and try again.
Hey Patrick,
thanks for the instructions. I am wondering how practical it is to use an AR150 vs a real pineapple nano for productive use.
As homebrewed points out, there are about 2 megs free space after flashing the recent firmware. So adding modules requires a USB-stick (as there seems to be no SD card slot) which would use up the only USB port. So if you want to add a second wifi-interface, you start using a USB-hub to get everything working, ending up with a lot of cabling.
Did anyone use the AR150 in this scenario (installing several modules and adding a second wireless interface)?
Is it feasible?
I’m using the AR150 with the AWUS036NHA wifi adapter, the modules are fairly small so 2 megs goes a long way.
An alternative to the AR150 is the Domino kit: http://www.gl-inet.com/product/domino-pi-basic-kit/
It contains the same hardware, but you can swap out the USB module with a USB/SD combo module: http://www.gl-inet.com/product/domino-3xusb-microsd-tile-board/
The Domino Pineapple detects and uses the SD module correctly just like an original Pineapple.
Thanks for the quick reply.
For now I will try the AR150 with something like this: https://www.amazon.com/Saicoo%C2%AE-USB3-0-3-Port-2-Slot-Reader/dp/B00Y432BNI
which hopefully adds microSD and a second USB Port without a hassle.
So now I was able to play with this board a few hours. I used Patricks nano-1.0.6-gl-ar150-sysupgrade-v2.bin firmware.
I am connecting the devices to a USB to 2x USB / SD / SATA adapter.
Results:
USB-Stick: Not working
SD Card: Not working
ALFA AWUS036H (RTL8187): Working
ALFA AWUS036NHA (AR9271): Not working
SATA HDD: Not working
So next step would be to integrate the right modules into the kernel, keeping the image small enough.
Patrick, would you be so kind to share the kernel-configs you used to build the firmware with us?
Also I have a few questions regarding the setup of your build-environment from your instructions:
How do you clone the mentioned tree? Do you mean using https://github.com/domino-team/openwrt-cc/archive/73d51063bca71574206f2ce162f6bc6046f8e3ab.zip or using the default branch and just copying the include-folder of this specific branch over?
Also the files-folder from the pineapple-firmware goes to the root-folder and not the include-folder. Right?
After all this, do I still need to run ./scripts/feeds update -a && ./scripts/feeds install -a as mentioned in the readme?
Obviously, I need to improve on git and this build-environment. For now, any help is appreciated!
git clone https://github.com/domino-team/openwrt-cc.git
git checkout 73d51063bca71574206f2ce162f6bc6046f8e3ab
Working on kernel-config too…
Alright. Just to be sure, run this script in an empty folder. It will prepare everything.
Am I missing anything in setting this up? I am running this script in Kali rolling.
USB and AWUS036NHA support stopped working when removing the kernel modules in v2. Patrick, what made you remove them all?
Any hints on a proper config-file are highly welcome.
#/bin/bash
apt-get update
# dl firmware
wget https://www.wifipineapple.com/downloads/nano/1.0.6 -O upgrade-1.0.6.bin
#dl and install FMK
apt-get install git build-essential zlib1g-dev liblzma-dev python-magic
wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/firmware-mod-kit/fmk_099.tar.gz
tar -zxvf fmk_099.tar.gz
cd fmk
# quick and dirty, binwalk is installed locally
echo “BINWALK=binwalk” >> shared-ng.inc
./extract-firmware.sh ../upgrade-1.0.6.bin
cd ..
#dl and install openwrt-cc
apt-get install subversion build-essential git-core libncurses5-dev zlib1g-dev gawk flex quilt libssl-dev xsltproc libxml-parser-perl mercurial bzr ecj cvs unzip git
git clone https://github.com/domino-team/openwrt-cc.git
cp -r fmk/fmk/rootfs/* openwrt-cc/files/
rm -rf openwrt-cc/files/lib/modules/3.18.23/
rm -rf openwrt-cc/files/sbin/modprobe
cd openwrt-cc
git checkout 73d51063bca71574206f2ce162f6bc6046f8e3ab
./scripts/feeds update -a
./scripts/feeds install -a
make menuconfig
make
Alright. Just to be sure, run this script in an empty folder. It will prepare everything.
Am I missing anything in setting this up? I am running this script in Kali rolling.
USB and AWUS036NHA support stopped working when removing the kernel modules in v2. Patrick, what made you remove them all?
Any hints on a proper config-file are highly welcome.
http://pastebin.com/5q5Dx8BC
There were some kernel module conflicts with the Pineapple included modules, I was planning to go through the list of what’s included in the pineapple firmware, and add those modules to the .config, that way we can use newer kernel versions and have the appropriate modules compiled in.
Another option is to go through the list of conflicting modules and remove only those. I haven’t had time to test this myself, but if you remove the iptables module from lib/modules/3.18.23/, that should fix the sslstrip plugin without breaking other stuff.
Still trying to get this thing to work. The @_billy_zane post reads “if after f/w update & stuck in ‘wifi pineapple still booting’…ssh to device and issue ‘jffs2reset -y && reboot'”. That would work great… if I knew the danged SSH credentials. The default wifipineapple’s “root/pineapplesareyummy” (over wifi, on 192.168.8.1) is a no go. Again, it’s not “bricked” (see nmap output above). I didn’t set up any passwords yet. Any ideas as to the creds I need to use?
Great job,
I have a 6416, the version before the ar150, it has pretty much the same hardware, same chip, RAM, ROM, ports… the only differences are in the switch, usb power control and POE as far as I know. How hard would it be to port this kernel on it? Should I just try it and give you feedback? I noticed that the Tor firmware for both are diferent downloads
Hello,
I’ve tried flashing https://github.com/kow/glinetpineapple/blob/master/nano-1.0.6-gl-ar150-sysupgrade.bin and https://github.com/kow/glinetpineapple/blob/master/nano-1.0.6-gl-ar150-sysupgrade-v2.bin several times without much effort. Luckily the U-boot flash interface didn’t get bricked …
So just to sum up the process for verification:
1. I dowloaded https://github.com/kow/glinetpineapple/blob/master/nano-1.0.6-gl-ar150-sysupgrade.bin (since I have an Alfa AWUS036NHA as 2nd WiFi-adapter)
2. While pressing the RESET button, I powered on the device – the GREEN LED was flashing.
3. I held the RESET button unitl the RED LED flashed 5 times, and released my finger
4. I now connected the AR150 on the LAN-port with my computer on eth0
5. In a Firefox-window the firmware flash interface is available at http://192.168.1.1
6. here I used nano-1.0.6-gl-ar150-sysupgrade.bin
7. while flashing (lights on the AR150 blinking) I ran a ping to 192.168.1.1 to see, when flashing is over (when ping to 192.168.1.1 isn’t possible anymore + 3 minutes wait time).
8. after flashing I disconnected power, waited for 1 minute and reconnected power
9. Now I tried to ping the newly flashed device on 172.16.42.1 on 192.168.8.1 and on 192.168.1.1 without success (corresponding IP addresses where bound to my eth0 interface)
at this point I am stuck 🙁
–> must my computer during the reboot of the flashed AR150 be connected with the Internet? (While I was doing the steps above, I had no WiFi connection on my notebook), or can the with the wifi-panapple flashed AR150 booted up completely without any Internet-connection offline?
–> can the flashed AR150 be reached by ping, or just by ssh or http: via http://172.16.42.1:1471?
–> can the pinapple-upgrades be applied, when announced in the Web-UI? (this is at the moment theoretical)
More questions to come, when I solved the above steps …
Thanks!
Christoph.
Patrick thanks for your work on this. Was never able to anything useful as this really requires 2x radios.
I have compiled my own version for the GL-Inet AR150 with updated pineapple firmware to 1.1.1 and includes builtin kernel modules for the RaLink RT5370 wifi extra wifi dongle hak5 sells. (9$ on amazon)
firmware is here – (1.1.1 file) https://github.com/gopher2/glinetpineapple and can be uploaded the u-boot way.
If theres interested it appears i can port to the AR350M also
Dave
Hi I tried your 1.1.1 firmware, its good but it has the same problem as the 1.0.6 v2 firmware that it doesn’t mount usb storage correctly (no sd(x) comes up). I was hoping that using a usb hub with a RaLink RT5370 and usb to sd card adapter would be possible (RT5370 won’t arrive til December). Currently I am using the 1.0.6 firmware with an sd to usb adapter. porting to a GL-AR300M-Ext (with dual antennas) might be an option for you? but I don’t have the technical knowledge to do it all myself unfortunately.
I tried the uboot method with 1.1.1 you linked to … I had a dead router afterwards. tried a few times. made sure my download wasn’t damaged. Was able to uboot flash back to stock without issues however. i did set my ip to the 172.16.42.42 after flash and reboot… , but i get no response from 172.16.42.1:1471
Hi
Has anyone got the Sd card or usb memory devices to mount ??? sd(x) ??
In case anyone is interested I have compiled the firmware including the kernel modules for the use of usb storage and wifi usb dongles, being able to be connected through an unpowered hub. I have not tried all the modules yet but for the moment I have not found any bugs.
The firmware and more information are here: https://github.com/serxo/ar150-wifi_pineapple. I have tested it with the TP-LINK WN722N, ASUS NANO N-10 ( doesn’t support monitor mode but is little and cheap), some USB drives/card readers and the most crappy USB hub from Amazon basics.