Hi Edward,

On 11/14/2014 07:10 PM, Edward Wingate wrote:
On Fri, Nov 14, 2014 at 12:13 AM, Maciek Borzecki
<maciej.borze...@open-rnd.pl <mailto:maciej.borze...@open-rnd.pl>> wrote:

    On czw, 2014-11-13 at 23:12 -0800, Edward Wingate wrote:
    > I've been trying to get an existing python flask application running
    > on an embedded linux distro (Poky).  The web app was originally
    > deployed on a Debian distro.  I need to move the application to a less
    > heftier board and wanted to try a distro created by Yocto, rather than
    > try to pare down Debian.
    >
    > I've been following the chain of dependencies for the web application
    > and adding them to Yocto to try and get the app to work (nginx, uwsgi,
    > python, pyserial, etc.), and hit a bump - Python's built-in logging
    > and codecs modules are not provided by Yocto.  Maybe I can add them
    > myself, or maybe I'll rip them out of the application, but I wanted to
    > take a step back and see if maybe Python/Flask is not the best app
    > framework to use in an embedded linux distro.
    Have you installed python-modules pacakge? This package pulls in all
    standard python modules as dependencies.


No, I haven't.  I still have a lot to learn about Yocto and recipes.  I
went ahead and pulled python-modules in and and got a lot further in
making this app work.  Thanks, Maciek, for your help.

The ramdisk image ballooned to 22MB though.  It's expected, but due to
flash size constraints, Python may not be an option in this case.

    I've used Tornado to provide a REST-ful API for an Android application
    and some basic web pages with status information and so on. Worked
    quite well.


Do you remember what your final ramdisk image size was?

I would still love to hear what web frameworks others here have used on
embedded linux.

I remember that before several years we worked on a prototype, that had
to deliver dynamic content over ethernet. It had to run on ARM board,
first with QNX and later with Linux. We then found a small web-server,
Mongoose (https://code.google.com/p/mongoose/), which had good license,
was lightweight, with very few dependencies, and had very clean
interface for extending (actually looking at the license, its now GPL,
but I remember that the older versions were licensed under MIT or BSD).

As far as I rememer, the whole thing boils down to registering a
callback, which is called each time you have to service a HTTP request.
We used this to write multiple small extensions in C that generated the
dynamic content, each plugins was responsible for a separate domain of
functionality. It sounds strange to do this in C instead of
higher-level language, but once you start seeing your memory usage to
be in KBytes instead of MBytes range, you start to like this little
component :D.

You can give it a spin, it builds easily for x86 and arm.

Regards,
Nikolay
--
_______________________________________________
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto

Reply via email to