在树莓派2代B型/3代 上安装Fedora23 – Installing Fedora 23 on

本文主要用于记录安装过程,以便日后查阅回顾。

之前在自己的树莓派上运行的一直是通过NOOB安装的Raspbian,但是本人平时更喜欢用Fedora作为开发和使用环境,而且Raspbian上的软件包通常更新比较缓慢。因为树莓派2代B型上市前,树莓派的芯片都是armv6或者更早的架构,只能运行ARM架构的Raspbian或者Fedora 18及更早版本。树莓派2代B型搭载的芯片架构是armv7,树莓派3代搭载的芯片架构是armv8,这两种芯片都能够运行ARM架构的Fedora 23,而仅运行Raspbian也难以充分发挥硬件性能,因此通过查找资料,最终找到了Fedora官方的文档说明。首先在16G的存储卡上验证成功,今天就在64G的SD卡上再来一遍,顺便把每个步骤记录下来,以备自己和其他人参考。

0. 准备工作下载Fedora 23 ARM镜像和raspberry专用固件(Boot和Kernel):a. Fedora 23 ARM 官方下载地址 [https://arm.fedoraproject.org/]b. Raspberry Pi专用固件下载地址 [https://github.com/raspberrypi/firmware/archive/master.zip]下载完后解压到方便的目录备用即可。

1. 创建磁盘分区结构因为官方的文档中只介绍了fdisk的使用,因此就偷懒,只参考了官方文档的步骤,至于其他工具是否可行,暂时就不研究了。有兴趣的话可以试试。由于大部分操作都是需要根用户权限的,如果觉得经常sudo麻烦,可以直接su切换到根用户。首先需要确定磁盘的设备路径,使用USB读卡器有可能路径是/dev/sdb,而使用计算机内置的读卡器,SD卡的路径可能是/dev/mmcblk0,自己根据情况确定。确定设备路径后运行# fdisk /dev/sdb(这是我电脑上的路径)回车后进入交互模式,p打印当前操作磁盘的分区信息,d删除,删除现存的分区。接着说说我打算创建的分区:根据官方文档,boot分区128Mb就足够了,因为2代B型的内存是1G,所以swap分区干脆给1G;这时还剩大约58G可用空间,给系统16G以上的可用空间差不多了,如果打算作为开发工作站,装很多软件包,可以适当留多一些,剩下的空间作为用户分区。然后输入n创建新的分区,回车后出现提示,输入p可以创建主分区,输入e可以创建扩展分区,我们要创建的是主分区,之后根据提示输入1表示要创建的是第一个分区,然后输入两次回车,跳过First sector选项,在Last sector选项中输入+128M,表示划分给分区的大小。屏幕上的提示信息可以参考如下:

fdisk>Command(mforhelp):n Partitiontype p primary(0primary,0extended,4free) e extended(containerforlogicalpartitions) Select(defaultp):p Partitionnumber(1-4,default1):1 Firstsector(32-31422463,default32): Lastsector,+sectorsor+size{K,M,G,T,P}(32-31422463,default31422463):+128M Createdanewpartition1oftype’Linux’andofsize128MiB.

当看到Created a new partition 1 of type ‘Linux’ and of size 128 MiB.信息时就表示分区创建成功了。根据刚才的提示我们可以知道,刚才创建的分区类型是“Linux”的,而树莓派要求Boot分区必须是FAT32,因此还需要输入t命令转换分区类型。输入L查询所有类型代码,可以查到W95 FAT32的代码是b,因此输入b,此时会显示类似下面的信息:

fdisk>Command(mforhelp):t Selectedpartition1 Partitiontype(typeLtolistalltypes):b Changedtypeofpartition’Linux’to’W95FAT32′.

接着重复上面的步骤,创建swap分区和系统分区。注意新建分区和修改分区类型时选择分区的编号需要增长。根据官方文档,swap分区的分区类型应该是“Linux swap / Solaris”类型,对应的编号是82。而系统分区和用户分区则不需要修改分区类型。于是,创建磁盘分区结构的工作就基本完成了,执行p命令查看结果,确认无误后执行w命令写入存储卡。如果系统提示需要重启或者重新连接读卡器的,先重启或者重新连接后再执行下一步。

2. 格式化刚才新建的SD卡分区如果分区已经成功,这时在/dev/目录下应该能看到sdb和新建的4个分区:sdb1,sdb2,sdb3,sdb4。如果是用内置读卡器,则可能是mmcblk0和对应的4个分区:mmcblk0p1,mmcblk0p2,mmcblk0p3,mmcblk0p4。通过mkfs.vfat+分区设备路径,将指定分区格式化为FAT32格式。通过mkswap+分区设备路径,将指定分区格式化为swap格式。通过mkfs.ext4+分区设备路径,将指定分区格式化为ext4格式。

3. 挂载Fedora ARM 23系统镜像和SD卡分区,拷贝镜像文件如果镜像还没解压,可以通过# unxz Fedora-Server-armhfp-23-10-sda.raw.xz命令解压。创建临时挂载点:# mkdir /tmp/img/创建loop device:# losetup --partscan --find --show Fedora-Server-armhfp-23-10-sda.raw /dev/loop0挂载loop device的根分区到临时挂载点:# mount -r /dev/loop0p3 /tmp/img/这里说明一下,通常Linux系统镜像中第一个分区是boot分区,对应/boot/路径。第二个分区是swap分区,可以忽略,第三个分区才是根分区,对应/。因为我们不打算使用原生的boot和kernal,因此不挂载第一个分区。官方的说明是,随Fedora一起发布的kernal暂时没有支持树莓派芯片的所有特性,因此最好使用树莓派的专用内核固件。接着挂载我们的SD卡系统根分区:# mkdir /tmp/rpi/# mount /dev/mmcblk0p3 /tmp/rpi/挂载SD卡boot分区:# mkdir /tmp/rpi/boot/# mount /dev/mmcblk0p1 /tmp/rpi/boot/挂载SD卡home分区:# mkdir /tmp/rpi/home/# mount /dev/mmcblk0p4 /tmp/rpi/home/然后,将镜像根分区中的文件拷贝到SD的根分区中:# cp -rpv /tmp/img/* /tmp/rpi/可以执行sync确认缓存同步。最后解除镜像文件的挂载:# umount /tmp/img# losetup -d /dev/loop0

4. 拷贝树莓派专用固件如果固件还没解压,可以通过# unzip raspberry-firmware.zip命令解压。然后通过以下命令拷贝需要用到的文件:# cp -r firmware-master/boot/* /tmp/rpi/boot/# cp -r firmware-master/modules/* /tmp/rpi/lib/modules/然后在SD卡boot分区下创建一个名为cmdline.txt的文件,用来向内核传递参数。该文件内容如下:dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p3 rootfstype=ext4 elevator=deadline rootwait这里需要注意,因为这个文件是给树莓派机器用的,SD卡插入树莓派后,SD卡的设备路径应该是/dev/mmcblk0,根分区设备路径就是/dev/mmcblk0p3,所以应该固定写这个内容,而不再是准备SD卡时在电脑上的设备路径。接着在/boot分区下创建一个名为config.txt的文件,这一步是可选的,我第一尝试没有建立这个文件,系统可以正常启动。如果想建立这个文件,文件内容如下:

hdmi_force_hotplug=1config_hdmi_boost=4overscan_left=24overscan_right=24overscan_top=16overscan_bottom=16disable_overscan=0core_freq=250sdram_freq=400over_voltage=0

5. 设置fstab文件内容这里需要注意,修改的是SD卡上的fstab文件,而不是自己电脑上的,如果改错了,自己的电脑就没法启动了,所以需要特别小心。首先执行# blkid | grep sdb命令查询sdb磁盘每个分区的UUID,如果是内置读卡器,磁盘名可能替换为mmcblk0然后使用常用的编辑器打开/tmp/rpi/etc/fstab文件,这个文件是在引导的时候用的,修改的时候需要比较严谨。首先,swap分区放在最后一行,行数不够可以拷贝一行。第一行一定是根分区,也就是我们分的第三个系统分区。往下必须是一棵树型结构,我们把boot分区放在第二行,把用户分区放在第三行,分别更新UUID、路径和分区格式信息。确认无误后保存。

6. 解除SD卡挂载

#umount/tmp/rpi/boot/#umount/tmp/rpi/home/#umount/tmp/rpi/

最后可以执行sync确认缓存同步。

7. 将SD卡插入树莓派并进行初始化上电后正常情况应该会显示初始化向导,可以选择1~4进行指定的操作,如设定时区、语言、设置root密码、新建管理员账号等。完成后重启即可。重启后执行以下命令移除没用使用到的Fedora官方内核并更新系统:

#dnfremovekernelkernel-corekernel-modules#dnfupdate

8. 安装树莓派固件更新包首先执行# dnf install binutils git安装依赖组件。然后执行以下命令安装rpi-update:

#curl-L-o/usr/bin/rpi-updatehttps://raw.githubusercontent.com/Hexxeh/rpi-update/master/rpi-update#chmod+x/usr/bin/rpi-update

最后执行# rpi-update即可进行专用固件升级。

更多Fedora相关信息见Fedora 专题页面 http://www.68idc.cn/topicnews.aspx?tid=5

参考资料:

1. Raspberry Pi document on Fedora official wiki [http://fedoraproject.org/wiki/Raspberry_Pi]

如何在树莓派 2 运行 Ubuntu Snappy Core http://www.68idc.cn/Linux/2015-08/122438.htm

在(Raspberry Pi)树莓派上安装NodeJS http://www.68idc.cn/Linux/2015-01/111714.htm

Raspberry Pi 树莓派上安装Weston http://www.68idc.cn/Linux/2013-06/86685.htm

用于Raspberry Pi 的Linux 操作系统已经可用 http://www.68idc.cn/Linux/2012-03/56058.htm

Raspberry Pi(树莓派)试用小记 http://www.68idc.cn/Linux/2013-10/91008.htm

Raspberry Pi(树莓派)的安装、配置IP及软件源等入门 http://www.68idc.cn/Linux/2013-10/91009.htm

你曾经说,你曾经说。走在爱的旅途,我们的脚步多么轻松……

在树莓派2代B型/3代 上安装Fedora23 – Installing Fedora 23 on

相关文章:

你感兴趣的文章:

标签云: