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:

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;

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!

33 Responses

  1. 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 (as it should when emulating the Pineapple). The AR-150 is not “bricked” as it replies normally via WiFi on (see below). When I browse (using Chrome) to 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
    Host is up, received conn-refused (0.0014s latency).
    Scanned at 2016-05-22 05:31:27 EDT for 71s
    22/tcp open ssh syn-ack Dropbear sshd 2015.67 (protocol 2.0)
    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

  2. 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?

  3. 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

  4. 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?

  5. 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.

  6. 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

  7. 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.

    1. 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

      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.

  8. 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?


  9. 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?

  10. 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.

  11. 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.

    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!

      1. 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.

        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

      2. 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.


        1. 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.

  12. 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 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?

  13. 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

  14. 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
    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 to see, when flashing is over (when ping to 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 on and on 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

    –> 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 …


  15. 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

    1. 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.

    2. 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 after flash and reboot… , but i get no response from

  16. 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.

Leave a Reply

Your email address will not be published. Required fields are marked *