Tag Archives: linux

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.

TinyOS und Gentoo

Die Installation von TinyOS unter Gentoo gestaltet sich etwas schieriger als es unter http://naurel.org/stuff/gentoo_howto_tinyos.html angeben ist.
Dennoch hält sich der Aufwand noch in Grenzen.
Die wesentlichen Schritte stehen alle in der genannten Anleitung, daher werde ich auf diese nicht weiter eingehen.

Installation TinyOS-2.x

Nachdem das Subversionrepository ausgecheckt wurde muss einfach nur das eclass-Verzeichnis darin gelöscht werden. Danach kann einfach und wie gewohnt die Installation von TinyOS via emerge gestartet werden.

Was nicht so recht funktionieren wollte war das env-update-Skript. Also habe ich einfachen einen symbolischen von /etc/env.d/tinyos/<version> auf /etc/env.d/99tinyos gelegt und war hat funktioniert.

Installation TinyOS-1.1

Die Installation von Version 1.1 gestaltete sich schon schwieriger. Hierbei habe ging es nicht einfach mit emerge =dev-tinyos/tinyos-1.1.15-r1, da es Probleme mit dem ebuild tos-simdriver in Version 1.1.15 gibt.
Bequem wie man eben ist, habe ich mich dann entschlossen nur das tos-ebuild zu verwenden (alles andere sollte ja schon da sein). Doch leider gibt es hier ein Problem mit der Prüfsumme des tinyos-1.1.15-Archives, das heruntergeladen wird. Ich habe mir also http://www.tinyos.net/dist-1.1.0/tinyos/source/tinyos-1.1.15Dec2005cvs.tar.gz heruntergeladen und in  das ebuild-Verzeichnis für tos verschoben.
Mit

ebuild tos-1.1.15-r1.ebuild digest

wird die Datei in die Manifest Datei aufgenommen. Jetzt habe ich den alten Wert in der Datei entfernt (beginnt mit DIST am Zeilenanfang) und habe das MISC in der neuen Zeile durch ein DIST ersetzt.
Da ich schon verschiedene Probleme hatte, habe ich das Bauen per Hand angestossen:

ebuild tos-1.1.15-r1.ebuild unpack
ebuild tos-1.1.15-r1.ebuild install
ebuild tos-1.1.15-r1.ebuild merge

Und siehe da, es wurde installiert. Ob sich dieser Weg als praktisch erweist, wird sich erst bei der Verwendung von TinyOS-1.x herausstellen.

Saison vorbei

Die letzten Spiele der Saison verliefen nicht ganz wie geplant. Zwar haben wir ordentlich Tore geschossen, aber meist hat unser Gegner immer noch mehr geschafft. So kam es also auch, dass wir unser letztes Spiel der Saison mit einer Niederlage beendet haben.
Jetzt ist also erst mal Pause. Wie es nächstes Jahr weiter geht, steht wohl noch nicht so genau fest: einige Spieler hören auf zu spielen und die Trainerfrage ist noch lange nicht abschließend geklärt. Also mal abwarten.

xorg 1.6

The easiest way to get the server work is to remove the Decive sections from the xorg.conf.

My mouse still had some problems with using the wheel. I needed some time to figure out that there was an .Xmodmap file causing this effect – therefore you can delete it.

For getting the touchpad work you need to install the driver x11-drivers/xf86-input-synaptics. Copy the the .fdi to /etc/hal/fdi/policy/10osvendor/. ANd that’s it.

The update to this version also solved my problem with hibernating my notebook. Since the update i had no x11 freeze.

gentoo 2007.0

Due to my problem with libiconv i had the idea of installing a new gentoo linux on my notebook using another partition. And so did.
During installation i mentioned some differences to the old installation process. Fortunately the installation docs are still up-to-date and therefore this is a good guide for your installation.

The major differences are:

  • There is just a stage-3 installation mentioned in the docs, but on the mirrors there are still stage-1 and stage-2 tarballs available.

installation von gentoo auf meinem x20

Gentoo 2007.x (2.6.20-gentoo-r7) on Samsung x20 V

Hardware

in short:

Hardware Status
Intel Centrino Mobile Works
15" SXGA Display Works
Intel 915GM (128MB Shared Memory) PCI Express Works
RAM (1024 MB) Works
Broadcom BCM4401 On Board Ethernet Controller (10/100) Works
Intel Pro/Wireless 2200BG Works
DVD/R works
Sound Works

still to do:

  • using graphic acceleration

untested:

  • Modem
  • Cardreader
  • Firewire
  • PCMCIA


Installation

In General

For installation follow the instructions in gentoo handbook. I selected the stage1 installation.But i think that it would be necessary to compile the kernel on your own.

Kernel

See my attached config file for details. Currently these features i included in my kernel:
  • wlan
  • bluetooth
  • alsa
  • acpi

