硬件驱动/工具HIDAPI、AMDVLK、Deepin Graphics Driver Manager介绍

以下为你介绍的硬件驱动/工具都可用在Linux系统上:HIDAPI(HID 设备的 C 语言通用库)、AMDVLK(为 Vulkan 打造的 Linux 驱动)、Deepin Graphics Driver Manager(深度显卡驱动管理器)。

1、HIDAPI(HID 设备的 C 语言通用库)

HIDAPI 是一个 USB 和蓝牙的 hid 类设备在 Windows、Linux、FreeBSD 和 Mac 的 C 语言通用库,使用 HIDAPI 可以在 Windows、Linux、FreeBSD 和 Mac 平台进行 USB 和蓝牙的 hid 类设备通信,非常简单实用。

示例代码:

#include <stdio.h>

#include <stdlib.h>

#include "hidapi.h"

int main(int argc, char* argv[])

{

int res;

unsigned char buf[65];

#define MAX_STR 255

wchar_t wstr[MAX_STR];

hid_device *handle;

int i;

// Enumerate and print the HID devices on the system

struct hid_device_info *devs, *cur_dev;

devs = hid_enumerate(0x0, 0x0);

cur_dev = devs;

while (cur_dev) {

printf("Device Found\n  type: %04hx %04hx\n  path: %s\n  serial_number: %ls",

cur_dev->vendor_id, cur_dev->product_id, cur_dev->path, cur_dev->serial_number);

printf("\n");

printf("  Manufacturer: %ls\n", cur_dev->manufacturer_string);

printf("  Product:      %ls\n", cur_dev->product_string);

printf("\n");

cur_dev = cur_dev->next;

}

hid_free_enumeration(devs);

// Open the device using the VID, PID,

// and optionally the Serial number.

handle = hid_open(0x4d8, 0x3f, NULL);

// Read the Manufacturer String

res = hid_get_manufacturer_string(handle, wstr, MAX_STR);

printf("Manufacturer String: %ls\n", wstr);

// Read the Product String

res = hid_get_product_string(handle, wstr, MAX_STR);

printf("Product String: %ls\n", wstr);

// Read the Serial Number String

res = hid_get_serial_number_string(handle, wstr, MAX_STR);

printf("Serial Number String: %ls", wstr);

printf("\n");

// Send a Feature Report to the device

buf[0] = 0x2; // First byte is report number

buf[1] = 0xa0;

buf[2] = 0x0a;

res = hid_send_feature_report(handle, buf, 17);

// Read a Feature Report from the device

buf[0] = 0x2;

res = hid_get_feature_report(handle, buf, sizeof(buf));

// Print out the returned buffer.

printf("Feature Report\n   ");

for (i = 0; i < res; i++)

printf("%02hhx ", buf[i]);

printf("\n");

// Set the hid_read() function to be non-blocking.

hid_set_nonblocking(handle, 1);

// Send an Output report to toggle the LED (cmd 0x80)

buf[0] = 1; // First byte is report number

buf[1] = 0x80;

res = hid_write(handle, buf, 65);

// Send an Output report to request the state (cmd 0x81)

buf[1] = 0x81;

hid_write(handle, buf, 65);

// Read requested state

res = hid_read(handle, buf, 65);

if (res < 0)

printf("Unable to read()\n");

// Print out the returned buffer.

for (i = 0; i < res; i++)

printf("buf[%d]: %d\n", i, buf[i]);

return 0;

}

HIDAPI 有四个后端:

Windows (using hid.dll)

Linux/hidraw (using the Kernel's hidraw driver)

Linux/libusb (using libusb-1.0)

FreeBSD (using libusb-1.0)

Mac (using IOHidManager)

下载地址:https://github.com/signal11/hidapi

2、AMDVLK(为 Vulkan 打造的 Linux 驱动)

硬件驱动/工具HIDAPI、AMDVLK、Deepin Graphics Driver Manager介绍

AMD在GitHub上曾发布了为Vulkan 1.0打造的开源Linux驱动AMDVLK,适配64位的Ubuntu 16.04和RedHat 7.4。Vulkan是OpenGL的继承者,它比DX12先进的地方主要体现在全平台支持,后者仅仅是Windows 10独占。

组成特定 VkPipeline 对象的着色器使用基于LLVM的管道编译器(LLPC)库编译为单个实体。LLPC基于LLVM现有的着色器编译基础结构,用于AMD GPU生成与PAL流水线ABI兼容的代码对象。

Vulkan的AMD开源驱动程序旨在支持以下AMD GPU:

RadeonHD 7000系列

RadeonHD 8000M系列

RadeonR5 / R7 / R9 200/300系列

RadeonRX 400/500系列

RadeonM200 / M300 / M400系列

RadeonRX Vega系列

AMD FirePro工作站Wx000 / Wx100 / Wx300系列

RadeonPro WX x100系列

RadeonPro 400/500系列

操作系统支持:

适用于Vulkan的AMD开源驱动程序旨在支持AMDGPU上游驱动程序堆栈和AMDGPU Pro驱动程序堆栈上的以下发行版:

Ubuntu 18.04(64位版本)

Ubuntu 16.04.4(64位版本)

RedHat 7.5(64位版本)

该驱动程序尚未在其他发行版上经过测试。

注意:要在SI和CI generation GPU上运行带有AMDGPU上游驱动程序堆栈的Vulkan驱动程序,需要在内核中启用amdgpu.si_support和amdgpu.cik_support

下载地址:https://github.com/GPUOpen-Drivers/AMDVLK

3、Deepin Graphics Driver Manager(深度显卡驱动管理器)

硬件驱动/工具HIDAPI、AMDVLK、Deepin Graphics Driver Manager介绍

项目介绍:

深度显卡驱动管理器是一款小巧、简单易用的显卡驱动管理工具,包括了显卡驱动问题探测、显卡驱动方案安装、切换、还原等功能。

注意:最新测试版本基于git代码,由自动化构建程序编译,可能存在各种不稳定的情况。

编译安装:

从源代码构建:

mkdir build

cd build

cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr .. # Install to /usr

make # Add -jx for parallel

安装:

sudo make install

sudo systemctl daemon-reload # refresh systemd

sudo systemctl enable driver-installer.service # enable installer service

sudo systemctl start driver-installer.service # start installer service

下载地址:https://github.com/linuxdeepin/deepin-graphics-driver-manager

注明

以上就是硬件驱动/工具HIDAPI、AMDVLK、Deepin Graphics Driver Manager的介绍内容,这些硬件驱动/工具都能使用在Linux操作系统中。

栏目相关文章