Raspberry Pi 4B 安装 CentOS 8(64bit)
<p><span style="font-size: 16px; font-family: 仿宋">最近新入手一块Raspberry Pi 4B 8G的板子,想在这块板子上搭建CentOS 8的环境,经过多次尝试终于安装成功。</span></p><p><span style="font-size: 16px; font-family: 仿宋">准备条件:</span></p>
<p><span style="font-size: 16px; font-family: 仿宋">1.Raspberry Pi 4B 板子 + SD卡</span></p>
<p><span style="font-size: 16px; font-family: 仿宋">2.网线一根,用于连接到路由器。</span></p>
<p><span style="font-size: 16px; font-family: 仿宋">3.下载Centos 8 for Raspberry Pi镜像文件</span></p>
<p><span style="font-size: 16px; font-family: 仿宋">4.下载烧录软件etcher</span></p>
<p><span style="font-size: 16px; font-family: 仿宋"> </span></p>
<p><span style="font-size: 16px; font-family: 仿宋"><strong>安装Centos8</strong></span></p>
<p><span style="font-size: 16px; font-family: 仿宋">首先下载CentOS 8的系统镜像CentOS-Userland-8-stream-aarch64-RaspberryPI-Minimal-4-sda.raw,然后使用etcher将镜像烧录到SD卡。烧录完成后,将SD卡插入RaspberryPi 4B,并同时用网线连接到路由器。登录路由器后台查看RaspberryPi 4B的Ip,然后使用PuTTY登录到Raspberry Pi 4B(账号root,密码centos)。</span></p>
<p><span style="font-family: 仿宋; font-size: 16px"> <img src="https://img2020.cnblogs.com/blog/157107/202009/157107-20200920211139622-77919799.png" alt="" loading="lazy"></span></p>
<p><span style="font-family: 仿宋; font-size: 16px"> 由于是最小安装,所以会缺少一些功能。如果想要使用这些功能,只能通过手动来安装。首先运行命令 df -h检查一下看看显示的磁盘容量是否比实际的小。</span></p>
<p><span style="font-family: 仿宋; font-size: 16px"> <img src="https://img2020.cnblogs.com/blog/157107/202009/157107-20200920211201110-1352473667.png" alt="" loading="lazy"></span></p>
<p><span style="font-family: 仿宋; font-size: 16px"> 我的SD卡是16G,所以我的系统显示的容量比我的实际容量小。如果是这种情况的话,拷贝并运行下面的Script来扩展恢复磁盘容量。</span></p>
<div class="cnblogs_code">
<pre>#!/bin/<span style="color: rgba(0, 0, 0, 1)">bash
</span><span style="color: rgba(0, 0, 255, 1)">clear</span><span style="color: rgba(0, 0, 0, 1)">
part</span>=$(<span style="color: rgba(0, 0, 255, 1)">mount</span> |<span style="color: rgba(0, 0, 255, 1)">grep</span> <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">^/dev.* / </span><span style="color: rgba(128, 0, 0, 1)">'</span> |<span style="color: rgba(0, 0, 255, 1)">awk</span> <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">{print $1}</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">)
</span><span style="color: rgba(0, 0, 255, 1)">if</span> [ -z <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">$part</span><span style="color: rgba(128, 0, 0, 1)">"</span> ];<span style="color: rgba(0, 0, 255, 1)">then</span>
<span style="color: rgba(0, 0, 255, 1)">echo</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Error detecting rootfs</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
exit </span>-<span style="color: rgba(128, 0, 128, 1)">1</span>
<span style="color: rgba(0, 0, 255, 1)">fi</span><span style="color: rgba(0, 0, 0, 1)">
dev</span>=$(<span style="color: rgba(0, 0, 255, 1)">echo</span> $part|<span style="color: rgba(0, 0, 255, 1)">sed</span> <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">s/*$//g</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">)
devlen</span>=<span style="color: rgba(0, 0, 0, 1)">${#dev}
num</span>=<span style="color: rgba(0, 0, 0, 1)">${part:$devlen}
</span><span style="color: rgba(0, 0, 255, 1)">if</span> [[ <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">$dev</span><span style="color: rgba(128, 0, 0, 1)">"</span> =~ ^/dev/mmcblk[<span style="color: rgba(128, 0, 128, 1)">0</span>-<span style="color: rgba(128, 0, 128, 1)">9</span>]*p$ ]];<span style="color: rgba(0, 0, 255, 1)">then</span><span style="color: rgba(0, 0, 0, 1)">
dev</span>=${dev:<span style="color: rgba(128, 0, 128, 1)">0</span>:-<span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">}
</span><span style="color: rgba(0, 0, 255, 1)">fi</span>
<span style="color: rgba(0, 0, 255, 1)">if</span> [ ! -x /usr/bin/growpart ];<span style="color: rgba(0, 0, 255, 1)">then</span>
<span style="color: rgba(0, 0, 255, 1)">echo</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Please install cloud-utils-growpart (sudo yum install cloud-utils-growpart)</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
exit </span>-<span style="color: rgba(128, 0, 128, 1)">2</span>
<span style="color: rgba(0, 0, 255, 1)">fi</span>
<span style="color: rgba(0, 0, 255, 1)">if</span> [ ! -x /usr/sbin/resize2fs ];<span style="color: rgba(0, 0, 255, 1)">then</span>
<span style="color: rgba(0, 0, 255, 1)">echo</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Please install e2fsprogs (sudo yum install e2fsprogs)</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
exit </span>-<span style="color: rgba(128, 0, 128, 1)">3</span>
<span style="color: rgba(0, 0, 255, 1)">fi</span>
<span style="color: rgba(0, 0, 255, 1)">echo</span><span style="color: rgba(0, 0, 0, 1)"> $part $dev $num
</span><span style="color: rgba(0, 0, 255, 1)">echo</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Extending partition $num to max size ....</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
growpart $dev $num
</span><span style="color: rgba(0, 0, 255, 1)">echo</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Resizing ext4 filesystem ...</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
resize2fs $part
</span><span style="color: rgba(0, 0, 255, 1)">echo</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Done.</span><span style="color: rgba(128, 0, 0, 1)">"</span>
<span style="color: rgba(0, 0, 255, 1)">df</span> -h |<span style="color: rgba(0, 0, 255, 1)">grep</span> $part</pre>
</div>
<p><span style="font-family: 仿宋; font-size: 16px">执行上述命令后发现SD卡容量恢复的正常。</span></p>
<p><span style="font-family: 仿宋; font-size: 16px"><img src="https://img2020.cnblogs.com/blog/157107/202009/157107-20200920211221109-1637187643.png" alt="" loading="lazy"></span></p>
<p><span style="font-family: 仿宋; font-size: 16px"> <strong>WiFi网络配置</strong></span></p>
<p><span style="font-family: 仿宋; font-size: 16px">由于网线连接路由器比较麻烦,不能把Raspberry Pi 4B 电脑边上,这样就不方便随时调试。因此我决定配置WiFi,后面的配置都使用WiFi来进行连接网络 ,彻底甩掉网线的牵绊。使用下面命令连接WiFi,注意双引号是英文格式的。</span></p>
<div class="cnblogs_code">
<pre>nmcli dev wifi con "wifi名称" password "wifi密码"</pre>
</div>
<p><span style="font-family: 仿宋; font-size: 16px"><span lang="ZH-CN">然后使用</span>nmcli conn <span lang="ZH-CN">命令来查看</span>WiFi<span lang="ZH-CN">连接情况。如下图所示可以发现</span>WiFi<span lang="ZH-CN">已经连接成功,由于网线被我拔掉了所以只显示出</span>WiFi<span lang="ZH-CN">的连接信息。</span></span></p>
<p><span style="font-family: 仿宋; font-size: 16px"><img src="https://img2020.cnblogs.com/blog/157107/202009/157107-20200920211321220-306107267.png" alt="" loading="lazy"></span></p>
<p><span style="font-family: 仿宋; font-size: 16px"> <strong>配置无线网卡静态ip</strong></span></p>
<p><span style="font-family: 仿宋; font-size: 16px">由于RaspberryPi 4B每次重启后,ip可能会变动,为了方便不想每次都去查找ip,所以设置WiFi静态ip。有两种方式来设置,一是使用路由器后台绑定ip和MAC。二是使用命令或网络脚本来设置,我选择使用命令来操作。</span></p>
<p><span style="font-family: 仿宋; font-size: 16px">将ip 地址(192.168.0.105)非配给无线网卡wlan0,可能由于连接WiFi时未指定连接名称,WiFi连接信息保存文件就是用SSID名称命名了,所以这里要使用SSID来设置。</span></p>
<div class="cnblogs_code">
<pre>nmcli con mod SSID ipv4.addresses <span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">0.105</span>/<span style="color: rgba(128, 0, 128, 1)">24</span></pre>
</div>
<p><span style="font-family: 仿宋; font-size: 16px">设置网关</span></p>
<div class="cnblogs_code">
<pre>nmcli con mod SSID ipv4.gateway <span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">0.1</span></pre>
</div>
<p><span style="font-family: 仿宋; font-size: 16px">设置手动配置静态DHCP</span></p>
<div class="cnblogs_code">
<pre>nmcli con mod SSID ipv4.method manual</pre>
</div>
<p><span style="font-family: 仿宋; font-size: 16px">设置DNS 为 “8.8.8.8”</span></p>
<div class="cnblogs_code">
<pre>nmcli con mod SSID ipv4.dns "<span style="color: rgba(128, 0, 128, 1)">8.8</span>.<span style="color: rgba(128, 0, 128, 1)">8.8"</span></pre>
</div>
<p><span style="font-family: 仿宋; font-size: 16px"> </span><span style="font-family: 仿宋; font-size: 16px">保存上述设置并重启网卡</span></p>
<div class="cnblogs_code">
<pre>nmcli con up SSID</pre>
</div>
<p><span style="font-family: 仿宋; font-size: 16px">查看wlan0网卡信息,是否正确分配ip(如果绑定的ip和当前分配的ip不同,则需要重新连接putty)</span></p>
<div class="cnblogs_code">
<pre>ip addr show wlan0</pre>
</div>
<p><span style="font-family: 仿宋; font-size: 16px"> <img src="https://img2020.cnblogs.com/blog/157107/202009/157107-20200920211340478-1302483536.png" alt="" loading="lazy"></span></p>
<p><span style="font-family: 仿宋; font-size: 16px"> <strong>安装桌面环境</strong></span></p>
<p><span style="font-family: 仿宋; font-size: 16px">以后可能需要同在RaspberryPi 4B 上设置GUI相关的操作,所以我现在需要安装桌面环境。</span></p>
<div class="cnblogs_code">
<pre>dnf update -<span style="color: rgba(0, 0, 0, 1)">y
dnf groupinstall "Server with GUI" </span>--allowerasing --skip-broken -y</pre>
</div>
<p><span style="font-family: 仿宋; font-size: 16px">--allowerasing --skip-broken 用于处理包冲突,或无法安装的包,使安装过程走下去。由于已经配置相关环境,可能会和源里的包版本不一致等原因需要使用上述命令。</span></p>
<p><span style="font-family: 仿宋; font-size: 16px">安装桌面环境可能花费时间较多,需要耐心等待一会。</span></p>
<p><strong><span style="font-family: 仿宋; font-size: 16px">配置VNC</span></strong></p>
<p><span style="font-family: 仿宋; font-size: 16px">同时配置使用SSH和VNC可能会更方便使用RaspberryPi 4B,所以安装完桌面环境后我把VNC服务器也安装了。</span></p>
<div class="cnblogs_code">
<pre>dnf <span style="color: rgba(0, 0, 255, 1)">install</span> tigervnc-server</pre>
</div>
<p><span style="font-family: 仿宋; font-size: 16px">安装完之后使用</span></p>
<div class="cnblogs_code">
<pre>vncserver</pre>
</div>
<p> <span style="font-family: 仿宋; font-size: 16px">命令来执行初始化和设置密码。</span></p>
<p><span style="font-family: 仿宋; font-size: 16px"> <img src="https://img2020.cnblogs.com/blog/157107/202009/157107-20200920211356346-1249609847.png" alt="" loading="lazy"></span></p>
<p><span style="font-family: 仿宋; font-size: 16px">设置完密码后开始启动VNC服务,同时设置为开机启动。</span></p>
<div class="cnblogs_code">
<pre>systemctl --user enable vncserver@:<span style="color: rgba(128, 0, 128, 1)">1</span>.service--now</pre>
</div>
<p><span style="font-family: 仿宋; font-size: 16px">然后执行如下命令,在系统启动后、用户登录前服务可以正常启动并保持运行状态。</span></p>
<div class="cnblogs_code">
<pre>loginctl enable-linger</pre>
</div>
<p><span style="font-family: 仿宋; font-size: 16px">最后看看VNC服务是否启动成功</span></p>
<div class="cnblogs_code">
<pre>systemctl --user status vncserver@:<span style="color: rgba(128, 0, 128, 1)">1</span>.service</pre>
</div>
<p><span style="font-family: 仿宋; font-size: 16px"> <img src="https://img2020.cnblogs.com/blog/157107/202009/157107-20200920211407399-1405439250.png" alt="" loading="lazy"></span></p>
<p><span style="font-family: 仿宋; font-size: 16px">然后开放5900端口通过防火墙,这里设置一个范围5900-5910。</span></p>
<div class="cnblogs_code">
<pre><span style="font-family: 楷体">firewall-cmd --permanent --add-port=<span style="color: rgba(128, 0, 128, 1)">5900</span>-<span style="color: rgba(128, 0, 128, 1)">5910</span>/tcp</span></pre>
</div>
<p><span style="font-family: 仿宋; font-size: 16px">最后重启防火墙,使之生效。</span></p>
<div class="cnblogs_code">
<pre>firewall-cmd --reload</pre>
</div>
<p><span style="font-family: 仿宋; font-size: 16px"> 使用VNC Viewer连接RaspberryPi 4B远程桌面</span></p>
<p><span style="font-family: 仿宋; font-size: 16px"> <img src="https://img2020.cnblogs.com/blog/157107/202009/157107-20200920211420620-1759981144.png" alt="" loading="lazy"></span></p>
<p><span style="font-family: 仿宋; font-size: 16px">输入密码之后就连接到远程桌面。</span></p>
<p><span style="font-family: 仿宋; font-size: 16px"><img src="https://img2020.cnblogs.com/blog/157107/202009/157107-20200920211431966-615773362.png" alt="" loading="lazy"></span></p>
<p><span style="font-family: 仿宋; font-size: 16px">参考资料:</span></p>
<p><span style="font-family: 仿宋; font-size: 16px">http://reallyappreciate.com/raspberry-pi-4-8gb-model-with-centos-8/</span></p><br><br>
来源:https://www.cnblogs.com/xiagezhao/p/13702350.html
頁:
[1]