Home Android Arch Linux Gentoo Linux LibreELEC Github Geo

Raspberry Pi 2

CubieTruck

Vorbereitung


am Linux-Rechner in das User-Home-Verzeichnis wechseln, falls nicht schon passiert
cd /home/{user}

herunterladen der benötigten Software
download von ArchLinuxARM-rpi-2-latest.tar.gz
wget http://archlinuxarm.org/os/ArchLinuxARM-rpi-2-latest.tar.gz



um herauszufinden unter welchem Gerätenamen zum Beispiel eine Micro-SD eingebunden wird, gibt es folgende Möglichkeiten

1. folgendes am Rechner eingeben und danach die Micro-SD in den Kartenleser stecken
udevadm monitor

udevadm monitor

monitor will print the received events for:
UDEV - the event which udev sends out after rule processing
KERNEL - the kernel uevent

KERNEL[1408.486224] change   /devices/pci0000:00/[...]/8:0:0:2/block/sdf (block)
KERNEL[1408.787835] change   /devices/pci0000:00/[...]/8:0:0:2/block/sdf (block)
KERNEL[1408.787866] add      /devices/pci0000:00/[...]/block/sdf/sdf1 (block)
UDEV  [1408.822432] change   /devices/pci0000:00/[...]/8:0:0:2/block/sdf (block)
UDEV  [1408.857059] change   /devices/pci0000:00/[...]/8:0:0:2/block/sdf (block)
UDEV  [1408.890861] add      /devices/pci0000:00/[...]/8:0:0:2/block/sdf/sdf1 (block)

die Micro-SD wurde als /dev/sdf in das System eingebunden

2. Micro-SD in den Kartenleser stecken und dann folgendes eingeben
dmesg

dmesg

...
[  776.317942] sd 8:0:0:2: [sdg] 62333952 512-byte logical blocks: (31.9 GB/29.7 GiB)
[  776.321941]  sdg: sdg1
[  776.499707] EXT4-fs (sdg1): mounted filesystem with ordered data mode. Opts: (null)

die Micro-SD wurde hier als /dev/sdg in das System eingebunden und die erste Partition wurde einghangen

 



System aufspielen

im Folgenden ist /dev/sdX durch den wirklichen Gerätenamen zu ersetzen
also zum Beispiel /dev/sdf



zum Benutzer root werden
su

falls schon vorhandene Partitionen von der Micro-SD eingehangen wurde, diese wieder sauber aushängen
umount /dev/sdX1
umount /dev/sdX2 … usw
einen Überblick über die eingehangenen Partitionen und Geräte, erhält man mit dem Befehl mount


fdisk /dev/sdX

Willkommen bei fdisk (util-linux 2.25.2).
Änderungen werden vorerst nur im Speicher vorgenommen, bis Sie sich
entscheiden, sie zu schreiben.
Seien Sie vorsichtig, bevor Sie den Schreibbefehl anwenden.


Befehl (m für Hilfe): p
Festplatte /dev/sdg: 29,7 GiB, 31914983424 Bytes, 62333952 Sektoren
Einheiten: Sektoren von 1 * 512 = 512 Bytes
Sektorgröße (logisch/physikalisch): 512 Bytes / 512 Bytes
E/A-Größe (minimal/optimal): 512 Bytes / 512 Bytes
Festplattenbezeichnungstyp: dos
Festplattenbezeichner: 0x9d87697b

Device     Boot Start      End  Sectors  Size Id Type
/dev/sdg1        2048 62332927 62330880 29,7G 83 Linux


Befehl (m für Hilfe): o
Created a new DOS disklabel with disk identifier 0x4e40beca.

Befehl (m für Hilfe): n
Partitionstyp
   p   Primär (0 primär, 0 erweitert, 4 frei)
   e   Erweitert (Container für logische Partitionen)
Wählen (Vorgabe p): p
Partitionsnummer (1-4, Vorgabe 1): 1
Erster Sektor (2048-62333951, Vorgabe 2048): 
Letzter Sektor, +Sektoren oder +Größe{K,M,G,T,P} (2048-62333951, Vorgabe 62333951): +100M

Eine neue Partition 1 des Typs »Linux« und der Größe 100 MiB wurde erstellt.

