Elevator-tool to preconfigure before you Elevate

Figured it out, I was using a json file I created with an elevated radio. I used the json file that came with the tool and just changed what I needed to in it and now at least the radio took the settings from the json file. 

I have had no luck using the Python version of the elevator.py script due to a bug in the Paramiko SSH client library. I've tried numerous versions of Python on Mac OS, Linux and Windows. All yield the same result and fail to connect via SSH due to some host_key error. I am sure others will probably experience this as well.

I have ported the elevator.py script into a shell script and have everything working except my pre-configuration file is not being applied. I could really use some help. I am using the correct format and uploading it to /etc/persistent/mnt/config/.configured_3.4

I know that the JSON format for the .configured_3.4 file is correct because I have managed to pass it into the elevator.exe that I did successfully get to work on Windows. The problem is that elevator.exe does not suit my needs. In fact, it fails to allow a custom SSH port be passed to it. It is an important pre-requisite that we can pass in our non-standard SSH port to connect to our UBNT radios for elevation.

If we can get some assistance to take this to the finish line, we will post the shell script back to this forum as I'm sure others will benefit from it.

Hi!


@mattorola wrote:

I have had no luck using the Python version of the elevator.py script due to a bug in the Paramiko SSH client library. I've tried numerous versions of Python on Mac OS, Linux and Windows. All yield the same result and fail to connect via SSH due to some host_key error. I am sure others will probably experience this as well.


Do you mind sharing the error you've got from paramiko?


I have ported the elevator.py script into a shell script and have everything working except my pre-configuration file is not being applied. I could really use some help. I am using the correct format and uploading it to /etc/persistent/mnt/config/.configured_3.4



Can you please check that you are uploading passwd as well?


I know that the JSON format for the .configured_3.4 file is correct because I have managed to pass it into the elevator.exe that I did successfully get to work on Windows. The problem is that elevator.exe does not suit my needs. In fact, it fails to allow a custom SSH port be passed to it. It is an important pre-requisite that we can pass in our non-standard SSH port to connect to our UBNT radios for elevation.


 

In the newest version available on github I've added support for the port option(-P/--port). You can download windows executable using the following link:

https://www.dropbox.com/s/w5twm9zfwy8pwwk/elevator-win32-0.3.2.zip?dl=0

1 Like

Dmitry, thank you! My failure to copy /etc/passwd to to /etc/persistent/mnt/config/passwd seems to fix the issue. I am able to successfully elevate now using my shell script port of elevator.py. I will clean up the script a little bit and will share it back to this thread.

For your reference, here is the error I received below. I researched all known workarounds and the documented workaround already seems to be in place on line 57: client.set_missing_host_key_policy(paramiko.AutoAddPolicy())

python3.6 elevator.py -u ubnt -p ubnt -P 22 -n 3.4 -v 192.168.1.20

Connecting to device 192.168.1.20

Username: ubnt

Password: ubnt

Traceback (most recent call last):

  File "elevator.py", line 62, in <module>

    password=password, port=port

  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/paramiko/client.py", line 348, in connect

    server_hostkey_name = "[%s]:%d" % (hostname, port)

TypeError: %d format: a number is required, not str

Hi!

I am glad to hear it works for you.

In the meanwhile i fixed the paramiko issue. It was caused by a typo and lack of testing on my side.

Dmitry

We seem to have found another error following what appears as a successful elevation using elevatory.py. Unfortunately, the SSH or telnet no longer works. I enabled telnet so that I could get the following error message to display: 

Password:
: No such file or directoryclish

I then tried upgrading the elevate firmware again using the UBNTXM-v3.4.1.tar.gz file through the elevate GUI in hopes that it might correct the problem. It did not help. I then used the elevate GUI to apply factory default settings, and still could not SSH - receiving the same error "No such file or directoryclish".

Interestingly enough, when I elevate without a pre-configuration sm.json file, I am able to SSH successfully to the device.

Hi,

Please double check you did not modify passwd provided with elevator tool. It is the most probable root cause.

Dmitry

Thank you for the tip - it was a problem with the passwd file, although they appeared identical to the naked eye. I have been testing everything from both a Windows PC and my Mac (since Python runtime is available for either platform). It was the Windows setup where I had the problem with the SSH error on the Nanostation M2 following a test elevation. So I moved all the scripts to a Dropbox folder that is sync'd to my Mac and my Windows PC. I then compared the passwd file with the one on my Windows PC, and while the Compare It program showed the files were identical, the one causing problems on my Windows PC had different CR/LF line endings.

This also might explain why I had some problems with my shell script when my .configured_3.4 file was uploaded via scp. I believe scp transfers the file as binary and it was being uploaded as a UTF-8 unicode file that I had tweaked in the Sublime Text Editor. When I opened the file in vi (before proceeding with the elevate firmware update), it was full of ^M characters as the CR/LF.

Do you know what text file encoding type should be expected for the .configured_3.4 configuration file?

It is better to have unix encoding for all files(only "\n" for line termination), but as far as I remeber JSON should tolerate windows encoding("\r\n" line endings).

Sublime allows you to choose the line ending when you edit files:

Check line ending

Dmitry

