常见系统命令

1. 系统版本检查

使用以下命令检查当前系统的版本。

cat /etc/version

2. hrut_utilities 工具集

hrut_utilities 是一套用于芯片侧采集/设置系统信息的工具集,主要包括板卡 ID 查询/设置,BPU 状态监控,DDR 状态监控, 温度传感器读数及 CPU/BPU 频率实时信息查询,IP/MAC 地址查询与设置等,具体说明如下:

2.1 hrut_boardid

用于获取/设置开发板 Boardid。其中具体 ID 定义为:

含义

长度

取值范围

Model

DDR 厂商

4Bits

0x0:自动检测;0x1:海力士;0x2:镁光;0x3:三星

DDR Type

DDR 类型

4Bits

0x0:自动检测;0x1: LPDDR4;0x2: LPDDR4X;0x3: DDR4;0x4: DDR3L

Frequency

DDR 频率

4Bits

0x0:自动检测;0x1: 667;0x2: 1600;0x3: 2133;0x4: 2666;0x5: 3200;0x6: 3733;0x7: 4266

Capacity

DDR 容量

4Bits

0x0:自动检测;0x1: 1GB;0x2: 2GB;0x3: 4GB

ECC

ECC 配置

4Bits

0x0: Default;0x1: inline ECC All;0x2: inline ECC option1;0x3: inline ECC option2

SOM Type

SOM 类型

4Bits

0x0:自动检测;0x1: X3;0x2: J3

Alternative

额外设置

4Bits

0x0: Default;0x1: Config1

Board Type

底板类型

4Bits

0x1: X3 DVB;0x2: J3 DVB;0x3: CVB

命令与示例如下所示:

Example: hrut_boardid g
Options:
  g get board id(veeprom)
  s set board id(veeprom)
  G get board id(bootinfo)
  S set board id(bootinfo)
  c clear board id(veeprom)
  C clear board id(bootinfo)
  h  display this help text

// 读取 boardid(veeprom)
root@x3dvbx3-hynix1G-2666:~# hrut_boardid g
11410101

// 设置 boardid(veeprom)
root@x3dvbx3-hynix1G-2666:~# hrut_boardid s 11410101
set board id = 11410101

// 读取 boardid(bootinfo)
root@x3dvbx3-hynix1G-2666:~# hrut_boardid G
00

// 设置 boardid(bootinfo)
root@x3dvbx3-hynix1G-2666:~# hrut_boardid S 11410101
change board id from 0 to 11410101

Tip

注意 Boardid 会影响到启动时,SOM板的初始化,请谨慎设置。

2.2 hrut_bpuprofile

用于设置 BPU 状态,例如调节每个 BPU 频率、电源上电/掉电、时钟打开/关闭,脚本帮助文档如下:

root@x3sdbx3-samsung2G-3200:~# hrut_bpuprofile
bpu core error,you should select 0/1/2
BPU PROFILE HELP INFORMATION
>>> -b/--bpu         [BPU CORE,0--bpu0,1--bpu1,2--ALL BPU] (required)
>>> -p/--power       [POWER OFF/ON,0--OFF,1--ON]
>>> -c/--clock       [CLOCK OFF/ON,0--OFF,1--ON]
>>> -e/--enabletime  [GET FC TIME/ON,0--OFF,1--ON]
>>> -t/--time        [GET FC TIME,NO ARGUMENT]
>>> -f/--frq         [SET BPU FREQUENCY,ARGUMENT:N]
>>> -r/--ratio       [BPU RATIO,N--N TIMES,0--FOREVER]

常见使用方式包括:

// 查看 2 个 bpu 的使用率
root@x3sdbx3-samsung2G-3200:~# hrut_bpuprofile -b 2 -r 0
BPU   RATIO    FREE QUEUE
0     99%       1020
1     99%       1024

// 设置 bpu0 的频率为 400M
root@x3sdbx3-samsung2G-3200:~# hrut_bpuprofile -b 0 -f 400000000

