Kategoriearchive: Linux

Android 4.4 (KRT16S) KitKat auf Nexus 4 installieren (Ubuntu/Debian)

Android 4.4 KitKat

Anlässlich des gestern erschienenden Android 4.4, Codename KitKat, habe ich mich entschieden, eine kurze Anleitung zur Installation zu verfassen.

Changelog

  • 22. Nov – KRT16S Upgrade

Vorbereitung des Computers

Die Fastboot- und ADB-Tools finden sich im Repository:

sudo apt-get install android-tools-fastboot android-tools-adb

Hinweis: Wer weiß, wie er das Android SDK auf seiner Linux Distribution installiert, kann ab hier ebenfalls dieser Anleitung folgen. Unter Fedora ginge das z.B. via „yum install android-tools“. Natürlich kann das SDK, bzw. die wichtigen Plattform-Tools, auch manuell installiert werden.

Vorbereitung des Smartphones

In diesem Schritt wird das USB-Debugging aktiviert, um die Kommunikation via Android-Tools einzustellen. Ich habe hierzu folgenden Screenshot von „NoobsLab“ gefunden:

USB-Debugging einschalten
USB-Debugging einschalten

Was hier gemacht wird:
– In die Einstellungen wechseln, „Über das Telefon“ wählen, ganz unten „Build-Nummer“ finden und einige Male hintereinander hierauf tippen. Es erscheint der Schriftzug, man sei nun Entwickler.
– Zurück in den Einstellungen findet sich jetzt über „Über das Telefon“ der Eintrag „Entwickleroptionen“, in dieses Menü wechseln und „USB-Debugging“ aktivieren.

 

 

Das Smartphone jetzt via USB anschließen (oder neu verbinden, wenn es bereits angeschlossen war) und überprüfen, ob ADB das Gerät findet. Eventuell muss auf dem Smartphone die Verbindung kurz bestätigt/authorisiert werden, hierzu im Pop-Up auf dem Bildschirm auf „Zulassen“ tippen.

adb devices

Die Rückgabe sollte etwa so aussehen:

List of devices attached 
00636cca5a17265a	device

Installation

Alle folgenden Schritte werden selbstverständlich am Computer durchgeführt.
Ich ziehe es vor, die Partitionen vorab zu bereinigen. Über den Schritt lässt sich streiten, schaden kann es aber auf gar keinen Fall. Zuerst in den Bootloader neustarten:

fastboot reboot-bootloader

Angekommen im Bootloader, nun folgende Befehle ausführen:

fastboot erase boot
fastboot erase cache
fastboot erase recovery
fastboot erase system
fastboot erase userdata

Das Factory Image in den lokalen Download-Ordner herunterladen und entpacken. Im Anschluss in das entpackte Verzeichnis wechseln:

cd && cd Downloads
wget --content-disposition https://dl.google.com/dl/android/aosp/occam-krt16s-factory-2006f418.tgz
tar xfvz occam-krt16s*.tgz
cd occam-krt16s

In diesem Verzeichnis befindet sich bereits ein Script, das die Installation ausführt. Das ist „safe-to-use“:

./flash-all.sh

Nach der Ausführung des Scripts, wird das Smartphone neustarten. Der erstmalige Bootvorgang kann ein paar Minuten in Anspruch nehmen! NICHT versuchen, das Smartphone in der Zeit auszuschalten.

Fertig!

Tiny Tiny RSS Update Daemon INIT-Script

„Yet another Update Daemon Script“, nachdem ich nicht wirklich vernünftige gefunden habe. Die meisten töten einfach „screen“ oder PHP, wenn sie den Daemon beenden wollen. Ich habe hier eine Lösung, in der der Session-Name für „screen“ gesetzt wird und diese Session dann explizit geschlossen wird.

Script + Beschreibung

Im Prinzip ein simples INIT-Script. Über Upstart wäre es natürlich viel kleiner. Allerdings benutze ich kein Upstart (oder Systemd) auf meinem Debian Server.

