Ich beschreibe hier mein Vorgehen auf Grund meiner persoenlichen Erfahrung. Nachahmung ohne Garantie auf Funktion und Haftung.
- http://www.banana-pi.org/downloadall.html
- https://wiki.archlinux.org/index.php/Banana_Pi#Compile_and_copy_U-Boot_bootloader
- 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
# 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
- SSD in den BananaPi stecken
- HDMI, Netzwerk, Tastatur anschliessen
- USB-Stromversorgung verbinden
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
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
sudo pacman --needed -S python python-pip
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
- how give user rights to gpio