// bpu1 掉电
root@x3sdbx3-samsung2G-3200:~# hrut_bpuprofile -b 1 -p 0

// 查看 fc 执行时间
// 首先开始记录 fc 执行时间功能
root@x3sdbx3-samsung2G-3200:~# hrut_bpuprofile -b 2 -e 1
// 查看记录的 fc 执行时间
root@x3sdbx3-samsung2G-3200:~# hrut_bpuprofile -b 2 -t
// 不使用该功能之后,可以将其关闭
root@x3sdbx3-samsung2G-3200:~# hrut_bpuprofile -b 2 -e 0

2.3 hrut_mac

用于设置当前板子网卡 MAC 相关参数

// 写入
hrut_mac s aa:bb:cc:dd:ee:ff

// 读取
hrut_mac g

2.4 hrut_somstatus

用于实时查询温度传感器读数及 CPU/BPU 频率实时信息

root@x3sdbx3-samsung2G-3200:~# hrut_somstatus
=====================1=====================
temperature-->
    CPU      : 72.8 (C)
cpu frequency-->
      min       cur     max
    cpu0: 240000    1200000 1200000
    cpu1: 240000    1200000 1200000
    cpu2: 240000    1200000 1200000
    cpu3: 240000    1200000 1200000
bpu status information---->
      min        cur             max             ratio
    bpu0: 400000000 1000000000      1000000000      100
    bpu1: 400000000 1000000000      1000000000      100

2.5 hurt_ipfull

用于设置板子 IP 相关参数。配置完成,板子下次上电会自动配置 IP,MASK,GATEWAY 信息。

// 写入
// hrut_ipfull s IP MASK GATEWAY
root@x3sdbx3-samsung2G-3200:~# hrut_ipfull s 192.168.1.10 255.255.255.0 192.168.1.255

// 读取
root@x3sdbx3-samsung2G-3200:~# hrut_ipfull g
ip=192.168.1.10
mask=255.255.255.0
gw=192.168.1.255

// 清除
// 一旦清除后,板子下次上电会使用默认地址 192.168.1.10
root@x3sdbx3-samsung2G-3200:~# hrut_ipfull c

2.6 hrut_ddr

设置 DDR Qos,查询 DDR 各个端口的带宽,详细请参考 ddkdocdsp 目录下的《X3平台系统软件用户手册》和《J3平台系统软件用户手册》。

3. Thermal 配置使用指南

在 x3 里面一共有三个 cooling(降温)设备,分别为 cooling_device0:cnn0cooling_device1: cnn1cooling_device2: cpu。 目前对于这些设备采用默认降温策略为 step_wise,你可以根据你的需求进行调整。

// 查询当前策略
cat /sys/class/thermal/thermal_zone0/policy

// 支持的策略类型为 “user_space”、“step_wise”。
cat /sys/class/thermal/thermal_zone0/available_policies

// 切换到 user_space
echo user_space > /sys/class/thermal/thermal_zone0/policy
ls -l /sys/devices/virtual/thermal/thermal_zone0
// 可看到有三个 trip_point。目前默认选择的 trip_point 是 trip_point_1_temp(温度是 75)。
// 如果想要调整 trip_point_1_temp 温度值
echo 85000 > /sys/devices/virtual/thermal/thermal_zone0/trip_point_1_temp

4. CPU 调频说明

CPU 的调频策略默认是 “ondemand”,会根据负载自动调整频率。在作某些性能测试时,可以把 CPU 频率固定在最高值或设定为某个值。

// CPU 频率固定在最高值:
echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

// 固定为某个值:
// 首先,设置 userspace 为当前调频策略:
echo userspace> /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
// 查看有哪些频率:
cat /sys/devices/system/cpu/cpufreq/policy0/scaling_available_frequencies
// 设为 500M:
echo 500000 > /sys/devices/system/cpu/cpufreq/policy0/scaling_setspeed

// 查看 CPU 当前频率:
cat /sys/devices/system/cpu/cpufreq/policy0/cpuinfo_cur_freq