树莓派(Raspberry Pi 4 Model B)无显示器通过SSH登录终端界面

7,812 阅读3分钟

以下配置是根据网上树莓派3资料的整理,所以同样也适用于树莓派3

注意:引脚供电和Type-c供电只能选择一种,否则可能会引起静电击穿烧坏Raspberry Pi

准备环境

  • 8G以上SD卡一张
  • 读卡器
  • 一根网线
  • 5V2A电源头,我用的5V2A
  • TYPE-C接口的USB电源线
  • 可以上网的电脑一台
  • USB转串口模块和母对母杜邦线(可选)

安装系统并通过SSH登录

系统镜像下载

官方镜像下载地址:downloads

下载红框中的系统,点进去后可以下载 Raspbian Buster Lite 精简版,只有终端界面没有桌面,下载ZIP包即可。

标注的下载哪个系统

格式化SD卡

  • 访问SD Association的网站,下载适用于Windows或Mac的SD Formatter
  • 插入读卡器
  • 在SD Formatter中,选择您的SD卡以及卡的格式。

格式化SD卡

烧录系统

官方提供的烧录器下载地址:balenaEtcher

其他烧录器下载地址:win32diskimager

  • 将插有sd卡的读卡器插到电脑上
  • 安装并打开Win32DiskImager 或 balenaEtcher

balenaEtcher

这两种烧录方式使用哪个都可以

Win32DiskImager

  • 增加ssh空文件开启RaspBerryPi的SSH服务

RaspberryPi默认是不开启SSH的,所以如果没有HDMI小口的线,就算有显示器也没得办法连接,所以这种情况就要把SSH服务打开,以便我们可以通过SSH的方式登录。

烧录完成后我们在资源管理器中打开SD卡增加一个没有后缀的 ssh 文件,这种方式为什么会自动开启ssh服务没搞懂,但是确实好用。

ssh空文件

  • 发现IP

在正式运行RaspberryPi之前我们需要先知道我们局域网内的IP都有哪些,等一下RaspberryPi启动后好确定哪个是RaspberryPi的IP地址,哪个IP地址是多出来的那个就是。

图形界面发现IP工具:Advanced IP Scanner

命令行命令,在powershell中或者在xshell6中运行。

$ arp -a
  • 把SD卡在读卡器中拔出来,把SD卡插入RaspberryPi板子反面的卡槽中,不是把读卡器放到RaspberryPi的USB口上;插入网线,插上电源,电源是Type-C接口,即可运行。

如何插线

SSH登录

首先我们需要知道我们的Raspberry Pi的IP地址,通过上面发现IP的命令或图形界面再次扫描,多出的一个IP就是我们要用的了。

通过xshell等工具运行以下命令

# 树莓派的默认用户民是 pi  密码是 raspberry
$ ssh pi@192.168.0.139

ssh登录界面

通过UART串口登录

可查看树莓派的引脚定义网站

Raspberry Pi外设里面一共包含两个串口

  • 一个称之为硬件串口(/dev/ttyAMA0)

硬件串口由硬件实现,有单独的波特率时钟源,性能高、可靠。

  • 一个称之为mini串口(/dev/ttyS0)

mini串口性能低,功能也简单,并且没有波特率专用的时钟源而是由CPU内核时钟提供,因此mini串口有个致命的弱点是:波特率受到内核时钟的影响,内核若在智能调整功耗降低主频时,相应的这个mini串口的波特率便受到牵连了,虽然你可以固定内核的时钟频率,但这显然不符合低碳、节能的口号。

在所有的树莓派板卡中都通过排针将一个串口引出来了,树莓派3代以前,引出的串口默认是CPU的那个硬件串口。而在树莓派3代以后,由于板载蓝牙模块,因此这个硬件串口被默认分配给与蓝牙模块通信了,而把那个mini串口默认分配给了排针引出的GPIO Tx Rx

查看串口别名和硬件串口与mini串口交换的解决方案

参考:树莓派串口通信设置 ,这篇文章中把控制台输出给关闭了,我没有。

在我们登录界面可以输入以下命令

$ ls /dev -l

串口映射

现在我们要做的事情就是把ttyS0和ttyAMA0两个位置对调一下。

在树莓派系统的 /boot/overlays/ 目录下,提供了一个 pi3-miniuart-bt.dtbo 文件。其文件作用可以在 /boot/overlays/README 文件中进行查看,找到下面这一段,给出了解决的办法

Name:   pi3-miniuart-bt
Info:   Switch Pi3 Bluetooth function to use the mini-UART (ttyS0) and restore
        UART0/ttyAMA0 over GPIOs 14 & 15. Note that this may reduce the maximum
        usable baudrate.
        N.B. It is also necessary to edit /lib/systemd/system/hciuart.service
        and replace ttyAMA0 with ttyS0, unless you have a system with udev rules
        that create /dev/serial0 and /dev/serial1, in which case use
        /dev/serial1 instead because it will always be correct. Furthermore,
        you must also set core_freq=250 in config.txt or the miniuart will not
        work.
Load:   dtoverlay=pi3-miniuart-bt
Params: <None>
  • 编辑/boot/config.txt,在文末添加以下内容
# 确保串口的功能激活
enable_uart=1
# 通过上面给出的方式配置
dtoverlay=pi3-miniuart-bt
  • 关闭板载蓝牙功能

我是不太需要蓝牙功能,才关闭的,如果你需要蓝牙功能,不关闭应该也可以,可自行尝试或Google。

# 关闭蓝牙功能服务
$  sudo systemctl disable hciuart
# 修改/lib/systemd/system/hciuart.service,把所有的 "ttyAMA0"改成"ttyS0"
$ vi /lib/systemd/system/hciuart.service
  • 查看串口控制台服务是否开启
$ systemctl status serial-getty@ttyAMA0.service
# 看下Active是否为active(running)的状态
# 如果是不启动的状态的话,则运行以下命令开启服务
$ systemctl enable serial-getty@ttyAMA0.service

以上操作完通过 reboot命令重启Raspberry Pi 以生效配置,再次运行 ls /dev -l 就可以看到对调了。

对调后的串口

硬件连接和串口登录

注意:引脚供电和Type-c供电只能选择一种,否则可能会引起静电击穿烧坏Raspberry Pi

下载串口驱动: CP210x,安装驱动。

使用母对母杜邦线把USB转串口模块和Raspberry Pi两个以GND对GND,R对R,T对T连接。

串口连接

  • 配置xshell

协议选择SERIAL

协议选择SERIAL

配置波特率、数据位、停止位、奇偶校验等

点击连接,看是否能成功连接,如果不可以,则需自行查看具体原因解决,Google,或者多尝试几次。

安装 Arch Linux通过ssh和串口登录

安装Arch Linux的话按照官网中的做法是在linux中把SD卡分区并格式化,具体操作可按照官网中的做法进行操作,完全没有问题,安装后启动树莓派,即可通过SSH方式登录

默认使用用户名 alarm 和 密码 alarm 登录;root 用户默认密码是 root,但是不能登录,需配置一下才可以。

串口登录

Arch Linux使用串口登录需要先确认硬件串口的服务有没有开启,如果没有开启先开启服务

# 查看串口的状态
$ systemctl status serial-getty@ttyAMA0.service
# 开启串口
$ systemctl start serial-getty@ttyAMA0.service
# 开机自启串口服务
$ systemctl enable serial-getty@ttyAMA0.service

添加内容在 /boot/config.txt 文件中

# See /boot/overlays/README for all available options
dtoverlay=disable-bt

把树莓派重启就可以使用串口登录了。

参考