#!/bin/bash
### BEGIN INIT INFO
# Provides: TT-RSS Daemon
# Required-Start: $network $syslog
# Required-Stop: $network $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Description: Start TT-RSS Daemon
### END INIT INFO

UPDATEDAEMON=/var/www/path/to/update.php
RUNAS=www-data
SESSIONNAME=tinytinyrss

case "$1" in
start)
echo "Starting Tiny Tiny RSS daemon..."
su $RUNAS -c "screen -S $SESSIONNAME -d -m php $UPDATEDAEMON --daemon"
;;

stop)
echo "Stopping Tiny Tiny RSS daemon..."
su $RUNAS -c "screen -S $SESSIONNAME -X quit"
;;

*)
echo "Fehlerhafter Aufruf"
echo "Syntax: $0 {start|stop}"
exit 1
;;

esac

Es gibt 3 Variablen am Anfang des Scripts, die vorher natürlich angepasst werden müssen. Wer sich nicht sicher ist, ob der Webserver als www-data läuft, kann das vorher schnell prüfen:

ps aux | grep -E 'nginx|httpd|apache' | grep -v root

Sieht dann z.B. (www-data) so aus:

www-data 10430  0.0  0.0  69584  3068 ?        S    13:25   0:00 nginx: worker process

In dem Fall wäre RUNAS=www-data

UPDATEDAEMON ist selbsterklärend. Das ist der Pfad zur update.php von Tiny Tiny RSS.

SESSIONNAME muss ein eindeutiger Name für die „screen“ Session sein. Der Name ist frei wählbar. Natürlich darf keine Session mit dem selben Namen existieren.

Installation

Vorab „screen“ installieren, falls das nicht schon passiert ist:

apt-get install screen

Das Script nun einfügen. „nano“ kann mit STRG+X geschlossen werden, es wird vorher gefragt, ob gespeichert werden soll (alternativ STRG+W vorab benutzen):

sudo nano /etc/init.d/ttrssd

Das Script ausführbar machen, als Dienst installieren und direkt starten:

sudo chmod +x /etc/init.d/ttrssd && update-rc.d ttrssd defaults && sudo /etc/init.d/ttrssd start

Daemon überprüfen

Ob der Daemon läuft, kann mit mehreren Methoden überprüft werden. Der einfachste Weg wäre der über TT-RSS selbst. Alternativen für die Shell:

su www-data -c "screen -ls"

oder

ps aux | grep -i [u]pdate.php

Microsoft Lync 2013 Alternative für Ubuntu 13.04, 13.10 (Pidgin + Sipe Plug-In)

Ist man beruflich auf Windows Anwendungen wie den Microsoft Lync 2013 Client angewiesen, fällt ein totaler Umstieg auf Linux basierende Betriebssysteme schwer. Die einzigen „echten“ Möglichkeiten bieten sich derzeit nur mit Dual-Boot oder einer virtuellen Maschine. Beides benötigt natürlich weiterhin gültige Lizenzen und im letzteren Fall viele Resourcen.

Anmerkung: Die Verbindung mit einem stets gepatchtem Mircrosoft Lync 2013 sowie die korrekte Darstellung der Kontakte in der Kontaktliste, funktioniert nur mit der aktuellsten Version aus dem Git-Repository für mich zuverlässig. Natürlich wäre es einfacher, fertige Pakete zu installieren. Diese sind jedoch schnell veraltet.

Was funktioniert?

Leider funktioniert nur all das, was mit Texteingabe zu tun hat. Video- und Telefonie wird auch mit dem Sipe Plug-In nicht auf wundervolle Art möglich. Dateitransfers kann ich bislang nicht ausschließend, mir fehlte allerdings die (Frei-)Zeit zur Überprüfung.

Wie funktioniert es?

Das Sipe Plug-In ist grundsätzlich kompatibel mit Pidgin, Adium, Miranda und Telepathy. Beschreiben werde ich die Installation mit Pidgin, jedoch sollte sich das Vorgehen auf die anderen Messenger übertragen lassen.

