能不能在sd卡上装linux系统

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了能不能在sd卡上装linux系统相关的知识,希望对你有一定的参考价值。

参考技术A 能,但是在你的机器上能否启动不好说,安装方法与装在u盘的pe系统类似,会装pe就可以。 参考技术B 可以实现的,你可以通过SD卡启动uboot,不过加载内核的话,可以通过tftp下载内核加载;也可以通过nand里面的内核,如果用SD卡内核是不现实的。当你uboot,kernel都启动之后,从SD卡启动系统应该很简单了。

树莓派之快速上手-变身个人Linux电脑

一 使用准备

1.1 硬件条件

首先树莓派的系统是需要安装在SD卡上的,所以购买树莓派时需要同时买一个SD卡。对于Raspberry Pi Zero型号的树莓派,因为其硬件限制,SD卡容量大小不能超出256GB,否则在该型号上系统将无法启动。树莓派官网推荐SD卡容量大于或等于8GB,我使用的SD卡有32GB和64GB的,容量大小也取决于自己要用于什么用途。

我使用的树莓派还是最早期的Raspberry Pi 2 Model B V1.1,因为最新是Raspberry Pi 4了,淘宝上看了价格在700+,因为近来的缺芯以及树莓派官方的产能不足,有些树莓派的价格据说被炒的更高,这个Raspberry Pi 2 Model B是树莓派刚火不久就入手的(还是2015年),当时价格是300多。

1.2 系统安装

树莓派官网推荐使用“Raspberry Pi Imager”来安装树莓派操作系统到SD卡上,这个安装过程需要有一台运行Windows、或macOS或Linux(也可以是运行Linux的树莓派)的电脑,同时电脑需要有读卡器。

“Raspberry Pi Imager”是树莓派官方开发的图形化SD卡写入工具(支持Mac OS, Ubuntu 18.04和Windows),这个工具会自动下载树莓派操作系统镜像并写入到SD卡。

如果想在另一个树莓派Linux系统上使用“Raspberry Pi Imager”,可以:

  • 在终端中输入 sudo apt install rpi-imager命令,来安装“Raspberry Pi Imager”工具
  • 将插入了SD卡的读卡器连接到树莓派
  • 打开“Raspberry Pi Imager”选择对应的OS系统
  • 选择需要写入的SD卡
  • 检查下自己的选择,点击“Write”按钮开始写入

以前老的树莓派系统,有默认的用户名pi和默认密码raspberry,新的Raspberry Pi OS不再支持这个默认用户名和密码了(因为安全考虑)。

1.3 回顾以前的系统安装

相比几年前初次使用树莓派安装系统时,现在树莓派官网的工具做的体验好了许多了,之前安装系统的步骤大概是:

  1. 通过下载轻量版的NOOBS,然后将其写入SD卡根目录,选择需要的Raspberry pi系统类型进行网络安装,但是这种方式速度也很慢,特别是网络不稳定的情况下,因此可以下载带Raspbian系统的NOOBS(将近1G)
  2. 然后需要用image烧写工具将os的image文件烧写到SD卡。早前是在Windows系统,下载Win32diskimager工具,将Win32diskimager以管理员身份运行,选择下载的raspbian系统镜像,写入到SD卡:

  3. 接下来将SD卡插入到树莓派开发板上,上电启动即可。总体的安装还是不如现在便捷的。

二 树莓派系统更新

Raspberry Pi操作系统是基于Debian,针对树莓派硬件进行了优化的版本,该系统有超过35000个可用包(随着时间推移应当还会越来越多),根据我自己的使用体验来看,确实基本的Linux系统功能都具备的,甚至还在树莓派系统上安装了相关的嵌入式开发环境,来开发一些嵌入式的工程项目。

树莓派官方推荐保持树莓派系统最新,其原因主要是两个方面,一个是安全性,最新的系统及时修复了已经公布的漏洞,旧的系统可能因为未修复的漏洞而受到外部攻击。另一个方面是最新的软件bug的修复,以避免一些已知的且修复了的问题影响自己的开发和使用。

而树莓派系统更新的方法如下。

2.1 包管理器安装-APT

