树莓派4 安装 CentOS8X64 位系统

树莓派4 安装 CentOS8X64 位系统

01 下载安装包及烧录系统

  • 参考
    http://reallyappreciate.com/raspberry-pi-4-8gb-model-with-centos-8/

  • 下载centos8 树莓派镜像
    从网址:https://people.centos.org/pgreco/ 下载。
    wget https://people.centos.org/pgreco/CentOS-Userland-8-stream-aarch64-RaspberryPI-Minimal-4/CentOS-Userland-8-stream-aarch64-RaspberryPI-Minimal-4-sda.raw.xz
    解压为CentOS-Userland-8-stream-aarch64-RaspberryPI-Minimal-4-sda.raw

  • 下载烧录工具

wget https://sourceforge.net/projects/win32diskimager/files/Archive/Win32DiskImager-1.0.0-binary.zip

  • 烧录系统到tf卡上

树莓派4 安装 CentOS8X64 位系统_第1张图片

  • 系统启动及链接
    系统烧录后,不需要做任何设置,加电、连接网线即可ssh登录。
    把tf卡安装到树莓派4上面加电,连接网线
    从路由器管理界面获取ip地址或者使用另外的终端运行命令 arp -a | findstr dc-a6-32 查找树莓派对应的ip地址。
    用ssh工具连接该ip地址
    树莓派4 安装 CentOS8X64 位系统_第2张图片

02 系统初始化

02.01 登录系统

使用ssh远程登录,初始账号,密码(root/centos)
ssh [email protected]
密码:centos

02.02 扩展磁盘

使用df -h命令查看磁盘,烧录盘只启用了2.2GB。使用/usr/bin/rootfs-expand命令扩展可用磁盘空间。

