From 714f7327e24a2a707c7ce499de28354a9d61111b Mon Sep 17 00:00:00 2001 From: Thomas Klaehn Date: Sat, 20 Feb 2016 17:48:02 +0100 Subject: [PATCH 1/5] remove line numbering from bash listings --- config/sourcelst.tex | 1 - 1 file changed, 1 deletion(-) diff --git a/config/sourcelst.tex b/config/sourcelst.tex index f80253f..559a869 100644 --- a/config/sourcelst.tex +++ b/config/sourcelst.tex @@ -31,7 +31,6 @@ keywordstyle=\color{blue}\textbf {\lstset { language=bash, -numbers=left, tabsize=4, frame=single, basicstyle=\ttfamily\small, From 65075c2243b5830a7cb66344f936775683e6dd91 Mon Sep 17 00:00:00 2001 From: Thomas Klaehn Date: Sat, 20 Feb 2016 17:48:57 +0100 Subject: [PATCH 2/5] arch linux raspberry customization --- content.tex | 214 ++++++++++++++++++++++++++++++++++++++++++++++++++-- title.tex | 4 +- 2 files changed, 211 insertions(+), 7 deletions(-) diff --git a/content.tex b/content.tex index c5df21e..63ba0d7 100644 --- a/content.tex +++ b/content.tex @@ -1,5 +1,209 @@ -\section{testtest} -\subsection{testtesttest} -\subsubsection{testtesttesttest} -bla -bla +\section{Installation} +\subsection{SD card preparation} +\subsubsection{Partitions} +Format the SD card with two new partitions: +\lstsetbash +\begin{lstlisting} +fdisk /dev/mmcblk0 +\end{lstlisting} +\begin{enumerate} +\item Type \textbf{o} to erase all former partitions +\item Type \textbf{p} to list all existing partitions +\item Type \textbf{n}, then \textbf{p} to create the boot partition. Press +\textbf{RETURN} to accept the first sector, then \textbf{+100M} for the +last sector +\item Type \textbf{t}, then \textbf{c} to set the partition type to FAT32 +\item Type \textbf{n}, then \textbf{p} to create the root partition. Press +\textbf{RETURN} to accept the first sector, then \textbf{RETURN} for the +last sector +\item Type \textbf{w} to write the new partition table +\end{enumerate} + +\subsubsection{File systems} +Create the file systems for the new partitions: +\begin{lstlisting} +mkfs.vfat /dev/mmcblk0p1 +mkfs.ext4 /dev/mmcblk0p2 +\end{lstlisting} +Create mount points and mount the new partitions: +\begin{lstlisting} +mkdir boot +mkdir root +mount /dev/mmcblk0p1 boot +mount /dev/mmcblk0p2 root +\end{lstlisting} + +\subsubsection{Download and extract root file system} +\begin{lstlisting} +wget http://archlinuxarm.org/os/\ +ArchLinuxARM-rpi-2-latest.tar.gz +bsdtar -xpf ArchLinuxARM-rpi-2-latest.tar.gz -C root +sync +mv root/boot/* boot +\end{lstlisting} +Enable ssh root login: +\begin{lstlisting} +vim root/etc/ssh/sshd\_config +\end{lstlisting} +Find \texttt{\#PermitRootLogin yes} and uncommend it +\begin{lstlisting} +PermitRootLogin yes +\end{lstlisting} +Unmount both partitions +\begin{lstlisting} +umount boot root +\end{lstlisting} + +\section{Configuration} +\subsection{User management} +\subsubsection{Create new user} +\begin{lstlisting} +useradd -m -g users -G wheel -s /bin/bash tkl +\end{lstlisting} +\begin{tabular}{ l l } +\texttt{-m} & create user name home directory\\ +\texttt{-g} & initial login group\\ +\texttt{-G} & list of supplementary groups - comma separated\\ +\texttt{-s} & path and file name of default login shell\\ +\end{tabular}\\ +Set password for the new user: +\begin{lstlisting} +passwd tkl +\end{lstlisting} +Enable wheel group members as sudoers: +\begin{lstlisting} +EDITOR=vim visudo +\end{lstlisting} +Uncomment: +\begin{lstlisting} +%wheel ALL=(ALL) ALL +\end{lstlisting} + +\subsection{Aliasing} +\begin{lstlisting} +cd ~ +vi .bashrc +\end{lstlisting} +Add:\\ +\texttt{alias vi='vim'} + +\subsection{Customize vim} +Edit \texttt{.vimrc}: +\begin{lstlisting} +syntax on "Syntax highlightning +set number "Line numbering +\end{lstlisting} + +\subsection{Wifi} +Configure wifi network: +\begin{lstlisting} +wifi-menu +\end{lstlisting} +Enable wifi network permanent: +\begin{lstlisting} +netctl enable wlan0- +\end{lstlisting} +\subsubsection{Deactivate wifi device sleep mode} +\begin{lstlisting} +pacman -S iw +echo ACTION=="add", SUBSYSTEM=="net", KERNEL=="wlan*", \ +RUN+="/usr/bin/iw dev \%k set power\_save off\" \ +> etc/udev/rules.d/70-wifi-powersave.rules +\end{lstlisting} + +\subsection{Ssh key login} +\begin{itemize} +\item Create \texttt{.ssh/} folder in users home directory +\item Copy public key file (i.e. \texttt{id\_rsa.pub}) into \texttt{.ssh} +folder +\item Authorize public key: +\begin{lstlisting} +cat id_rsa.pub >> authorized_keys +\end{lstlisting} +\end{itemize} + +\subsection{Interfaces} +\subsubsection{I2C} +To enable i2c interface edit \texttt{/boot/config.txt}. \\ +Uncomment \texttt{\#device\_tree\_param=i2c\_arm=on}\\ +Load i2c modules while boot: +\begin{lstlisting} +/etc/modules-load.d/raspberry.conf + +i2c-dev +i2c-bcm2708 +\end{lstlisting} +Install package \texttt{i2c-tools} +Test i2c bus after reboot: +\begin{lstlisting} +i2cdetect -y 1 +\end{lstlisting} +Set permissions for i2c device access: +\begin{lstlisting} +/etc/udev/rules.d/99-i2c.rules + +KERNEL=="i2c-1", MODE="0777" +\end{lstlisting} + +\subsubsection{SPI} +To enable spi interface edit \texttt{/boot/config.txt}. \\ +Uncomment \texttt{\#device\_tree\_param=spi=on} + +\subsection{tools} +\begin{itemize} +\item \texttt{fakeroot} +\item \texttt{gcc} +\item \texttt{git} +\item \texttt{make} +\item \texttt{python2, python2-pip} +\item \texttt{wget} +\end{itemize} +\subsection{Hostname} +\begin{lstlisting} +echo "hostname" > /etc/hostname +\end{lstlisting} + +\section{Applications} +\subsection{I2C-OLED} +\subsubsection{Oled Test application} +Clone test application: +\begin{lstlisting} +git clone git@dabgit01.internal.novero.com:raspberry/\ +oledpi.git +\end{lstlisting} +\subsubsection{Install driver} +Clone oled driver: +\begin{lstlisting} +git clone https://github.com/rm-hull/ssd1306.git +\end{lstlisting} +Install it: +\begin{lstlisting} +python2 setup.py install +\end{lstlisting} +\subsubsection{Dependencies} +\begin{itemize} +\item \texttt{python-smbus/python2-smbus} (AUR) +\item \texttt{i2c-tool-git} (AUR) +\item \texttt{libjpeg-turbo} +\item \texttt{pillow} install using pip \texttt{(pip/pip2 install pillow)} +\end{itemize} + +\subsection{Weatherpi} +\subsubsection{Usb weatherstation test application} +Clone test application: +\begin{lstlisting} +git clone git@dabgit01.internal.novero.com:raspberry/\ +weatherpi.git +\end{lstlisting} + +\subsubsection{Dependencies} +\begin{itemize} +\item \texttt{python2-pyusb} (AUR) (edit \texttt{PKGBUILD} and add +\texttt{'armv7h'} to \texttt{arch}) +\item \texttt{libusb-compat} +\end{itemize} + +\subsection{MQTT Broker} +\begin{lstlisting} +https://aur.archlinux.org/cgit/aur.git/snapshot/mosquitto.tar.gz +\end{lstlisting} diff --git a/title.tex b/title.tex index eb17b99..85b7671 100644 --- a/title.tex +++ b/title.tex @@ -1,4 +1,4 @@ -\newcommand{\docname}{Measurement protocol} -\newcommand{\prjname}{moray} +\newcommand{\docname}{HowTo} +\newcommand{\prjname}{arch linux on raspberry pi} \newcommand{\docversion}{0.1} \newcommand{\docauthor}{Thomas Klaehn} From fc028858c445aa4ba147871a61bfa4f39e1e8b14 Mon Sep 17 00:00:00 2001 From: Thomas Klaehn Date: Sun, 20 Mar 2016 14:01:08 +0100 Subject: [PATCH 3/5] gpio interface section added --- content.tex | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/content.tex b/content.tex index 63ba0d7..9dfb6e8 100644 --- a/content.tex +++ b/content.tex @@ -149,12 +149,24 @@ KERNEL=="i2c-1", MODE="0777" To enable spi interface edit \texttt{/boot/config.txt}. \\ Uncomment \texttt{\#device\_tree\_param=spi=on} +\subsubsection{GPIO} +Create an udev rule to enable others than root accessing the gpio files: +\begin{lstlisting} +/etc/udev/rules.d/98-gpio.rules + +SUBSYSTEM=="gpio*", PROGRAM="/bin/sh -c 'chown -R root:gpio\ +/sys/class/gpio; chmod -R 0777 /sys/class/gpio; chown -R \ +root:gpio /sys/devices/virtual/gpio; chmod -R 0777 \ +/sys/devices/virtual/gpio'" +\end{lstlisting} + \subsection{tools} \begin{itemize} \item \texttt{fakeroot} \item \texttt{gcc} \item \texttt{git} \item \texttt{make} +\item \texttt{patch} \item \texttt{python2, python2-pip} \item \texttt{wget} \end{itemize} From 65d6e11a0643742b050ac085409a09b2a1f60fdf Mon Sep 17 00:00:00 2001 From: Thomas Klaehn Date: Sun, 20 Mar 2016 14:01:58 +0100 Subject: [PATCH 4/5] mosquitto as mqtt broker section added --- content.tex | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/content.tex b/content.tex index 9dfb6e8..ba1fda2 100644 --- a/content.tex +++ b/content.tex @@ -216,6 +216,22 @@ weatherpi.git \end{itemize} \subsection{MQTT Broker} +Install mosquitto (AUR)\\ +Create config file: \begin{lstlisting} -https://aur.archlinux.org/cgit/aur.git/snapshot/mosquitto.tar.gz +cp /etc/mosquitto.conf.example /etc/mosquitto.conf +\end{lstlisting} +Start mosquitto broker service: +\begin{lstlisting} +systemctl enable mosquitto.service +systemctl start mosquitto.service +\end{lstlisting} +\subsubsection{Test} +Subscribe to a topic: +\begin{lstlisting} +mosquitto_sub -t "topic/path" +\end{lstlisting} +Populate a message: +\begin{lstlisting} +mosquitto_pub -t "topic/path" -m "message payload" \end{lstlisting} From 38214bbe567406f040e43337cfaa1a2a6598b3f3 Mon Sep 17 00:00:00 2001 From: Thomas Klaehn Date: Mon, 11 Apr 2016 11:01:44 +0200 Subject: [PATCH 5/5] install paho_mqtt added --- content.tex | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/content.tex b/content.tex index ba1fda2..c639744 100644 --- a/content.tex +++ b/content.tex @@ -217,6 +217,10 @@ weatherpi.git \subsection{MQTT Broker} Install mosquitto (AUR)\\ +Install paho-mqtt client library:\\ +\begin{lstlisting} +pip2 install paho-mqtt +\end{lstlisting} Create config file: \begin{lstlisting} cp /etc/mosquitto.conf.example /etc/mosquitto.conf