# 18.4 Radxa X4（x86）开发板

除了树莓派等 ARM 架构单板计算机外，市场上亦提供基于 x86 架构的开发板产品，为不同应用场景提供了更多选择。本章详细介绍 Radxa X4 开发板在 FreeBSD 操作系统上的配置与使用方法。

## Radxa X4 硬件概述

Radxa X4 是一款基于 x86 架构的单板计算机，其核心处理器为英特尔（Intel）N100。本节内容基于 16 GB 内存与 128 GB eMMC 存储的硬件配置进行阐述。

### BIOS 配置说明

如需解锁 PL1、PL2 等功耗限制相关的 BIOS 设置，请参考本书“UEFI/BIOS 注解（基于 AMI BIOS）”章节的相关内容。

### FreeBSD 版本兼容性

建议安装 FreeBSD 15.0-RELEASE 及更高版本来获得最佳硬件兼容性。需要指出的是，FreeBSD 15.0 版本目前存在一个已知问题：CPU 主频无法达到其标称的 3 GHz。该问题的详细技术分析可参考 [Bug 271548 - Alder lake CPU not running at full speed](https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=271548)。

关于 FreeBSD 旧版本的兼容性说明：

* FreeBSD 14.3-RELEASE 存在潜在问题：若使用 eMMC 存储版本且将 FreeBSD 系统安装于 eMMC 上，则固态硬盘的分区数量不得超过 5 个，否则 ZFS 文件系统将无法正常启动。
* FreeBSD 14.2-RELEASE 似乎不支持 CPU 睿频（Turbo Boost）的动态调节功能。

### 硬件配置信息

Radxa X4 配备的无线网卡型号为 RTL8852BE（即瑞莎 A8 无线模块 V2.0），其中无线局域网功能通过 PCIe 通道实现，而蓝牙功能则通过 USB 通道提供。

Radxa X4 的有线以太网控制器型号为英特尔 i226-V。

## 显卡驱动安装与配置

### 驱动程序安装

显卡驱动是图形子系统正常工作的基础，正确安装显卡驱动能够确保系统获得稳定的图形输出和良好的图形性能表现。本节介绍显卡驱动的安装方法。

**使用 pkg 二进制包管理器安装：**

```sh
# pkg install drm-61-kmod
```

**或使用 Port 从源码构建安装：**

```sh
# cd /usr/ports/graphics/drm-61-kmod/ 
# make install clean
```

### 驱动加载配置

完成显卡驱动安装后，需进行相应的系统配置，以确保驱动模块在系统启动时自动加载。在 `/etc/rc.conf` 配置文件中添加 `i915kms` 内核模块至开机自动加载列表：

```sh
# sysrc -f /etc/rc.conf kld_list+=i915kms
```

## 无线网卡驱动安装与配置

### 驱动程序安装

无线网络连接是现代计算设备的基本功能之一，正确安装与配置无线网卡驱动可为用户提供便捷的无线网络接入方式。本节介绍无线网卡驱动的安装方法。

**使用 pkg 二进制包管理器安装：**

```sh
# pkg install wifi-firmware-rtw89-kmod
```

**或使用 Ports 集从源码构建安装：**

```sh
# cd /usr/ports/net/wifi-firmware-rtw89-kmod/ 
# make install clean
```

### 无线网络性能配置

完成无线网卡驱动安装后，还需进行必要的配置以优化无线连接的稳定性与性能。需要说明的是，当前驱动尚不支持 Wi-Fi 5/6 标准。

在 2.4 GHz 频段，传输速率仅能达到 802.11n 标准；在 5 GHz 频段，传输速率仅能达到 802.11 a 标准。