# 查看磁盘空间,只启用了2.2G
[root@MiWiFi-R3-srv ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root       2.2G  1.6G  577M  74% /
devtmpfs        3.8G     0  3.8G   0% /dev
tmpfs           3.9G     0  3.9G   0% /dev/shm
tmpfs           3.9G   17M  3.9G   1% /run
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/mmcblk0p1  286M   54M  232M  19% /boot
tmpfs           782M     0  782M   0% /run/user/0

# 扩展可用磁盘空间
[root@MiWiFi-R3-srv ~]# /usr/bin/rootfs-expand
/dev/mmcblk0p3 /dev/mmcblk0 3
Extending partition 3 to max size ....
CHANGED: partition=3 start=1593344 old: size=4687872 end=6281216 new: size=29992927 end=31586271
Resizing ext4 filesystem ...
resize2fs 1.45.6 (20-Mar-2020)
Filesystem at /dev/mmcblk0p3 is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 2
The filesystem on /dev/mmcblk0p3 is now 3749115 (4k) blocks long.
Done.

# 再查看磁盘空间,16G空间都被启用。
[root@MiWiFi-R3-srv ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        15G  1.6G   13G  12% /
devtmpfs        3.8G     0  3.8G   0% /dev
tmpfs           3.9G     0  3.9G   0% /dev/shm
tmpfs           3.9G   17M  3.9G   1% /run
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/mmcblk0p1  286M   54M  232M  19% /boot
tmpfs           782M     0  782M   0% /run/user/0
[root@MiWiFi-R3-srv ~]# 

02.03 设置无线网络

# 安装网络管理工具
sudo yum install -y NetworkManager-wifi
# 重启系统
reboot
# 查看状态
nmcli d
# 查看可用wifi
nmcli dev wifi
# 设置wifi账号,密码(注意大小写及权限)
#sudo nmcli dev wifi connect "wifi名" password "密码"
sudo nmcli dev wifi connect "zjj23" password "password"
# 如果要切换其它wifi,再次运行该命令,下次启动,会默认连接上次设置的wifi
sudo nmcli dev wifi connect "Xiaomi_ttt" password "xxxx"

############################################
# 设置开机自动连接无线网络
sudo nmcli con mod "zjj23" connection.autoconnect yes
############################################

# 查看状态
nmcli d
# 查看无线网卡ip地址
ip addr show wlan0
# 或 ifconfig 查看

# 配置静态ip地址方法
#配置无线网卡静态ip
nmcli con mod SSID ipv4.addresses 192.168.0.105/24
nmcli con mod SSID ipv4.gateway 192.168.0.1
nmcli con mod SSID ipv4.method manual
nmcli con mod SSID ipv4.dns "8.8.8.8"
nmcli con up SSID
# 查看无线网卡ip地址
ip addr show wlan0

# 拔掉网线,重启系统,检查是否可以自动连接到wifi网络
# 重启后,稍事等待,用命令 arp -a | findstr dc-a6-32 查看ip,能正常找到ip地址。

02.04 创建超级用户

# 添加新用户soft并设置密码
useradd -m -s /bin/bash soft
# 删除用户使用 userdel -r soft
# 为新用户设置密码
passwd soft
# 输入新密码
# 再次输入新密码

# 添加新用户超级管理员权限
# 添加 /etc/sudoers 写权限
chmod +w /etc/sudoers
vi /etc/sudoers
# 在root行后面加入
root	ALL=(ALL)	ALL
# 给soft用户root同等权限
soft	ALL=(ALL)	ALL
# 取消 /etc/sudoers 写权限
chmod -w /etc/sudoers

# 切换到新建用户目录
su soft
cd ~
pwd
# /home/soft

02.05 查看系统信息

# 查看版本 cat /etc/centos-release
[soft@MiWiFi-R3-srv ~]$ cat /etc/centos-release
CentOS Linux release 8.2.2004 (Core) 
# 查看版本 cat /etc/redhat-release
[soft@MiWiFi-R3-srv ~]$ cat /etc/redhat-release
CentOS Linux release 8.2.2004 (Core) 
# 查看版本 cat /proc/version
[soft@MiWiFi-R3-srv ~]$ cat /proc/version
Linux version 5.4.60-v8.1.el8 ([email protected]) (gcc version 8.3.1 20191121 (Red Hat 8.3.1-5) (GCC)) #1 SMP PREEMPT Sun Aug 23 02:58:38 UTC 2020
#查看版本 uname -a
[soft@MiWiFi-R3-srv ~]$ uname -a
Linux MiWiFi-R3-srv 5.4.60-v8.1.el8 #1 SMP PREEMPT Sun Aug 23 02:58:38 UTC 2020 aarch64 aarch64 aarch64 GNU/Linux
# 查看系统位数
[soft@MiWiFi-R3-srv ~]$ getconf LONG_BIT && getconf WORD_BIT
64
32
# 查看cpu lscpu
[soft@MiWiFi-R3-srv ~]$ lscpu
Architecture:        aarch64
Byte Order:          Little Endian
CPU(s):              4
On-line CPU(s) list: 0-3
Thread(s) per core:  1
Core(s) per socket:  4
Socket(s):           1
Vendor ID:           ARM
Model:               3
Model name:          Cortex-A72
Stepping:            r0p3
CPU max MHz:         1500.0000
CPU min MHz:         600.0000
BogoMIPS:            108.00
Flags:               fp asimd evtstrm crc32 cpuid

02.06 安装必要软件

# 安装必备软件
sudo yum install -y gcc gcc-c++ make git cmake vim curl wget tar libtool net-tools
# 可能用到的编程依赖库
sudo yum install -y zlib-devel  ncurses-devel ncurses
# 默认安装的gcc 是 gcc (GCC) 8.4.1 20200928 (Red Hat 8.4.1-1) 版本
# 可以安装更高版本gcc/g++
sudo dnf -y install gcc-toolset-9-gcc gcc-toolset-9-gcc-c++
sudo dnf -y install gcc-toolset-10-gcc gcc-toolset-10-gcc-c++
# 设置gcc10为默认使用版本
sudo source /opt/rh/gcc-toolset-10/enable
# 如果要引用最新的c、c++库,需要把启用的gcc、g++路径设置到 $PATH 环境变量的最前面
export PATH=/opt/rh/gcc-toolset-10/root/usr/bin:$PATH

# 为了修改gcc指定版本永久生效,可以在 /etc/profile、~/.bash_profile, ~/.bashrc 三个文件之一,设置如下内容
source /opt/rh/gcc-toolset-10/enable
export PATH=/opt/rh/gcc-toolset-10/root/usr/bin:$PATH

02.07 更新系统

sudo yum -y update

02.08 安装jdk

# 查看可按装的jdk版本
sudo yum --showduplicate list java* | grep 1.8.0
# 安装指定的jdk版本
sudo yum install -y java-1.8.0-openjdk.aarch64
sudo yum install -y java-1.8.0-openjdk-devel.aarch64

02.09 安装python

# 查看可按装的python版本
sudo yum --showduplicate list python*
# 安装指定的jdk版本
sudo yum install -y python2.aarch64 python38.aarch64

02.10 最后检查设置的环境变量

# 在/etc/profile后面添加的环境变量
export JAVA_HOME=/usr/lib/jvm/java
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib/ext
export PATH=.:$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

02.11 一些杂项

  • CMakeLists.txt的一些内置变量
# 这句话要放到CMakeLists.txt稍微靠后一点儿的位置,太前面会取不到值
message("-- CMAKE_SYSTEM_NAME:" ${CMAKE_SYSTEM_NAME} ",CMAKE_SYSTEM_VERSION:" ${CMAKE_SYSTEM_VERSION} ", CMAKE_CXX_COMPILER_ID:" ${CMAKE_CXX_COMPILER_ID} ", CMAKE_SYSTEM_PROCESSOR:" ${CMAKE_SYSTEM_PROCESSOR} ", CMAKE_SIZEOF_VOID_P:" ${CMAKE_SIZEOF_VOID_P})

set(M64FLAG "-m64")
if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "x86_64") # CentOSX64为系统
    set(M64FLAG "-m64")
elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64") # raspberrypi ubuntu20.04.1X64系统,CentOS8 stream
    set(M64FLAG "")
elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch") # raspberrypi xxx
    set(M64FLAG "")
elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "armv7l") # raspbeerypi armhf系统
    set(M64FLAG "")
