[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. 如何把映像解壓至你的底板

第一步是下載適用於你的底板的映像。視乎你所選取的套件(即是:Minimal、GNOME 或 KDE),你必須擁有 4GB(或更大)的 SD 卡: http://isoredirect.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:23