Befehl (m für Hilfe): t
Partition 1 ausgewählt
Hexadezimalcode (geben Sie L ein, um alle Codes aufzulisten): c
WARNUNG: Wenn Sie eine DOS-6.x-Partition angelegt oder verändert haben, dann schauen Sie bitte in die cfdisk-Handbuchseite nach weiteren Informationen.
Partitionstyp von »Linux« nach »W95 FAT32 (LBA)« geändert.


Befehl (m für Hilfe): n
Partitionstyp
   p   Primär (1 primär, 0 erweitert, 3 frei)
   e   Erweitert (Container für logische Partitionen)
Wählen (Vorgabe p): p
Partitionsnummer (2-4, Vorgabe 2): 2
Erster Sektor (206848-62333951, Vorgabe 206848): 
Letzter Sektor, +Sektoren oder +Größe{K,M,G,T,P} (206848-62333951, Vorgabe 62333951): 

Eine neue Partition 2 des Typs »Linux« und der Größe 29,6 GiB wurde erstellt.

Befehl (m für Hilfe): p
Festplatte /dev/sdg: 29,7 GiB, 31914983424 Bytes, 62333952 Sektoren
Einheiten: Sektoren von 1 * 512 = 512 Bytes
Sektorgröße (logisch/physikalisch): 512 Bytes / 512 Bytes
E/A-Größe (minimal/optimal): 512 Bytes / 512 Bytes
Festplattenbezeichnungstyp: dos
Festplattenbezeichner: 0x4e40beca

Device     Boot  Start      End  Sectors  Size Id Type
/dev/sdg1         2048   206847   204800  100M 83 Linux
/dev/sdg2       206848 62333951 62127104 29,6G 83 Linux


Befehl (m für Hilfe): w

Verzeichnis zum einhängen der root-Partition erstellen
mkdir /mnt/RaspberryPi2

Dateisystem ext4 auf der root-Partition anlegen
mkfs.ext4 -L RaspberryPi2 /dev/sdX2

mkfs.ext4 -L RaspberryPi2 /dev/sdX2

mke2fs 1.42.12 (29-Aug-2014)
Ein Dateisystems mit 3863680 (4k) Blöcken und 966656 Inodes wird erzeugt.
UUID des Dateisystems: c35ab66e-9346-467a-bba5-90f88dd1d69f
Superblock-Sicherungskopien gespeichert in den Blöcken: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208

beim Anfordern von Speicher für die Gruppentabellen: erledigt                        
Inode-Tabellen werden geschrieben: erledigt                        
Das Journal (32768 Blöcke) wird angelegt: erledgt
Die Superblöcke und die Informationen über die Dateisystemnutzung werden
geschrieben: erledigt

root-Partition einhängen
mount /dev/sdX2 /mnt/RaspberryPi2/

Verzeichnis zum einhängen der boot-Partition erstellen
mkdir /mnt/RaspberryPi2/boot

Dateisystem vfat auf der boot-Partition anlegen
mkfs.vfat -n BOOTRPI2 /dev/sdX1

boot-Partition einhängen
mount /dev/sdX1 /mnt/RaspberryPi2/boot/

aktuelles ArchLinuxArm auf die Micro-SD entpacken
tar -xf ArchLinuxARM-rpi-2-latest.tar.gz -C /mnt/RaspberryPi2/

alle noch gecachten Daten auf die Micro-SD schreiben
sync

die Partition BOOTRPI2 (/dev/sdX1) wieder aushängen
umount /mnt/RaspberryPi2/boot/

und auch die Partition RaspberryPi2 (/dev/sdX2) wieder aushängen
umount /mnt/RaspberryPi2



Einrichtung

Micro-SD in den RaspBerryPi2 stecken, booten und einlogen (entweder remote per SSH oder lokal am RaspBerryPi2, bei remote kann folgendes genutzt werden, ohne dass die automatisch zugewiesene IP des RaspBerry im Router ausgelesen werden muss)

Login per SSH, als Benutzer alarm - Passwort: alarm
ssh alarm@alarmpi

The authenticity of host 'alarmpi (192.168.55.119)' can't be established.
ECDSA key fingerprint is xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx.
Are you sure you want to continue connecting (yes/no)? yes

zum Benutzer root wechseln - Passwort: root
su

als erstes das Passwort von root ändern
passwd

und auch das Passwort des Benutzers alarm ändern
passwd alarm

