public static function read_amd_pcsdb($attribute) { // Read AMD's AMDPCSDB, AMD Persistent Configuration Store Database static $try_aticonfig = true; static $is_first_read = true; $ati_info = null; if ($try_aticonfig) { if ($amdconfig = self::find_amdconfig()) { $info = shell_exec($amdconfig . ' --get-pcs-key=' . $attribute . ' 2>&1'); if ($is_first_read && strpos($info, 'No supported adapters') != false) { $try_aticonfig = false; } else { if (($pos = strpos($info, ':')) > 0 && strpos($info, 'Error') === false) { $ati_info = substr($info, $pos + 2); $ati_info = substr($ati_info, 0, strpos($ati_info, ' ')); } } } else { $try_aticonfig = false; } $is_first_read = false; } if ($ati_info == null && is_file('/etc/ati/amdpcsdb')) { // Using aticonfig --get-pcs-key failed, switch to the PTS direct parser of AMDPCSDB $ati_info = phodevi_linux_parser::read_amd_pcsdb_direct_parser($attribute); } return $ati_info; }