[FrontPage] [TitleIndex] [WordIndex

This is a read-only archived version of wiki.centos.org

引言

ARM 处理器已广泛地采用于不同设备内,如:智能电话、平板计算机和微型计算机/底板内。 ARM 处理器的主要优势包括:

如欲取得更得有关 ARM 结构的数据,请浏览以下连结:

开始前的特别备注

虽然此页内的大部份数据都适用于 CentOS 7 及 CentOS 8,当中有数个重要的分别。

为何在 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 的映像,但自 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

ArtWork/WikiDesign/icon-admonition-error.png

注意:请确定你的 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

ArtWork/WikiDesign/icon-admonition-idea.png 提示: 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 设备的专用插槽内,然后引导它。

映像安装后的缺省值是:

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

采用 Fedora 的 Raspberry Pi 3 B+

利用 nmcli 指令连接到无线网络

4. 在 aarch64(64 位元)主机安装 armv7hl(32 位元)虚拟计算机

你是否拥有一台 CentOS-7 的 aarch64 计算机,并需要执行一台 32 位元的虚拟计算机?……要是这样,以下是一篇由 Fabian Arrotin 张贴的优秀网志(他是 CentOS 小组的一位核心成员):

在 CentOS 7 aarch64 上运行 CentOS 7 armhfp 虚拟计算机

与 AltArch Arm32 群组交流

1. 取得协助

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


2023-09-11 07:24