<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>HowTo&#8217;s &#8211; PiProjects</title>
	<atom:link href="https://www.piprojects.net/category/howtos/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.piprojects.net</link>
	<description>Blog about PI</description>
	<lastBuildDate>Wed, 18 Aug 2021 04:19:06 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
<site xmlns="com-wordpress:feed-additions:1">78761617</site>	<item>
		<title>SMS Gateway im eigenbau</title>
		<link>https://www.piprojects.net/sms-gateway-im-eigenbau/</link>
					<comments>https://www.piprojects.net/sms-gateway-im-eigenbau/#comments</comments>
		
		<dc:creator><![CDATA[Stefan]]></dc:creator>
		<pubDate>Tue, 16 Feb 2021 16:15:44 +0000</pubDate>
				<category><![CDATA[All about Pi]]></category>
		<category><![CDATA[HowTo's]]></category>
		<category><![CDATA[Linux]]></category>
		<guid isPermaLink="false">https://www.piprojects.net/?p=1424</guid>

					<description><![CDATA[Setup SMS Gateway with playSMS and gammu Allgemein:Ziel ist es ein SMS Gateway zum versenden von 2FA Kennwörtern zu haben und auch für Meldungen aus dem Monitoring Hardware: Raspberry Pi 4  4GB Raspberry Pi HAT SIM7600X-H (H = Europa , T = China ) SD Karte min 8GB Original Netzteil USB-C Gehäuse ( da es [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Setup SMS Gateway with playSMS and gammu</p>
<p>Allgemein:<br />Ziel ist es ein SMS Gateway zum versenden von 2FA Kennwörtern zu haben und auch für Meldungen aus dem Monitoring</p>
<p>Hardware:</p>

<ul class="wp-block-list">
<li><a href="https://amzn.to/2XqgjNV">Raspberry Pi 4  4GB</a></li>
<li><a href="https://amzn.to/32yNmii">Raspberry Pi HAT SIM7600X-H</a> (H = Europa , T = China )</li>
<li><a href="https://amzn.to/32DCnEk">SD Karte min 8GB</a></li>
<li><a href="https://amzn.to/2Xsstpw">Original Netzteil USB-C</a></li>
<li>Gehäuse ( da es nichts passendes gibt muss man das drucken lassen )</li>
<li><a href="https://amzn.to/2VVje0V">Gehäuse HiFiBerry</a> ist etwas höher und man kann die Cinch Löcher vermutlich für die Antennen verwenden </li>
<li>Sim Karte (Pin deaktivieren) z.B. von <a href="https://www.premiumsim.de/details/18941/lte-xs?kw=1u7tWlvrPUIElKfmoOc%2BQA%3D%3D">PremiumSim für ca 4,99€ im Monat</a> eine SMS Flat kann sich hier schon lohnen</li>
</ul>

<p>Software:</p>

<ul class="wp-block-list">
<li>RaspberryOS 32Bit</li>
<li>Rufus</li>
<li>gammu-smsd</li>
<li>playSMS</li>
<li>apache2</li>
<li>mariadb-server</li>
</ul>

<p>Installation:<br />Betriebssystem herunterladen und mit Rufus auf die SD Karte schreiben<br />Sobald das fertig ist wird auf das neue Laufwerk x:\boot eine leere Datei ssh erstellt, damit wird dann der SSH Server im System aktiviert.<br />Sollte WLAN benötigt werden muss auch auf x:\boot eine Datei wpa_supplicant.conf mit Inhalt</p>
<pre class="EnlighterJSRAW" data-enlighter-language="shell">ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=DE
network={
ssid="Wlanname"
psk="Wlanpasswort"
}</pre>
<p>&nbsp;</p>
<p>Da die Vorbereitung nun abgeschlossen ist kann die Karte in den Pi und dieser eingeschalten werden.<br />Im Netzwerk nun nach dem Pi suchen mit Netscanner oder im DHCP.<br />Weiter geht es dann mit PuTTY<br />Verbinden mit der gefundenen IP<br />Benutzername: pi<br />Passwort: raspberry</p>
<pre class="EnlighterJSRAW" data-enlighter-language="shell">sudo apt update &amp;&amp; apt dist-upgrade -y</pre>
<p>&nbsp;</p>
<p><br />Wenn das Update fertig ist, den Pi einmal neu starten: sudo shutdown -r now</p>
<p>Erneut mit PuTTY verbinden</p>
<p>Benutzer anlegen mit dem die Anwendung läuft</p>
<pre class="EnlighterJSRAW" data-enlighter-language="shell">sudo adduser sms
sudo usermod -a -G sudo sms</pre>
<p>&nbsp;</p>
<p>Firewall installieren und ssh zulassen, sonst kommt man nicht mehr auf den Pi</p>
<pre class="EnlighterJSRAW" data-enlighter-language="shell">sudo apt install ufw
sudo ufw allow ssh
sudo ufw enable
sudo ufw reload</pre>
<p>&nbsp;</p>
<p>Webserver mit PHP und Datenbankserver installieren</p>
<pre class="EnlighterJSRAW" data-enlighter-language="shell">sudo update
sudo rm /etc/source.list.d/vscode.list # Seit dem letzten Update wird vscode von Microsoft automatisch hinzugefüht, da man das auf dem Server nicht braucht, wird es gelöscht
sudo apt install mariadb-server mc unzip apache2 php php-cli php-mysql php-gd php-curl php-mbstring php-xml php-zip</pre>
<pre class="EnlighterJSRAW" data-enlighter-language="shell">sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service
sudo systemctl start apache2.service
sudo systemctl enable apache2.service
sudo ufw allow http
sudo ufw allow https
sudo ufw reload</pre>
<p>&nbsp;</p>
<p>Gammu , der SMS Dienst<br />Da wir die Serielle Schnittstelle brauchen , muss vorher noch die config.txt angepasst werden</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">sudo nano /boot/config.txt
enable_uart=1

sudo apt install gammu gammu-smsd
mkdir -p /var/log/gammu /var/spool/gammu/{inbox,outbox,sent,error}

chown www-data:www-data -R /var/spool/gammu/*</pre>
<p>&nbsp;</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">nano /etc/gammu-smsdrc
[gammu]
port = /dev/ttyS0
connection = at
logfile = /var/log/gammu/gammu.log
logformat = textall
[smsd]
Service = files
InboxPath = /var/spool/gammu/inbox/
OutboxPath = /var/spool/gammu/outbox/
SentSMSPath = /var/spool/gammu/sent/
ErrorSMSPath = /var/spool/gammu/error/
InboxFormat = unicode
OutboxFormat = unicode
TransmitFormat = auto
debugLevel = 1
LogFile = /var/log/gammu/smsd.log
DeliveryReport = sms
DeliveryReportDelay = 7200
CheckSecurity = 0</pre>
<p>&nbsp;</p>
<p>Gammu testen</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">service gammu-smsd start
gammu-smsd-monitor
echo "Testnachricht" | gammu-smsd-inject TEXT +4917XXXXXX</pre>
<p>&nbsp;</p>
<p>Verzeichnis für playSMS vorbereiten und den Webserver</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">cd /home/sms
mkdir -p public_html log
sudo chmod 775 /home/sms public_html log
sudo chown sms.sms -R /home/sms
sudo chown www-data.sms -R /home/sms/log
ls -l /home/sms</pre>
<pre class="EnlighterJSRAW" data-enlighter-language="apache">sudo nano /etc/apache2/sites-available/sms.domain.local.conf
ServerName sms.domain.local
DocumentRoot /home/sms/public_html
ErrorLog /home/sms/log/httpd-error.log
CustomLog /home/sms/log/httpd-accesss.log combined
 AllowOverride FileInfo AuthConfig
 Limit Indexes Options MultiViews Indexes
 SymLinksIfOwnerMatch IncludesNoExec Require method GET POST OPTIONS php_admin_value engine On</pre>
<pre class="EnlighterJSRAW" data-enlighter-language="shell">sudo a2ensite sms.domain.local
sudo a2dissite 000-default.conf
sudo a2dissite default-ssl.conf
sudo systemctl reload apache2.service</pre>
<p>&nbsp;</p>
<p>Wenn man mit Zertifikat https möchte dann diesen Schritt noch zusätzlich durchführen, da das Gateway intern steht,nicht unbedingt notwendig</p>
<pre class="EnlighterJSRAW" data-enlighter-language="shell">sudo apt install python3-certbot-apache
sudo certbot --apache</pre>
<p>&nbsp;</p>
<p>Datenbank erstellen</p>
<pre class="EnlighterJSRAW" data-enlighter-language="shell">sudo mysqladmin create playsms
sudo mysql</pre>
<p>&nbsp;</p>
<pre class="EnlighterJSRAW" data-enlighter-language="sql">CREATE USER 'playsms'@'localhost' IDENTIFIED BY 'strongpasswordhere';
GRANT ALL PRIVILEGES ON playsms.* TO 'playsms'@'localhost';
FLUSH PRIVILEGES;
exit</pre>
<p>&nbsp;</p>
<p>playSMS installieren<br />Da die Applikation nicht im root Modus laufen soll wird hier der Benutzer gewechselt und mit diesen Rechten weiter gearbeitet</p>
<pre class="EnlighterJSRAW" data-enlighter-language="shell">su sms
cd /home/sms
mkdir -p bin etc lib src
sudo chmod 775 bin etc lib src
sudo touch log/audit.log log/playsms.log
sudo chmod 664 log/audit.log log/playsms.log
sudo chown www-data.sms -R log
ls -l log

cd /home/sms/src
git clone -b 1.4.3 --depth=1 https://github.com/antonraharja/playSMS
cd /home/sms/src/playSMS

nano install.conf

DBUSER="playsms"
DBPASS="strongpasswordhere"
DBNAME="playsms"
DBHOST="localhost"
DBPORT="3306"
WEBSERVERUSER="www-data"
WEBSERVERGROUP="www-data"
PATHSRC="/home/sms/src/playSMS"
PATHWEB="/home/sms/public_html"
PATHLIB="/home/sms/lib"
PATHBIN="/home/sms/bin"
PATHLOG="/home/sms/log"
PATHCONF="/home/sms/etc"

cd /home/sms/src/playSMS
./install-playsms.sh</pre>
<p>&nbsp;</p>
<p>bei der Installation muss man 3 Mal mit y bestätigen</p>
<p>Folgendes muss noch als /etc/systemd/system/playsms.service geseichert werden</p>
<pre class="EnlighterJSRAW" data-enlighter-language="shell">[Unit]
Description=PlaySMS
After=mariadb.service
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/home/sms/bin/playsmsd /home/sms/etc/playsmsd.conf start
ExecStop=/home/sms/bin/playsmsd /home/sms/etc/playsmsd.conf stop
[Install]
WantedBy=multi-user.target</pre>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Anschließend</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">systemctl enable playsms.service</pre>
<p>&nbsp;</p>
<p>Die config.php muss man anpassen für erweiterte Logs und wenn https eingesetzt wird</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">nano /home/sms/public_html/config.php

logstate 3

ishttps true</pre>
<p>&nbsp;</p>
<p>http://IP<br />Username: admin<br />Password: admin</p>
<p>playSMS <a href="https://playsms.org/" target="_blank" rel="noreferrer noopener">https://playsms.org/</a><br />Routing Konfiguration: <a href="https://edzeame.wordpress.com/2019/06/08/playsms-web-interface-gammu-install-and-configure/" target="_blank" rel="noreferrer noopener">https://edzeame.wordpress.com/2019/06/08/playsms-web-interface-gammu-install-and-configure/</a><br />API Referenz: <a href="https://github.com/playsms/playsms/blob/master/documents/development/WEBSERVICES.md" target="_blank" rel="noreferrer noopener">https://github.com/playsms/playsms/blob/master/documents/development/WEBSERVICES.md</a></p>
<p>Passwort vom Admin vergessen?</p>
<p>Dann per ssh auf den Pi und nach sudo -s folgenden Befehl verwenden</p>
<p>echo &#8222;UPDATE playsms_tblUser SET password=&#8217;21232f297a57a5a743894a0e4a801fc3&#8242; WHERE uid=&#8217;1&#8242;&#8220; | mysql -uroot -p playsms</p>
<p>Das ganze gibt es auch als fertiges Image</p>
<div class="sdm_download_item "><div class="sdm_download_item_top"><div class="sdm_download_thumbnail"></div><div class="sdm_download_title">playSMS Image</div></div><div style="clear:both;"></div><div class="sdm_download_description"></div><div class="sdm_download_size"><span class="sdm_download_size_label">Größe: </span><span class="sdm_download_size_value">436 MB</span></div><div class="sdm_download_link"><span class="sdm_download_button"><a href="https://www.piprojects.net/?sdm_process_download=1&download_id=1514" class="sdm_download grün" title="playSMS Image" target="_blank">Jetzt herunterladen!</a></span><span class="sdm_download_item_count"><span class="sdm_item_count_number">2122</span><span class="sdm_item_count_string"> Downloads</span></span></div></div><div class="sdm_clear_float"></div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>In diesem Artikel sind Amazon-Links enthalten. Durch einen Klick darauf ge­lan­gt ihr direkt zum Anbieter. Solltet ihr euch dort für einen Kauf entscheiden, erhalten wir ei­ne kleine Provision. Für euch ändert sich am Preis nichts.</p>]]></content:encoded>
					
					<wfw:commentRss>https://www.piprojects.net/sms-gateway-im-eigenbau/feed/</wfw:commentRss>
			<slash:comments>64</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1424</post-id>	</item>
		<item>
		<title>Debian Image bauen</title>
		<link>https://www.piprojects.net/debian-image-bauen/</link>
		
		<dc:creator><![CDATA[Stefan]]></dc:creator>
		<pubDate>Thu, 05 Jan 2017 12:48:49 +0000</pubDate>
				<category><![CDATA[HowTo's]]></category>
		<category><![CDATA[Linux]]></category>
		<guid isPermaLink="false">https://piprojects.net/?p=1245</guid>

					<description><![CDATA[Ich habe mal mein &#8222;altes&#8220; Script überarbeitet zum erstellen von einem Debian Image. Die git Quellen sollte man entsprechend anpassen , da sie derzeit auf meine Testing zeigen und noch nicht alles funktioniert (jedenfalls M2 Ultra) der Rest sind aktuelle Quellen darin. Verzeichnis zum erstellen mkdir build cd build Sources laden hier für den Banana [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Ich habe mal mein &#8222;altes&#8220; Script überarbeitet zum erstellen von einem Debian Image.</p>
<p>Die git Quellen sollte man entsprechend anpassen , da sie derzeit auf meine Testing zeigen und noch nicht alles funktioniert (jedenfalls M2 Ultra) der Rest sind aktuelle Quellen darin.</p>
<p><u>Verzeichnis zum erstellen</u><br />
<code><br />
mkdir build<br />
cd build<br />
</code><br />
<u>Sources laden</u> <i>hier für den Banana M2 Ultra (r40) </i><br />
<code><br />
git clone --depth 1 -b r40 https://github.com/wens/u-boot-sunxi<br />
git clone --depth 1 -b r40 https://github.com/a1d3s/linux<br />
</code><br />
<u>Image für die SD Karte erstellen 4GB</u><br />
<code><br />
dd if=/dev/zero of=image.img bs=1M count=3900<br />
</code><br />
<u>Image als Laufwerk laden</u><br />
<code><br />
losetup /dev/loop0 image.img<br />
</code><br />
<u>Image partitonieren und formatieren</u><br />
<code><br />
fdisk /dev/loop0<br />
partx -av /dev/loop0<br />
mkfs.vfat /dev/loop0p1<br />
mkfs.ext4 /dev/loop0p2<br />
</code><br />
<u>Arbeitsverzeichnis erstellen</u><br />
<code><br />
mkdir /mnt/rootfs<br />
mount /dev/loop0p2 /mnt/rootfs/<br />
mount /dev/loop0p1 /mnt/rootfs/boot<br />
</code><br />
<u>Variablen setzen zum bearbeiten</u><br />
<code><br />
targetdir=/mnt/rootfs<br />
</code><br />
<u>Version von Debian angeben wheezy/jessie/sid/testing sind möglich</u><br />
<code><br />
distro=jessie<br />
</code><br />
<u>debootstrap um ein neues Debian bauen</u><br />
<code><br />
debootstrap --arch=armhf --foreign $distro $targetdir<br />
cp /usr/bin/qemu-arm-static $targetdir/usr/bin/<br />
cp /etc/resolv.conf $targetdir/etc<br />
</code><br />
<u>Chroot in das neue Debian</u><br />
<code><br />
chroot $targetdir<br />
</code><br />
<u>Variablen im Chroot neu setzen</u><br />
<code><br />
distro=jessie<br />
export LANG=C<br />
/debootstrap/debootstrap --second-stage<br />
</code><br />
<u>Einstellungen für APT</u><br />
<code><br />
cat <<EOT > /etc/apt/sources.list<br />
deb http://ftp.uk.debian.org/debian $distro main contrib non-free<br />
deb-src http://ftp.uk.debian.org/debian $distro main contrib non-free<br />
deb http://ftp.uk.debian.org/debian $distro-updates main contrib non-free<br />
deb-src http://ftp.uk.debian.org/debian $distro-updates main contrib non-free<br />
deb http://security.debian.org/debian-security $distro/updates main contrib non-free<br />
deb-src http://security.debian.org/debian-security $distro/updates main contrib non-free<br />
EOT</p>
<p>cat <<EOT > /etc/apt/apt.conf.d/71-no-recommends<br />
APT::Install-Recommends "0";<br />
APT::Install-Suggests "0";<br />
EOT<br />
</code><br />
<u>Lokalisierung und Zeitzone einstellen</u><br />
<code><br />
apt-get update<br />
apt-get install locales dialog -y<br />
dpkg-reconfigure locales<br />
dpkg-reconfigure tzdata<br />
</code><br />
<u>Extra Pakete installieren</u><br />
<code><br />
apt-get install openssh-server ntpdate sudo wireless-tools wpasupplicant mc dbus slim -y<br />
</code><br />
<u>Passwort setzen und Benutzer erstellen</u><br />
<code><br />
passwd root<br />
useradd -m -G users,sudo,ssh -s /bin/bash bpi<br />
passwd bpi<br />
</code><br />
<u>Netzwerk vorbereiten</u><br />
<code><br />
cat <<EOT > /etc/network/interfaces<br />
auto lo<br />
iface lo inet loopback<br />
auto eth0<br />
allow-hotplug eth0<br />
iface eth0 inet dhcp<br />
EOT<br />
</code><br />
<u>Computername einstellen</u><br />
<code><br />
echo bpi > /etc/hostname<br />
</code><br />
<u>Konsole erstellen</u><br />
<code><br />
echo T0:2345:respawn:/sbin/getty -L ttyS0 115200 vt100 >> /etc/inittab<br />
</code><br />
<u>rc.local anpassen</u><br />
<i>ssh keys sollen beim start neu erstellt werden</i><br />
<code><br />
nano /etc/rc.local<br />
-> vor exit 0 einfügen</p>
<p>test -f /etc/ssh/ssh_host_dsa_key || dpkg-reconfigure openssh-server<br />
</code><br />
<u>Chroot verlassen</u><br />
<code><br />
exit<br />
</code><br />
<u>Kernel bauen (defconfig je nach Board auswählen)</u><br />
<code><br />
cd linux/<br />
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bananam2_defconfig<br />
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig<br />
make -j8 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- LOADADDR=0x40008000 uImage modules dtbs<br />
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- modules_install INSTALL_MOD_PATH=$targetdir/lib/modules<br />
</code><br />
<u>Kernel und DTB kopieren</u><br />
<i>DTB je nach Board anpassen</i><br />
<code><br />
cp arch/arm/boot/uImage $targetdir/boot<br />
cp arch/arm/boot/dts/sun8i-r40-bananapi-m2-ultra.dtb $targetdir/boot<br />
</code><br />
<u>Bootscript erstellen</u><br />
<i>DTB je nach Board anpassen</i><br />
<code><br />
cd ..<br />
nano boot.cmd<br />
fatload mmc 0 0x46000000 uImage<br />
fatload mmc 0 0x49000000 sun8i-r40-bananapi-m2-ultra.dtb<br />
setenv bootargs console=ttyS0,115200 root=/dev/mmcblk0p2 rw rootwait panic=10 ${extra}<br />
env set fdt_high ffffffff<br />
bootm 0x46000000 - 0x49000000</p>
<p>mkimage -C none -A arm -T script -d boot.cmd boot.scr</p>
<p>cp boot.scr $targetdir/boot<br />
</code><br />
<u>U-Boot Bootloader bauen</u><br />
<code><br />
cd ../u-boot-sunxi<br />
make CROSS_COMPILE=arm-linux-gnueabihf- Bananapi_M2_Ultra_defconfig<br />
make CROSS_COMPILE=arm-linux-gnueabihf-<br />
</code></p>
<p><u>Bootsektor löschen</u><br />
<code><br />
dd if=/dev/zero of=/dev/loop0 bs=1k count=1023 seek=1<br />
</code><br />
<u>Bootsektor schreiben</u><br />
<code><br />
dd if=u-boot-sunxi-with-spl.bin of=/dev/loop0 bs=1024 seek=8<br />
</code><br />
<u>Aufräumen</u><br />
<code><br />
rm $targetdir/etc/ssh/ssh_host*<br />
rm $targetdir/etc/resolv.conf<br />
rm $targetdir/usr/bin/qemu-arm-static<br />
</code></p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1245</post-id>	</item>
		<item>
		<title>Günstige Videoüberwachung mit Zoneminder</title>
		<link>https://www.piprojects.net/guenstige-videoueberwachung-mit-zoneminder/</link>
					<comments>https://www.piprojects.net/guenstige-videoueberwachung-mit-zoneminder/#comments</comments>
		
		<dc:creator><![CDATA[Stefan]]></dc:creator>
		<pubDate>Fri, 06 May 2016 14:25:42 +0000</pubDate>
				<category><![CDATA[HowTo's]]></category>
		<category><![CDATA[Linux]]></category>
		<guid isPermaLink="false">https://piprojects.net/?p=767</guid>

					<description><![CDATA[ZoneMinder Was ist ZoneMinder? ZoneMinder ist eine Software zur Kamera Steuerung bzw Überwachung. Mit ZoneMinder lassen sich Aufnahmen von diversen Videoquellen erstellen. Installations Vorbereitung Es wurde ein Ubuntu 16.04 als System installiert ohne Desktop, als Server. Mit Tasksel wurde die LAMP Umgebung installiert. Als erstes wurde die MySQL.cnf angepasst: nano /etc/mysql/mysql.conf.d/mysqld.cnf In [mysqld] wurde der [&#8230;]]]></description>
										<content:encoded><![CDATA[<h1>ZoneMinder</h1>
<p>Was ist ZoneMinder? ZoneMinder ist eine Software zur Kamera Steuerung bzw Überwachung.<br />
Mit ZoneMinder lassen sich Aufnahmen von diversen Videoquellen erstellen.</p>
<h2>Installations Vorbereitung</h2>
<p>Es wurde ein Ubuntu 16.04 als System installiert ohne Desktop, als Server.<br />
Mit Tasksel wurde die LAMP Umgebung installiert.<br />
Als erstes wurde die MySQL.cnf angepasst:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="shell">nano /etc/mysql/mysql.conf.d/mysqld.cnf</pre>
<p>In [mysqld] wurde der Eintrag</p>
<pre class="EnlighterJSRAW" data-enlighter-language="shell">sql_mode = NO_ENGINE_SUBSTITUTION</pre>
<p>hinzugefügt.<br />
Mit</p>
<pre class="EnlighterJSRAW" data-enlighter-language="shell">mysql_secure_installation</pre>
<p>wurde die MySQL Installation gesichert und Zugriff von Ausserhalb unterbunden.</p>
<h2>Installation ZoneMinder</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="shell">apt-get install zoneminder php-gd</pre>
<p>ZoneMinder mit den entsprechenden PHP Grafikbibliotheken installieren<br />
Die SQL Datei muss angepasst werden da dort ein Passwort für den admin mit angelegt wird , dieses aber nicht der Secure Richtlinie entspricht.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="shell">nano /usr/share/zoneminder/db/zm_create.sql</pre>
<p>Die Datenbank für ZoneMinder anlegen</p>
<pre class="EnlighterJSRAW" data-enlighter-language="shell">mysql -uroot -p &lt; /usr/share/zoneminder/db/zm_create.sql
mysql -uroot -p -e "grant all on zm.* to 'zmuser'@localhost identified by 'meinsuperpasswort';</pre>
<p>Da das Passwort auch nicht default ist wie von ZoneMinder erwartet muss auch die zm.cfg angepasst werden</p>
<pre class="EnlighterJSRAW" data-enlighter-language="shell">nano /etc/zm/zm.cfg
mysqladmin -uroot -p reload</pre>
<p>Die Recht müssen auf die zm.cfg gesetzt werden</p>
<pre class="EnlighterJSRAW" data-enlighter-language="shell">chmod 740 /etc/zm/zm.conf
chown root:www-data /etc/zm/zm.conf</pre>
<p>Den &#8222;Benutzer&#8220; www-data in die Gruppe video aufnehmen</p>
<pre class="EnlighterJSRAW" data-enlighter-language="shell">adduser www-data video</pre>
<p>Es müssen noch einige Apache Module aktiviert werden</p>
<pre class="EnlighterJSRAW" data-enlighter-language="shell">a2enmod cgi
a2enconf zoneminder
a2enmod rewrite</pre>
<p>Die Rechte auf den Zoneminder Ordner anpassen</p>
<pre class="EnlighterJSRAW" data-enlighter-language="shell">chown -R www-data:www-data /usr/share/zoneminder/</pre>
<p>API Rechte ändern für Zoneminder</p>
<pre class="EnlighterJSRAW" data-enlighter-language="shell">nano /etc/apache2/apache2.conf</pre>
<pre class="EnlighterJSRAW" data-enlighter-language="shell">&lt;Directory /usr/share&gt;
AllowOverride All
Require all granted
&lt;/Directory&gt;
&lt;Directory /var/www/&gt;
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
&lt;/Directory&gt;</pre>
<p>AllowOverride ist default auf none</p>
<p>Dienst aktivieren</p>
<pre class="EnlighterJSRAW" data-enlighter-language="shell">systemctl enable zoneminder
service zoneminder start</pre>
<p>Die Zeitzone muss in der php.ini konfiguriert werden:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="shell">nano /etc/php/7.0/apache2/php.ini
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Europe/Berlin</pre>
<p>Abschließend noch den apache neu startet</p>
<pre class="EnlighterJSRAW" data-enlighter-language="shell">service apache2 reload
</pre>
<h2>Webansicht</h2>
<p>Damit man per Web auch wirklich was sieht muss noch auf dem Server ein Plugin installiert werden</p>
<pre class="EnlighterJSRAW" data-enlighter-language="shell">cd /usr/src &amp;&amp; wget http://www.andywilcock.com/code/cambozola/cambozola-latest.tar.gz
tar -xzvf cambozola-latest.tar.gz
cp cambozola-0.936/dist/cambozola.jar /usr/share/zoneminder</pre>
<p>http://ip/zm<br />
Nun kann man die Kameras hinzufügen.</p>
<h2>Kameras hinzufügen</h2>
<p>Unsere Kameras arbeiten per rtsp Stream \<br />
Unter Allgemein muss dazu ffmpeg ausgewählt werden. \<br />
Bei Funktion kann man diverse Einstellungen auswählen , im Bild ist Monitor gewählt was eine reine Live Ansicht bietet.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="shell">rtsp://192.168.100.240:554/11/?tcp
rtsp://192.168.100.241:554/11/?tcp</pre>
<p><a href="https://i0.wp.com/piprojects.net/wp-content/uploads/2016/05/cam1.png?ssl=1"><img data-recalc-dims="1" fetchpriority="high" decoding="async" class="alignnone size-medium wp-image-768" src="https://i0.wp.com/piprojects.net/wp-content/uploads/2016/05/cam1-265x300.png?resize=265%2C300&#038;ssl=1" alt="cam1" width="265" height="300" /></a><br />
<a href="https://i0.wp.com/piprojects.net/wp-content/uploads/2016/05/cam2.png?ssl=1"><img data-recalc-dims="1" decoding="async" class="alignnone size-medium wp-image-769" src="https://i0.wp.com/piprojects.net/wp-content/uploads/2016/05/cam2-295x300.png?resize=295%2C300&#038;ssl=1" alt="cam2" width="295" height="300" /></a><br />
Um einen Zeitplan zu erstellen wann nur Monitor oder Aufnahme getätigt werden soll, muss man die Funktion aktivieren bzw deaktivieren für den jeweiligen Betriebszustand.<br />
Ich habe dazu Monitor auf an und Mocord auf disabled für den Status day und umgekehrt für night.<br />
Diesen Zustand kann man so speichern wenn man auf &#8222;In Betrieb&#8220; klickt und dort den ist Zustand unter einem neuen Namen speichert.<br />
<a href="https://i0.wp.com/piprojects.net/wp-content/uploads/2016/05/cam3.png?ssl=1"><img data-recalc-dims="1" decoding="async" class="alignnone size-medium wp-image-770" src="https://i0.wp.com/piprojects.net/wp-content/uploads/2016/05/cam3-300x71.png?resize=300%2C71&#038;ssl=1" alt="cam3" width="300" height="71" /></a></p>
<p>Da für beide Zustände nun Vorlagen vorhanden sind kann man diese über einen cronjob steuern.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="shell">crontab -e
0 7 * * 1-5 /usr/bin/zmpkg.pl day
0 18 * * 1-5 /usr/bin/zmpkg.pl night
* * * * 0,6 /usr/bin/zmpkg.pl night</pre>
<p>Diese Einstellung sagt aus das die Kameras ab Minute 0 Stunde 7 Tag 1-5(Mo-Fr) den Zustand day haben und das ganze ab 18 Uhr auf night geändert wird. Für Samstag und Sonntag ist die ganze Zeit die Aufnahme aktiv.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.piprojects.net/guenstige-videoueberwachung-mit-zoneminder/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">767</post-id>	</item>
		<item>
		<title>CentOS 7 auf dem Banana oder Raspberry 3</title>
		<link>https://www.piprojects.net/centos-7-auf-dem-banana-oder-raspberry-3/</link>
					<comments>https://www.piprojects.net/centos-7-auf-dem-banana-oder-raspberry-3/#respond</comments>
		
		<dc:creator><![CDATA[Stefan]]></dc:creator>
		<pubDate>Mon, 02 May 2016 05:18:49 +0000</pubDate>
				<category><![CDATA[HowTo's]]></category>
		<category><![CDATA[Linux]]></category>
		<guid isPermaLink="false">https://piprojects.net/?p=759</guid>

					<description><![CDATA[Ich habe es endlich geschafft mal wieder etwas mit dem Banana und auch dem Raspi3 zu spielen und habe dabei CentOS 7 gefunden. http://buildlogs.centos.org/centos/7/isos/armhfp/ Die Installation ist denkbar einfach. Image Laden und mit dd  oder WinImager auf die SD Karte schreiben. Das System starten und los geht es. Benutzer root Passwort centos Die Netzwerkkarte zieht [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Ich habe es endlich geschafft mal wieder etwas mit dem Banana und auch dem Raspi3 zu spielen und habe dabei CentOS 7 gefunden.</p>
<p>http://buildlogs.centos.org/centos/7/isos/armhfp/</p>
<p>Die Installation ist denkbar einfach. Image Laden und mit dd  oder WinImager auf die SD Karte schreiben.</p>
<p>Das System starten und los geht es. Benutzer root Passwort centos</p>
<p>Die Netzwerkkarte zieht sich auch per DHCP sofort eine Adresse und gut ist. Ein Problem ist mir aber am Banana sofort entgegen gekommen. SSH funktioniert nicht , was daran liegt das die Keys nicht neu generiert werden und einen 0 Wert haben. Somit muss man erst mal auf die Konsole direkt und dort mir rm -rf /etc/ssh/ssh*key alle löschen und anschließend wieder mit /bin/ssh-keygen -A neue erstellen lassen. Wenn das passiert ist funktioniert auch SSH und es kann gespielt werden.</p>
<p>Ich baue dann mal weiter an dem Image rum und teste was noch geht oder fehlt.</p>
<p>EDIT: Wem das englische Tastaturlayout nicht gefällt kann das mit : localectl set-keymap de-latin1 umstellen</p>
<p>Edit 2: nachdem ich mir einen PXE Server gebaut habe , kam irgendwann Speicher voll und mir fiel erst da auf das die root Partition nicht vergrößert wurde , also mein Script https://github.com/a1d3s/Scripts/blob/master/resize geladen und alles was 2 ist durch 3 ersetzt da mmcblk0p2 die Swap ist bei dem CentOS Image. Das Script mit chmod +x ausführbar gemacht und dann zwei mal ausgeführt und schon war die root entsprechend groß</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.piprojects.net/centos-7-auf-dem-banana-oder-raspberry-3/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">759</post-id>	</item>
		<item>
		<title>Linux und Spiele?</title>
		<link>https://www.piprojects.net/linux-und-spiele/</link>
		
		<dc:creator><![CDATA[Stefan]]></dc:creator>
		<pubDate>Tue, 04 Aug 2015 15:36:11 +0000</pubDate>
				<category><![CDATA[HowTo's]]></category>
		<category><![CDATA[Linux]]></category>
		<guid isPermaLink="false">http://piprojects.net/?p=712</guid>

					<description><![CDATA[Linux und Spiele? Geht nicht!? Geht doch! Ja ich habe heute etwas Zeit gehabt und dacht ich Spiele mal wieder eine kleine Runde. Ok und was spielt man ? Doom3 läuft ja super unter Linux, aber läuft auch mein anderer Liebling Civilisation? Ja tut es dank Steam. Was Steam und Linux? Ja , seitdem es [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Linux und Spiele? Geht nicht!? Geht doch!</p>
<p>Ja ich habe heute etwas Zeit gehabt und dacht ich Spiele mal wieder eine kleine Runde.<br />
Ok und was spielt man ? Doom3 läuft ja super unter Linux, aber läuft auch mein anderer Liebling Civilisation?</p>
<p>Ja tut es dank Steam. Was Steam und Linux? Ja , seitdem es die SteamBox gibt, gibt es auch eine Version direkt für Linux. Ich habe das unter Lubuntu getestet auf meinem Laptop.</p>
<p>Installation liegt recht simpel ab.</p>
<p>sudo apt-get install steam</p>
<p>Eigentlich fertig , nur noch schnell den Steam Client öffnen und fertig installieren lassen.<br />
Nach dem Login bot mir Steam auch sofort mein Civilisation V und Half-Life zum installieren an.</p>
<p>Bei Civilisation stieß ich dann auf ein Problem &#8230; Oh ja Linux und Spiele geht doch nicht war mein erster Gedanke. Nun denn Freund Google wird schon wissen was zu tun ist , immerhin habe ich ja sofort ein error.log gefunden und 5 Minuten später lief mein Spiel.<br />
Problem ist/war die Grafikkarte die nicht die neueste ist. Lösung war dann aber recht schnell eingestellt.</p>
<p>Spiel markieren -&gt; rechtklick -&gt; properties -&gt; Set launch option</p>
<pre>MESA_GL_VERSION_OVERRIDE=3.1 MESA_GLSL_VERSION_OVERRIDE=140 %command%</pre>
<p>noch speichern und gut ist.</p>
<p>&nbsp;</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">712</post-id>	</item>
	</channel>
</rss>
