Installiamo Arch Linux su Raspberry Pi Zero W


Purtroppo il Raspberry Pi 3 che gestiva i pannelli solari e i consumi è morto (non vanno più nè wifi nè ethernet, quindi non riesco ad accederci), per questo ho deciso di acquistare un Raspberri Pi Zero W (il quale dovrebbe essere più che sufficiente per il lavoro che deve fare), con un Hub USB per collegarci tutte le periferiche.
Per chi non conoscesse Raspberry Pi vi rimando al sito ufficiale.

Backup/ripristino della nostra immagine (se avete installato altro)

Essendo un “esperimento” il mio, o comunque Raspbian era configurato a puntino e mi dispiaceva perderlo, ho provveduto a fare un backcup (riferimento ArchWiki)

# dd if=/dev/mmcblk0 conv=sync,noerror bs=64K | gzip -c > /cartella/dove/vogliamo/salvare/backup.img.gz
# fdisk -l /dev/mmcblk0 > /cartella/dove/vogliamo/salvare/backup_fdisk.info

Nota: voi mettete sempre il vostro nome del device

E per ripristinare:
# gunzip -c /cartella/dove/vogliamo/salvare/backup.img.gz | dd of=/dev/mmcblk0

Installazione Arch

Partizionamento SDCard

# fdisk /dev/mmcblk0

E qui premiamo:

  1. o, questo formatterà la sd
  2. p, per verificare che non ci siano più partizioni nella sd
  3. n per una nuova partizione, p perchè sia primaria, 1 perchè è la prima del disco, ENTER per confermare il primo settore, +100M per l’ultimo settore.
  4. t e poi c, per settare il tipo di partizione come W95 FAT32 (LBA).
  5. n per una nuova partizione, p perchè sia primaria, 2 perchè è la seconda del disco, ENTER per confermare il primo settore, ENTER per confermare l’ultimo settore.
  6. w scrivere le partizioni su disco e uscire
Montiamo le partizioni

# mkdir /mnt/pi
# mkdir /mnt/pi/boot
# mkdir /mnt/pi/root
# mkfs.vfat /dev/mmcblk0p1
# mount /dev/mmcblk0p1 /mnt/pi/boot/
# mkfs.ext4 /dev/mmcblk0p2
# mount /dev/mmcblk0p2 /mnt/pi/root/

Installiamo il sistema base

Questi comandi vanno dati da utente root, no sudo
# wget http://archlinuxarm.org/os/ArchLinuxARM-rpi-latest.tar.gz
# bsdtar -xpf ArchLinuxARM-rpi-latest.tar.gz -C /mnt/pi/root
# sync
# mv /mnt/pi/root/boot/* /mnt/pi/boot
# umount /mnt/pi/root/ /mnt/pi/boot

Configurazione Wifi

Non avendo l’adattatore Ethernet, dobbiamo fare in modo che il Pi Zero si colleghi direttamente alla nostra rete Wifi per poterci collegare in ssh, e per farlo utilizzeremo
QEMU chroot (questo poi ci permetterà di lavorare sulla SD dal nostro pc come fossimo sul Raspberry).
$ yaourt -S binfmt-support qemu-user-static
# systemctl enable binfmt-support
# systemctl start binfmt-support

Ora verifichiamo che il supporto agli eseguibili ARM sia attivo:
# update-binfmts --display qemu-arm
e se non lo è lo attiviamo con:
#update-binfmts --enable qemu-arm
Ora montiamo la sd:
# mount /dev/mmcblk0p2 /mnt/pi/root/

ed entriamo con
# pacman -S arch-install-scripts
# cp /usr/bin/qemu-arm-static /usr/bin/qemu-aarch64-static /mnt/pi/root/usr/bin/
# arch-chroot /mnt/pi/root/ /bin/bash

Ora siamo “entrati” nel sistema operativo del raspberry, da quì digitiamo:
# pacman-key --init
# pacman-key --populate archlinuxarm
# pacman -S wpa_supplicant dialog wpa_actiond
# cd /etc/netctl
# mv examples/wireless-wpa nome_rete

e modificate in base alla vostra rete con:
# nano nome_rete

Ora abilitiamo il profilo creato con wifi-menu (è memorizzato in /etc/netctl se non vi ricordate il nome) per il login automatico all’avvio
# netctl enable nome_rete
# systemctl enable netctl-auto@wl..(vostra intefaccia).service

Allego uno script che permette di ristabilire la connessione ogni volta che viene persa (utile se il vostro raspberry manda continuamente misure a un server):

#!/bin/bash
##################################################################
# NOTE! THIS IS A MODIFIED VERSION OF THE ORIGINAL PROGRAM
# WRITTEN BY KEVIN REED. TO GET THE ORIGINAL PROGRAM SEE
# THE URL BELOW:
#
# A Project of TNET Services, Inc
#
# Title: WiFi_Check
# Author: Kevin Reed (Dweeber)
# dweeber.dweebs@gmail.com
# Project: Raspberry Pi Stuff
#
# Copyright: Copyright (c) 2012 Kevin Reed
# https://github.com/dweeber/WiFi_Check
#
# Purpose:
#
# Script checks to see if WiFi has a network IP and if not
# restart WiFi
#
# Uses a lock file which prevents the script from running more
# than one at a time. If lockfile is old, it removes it
#
# Instructions:
#
# o Install where you want to run it from like /usr/local/bin
# o chmod 0755 /usr/local/bin/WiFi_Check
# o Add to crontab
#
# Run Every 5 mins - Seems like ever min is over kill unless
# this is a very common problem. If once a min change */5 to *
# once every 2 mins */5 to */2 ...
#
# */5 * * * * /usr/local/bin/WiFi_Check
#
##################################################################
# Settings
# Where and what you want to call the Lockfile
lockfile='/var/run/WiFi_Check.pid'
# Which Interface do you want to check/fix
wlan='wlan0'
# Which address do you want to ping to see if you can connect
pingip='192.168.1.1'
##################################################################
echo
echo "Starting WiFi check for $wlan"
date
echo

# Check to see if there is a lock file
if [ -e $lockfile ]; then
# A lockfile exists... Lets check to see if it is still valid
pid=`cat $lockfile`
if kill -0 &>1 > /dev/null $pid; then
# Still Valid... lets let it be...
#echo "Process still running, Lockfile valid"
exit 1
else
# Old Lockfile, Remove it
#echo "Old lockfile, Removing Lockfile"
rm $lockfile
fi
fi
# If we get here, set a lock file using our current PID#
#echo "Setting Lockfile"
echo $$ > $lockfile

# We can perform check
echo "Performing Network check for $wlan"
/bin/ping -c 2 -I $wlan $pingip > /dev/null 2> /dev/null
if [ $? -ge 1 ] ; then
echo "Network connection down! Attempting reconnection."
/sbin/ifdown $wlan
sleep 5
/sbin/ifup --force $wlan
else
echo "Network is Okay"
fi

# Check is complete, Remove Lock file and exit
#echo "process is complete, removing lockfile"
rm $lockfile
exit 0

##################################################################
# End of Script

Ora il nostro sistema è installato e gli utenti di default sono:

  1. alarm, password alarm
  2. root, password root

Vi rimando al questa guida per la configurazione generale (è identica agli altri Raspberry), mentre a questo progetto se volete usarlo per la domotica.

Questa voce è stata pubblicata in Arch Linux e contrassegnata con , , , , , , , . Contrassegna il permalink.

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...