Omada Controller 3.0.2 for Linux (including new tpeap v1.4)
Update 2020-04-30: Omada EAP Controller 3.2.10 community version has just been released.
There is now a .deb-package available for easy installation on Debian, Raspbian and any other Debian-based Linux. The steps below are not necessary anymore for the installation of Omada Controller using the dpkg package manager.
The following (now obsolete) post is still here for reference only:
Hello world!
TP-Link just released the latest version of Omada Controller 3.0.2. Thanks to a tip from forum user humor_amarillo I got my hands on it early. So here it is, baked in just no time: The community version of
Omada EAP Controller 3.0.2 for Linux
Last update: 2018-08-28 22:40
What's new in this version?
- Cloud support. See the official release notes on the TP-Link website.
- Auto-backup, but the Windows-way. See below for the Linux-way to do backups.
- From what I saw so far, the directory structure has been cleaned up. Photoshop file with icons from v2.7.0 has been removed from the images directory.
- GUI now seems much more cleaner, too. Well done, TP-Link!
- EAP Controller starts ~30% faster compared with v2.7.0.
- All steps in the initial wizard now can be skipped! Finally my feature request was honored, thanks to R&D very much!
What's new in the Linux release?
- Logo now shows »Community version« below the TP-Link logo, so you can recognize it better.
- Two new options for tpeap:
- dump lets you dump the database as well as the maps and keystores.
- restore lets you restore a database dump including maps and previous keystores.
- A surprise (see below).
Update #1: New tpeap 1.4 has been released (see this post for more details).
For your convenience, I have attached the new tpeap script v1.4 to this posting, too. It might be handy for doing a backup of your v2.7.0 installation, which can be easily restored in EAP Controller 3.0.2.
Update #2: The tpeap 1.4 just has been added to the TAR archive with Omada Controller 3.0.2. If you download the TAR archive as described below, you will get the new tpeap script already - no need to install it twice.
Standard disclaimer, as usual: Use at your own risk.
This community version (cv for short) is neither released nor supported by TP-Link and it still needs some testing.
Installation of the Linux version
— If you want to install the Linux version for the first time, please see this post first, replace the instructions in step 2 there with the instructions in the same step 2 in this post below and proceed with the remaining steps here when you have installed all the pre-requisites (eapc role account, Java JRE, mongodb database).
— If you already have installed Omada EAP Controller 2.7.0cv on your Linux system, just read on.
Step 1: Make a backup
Obviously, to make a backup, the old EAP Controller needs to be running. Download the tpeap script attached to this posting and install it (you can safely overwrite the old tpeap version in the 2.7.0cv Controller):
cp tpeap /opt/tplink/EAPController/bin/
Next, create a backup. You need to specify a directory for the database dump (else it uses the directory EAPC_HOME/backup):
tpeap dump /tmp/backup
tpeap will create the directory, copy your maps and keystore to it, and then execute mongodump, which dumps the database in binary BSON format into the backup archive. Now you can safely stop the EAP Controller.
Step 2: Download and extract the software
Download the TAR archive from https://rent-a-guru.de/ftp/eapc-3.0.2.tar.gz
Check the SHA256 sum:
$ sha256sum -b eapc-3.0.2.tar.gz
2b9c9ce54a3bc698b25901f1234aef79e3d1e51703a9af1dcaa8360c4b407f66 *eapc-3.0.2.tar.gz
9638bb2ed43d58169a33b52ea2be1d48482fae68a5d93028f162ff66f2b0c4ea *eapc-3.0.2.tar.gz
$
Step 3: Set up the EAP Controller
Installation is straight-forward: Extract the TAR archive as root in /opt/tplink, remove the symlink EAPController pointing to version 2.7.0cv and create a new one pointing to the EAPController-3.0.2 directory just extracted from the TAR archive. Easy, isn't it?
cd /opt/tplink
tar xvzf /your-download-dir/eapc-3.0.2.tar.gz
rm EAPController
ln -s EAPController-3.0.2 EAPController
Do a quick check wether the permissions and ownership has been set correctly (complete dialog shown here):
# ls -ld /opt/tplink/EAPController-3.0.2
drwxr-xr-x 13 eapc eapc 4096 Aug 21 05:53 /opt/tplink/EAPController-3.0.2
# ls -l /opt/tplink/EAPController-3.0.2
total 12
drwxr-xr-x 2 root root 6 Aug 21 05:27 backup
drwxr-xr-x 2 root root 55 Aug 21 02:11 bin
drwxr-xr-x 6 eapc eapc 55 Aug 21 05:53 data
drwxr-x--- 2 root eapc 39 Aug 21 01:30 keystore
drwxr-xr-x 2 root root 4096 Aug 21 01:30 lib
drwxr-xr-x 2 eapc eapc 58 Aug 21 05:53 logs
drwxr-xr-x 2 root root 22 Aug 21 03:18 man
drwxr-x--- 2 root eapc 4096 Aug 21 01:30 properties
drwxr-xr-x 2 root root 36 Aug 21 05:36 webapps
drwxr-xr-x 3 eapc eapc 32 Aug 21 05:53 work
#
Two more things: Install the symlink to the Java JRE:
cd /opt/tplink/EAPController
ln -s /where-your-JRE-lives/ jre
and the manpage of tpeap (you find it in the man subdirectory):
cp man/tpeap.man /usr/share/man/man8/tpeap.8
gzip -v --best /usr/share/man/man8/tpeap.8
My JRE resides under /opt/jvm, so it looks like this:
# ls -l jre
lrwxrwxrwx 1 root root 21 Aug 21 05:53 jre -> /opt/jvm/jre1.8.0_181
Important note for users of Ubuntu and probably other distros, too:
If your mongodb version is >= 3.6 you need to edit the argument list EAPC uses to start the mongod daemon. The option --nohttpinterface, which is set by EAPC, has been removed in mongodb version 3.6 and newer.
Find out your mongod version:
mongod --version
To get rid of the --nohttpinterface option, you will have to delete it from the file mongodb.properties:
cd /opt/tplink/EAPController/properties
cp mongod.properties ../mongod.properties.ORIG
sed -i 's/^\(eap.mongod.args=.*\) --nohttpinterface \(.*\)$/\1 \2/' mongodb.properties
Of course, you can use any other editor, too.
Last step: fire up the new Controller
tpeap -w start
Now restore the database saved in step 1:
tpeap restore /tmp/backup
Enjoy!
Uh, and if you want to see what probably comes next to a Linux server near you:
The color-intense theme awesome with FontAwesome icons - no more image files needed, clean layout for EAPC 2.7.0cv.
- Copy Link
- Subscribe
- Bookmark
- Report Inappropriate Content
WoDkaBE wrote
Ok I did the whole thing and rights are good now. Symlinks are ok as well...but hold on with the drinks 😔
But again error. I think I need to redo the mongod nohttinterface again?
Will your guide work as well for the Rasberry pi?
Hmm, should not be necessary for the mongod version on Raspbian (or I have probably an older version?).
Did you check wether you can connect to the EAPC using a browser? It's somewhat slow in response.
If still no success, please try the following:
Check version of mongod. If < 3.6, then no action is required, else you would need to remove the option from the properties, either using the recipe or using your preferred editor (pico, nano, vi, whatever).
This is the version of my mongod installation from the Raspbian repository:
# mongod -version
db version v2.4.14
Tue Aug 21 23:06:03.895 git version: nogitversion
#
To make sure the option is known (it will complain if it doesn't know this option):
# mongod --nohttpinterface -version
Check wether mongod is running:
# ps -ae | fgrep mongod
2425 ? 00:00:25 mongod
#
Check wether mongod and EAPC are listening on the sockets:
# netstat -tunlp | fgrep -e java -e mongod
tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN 2425/mongod
tcp 0 0 0.0.0.0:8043 0.0.0.0:* LISTEN 2374/java
tcp 0 0 0.0.0.0:29811 0.0.0.0:* LISTEN 2374/java
tcp 0 0 0.0.0.0:29812 0.0.0.0:* LISTEN 2374/java
tcp 0 0 0.0.0.0:8088 0.0.0.0:* LISTEN 2374/java
udp 0 0 0.0.0.0:27001 0.0.0.0:* 2374/java
udp 0 0 0.0.0.0:29810 0.0.0.0:* 2374/java
#
- Copy Link
- Report Inappropriate Content
@Jonas_TP-Link Is it planned by HQ to develope Linux version of Omada Controller? It has no sense that R1D2 can make it and RD no.
If I test I will post the results.
Yes, of course. We are making the Omada Controller 3.0.2 Linux, it will be publish recently.
- Copy Link
- Report Inappropriate Content
R1D2 wrote
WoDkaBE wrote
Ok I did the whole thing and rights are good now. Symlinks are ok as well...but hold on with the drinks 😔
But again error. I think I need to redo the mongod nohttinterface again?
Will your guide work as well for the Rasberry pi?
Hmm, should not be necessary for the mongod version on Raspbian (or I have probably an older version?).
The messages in the startup.log are just status messages on successful start of the DB, I see no errors there.
Did you check wether you can connect to the EAPC using a browser? It's somewhat slow in response.
This monring the webservice was working. It's just really slow in boot, and the error it gave during start up can be ignored I guess.
- Copy Link
- Report Inappropriate Content
R1D2 wrote
That's all, works fine on my RasPi. If you get it running, please reply, I will mix us a »White Russian« drink then.
I'll mix us that drink now it's all is up and running and actually running pretty smooth on the Pi now!
Thanks again for the really quick reply and guidance !
I'll post this Thread to the other guides I found of older versions for linux/Pi so others can benefit from your interesting work too
- Copy Link
- Report Inappropriate Content
Glad it finally works for you!
Probably error messages just appear because tpeap by default waits for only 70 seconds until Omada Controller is ready to serve requests. That's a much too small time-out for the RasPi.
To get rid of those message, you can either start Omada Controller asynchronously (omit option -w to tpeap) or increase the wait time-out by changing WAIT_TIME in line 52 of the script, there already is a (commented out) line for the RasPi platform, which increases WAIT_TIME to 240 seconds.
Next version 1.4 of tpeap will make it very easy to permanently set this time-out without needing to edit the script. Stay tuned, I'm just finishing the manpage before it will be released.
- Copy Link
- Report Inappropriate Content
- Copy Link
- Report Inappropriate Content
Works great ... did a clean install on a Pi.
I only get a 'General error' when try to bind it to TP-Link cloud. Any ideas?
- Copy Link
- Report Inappropriate Content
Pepijn wrote
I only get a 'General error' when try to bind it to TP-Link cloud. Any ideas?
Hello Pepijn,
I did hear this from another user already, but have no idea what could go wrong.
I tried to bind with the cloud server on my Debian and Raspbian systems and it did work, no matter wether I do so in the wizard (with or without a changed Controller name) or later in the Cloud menu and no matter wether I do it with a fresh install or after restoring the database with a dump from earlier versions.
It always worked fine w/o error message. This is a screenshot just made after binding a fresh install on my Raspbian Pi:
What did you do exactly to bind your TP-Link ID? Can you log into the cloud server directly using your TP-Link ID?
- Copy Link
- Report Inappropriate Content
I already had a working TP-Link ID, I bound a Windows controller earlier.
This morning I tried a fresh raspbian install and it works like charm now.
Thanks you for the quick response
- Copy Link
- Report Inappropriate Content
I also get "General Error"
Fresh install didn't solve it :-(
Grtz,
E-raser
- Copy Link
- Report Inappropriate Content
Information
Helpful: 9
Views: 59364
Replies: 109