Die Starship Factory hält eine Reihe von Laptops für Mitglieder und Besucher vor. Diese sollten mit der üblichen Software ausgestattet sein, welche man für die meisten Projekte in der Starship Factory benutzen kann.

Benutzung

Jedes Mitglied der Starship Factory kann sich mit seinem normalen Benutzeraccount und Passwort an den Laptops anmelden. Ist die gewünschte Software nicht installiert, so installiert sie bitte nicht selbst, sondern kontaktiert das IT-Team, damit wir die Profile für die Laptops anpassen können und die Software überall installiert wird.

Wer kein Mitglied ist, kann den Besucheraccount benutzen. Dessen Benutzername und Passwort sind auf dem Deckel des Laptops aufgedruckt. Alle Daten, welche als Besucher angelegt werden, werden automatisch beim Abmelden gelöscht.

Hardware

Die Besucherlaptops sind von folgendem Typ und Ausstattung:

Verwaltung

Die Installation und Konfiguration der Laptops wird beinahe vollständig von slack vorgenommen.

Automatische Installation

Die Installation des Laptops findet wie folgt statt:

  • Der Laptop muss an das Kabelnetzwerk angeschlossen werden.
  • Zum Starten vom Netzwerk muss beim Einschalten die Taste F12 gedrückt werden.
  • Im Menü sollte der Punkt zum Netzwerkstart ausgewählt wählen (z.B. «Network boot from Intel PCI Ethernet» o.ä.)

Der Laptop wird nun mit den richtigen Einstellungen neu installiert. Wenn er fertig ist, sollte das normale Login-Prompt erscheinen, an welchem man sich als Benutzer einloggen kann.

Laptop ohne bestehendes Profil

Erscheint nach dem Start vom Netzwerk ein «Debian Installer»-Menü, so besteht noch keine automatische Konfiguration zur Installation des Laptops. In diesem Fall muss eine angelegt werden.

Hierfür muss auf dem Router im Verzeichnis /srv/tftp/pxelinux.cfg eine Datei mit der MAC-Adresse des Laptops angelegt werden. Die verwendete MAC-Adresse findet sich im Log /var/log/daemon.log, z.B.:

Jul 29 17:00:36 miniataurus in.tftpd[31516]: RRQ from 100.64.1.64 filename pxelinux.cfg/01-00-21-86-9f-7a-7a

In diesem Beispiel müsste eine Datei mit dem Namen * 01-00-21-86-9f-7a-7a* angelegt werden. Diese Datei sollte folgende Zeilen beinhalten:

default install label install kernel ::/debian-installer/wheezy/amd64/linux append initrd=::/debian-installer/wheezy/amd64/initrd.gz auto url=http://100.64.0.1/sflaptop-preseed.txt locale=en_US hostname=Laptopname domain=lab.starship-factory.ch interface=auto keymap=us hw-detect/load_firmware=false

Hierbei sollte * Laptopname* durch den tatsächlichen Namen des Laptops ersetzt werden. Startet man nun den Laptop erneut vom Netz, sollte die automatische Installation durchgeführt werden.

Manuelle Installation mit debootstrap

Müssen die Laptops manuell installiert werden (z.B. weil sie sich gerade nicht in den Räumen der Starship Factory befinden oder der automatische Installer defekt ist), führt folgende Befehlsfolge zum Ziel:

% debootstrap --include=slack stable /mnt http://proxy.lab.starship-factory.ch/

% chroot /mnt

% slack

Ist weitere Software zu installieren oder sind andere Einstellungen vorzunehmen, so sollten diese in den Slack-Scripts ausgeführt werden. Diese befinden sich auf der Google Compute Engine-VM config-and-shell. Zum Zugriff ist folgender Befehl geeignet:

% gcutil --service_version="v1" --project="starship-factory" ssh --zone="europe-west1-a" "config-and-shell"

Die Änderungen sollten mit git committed und gepusht werden. Sie werden dann via rsync verteilt. Um die Änderungen auf dem Laptop anzuwenden, sollte folgender Befehl als root ausgeführt werden:

% slack

Bestehende Bugs

AVR-Dude scheint (schon wieder ?) nicht zu funktionieren. Bei einem Uploadversuch mit Arduino-IDE kommt:

java.io.IOException: Cannot run program "avrdude": error=2, No such file or directory at java.lang.ProcessBuilder.start(ProcessBuilder.java:1047) at java.lang.Runtime.exec(Runtime.java:617) at java.lang.Runtime.exec(Runtime.java:485) at processing.app.debug.Uploader.executeUploadCommand(Uploader.java:125) at processing.app.debug.AvrdudeUploader.avrdude(AvrdudeUploader.java:333) at processing.app.debug.AvrdudeUploader.uploadViaBootloader(AvrdudeUploader.java:178) at processing.app.debug.AvrdudeUploader.uploadUsingPreferences(AvrdudeUploader.java:67) at processing.app.Sketch.upload(Sketch.java:1671) at processing.app.Sketch.exportApplet(Sketch.java:1627) at processing.app.Sketch.exportApplet(Sketch.java:1599) at processing.app.Editor$DefaultExportHandler.run(Editor.java:2380) at processing.app.Editor$DefaultExportHandler.run(Editor.java:2389) at java.lang.Thread.run(Thread.java:745) Caused by: java.io.IOException: error=2, No such file or directory at java.lang.UNIXProcess.forkAndExec(Native Method) at java.lang.UNIXProcess.(UNIXProcess.java:187) at java.lang.ProcessImpl.start(ProcessImpl.java:130) at java.lang.ProcessBuilder.start(ProcessBuilder.java:1028) ... 12 more