RV1109 相关 - housekeeper-software/tech GitHub Wiki

调整RKMedia的日志等级

rkmedia启动之后,频繁的打印警告信息,大致意思就是说IPC有图像没有被及时取走,这个其实很正常,因为做人脸识别,耗时肯定超过了 IPC帧间隔。查看源码:

 ptr = getenv("RKMEDIA_LOG_LEVEL");
  if (ptr && strstr(ptr, "ERROR"))
    rkmedia_log_level = LOG_LEVEL_ERROR;
  else if (ptr && strstr(ptr, "WARN"))
    rkmedia_log_level = LOG_LEVEL_WARN;
  else if (ptr && strstr(ptr, "DBG"))
    rkmedia_log_level = LOG_LEVEL_DBG;
  else
    rkmedia_log_level = LOG_LEVEL_INFO;
  fprintf(stderr, "##RKMEDIA Log level: %d\n", rkmedia_log_level);

所以解决问题的方法很简单:

export RKMEDIA_LOG_LEVEL=ERROR

如果使用clion远程调试,要把这句话加到clion的 configure下的环境变量中。

获得 SDCARD 空间信息

一般,我们的程序放在SDCARD 的某个目录下,比如 /data目录,我们就用自己app的目录去获取磁盘信息即可,不必将分区路径写死。


bool GetDiskSpaceInfo(const base::FilePath &path,
                      int64_t *available_bytes,
                      int64_t *total_bytes) {
  struct statvfs stats;
  if (HANDLE_EINTR(statvfs(path.value().c_str(), &stats)) != 0)
    return false;

  if (available_bytes)
    *available_bytes = static_cast<int64_t>(stats.f_bavail) * stats.f_frsize;
  if (total_bytes)
    *total_bytes = static_cast<int64_t>(stats.f_blocks) * stats.f_frsize;
  return true;
}

bool GetDiskUsage(int64_t *available_bytes, int64_t *total_bytes) {
  base::FilePath dir;
  base::PathService::Get(base::DIR_MODULE, &dir);
  return GetDiskSpaceInfo(dir, available_bytes, total_bytes);
}  

Clion 远程调试的环境变量

export QT_QPA_FB_DRM=1
export QT_QPA_PLATFORM=linuxfb:rotation=0
export LD_LIBRARY_PATH=/data/outdoor/lib:$LD_LIBRARY_PATH
export solib-search-path=/data/outdoor/lib
export RKMEDIA_LOG_LEVEL=ERROR

获取CPU温度

cat /sys/class/thermal/thermal_zone0/temp

设置屏幕亮度

0~255
echo 100 > /sys/class/backlight/backlight/brightness

调整主音量

首先:amixer controls 查看设备

amixer cset numid=3,iface=MIXER,name='Master Playback Volume' 90
⚠️ **GitHub.com Fallback** ⚠️