My features for the WLAN Pi

With the help of few others, I added some new features to the Front Panel Menu System (FPMS) of the WLAN Pi. I refer to these as “networkinfo”, if you were wondering where the name came from. I am really pleased that most of them actually made it into the official WLAN Pi image and are available to you out of the box. Here is some documentation for you so that you do not have to reverse-engineer the code.

iPhone USB Tethering on WLAN Pi

iPhone USB tethering on the WLAN Pi lets you use your iPhone or iPad as a cellular modem and share the internet connectivity with the WLAN Pi. It also charges your iPhone, which is nice.

You can even take this one step further. Perhaps you have multiple other devices connected to a switch and you need to provide temporary internet connectivity to all of them. That is where the USB Tethering mode comes to the rescue.

Here is my other blog post with step by step instructions on how to enable iPhone tethering on the WLAN Pi.

Public IP Address

“Menu > Network > Public IP Address” shows the public IP address of your WLAN Pi. Country associated to the IP address is displayed along with the AS number and reverse IP address hostname (PTR record) if available.

This feature requires internet connectivity and works with any network interface. I use a publicly available service for this called

 WLAN Pi Public IP address menu WLAN Pi Public IP address 1 WLAN Pi Public IP address 2


Have you ever wondered if your WLAN Pi had internet connectivity? “Menu > Utils > Reachability” solves exactly this problem. It executes several network tests in parallel and tells you what is reachable and what not.

To name a few of the tests, it pings, tries to browse and looks for “” in the body of the web page (this is to prevent false positives like captive portals), tries to resolve using the primary DNS server (always statically configured to on the WLAN Pi by default), then using secondary and tertiary DNS servers, pings the default gateway and finally arpings the default gateway, which is useful when your default gateway does not respond to a standard ICMP ping request like in the photo below.

WLAN Pi Reachability 1 WLAN Pi Reachability 2

The output refreshes every 3 seconds or so and pings and arping display the actual round-trip times.

It takes a couple of seconds to execute after you open “Menu > Utils > Reachability”. It may almost feel like the button was not pressed, but this is normal. Be patient, please.

Default timeouts are set to 2 seconds. If the Pi does not receive any response, it will display “FAIL” for this particular test. If you support satellite or other links with very high latency, you can manually increase the timeout values:

sudo nano ~/BakeBit/Software/Python/scripts/networkinfo/

Reachability works with any network interface and requires a default gateway to be configured – either statically or assigned by DHCP.


“Menu > Utils > Speedtest” utilises the Linux CLI tool developed by It takes the output generated by the tool and formats it to fit the OLED screen of the WLAN Pi. Downlink and uplink throughput and the public IP address are shown.

WLAN Pi Speedtest menu WLAN Pi Speedtest

Internet connection is required and it works with any interface. No backend server as such is needed on your network. Ookla and its partners run a network of servers.

I recommend this tool for WAN throughput testing and verification downlink or uplink rate limiting. Please note it is not designed for AP or Wi-Fi performance testing. Use WLAN Pi iperf server connected to your LAN instead.

CDP neighbour detection

Cisco Discovery Protocol (CDP) advertises details and capabilities of network infrastructure devices like APs, routers, switches and IP phones. This feature starts a packet capture on eth0 interface and waits for first the CDP packet to come in. It then parses the data and displays neighbouring device name, model, remote port number and native VLAN.

WLAN Pi CDP neighbour 1 WLAN Pi CDP neighbour 3

It only works with eth0 interface of the WLAN Pi and it automatically executes every time eth0 interface changes state to up. It then saves the output to a file located in /tmp/cdpneigh.txt. When you open “Menu > Network > CDP Neighbour”, the neighbour information will be displayed instantly as it has already been cached. Without this capability you would have to wait for up to 60 seconds (default CDP hello timer) before getting any output. Which you might not like;-)

LLDP neighbour detection