den Schlüsselring von pacman initialisieren und mit den signierten Schlüsseln befüllen
pacman-key –init
pacman-key –populate archlinuxarm

Datenbank von pacman auf den neuesten Stand bringen und das System updaten
pacman -Syu

den Hostnamen auf rbpi2 setzen
echo rbpi2 > /etc/hostname
beim nächsten login über ssh, kann dann folgendes genutzt werden ssh alarm@rbpi2

schönnen Banner beim Login erstellen (motd - message of the day)
nano /etc/motd

/etc/motd

  _____                 _                          _____ _ ___  
 |  __ \               | |                        |  __ (_)__ \ 
 | |__) |__ _ ___ _ __ | |__   ___ _ __ _ __ _   _| |__) |   ) |
 |  _  // _` / __| '_ \| '_ \ / _ \ '__| '__| | | |  ___/ | / / 
 | | \ \ (_| \__ \ |_) | |_) |  __/ |  | |  | |_| | |   | |/ /_ 
 |_|  \_\__,_|___/ .__/|_.__/ \___|_|  |_|   \__, |_|   |_|____|
                 | |                          __/ |             
                 |_|                         |___/              
                                                                

http://patorjk.com/software/taag/#p=display&f=Big&t=RaspberryPi2

die richtige Zeitzone setzen
ln -sf /usr/share/zoneinfo/Europe/Berlin /etc/localtime
oder
timedatectl set-timezone Europe/Berlin

deutsches Tastaturlayout auf der Konsole einstellen
echo KEYMAP=de-latin1 > /etc/vconsole.conf
echo FONT=lat9w-16 >> /etc/vconsole.conf

die zu erzeugende Lokalisierungen (Systemsprache und Formatierung) festlegen
nano /etc/locale.gen

nano /etc/locale.gen

de_DE.UTF-8 UTF-8
de_DE ISO-8859-1 
de_DE@euro ISO-8859-15

die Lokalisierung erzeugen
locale-gen

Lokalisierung auf de_DE.UTF8 setzen
echo LANG=de_DE.UTF8 > /etc/locale.conf

noch ein paar nützliche Programme installieren
pacman -S htop lsof wget bash-completion

das System neustarten
reboot



BASH erweitern


den Inhalt der Datei /etc/bash.bashrc ersetzen
nano /etc/bash.bashrc

/etc/bash.bashrc

#
# /etc/bash.bashrc
#

# If not running interactively, don't do anything
[[ $- != *i* ]] && return

# prompt only the last 2 dirs
PROMPT_DIRTRIM=2

if [[ ${EUID} == 0 ]] ; then
   PS1='\[\033[01;31m\]\h\[\033[01;34m\] \W \$\[\033[00m\] '
else
   PS1='\[\033[01;32m\]\u@\h\[\033[01;34m\] \w'
   # if git-prompt.sh exist, prompt git-branch inside a git directory, else only '$'
   if [ -f /usr/share/git/git-prompt.sh ]; then
      . /usr/share/git/git-prompt.sh
      GIT_PS1_SHOWDIRTYSTATE=1
      GIT_PS1_SHOWSTASHSTATE=1
      GIT_PS1_SHOWUPSTREAM="auto"
      PS1+='\[\033[01;33m\]$(__git_ps1 " (%s)")\[\033[01;34m\] \$\[\033[00m\] '
   else
      PS1+='\[\033[01;34m\] \$\[\033[00m\] '
   fi
fi
PS2='> '
PS3='> '
PS4='+ '

case ${TERM} in
  xterm*|rxvt*|Eterm|aterm|kterm|gnome*)
    PROMPT_COMMAND=${PROMPT_COMMAND:+$PROMPT_COMMAND; }'printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/\~}"'

    ;;
  screen)
    PROMPT_COMMAND=${PROMPT_COMMAND:+$PROMPT_COMMAND; }'printf "\033_%s@%s:%s\033\\" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/\~}"'
    ;;
esac

# source .bash_aliases if exist
[ -r ~/.bash_aliases ] && . ~/.bash_aliases

# source bash_completion if exist
[ -r /usr/share/bash-completion/bash_completion ] && . /usr/share/bash-completion/bash_completion

