Skip to content

Latest commit

 

History

History
218 lines (185 loc) · 6.48 KB

installation_german.md

File metadata and controls

218 lines (185 loc) · 6.48 KB

Installation Archlinux

Keine Haftung

Ich beschreibe hier mein Vorgehen auf Grund meiner persoenlichen Erfahrung. Nachahmung ohne Garantie auf Funktion und Haftung.

Allgemeine Quellen

Voraussetzungen:

  • PC mit Archlinux
  • SD-Karten-Leser
  • SD-Karte ab 4GB
  • Zugang zum Internet
  • Monitor mit HDMI-Eingang
  • Netzwerkanschluss via Kabel zum Internet mit dhcp und Verbindung zum PC
  • USB-Tastatur für Ersteinrichtung

Vorbereitungen auf dem PC (Terminal-Fenster/Console)

# Vorbereiten des Systems
sudo pacman --needed -S uboot-tools wget swig arm-none-eabi-gcc dtc git
# Finden der SD-Karte
# meisst /dev/sd... 
# oder 
# /dev/mmcblk... !!!dann im folgenden die angehaengten 1/2 durch p1/p2 austauschen!!!
sudo fdisk -l
export target_disc=/dev/...

# Löschen der SD-Karte
sudo dd if=/dev/zero of=${target_disc} bs=1M count=8

# Partitionieren der SD-Karte
sudo parted -s ${target_disc} mklabel msdos
sudo parted -a optimal -- ${target_disc} mkpart primary 2048s 150M
sudo parted -a optimal -- ${target_disc} mkpart primary 150M 100%

# Formatieren der Partitionen
sudo mkfs.ext4 -O ^metadata_csum,^64bit ${target_disc}1
sudo mkfs.ext4 -O ^metadata_csum,^64bit ${target_disc}2
export target_uuid1=$(sudo blkid ${target_disc}1 | awk '{print $2}')
export target_uuid2=$(sudo blkid ${target_disc}2 | awk '{print $2}')
export target_partuuid=$(sudo blkid ${target_disc}2 | awk '{print $4}')