Installation

Ich entferne vorab den Empathy Messenger, der in der Standardkonfiguratin mit Ubuntu kommt. Empathy wird durch die Installation von Pidgin quasi unnötig, da Pidgin die Funktionalitäten von Empathy weitesgehend abdeckt. Natürlich unterscheiden sich beide im Detail.

sudo apt-get remove empathy

Nun die Abhängigkeiten für das Kompilieren des Plug-Ins sowie Pidgin installieren:

sudo apt-get install gettext build-essential autogen autotools-dev \
pkg-config libglib2.0-dev libgtk2.0-dev libpurple-dev libtool intltool \
comerr-dev libkrb5-dev libgmime-2.6-dev libnss3-dev libxml2-dev git \
libxml2-dev pidgin

Im Home-Verzeichnis das Verzeichnis „build“ erstellen, dort hinein wechseln und das Repository des Sipe Plug-Ins klonen:

cd && mkdir build && cd build
git clone git://repo.or.cz/siplcs.git

Der Source-Code liegt jetzt im Verzeichnis siplcs, in welches hinein gewechselt wird, um anschließend die grundsätzliche Konfiguration vorzunehmen:

cd siplcs
./autogen.sh
./configure --prefix=/usr

Abschließend mit dem Kompilieren beginnen und die Installation durchführen:

make
sudo make install

Pidgin mit Sipe Plug-In
Pidgin mit Sipe Plug-In

Pidgin kann jetzt geöffnet- und der Account hinzugefügt werden. Betitelt wird das Plug-In als „Office Communicator“. Die Einstellungen hierfür sind sehr weitreichend, für eine sauber konfigurierte Lync-Umgebung reicht aber oft schon die reine Eintragung der Login-Daten, wie man es aus dem Lync Client für Windows kennt.

Festplattenbelegung mit ncdu ohne GUI analysieren

Eine kurze Vorstellung eines sehr praktischen Tools, um die Festplattenbelegung auf einem Server schnell und übersichtlich zu analysieren:

Das Programm „ncdu“ (NCurses Disk Usage) ist ein kleines Programm, das mal eben eingetippt ist und mit Sicherheit oft Anwendung findet, unter Debian, Ubuntu und Derivaten mit folgendem Befehl zu installieren:

sudo apt-get install ncdu

Den Befehl „ncdu“ eintippen und loslegen, falsch machen kann man „eigentlich“ nichts:

ncdu ohne Parameter
ncdu ohne Parameter

Es können auch Verzeichnisse und Dateien, die ein bestimmtes Muster beinhalten übersprungen werden, etwa mit „ncdu –exclude *nagios“. Wildcards sind erlaubt:

ncdu mit "exclude" Parameter
ncdu mit „exclude“ Parameter

Shrew Soft VPN Client auf Ubuntu 13.04 / 13.10 installieren

In früheren Versionen fand sich der Shrew Soft VPN Client im offiziellen Repository Ubuntus. Leider ist das nicht mehr der Fall. Allerdings lässt sich der Client recht einfach auch für neuere Ubuntu Versionen installieren.

Changelog

  • 02. Mär – Init-Script „update-rc.d“ was missing

Client Installation

Zuerst den Client von der offiziellen Shrew Soft Seite laden. Zum aktuellen Zeitpunkt ist die neueste Version 2.2.1. Im Anschluss entpacken und in das neue Verzeichnis wechseln:

cd ~/Downloads
wget https://www.shrew.net/download/ike/ike-2.2.1-release.tbz2
tar xfvj ike-2.2.1-release.tbz2
cd ike

Folgende Abhängigkeiten sind für das Bauen des Clients notwendig:

sudo apt-get install cmake build-essential libedit-dev libssl-dev flex bison lsb-cxx lsb-qt4 qt4-qmake libqt4-core libqt4-dev

Nun kann der Client kompiliert werden:

cmake -DCMAKE_INSTALL_PREFIX=/usr -DQTGUI=YES -DETCDIR=/etc -DNATT=YES
make
sudo make install