APT是Debian, Ubuntu等Linux系统的软件包管理工具,其软件列表保存在树莓派的/etc/apt/sources.list下,通过APT更新树莓派系统操作方法如下:

# 首先更新软件包列表
sudo apt update

# 然后将已安装的软件都更新到最新版本,Raspberry Pi OS的内核也会更新
sudo apt full-upgrade

# 额外的,如果担心软件更新会导致SD卡存储空间爆掉,可以通过如下命令看一下SD卡的剩余空间
df -h

# 如下是一些额外的操作,可根据实际情况参考
sudo apt clean      # 释放一些旧版本的软件包,有点类似手机的垃圾清理吧
apt-cache search    # 搜索指定的存档软件包
apt-cache show      # 查看软件包的详情

# 如下是软件包的安装
sudo apt install xxx    # 安装某个软件包
sudo apt remove xxx     # 卸载某个软件包
sudo apt purge xxx      # 完整卸载某个软件包,并删除相关配置文件

2.2 rpi-update工具

rpi-update用于更新树莓派系统内核和VideoCore到预发布的版本,感觉是适合用来体验最新版系统的,对于开发使用的稳定性而言,并不推荐。

# 如下是更新的操作命令
sudo rpi-update
sudo reboot

# 由于是预览版,很可能有不稳定因素,因此树莓派官方提供了回退命令
sudo apt-get update
sudo apt install --reinstall libraspberrypi0 libraspberrypi-bin,dev,doc raspberrypi-bootloader raspberrypi-kernel

三 40引脚的排针

树莓派2开始就支持了此40个GPIO引脚的排针,这对于软硬结合的项目开发而言非常有用,可以外接一些输入采集模块或设备,也可以用来驱动一些带有动作的执行器,当然还可以进行组合,来实现自己的定制化的高级自动化装置。如下是树莓派开发板上40个GPIO引脚的对应功能,另外安装了完整版树莓派系统的可以在终端输入 pinout 命令来查看GPIO的信息:

另外,如下是对40个引脚的附加说明,其中的黄色GPIO,可以通过软件配置设置为输入或输出的功能,非黄色的其他引脚是不可配置的:

  • GPIO配置为输出时,输出电平可设置3.3V高电平和0V地
  • GPIO配置为输入时,GPIO2和GPIO3会固定配置为上拉电阻,其余的GPIO可软件配置上拉电阻或下拉电阻
  • 部分GPIO可选配置为其他外设接口:
    • PWM:
      • 软件PWM的话所有GPIO都支持,配置为GPIO输出然后调节输出频率和高电平的占空比
      • 而硬件PWM只有 GPIO12, GPIO13, GPIO18, GPIO19 四个可被配置
    • SPI
      • SPI0: MOSI (GPIO10); MISO (GPIO9); SCLK (GPIO11); CE0 (GPIO8), CE1 (GPIO7)
      • SPI1: MOSI (GPIO20); MISO (GPIO19); SCLK (GPIO21); CE0 (GPIO18); CE1 (GPIO17); CE2 (GPIO16)
    • I2C
      • Data: (GPIO2); Clock (GPIO3)
      • EEPROM Data: (GPIO0); EEPROM Clock (GPIO1)
    • Serial串口
      • TX (GPIO14); RX (GPIO15)

四 树莓派上手使用

4.1 raspi-config配置工具

通过raspi-config配置工具,可以修改树莓派系统的一些设置,在终端登录到树莓派系统后,使用 sudo raspi-config 即可进入:

4.2 通过串口登录树莓派系统

用一个USB转串口的小板,通过PC连接到树莓派的 TX (GPIO14); RX (GPIO15)和GND,上面新安装的Raspberry Pi OS默认是开启了串口功能的,这样在PC打开串口助手工具,波特率设置为115200,启动树莓派系统后,就看到如下输出了:

输入前面安装系统时设置的用户名pi和对应的密码,就能通过串口终端登录树莓派啦。但是突然发现自己的树莓派2B是没有Wi-Fi网卡的,所以要使用SSH登录树莓派的话,就得给树莓派2B外接一个USB Wi-Fi网卡,或者将树莓派2B通过网线连接到路由器,才能使树莓派联网了。目前基本功能通过串口终端登录到树莓派即可。