Sound (alsa)

  1. append ‘ALSA_CARD="intel8x0"’ to /etc/make.conf
  2. emerge alsa-driver
  3. emerge alsa-utils (you have re-emerge this package after each kernel-build!!!)
  4. unmute your card by ‘alsamixer’ or ‘alsamixergui’

 


X

Driver

Get the driver from http://dri.freedesktop.org/snapshots/(common-…).Install it. Thats all.

Resolution

To use the max. resolution (1400×1050) you have to emerge the package 855resolution. Add it to the runlevels you want.

my xorg.conf (parts of it)

Section "Device"

Identifier "Card0"
Driver "i810"
VendorName "Intel Corp."
BoardName "Unknown Board"
BusID "PCI:0:2:0"

EndSection

Section "dri"

Mode 0666

EndSection

# …
Section "Screen"

Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"

Viewport 0 0
Depth 16
Modes "1400×1050"

EndSubSection
SubSection "Display"

Viewport 0 0
Depth 24
Modes "1400×1050"

EndSubSection

EndSection

opengl

This is a quite strange thing. Using an old kernel and one of the xorg 7.x version i had opengl working with hardware support. Unfortunately now it does not work.
But i’m still interested in getting it work again. If i did, this paragraph will get more valuable content.


Networking

Ethernet

You have to compile the Broadcom driver during kernel setup. Either use a module or compile it into the kernel (as i did).All i can say: It simply works.While Running the gentoo boot-cd the driver is detected correctly.

Wlan

I used the kernel-module (see above).


Powermanagement

Simply follow the instructions at gentoo.org for powermanagement. Except acpi everything works great, but this is a known problem for linux.

acpi

Most of the acpi features are working. See my config for details. I use the hibernate-script from portage-tree. The only problem i had was, that the cpufreqd must be stopped within the script. Otherwise my screen was blank after power on again.


Hardwareinfo in detail

Output of lspci:

00:00.0 Host bridge: Intel Corporation Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (rev 03)
00:02.0 VGA compatible controller: Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller (rev 03)
00:02.1 Display controller: Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller (rev 03)
00:1c.0 PCI bridge: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 1 (rev 03)
00:1d.0 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (rev 03)
00:1d.1 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (rev 03)
00:1d.2 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (rev 03)
00:1d.3 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (rev 03)
00:1d.7 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (rev 03)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev d3)
00:1e.2 Multimedia audio controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) AC’97 Audio Controller (rev 03)
00:1e.3 Modem: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) AC’97 Modem Controller (rev 03)
00:1f.0 ISA bridge: Intel Corporation 82801FBM (ICH6M) LPC Interface Bridge (rev 03)
00:1f.1 IDE interface: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (rev 03)
00:1f.3 SMBus: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (rev 03)
02:05.0 Ethernet controller: Broadcom Corporation BCM4401-B0 100Base-TX (rev 02)
02:07.0 Network controller: Intel Corporation PRO/Wireless 2200BG Network Connection (rev 05)
02:09.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev b3)
02:09.1 FireWire (IEEE 1394): Ricoh Co Ltd R5C552 IEEE 1394 Controller (rev 08)
02:09.2 Class 0805: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 17)
02:09.3 System peripheral: Ricoh Co Ltd R5C592 Memory Stick Bus Host Adapter (rev 08)

Output of cat /proc/cpuinfo:

processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 13
model name : Intel(R) Pentium(R) M processor 1.60GHz
stepping : 8
cpu MHz : 1600.000
cache size : 2048 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss tm pbe nx up est tm2
bogomips : 3194.00
clflush size : 64

Output of cpufreq-info:

cpufrequtils 002: cpufreq-info (C) Dominik Brodowski 2004-2006
Bitte melden Sie Fehler an linux@brodo.de.
analysiere CPU 0:
Treiber: acpi-cpufreq
Folgende CPUs können nur gleichzeitig ihre Frequenz variieren: 0
Hardwarebedingte Grenzen der Taktfrequenz: 800 MHz – 1.60 GHz
mögliche Taktfrequenzen: 1.60 GHz, 1.33 GHz, 1.07 GHz, 800 MHz
mögliche Regler: conservative, ondemand, powersave, userspace, performance
momentane Taktik: die Frequenz soll innerhalb 800 MHz und 1.60 GHz.
liegen. Der Regler "performance" kann frei entscheiden,
welche Taktfrequenz innerhalb dieser Grenze verwendet wird.
momentane Taktfrequenz ist 1.60 GHz (verifiziert durch Nachfrage bei der Hardware).

gentoo@x20

Auf diesen Seiten geht es rund um ‘meine’ Distribution. Neben den Infos wie ich Gentoo auf meinen Rechner installiert habe, ist das hier auch der richtige Abschnitt, um andere Anmerkungen und Anleitungen abzulegen.