Link Layer Discovery Protocol (LLDP) advertises details and capabilities of network infrastructure devices like APs, routers, switches and IP phones and is widely used by vendors. Most of the logic is similar to the CDP tool. It does a packet capture on eth0 and waits for the first LLDP packet to come in. It then parses the output and displays neighbouring device name, model, remote port number and native VLAN.

WLAN Pi CDP and LLDP meighbour WLAN Pi LLDP neighbour

Currently, it only supports eth0 interface of the WLAN Pi and the script is automatically executed every time eth0 interface goes up. It then buffers the output to a file file located in /tmp/lldpneigh.txt. When you open “Menu > Network > LLDP Neighbour”, the neighbour information has already been captured and will be displayed instantly. Without this capability you would have to wait for up to 30 seconds (default LLDP hello timer) before getting any output.

Eth0 IP Config

“Menu > Network > Eth0” shows all IP details of the built-in eth0 interface including the name and IP address of the DHCP server (unless static IP address has been assigned to eth0), IP address, subnet mask, IP addresses of DNS servers being used (by default primary DNS server is statically configured to on the WLAN Pi), domain name (if configured on the DHCP scope), speed and duplex.

The output automatically refreshes every few seconds or so.

WLAN Pi Eth0 IP config 1 WLAN Pi Eth0 IP config 2 WLAN Pi Eth0 IP config 3

WPA passphrase

Have you ever forgotten the WPA passphrase configured on the WLAN Pi? You can now head over to the “Menu > Network > WPA passphrase” menu and check the current passphrase there.

WLAN Pi WPA passphrase

Wi-Fi Console

This feature allows you to connect to console ports of multiple devices and access them remotely, over a wired network or wirelessly. All you need is a single WLAN Pi, a supported Wi-Fi adapter, USB hub and a few USB-to-serial adapters.

Credit to Nigel Bowden who has done all of the heavy lifting. Here is his GitHub repository and documentation. I have recently added support for up to 8 USB-to-serial adapters and up to 8 Cisco USB console cables. You can mix and match them.

Wi-Fi Console is an ideal terminal server for your home lab – inexpensive, compact and fanless. In my lab I use a standard 7-port hub connected to my WLAN Pi which provides plenty of ports for all my USB-to-serial and USB console adapters. Here is an example:

  • RJ-45 console connection to my AP
  • USB console to my Wireless LAN Controller
  • USB console to my switch

WLAN Pi Wi-Fi Console with multiple adapters Console cables plugged into appliances

To activate Wi-Fi Console go to “Menu > Modes > Wi-Fi Console”. Connect all adapters and after the WLAN Pi reboots, connect to the “wifi_console” SSID. Finally, telnet to the IP address of your WLAN Pi on respective TCP port to start the console sessions. Port numbers and a few more tips are posted here.

Wireless connection to Wi-Fi Console Wi-Fi Console Terminal Lines Royal TSX

Special thanks

Thanks to the “father” of the WLAN Pi Jerry Olla for keeping things up to date, making sure everyone is in sync and for building the official images. Nigel Bowden played a vital part of this exciting journey and inspired me, thank you sir! Kudos to Adrian Granados for developing some great integrations and tools and thanks to Francois Verges for his Hotspot feature.

There are many other contributors to the WLAN Pi project and they deserve as much kudos as everyone else. Without the right hardware and form factor, there will be no WLAN Pi. Without the Front Panel Menu System, I will not be able to display any output to you.

Thanks to all of you who helped me test and make these features even better.

It has been a pleasure working with you all and meeting you virtually and in person.

Want to get involved?

If you have any ideas on how to improve the WLAN Pi or want to get involved, please do not be shy and reach out to anyone of us, ideally on Twitter. Hashtag #WLANPi and follow @WLANPi.

How to install Cisco vWLC in VMware Fusion on your Mac

Officially, vWLC is not supported on Type-2 hosted hypervisors like Fusion or Workstation. However, if you need to build a non-production lab, portable demo or practice for your next exam, technically you can run vWLC in VMware Fusion.

The trick is to install Fusion on your Mac, create a new VM with the free ESXi Hypervisor (or the full-blown one if you have licenses) and deploy vWLC onto the ESXi:

