Jump to content
Sign in to follow this  
System_Error_Message

agent for linux based routers, android

Recommended Posts

System_Error_Message

Although i havent exactly been able to experience domotz since it wont detect anyone in my network, domotz could also be made to run on android such as developer boards, tv boxes and even linux based routers that a lot are. A lot of higher end routers are linux based and have similar architectures ,lots of unused ram, CPU and some storage. Some of these routers also have a software library that lets the user download and install more software and openwrt has that too but allows installation of it to the embedded flash storage. Since domotz hass a debian package could it also be installed on the ubiquiti edgerouter?

Share this post


Link to post
Share on other sites
Giancarlo

This is something we are considering, and it's already on our roadmap, though, not sure when this will be implemented.  

To be honest, we started the developing our software with OpenWRT in mind. So first releases of Domotz Agent were running mainly on OpenWRT. However, due to some technical constraints, at the moment it's not a joke porting the current software on OpenWRT or other higher end Router based on linux. 

Share this post


Link to post
Share on other sites
System_Error_Message

You could focus on debian linux as well since it is widely used. The ubiquiti edgerouter uses a debian based linux and can run debian software but it needs to be compiled for MIPS. Many embedded controllers that have their own linux for it tend to be based on debian as well. If i find out that one of my ARM boards has debian based linux on it would domotz for raspberry pi also work for it?

 

I guess linux based routers having only a few things lack the libraries needed. Instead of using the hard way some routers like asus have a software repository that may be easier to use than openwrt or trying to natively code and install for other linux based routers.

Share this post


Link to post
Share on other sites
Lars

No, Domotz for Raspberry Pi wouldn't work on any random hardware, since for ARM the Kernel has to be compiled for specific targets. As such you can't simply re-purpose code like that, which is a real shame.

This is why we have a lot of different versions for the various NAS appliances, even though some of them are based on sub-sets of the same processor from the same manufacturer.

Share this post


Link to post
Share on other sites
System_Error_Message

So for domotz to work on debian linux running on an ARM A9 platform you would only need to recompile the raspberry pi version for ARM A9 or does it involve changes in code for it to work?

Share this post


Link to post
Share on other sites
Lars

Unknown, as for ARM it depends a lot on the specific SoC. 

Our longer term goal is to offer support for more generic builds of Debian and at a minimum for x86. 

As for anything else, it'll depend on how time consuming it would be and how high the demand is. 

If you have a winning argument for a specific device/processor, we might very well consider it, but not right now due to our focus being on getting all the features fully working first.

Share this post


Link to post
Share on other sites
System_Error_Message

The MIPS64 used by the Ubiquiti edgerouter. The OS can use generic debian packages but it only needs to be compiled for the CPU which is generic and widely available. Having it able to run on a router would make it much easier. A lot of ARM SoC use the same/similar design that they will accept code compiled for ARM in general such as how the raspberry pi 1 and 2 binaries are compatible with each other. The ARM A9 will run code compiled for the ARM A7 because the A7 is a more power efficient version of the A9 and so will the A15 which are all commonly used. I do have a quad core ARM A9 board but i will need to check what linux OS it is based on. It uses a generic implementation of ARM A9 but it has an ARM based arduino chip on the board too and It does have android OS for it though which is now a commonplace among various ARM boards so you may want to consider android as a base for agents so it could than run even on tv boxes that use android. TV boxes are usually left on all the time but it is only used at most a few hours a day.

 

Consider debian (for other architectures) and android since they both are the easiest to maintain over multiple platforms. Assuming the agent will run on the stock debian OS for any architecture if compiled for it should be easy to port for some platforms that are based on debian.

 

The important point in comparing this to an existing solution is to be able to use it on embedded and commonly available platforms even at home and a lot of embedded devices have unused resources most of the time. Routers arent maxed out 24/7 in homes and makes no difference in power use to how much CPU is used, they dont have an idle state. TV boxes are always left running. NAS is a good option too since they are becoming more common but there are more routers and TV boxes at homes than a dedicated embedded NAS. The only difficulty to using a TV box that uses android is that some ISPs dedicated a seperate VLAN for IPTV.

 

