参考
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
arp -a | findstr dc-a6-32
查找树莓派对应的ip地址。使用ssh远程登录,初始账号,密码(root/centos)
ssh [email protected]
密码:centos
使用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 ~]#
# 安装网络管理工具
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地址。
# 添加新用户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
# 查看版本 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
# 安装必备软件
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
sudo yum -y update
# 查看可按装的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
# 查看可按装的python版本
sudo yum --showduplicate list python*
# 安装指定的jdk版本
sudo yum install -y python2.aarch64 python38.aarch64
# 在/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
# 这句话要放到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()
# elif defined (__aarch64__)
# define xxx
# elif defined (__aarch__)
# define yyy
# elif defined (__arm64__)
# define xxx
# elif defined (__arm__)
# define yyy
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 ./
# 按照远程连接必备工具, 一定要按照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客户端连接即可。