树莓派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卡上
- 系统启动及链接
系统烧录后,不需要做任何设置,加电、连接网线即可ssh登录。
把tf卡安装到树莓派4上面加电,连接网线。
从路由器管理界面获取ip地址或者使用另外的终端运行命令arp -a | findstr dc-a6-32
查找树莓派对应的ip地址。
用ssh工具连接该ip地址
02 系统初始化
02.01 登录系统
使用ssh远程登录,初始账号,密码(root/centos)ssh root@192.168.31.228
密码: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"
# 查看状态
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 (mockbuild@pkt-02.dev.centos.org) (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
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客户端连接即可。
安装后磁盘占用情况:
来源:oschina
链接:https://my.oschina.net/u/4306166/blog/4912174