So if it works for generic debian than it should work if recompiled for the MIPS64 used by the edgerouter. I have one so i can test it.

Edited by System_Error_Message

Share this post


Link to post
Share on other sites
Lars

MIPS might be a lot easier to support, as apparently it's similar to x86 in terms of you can compile it once for a wide range of processors, not so for ARM.

I don't know if we've tested it on that platform or not, as one concern of running it on a router is that we'll use up too much resources and the router will start running slow.

 

We've already seen this on basic NAS appliances with the Marvell Kirkwood processors and thus we decided not to support them in the end, as we don't want our users to have a terrible experience with our product and at the same tame blame us for their NAS no longer working as well as it was. This is a trade-off we sadly had to do, not because we wanted to, but because some of the things we do can be quite resource intensive.

 

The two Raspberry Pi versions are actually quite different and I don't think the code is 100% compatible, as the first generation Raspberry Pi is based on the ARMv6 architecture, whereas the Raspberry Pi 2 is based on the ARMv7 architecture. As such, you should normally have to re-compile software for each platform for it to work properly.

 

Other ARM processors often have additional bits of hardware that needs to be supported and due to the fact that many companies (such as Apple, Marvell, Qualcomm, Annapurna, etc.) do slight variations on the ARM provided IP, it's not guaranteed that they will follow the same way of doing things. Hence why we have had to compile different packages for the Marvell Armada 370 and 375, even though they seem quite similar on paper. Both are based on the ARMv7 architecture, but the Armada 370 is a custom Marvell implementation, whereas the Armada 375 is using a slightly more generic Cortex-A9 core. Based on your logic, this shouldn't be needed, but sadly it's not how it works.

 

Your board might be using a generic ARM Cortex-A9 core, but there's no such thing as a generic ARM processor, as ARM doesn't make processors. Am I right in assuming it's an Udoo board? If so, you got a Freescale processor and they do indeed use fairly generic ARM cores, but a lot of the additional bits are quite specific to Freescale.

 

 A lot of this would of course depend on the compiler as well and what it supports. I'd presume that the Raspberry Pi foundation for example has provided a compiler that takes care of everything as far as the user is concerned, so you wouldn't really know that the two platforms are quite different, as the compiler would make sure the code is compatible with both processors.

 

Sorry for being pedantic here, but it matters in terms of what we're discussing and I'm just trying to clarify things in as much as I can.

 

As for Android, well, that's an entirely different kettle of fish and it'd be a massive effort on our side to make that happen and I doubt it would be something we'd consider for now, as we simply don't have the resources. On top of that, I don't think it'll be possible, as we're using some third party tools that I highly doubt are or ever will be available natively for Android.

 

The long term plan is support for Debian, but I can't promise what platforms we'll support now, beyond x86. It's highly likely that we'll support MIPS and at least the most common ARM platforms, whatever they may be, but it's unlikely we'll support every possible option out there.

 

You'll be the first to know once something is available to test, no worries ;)

 

 

 

 

Share this post


Link to post
Share on other sites
System_Error_Message

I do have an Udoo board. I also have a snapdragon 810 developer and i might be getting an nvidia developer board. Both the Udoo and snapdragon 810 use reference cores and nvidia do use reference cores for most of their devices. When i said generic ARM i think i meant reference. I know ARM doesnt make their own CPUs but they designed the architecture and it is up to the manufacturer to follow it or not. Many cheap ARM based solutions use reference designs.

Although i do have a ubiquiti edgerouter pro i intend to use it as a server, not a router. Some MIPS based CPUs handle multi tasking better so how well it runs on a MIPS depends on how big it is. With my internet connection both the CCR and ubiquiti will max it out with lots of CPU to spare using hardware NAT. VPN, QoS, firewall and lots more features. For another year i also wont have to use a router to worry about internet connectivity.

Share this post


Link to post
Share on other sites
Automate

So has anyone at Domotz tried your install on a BeagleBone Black?  It has an Arm processor and runs Debian.