macOS <-> VMware Fusion <-> ESXi Hypervisor running as a VM <-> vWLC VM

It may sound complex, but is actually quite easy to do and runs like a charm even on a 13″ Intel i5 MacBook Pro.

  1. Download the vWLC OVA image from
  2. Download VMware vSphere Hypervisor 6.7 ISO. Register on their website to get a free license key.
  3. Download the ovftool 4.3.0 (older versions may not work correctly) for Windows and make sure you have a Windows machine or VM by hand as ovftool only runs on Windows.
  4. Create a new VM in VMware Fusion, mount the Hypervisor ISO and install ESXi. Configure networking for this VM as Bridged Networking to Wi-Fi or Ethernet. Wi-Fi is a great option as it allows you to move freely with your Mac whilst running the vWLC.
  5. With the free ESXi Hypervisor, we have to deploy the vWLC OVA using the ovftool. This will help us get past the errors we would have otherwise ran into the ESXi web GUI. To do this we need a Windows machine.
  6. Install the ovftool in the Windows machine, transfer the vWLC OVA archive to it and deploy the OVA onto ESXi:

    C:\Program Files\VMware\VMware OVF Tool>ovftool.exe –skipManifestCheck –acceptAllEulas –noSSLVerify –noSSLVerify=true -ds=”datastore1″ –net:”VM Network”=”VM Network” –net:”VM Network 2″=”VM Network” C:\Users\Jiri\Desktop\AIR_CTVM-K9_8_5_151_0.ova vi://

    The IP address in this string “vi://” is our ESXi address. You may have noticed that I am using the same network for both Service Port and Management interfaces. After I deploy the OVA, I usually disable the Service Port adapter in the VM settings and use Management interface for management and for APs to join. It just keeps things simple and we don’t need to worry about multiple adapters and subnets.

  7. You can set the vWLC VM to Autostart and start it manually now.
  8. Open Console to it and press any key to activate the console access.
  9. Follow the installation guide.
  10. If you are running the evaluation license, accept the EULA. If you purchased AP licenses, add then to the controller and accept the EULA.
  11. Since vWLC only supports Flexconnect mode APs, make sure to convert your APs manually or apply this CLI command:

    config ap autoconvert flexconnect


  12. Finally connect your AP to a PoE capable switch or power injector and it should be able to discover and join the virtual controller.

Note: If you installed vWLC VM directly onto Fusion with no ESXi Hypervisor layer, the controller would not be able to communicate on its Management interface.

Catalyst 9800-CL IOS-XE controller

The above scenario covers the AireOS vWLC. Cisco now has a complete range of Catalyst 9800 series controllers with feature parity between them. The new virtual controller is called Catalyst 9800-CL and it brings all the great IOS-XE features, HA SSO, programmability, hot patching and supports all AP modes.

Francois and Rowell published great step by step instructions on how to install C9800-CL onto ESXi and Fusion.

Add account to Mail and Contacts apps on Mac OS X as Microsoft Exchange Account

Microsoft has recently updated their free to Exchange Server backend (Office 365 infrastructure), which means that we can now use it as a fully functional Microsoft Exchange account. No more hassle with IMAP, POP3, SMTP or even Hotmail Connector for Outlook. And Mac users can finally see and edit their contacts in Contacts app on Mac OS X!

Add e-mail and contacts to Contacts and Mail on Mac OS X

1. Open Mail app > Mail > Add Account…
2. Select Exchange
3. Enter your username and password
4. Click Sing In
5. Use as Internal URL and External URL
6. Now select to sync E-mail and Contacts
7. Click Done, give Mail and Contacts apps a minute or two to sync

Any questions or comments, please let me know.

Upgrade na Windows 8: Jak na aktivaci Windows 8 po instalaci na čistý disk

