You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.
---
layout: post
title: 在树莓派上体验piCore
tags: [树莓派, piCore]
---
麻雀虽小,五脏俱全<!--more-->
# 起因
最近想让协会的打印机共享到网络上,但是又没有什么好的方法,如果用电脑的话体积有点太大了,所以我就考虑用树莓派来共享。
我手头有一个吃灰多年的树莓派, 有一个问题是我应该在上面装什么操作系统比较好? 一般来说在树莓派上肯定是装官方的Raspberry Pi OS会更好一些, 但是官方的系统很大, 下载也有点慢, 所以就想找个小一点的系统来处理。
最终, 我找到了一个叫做Tiny Core Linux的发行版, 它有一个专门为树莓派开发的一个叫做piCore的发行版, 下载下来只需要23MiB, 可以说是非常不错了, 毕竟就算是Raspberry Pi OS lite也要400多MiB。
另外,点击[这里](http://www.tinycorelinux.net/12.x/aarch64/releases/RPi/piCore64-12.0.zip)就可以下载安装包了。
# 使用方法
总体来说piCore还是挺不错的, 文档写的也还可以, 该有的功能基本上都有了。安装很简单, 和树莓派一样直接把镜像写入MicroSD卡就可以直接使用了。不过有一个问题是它的系统不是直接挂载分区使用的, 它的根目录是在内存里面的, 所以如果直接断电所作的操作没有办法保存。
不过他们提供了一种方案来解决这个问题,在对根目录下的文件进行操作后,可以执行`filetool.sh -b`把修改写到一个特别的文件里面,之后每一次开机系统都会读那个特别的文件来保持重启后数据不会丢失。
第一次启动的时候系统会自动生成SSH的Key, 所以第一次启动就要执行上面的命令。这些事情在README都有写。另外就是使用完整分区的问题, 根据这个发行版的设计, 所有的操作会写到第二个分区里面, 但是默认情况下第二个分区只有16MiB, 所以要扩大这个分区的大小。
顺便一说, 这个系统的默认用户名是tc, 密码是piCore。
扩大的方法在README里面也有写, 但是全英文而且写的也不太清晰让我很难受, 而且在国内貌似几乎没有人使用piCore, 导致我第一次搞这个东西的时候很痛苦, 所以我还是在这里记录一下吧。
## 扩大分区
首先第一步执行`sudo fdisk -u /dev/mmcblk0`, 然后输入p查看分区, 接下来记住第二个分区的StartLBA。记好以后输入d删除第二分区并且输入n重新创建分区。其中出现First Sector的时候输入刚刚记住的数字, 其他的就默认就行了。最后输入w保存。
很神奇的是用fdisk操作分区的时候并不会让被操作分区的数据丢失, 貌似它只会修改分区表, 也许这才是fdisk真正做的事情吧……
在此之后需要重启一次,然后执行`resize2fs /dev/mmcblk0p2`让文件系统获得真正的大小就OK了。
## 安装软件
这个系统安装软件也很神奇,由于它的系统在内存中,安装软件肯定也不能直接安装到指定的位置。他们设计了一种很神奇的安装方法,就是把程序写到一个镜像里面,然后使用的时候挂载就可以用了。直接操作可能会比较麻烦,所以他们设计了一个脚本让任何人都可以随便安装软件。
像debian系列的发行版都使用的是`apt`来管理软件的, piCore也整了一个类似的东西, 叫做`tce-ab`,用起来比`apt`还要方便,它是一个可交互的脚本,想安装软件可以直接在里面搜索。方便确实很方便,而且清华源里也提供了这个系统的镜像源,还是挺不错的。
不过卸载的时候就有点麻烦了,它貌似没有卸载的命令,需要自己手动去`/mnt/mmcblk0p2/tce/optional/`这个路径把软件删掉。不过其实还好,文件都在一起,倒是也没有特别的麻烦。
## 配置Wifi
因为piCore默认没有Wifi的驱动我还以为它不能用Wifi, 不过还好, 这个安装软件的功能可以直接安装Wifi的管理软件和驱动, 用起来挺方便的, 直接搜索wifi就可以安装, 不过我在里面又找到了一个叫做`firmware-rpi-wifi`的包,虽然不知道需不需要安装,但是看起来好像需要的样子就安上了。
还有一个问题就是即使安好后也不能自动连接Wifi, 这个问题处理起来也很简单, 第一次连Wifi是用的一个叫做`wifi.sh`的脚本,连好以后就可以在`/opt/bootlocal.sh`文件里写一句`wifi.sh -a`, 这样它以后每次启动都会自动连接Wifi了。不过还有一点需要注意, 在做完这些配置之后都需要执行`filetool.sh -b`来保证修改能在下一次重启的时候被应用。
# 与Raspberry Pi OS lite的对比
这样一波操作下来感觉基本上Raspberry Pi OS lite和piCore在功能上也没啥区别了吧, piCore不仅更快还更小, 从安装包来看piCore要比Raspberry Pi OS lite小20倍!
这样看来还是piCore更好啊, 为什么国内连相关的文章都搜不到呢? 也许是因为piCore需要自己探索吧, 大家一般都用的是树莓派官方的系统, 而且因为Raspberry Pi OS lite用的是apt管理更方便所以就没人用piCore了吧……
不过树莓派不就是用来折腾的嘛, 所以我还是更支持piCore! 😀