根据 [rtw89 官方手册](https://man.freebsd.org/cgi/man.cgi?query=rtw89\&apropos=0\&sektion=4\&manpath=FreeBSD+15.0-CURRENT\&arch=default\&format=html)，编辑 `/boot/loader.conf` 配置文件，添加以下参数：

```ini
compat.linuxkpi.skb.mem_limit=1
```

该参数将 Linux KPI 网络缓冲区内存限制设置为 `1`，此配置可解决系统长时间运行后 Wi-Fi 无法自动重连的问题。

## 系统实时状态监控

### 资源使用监控

系统状态实时监控是系统运维工作的重要组成部分，通过持续监控可及时发现系统异常和性能瓶颈。本节介绍如何查看系统实时状态。以下命令每秒刷新一次虚拟内存及系统状态综合信息：

```sh
# systat -vmstat 1
    2 users    Load  2.01  3.28  3.42                  Mar  9 12:26:41
   Mem usage:  91%Phy 52%Kmem                           VN PAGER   SWAP PAGER
Mem:      REAL           VIRTUAL                        in   out     in   out
       Tot   Share     Tot    Share     Free   count
Act   432M  10400K   4610G   15868K    1373M   pages
All   434M  12244K   4610G   87652K                       ioflt  Interrupts
Proc:                                                     cow    3273 total
  r   p   d    s   w   Csw  Trp  Sys  Int  Sof  Flt   663 zfod        sdhci_pci0
  1           41        4K  684  138   2K       663       ozfod  1030 cpu0:timer
                                                         %ozfod   204 cpu1:timer
 0.2%Sys   0.2%Intr 25.3%User  0.0%Nice 74.3%Idle         daefr     3 cpu2:timer
|    |    |    |    |    |    |    |    |    |    |       prcfr     9 cpu3:timer
>>>>>>>>>>>>>                                             totfr  2022 xhci1 129
                                           dtbuf          react       igc0:rxq0
Namei     Name-cache   Dir-cache    345474 maxvn          pdwak     3 igc0:rxq1
   Calls    hits   %    hits   %    252374 numvn      249 pdpgs       igc0:rxq2
       3       3 100                176597 frevn          intrn     2 igc0:rxq3
                                                    8298M wire        igc0:aq
Disks mmcsd mmcsd mmcsd  nda0 pass0                  581M act         nvme0:admi
KB/t   0.00  0.00  0.00  0.00  0.00                 5380M inact       nvme0:io0
tps       0     0     0     0     0                  548K laund       nvme0:io1
MB/s   0.00  0.00  0.00  0.00  0.00                 1373M free        nvme0:io2
%busy     0     0     0     0     0                   57K buf         nvme0:io3
                                                                      hdac0 140
```

## CPU 温度监控

### 温度监控的意义

CPU 温度监控对于确保设备长期稳定运行和延长硬件使用寿命至关重要。过高的工作温度可能导致系统不稳定、性能降频甚至硬件永久性损坏。

### CPU 温度读取方法

本节介绍如何读取 CPU 温度信息。首先动态加载 `coretemp` 内核模块，该模块用于英特尔处理器的温度监控：

```sh
# kldload coretemp # 英特尔处理器加载 coretemp 模块，AMD 处理器请使用 amdtemp
# sysctl -a | grep temperature
hw.acpi.thermal.tz0.temperature: 27.9C # 此值不代表 CPU 核心温度，通常为主板环境温度
dev.cpu.3.temperature: 41.0C
dev.cpu.2.temperature: 40.0C
dev.cpu.1.temperature: 40.0C
dev.cpu.0.temperature: 40.0C
```

若需单独查看各 CPU 核心的温度信息，可执行以下命令：

```sh
# sysctl dev.cpu | grep temperature
dev.cpu.3.temperature: 30.0C
dev.cpu.2.temperature: 30.0C
dev.cpu.1.temperature: 29.0C
dev.cpu.0.temperature: 30.0C
```

### 温度监控配置持久化

为确保每次系统启动后都能正常进行 CPU 温度监控，需将温度监控模块的加载配置持久化。为便于 htop 等系统监控软件读取 CPU 温度信息，编辑 `/boot/loader.conf` 配置文件，添加以下内容：

```ini
coretemp_load="YES"
```

该配置可使系统在开机时自动加载 `coretemp` 内核模块。

### 参考文献

* FreeBSD Project. coretemp(4)\[EB/OL]. \[2026-03-25]. <https://man.freebsd.org/cgi/man.cgi?coretemp>. FreeBSD 官方 coretemp 模块 man 手册，用于 Intel 处理器温度监控。
* FreeBSD Project. amdtemp(4)\[EB/OL]. \[2026-03-25]. <https://man.freebsd.org/cgi/man.cgi?amdtemp>. FreeBSD 官方 amdtemp 模块 man 手册，用于 AMD 处理器温度监控。
* Vivek Gite. FreeBSD find CPU (processor) temperature command\[EB/OL]. (2022-06-16)\[2026-03-25]. <https://www.cyberciti.biz/faq/freebsd-determine-processor-cpu-temperature-command/>. 介绍了 FreeBSD 下读取 CPU 温度的方法与命令。

## 附录：Server 2025 如何安装英特尔 i226-V 网卡驱动

除了 FreeBSD 系统外，部分用户可能需要在 Windows Server 系统上使用 Radxa X4 开发板。

本附录介绍在 Windows Server 2025 上安装英特尔 i226-V 网卡驱动的方法。i226-V 在 Windows Server 下可使用 I226-LM 驱动（I226-LM 与 I226-V 硬件规格与功能完全兼容），无需修改任何文件或系统配置。

操作步骤如下：

1. 首先下载并解压 [适用于 Windows Server 2025\* 的英特尔 ® 网络适配器驱动程序](https://www.intel.cn/content/www/cn/zh/download/838943/intel-network-adapter-driver-for-windows-server-2025.html)
2. 打开设备管理器，找到以太网控制器
3. 在其属性页面选择“更新驱动程序”
4. 点击“浏览我的计算机以查找驱动程序软件”
5. 选择“让我从计算机上的可用驱动程序列表中选取”
6. 在“从以下列表选择设备的类型”里选择“网络适配器”
7. 在“选择要为此硬件安装的设备驱动程序”界面中，点击右下方的“从磁盘安装”按钮
8. 点击“浏览”，找到驱动文件中的 `e2f.inf`，点击“确定”
9. 选择条目“Intel(R) Ethernet Controller I226-LM”即可

### 参考文献

* 当我凝望深渊. 华硕主板板载 Intel i225-V 和 i226-V 网卡驱动在 Windows server 2019 下的安装\[EB/OL]. (2023-04-25)\[2026-03-25]. <https://zhuanlan.zhihu.com/p/624820359>. 详述了 Intel i225-V 和 i226-V 网卡在 Windows Server 环境下的驱动安装方法。

## 课后习题

1. 查找 FreeBSD 15.0 关于 Intel N100 CPU 主频问题的相关讨论，补充一个完整的性能优化配置方案，在 Radxa X4 上进行基准测试并对比结果。
2. 测试树莓派组件在 FreeBSD 下的使用情况，并进行优化。
