Contents
引言
ARM 处理器已广泛地采用于不同设备内,如:智能电话、平板计算机和微型计算机/底板内。 ARM 处理器的主要优势包括:
- 低耗电量
- 低成本
- 极细尺寸
如欲取得更得有关 ARM 结构的数据,请浏览以下连结:
开始前的特别备注
虽然此页内的大部份数据都适用于 CentOS 7 及 CentOS 8,当中有数个重要的分别。
- KDE 已从 RHEL 8 中删除,因此 CentOS 8 不设有 KDE 映像。
我们仍在探索 RaspberryPi 专用的内核(还有映像)应如何运作才有最大灵活性及最易维护。因此 CentOS 8 只提供「通用」的内核(及映像)。
- CentOS 8 如 CentOS 7 般没有官方 EPEL,但与 7 有所不同,我们不能内部重建,而由于创建内核所需的工具的原故,短期内亦不可能实现。这不等于我们已遗漏了这件事情:我们不断在钻研新的事情,并会发放最新消息。
为何在 armv7hl 底板上安装 CentOS
很多人都有兴趣在这类型平价/规模底板上运行 Linux,作为家居服务器、家用控制器、规模 VPN 端点等(未能尽录)。 虽然很多发行版本已支持这类底板,如果有人已经在服务器/工作台/手提计算机上运用 CentOS x86_64,他大概会有兴趣用同样的工具管理这些规模 armv7hl 底板。 正因如此,CentOS 替换结构 SIG 决定尝试把源码由 CentOS 7 x86_64 移植至 armv7hl/armhfp 平台。
你也许应知道 armv7hl 平台的发行版本被称为 CentOS Userland Linux 而不是 CentOS Linux。个中原因是由于 CentOS 替换结构 SIG 有权加入其它组件,取代某些组件,或不创建上游发行版本的某些组件。内核就是最显著的例子,因为 kernel 3.10.0-*(采用于 CentOS 7 x86_64 版本)及 4.18.0-x (采用于 CentOS 8 x86_64 版本) 并不支持 armv7hl 底板/结构。
获支持的 armhfp 底板
我们现时支持以下底板种类:
RaspberryPi(2 、3 、3B+ 型号)
- 所有乎合下列要求的 armhfp 底板:
- 支持主流/上游的内核(来自 kernel.org)
- 支持上游的 uboot(未经过大量修改)
值得留意的是我们亦备有以下映像:
RaspberryPi —— 采用重建自 https://github.com/raspberrypi/linux 的内核(只供 CentOS 7)
通用 —— 采用重建自 https://www.kernel.org 的 LTS 内核
我们仍保留了 RaspberryPi 的映像,但自 CentOS 7.5.1804 起那采用上游内核的通用映像已能原生地在 R-Pi 底板上运行。(支持仍未完善,但可用性却很高。)
要是你的设备运用 AllWinner 芯片,你应该检查 https://linux-sunxi.org/Linux_mainlining_effort 以便能知道进度。
如何安装 CentOS Userland armv7hl
1. 如何把映像解压至你的底板
第一步是下载适用于你的底板的映像。你的 SD 卡起码要有 4GB。
你可以在这里找到映像(见 [支持底板] 部份):http://mirror.centos.org/altarch/7/isos/armhfp
|
注意:请确定你的 SD 卡路径,因为当你以 sudo 权限执行下列指令时,用错了路径会破坏目标设备上的所有数据!这路径很大机会是 /dev/mmcblk0,但敬请小心! |
下载完你的底板的映像后,请将它转转到 SD 卡:
[root@host ~]# xzcat CentOS-Userland-7-armv7hl-$MODEL-$VARIANT-$RELEASE-sda.raw.xz | dd of=$/path/to/sd/card status=progress bs=4M [root@host ~]# sync
提示: CentOS 7.2.1511 提供的 dd 版本支持 status=progress 参数。如果你采用其它版本或其它发行版本,请先确定这个参数获支持。这个参数并非必须的,它是为了方便而增设的,以便追踪 SD 卡的传输速度。bs=4M 这个参数亦是为了加快 SD 卡的传输率,因为多数 SD 卡的抹除块尺寸为 4MB||
1.1. 安装 uBoot(无须在 RaspberryPi 底板上进行)
完成解压通用映像至 SD 卡后,你还有一个步骤要做。 所需的指命视乎很多因素,主要包括 SoC 供应商及底板类型。
首先你必须安装 uboot 映像:
[root@host ~]# yum install uboot-images-armv7 uboot-images-armv8
假设你是在 linux 计算机上安装至 Bananapro(AllWinner SoC)底板:
[root@host ~]# export boardmodel="Bananapro" [root@host ~]# export sdcard="/dev/mmcblk0" [root@host ~]# dd if=/usr/share/uboot/${boardmodel}/u-boot-sunxi-with-spl.bin of=${sdcard} bs=1024 seek=8 conv=fsync,notrunc
又或者你的底板是 Beagle Bone Black(TI):
[root@host ~]# export boardmodel="am335x_boneblack" [root@host ~]# export sdcard="/dev/mmcblk0" [root@host ~]# dd if=/usr/share/uboot/${boardmodel}/u-boot-spl.bin of=${sdcard} count=1 seek=1 bs=128k [root@host ~]# dd if=/usr/share/uboot/${boardmodel}/u-boot.img of=${sdcard} count=2 seek=1 bs=384k
以下是所有拥有 uboot 档的 armhfp 底板清单(来自 uboot-images-2018.09),以便参考:
A10-OLinuXino-Lime A10s-OLinuXino-M A13-OLinuXino A13-OLinuXinoM A20-Olimex-SOM-EVB A20-OLinuXino-Lime A20-OLinuXino-Lime2 A20-OLinuXino_MICRO a64-olinuxino am335x_boneblack am335x_evm am335x_evm_usbspl am57xx_evm Ampe_A76 arndale Auxtek-T003 Auxtek-T004 avnet_ultra96_rev1 ba10_tv_box Bananapi bananapi_m2_berry Bananapi_M2_Ultra bananapi_m64 Bananapro chiliboard CHIP Chuwi_V7_CW0825 clearfog cl-som-am57x cm_fx6 Colombus colorfly_e708_q1 CSQ_CS908 Cubieboard Cubieboard2 Cubieboard4 Cubietruck Cubietruck_plus db-mv784mp-gp difrnce_dit4350 dragonboard410c dragonboard820c dserve_dsrv9703c espresso7420 evb-rk3229 evb-rk3328 evb-rk3399 fennec-rk3288 firefly-rk3288 firefly-rk3399 geekbox helios4 hikey Hummingbird_A31 Hyundai_A7HD i12-tvbox icnova-a20-swac inet1 iNet_3F iNet_3W inet86dz iNet_86VS inet97fv2 inet98v_rev2 inet9f_rev03 inet_q972 Itead_Ibox_A20 jesurun_q5 jetson-tk1 kc1 khadas-vim Lamobo_R1 libretech_all_h3_cc_h2_plus libretech_all_h3_cc_h5 libretech-cc Linksprite_pcDuino Linksprite_pcDuino3 Linksprite_pcDuino3_Nano liteboard marsboard Marsboard_A10 Mele_A1000 Mele_A1000G_quad Mele_I7 Mele_M3 Mele_M5 Mele_M9 Mini-X mk802 mk802_a10s mk802ii MK808C MSI_Primo73 MSI_Primo81 mvebu_espressobin-88f3720 mvebu_mcbin-88f8040 mx6cuboxi nanopi-k2 nanopi_m1 nanopi_m1_plus nanopi_neo nanopi_neo2 nanopi_neo_plus2 novena odroid odroid-c2 odroid-xu3 omap3_beagle omap3_pandora omap4_panda omap5_uevm Orangepi orangepi_2 orangepi_lite Orangepi_mini orangepi_one orangepi_one_plus orangepi_pc orangepi_pc2 orangepi_pc_plus orangepi_plus orangepi_plus2e orangepi_prime orangepi_r1 orangepi_win orangepi_zero orangepi_zero_plus orangepi_zero_plus2 origen p212 p2371-2180 p2771-0000-500 paz00 pine64_plus pine_h64 polaroid_mid2809pxe04 poplar pov_protab2_ips9 q8_a13_tablet q8_a23_tablet_800x480 q8_a33_tablet_1024x600 q8_a33_tablet_800x480 qemu_arm r7-tv-dongle riotboard rock rock2 rock960-rk3399 rpi_2 rpi_3 rpi_3_32b Sinlinx_SinA31s Sinovoip_BPI_M2 Sinovoip_BPI_M2_Plus Sinovoip_BPI_M3 smdkv310 sopine_baseboard stih410-b2260 sunxi_Gemei_G9 tbs_a711 tinker-rk3288 trimslice turris_mox turris_omnia udoo udoo_neo usbarmory UTOO_P66 vexpress_aemv8a_dram vexpress_aemv8a_juno vexpress_aemv8a_semi vexpress_ca15_tc2 vexpress_ca9x4 wandboard warp warp7 Wexler_TAB7200 Wits_Pro_A20_DKT xilinx_zynqmp_zcu100_revC Yones_Toptech_BS1078_V2 zynq_microzed zynq_zed zynq_zybo
当映像完成传输后,你便可将 SD 卡放进 arm 设备的专用插槽内,然后引导它。
映像安装后的缺省值是:
- root 口令:centos
- eth0 设置:dhcp
- selinux 状况:enforcing
2. 如何更改/扩大 SD 卡的主目录的尺寸
视乎你所采用的 SD 卡容量,你大概会想把主目录(/)扩大为 SD 卡的容量。 我了方便你,我们已加入 cloud-utils-growpart 这个工具,把它包装成 rpm,并收录于 armv7hl 的 Extras 软件库内。
如果你想尽用余下的容量,你只须(以 root 身份或利用 sudo 权限)执行下列指令:
/usr/local/bin/rootfs-expand
3. RaspberryPi 3B 及 3B+ 的 WiFi
CentOS 计划未获授权发放 RaspberryPi 3B/3B+ 的固件。你可阅读下列文章理解问题所在,并取得固件和设置 WiFi。
- 首先,取得我们不能发放的两个固件:
- 接下来,利用 nmcli 连接到无线网络:
4. 在 aarch64(64 位元)主机安装 armv7hl(32 位元)虚拟计算机
你是否拥有一台 CentOS-7 的 aarch64 计算机,并需要执行一台 32 位元的虚拟计算机?……要是这样,以下是一篇由 Fabian Arrotin 张贴的优秀网志(他是 CentOS 小组的一位核心成员):
在 CentOS 7 aarch64 上运行 CentOS 7 armhfp 虚拟计算机
与 AltArch Arm32 群组交流
1. 取得协助
- Wiki 发行注记
- IRC:freenode.net 上的 #centos-arm
2. 贡献给 Arm32 群组
当见问题
1. 我如何更新内核?
视乎你的底板,你可能采用通用或 RaspberryPi 专用内核。 一般来说所有设置都已经自动设置好,不过即使你已经指向正确的软件库,请留意下列细节(视乎底板类型):
1.1. RaspberryPi 2 及 3
yum update 将会引入新的内核,你无须做其它事情。你只要重新开机便能运用新的内核。
1.2. 通用内核
在 centos-userland-release-7-5.1804 之先,你必须执行 /usr/bin/update-boot 才能启用新板内核及更改 /boot/extlinux/extlinux.conf。这已不再适用,而是由 grubby 自动完成。
2. 我如何在 armhfp 启用 EPEL 7?
简单来说,EPEL 没有官方的 armfhp 软件库。 但由于很多用户有此诉求,我们决定利用 centos armhfp 建设器的闲置时段重建 EPEL 7 的源代码组件(并自动跟踪它们)。 请注意这是未经质检或测试的自动建设,所产生的组件亦不获签署。 若要采用该软件库,请遵照以下步骤:
[root@host ~]# cat > /etc/yum.repos.d/epel.repo << EOF [epel] name=Epel rebuild for armhfp baseurl=https://armv7.dev.centos.org/repodir/epel-pass-1/ enabled=1 gpgcheck=0 EOF [root@host ~]#
Translation of revision 30