树莓派折腾系列记录

tb_image_share_1711109669014.jpg

Raspberry Pi [Zero 2W] 吃灰指北


#1 点灯

首先,烧录镜像,这个就不必说了。找img,烧卡,上电这个流程。

但是问题在于,我们没有显示屏,所以只能选择lite系统,即不带桌面的版本。

对于lite系统,首先最重要的事情就是怎么让PI开机联网,因为我们需要ssh登录。这里我们将遇到第一个坑,即开机连不上wifi,一般来说开机之后zero亮绿灯,1分钟以内能连上wifi就一定连上了。而我们这次没有。

第一招 - 配置文件

首先检查是不是配置文件有问题,最多的结果是配置wpa_supplicant.confssh,然后丢到boot中(这里有个问题,大家磁盘名称都是boot,而我烧完img之后是bootfs),如上,我配置了之后连不上wifi。期间尝试了改变wifi名字,wifi频段,手机热点,都连不上,显然,排除wifi问题。

没办法,借来一块hdmi屏(依然没有micro USB OTG接键盘),然后发现了问题,系统卡在注册用户页面。

第二招 - 配置用户

然后经查找,我发现Raspbian有一次大更新,之后的是新版。查找新版相关信息发现新版Raspbian不支持默认pi用户了,得自己设置用户。所以到配置文件上就是我们需要自己设置用户名和密码,即配置userconf.txt

第三招 - 钞能力+等等党

配置完了发现能完全进系统了,但是依然不能连WiFi. 没有办法了,于是下单OTG接口…

等待……

OTG接口到了之后终于可以进系统看看了(前提是你还是需要借一块屏幕),然后:

1
2
3
4
5
6
7
8
$ ip link    # 检查网卡
$ lspci -k
$ sudo ip link set wlan0 up # 打开网卡
Operation not possible due to RF-kill
$ sudo rfkill list all
wifi 被 Soft blocked 了
$ sudo rfkill unblock wifi
$ sudo ip link set wlan0 up

经过这一通操作,终于可以连接wifi了!!!这意味着我们可以ssh登录了。

image-20240322203146919

登录系统成功!顺便写个hello world(变体)。

image-20240322202438342

总结

玩树莓配必须可以有屏幕和micro USB OTG键盘!!!

#1 SSH 登录

1.1 命令行/Shell

首先是使用普通终端进行ssh登录,很简单,直接登录即可:

image-20240528015202444

但是,这样每次都需要敲一遍ip和密码,很不优雅。当然,有一个简单的方法可以避免这些操作:使用Shell软件如Xshell,Mobaxterm,但是普通终端还是常用些,所以记录一下普通终端中的操作。

配置密钥

使用密钥登录可以避免重复输密码,这里分两种情况,win ->ssh-> linux和win<-ssh<-linux;

其实都一样,需要抓住一个要点,就是本地机上生成公、私钥,然后将公钥(一串代码)存到目标机上即可,不同的是Linux上的生成的ssh密钥一般在~/.ssh下,win一般是C:\usrs\[username]\.ssh,注意这两个文件夹都是隐藏文件夹,win上需要打开隐藏文件夹可见,linux上可以使用ls -a查看到。当然,密钥保存位置都可以改,但是默认配置是这里。

生成密钥的命令为:

1
ssh-keygen

步骤为(这里是windows):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
C:\Users\XTL>ssh-keygen -t rsa        <== 建立密钥对,-t表示类型选项,这里采用rsa加密算法
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\XTL/.ssh/id_rsa): <== 按 Enter,或者输入密钥保存位置及文件名
Enter passphrase (empty for no passphrase): <== 输入密钥锁码,或按Enter留空,可以留空
Enter same passphrase again:
Your identification has been saved in C:\Users\XTL/.ssh/id_rsa. <== 私钥(无后缀)
Your public key has been saved in C:\Users\XTL/.ssh/id_rsa.pub. <== 公钥
The key fingerprint is:
SHA256:3LwQzWzOXlvm3PmCnJBETPClUVf6xgmT/u7XS/07C28 xtl@Matrix-F-58-54-4C
The key's randomart image is:
+---[RSA 3072]----+
| .+o.o ...|
| =o+ ... |
| ..B +. |
| . B. . oo.|
| S.=...o.+|
| ooo *.oo|
| oo.+o++|
| + *E=|
| oOO|
+----[SHA256]-----+

然后是第二步,将公钥放到主机(目标机)上,在.ssh文件夹下新建(如果没有的话)authorized_keys文件,将公钥中的代码全部复制,写入这个文件中即可。

然后ssh登录时既可以使用密钥了:

1
ssh -i [identity_file] [user]@[ip]

有人不需要加-i [identity_file]就可以直接登录,不知道为什么,可能是使用了默认密钥名?

配置文件

在.ssh中新建配置文件config,写入以下内容:

1
2
3
4
Host RaspberryPi        <== 主机别名
HostName 192.168.1.101 <== ip地址
User everyoung <== 用户
IdentityFile C:\\Users\\XTL\\.ssh\\RPI <==密钥文件

这样就可以这样登录了:

1
ssh RaspberryPi

x systemd服务

查看日志

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
journalctl

Query the journal.

Options:
--system Show the system journal
--user Show the user journal for the current user
-S --since=DATE Show entries not older than the specified date
-U --until=DATE Show entries not newer than the specified date
-b --boot[=ID] Show current boot or the specified boot
-u --unit=UNIT Show logs from the specified unit
--user-unit=UNIT Show logs from the specified user unit
-g --grep=PATTERN Show entries with MESSAGE matching PATTERN
--case-sensitive[=BOOL] Force case sensitive or insensitive matching
-f --follow Follow the journal
-n --lines[=INTEGER] Number of journal entries to show
--no-tail Show all lines, even in follow mode
-r --reverse Show the newest entries first
-o --output=STRING Change journal output mode (short, short-precise,
short-iso, short-iso-precise, short-full,
short-monotonic, short-unix, verbose, export,
json, json-pretty, json-sse, json-seq, cat,
with-unit)
--output-fields=LIST Select fields to print in verbose/export/json modes
--utc Express time in Coordinated Universal Time (UTC)

服务文件权限

systemd用户


树莓派折腾系列记录
https://everyoung.fun/2024/05/28/树莓派吃灰指北/
作者
EveRYouNg
发布于
2024年5月28日
许可协议