能不能在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 回顾以前的系统安装
相比几年前初次使用树莓派安装系统时,现在树莓派官网的工具做的体验好了许多了,之前安装系统的步骤大概是:
- 通过下载轻量版的NOOBS,然后将其写入SD卡根目录,选择需要的Raspberry pi系统类型进行网络安装,但是这种方式速度也很慢,特别是网络不稳定的情况下,因此可以下载带Raspbian系统的NOOBS(将近1G)
- 然后需要用image烧写工具将os的image文件烧写到SD卡。早前是在Windows系统,下载Win32diskimager工具,将Win32diskimager以管理员身份运行,选择下载的raspbian系统镜像,写入到SD卡:
- 接下来将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登录树莓派系统。
- 通过Putty这个工具非常简单,从Putty Download这里下载一个Window的版本exe文件
- 然后双击打开,填入IP地址和选择SSH,点击Open即可:
- 会弹出是否缓存该连接的信息,点yes,然后就会进入登录状态,输入username和password就可以正式登入树莓派系统使用了:
五 写在最后
经过以上的快速上手的步骤,就拥有了一台自己的个人Linux电脑了,相比以前的台式Linux主机,树莓派Linux电脑小巧灵活,移动方便,同时成本也不高。这个树莓派2B的Linux电脑配置为双核Cortex-A7,1G内存,64G存储空间(64G的SD卡),个人使用的性能基本满足,和云平台上租一个普通的ECS服务器性能差不多,但是价格更有优势,还能自己接入外设搭建一些更有意思的方案。
当然在MacOS和Windows电脑上通过虚拟机也可以虚拟一个差不多性能的Linux系统,但是虚拟机中运行需要自己电脑保持开机才行,而树莓派则只要上电就能一直运行着,所以对于有跨平台开发,多系统使用需求的而言,用树莓派变身为自己的个人Linux电脑是个不错的选择。
最后,更多原创干货可搜索关注“技塑未来”公众号。
参考资料
以上是关于能不能在sd卡上装linux系统的主要内容,如果未能解决你的问题,请参考以下文章
6410下,能不能从SD卡启动系统?要从SD卡启动该做些啥工作