else()
endif()
  • C++代码里操作系统架构判断(是操作系统不是硬件cpu)
#   elif defined (__aarch64__)
#   define xxx
#   elif defined (__aarch__)
#   define yyy
#   elif defined (__arm64__)
#   define xxx
#   elif defined (__arm__)
#   define yyy
  • 树莓派几个版本对应的g++版本号
2020-02-13-raspbian-buster 32为编译,g++7.4
ubuntu-20.04.1-preinstalled-server-arm64+raspi.img.xz 62为编译 g++9.3
CentOS-Userland-8-stream-aarch64-RaspberryPI-Minimal-4-sda.raw.xz g++8.3.1
  • 拷贝覆盖保留连接依赖
# -d 保持连接, -f 前置覆盖
cp -d -f /usr/local/boost75/lib64/libboost_filesystem.so.1.75.0 ./
cp -d -f /usr/local/boost75/lib64/libboost_filesystem.so ./
cp -d -f /usr/local/boost75/lib64/libboost_system.so.1.75.0 ./
cp -d -f /usr/local/boost75/lib64/libboost_system.so ./
cp -d -f /usr/local/boost75/lib64/libboost_thread.so.1.75.0 ./
cp -d -f /usr/local/boost75/lib64/libboost_thread.so ./
cp -d -f /usr/local/xerces-c-3.1.1/lib/libxerces-c-3.1.so ./
cp -d -f /usr/local/xerces-c-3.1.1/lib/libxerces-c.so ./

03 安装桌面环境

03.01

# 按照远程连接必备工具, 一定要按照epel-release
sudo yum install -y epel-release xrdp tigervnc-server

# 安装桌面环境
sudo dnf -y groupinstall "Server with GUI" --allowerasing --skip-broken
## 这一步要按照753各包,下载769MB内容,按照2.2GB内容
## Install  753 Packages
## Total download size: 769 M
##Installed size: 2.2 G
## --allowerasing --skip-broken 用于处理包冲突,或无法安装的包,使安装过程走下去。
## 由于已经配置相关环境,可能会和源里的包版本不一致等原因需要使用上述命令。

# 配置selinux
sudo chcon -t bin_t /usr/sbin/xrdp
sudo chcon -t bin_t /usr/sbin/xrdp-sesman

# 设置xrdp服务,开机自动启动
sudo systemctl start xrdp
sudo systemctl enable xrdp

# 打开防火墙,开放范围5900-5910及3389
sudo firewall-cmd --permanent --add-port=5900-5910/tcp
sudo firewall-cmd  --permanent --zone=public --add-port=3389/tcp
sudo firewall-cmd --reload

# 查看xrdp是否启动
sudo systemctl status xrdp.service
sudo ss -antup|grep xrdp

# 用vnc客户端或者mstsc客户端连接即可。

树莓派4 安装 CentOS8X64 位系统_第3张图片
安装后磁盘占用情况:
树莓派4 安装 CentOS8X64 位系统_第4张图片

你可能感兴趣的:(树莓派,centos,linux)