推荐网站
http://maker.quwj.com/
http://shumeipai.nxez.com/
基础
烧写系统
win烧写工具:win32diskimager或Roadkil DiskImage或USBImageTool_v1.66汉化版
Mac/Linux:
法一:安装Etcher软件,一键烧写
法二:
# 要独占整个盘,先取消挂载
# Mac(也可以用umount)
diskutil list
sudo diskutil unmountDisk /dev/SD卡的标号 #如disk2
# Linux
df -h
umount /dev/SD卡的标号 #如disk2
cd /Users/Leo/Downloads/2018-03-13-raspbian-stretch
sudo dd bs=1m if=2018-03-13-raspbian-stretch.img of=/dev/rdisk2 #if of反过来可以提取镜像
用USB转串口线来显示
USB转串口线连接好树莓派的GND、VCC、TXD、RXD;就像这样。
# 使用 screen 命令来连接RPI
# Linux 上 #
screen /dev/tty.USB0 115200
# OS X 上
screen /dev/cu.usbserial 115200
# Windows 请使用 Putty.exe
无显示器配置网络
如果已经连上了网络,并且知道ip,可以用vnc,但这里是还没连接上网络,而且Zero比较特殊,没有现成网口。
Zero或Zero W配置
1, 开启ssh
#添加一个文件名为ssh到boot目录下,内容为空。
touch /boot/ssh
(有显示器可以sudo raspi-config 选择:Interfacing Options 再选:ssh,打开)
2, 开机USB网卡
#烧写完系统后,编辑/boot/config.txt文件,在最后一行下,另起一行添加:
dtoverlay=dwc2
#打开/boot/cmdline.txt文件。找到rootwait,在其之后空一格添加:
modules-load=dwc2,g_ether
3, 配置wifi
这里wpa.conf配置文件的位置可以自己修改, 一般情况下是创建在sd卡的/etc/目录下,把其位置设置到sd卡的boot/目录下主要是为了能够在windows下直接修改配置文件,以后方便移植。
# 原配置文件:/etc/wpa_supplicant/wpa_supplicant.conf
vim /boot/wpa.conf
network={
ssid="leo-home"
key_mgmt=WPA-PSK
psk="你的密码"
priority=5
}
ssid表示WiFi的SSID号,
key_mgmt表示加密类型,
key_mgmt=NONE表示没有密码或者WEP,
key_mgmt=WPA-PSK表示WPA/WPA2加密,
psk表示密码,没有密码就不用写,
priority表示优先级,大的优先连接。
# 修改网络配置文件
vim /etc/network/interfaces
auto lo
iface lo inet loopback
iface eth0 inet manual
#usb网卡部分
allow-hotplug usb0
auto usb0
iface usb0 inet static
address 192.168.99.5
netmask 255.255.255.0
gateway 192.168.99.1
dns-nameservers 8.8.8.8
#或者DHCP
allow-hotplug usb0
auto usb0
iface usb0 inet dhcp
#wifi部分
allow-hotplug wlan0
auto wlan0
iface wlan0 inet dhcp
wpa-conf /boot/wpa.conf
4, 然后系统卡装回树莓派开机
ssh pi@raspberrypi.local
如果用windows,需要安装两个软件,远程登录软件PuTTy和解析raspberrypi.local的ip地址的Bonjour
参考:
http://shumeipai.nxez.com/2017/06/22/raspberry-pi-no-keyboard-network-boot-configuration.html
http://www.cnblogs.com/sjqlwy/p/zero_otg.html
https://blog.csdn.net/px_528/article/details/71725251
屏幕设置
驱动下载
**注意:**常用屏幕有LCD、OLDE、TFT ;常用的显示技术有:VA、IPS、TN、TFT(TFT就是指一类,即是指屏幕,也是指一种显示技术)
常用屏幕,没有列出的可以去到首页去找。
♦ 2.8inch RPi LCD (A)
♦ 3.2inch RPi LCD (B)
♦ 3.5inch RPi LCD (A)
♦ 3.5inch RPi LCD (B)
♦ 3.5inch HDMI LCD
♦ 4inch HDMI LCD
♦ 4inch RPi LCD (A)
♦ 4.3inch HDMI LCD
♦ 5inch HDMI LCD
♦ 5inch HDMI LCD (B)
♦ 7inch HDMI LCD
♦ 7inch HDMI LCD (B)
♦ 7inch HDMI LCD (C)
♦ 10.1inch HDMI LCD
♦ 10.1inch HDMI LCD (H)
♦ 10.1inch HDMI LCD (B)
参考:https://blog.csdn.net/kxwinxp/article/details/78447730
LCD屏幕
屏幕驱动(通用,适合多尺寸)
不需要外接电源,直接接GPIO口,需安装屏幕驱动;
# 使用LCD屏幕显示
wget http://www.waveshare.net/w/upload/3/34/LCD-show-180331.tar.gz
tar zxvf LCD-show-180331.tar.gz
cd LCD-show/
./LCD35B-show #安装驱动,安装完会自动重启树莓派
./LCD5-show #5寸屏幕,有多个尺寸的可执行文件
这里使用3.5寸非IPS屏,所以是LCD35B-show
# 切换到HDMI显示,切换到LCD执行上面的命令
cd LCD-show/
./LCD-hdmi
# 设置屏幕方向
# 旋转0度:
cd LCD-show/
./LCD35B-show 0
# 旋转90度:
cd LCD-show/
./LCD35B-show 90
# 旋转180度:
cd LCD-show/
./LCD35B-show 180
# 旋转270度:
cd LCD-show/
./LCD35B-show 270
**注意:**执行apt-get upgrade
会导致LCD无法正常工作。此时需要编辑SD卡中的 config.txt 文件,并删除这一句:dtoverlay=ads7846。
屏幕校准
wget http://www.waveshare.net/w/upload/3/37/Xinput-calibrator_0.7.5-1_armhf.zip
unzip Xinput-calibrator_0.7.5-1_armhf.zip
cd xinput-calibrator_0.7.5-1_armhf/
dpkg -i -B xinput-calibrator_0.7.5-1_armhf.deb
1,点击任务栏的Menu键,选择Preferences -> Calibrate Touchscreen。
2,按显示提示进行触摸校准。此过程可能需要重启以生效。
3,如果要保存这些触摸值,将触摸参数(屏幕输出数据)保存至/etc/X11/xorg.conf.d/99-calibration.conf,即可(如果已存在则不需要新建,直接修改)
HDMI屏幕
HDMI屏幕分辨率一般高一点,需外接电源,接HDMI输出,直接改配置文件就行,触屏需要接GPIO并安装驱动(方法参考上面LCD驱动安装方法)。
vim /boot/config.txt
# 修改以下三项,保存重启
hdmi_drive=2 #1为DVI模式 (没声音),2为HDMI模式 (如果支持并已启用将有声音输出)
hdmi_group=2 #1为CEA规定的电视规格分辨率 2为计算机显示器使用的分辨率
hdmi_mode=14 #选择屏幕分辨率和刷新频率 14为:848x480 60Hz
# 以下是强制输出指定分辨率
disable_overscan=1
framebuffer_width=1280
framebuffer_height=1024
hdmi_ignore_edid=0xa5000080 #不检测HDMI设备的任何信息,按照指定的分辨率输出。
参考:
https://blog.csdn.net/kxwinxp/article/details/78447730
http://www.waveshare.net/wiki/3.5inch_RPi_LCD_%28B%29
屏幕参数设置参考
CEA分辨率
以下是CEA规定的电视规格分辨率。这些分辨率的hdmi_group=1。
hdmi_mode=1 VGA
hdmi_mode=2 480p 60Hz
hdmi_mode=3 480p 60Hz H
hdmi_mode=4 720p 60Hz
hdmi_mode=5 1080i 60Hz
hdmi_mode=6 480i 60Hz
hdmi_mode=7 480i 60Hz H
hdmi_mode=8 240p 60Hz
hdmi_mode=9 240p 60Hz H
hdmi_mode=10 480i 60Hz 4x
hdmi_mode=11 480i 60Hz 4x H
hdmi_mode=12 240p 60Hz 4x
hdmi_mode=13 240p 60Hz 4x H
hdmi_mode=14 480p 60Hz 2x
hdmi_mode=15 480p 60Hz 2x H
hdmi_mode=16 1080p 60Hz
hdmi_mode=17 576p 50Hz
hdmi_mode=18 576p 50Hz H
hdmi_mode=19 720p 50Hz
hdmi_mode=20 1080i 50Hz
hdmi_mode=21 576i 50Hz
hdmi_mode=22 576i 50Hz H
hdmi_mode=23 288p 50Hz
hdmi_mode=24 288p 50Hz H
hdmi_mode=25 576i 50Hz 4x
hdmi_mode=26 576i 50Hz 4x H
hdmi_mode=27 288p 50Hz 4x
hdmi_mode=28 288p 50Hz 4x H
hdmi_mode=29 576p 50Hz 2x
hdmi_mode=30 576p 50Hz 2x H
hdmi_mode=31 1080p 50Hz
hdmi_mode=32 1080p 24Hz
hdmi_mode=33 1080p 25Hz
hdmi_mode=34 1080p 30Hz
hdmi_mode=35 480p 60Hz 4x
hdmi_mode=36 480p 60Hz 4xH
hdmi_mode=37 576p 50Hz 4x
hdmi_mode=38 576p 50Hz 4x H
hdmi_mode=39 1080i 50Hz reduced blanking
hdmi_mode=40 1080i 100Hz
hdmi_mode=41 720p 100Hz
hdmi_mode=42 576p 100Hz
hdmi_mode=43 576p 100Hz H
hdmi_mode=44 576i 100Hz
hdmi_mode=45 576i 100Hz H
hdmi_mode=46 1080i 120Hz
hdmi_mode=47 720p 120Hz
hdmi_mode=48 480p 120Hz
hdmi_mode=49 480p 120Hz H
hdmi_mode=50 480i 120Hz
hdmi_mode=51 480i 120Hz H
hdmi_mode=52 576p 200Hz
hdmi_mode=53 576p 200Hz H
hdmi_mode=54 576i 200Hz
hdmi_mode=55 576i 200Hz H
hdmi_mode=56 480p 240Hz
hdmi_mode=57 480p 240Hz H
hdmi_mode=58 480i 240Hz
hdmi_mode=59 480i 240Hz H
H means 16:9 variant (of a normally 4:3 mode).
2x means pixel doubled (i.e. higher clock rate, with each pixel repeated twice)
4x means pixel quadrupled (i.e. higher clock rate, with each pixel repeated four times)
DMT分辨率
以下是计算机显示器使用的分辨率。这些分辨率的hdmi_group=2。
hdmi_mode=1 640x350 85Hz
hdmi_mode=2 640x400 85Hz
hdmi_mode=3 720x400 85Hz
hdmi_mode=4 640x480 60Hz
hdmi_mode=5 640x480 72Hz
hdmi_mode=6 640x480 75Hz
hdmi_mode=7 640x480 85Hz
hdmi_mode=8 800x600 56Hz
hdmi_mode=9 800x600 60Hz
hdmi_mode=10 800x600 72Hz
hdmi_mode=11 800x600 75Hz
hdmi_mode=12 800x600 85Hz
hdmi_mode=13 800x600 120Hz
hdmi_mode=14 848x480 60Hz
hdmi_mode=15 1024x768 43Hz DO NOT USE
hdmi_mode=16 1024x768 60Hz
hdmi_mode=17 1024x768 70Hz
hdmi_mode=18 1024x768 75Hz
hdmi_mode=19 1024x768 85Hz
hdmi_mode=20 1024x768 120Hz
hdmi_mode=21 1152x864 75Hz
hdmi_mode=22 1280x768 reduced blanking
hdmi_mode=23 1280x768 60Hz
hdmi_mode=24 1280x768 75Hz
hdmi_mode=25 1280x768 85Hz
hdmi_mode=26 1280x768 120Hz reduced blanking
hdmi_mode=27 1280x800 reduced blanking
hdmi_mode=28 1280x800 60Hz
hdmi_mode=29 1280x800 75Hz
hdmi_mode=30 1280x800 85Hz
hdmi_mode=31 1280x800 120Hz reduced blanking
hdmi_mode=32 1280x960 60Hz
hdmi_mode=33 1280x960 85Hz
hdmi_mode=34 1280x960 120Hz reduced blanking
hdmi_mode=35 1280x1024 60Hz
hdmi_mode=36 1280x1024 75Hz
hdmi_mode=37 1280x1024 85Hz
hdmi_mode=38 1280x1024 120Hz reduced blanking
hdmi_mode=39 1360x768 60Hz
hdmi_mode=40 1360x768 120Hz reduced blanking
hdmi_mode=41 1400x1050 reduced blanking
hdmi_mode=42 1400x1050 60Hz
hdmi_mode=43 1400x1050 75Hz
hdmi_mode=44 1400x1050 85Hz
hdmi_mode=45 1400x1050 120Hz reduced blanking
hdmi_mode=46 1440x900 reduced blanking
hdmi_mode=47 1440x900 60Hz
hdmi_mode=48 1440x900 75Hz
hdmi_mode=49 1440x900 85Hz
hdmi_mode=50 1440x900 120Hz reduced blanking
hdmi_mode=51 1600x1200 60Hz
hdmi_mode=52 1600x1200 65Hz
hdmi_mode=53 1600x1200 70Hz
hdmi_mode=54 1600x1200 75Hz
hdmi_mode=55 1600x1200 85Hz
hdmi_mode=56 1600x1200 120Hz reduced blanking
hdmi_mode=57 1680x1050 reduced blanking
hdmi_mode=58 1680x1050 60Hz
hdmi_mode=59 1680x1050 75Hz
hdmi_mode=60 1680x1050 85Hz
hdmi_mode=61 1680x1050 120Hz reduced blanking
hdmi_mode=62 1792x1344 60Hz
hdmi_mode=63 1792x1344 75Hz
hdmi_mode=64 1792x1344 120Hz reduced blanking
hdmi_mode=65 1856x1392 60Hz
hdmi_mode=66 1856x1392 75Hz
hdmi_mode=67 1856x1392 120Hz reduced blanking
hdmi_mode=68 1920x1200 reduced blanking
hdmi_mode=69 1920x1200 60Hz
hdmi_mode=70 1920x1200 75Hz
hdmi_mode=71 1920x1200 85Hz
hdmi_mode=72 1920x1200 120Hz reduced blanking
hdmi_mode=73 1920x1440 60Hz
hdmi_mode=74 1920x1440 75Hz
hdmi_mode=75 1920x1440 120Hz reduced blanking
hdmi_mode=76 2560x1600 reduced blanking
hdmi_mode=77 2560x1600 60Hz
hdmi_mode=78 2560x1600 75Hz
hdmi_mode=79 2560x1600 85Hz
hdmi_mode=80 2560x1600 120Hz reduced blanking
hdmi_mode=81 1366x768 60Hz
hdmi_mode=82 1080p 60Hz
hdmi_mode=83 1600x900 reduced blanking
hdmi_mode=84 2048x1152 reduced blanking
hdmi_mode=85 720p 60Hz
hdmi_mode=86 1366x768 reduced blanking
参考:
http://shumeipai.nxez.com/2013/08/31/custom-display-resolution-raspberry-pie.html
HDMI-VGA转换器黑屏的排障方案:http://shumeipai.nxez.com/2013/08/31/hdmi-vga-converter-black-screen-troubleshooting-program.html
VNC远程登录树莓派
配置此项的前提是已经连接上网络并且已经知道ip了(ip可以看路由或者arp -a)。
树莓派默认账户密码是:pi raspberry
新版树莓派
sudo raspi-config
选择:Interfacing Options
再选:VNC,打开
然后用树莓派的账户密码登录。
老版本
sudo apt-get install tightvncserver
vncpasswd #设置vnc密码,两次输入,第三次是配置文件密码,可以no
#开机启动脚本
注:少数玩家默认用户不是pi的请自行更改USER变量
vim /etc/init.d/tightvncserver
#!/bin/sh
### BEGIN INIT INFO
# Provides: tightvncserver
# Required-Start: $local_fs
# Required-Stop: $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start/stop tightvncserver
### END INIT INFO
# More details see:
# http://www.penguintutor.com/linux/tightvnc
### Customize this entry
# Set the USER variable to the name of the user to start tightvncserver under
# 用户名
export USER='pi'
### End customization required
eval cd ~$USER
case "$1" in
start)
# 启动命令行。此处自定义分辨率、控制台号码或其它参数。
su $USER -c '/usr/bin/tightvncserver -depth 16 -geometry 800x600 :1'
echo "Starting TightVNC server for $USER "
;;
stop)
# 终止命令行。此处控制台号码与启动一致。
su $USER -c '/usr/bin/tightvncserver -kill :1'
echo "Tightvncserver stopped"
;;
*)
echo "Usage: /etc/init.d/tightvncserver {start|stop}"
exit 1
;;
esac
exit 0
sudo chmod 755 /etc/init.d/tightvncserver
sudo update-rc.d tightvncserver defaults
# 启动
tightvncserver
参考:http://shumeipai.nxez.com/2013/09/04/login-rpi-with-vnc.html
命令行管理wifi
https://blog.csdn.net/xukai871105/article/details/38170513
键盘设置(欧、美键盘标准切换)
https://blog.csdn.net/xukai871105/article/details/38374197
参考:
http://shumeipai.nxez.com
树莓派配置文档 config.txt 说明2
树莓派配置文档 config.txt 说明2
http://conanwhf.github.io/2016/01/12/rpi-start/
设置系统语言
https://blog.csdn.net/TheBlackbeard/article/details/53488839
虚拟键盘
apt-get -y install ttf-wqy-zenhei #安装字体
apt-get install matchbox-keyboard
或
apt-get install Florence
# 然后重启,在附件里找Keyboard,如果没有,就在Application里面勾选该应用。
参考:https://blog.csdn.net/howiexue/article/details/78181871
任务栏
误删恢复
#(后面-pi为用户名 如果没有改过用户名就不管他) 删除配置文件
$ rm -rf ~/.config/lxpanel/LXDE-pi
#重启
$ sudo reboot
smb文件共享
# centos匿名共享参考:https://yelog.org/2017/07/03/CentOS7-anonymous-Samba/
apt-get samba samba-common-bin -y
vim /etc/samba/smb.conf
# 在最底部加上以下部分
# 设置的后面不能有字符,包括空格,= 后的任何字符都会作为参数传进去。
[Public]
#共享文件夹说明
comment = Public Storage
#共享文件夹目录
path = /home/pi/dev
read only = no
#创建文件的权限
create mask = 0777
# 创建文件夹的权限
directory mask = 0777
# guest无密码访问
guest ok = yes
# 可见
browseable = yes
# 重启服务
samba restart
chmod -R 777 /home/pi/dev
# 现在就可以访问了
密码访问参考:http://www.waveshare.net/study/portal.php?mod=view&aid=599
换源
vim /etc/apt/sources.list
# 注释掉原来的
deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
vim /etc/apt/sources.list.d/raspi.list
# 注释掉原来的
deb http://mirror.tuna.tsinghua.edu.cn/raspberrypi/ stretch main ui
deb-src http://mirror.tuna.tsinghua.edu.cn/raspberrypi/ stretch main ui
apt-get update
使用HTTPS可以有效避免国内运营商的缓存劫持,但需要事先安装apt-transport-https
系统备份还原、镜像制作
http://conanwhf.github.io/2016/08/25/rpi-cloneimg/
一个超好用的备份工具:https://github.com/billw2/rpi-clone
扩展python2必要环境
# python必要环境
apt-get install build-essential python-dev python-distlib python-setuptools python-pip python-wheel libzmq-dev libgdal-dev
# sklearn
apt-get install python-sklearn
# opencv
apt-get update
apt-get upgrade
apt-get install libopencv-dev
apt-get install python-opencv
# Tkinter
apt-get install tk tk-dev tcl tcl-dev
Miniconda、Anacodna(Python3版)
wget http://repo.continuum.io/miniconda/Miniconda3-latest-Linux-armv7l.sh
bash Miniconda3-latest-Linux-armv7l.sh
然后 Enter 看安装协议,然后输入 yes 同意并开始安装,
接下来会提示是否更改默认路径,其默认路径是 /root/miniconda3 ,
为了使用方便,将安装路径设置成用户目录之下,具体路径为 /home/pi/miniconda3(直接粘贴后回车)
最后提示是否加入环境变量,输入yes;会自动替换掉系统自带的python3(python2不受影响)
# 备份系统自带的python3和pip3
mv /usr/bin/python3{,.bak}
mv /usr/bin/pip3{,.bak}
然后执行链接pip3(系统自带的pip(pip2)不受影响)
ln -s /home/pi/miniconda3/bin/pip /usr/bin/pip3
# 换源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
# 更新
chown pi:pi -R /home/pi/miniconda3
conda update conda
完成!
卸载看conda --help
卸载不了可以直接删除文件,链接好系统原来的python3和pip3
参考:https://www.jianshu.com/p/24931aa48855
Pi Dashboard (Pi 仪表盘)
apt-get update
apt-get install nginx php7.0-fpm php7.0-cli php7.0-curl php7.0-gd php7.0-mcrypt php7.0-cgi
systemctl start nginx
systemctl start php7.0-fpm
# Nginx 的根目录在 /var/www/html
vim /etc/nginx/sites-available/default
将其中的如下内容
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
替换为
location / {
index index.html index.htm index.php default.html default.htm default.php;
}
location ~\.php$ {
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
#fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# 重启nginx
systemctl restart nginx
apt-get install git
cd /var/www/html
git clone https://github.com/spoonysonny/pi-dashboard.git
mv pi-dashboard/* .
rm -rf pi-dashboard
chown -R www-data .
# 打开浏览器访问:http://树莓派IP
参考:http://shumeipai.nxez.com/2018/04/25/install-pi-dashboard-with-nginx-php7-on-pi.html
树莓派LNMP环境
http://shumeipai.nxez.com/2013/08/25/install-and-config-lnmp.html
树莓派上 Docker 的安装和使用
http://shumeipai.nxez.com/2019/05/20/how-to-install-docker-on-your-raspberry-pi.html
参考资料:
http://www.nrjs.cn
http://www.52pi.net
树莓派各种外壳:https://elinux.org/RPi_Cases
评论区