12.5.3. 系统软件自带常用工具

12.5.3.1. 采集/设置系统信息的工具集

12.5.3.1.1. BPU状态设置工具 hrut_bpuprofile

hrut_bpuprofile 工具可用来调频、开关BPU电源、开关BPU时钟、查看BPU使用率、获取function call(fc)时间等。 其参数介绍如下:

12.5.3.1.1.1. 参数说明

-b

用于设置所使用的BPU核:0 为BPU0;1 为BPU1;2 为all。

-p

用于设置电源掉电/上电,0 为OFF,1 为ON。

-c

用于设置时钟(CLOCK) ON/OFF, 0 为OFF;1 为ON。

-f

用于设置BPU频率。 比如: n 为设置BPU频率为n。

-r

查看BPU使用率,比如: n 为查看n次,0 为时钟查看。

-e

使能查看fc执行时间功能(这是一个兼容参数,J5默认已开启且无法关闭)。

-t

查看前50次每个fc的执行时间。

-h

帮助信息。

12.5.3.1.1.2. 功能示例

功能示例1:查看BPU使用率

hrut_bpuprofile -b 0 -r 1

如上所示,查看BPU Core0的使用率。 -r 1 代表只执行一次; -r n 代表执行n次,间隔1s。

hrut_bpuprofile -b 1 -r 1

如上所示,查看BPU Core1的使用率。 -r 1 代表只执行一次; -r n 代表执行n次,间隔1s。

hrut_bpuprofile -b 2 -r 1

如上所示,同时查看BPU Core0和Core1的使用率。 -r 1 代表只执行一次; -r n 代表执行n次,间隔1s。

功能示例2:设置BPU的频率

hrut_bpuprofile -b 0 -f 400000000

如上所示,设置BPU0的频率为400M。

cat /sys/devices/system/bpu/bpu0/devfreq/devfreq*/available_frequencies

如上所示,查看BPU0支持的频率设置。

cat /sys/devices/system/bpu/bpu0/devfreq/devfreq*/cur_freq

如上所示,查看BPU0频率设置是否设置。

hrut_bpuprofile -b 1 -f 400000000

如上所示,设置BPU1的频率为400M。

cat /sys/devices/system/bpu/bpu1/devfreq/devfreq*/available_frequencies

如上所示,查看BPU1支持哪些频率。

cat /sys/devices/system/bpu/bpu1/devfreq/devfreq*/cur_freq

如上所示,查看BPU1频率设置是否成功。

hrut_bpuprofile -b 2 -f 400000000

如上所示,设置BPU0/BPU1的频率为400M。

小技巧

BPU core支持频率的查看方法同上。

功能示例3:给BPU上/下电

hrut_bpuprofile -b 0 -p 0

如上所示,将BPU Core 0下电。

hrut_bpuprofile -b 0 -p 1

如上所示,将BPU Core 0上电。

hrut_bpuprofile -b 1 -p 0

如上所示,将BPU Core 1下电。

hrut_bpuprofile -b 1 -p 1

如上所示,将BPU Core 1上电。

hrut_bpuprofile -b 2 -p 0

如上所示,同时将BPU Core 0/1下电。

hrut_bpuprofile -b 1 -p 1

如上所示,同时将BPU Core 0/1上电。

功能示例4:查看Functional Call执行时间

hrut_bpuprofile -b 0 -t 1

如上所示,显示BPU Core0最近已处理fc任务的执行时间信息。

hrut_bpuprofile -b 1 -t 1

如上所示,显示BPU Core1最近已处理fc任务的执行时间信息。

输出信息如下:

root@j5fpgaj5-hynix1G-3200:~# hrut_bpuprofile -b 1 -t 1
index   id:hwid         group   prio    s_time  e_time  r_time
1       1:1     0:3764  0       62921677        62921682        4105us
1       1:1     0:3796  0       62933366        62933370        4144us
1       1:1     0:4035  0       68487608        68487612        4121us
1       1:1     0:4068  0       68499410        68499414        4137us
1       1:1     0:4511  0       79866092        79866096        4119us
1       1:1     0:4543  0       79878146        79878150        4108us
1       1:1     0:4709  0       83453803        83453807        4133us
1       1:1     0:4741  0       83469283        83469287        4152us
1       1:1     0:5139  0       93023013        93023018        4120us
1       1:1     0:5171  0       93035083        93035087        4103us
1       1:1     0:14375 0       351997119       351997123       4139us
1       1:1     0:14407 0       352006717       352006721       4125us
1       1:1     0:14439 0       352024763       352024785       21391us
1       1:1     0:14491 0       352232178       352232182       4133us
1       1:1     0:14523 0       352241687       352241691       4126us
1       1:1     0:14555 0       352259848       352259869       21399us
1       1:1     0:14672 0       352988487       352988491       4124us
1       1:1     0:14704 0       353001178       353001182       4133us
1       1:1     0:14769 0       353075527       353075531       4111us
1       1:1     0:14801 0       353087887       353087891       4114us
1       1:1     0:14865 0       353319642       353319646       4121us
1       1:1     0:14898 0       353332211       353332215       4120us
1       1:1     0:14981 0       353513195       353513199       4126us
1       1:1     0:15013 0       353525904       353525908       4116us

