TinyOS-1.x unter Linux (Debian)

Nach meinem ersten naivem Versuch TinyOS unter Gentoo zu installieren musste ich dazulernen. Die vorgefertigten ebuilds unter gentoo haben mir nicht wirklich weiter geholfen.

Da ich schon für meinen Druckertreiber auf rpm-Archive zurückgegriffen habe, gab ich diesmal den Pakten eine Chance. Unter www.tinyos.net/dist-1.1.0 stehen die Archive für TinyOS-1.x zur Verfügung.
Allerdings kamen mit den Archiven auch noch ein paar Probleme einher. Unter gentoo muss man die richtige toolchain für die Entwicklung einsetzen und die Umgebungsvariablen selbst setzen. Mit etwas Glück kann man auch auf den Bestand aus dem CVS zurückgreifen und diesen übersetzen. Da ich hier allerdings nicht so viel probiert habe, belasse ich es bei dieser Aussage und werde nicht weiter in die Richtung gehen,

Der nachfolgende Teil beschreibt wie TinyOS-1.x unter Debian sid bzw. sidux genutzt werden kann. Dazu habe ich die rpm-Archive der aktuellen TinyOS-Version (2.1.1) heruntergeladen (eigentlich reichen hier die tinyos-tools und XXX). Die TinyOS-Archive für die Version 1.x findet man unterhalb von von dist-1.1.0.  Die rpm Dateien werden mit alien in ein brauchbares Format umgewandelt (mit den Skripts) und mit dpkg -i installiert.
Unter snapshots.debian.org findet man die Pakte avr-gcc-XXX, binutils-avr-XXX und avr-libc-XXX. Wenn man diese drei Pakete mit dpkg -i installiert, dann lassen sich die Anwendungen ind /opt/tinyos-1.x bereits kompilieren – allerdings gibt es dann Fehler beim Übersetzen in Assembler-Code.

Deinstalliert man das Paket binutils-avr ohne Berücksichtigung der Abhängigkeiten und installiert  dafür avr-binutils aus dem tinyos-repository, dann funktioniert auch die Übersetzung in Assemblercode.
Unschöner Effekt ist, dass apt-get nach diesen Schritten keine neuen Pakete mehr richtig installieren will. Behelfen kann man sich indem man das orginale Package bearbeitet. Mit Hilfe von ar kann man das Archiv entpacken und die control-Datei anpassen. Wenn man “binutils-avr” durch “avr-binutils” ersetzt und das Archiv wieder zusammenfügt (Anleitung hier: http://tldp.org/HOWTO/html_single/Debian-Binary-Package-Building-HOWTO/#AEN108), dann gibt es auch keine Probleme mit Abhängkeiten und neue Pakete können installiert werden.

Leave a Reply

Your email address will not be published. Required fields are marked *

*