alias p='pwd'
alias dir='dir --color=auto'
alias ls='ls --all --color=auto'
alias ll='ls -l --human-readable --all --color=auto'
alias ltr='ls -lt --reverse --human-readable --all --color=auto'
alias grep='grep --color=auto'
alias dmesg='dmesg --color'
alias nano='nano -w'
alias x='exit'

in der Datei /etc/skel/.bashrc und /home/alarm/.bashrc alles auskommentieren
nano /etc/skel/.bashrc
nano /home/alarm/.bashrc

.bashrc

#
# ~/.bashrc
#

# If not running interactively, don't do anything
#[[ $- != *i* ]] && return

#alias ls='ls --color=auto'
#PS1='[\u@\h \W]\$ '
 

VDR

das Repository VDR4Arch einbinden
cd /tmp
wget http://creimer.net/vdr4arch/repo/vdr4arch-keyring-20130219-1-any.pkg.tar.xz
pacman -U vdr4arch-keyring-20130219-1-any.pkg.tar.xz

haveged (ein Entropy Harvesting Daemon) sollte zum anlegen eines pacman-Keyring laufen
systemctl start haveged

den pacman-Keyring erstellen
pacman-key --init
pacman-key --populate vdr4arch

haveged kann jetzt komplett deaktiviert werden
systemctl disable haveged

anschließend fügt man das Repository an das Ende von /etc/pacman.conf ein
nano /etc/pacman.conf

/etc/pacman.conf

...
[vdr4arch]
Server = http://creimer.net/vdr4arch/repos/$repo/os/$arch

die Paketdatenbank aktualisieren
pacman -Sy

VDR und ein paar Plugins installieren
pacman -S vdr vdr-vnsiserver vdr-vdrmanager w_scan

für meinen DVB-C-USB-Stick muss noch die Firmware installiert werden und neugestartet werden
pacman -S dvbsky-firmware && reboot

jetzt können wir nach Kanäle scannen (hier für DVB-C in Deutschland)
w_scan -fc -cDE -o21 > /var/lib/vdr/channels.conf
… das dauert a weng

die Plugins aktivieren
cd /etc/vdr/concd /etc/vdr/conf.df.d
ln -s ../conf.avail/50-vdrmanager.conf .
ln -s ../conf.avail/50-vnsiserver.conf .

VDR beim nächsten boot aktivieren
systemctl enable vdr



Kodi

Mediacenter Kodi und das VNSI-Addon installieren
pacman -S kodi-rbp kodi-addon-pvr-vdr-vnsi

nüzliche Abhängigkeiten für Kodi installieren
pacman -S polkit udisks upower lsb-release

Oversan ausschalten, wenn schwarzze Balken um das Bild vorhanden sind und der GPU mehr Speicher zur Verfügung stellen
nano /boot/config.txt

/boot/config.txt

disable_overscan=1
gpu_mem=256

Kodi beim Systemstart mit starten
systemctl enable kodi

das System neustarten
reboot



Pilight


pacman -S base-devel

pacman -S base-devel

:: Es befinden sich 25 Mitglieder in Gruppe base-devel:
:: Repositorium core
   1) autoconf  2) automake  3) binutils  4) bison  5) fakeroot  6) file  7) findutils
   8) flex   9) gawk  10) gcc  11) gettext  12) grep  13) groff  14) gzip   15) libtool
   16) m4  17) make   18) pacman  19) patch  20) pkg-config  21) sed  22) sudo
   23) texinfo  24) util-linux  25) which

Geben Sie eine Auswahl ein (Voreinstellung=alle):
  • einfach >ENTER< drücken


useradd -m -G users,audio,video,wheel -s /bin/bash {username}


passwd {username}


nano /etc/sudoers

nano /etc/sudoers

...
## Uncomment to allow members of group wheel to execute any command
%wheel ALL=(ALL) ALL
...


su {username}


cd /tmp && mkdir pilight && cd pilight


wget https://aur.archlinux.org/cgit/aur.git/plain/PKGBUILD?h=pilight -O PKGBUILD


makepkg -si
es werden noch Abhängigkeiten zum Ausführen und zum Bauen des Programmes benötigt,
zum Installieren dieser einfach >ENTER< drücken


exit


nano /etc/pilight/config.json

/etc/pilight/config.json

