Sinkko.org Mediaräppänä

Mediaperheen näivettynyt pää-äänenkannattaja

Sinkko.org Mediaräppänä header image 2

Artikkelin kirjoitti Kimmo

Sulautettua Linuxia, OpenEmbedded ja XScale/MontaVista Moxa-UC7420+

20. Lokakuuta 2009 · Ei Kommenttia

moxa[See English summary in the end of this article]

Sulautetut Linux palvelimet ovat varsin kätevä tapa kehittää automaatiota teollisuudessa ja miksipä kotiautomaatiota ei voisi rakentaa myös samalle alustalle. Ainakin allekirjoittanut arvostaa suuresti jokaista kohdetta, missä herkästi vikaantuvat PC-pohjaiset integraatiokomponentit korvataan levyttömällä, virtalähteettömällä ja täysin passiivisesti jäähdytetyllä laitteella. MontaVista Linuxin luotettavuuskin on uskomatonta luokkaa. Uptimet vierähtävät helposti vuosiin.

Pohjalla on kuitenkin Linux, joten integrointi, valvonta ja hallittavuus ovat aiempia DOS-pohjaisia laitteita huomattavasti kehittyneempiä. Moxa:n UC-74xx sarjan laitteet tulevat MontaVistalla, Busybox komentopaketilla ja muutamilla olennaisilla valmiiksi asennetuilla ohjelmistoilla (kuten Apache2).

Ohjelmien lisääminen käy mukana tulevalla työkalupakilla (Linux 2.6 Toolchain), joka valitettavasti on kovin jälkijättöisesti päivitetty. Uusin versio on vuodelta 2007 ja alustaksi suositellaan Fedora FC5:ttä. Sitähän ei missään ole enää ollut olemassa aikoihin… Onneksi sellainen vielä löytyy, joten VMwaren päällä tuota voi sitten kehitysympäristössä ajaa.

Toinen mielenkiintoinen tapa kehittää (=kääntää) sovelluksia sulautetulle alustalle on OpenEmbedded -projektin työkalupakki. Valitettavasti Moxa:lle ei sopivia konfiguraatioita löydy ja MontaVista ei ole toistaiseksi tuettujen jakeluiden listalla. Hyötyä tästä on kuitenkin sikäli, että tuota valmiiksi käännettyä Toolchain:ia voi käyttää OpenEmbedded:in kanssa (=kääntää valmiilla kääntäjällä ja kirjastoilla). Se mitä tästä hyötyy on Bitbake:n mainio cross-compile -kirjasto, jonka avulla saa tutut ohjelmistot todella helposti käännettyä MontaVistalle (esim. Python, Perl, Wget, Samba, Strace ,…)

Niiden ohjelmistojen kääntäminen, jotka Bitbake:n resepteistä löytyy, on todella helppoa (“bitbake perl”). Muiden ohjelmien tapauksessa helpoimmaksi osoittautui configure -skriptien parametrointi ja niiden generoimien Makefile tiedostojen muokkaus (useat ohjelmat eivät noudata configuren –build, –host ja –target määreitä vaikka ne ymmärtävätkin). Käytännössä skriptin generoimista Makefile -tiedostoista riittää CC määreen kääntäminen osoittamaan Toolchainin kääntäjään, sekä muiden vastaavien (esiprosessorin, stripin jne.) korjailu. Oma haasteensa ovat ohjelmat, jotka viittaavat toisiin kirjastoihin, koska joudut kääntämään myös ne erikseen (esim. libneonxml, ncurses, termcap, …).

OpenEmbedded:in käyttöönvaljastaminen ei ollut kaikkein selkein prosessi, joten katso täältä ohjeita. Läpi käydään ainakin ympäristömuuttujat sekä local.conf joka pistää Bitbaken käyttämään Moxan omaa Toolchain:iä (sekä esitellään nerokkaat tyhjät MACHINE ja DISTRO konfiguraatiotiedostot). Toivottavasti näistä ohjeista on hyötyä – itse käytin yhden sunnuntain sählätessäni näiden kanssa, asia kun ei ollut tuttua 🙂

English summary: Embedded Linux computers are a great thing for industrial automation builders, not forgetting the home automation. Building software for embedded distributions can be tricky though and there OpenEmbedded project comes to help. The article provides pointers to setup OpenEmbedded with pre-built toolchain for Moxa-UC7420+ embedded computer. Bitbake provides great collection of cross-compile recipes for the most popular tools for system design like Python, Perl, Samba and so on. See the installation article and examples for setting up OpenEmbedded and Bitbake as well as example envs script for setting the compile environment and local.conf for deploying pre-build toolchain. Also genious empty MACHINE and DISTRO config files need to be setup.

If OpenEmbedded does not carry a receipe for your most wanted app, you can allways cross-compile it with the Toolchain from the source. Please note, that many configure -scripts do accept –build, –target and –host parameters but never actually use them. So you need to manually fix the automatically generated Makefiles. Usually pointing CC to Toolchain gcc, ar, strip and other friends is enough. Remember to cross-compile the referenced libraries too!

The most annoying feature with Moxa is the pretty old Toolchain package, which is made for Fedora FC5. That has been unsupported for some time now, so prepare yourself for some serious tuning with some other 2.6.10 linux kernel distro. I managed to find an old installation CD set, that allowed me to run FC5 in VMware.

Avainsanat: · , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

0 kommenttia tähän mennessä ↓

  • Miksei kukaan kommentoi...

Kirjaudu kommentoidaksesi.