安装系统

虽然官方已经提供了 Raspberry Pi Imager,但是我在 Mac 下试用了一下,打开就崩,没办法,不太想去折腾为什么会崩了,直接就上老方法从镜像安装,所以下面我的步骤就是以镜像安装的方式进行的,系统环境是 Mac,Linux 下其实几乎类似,Windows 就更简单了,有 GUI 工具可以使用。

1. 下载系统镜像

我是使用的 Raspberry 的官方 OS:Raspberry Pi OS with desktop and recommended software,直接打开这个链接就可以点击下载了,下载下来是一个 zip 文件,需要解压出来 img 文件:

  1. [root@liqiang.io]# mkdir -p rasp
  2. [root@liqiang.io]# unzip 2021-03-04-raspios-buster-armhf-full.zip -d rasp
  3. [root@liqiang.io]# sudo dd if=/Users/liuliqiang/Downloads/rasp/2021-03-04-raspios-buster-armhf-full.img of=/dev/rdisk2 bs=1m

这里的 /dev/rdisk2 其实就是 /dev/disk2,我的 SD 卡,为什么多了一个 r?这个是以 raw 的格式进行拷贝,速度会比使用普通的 dd 快上 20 倍(Why is “/dev/rdisk” about 20 times faster than “/dev/disk” in Mac OS X

另外一个问题是如何找到是 /dev/disk 几的问题,我放在后面了。

2. 配置系统

以前旧的 Raspberry 系统是默认开启 SSH 的,可以直接插上网线就从其他电脑 SSH 进去,但是,现在新的 OS 不行了,得接上显示器和鼠键进行设置才可以,所以我就接上了这些外设,然后设置了一把,然后就撤掉了。

打开 SSH

因为我是通过 GUI 操作的,所以比较简单:

如果不是 GUI 操作的话,还可以在 SDK 卡的目录下创建一个文件,名字为 “SSH”,无需后缀名即可开启 ssh。

问题

如何找到 SD 卡是哪个设备

在 Mac 上可以通过 diskutil 工具查看,例如我的:

  1. [root@liqiang.io]#diskutil list
  2. ... ...
  3. /dev/disk2 (external, physical):
  4. #: TYPE NAME SIZE IDENTIFIER
  5. 0: FDisk_partition_scheme *15.7 GB disk2
  6. 1: Windows_FAT_32 NO NAME 15.7 GB disk2s1
  7. [root@liqiang.io]#
  8. [root@liqiang.io]#
  9. [root@liqiang.io]#

这就是我的设备信息了,你可以直接看到我的 SD 卡就是 /dev/disk2

PWR 灯不亮或者闪烁

这是电源的问题,一般是电源输出的电流不足导致的,正常的情况下应该是一直亮着的。

Mac 无法挂载 SD 卡

  1. [root@liqiang.io]# brew install --cask macfuse
  2. [root@liqiang.io]# cat > ext4fuse.rb << EOF
  3. class MacFuseRequirement < Requirement
  4. fatal true
  5. satisfy(build_env: false) { self.class.binary_mac_fuse_installed? }
  6. def self.binary_mac_fuse_installed?
  7. File.exist?("/usr/local/include/fuse/fuse.h") &&
  8. !File.symlink?("/usr/local/include/fuse")
  9. end
  10. env do
  11. ENV.append_path "PKG_CONFIG_PATH", HOMEBREW_LIBRARY/"Homebrew/os/mac/pkgconfig/fuse"
  12. unless HOMEBREW_PREFIX.to_s == "/usr/local"
  13. ENV.append_path "HOMEBREW_LIBRARY_PATHS", "/usr/local/lib"
  14. ENV.append_path "HOMEBREW_INCLUDE_PATHS", "/usr/local/include/fuse"
  15. end
  16. end
  17. def message
  18. "macFUSE is required. Please run `brew install --cask macfuse` first."
  19. end
  20. end
  21. class Ext4fuse < Formula
  22. desc "Read-only implementation of ext4 for FUSE"
  23. homepage "https://github.com/gerard/ext4fuse"
  24. url "https://github.com/gerard/ext4fuse/archive/v0.1.3.tar.gz"
  25. sha256 "550f1e152c4de7d4ea517ee1c708f57bfebb0856281c508511419db45aa3ca9f"
  26. license "GPL-2.0"
  27. head "https://github.com/gerard/ext4fuse.git"
  28. bottle do
  29. sha256 cellar: :any, catalina: "446dde5e84b058966ead0cde5e38e9411f465732527f6decfa1c0dcdbd4abbef"
  30. sha256 cellar: :any, mojave: "88c4918bf5218f99295e539fe4499152edb3b60b6659e44ddd68b22359f512ae"
  31. sha256 cellar: :any, high_sierra: "fc69c8993afd0ffc16a73c9c036ca8f83c77ac2a19b3237f76f9ccee8b30bbc9"
  32. sha256 cellar: :any, sierra: "fe8bbe7cd5362f00ff06ef750926bf349d60563c20b0ecf212778631c8912ba2"
  33. sha256 cellar: :any, el_capitan: "291047c821b7b205d85be853fb005510c6ab01bd4c2a2193c192299b6f049d35"
  34. sha256 cellar: :any, yosemite: "b11f564b7e7c08af0b0a3e9854973d39809bf2d8a56014f4882772b2f7307ac1"
  35. end
  36. depends_on "pkg-config" => :build
  37. on_macos do
  38. depends_on MacFuseRequirement => :build
  39. end
  40. on_linux do
  41. depends_on "libfuse"
  42. end
  43. def install
  44. system "make"
  45. bin.install "ext4fuse"
  46. end
  47. end
  48. EOF
  49. [root@liqiang.io]# brew install --formula --build-from-source ./ext4fuse.rb
  50. [root@liqiang.io]# diskutil list
  51. ... ...
  52. /dev/disk2 (external, physical):
  53. #: TYPE NAME SIZE IDENTIFIER
  54. 0: FDisk_partition_scheme *7.7 GB disk2
  55. 1: Windows_FAT_32 boot 268.4 MB disk2s1
  56. 2: Linux 7.5 GB disk2s2
  57. [root@liqiang.io]# sudo mkdir /Volumes/raspberry
  58. [root@liqiang.io]# sudo ext4fuse /dev/disk2s2 /Volumes/raspberry -o allow_other

Ref