Share this post


Link to post
Share on other sites
Giancarlo

Unfortunately, so far, nobody has yet tested the Domotz Agent on the BeagleBone black. But, the architecture is really similar to the Raspberry Pi: so, I don't see why it shouldn't work. 

 

Therefore, if you have a BeagleBone Black with Debian installed, you can try to install the .deb package released for Raspberry Pi. It should work really smooth. 

 

Let the community knows if it works.

Share this post


Link to post
Share on other sites
System_Error_Message

so if the focus of domotz is generic debian based OS but for multiple different platforms would it be possible for domotz to compile the agent for other CPUs such as the MIPS64 i mentioned? The edgerouter can use generic debian packages as long as it is compiled for MIPS64. Im not worried if it uses up resources because im not using it in a production environment or in a routing environment, im using it as a mini server. What debian packages are needed in order to make domotz work? One reason why im using it as a mini server is because it uses 20W with its CPU and can install generic debian packages whereas other routers with slower CPUs use 20W too but dont give as much benefit and an x86 server uses a lot more power so if i can do the same thing on a raspberry pi or a router it really helps for both heat and electricity.

 

I am here to test and also provide suggestions and i feel that being able to run this on the edgerouter will greatly benefit domotz since it has a lot of users and their firmware is quite stable. So far on the raspberry pi domotz has barely used any CPU or RAM.

Share this post


Link to post
Share on other sites
Automate
9 hours ago, Giancarlo said:

Therefore, if you have a BeagleBone Black with Debian installed, you can try to install the .deb package released for Raspberry Pi. It should work really smooth. 

 

Let the community knows if it works.

OK,  I have a BeagleBone Black and will see if I can try it this weekend.

Share this post


Link to post
Share on other sites
Giancarlo
4 hours ago, Automate said:

OK,  I have a BeagleBone Black and will see if I can try it this weekend.

 

I've added a new license to your account, so that you are free to install a new Domotz Agent on the BeagleBone Black, and having it working in parallel to the other Agent

Share this post


Link to post
Share on other sites
Lars
23 hours ago, System_Error_Message said:

so if the focus of domotz is generic debian based OS but for multiple different platforms would it be possible for domotz to compile the agent for other CPUs such as the MIPS64 i mentioned? The edgerouter can use generic debian packages as long as it is compiled for MIPS64. Im not worried if it uses up resources because im not using it in a production environment or in a routing environment, im using it as a mini server. What debian packages are needed in order to make domotz work? One reason why im using it as a mini server is because it uses 20W with its CPU and can install generic debian packages whereas other routers with slower CPUs use 20W too but dont give as much benefit and an x86 server uses a lot more power so if i can do the same thing on a raspberry pi or a router it really helps for both heat and electricity.

 

I am here to test and also provide suggestions and i feel that being able to run this on the edgerouter will greatly benefit domotz since it has a lot of users and their firmware is quite stable. So far on the raspberry pi domotz has barely used any CPU or RAM.

 

It's something we'll look at doing, but sadly we don't have the time and resources to do it right now as we're working on getting everything ready for the official launch at CES in January. Please understand that we're a small company and have limited resources, so in as much as we'd love to add support now, it's simply not something we have the manpower to do yet.

Again, you'll be the first to know when we've done it.

Share this post


Link to post
Share on other sites
Automate
On 11/11/2015, 3:48:21, Giancarlo said:

 

I've added a new license to your account, so that you are free to install a new Domotz Agent on the BeagleBone Black, and having it working in parallel to the other Agent

The install and running of the Agent on the BeagleBone Black (Rev C using bone-debian-7.8-lxde-4gb-armhf-2015-03-01-4gb.img) went without any problems.

Edited by Automate
  • Upvote 2

Share this post


Link to post
Share on other sites
Giancarlo
4 hours ago, Automate said:

The install and running of the Agent on the BeagleBone Black (using bone-debian-7.8-lxde-4gb-armhf-2015-03-01-4gb.img) went without any problems.

 

Glad to hear that! Thanks Automate for testing it.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...