# Installieren der Images
mkdir -p BananaPi
cd BananaPi
mkdir -p root
mkdir -p boot
sudo mount ${target_disc}1 boot
sudo mount ${target_disc}2 root
wget http://archlinuxarm.org/os/ArchLinuxARM-armv7-latest.tar.gz
sudo bsdtar -xpf ArchLinuxARM-armv7-latest.tar.gz -C root
sudo mv root/boot/* boot/.
echo "${target_uuid2}       /               ext4            rw,relatime     0 1" | sudo tee -a root/etc/fstab
echo "${target_uuid1}       /boot           ext4            rw,relatime     0 2" | sudo tee -a root/etc/fstab

# Bootsystem installieren
cat <<EOF > boot.cmd.sd-card
part uuid \${devtype} \${devnum}:\${bootpart} uuid
setenv bootargs console=\${console} root=${target_partuuid} rw rootwait

if load \${devtype} \${devnum}:\${bootpart} \${kernel_addr_r} zImage; then
  if load \${devtype} \${devnum}:\${bootpart} \${fdt_addr_r} dtbs/\${fdtfile}; then
    if load \${devtype} \${devnum}:\${bootpart} \${ramdisk_addr_r} initramfs-linux.img; then
      bootz \${kernel_addr_r} \${ramdisk_addr_r}:\${filesize} \${fdt_addr_r};
    else
      bootz \${kernel_addr_r} - \${fdt_addr_r};
    fi;
  fi;
fi

if load \${devtype} \${devnum}:\${bootpart} 0x48000000 uImage; then
  if load \${devtype} \${devnum}:\${bootpart} 0x43000000 script.bin; then
    setenv bootm_boot_mode sec;
    bootm 0x48000000;
  fi;
fi
EOF

sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n "BananPI boot script" -d boot.cmd.sd-card boot/boot.scr
sudo umount boot
sudo umount root

# uboot installieren
git clone git://git.denx.de/u-boot.git
cd u-boot
git checkout tags/v2019.04
make -j4 ARCH=arm CROSS_COMPILE=arm-none-eabi- Bananapi_defconfig
make -j4 ARCH=arm CROSS_COMPILE=arm-none-eabi-
sudo dd if=u-boot-sunxi-with-spl.bin of=${target_disc} bs=1024 seek=8 && sync

Booten des BananaPi

  • SSD in den BananaPi stecken
  • HDMI, Netzwerk, Tastatur anschliessen
  • USB-Stromversorgung verbinden

Nach dem Booten

Mit user root Passwort root einloggen.

Danach folgende Befehle auf der Console ausführen:

loadkeys de-latin1
passwd root
pacman-key --init
pacman-key --populate archlinuxarm
pacman -ySu sudo uboot-tools
useradd -m -g users -G wheel -s /bin/bash $username$
passwd $username$
userdel alarm
systemctl enable sshd.service
# ipadresse fuer eth0 merken
ip a
reboot

Danach über ssh einloggen

ssh $user_name$@$ipadresse$
sudo su
loadkeys de-latin1
echo "de_DE.UTF-8 UTF-8" >> /etc/locale.gen
echo "de_DE ISO-8859-1" >> /etc/locale.gen
echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
echo "en_US ISO-8859-1" >> /etc/locale.gen
locale-gen
echo "LANG=de_DE.UTF-8" >> /etc/locale.conf
echo "LANGUAGE=de_DE" >> /etc/locale.conf
echo "LC_ALL=C" >> /etc/locale.conf
echo "KEYMAP=de-latin1" >> /etc/vconsole.conf
echo "%wheel ALL=(ALL) ALL" >> /etc/sudoers
exit
reboot

Festplatte/SSD als rootfs

SATA-Device über !passendes! Adapterkabel anschliesen. Eventuell ist auch ein staerkeres Netzteil notwendig.

Folgendes Vorgehen über die (Remote)-Console

# Anzeigen der gefundenen Devices
sudo fdisk -l
# /dev/mmcblk0... ist normalerweise die SD-Karte
export target_disc=/dev/sda

# Vorbereiten des SATA-Devices
sudo parted -s ${target_disc} mklabel msdos
sudo parted -a optimal -- ${target_disc} mkpart primary 2048s 100%
sudo dd if=/dev/mmcblk0p2 of=${target_disc}1
sudo e2fsck -f ${target_disc}1
sudo resize2fs ${target_disc}1
export target_partuuid=$(sudo blkid ${target_disc}1 | awk '{print $4}')

# Bootsystem installieren
cat <<EOF > boot.cmd.sata
part uuid \${devtype} \${devnum}:\${bootpart} uuid
setenv bootargs console=\${console} root=${target_partuuid} rw rootwait

if load \${devtype} \${devnum}:\${bootpart} \${kernel_addr_r} zImage; then
  if load \${devtype} \${devnum}:\${bootpart} \${fdt_addr_r} dtbs/\${fdtfile}; then
    if load \${devtype} \${devnum}:\${bootpart} \${ramdisk_addr_r} initramfs-linux.img; then
      bootz \${kernel_addr_r} \${ramdisk_addr_r}:\${filesize} \${fdt_addr_r};
    else
      bootz \${kernel_addr_r} - \${fdt_addr_r};
    fi;
  fi;
fi

if load \${devtype} \${devnum}:\${bootpart} 0x48000000 uImage; then
  if load \${devtype} \${devnum}:\${bootpart} 0x43000000 script.bin; then
    setenv bootm_boot_mode sec;
    bootm 0x48000000;
  fi;
fi
EOF

sudo mv /boot/boot.scr /boot/boot.scr.sd-card
sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n "BananPI boot script" -d boot.cmd.sata /boot/boot.scr
reboot

Installation von python

sudo pacman --needed -S python python-pip

Installation GPIO-Bibliotheken

Quelle: https://github.com/LeMaker/RPi.GPIO_BP

sudo pacman --needed -S gpio-utils python-periphery wiringx-git git base-devel
git clone https://github.com/LeMaker/RPi.GPIO_BP -b bananapi
python setup.py install
sudo python setup.py install

# test: changes #17 between high and low every second
cat <<EOF > test.py
import RPi.GPIO as GPIO
from time import sleep
GPIO.setmode(GPIO.BCM)
GPIO.setup(17, GPIO.OUT)
while True:
    GPIO.output(17, GPIO.HIGH)
    sleep(1)
    GPIO.output(17, GPIO.LOW)
    sleep(1)
EOF

sudo python test.py

ToDo

  • how give user rights to gpio