Trying to get this tool to work is starting to put me off using Elevate.I'mby no means a coder or Python expert, and I'm very nervous to do try this on a live customer, and I dont really want to risk 'bricking' fresh UBNT radios in an effort to figure it out.

There seems to be two versions of the Windows exe with the GUI available, so which should we use? This one here https://app.box.com/s/fc2qzgk2l0azejvg2q5m8u9enmo3roid  or this one here https://app.box.com/s/fc2qzgk2l0azejvg2q5m8u9enmo3roid  One is elevator-win32-V0.2, the other is elevator-win32-0.3.2

Also I could do with clear step by step instructions telling me if I have to install Python first etc, do we run the BAT file or the executible etc.

Thanks

Hi!

Let me address all your concerns.

First of all to elevate the radio it is not required to use any tool. You can just flash elevate firmware using standard web interface. Elevator is only needed in case you want to preconfigure unit with non-default configuration file.

I encourage you to try Elevate on your lab device first before doing real customer to get more confidence in it. You can always recover unit using tftp recovery precedure that is built in all third party radios.

You also don't need to be a coder by any means and you don't need python. The tool for windows is provided in compiled binary form and is ready for use. No additiona dependencies needed.

Please use the latest verion available(0.3.2) using the following link:

https://www.dropbox.com/sh/2ja5jwsids1p9k8/AAAFMn_Us8qlnMBaMbM5FFWLa?dl=0

You also might find useful other community created elevator GUI:

http://community.cambiumnetworks.com/t5/ePMP-Elevate/PPPoE-clients-Elevator-a-powerful-tool-for-your-network-lifting/m-p/75871#M529

Please don't hesitate to post any questions you have. We are here to help you.

Thanks,

Dmitry

Hi Dmitry

Thanks for the quick answer.

SO you just install and run the exe?

I am familiar with the standard Elevate procedure when we initially converted abunch of UBNT clients using the default SSID "Cambium-AP" ,

This tower site had 2 sectors in the same direction, so we converted one to ePmp and left the other as UBNT (for comparison but now that the AP is up and we have changed the SSID and WPA2 password, we have a few more clients that we want to convert to Cambium

I tried to install it but all that happens is the CMD box flashes up for a second and nothing else. (this was on a 32 bit machine. - I tried it on a 64bit but same happened) On both machines I had trouble unzipping one file (see screenshot)

Hi!

I think dropbox messed something up. Try downloading download "elevator-win32-0.3.2-GUI.zip" that contains the simple GUI wizard by pressing "Download" button.

After downloading it you can extract it. Start "elevatorGUI.bat" as administrator and it will provide you the wizard to go through.

Before that you might want to create custom sm.json. The following documentation is useful that describes howto create it:

http://community.cambiumnetworks.com/t5/ePMP-FAQ/ePMP-Elevate-ePMP-Elevator-Tool-Configuration/m-p/72538

Thanks,

Dmitry

1 Like

 - I'm getting a MSVCR100.dll not found error.  have installed Visual Studio C++ runtime 2010, an dthe DLL is located in my Windows System 32 folder. should it be somewhere else?

One more thing - when the GUI asks for the location of the firmware, I presume you point it at the relevant Elevate 'Squash..' file?

Edit: I tried it on a different PC (Win7 32bit vs Win10 64bit) and it runs without that error, however I get this error in the CMD window:

Username is ubnt
Password is **********
FW version is 3.2.2
Template name is C:\Cambium\ePmp Elevate\Preconfig tool\elevator-win32-0.3.2-GUI
\elevator-win32-0.3.2-GUI\json files\XD2\sm.json
FW file name is C:\Cambium\ePmp Elevate\3.2.2\UBNTXM-ubntxm-squashfs-factory.bin

IP address is 192.168.200.1
usage: elevator.exe [-h] [-v] [-t TEMPLATE] [-n FIRMWARE_VERSION]
                    [-f UPDATE_FIRMWARE] [-u USERNAME] [-p PASSWORD] [-P PORT]
                    ip_address
elevator.exe: error: unrecognized arguments: tool\elevator-win32-0.3.2-GUI\eleva
tor-win32-0.3.2-GUI\json files\XD2\sm.json Elevate\3.2.2\UBNTXM-ubntxm-squashfs-
factory.bin 192.168.200.1

Hi!

I've added MSVCR100.dll to the zip archieve in case you don't have.

Can you please try providing json file from the folder without spaces? I will address this issue in next version.

Dmitry

I submit a support ticket, but thought I would post here as well. 

I am trying to use the elevate tool for the first time.  I elevated an XM radio to 3.4.1, then fully configured it.  downloaded the config.  tried using this config with the elevate tool and only result I can get is a defaulted radio running epmp software.  Are there some settings that these don't like?  Do I need to delete everything from the config except what I am wanting to change?  Anyone else have similar issues?

Hi Doug,

You might want to try user-friendly version of the tool:

http://community.cambiumnetworks.com/t5/ePMP-Elevate/PPPoE-clients-Elevator-a-powerful-tool-for-your-network-lifting/td-p/75871

Thanks,

Dmitry

I would prefer to use the actual config.  I need to use other settings that aren't listed in the pppoe tool

Hi Doug,

Do you mind sending me a support ticket number as a direct message?

Dmitry