Leider wird hierbei keine Verknüpfung zur GUI erstellt, auch fand ich kein hochauflösendes Icon. Google hat geholfen. Das Icon habe ich auf meinen Server geladen. Eine Quellenangabe hierzu fand ich leider nicht:

sudo wget https://www.debinux.de/wp-content/uploads/shrew.png -O /usr/share/icons/shrew.png
sudo nano /usr/share/applications/ike.desktop

Im Editor nun folgenden Inhalt einfügen:

[Desktop Entry]
Name=Shrew Soft VPN Access Manager
Name[en_CA]=Shrew Soft VPN Access Manager
Name[de]=Shrew Soft VPN Zugangsverwaltung
Comment=Application to manage remote site configurations
Comment[en_CA]=Application to manage remote site configurations
Comment[de]=Anwendung zum Verwalten der VPN-konfigurationen
Exec=/usr/bin/qikea
Icon=/usr/share/icons/shrew.png
Terminal=false
Type=Application
Categories=Network

Das ganze sieht dann etwa so aus:

Shrew Soft VPN Icon
Shrew Soft VPN Icon

Die Beispielkonfiguration für den Daemon, der parallel läuft, reicht in der Regel aus. Diese Konfiguration hat erstmal nichts mit der VPN Konfiguration zu tun, die man später im Client importiert/erstellt:

sudo cp /etc/iked.conf.sample /etc/iked.conf

Der Client kann nun gestartet werden, allerdings wird eine Verbindung zum Server nicht funktionieren, da der „iked“ Dienst erst noch gestartet werden muss. Der Fehler lautet dann etwa „failed to attach to key daemon„.

Automatischer Start

Anstatt die Datei „/usr/sbin/iked“ jedes mal manuell anzustoßen, kann entweder ein Upstart- oder Init-Script verwendet werden.

Upstart

sudo nano /etc/init/iked.conf

Folgender Inhalt muss eingefügt werden:

# this script will start/stop the IKE daemon
# that the IKE client depends upon

description "Start and stop the IKE daemon"
expect fork

start on startup
stop on runlevel [!2345]
script
exec /usr/sbin/iked
end script

Anschließend den Dienst starten:

sudo initctl start iked

Init-Script

sudo nano /etc/init.d/iked

Folgender Inhalt muss eingefügt werden:

#! /bin/sh -e
### BEGIN INIT INFO
# Provides: IKE daemon
# Required-Start: $network $syslog
# Required-Stop:  $network $syslog
# Default-Start:  2 3 4 5
# Default-Stop:   0 1 6
# Description:    start and stop the Shrew Soft IKE daemon
### END INIT INFO

test -x /usr/sbin/iked || exit 0

. /lib/lsb/init-functions

export PATH="${PATH:+$PATH:}/usr/sbin:/sbin"

case "$1" in
  start)
	log_begin_msg "Starting Shrew Soft IKE daemon..."
	start-stop-daemon --start --quiet --exec /usr/sbin/iked || log_end_msg 1
	log_end_msg 0
	;;
  stop)
	log_begin_msg "Stopping Shrew Soft IKE daemon..."
	start-stop-daemon --stop --quiet --oknodo --exec /usr/sbin/iked || log_end_msg 1
	log_end_msg 0
	;;

  restart)
	log_begin_msg "Restarting Shrew Soft IKE daemon..."
	start-stop-daemon --stop --quiet --oknodo --retry 30 --exec /usr/sbin/iked || log_end_msg 1
	start-stop-daemon --start --quiet --exec /usr/sbin/iked || log_end_msg 1
	log_end_msg 0
	;;

  *)
	log_success_msg "Usage: /etc/init.d/iked {start|stop|restart}"
	exit 1
esac

exit 0

Die Datei ausführbar machen und den Dienst installieren und starten:

sudo chmod +x /etc/init.d/iked && sudo update-rc.d iked defaults && sudo /etc/init.d/iked start

Die Verbindung sollte jetzt funktionieren!