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
R1D2 wrote
...preparation of the .deb package ...
That makes me curious: a .deb-package for raspbian?
- Copy Link
- Report Inappropriate Content
OK i choose community version
Because omada-linux official slow Release
- Copy Link
- Report Inappropriate Content
AlienMindbender wrote:
That makes me curious: a .deb-package for raspbian?
Yes, it turned out that I need packages for making a custom-netinst anyway.
Just was busy with Pharos Control 2.0.4 for Linux last few days - it had priority b/c I wanted to wait for the official Omada Controller anyway before planned version 1.5 release of tpeap. Maybe you want to give Pharos Control a try also if you have CPE or WBS APs. It installs fine out of the box on my RasPi 3.
- Copy Link
- Report Inappropriate Content
Sorry, I haven't heard of PharosControl yet, I do not think I need it. I have several EAP AP, which I control with OmadaController so I am keen on testing your raspbian-package...
- Copy Link
- Report Inappropriate Content
Rewjang wrote
OK i choose community version
Because omada-linux official slow Release
Welcome to the club, Rewjang!
However, I will split the tpeap utility in a separate package so you can even choose to use official Omada Controller with this start/stop script and management utility in the future. My Omada Controller packages just differ from TP-Link's by removing the binaries mongod/portt and the embedded JRE to make them architecture-independent. Ok, and a theme here and there (currently only in 2.7.0) will be included, too.
But it's no problem to use the official package with the enhanced start/stop script and management utility tpeap, especially since TP-Link did use a few lines of the 2017 version in their control.sh of v3.0.2 already. Why not the rest? I don't know. Maybe, they don't find the command line utilities as useful as UNIX/Linux users do.
- Copy Link
- Report Inappropriate Content
I am looking forward to your RPi packages. Let me know, if I can assist with (beta-)testing.
- Copy Link
- Report Inappropriate Content
AlienMindbender wrote
I am looking forward to your RPi packages. Let me know, if I can assist with (beta-)testing.
Thanks for your offer to test. The beta is available from ftp.rent-a-guru.de/private, file name is:
omada-controller_3.0.2_all.deb
SHA sum is:
$ sha256sum -b omada-controller_3.0.2_all.deb
b21eb2bcfd70fcd00ca085efeb10d8adae76625c097231497c757059c36e42bf *omada-controller_3.0.2_all.deb
Runs on the RasPi and on every other CPU architecture as long as java, jsvc and mongodb are installed, too. Search for them with:
$ which java
$ which jsvc
$ which mongod
Remaining environment settings will be auto-detected, so no action is required if above commands are installed. The role account will be also created automatically by the installer.
After installation Omada Controller will be started automatically without waiting for it to become ready. Check current state with:
$ sudo tpeap status
Since Omada Controller needs ~3 min. to become ready to serve requests on a Pi, increase the time-out tpeap should wait at start of the controller before complaining. Just run this command to set a permanent time-out for the script:
$ sudo tpeap -S 200
Then a tpeap -w start will always wait 200 seconds before complaining if the Controller isn't ready.
Known problems:
- tpeap status currently needs to be run as root due to restrictive file permissions of the PID file.¹
- tpeap switch for switching versions command is still being enhanced to user another technique.
¹ Caused by jsvc wrapper. More on this topic later.
Both will be fixed in the final release.
- Copy Link
- Report Inappropriate Content
Hi R1D2, many thanks for your work. Install of your RPi-Package worked fine, but unfortunately, Omada Controller failed to start:
pi@pi:~ $ sudo tpeap -S 200
Saved WAIT_TIME=200 successfully
pi@pi:~ $ sudo tpeap -w start
Starting Omada Controller Invalid JVM name specified server
.........................................................................................................................................................................................................
pi@pi:~ $
I have not yet found the time to track down the error further myself, maybe later today.
- Copy Link
- Report Inappropriate Content
AlienMindbender wrote
Starting Omada Controller Invalid JVM name specified server
Error msg comes from jsvc., but tpeap does not set or change the JVM with option -jvm, so no idea why it complains.
You might check your versions of Java and jsvc. On my Raspbian I have:
pi $ java -version
java version "1.8.0_65"
Java(TM) SE Runtime Environment (build 1.8.0_65-b17)
Java HotSpot(TM) Client VM (build 25.65-b01, mixed mode)
pi $ dpkg -l | fgrep -e jsvc -e libcommons-daemon
ii jsvc 1.0.15-7 armhf Wrapper to launch Java applications as daemons
ii libcommons-daemon-java 1.0.15-7 all Library to launch Java applications as daemons
pi $
Omada Controller starts fine here, didn't even have to install anything of the pre-requisites. Maybe you did install other Java/jsvc packages?
- Copy Link
- Report Inappropriate Content
Nothing obviously different on my system:
pi@pi:~ $ java -version openjdk version "1.8.0_181" OpenJDK Runtime Environment (build 1.8.0_181-8u181-b13-1~deb9u1-b13) OpenJDK Client VM (build 25.181-b13, mixed mode) pi@pi:~ $ dpkg -l | fgrep -e jsvc -e libcommons-daemon ii jsvc 1.0.15-7 armhf Wrapper to launch Java applications as daemons ii libcommons-daemon-java 1.0.15-7 all Library to launch Java applications as daemons pi@pi:~ $
No additional JAVA or jsvc packages installed, in contrary, I assume something is missing. I think I originally ran raspbian lite and I had to install jsvc (which brought jre) and mongodb before I was able to install your omada-controller.deb...
EDIT:
startup.log:
Invalid JVM name specified server Cannot locate JVM library file Service exit with a return value of 1
Based on a first short internet research that error seems to occur when executing 64bit java applications with 32bit libraries. Isn't the official Omada Controller a 64bit application?
edit2:
I did a fresh install of the current raspbian stretch image on a RPi2, installed omada-controller.deb and there is no startup error. So your package is okay, sorry for the confusion.
edit3: I originally had the wrong JDK, it works with oracle-java8-jdk
- Copy Link
- Report Inappropriate Content
Information
Helpful: 8
Views: 60013
Replies: 109