Получение базовой информации о машине под OS X

Я написал очень короткую программу для сбора некоторых файлов журналов, которые выкладываются сторонним приложением. Он архивирует файлы и отправляет их мне по электронной почте.

Я также хотел бы собрать некоторую информацию о машине, и особенно о ее графических возможностях. В основном я хотел бы две страницы из системного отчета, оборудования и графики / дисплеев. Гештальт ушел, поэтому я ищу другие решения.

Я нашел решение здесь на SO, чтобы получить модель машины с использованием sysctlbyname, но, похоже, значения здесь довольно ограничены.

Итак, есть ли у кого-нибудь простой способ получить информацию о графическом процессоре?

2 ответа

Решение

Следуя ответу Марка выше, вот как это сделать в (Swift) коде. Во-первых, я использовал это решение для запуска команды оболочки:

func shell(launchPath: String, arguments: [String]) -> String
{
    let task = NSTask()
    task.launchPath = launchPath
    task.arguments = arguments

    let pipe = NSPipe()
    task.standardOutput = pipe
    task.launch()

    let data = pipe.fileHandleForReading.readDataToEndOfFile()
    let output: String = NSString(data: data, encoding: NSUTF8StringEncoding)! as String

    return output
}

Затем, немного поиграв в system_profiler, я обнаружил, что меня интересуют два ключа: SPHardwareDataType а также SPDisplaysDataType, Это заставило меня задуматься, где находится system_profiler, но which system_profiler решил это. И вот, наконец, я получил то, что мне было нужно:

let ai = shell("/usr/sbin/system_profiler", arguments: ["SPHardwareDataType", "SPDisplaysDataType"])

Результатом является отформатированная строка, которая в значительной степени удобна для использования.

Используя System Profiler из командной строки в терминале или выполнив его как NSTask:

/usr/sbin/system_profiler | awk '/^Graphics/{p=1;print;next} /^[A-Z]/{p=0} p'

Выход

Graphics/Displays: 

AMD Radeon R9 M395:

  Chipset Model: AMD Radeon R9 M395
  Type: GPU
  Bus: PCIe
  PCIe Lane Width: x16
  VRAM (Total): 2048 MB
  Vendor: ATI (0x1002)
  Device ID: 0x6920
  Revision ID: 0x0001
  ROM Revision: 113-C905AA-799
  EFI Driver Version: 01.00.799
  Displays:
    iMac:
      Display Type: Retina LCD
      Resolution: 5120 x 2880 Retina
      Retina: Yes
      Pixel Depth: 30-Bit Color (ARGB2101010)
      Main Display: Yes
      Mirror: Off
      Online: Yes
      Built-In: Yes
Другие вопросы по тегам