注解

  • index:该任务位于BPU硬件FIFO中的位置;

  • id:用户设置的中断ID;

  • hwid:底层驱动维护的中断ID;

  • group:用户设置的组ID,用户进程号;

  • prio:任务优先级;

  • s_time:任务处理开始的时间戳;

  • e_time:任务处理结束的时间戳;

  • r_time:任务被处理的总耗时。

12.5.3.1.2. 开发板网卡MAC设置工具 hrut_mac utility

hrut_mac utility 工具用来保存当前板子网卡MAC相关参数的utility。

写入:

hrut_mac s aa:bb:cc:dd:ee:ff

读出:

hrut_mac g

12.5.3.1.3. 开发板IP设置工具 hrut_ipfull

hrut_ipfull 是用来保存当前板子IP相关参数的工具。 IP配置完成后,板子下次上电会自动配置网络参数(IP&MASK)并添加网关(GATEWAY)到路由。

注解

部分产品IP被锁死,无法通过本工具进行配置。

12.5.3.1.3.1. 写入

hrut_ipfull s {IP} {MASK} {GATEWAY}

参考示例:

hrut_ipfull s 192.168.1.10 255.255.255.0 192.168.1.255

注解

配置成功后,将在下一次启动生效。

12.5.3.1.3.2. 读出

hrut_ipfull g

参考输出如下:

ip=192.168.1.10
mask=255.255.255.0
gw=192.168.1.255

12.5.3.1.3.3. 清除

hrut_ipfull c

一旦清除后,板子下次上电会使用默认地址 192.168.1.10

注意

一旦配置成功,重启后在 /tmp 下面会有几个文件,记录了当前的配置的值,其含义如名字:

  • /tmp/ip_mac

  • /tmp/ip_ip

  • /tmp/ip_mask

  • /tmp/ip_gw

12.5.3.2. Log系统使用

J5系统软件支持自动抓取LOG到 /userdata/log 分区中,具体LOG内容如下表所示:

存储位置

存储内容说明

附加说明

/userdata/log/kernel/message

kernel log。 /etc/syslog-startup.conf 中可修改: LOGFILEROTATESIZEROTATEGENS

LOGFILE:log存储路径。

ROTATESIZE:log文件大小。

ROTATEGENS:log文件个数。

/userdata/log/kern.$YmdHMS/$LOGTIME.kmsg

检查kernel log文件。如果大小达到 ROTATESIZE 则转存为 $LOGTIME.kmsg

YmdHMS:文件夹记录时间。

LOGTIME:日志记录日志。

/userdata/log/kern.$YmdHMS.tar.gz

检查 *.kmsg 文件个数。如果个数达到 ROTATEGENS 则压缩为 kern.$YmdHMS.tar.gz

YmdHMS:压缩包存储时间。

/userdata/log/user/message

使用 logcat -v time -f /userdata/log/user/message -r [filesize] -n [filecount] 抓取userspace log。

filesize:log文件大小。

filecount:log文件个数。

/userdata/log/user.$YmdHMS/$LOGTIME.umsg

检查userspace log文件。如果大小达到 filesize 则转存为 $LOGTIME.umsg

filesize:log文件大小。

/userdata/log/user.$YmdHMS.tar.gz

检查 *.umsg 文件个数。如果个数达到 filecount 则压缩为 user.$YmdHMS.tar.gz

filecount:log文件个数。

/userdata/log/reset_reason.txt

记录每次重启时间和原因,通过命令行中的 hobotboot.reason 传递给kernel和userspace。

在logstore-daemon启动时写入到 reset_reason.txt

/userdata/log/pstore/${PSTORE_LOGINDEX}.${PSTORE_LOGDATE}/*

记录内核异常时的log信息。

/etc/rcS.d/S40pstore-log.sh 中可修改文件存储路径(PSTORE_LOG)和个数(PSTORE_LOGMAX)。

PSTORE_LOGINDEX:pstore日志索引数。

PSTORE_LOGDATE

pstore 日志记录时间:

/userdata/log/coredump/

记录程序出错而异常中断时的工作状态。 /etc/sysctl.conf 中可修改文件存储位置(kernel.core_pattern)。