1.树莓派烧写篇
目前烧写最新版本32位系统(2022-09-22发布的),默认移除了pi用户,没有用户就无法SSH登录(无屏幕),建议使用raspberry pi imager烧写工具,我习惯烧写之前先擦除emmc/SD卡。并且此工具烧写之前可以设置主机名,开启ssh,设置用户名和密码,配置wifi名和密码,设置国家和时区,设置完毕之后进行烧录。开机启动发现有线网可以连接,无线网不行。对一些加密(或者无广播、默认不可见)的wifi树莓派以上各种配置,我是无法链接的。根据wifi配置文件猜测因为对于WPS2加密的WiFi 需要将密码进行加密才能连接wifi,直接原来的密码是行不通的。
2.树莓派WIFI配置篇
网上的教程基本都是针对wpa的,进入路由器发现是用wpa2加密的,psk自动变成了密文,把 /etc/wpa_supplicant/wpa_supplicant.conf
修改如下。还有CM4没接天线,不要离路由器太远距离了,否则可能连接不上
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
ap_scan=2
country=CN
network={
ssid="CMCC-3epu-5G"
psk=260c03dc5e13f5f5fead03213c25be691b5bc12993998bbe5fd22a017547768f
priority=1 #优先级
proto=RSN #WPA2别名
key_mgmt=WPA-PSK #加密方式
scan_ssid=1 #隐藏wifi
}
可以使用此命令配置wifi到配置文件
sudo wpa_passphrase a303(wifi名) 3322352a(密码) |sudo tee -a /etc/wpa_supplicant/wpa_supplicant.conf
玩转树莓派-Raspberry,无线网配置方法
wpa_supplicant对wep,wpa,wpa2的psk和隐藏ap的scan_ssid扫描配置
3.树莓派ping外网
试验过接网线可以ping百度,拔掉网线连接wifi就不行了
使用route命令查看路由表有两个default规则(因为这里接入了4G模块,去掉就好了)
使用sudo route del default删除第一个default规则
一些route命令的用法及路由表的理解
板子断电重启后又会出现两个default路由规则,打开/etc/dhcpcd.conf
把之前设置静态IP时设置的默认网关和DNS服务器屏蔽,
上一步未必有用,可以试试把命令添加到开机启动脚本,sudo nano /etc/rc.local
route add -net 0.0.0.0/0 wwan0
route add -net 0.0.0.0/0 gw 192.168.1.10
route add -net 10.0.0.0/8 eth0
route add -net 10.0.0.0/8 gw 10.168.2.1
exit 0
开机启动脚本配置
排除步骤
ping 127.0.0.1 ; ping通说明tcp协议栈没有问题
ping 主机地址 ; ping通说明网卡没有问题
ping 路由器默认网关 ;ping通说明包可以到达路由器
ping DNS服务器地址 ;
修改DNS
sudo vim /etc/resolv.conf ; 配置nameserver 8.8.8.8
sudo vim /etc/resolv.conf ; 配置nameserver 192.168.1.1
配置静态IP
sudo vim /etc/dhcpcd.conf ; 修改dhcpcd.conf文件
# eth0为连接网线时的IP
interface eth0
static ip_address=192.168.1.199/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.1
# wlan0为连接无线时的IP,可修改(避免IP地址冲突)
# ip_address是静态IP,后面要接/24
# routers是网关
# static domain_name_servers是DNS
interface wlan0
static ip_address=192.168.1.199/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.1
4.树莓派git篇
git clone报错gnutls recv error (-110): the tls connection was non-properly terminated
进行搜索,采用如下解决方案
git config --global --unset http.https://github.com.proxy
git config --global --unset https.https://github.com.proxy