V mém okolí se to již hemží technickými dotazy na nová Windows, a tak jsem si je chtěl na vlastní kůži naplno vyzkoušet a naučit se s nimi pořádně do hloubky. Využil jsem nabídku Microsoftu a pořídil jsem si Windows 8 Upgrade za 29,99 €. Stávající Windows 7 mi maximálně vyhovují, ale chtěl jsem osmičkám dát šanci.

Zakoupení licence, stažení image a vytvoření bootovacího flashdisku je hračka. Instalátor udělá všechnu práci za vás. Chválím.

Problém ovšem nastává v okamžiku, kdy z flashdisku nabootujete, pěkně vyčistíte pevný disk, odstraníte oddíly a pustíte se do čisté instalace. Instalace samotná sice proběhne na jedničku, všechny ovladače se pěkně nainstalují automaticky na pozadí, ovšem aktivace Windows se nezdaří. Mezi tím jsem začal všechno spokojeně používat, ale pak všiml jsem si, že mi nejde změnit pozadí plochy. Trklo mě to a zkontroloval jsem, jestli proběhla automatická aktivace. Nikoliv. Spustil jsem ji tedy znovu, zadal produktový klíč, ale Windows ho odmítla. Po chvíli hledání jsem zjistil, že tento instalační scénář není možný.

Microsoft doporučuje odstranit Windows 8, nainstalovat zpátky Windows 7 a z nich pak provést upgrade na osmičky. V tomto případě garantuje úspěšnou instalaci zakoupeným produktovým klíčem. Komu by se ale chtělo trávit hodiny zbytečnými reinstalacemi? A proč vůbec Microsoft umožňuje vytvoření bootovacího instalačního flashdisku, když záhy odmítne provést aktivaci z něj nainstalovaného systému? Nestačilo by pouze zadat při instalaci Windows 8 produktový klíč Windows 8 Upgrade a k němu ještě druhý klíč předchozí verze Windows?


V případě, že na disku máte předchozí verzi Windows, nemusíte nic řešit. Aktivace Windows 8 Upgrade se provede automaticky. Pokud ale přecházíte na osmičky formou čisté instalace na prázdný disk bez vytvořených oddílů (a tedy i bez přítomnosti předchozí verze Windows), je potřeba upravit tento klíč v registrech. Bez něj se Windows 8 nezaktivují.

  1. Ve Windows 8 stiskněte klávesu Windows.
  2. Rovnou začněte na klávesnici psát, napište regedit a stiskněte Enter. Potvrďte spuštění Editoru registru kliknutím na Ano.
  3. Proklikejte se do větve HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ Windows\ CurrentVersion\ Setup\ OOBE.
  4. V pravém podokně změňte hodnotu klíče MediaBootInstall z 1 na 0.
  5. Zavřete Editor registru.
  6. Stiskněte klávesu Windows.
  7. Rovnou začněte psát a napište cmd. Vlevo se objeví Příkazový řádek, klepněte na něj pravým tlačítkem myši. Dole vyberte Spustit jako správce. Potvrďte spuštění kliknutím na Ano.
  8. Do příkazového řádku napište slmgr -rearm a stiskněte Enter.
  9. Restartujte počítač.
  10. Teď je vše připravené. Proveďte aktivaci Windows 8. Stiskněte klávesu Windows. Rovnou začněte na klávesnici psát, napište slui a stiskněte Enter. Tam klikněte na tlačítko, které během pár sekund provede aktivaci systému.


Netuším do jaké míry je tento postup v souladu s licenčními podmínkami. Mým cílem bylo ukázat, že to technicky lze. Mimochodem čerpal jsem přímo z oficiálního technického fóra Microsoftu.

V jakém formátu ukládají Windows a Office produktový klíč v registrech?

Windows a Office si ukládají produktový klíč, který najdete na licenční nálepce, také do registrů. Není ovšem v tradičním formátu 25 znaků se 4 pomlčkami, ale je zakódovaný.

Hodnotu uloženou v registrech je potřeba převést do binární podoby a poté použít kódování BASE-24. Výsledkem je produktový klíč tak, jak ho známe v podobě FFFFF-GGGGG-HHHHH-JJJJJ-KKKKK. Povolenými znaky jsou B, C, D, F, G, H, J, K, M, P, Q, R, T, V, W, X, Y, 2, 3, 4, 6, 7, 8, 9.