{
	"devices": {
		"reboot_sys": {
			"protocol": [ "program" ],
			"id": [{
				"name": "reboot"
			}],
			"program": "/sbin/init",
			"arguments": "",
			"start-command": "",
			"stop-command": "systemctl start reboot.target",
			"state": "running",
			"pid": 1
		},
		"kodi": {
			"protocol": [ "program" ],
			"id": [{
				"name": "xbmc"
			}],
			"program": "/usr/lib/kodi/kodi.bin",
			"arguments": "",
			"stop-command": "systemctl stop kodi",
			"start-command": "systemctl start kodi",
			"state": "stopped",
			"pid": 0
		},
		"outside": {
			"protocol": [ "openweathermap" ],
			"id": [{
				"location": "bamberg",
				"country": "de"
			}],
			"humidity": 13.00,
			"temperature": 20.09,
			"sunrise": 5.43,
			"sunset": 21.01,
			"sun": "rise",
			"update": 0
		},
		"rpitemp": {
			"protocol": [ "cpu_temp" ],
			"id": [{
				"id": 1
			}],
			"temperature": 40.084,
			"poll-interval": 10
		},
		"relay0": {
			"protocol": [ "relay" ],
			"id": [{
				"gpio": 0
			}],
			"state": "off",
			"default-state": "off"
		},
		"relay2": {
			"protocol": [ "relay" ],
			"id": [{
				"gpio": 2
			}],
			"state": "off",
			"default-state": "off"
		},
		"switch1": {
			"protocol": [ "intertechno_old" ],
			"id": [{
				"id": 0,
				"unit": 0
			}],
			"state": "off"
		},
		"switch2": {
			"protocol": [ "intertechno_old" ],
			"id": [{
				"id": 1,
				"unit": 0
			}],
			"state": "off"
		}
	},
	"rules": {},
	"gui": {
		"outside": {
			"name": "Wetter",
			"group": [ "Temperatur" ],
			"media": [ "all" ]
		},
		"rpitemp": {
			"name": "Raspberry Pi CPU Temperatur",
			"group": [ "Temperatur" ],
			"media": [ "all" ]
		},
		"kodi": {
			"name": "KODI starten/stoppen",
			"group": [ "System" ],
			"media": [ "all" ]
		},
		"reboot_sys": {
			"name": "System neustarten",
			"group": [ "System" ],
			"media": [ "all" ],
			"confirm": 1
		},
		"relay0": {
			"name": "Relais 1 (GPIO 0)",
			"group": [ "Schalten" ],
			"media": [ "all" ],
			"readonly": 0
		},
		"relay2": {
			"name": "Relais 2 (GPIO 2)",
			"group": [ "Schalten" ],
			"media": [ "all" ],
			"readonly": 0
		},
		"switch1": {
			"name": "Steckdose 1 (433MHz)",
			"group": [ "Schalten" ],
			"media": [ "all" ],
			"readonly": 0
		},
		"switch2": {
			"name": "Steckdose 2 (433MHz)",
			"group": [ "Schalten" ],
			"media": [ "all" ],
			"readonly": 0
		}
	},
	"settings": {
		"log-level": 6,
		"pid-file": "/var/run/pilight.pid",
		"log-file": "/var/log/pilight.log",
		"webserver-enable": 1,
		"webserver-root": "/usr/share/webapps/pilight",
		"webserver-http-port": 5001,
		"webserver-cache": 1
	},
	"hardware": {
		"433gpio": {
			"sender": 1,
			"receiver": 3
		}
	},
	"registry": {
		"webgui": {
			"tabs": 0
		},
		"pilight": {
			"version": {
				"current": "7.0"
			}
		}
	}
}

Pilight Gui Raspberry Pi 2 + Relais + 433MHz

Device-Tree

Device-Tree-Blob-Overlay selbst erstellen

pacman -S dtc-overlay

dtc -O dtb -o /boot/overlays/wittypi.dtbo -@ wittypi-overlay.dts

Home Assistant

pacman -S docker jq avahi networkmanager

systemctl start avahi-daemon

systemctl enable avahi-daemon

systemctl start docker

systemctl enable docker

curl -sL https://raw.githubusercontent.com/home-assistant/hassio-build/master/install/hassio_install | bash -s -- -m raspberrypi2

DeConz

docker pull marthoc/deconz

docker run -d –name=deconz –net=host –restart=always -v /opt/deconz:/root/.local/share/dresden-elektronik/deCONZ –device=/dev/ttyAMA0 marthoc/deconz