Raspberry
来自Jack's Lab
目录 |
1 Overview
最大 TF 卡: https://elinux.org/RPi_SD_cards
2 Login
Username: pi Password: raspberry
3 Image
3.1 Raspberry PI 3B
- Raspbian-4.1
- raspberrypi-jessie-WAZIUP-demo.dmg.zip
- 2019-04-08-raspbian-stretch-lite.zip
3.2 Raspberry Model A/B
- raspberrypi-jessie-WAZIUP-demo.dmg.zip (HomeAssist)
3.3 Notes
- Write image into SD card
$ sudo dd bs=1m if=2019-04-08-raspbian-stretch-lite.img of=/dev/rdisk2 conv=sync
- Make SD card into a img file
$ dd if=/dev/mmc0 | gzip -9 > sd-all.img.gz $ gzip -dc /tmp/sd-all.img.gz | sudo dd of=/dev/mmc0
- Mount the img
sudo apt-get install dosfstools dump parted kpartx sudo losetup /dev/loop0 2019-04-08-raspbian-stretch-lite.img mkdir -p /mnt/a/boot/ mkdir -p /mnt/a/root/ sudo kpartx -av /dev/loop0 boot="/dev/mapper/loop0p6" root="/dev/mapper/loop0p7" sudo mount $boot /mnt/a/boot/ sudo mount $root /mnt/a/root/ sudo kpartx -d /dev/loop0 sudo losetup -d /dev/loop0
3.4 Backup the System into img
#!/bin/sh
sudo apt-get install -y dosfstools parted kpartx rsync
df=`df -P | grep /dev/root | awk '{print $3}'`
dr=`df -P | grep /dev/mmcblk0p1 | awk '{print $2}'`
df=`echo $df $dr |awk '{print int(($1+$2)*1.2)}'`
sudo dd if=/dev/zero of=raspberrypi.img bs=1K count=$df
sudo parted raspberrypi.img --script -- mklabel msdos
start=`sudo fdisk -l /dev/mmcblk0| awk 'NR==10 {print $2}'`
start=`echo $start's'`
end=`sudo fdisk -l /dev/mmcblk0| awk 'NR==10 {print $3}'`
end2=$[end+1]
end=`echo $end's'`
end2=`echo $end2's'`
sudo parted raspberrypi.img --script -- mkpart primary fat32 $start $end
sudo parted raspberrypi.img --script -- mkpart primary ext4 $end2 -1
loopdevice=`sudo losetup -f --show raspberrypi.img`
device=`sudo kpartx -va $loopdevice | sed -E 's/.*(loop[0-9])p.*/\1/g' | head -1`
device="/dev/mapper/${device}"
partBoot="${device}p1"
partRoot="${device}p2"
sudo mkfs.vfat $partBoot
sudo mkfs.ext4 $partRoot
sudo mount -t vfat $partBoot /media
sudo cp -rfp /boot/* /media/
sudo umount /media
sudo mount -t ext4 $partRoot /media/
cd /media
sudo rsync -aP --exclude="raspberrypi.img" --exclude=/media/* --exclude=/sys/* --exclude=/proc/* --exclude=/tmp/* / ./
# replace PARTUUID
opartuuidb=`blkid -o export /dev/mmcblk0p1 | grep PARTUUID`
opartuuidr=`blkid -o export /dev/mmcblk0p2 | grep PARTUUID`
npartuuidb=`blkid -o export ${device}p1 | grep PARTUUID`
npartuuidr=`blkid -o export ${device}p2 | grep PARTUUID`
echo "BOOT uuid old=$opartuuidb -> new=$npartuuidb"
echo "ROOT uuid old=$opartuuidr -> new=$npartuuidr"
sudo sed -i "s/$opartuuidr/$npartuuidr/g" $dst_boot_path/cmdline.txt
sudo sed -i "s/$opartuuidb/$npartuuidb/g" $dst_root_path/etc/fstab
sudo sed -i "s/$opartuuidr/$npartuuidr/g" $dst_root_path/etc/fstab
cd
sudo umount /media
sudo kpartx -d $loopdevice
sudo losetup -d $loopdevice
4 Pinout
4.1 Model A and B
4.2 Models A+, B+, PI 2 B, PI 3 B
5 Serial
5.1 Enable
/boot/cmdline.txt "console=serial0,115200" /boot/config.txt enable_uart=1
5.2 Disable
Remove "console=serial0,115200" from /boot/cmdline.txt
If you want to use the uart as IO device, add "enable_uart=1" into /boot/config.txt
Or you can do it by run "sudo raspi-config" , enter "Advanced Options" and then enter "Serial" ....
5.3 Connections
- RASP_TXD --- HEX_TX
- RASP_RXD --- HEX_RX
6 GPIO Control
- https://github.com/joan2937/pigpio
- raspi-gpio
- RAW: http://www.pieter-jan.com/node/15
7 Timezone
$ cat /etc/timezone Etc/UTC $ sudo echo "Asia/Shanghai" > /etc/timezone
add following into /etc/profile:
TZ=Asia/Shanghai export TZ
$ sudo reboot
8 Static IP
add following into /etc/dhcpcd.conf:
interface eth0 static ip_address=192.168.1.45/24 static routers=192.168.1.1 static domain_name_servers=192.168.1.1
9 ESP8266/ESP8089
Note that the CH_PD signal is connected to the ID_SD signal. This must be mapped as a GPIO (GPIO0) and switched to an output and driven low then switched to an input again before the driver is loaded in order to reset the module. This will be added in the near future in the driver.
https://github.com/al177/esp8089
https://hackaday.io/project/8678/instructions?page=1
10 WiFi access-point
$ sudo apt-get install hostapd dnsmasq
11 Bluetooth
$ sudo apt-get install bluetooth bluez $ sudo apt-get install python-bluez
12 2G/3G/4G
$ sudo apt-get install python-gammu gammu wvdial
13 GPS
$ sudo apt-get install gpsd gpsd-clients
14 Qemu
$ sudo apt install qemu qemu-system-arm $
15 Reference

