Download Raspbian: https://www.raspberrypi.org/downloads/raspbian/
Write image with dd to the SD-Card:
umount /dev/mmcblk0p1 sudo dd bs=10M if=2017-09-07-raspbian-stretch-lite.img of=/dev/mmcblk0
oder auch mit Fortschrittsanzeige:
sudo apt install pv sudo dd bs=10M if=RuneAudio_rpi2_rp3_0.4-beta_20160321_2GB.img | pv -s 2100M | sudo dd of=/dev/sdc
wobei pv die Imagegröße mitgegeben werden kann, und man somit eine Zeitschätzung erhält.
Möchte man wissen, was alles installiert wurde nach der frischen Installation von Raspbian, kann man sich das ausgeben lassen:
cat /var/log/apt/history.log | egrep '^(Start-Date:|Commandline:)' | grep -v aptdaemon | egrep '^Commandline:' | egrep 'install'
add this line to config.txt
enable_uart=1
As terminal minicom is a very good choice, since it sends each character instantly, so you have the feeling as running linux on the terminal-machine.
sudo minicom -s
erlaubt das diekte verändern der systemweiten standard einstellungen.
Baudrate: 115200 8N1 Steckverbinder: wie MKZ Standard:
First: create a file in boot
with this content:
country=AT update_config=1 ctrl_interface=/var/run/wpa_supplicant network={ ssid="Singervilla-iNet-2.4G" psk="myStrongPassword" }
Second: create a file ssh
in boot
.
Then insert the SD card into the Raspi and start to scan for the Raspberry's IP-Address with
nmap -T5 -sn 10.0.1.0-255
or with
arp -a
Then connect to it with e.g.
ssh pi@10.0.1.169
In der Datei /etc/dhcpcd.conf kann man eine statische IP festlegen:
# Example static IP configuration: interface eth0 static ip_address=10.0.0.115/24 #static ip6_address=fd51:42f8:caae:d92e::ff/64 static routers=10.0.0.1 static domain_name_servers=10.0.0.100 8.8.8.8
for raspbian lite we have to make a file 'ssh' on the boot partition. https://raspberrypi.stackexchange.com/questions/40689/cannot-connect-to-raspbian-jessie-lite-but-to-raspbian-jessie#58455
EDIT: scheint seit Beginn 2018 nicht mehr so zu funktionieren. Alternativ kann man sich per UART verbinden und mit raspi-config
ssh einschalten.
EDIT2: geht doch. mit kopieren der datei config.txt
und umbenennen auf ssh
1)
To execute a programm on each boot automatically, here is a good tutorial: http://www.diegoacuna.me/how-to-run-a-script-as-a-service-in-raspberry-pi-raspbian-jessie/
cd /lib/systemd/system/ sudo nano hello.service
[Unit] Description=Hello World After=multi-user.target [Service] Type=simple WorkingDirectory=/home/karl/hello-service ExecStart=/usr/bin/python /home/pi/hello_world.py Restart=on-abort [Install] WantedBy=multi-user.target
sudo chmod 644 /lib/systemd/system/hello.service chmod +x /home/pi/hello_world.py sudo systemctl daemon-reload sudo systemctl enable hello.service sudo systemctl start hello.service
journalctl -u hello
Ein Image wird ganz einfach per dd erstellt. Vorher sollte es aber z.B. mit gparted auf die notwendige Größe verkleinert werden. Dann Image erstellen und mit truncate
wieder verkleinern:
truncate --size=2782920704 image.img
Dabei wird die Größe mittels
fdisk -l image.img
berechnet: 512 Bytes/Sector * (5435391+1) Sectors = 2782920704 Bytes
Wurde das Image bereits erstellt und hat z.B. 16GB, dann kann es recht einfach so verkleinert werden:
sudo modprobe loop sudo losetup -f sudo losetup /dev/loop0 myimage.img sudo partprobe /dev/loop0 sudo gparted /dev/loop0 sudo losetup -d /dev/loop0
Quelle: https://softwarebakery.com/shrinking-images-on-linux
A very great library for hardware access of the IO-pins:
http://abyz.me.uk/rpi/pigpio/index.html
The architecture can be detected with this symbol:
#ifdef __arm__ // do some raspberry specific stuff #endif
Using the POSIX library helps a lot on various tasks timing, interprocess communication, shared memory, threads and processes and many more.
For simple projects these can be very handy:
sleep()
and usleep()
poll()
from <poll.h>
is great for reading/writing (device-) files with timeout. For an overview please have a look at Wikipedia: C POSIX Library
A comprehensive guide (700 pages) can be downloaded here: Posix.4 Programmers Guide
This makefile compiles all C++ files within one folder. It does a complete recompile on each run.
all: g++ -o myprogram -Wall -pthread -lpigpio -lrt -I. *.cpp clean: rm myprogram
Auf dem Raspberry Pi, mit Raspberry OS vom 11. Jan. 2021 2):
sudo apt update sudo apt upgrade sudo apt install git bc bison flex libssl-dev make git clone --depth=1 --branch rpi-4.19.y-rt https://github.com/raspberrypi/linux
Configure Kernel 3):
sudo apt install libncurses5-dev cd linux make menuconfig
Hierbei wurde jedoch weiters nichts konfiguriert.
make bcm2711_defconfig make -j4 zImage make -j4 modules make -j4 dtbs
Dauert etwa 1h15min.
sudo make -j4 modules_install sudo make -j4 dtbs_install sudo cp arch/arm/boot/dts/*.dtb /boot/ sudo cp arch/arm/boot/dts/overlays/*.dtb* /boot/overlays/ sudo cp arch/arm/boot/dts/overlays/README /boot/overlays/ sudo cp arch/arm/boot/zImage /boot/$KERNEL-rt.img