Vor einiger Zeit habe ich darüber gebloggt, dass es relativ einfach ist, eine minimal-Installation auf dem Raspberry Pi via raspbian-ua-netinst durchzuführen. Ich habe dann noch etwas weitergelesen und – da ich sowieso clean auf Jessie upgraden wollte – habe mir Gedanken gemacht wie man das weiter automatisieren kann sodass FHEM schnell installiert wird.
So sieht nun meine Datei installer-config.txt
mittlerweile aus:
release=jessie hostname=fhemtest rootpw=fhemtest cmdline="dwc_otg.lpm_enable=0 console=tty1 elevator=deadline" packages=rpi-update,raspi-config,python-soappy,python-dateutil,python-pip,python-dev,build-essential,libtiff5-dev,zlib1g-dev,libfreetype6-dev,liblcms2-dev,libwebp-dev,tcl8.5-dev,tk8.5-dev python-tk,libjpeg-dev,raspi-copies-and-fills,rng-tools,nano,lsof,unzip,psmisc,apt-utils,avrdude,avr-libc,fonts-freefont-ttf,libmozilla-ca-perl,minicom,dfu-programmer,libsys-statistics-linux-perl,libjson-perl,libio-socket-ssl-perl,libgd-text-perl,libimage-librsvg-perl,imagemagick,sqlite3,libdevice-serialport-perl,libwww-perl,libxml-simple-perl,libdbi-perl,libnet-smtp-ssl-perl,libdbd-mysql,libdbd-sqlite,libdbd-sqlite3,libdbd-sqlite2-perl,libdbd-sqlite3-perl,libtext-diff-perl,diffutils,dos2unix,findutils,nano,screen,subversion,strace,bluez,bluez-tools,libnet-telnet-perl,e2fsprogs,dosfstools,git,cmake,libusb-1.0-0-dev,build-essential,console-data,console-setup,keyboard-configuration,libjson-xs-perl,libsoap-lite-perl ip_addr=dhcp ip_netmask=0.0.0.0 ip_broadcast=0.0.0.0 ip_gateway=0.0.0.0 ip_nameservers=
Die Pakete sind die gebräuchlichsten, welche von FHEM und diversen Modulen (u.a. yowsup, presence, configdb, dblog, rss) verwendet werden. Gleichzeitig wird der Bluetooth-Stack und diverse developer tools mit installiert. Ich habe hier noch die ip_* variablen aufgeführt, welche für die Vergabe einer statischen IP praktisch sind (dann ip_addr
auf static
setzen).
Mittels der Datei post-install.txt
kann man weitere Aktionen auslösen, welche nach der Erfolgen Image-Installation durchgeführt werden sollen. Bei mir sieht diese so aus:
## Definitions # Root Partition export D_ROOT=/rootfs # Enable Power LED echo "Start configuring power led" echo "echo 1 > /sys/class/leds/led1/brightness" >> /etc/rc.local echo "echo input | sudo tee /sys/class/leds/led1/trigger" >> /etc/rc.local echo "echo mmc0 | sudo tee /sys/class/leds/led0/trigger" >> /etc/rc.local echo "End configuring power led" # Configure Timezone echo "Start configuring timezone" echo "Europe/Berlin" > $D_ROOT/etc/timezone chroot $D_ROOT dpkg-reconfigure -f noninteractive tzdata echo "End configuring timezone" # Configure Keyboard layout echo "Europe/Berlin" > $D_ROOT/etc/timezone echo "# KEYBOARD CONFIGURATION FILE" > $D_ROOT/etc/default/keyboard echo "# Consult the keyboard(5) manual page." > $D_ROOT/etc/default/keyboard echo 'XKBMODEL="pc105"' > $D_ROOT/etc/default/keyboard echo 'XKBLAYOUT="de"' > $D_ROOT/etc/default/keyboard echo 'XKBVARIANT="nodeadkeys"' > $D_ROOT/etc/default/keyboard echo 'XKBOPTIONS="terminate:ctrl_alt_bksp"' > $D_ROOT/etc/default/keyboard echo 'BACKSPACE="guess"' > $D_ROOT/etc/default/keyboard chroot $D_ROOT setupcon # Configure Locale echo "Start configuring locale" sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' $D_ROOT/etc/locale.gen && \ sed -i -e 's/# nb_NO.UTF-8 UTF-8/nb_NO.UTF-8 UTF-8/' $D_ROOT/etc/locale.gen && \ sed -i -e 's/# de_DE ISO-8859-1/de_DE ISO-8859-1/' $D_ROOT/etc/locale.gen && \ sed -i -e 's/# de_DE.UTF-8 UTF-8/de_DE.UTF-8 UTF-8/' $D_ROOT/etc/locale.gen && \ sed -i -e 's/# de_DE@euro ISO-8859-15/de_DE@euro ISO-8859-15/' $D_ROOT/etc/locale.gen && \ sed -i -e 's/# en_US ISO-8859-1/en_US ISO-8859-1/' $D_ROOT/etc/locale.gen && \ sed -i -e 's/# en_US.ISO-8859-15 ISO-8859-15/en_US.ISO-8859-15 ISO-8859-15/' $D_ROOT/etc/locale.gen && \ sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' $D_ROOT/etc/locale.gen && \ echo 'LANG=en_US.UTF-8'> $D_ROOT/etc/default/locale && \ chroot $D_ROOT dpkg-reconfigure --frontend=noninteractive locales && \ chroot $D_ROOT update-locale LANG=en_US.UTF-8 echo "End configuring locale" # Configure Swap echo "Start configuring swap" dd if=/dev/zero of=$D_ROOT/swap bs=1M count=512 echo "/swap none swap sw 0 0" >> $D_ROOT/etc/fstab echo "End configuring swap" # Configure Random Number generator echo "Start configuring Random Number generator" echo "bcm2708-rng" >> $D_ROOT/etc/modules echo "End configuring Random Number generator" # Configure inittab echo "Start configuring inittab" sed -i 's/\(^.*T0.*$\)/#\ \1/' $D_ROOT/etc/inittab echo "End configuring inittab" # Configure fhem echo "Start configuring fhem" chroot $D_ROOT useradd -G dialout -g staff -M -s /bin/bash fhem export F_FHEMFILENAME=fhem-5.6 mkdir -p $D_ROOT/opt/ && cd $D_ROOT/opt/ && wget http://fhem.de/$F_FHEMFILENAME.tar.gz && tar xzf $F_FHEMFILENAME.tar.gz && mv $F_FHEMFILENAME fhem && rm $F_FHEMFILENAME.tar.gz && chroot $D_ROOT "chown fhem:dialout -R /opt/fhem" echo "End configuring fhem" # Configure hmland echo "Start configuring hmland" mkdir -p $D_ROOT/opt/hmland chroot $D_ROOT "git clone git://git.zerfleddert.de/hmcfgusb /opt/hmland && cd /opt/hmland && make" echo "End configuring hmland"
Ganz am Ende klappt der chown auf das fhem verzeichnis und der git checkout noch nicht ganz wie es soll, diese muss man derzeit noch manuell nachziehen – muss ich mir mal ansehen wo es hakt
So wie wendet man das nun an? Zunächst mal rate ich dazu eine etwas größere (Micro-)SD-Karte zu verwenden – ich fahre derzeit eine 64GB aber etwas kleiner tuts auch. Mit 4GB kam ich nicht zurecht, das war immer relativ knapp. Ich würde eher zu mindestens 8, besser 16GB tendieren.
- Neuestes Release von raspbian-ua-netinst holen
- (Micro-)SD-Karte in FAT32 formatieren und die heruntergeladenen Dateien darauf ablegen
- Die beiden Dateien
installer-config.txt
undpost-install.txt
auf der Karte ebenfalls anlegen und mit Inhalt füllen - (Micro-)SD-Karte in Raspberry
- Raspberry an Netzwerk anschließen
- Optional: Raspberry an Monitor anschließen um Fortschritt zu sehen
- Raspberry an Strom stecken
- ~20 Minuten warten
- SSH auf den gesetzten Hostname von oben (bei mir wars „fhem“) probieren. User: root & Passwort wie oben (bei mir wars fhemtest)
- Log /var/log/raspbian-ua-netinst.log ansehen und bei Bedarf verbleibende Kommandos nachziehen
- FHEM verwenden
Getestet wurde das ganze zuletzt am 18.06.2015 – sollte sich etwas verändert haben, so bitte ich um einen Kommentar
Related posts:
- Debian Jessie auf dem Raspberry PI in einer Minimal-Installation mittels raspbian-ua-netinst
- FHEM: Making of CUL V3
- Umzug von Raspbian von Raspberry Typ B auf Raspberry 2 Typ B
- Bilder des Busware COC für den Raspberry PI
- Stromverbrauch des Raspberry Pi
This feed is for personal, non-commercial use only.
The use of this feed on other websites without attribution to the author and notification of the author breaches copyright. If this content is not in your news reader, it makes the page you are viewing an infringement of the copyright. (Digital Fingerprint: d2a576b5311479d89eff39b7ca886f6b)