We developed a small gateway application and we already compiled it by using the toolchain provided by Teltonika team. We intend to add the software as a package under RUTX50 router.
Adding the package may not be a problem because we got some information from SDK source code and from openwrt web site. But we are facing problems to build a web interface for our software to be integrated with RUTX50 vuci web interface which is not documented in openwrt. It seems that you are using special developed vuci modules which is not documented anywhere. Also, it is not clear how to link the web interface with the configuration, lua, vuci and our application!
So, can you please share any documentation explaining how to integrate with RUTX50 web interface?
lemondude, I already downloaded the SDK and built the application by using this software tools.
Dainius,
Yes, I’m working on the single vuci example provided but as I explained it seems using some modules which is not documented anywhere.
So, there is no documentation anywhere!!!?
We were using another famous router before and they have a neat SDK with very good fully explained examples so we easily build our application and integrated it easily with the router web interface but now we shifted to use RUTX50 and we need to do the same but unfortunately we still couldn’t find any help!
Actually the package created from the example is not uploaded to the router. Now, I discovered that I’m using older firmware than the SDK! When I tried to upgrade the firmware I discovered the new firmware has many changes which corrupted my work and I have to find out and fix everything. I don’t know why Teltonika is changing things which I think not required. For example they now starting rc.local file as admin not root! Some codes stopped to work as it needs to run as root. I have to change the file S99rclocal.
Also, the PAM package didn’t work after upgrade and it stopped the ssh login to the router and I had to install the new version of pam package.
If the old packages will not work with the new firmware then it is really a problem to upgrade the firmware!!!
Since we started to use RUTX50 router and the firmware upgrade is carrying bad news for us and we have to rewrite everything again.
Packages are firmware specific, meaning you can only upload package to the same firmware version they were created on. What do you mean by the example packages not uploaded to the router?
Official packages are automatically re-installed after firmware upgrade if you have internet connection.
You can also change what you want in SDK and even compile installable packages in to the firmware file and use that firmware if you don’t want to install packages.
Why it is like that? It is more convenient to have one SDK version on my laptop and when I build any package from the source code then I can upload it to the router regardless its firmware version.
I created the example package on SDK 7.14 as it is explained in the readme file then I installed it on the router firmware 7.9.1 by “opkg” when I opened the router web interface the “Example” appeared under the service menu but when I pressed “Example” the web interface said that “it can’t find the file or it cannot load it”.
Although I selected “automatic package installation ..” It didn’t happened when I upgraded from firmware 7.9.1 to 7.11 or to 7.14.2
Now, I have SDK 7.14 already installed and compiled and I used it to create our applications and libraries so can I keep using it in creating applications and packages to be installed on any router firmware or I have to keep installing any new SDK version?
If I will install new SDK version so should I just decompress the new version in the same folder then run scripts to update the feeds and make clean, compile as usual?
Updated point about the firmware/package version matching:
On the firmware 7.14.2 the package manager cannot connect to download the package lists and it can’t display any package. The router has internet. I had to manually download the “PAM” package from the web site then I uploaded it to the router web interface manually. I don’t know why it stopped updating the packages lists?
On other hand, we have hundreds of routers in rural and mountainous areas sometimes 200 or 600 Km far away. So, the firmware stability and back compatibility is very important to our work.
Update 2:
I tried by opkg and it gives “Signature check failed”. So, I think this is the problem but the web interface cannot tell the error message.
Until Teltonika fix the bug in the firmware I tested 7.14 and 7.14.2, to add a new module on RUTX50 router, you must select to compile and install the new module with the firmware “select * in menuconfig” then:
The correct location of “menu.d” folder is (will not be inserted automatically by the firmware):
/usr/local/usr/share/vuci
The correct location of “path.d” folder is (will be inserted automatically):
/usr/local/share/vuci
The correct location of “acl.d” folder is (will be inserted automatically):
/usr/local/share/rpcd
lua files location is (will be inserted automatically):
/usr/lib/lua/api/services
We succeeded to build the firmware with our web interface. However, I think there is a bug in the firmware we tested because the web interface will not work if we select the api module as “M” in the “menuconfig”. To work we have to select “" in the “menuconfig”. ui module will work for both selections “M” and "”.
I hope you can fix it in future.
Our question is:
Now we made many changes to our custom firmware and we don’t have the Teltonika sources (for ui/api cores for example) so in case we want to use newer firmware version then what we have to do to keep our changes.
Decompress the new firmware file in the same old firmware folder the run the commands “./scripts/feeds update -a”, “make -j$(nproc) clean” and “make -j$(nproc)”.
or, Decompress the new firmware files in new folder and redo all the changes again from scratch.
To answer your question, if you’d like to update your firmware every time a new version is released, you’ll need to compile the newest SDK version every time.
Let me know if there’s anything else I can help you with!