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}