4.3 通过SSH工具登录树莓派系统

SSH 是建立在应用层和传输层基础上的安全协议,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。

通过SSH工具登录树莓派系统,首先需要能够获取到树莓派开发板的IP地址,也就是需要将树莓派先联网才行(不论是局域网还是互联网都行)。

树莓派可通过网线连接路由器的LAN口(当然用Wi-Fi连路由器更方便,奈何我的树莓派2B是没有Wi-Fi网卡的),此时路由器会通过DHCP动态分配IP地址,此时可通过前面的串口终端方式登录树莓派,敲入ifconfig命令查看树莓派的IP地址,也可以将DHCP的方式改为static静态IP地址,静态IP地址要落在路由器的地址段之内,而且不能跟目前连接到路由器的其他网络设备IP冲突,这个就需要通过路由器的设置页面看已经连接的网络设备的IP列表。

输入 ifconfig 命令可得到类似下图的输出:

上图只是树莓派联网信息的一个示例,实际上将树莓派通过网口或Wi-Fi无线连接到路由器后,一般可以看到eth0或wlan0的 inet addr 是一个 “192.168.x.x” 类似的地址(当然这取决于路由器的网关地址的配置),这个地址就是树莓派的IP地址了。

接下来就是在自己的PC(可以是MacOS, Linux,或Windows系统电脑),通过使用SSH工具来登录树莓派系统,并与之交互了。MacOS和Linux终端一般自带了SSH功能,在终端中通过ssh相应的命令即可访问树莓派系统。这里偏向介绍下除了终端外的其他ssh工具登录树莓派的方式。如下简单列几种自己使用过的:

ssh工具

支持的系统平台

附加功能

putty

Windows, MacOS(实际未使用)

串口工具等,体验较好

teraterm

Windows

串口工具等,体验很好

moba Xterm

Windows

文件同步等,体验很好

secureCRT

Windows, MacOS

串口工具等,体验很好

VS Code

Windows, MacOS, Linux

插件方式,代码编辑,功能强大,remote ssh只是其中一个插件能力

所以Windows上的ssh工具感觉更丰富一些,如果主要考虑跨平台的话,VS Code确实是个不错的选择,特别是开发时也需要用VS Code作为代码编辑器时。如下以Windows的putty为例简要说明如何在自己Windows电脑上通过ssh登录树莓派系统。

  1. 通过Putty这个工具非常简单,从Putty Download这里下载一个Window的版本exe文件
  2. 然后双击打开,填入IP地址和选择SSH,点击Open即可:

  3. 会弹出是否缓存该连接的信息,点yes,然后就会进入登录状态,输入username和password就可以正式登入树莓派系统使用了:

五 写在最后

经过以上的快速上手的步骤,就拥有了一台自己的个人Linux电脑了,相比以前的台式Linux主机,树莓派Linux电脑小巧灵活,移动方便,同时成本也不高。这个树莓派2B的Linux电脑配置为双核Cortex-A7,1G内存,64G存储空间(64G的SD卡),个人使用的性能基本满足,和云平台上租一个普通的ECS服务器性能差不多,但是价格更有优势,还能自己接入外设搭建一些更有意思的方案。

当然在MacOS和Windows电脑上通过虚拟机也可以虚拟一个差不多性能的Linux系统,但是虚拟机中运行需要自己电脑保持开机才行,而树莓派则只要上电就能一直运行着,所以对于有跨平台开发,多系统使用需求的而言,用树莓派变身为自己的个人Linux电脑是个不错的选择。

最后,更多原创干货可搜索关注“技塑未来”公众号。

参考资料

树莓派官方开发文档

以上是关于能不能在sd卡上装linux系统的主要内容,如果未能解决你的问题,请参考以下文章

6410下,能不能从SD卡启动系统?要从SD卡启动该做些啥工作

制作SD(8G)卡Linux镜像,使得ZC706开发板可以从SD卡启动进入Linux系统

Linux SD卡建立两个分区

linux系统下怎么查看SD卡CID信息?

ZYNQ的Linux Linaro系统镜像制作SD卡启动

树莓派之快速上手-变身个人Linux电脑