Kompletní popis formátu a algoritmu najdete tady:

Hotové Visual Basic skripty, které umí vytáhnout klíč z registrů, najdete tady:

Zjištění produktového čísla snadno:

Pro zjištění všech produktových klíčů vašich Windows a Office použijte grafickou utilitku Produkey.

Pozor na kopie nabíječky a USB kabelu pro iPhone

V domnění, že kupuji originální nabíječku a USB kabel pro iPhone jsem si z jednoho českého obchodu objednal toto přislušenství. Příště už to neudělám a nedoporučuji to ani vám.

Proč se vyhnout kopii?

  • kopie nabíječky se nepříjemně přehřívá!
  • při zaklepání na neoriginální nabíječku uvnitř cosi drnčí, některý z dílů je tam špatně uchycen
  • USB kabel má větší rozměry plastové základny okolo 30ti pinového konektoru
  • máte-li telefon v bumperu, musíte ho nejprv z obalu vyndat, až potom se vám povede USB kabel do přístroje zastrčit

Jak poznat originál?

V galerii si prohlédněte, jak od sebe odlišíte originál od Applu a jeho levnější kopii z Číny. Vodítkem pro zakoupení originálu může být cena, která je zpravidla o dost vyšší než u kopie. Ale nebral bych to jako svaté pravidlo, viděl jsem i zadraho prodávané neoriginální příslušenství.

Znaky originálního příslušenství:

  • plastová základna obklopující 30ti pinový konektor USB kabelu je menší než u “baculatější” kopie
  • piktogramy na USB kabelu jsou šedivé nikoliv černé
  • bužírka je na obou koncích USB kabelu delší
  • kabel je tužší
  • má v 30ti pinovém konektoru zapojených 6 kontaktů narozdíl od 4 u kopie
  • při pohledu do USB portu nabíječky uvidíte její alfanumerické označení (že by sériové číslo?)
  • znak CE na spodní straně nabíječky má na kopii chybné proporce, písmena CE jsou blíže k sobě, než je předepsáno, takže spíše než o evropskou shodu půjde o neslavný “China Export”
  • kovový díl vidlice nabíječky je na konci viditelně zkosený – v místě kde končí pokovená část vidlice a přechází v plast
  • nabíječku dostanete zabalenou v originální krabičce od Applu, kopie vám obvykle dorazí pouze v obálce

Originál od Applu najdete pod zelenou barvou, kopii jsem zvýraznil červeně.

Popisek v ČR nehraje roli

Ani sebedůvěryhodnější popisek zboží negarantuje, že se při výběru nespálíte. V případě této přehřívající se nabíječky to berte doslova:) Na českých aukčních portálech i e-shopech prodejci podobného zboží běžně udávají jako výrobce “Apple”, což má daleko k pravdě.

Po přechodu na Android 2.3.5 nefunguje stahování a aktualizování aplikací z Android Marketu

Jako spousta dalších uživatelů Androidu jsem upgradoval svůj Wildfire S na Android 2.3.5. Šlo o oficiální over-the-air update od HTC. Po pár dnech používání jsem zjistil, že nejsem schopen aktualizovat stávající nebo stáhnout novou aplikaci z Marketu.


Běžte do Nastavení Aplikace Správa aplikací > přepněte se nahoře na Všechny aplikace > klepněte na aplikaci Správce stahování > vpravo nahoře vyberte Odinstalovat aktualizace. Restartujte telefon a všechno zase poběží jak má. Tímto krokem pouze odebíráte aktualizaci jedné aplikace (Správce stahování). Verze Androidu zůstává stále 2.3.5.

Tak a tohle jsou přesně chvíle, kdy mám chuť od Androidu utéct a koupit si iPhone:)
Stalo se a před měsícem jsem na iPhone skutečně přešel. Začínám mít rád ten pocit, když věci fungují jak mají;)