{"id":503189,"date":"2026-11-14T10:22:12","date_gmt":"2026-11-14T07:22:12","guid":{"rendered":"https:\/\/savepearlharbor.com\/?p=503189"},"modified":"2026-11-14T10:22:12","modified_gmt":"2026-11-14T07:22:12","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=503189","title":{"rendered":"\u041a\u0430\u043a\u00a0\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u043d\u0430\u00a0Go \u0434\u0435\u043c\u043e\u043d \u0434\u043b\u044f\u00a0\u044d\u043a\u0440\u0430\u043d\u0430 \u043a\u0443\u043b\u0435\u0440\u0430 Ocypus \u0432\u00a0Linux"},"content":{"rendered":"<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442!<\/p>\n<p>\u041c\u043e\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u00a0\u2014 Linux (Arch). \u041c\u043d\u0435 \u043e\u043d\u0430 \u043e\u0447\u0435\u043d\u044c \u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f, \u043d\u043e\u00a0\u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435\u0434\u0430\u0432\u043d\u043e \u044f \u043e\u0431\u043d\u043e\u0432\u0438\u043b \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u0438 \u0440\u0435\u0448\u0438\u043b \u0437\u0430\u043e\u0434\u043d\u043e \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u043a\u0443\u043b\u0435\u0440. \u0412\u044b\u0431\u043e\u0440 \u043f\u0430\u043b \u043d\u0430 <strong>Ocypus Delta A62\u00a0EX Digital<\/strong>. \u0423\u00a0\u043d\u0435\u0433\u043e \u0435\u0441\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u0430\u044f, \u043d\u043e\u00a0\u0441\u0438\u043c\u043f\u0430\u0442\u0438\u0447\u043d\u0430\u044f \u0444\u0438\u0447\u0430: \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u044d\u043a\u0440\u0430\u043d\u0447\u0438\u043a, \u043d\u0430\u00a0\u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0443 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 \u0438\u043b\u0438\u00a0\u0432\u0438\u0434\u0435\u043e\u043a\u0430\u0440\u0442\u044b.<\/p>\n<p>\u0423\u00a0Ocypus \u0435\u0441\u0442\u044c \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0434\u043b\u044f\u00a0Windows, \u0430\u00a0\u0434\u043b\u044f\u00a0Linux\u00a0\u2014 \u043d\u0435\u0442. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u0440\u0435\u0448\u0438\u043b \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0432\u043e\u0451. \u0412\u00a0\u0442\u043e \u0432\u0440\u0435\u043c\u044f \u044f \u043a\u0430\u043a\u00a0\u0440\u0430\u0437 \u0438\u0437\u0443\u0447\u0430\u043b Go, \u0438 \u043e\u043d \u043f\u043e\u0447\u0442\u0438 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u043f\u043e\u0434\u00a0\u0442\u0430\u043a\u0443\u044e \u0437\u0430\u0434\u0430\u0447\u0443, \u043d\u043e, \u0447\u0435\u0441\u0442\u043d\u043e \u0433\u043e\u0432\u043e\u0440\u044f, \u044d\u0442\u043e \u0431\u044b\u043b\u043e \u0435\u0449\u0451 \u0438 \u0436\u0435\u043b\u0430\u043d\u0438\u0435\u043c \u043f\u043e\u0442\u0440\u0435\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0432\u00a0\u044f\u0437\u044b\u043a\u0435. \u041a\u00a0\u0441\u043b\u043e\u0432\u0443, \u044f \u0434\u0443\u043c\u0430\u044e \u043a\u043e\u0433\u0434\u0430\u2011\u043d\u0438\u0431\u0443\u0434\u044c \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u0442\u044c \u0432\u0441\u0451 \u043d\u0430\u00a0C \u0438\u043b\u0438\u00a0Rust, \u043d\u043e\u00a0\u0438\u0437\u2011\u0437\u0430 \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u043e\u0431\u044a\u0451\u043c\u0430 \u0443\u0447\u0451\u0431\u044b \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043d\u0430\u00a0\u044d\u0442\u043e \u043f\u043e\u043a\u0430 \u043d\u0435\u0442.<\/p>\n<p>\u0422\u0430\u043a \u0438 \u043d\u0430\u0447\u0430\u043b\u0441\u044f \u043f\u0440\u043e\u0435\u043a\u0442 <strong>ocyd<\/strong>.<\/p>\n<ul>\n<li>\n<p>\u0420\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439: <a href=\"http:\/\/github.com\/Dilikel\/ocyd\" rel=\"noopener nofollow\">github.com\/Dilikel\/ocyd<\/a><\/p>\n<\/li>\n<li>\n<p>\u041b\u0438\u0446\u0435\u043d\u0437\u0438\u044f: GPLv3<\/p>\n<\/li>\n<\/ul>\n<h3>\u041a\u0430\u043a\u00a0\u0443\u0441\u0442\u0440\u043e\u0435\u043d \u043f\u0443\u0442\u044c \u043e\u0442\u00a0\u0438\u0434\u0435\u0438 \u0434\u043e\u00a0\u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u0434\u0435\u043c\u043e\u043d\u0430<\/h3>\n<h4>1. \u0427\u0442\u043e\u00a0\u0432\u043e\u043e\u0431\u0449\u0435 \u0442\u0430\u043a\u043e\u0435 \u044d\u0442\u043e\u0442 \u044d\u043a\u0440\u0430\u043d\u0447\u0438\u043a<\/h4>\n<p>\u041f\u0435\u0440\u0432\u044b\u043c \u0434\u0435\u043b\u043e\u043c \u043d\u0443\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u043f\u043e\u043d\u044f\u0442\u044c, \u043a\u0430\u043a\u00a0\u043a\u0443\u043b\u0435\u0440 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0434\u043b\u044f\u00a0\u0441\u0438\u0441\u0442\u0435\u043c\u044b. \u0412\u044b\u044f\u0441\u043d\u0438\u043b\u043e\u0441\u044c \u0431\u044b\u0441\u0442\u0440\u043e: \u044d\u043a\u0440\u0430\u043d \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u0430\u043a <strong>HID\u2011\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e<\/strong> \u0441 <code>VID:PID = 1a2c:434d<\/code> \u0438 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c <strong>\u00abChina Resource Semico Co., Ltd USB Gaming Keyboard\u00bb<\/strong>.<\/p>\n<pre><code>Bus 001 Device 005: ID 1a2c:434d China Resource Semico Co., Ltd USB Gaming Keyboard<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper\"><\/span><\/a><\/div><\/pre>\n<p>\u0412\u0438\u0434\u0438\u043c\u043e, \u0447\u0442\u043e\u0431\u044b \u043d\u0435\u00a0\u0442\u0440\u0430\u0442\u0438\u0442\u044c \u0434\u0435\u043d\u044c\u0433\u0438 \u043d\u0430\u00a0\u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 VID \u0438 PID, Ocypus \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u0437\u044f\u043b\u0438 \u0447\u0443\u0436\u0443\u044e \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0443 \u043e\u0442\u00a0\u043a\u0430\u043a\u043e\u0439\u2011\u0442\u043e \u0438\u0433\u0440\u043e\u0432\u043e\u0439 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b.<\/p>\n<h4>2. \u0420\u0435\u0432\u0435\u0440\u0441\u2011\u0438\u043d\u0436\u0438\u043d\u0438\u0440\u0438\u043d\u0433 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430<\/h4>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u043d\u0443\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u043f\u043e\u043d\u044f\u0442\u044c, \u043a\u0430\u043a\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0438 \u043a\u0430\u043a\u00a0\u043e\u043d\u0438 \u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f. \u0414\u043b\u044f\u00a0\u044d\u0442\u043e\u0433\u043e \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b <strong>Wireshark<\/strong> \u0438 \u0434\u0440\u0430\u0439\u0432\u0435\u0440 <strong>USBPcap<\/strong> \u043d\u0430\u00a0Windows. \u0417\u043d\u0430\u044f VID:PID, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043b\u0435\u0433\u043a\u043e \u043e\u0442\u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0440\u0430\u0444\u0438\u043a \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430.<\/p>\n<p>\u041f\u0440\u043e\u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0432 \u0431\u0430\u0439\u0442\u044b, \u044f \u043f\u043e\u043d\u044f\u043b, \u0447\u0442\u043e\u00a0\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u0430\u043a\u0435\u0442 \u0438\u0437 <strong>64\u00a0\u0431\u0430\u0439\u0442<\/strong>:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0411\u0430\u0439\u0442 (\u0441 \u043d\u0443\u043b\u044f)<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>0<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">Report ID = <code>0x07<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>1<\/code>, <code>2<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>0xFF<\/code>, <code>0xFF<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>3<\/code>, <code>4<\/code>, <code>5<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0446\u0438\u0444\u0440\u044b \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u044b: \u0441\u043e\u0442\u043d\u0438, \u0434\u0435\u0441\u044f\u0442\u043a\u0438, \u0435\u0434\u0438\u043d\u0438\u0446\u044b<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>6<\/code>\u2014<code>63<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043d\u0443\u043b\u0438<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0422\u043e \u0435\u0441\u0442\u044c \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0447\u0435\u043d\u044c \u00ab\u0432 \u043b\u043e\u0431\u00bb: \u043d\u0435\u00a0\u043e\u0434\u043d\u0438\u043c \u0447\u0438\u0441\u043b\u043e\u043c, \u0430\u00a0\u0442\u0440\u0435\u043c\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u0446\u0438\u0444\u0440\u0430\u043c\u0438. \u041d\u0430\u00a0\u044d\u0442\u043e\u043c \u0432\u0435\u0441\u044c \u0440\u0435\u0432\u0435\u0440\u0441\u2011\u0438\u043d\u0436\u0438\u043d\u0438\u0440\u0438\u043d\u0433, \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0438\u0447\u0435\u0433\u043e \u0438 \u043d\u0435\u00a0\u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u043e\u0441\u044c:)<\/p>\n<p>\u0412\u00a0\u043a\u043e\u0434\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<pre><code class=\"go\">\/\/ SendTemp \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u0442 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0443 \u043d\u0430 3 \u0446\u0438\u0444\u0440\u044b \u0438 \u043f\u0438\u0448\u0435\u0442 64-\u0431\u0430\u0439\u0442\u043d\u044b\u0439 \u0440\u0435\u043f\u043e\u0440\u0442.func (d *Display) SendTemp(temp int) error {digits := decompose(temp)copy(d.buf[3:6], digits[:])n, err := d.dev.Write(d.buf[:])\/\/ ...}func decompose(temp int) [3]byte {if temp &lt; 0 {temp = 0}if temp &gt; 999 {temp = 999}return [3]byte{byte(temp \/ 100),byte((temp % 100) \/ 10),byte(temp % 10),}}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u0414\u043b\u044f\u00a0\u0440\u0430\u0431\u043e\u0442\u044b \u0441\u00a0HID \u044f \u0432\u0437\u044f\u043b \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 <a href=\"https:\/\/github.com\/sstallion\/go-hid\" rel=\"noopener nofollow\"><code>sstallion\/go-hid<\/code><\/a>. \u0414\u0435\u043c\u043e\u043d \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043f\u043e\u00a0VID:PID \u0438 \u0440\u0430\u0437 \u0432\u00a0\u0441\u0435\u043a\u0443\u043d\u0434\u0443 \u0448\u043b\u0451\u0442 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u0443\u044e \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0443.<\/p>\n<h4>3. \u0421\u0430\u043c \u0434\u0435\u043c\u043e\u043d<\/h4>\n<p>\u0417\u043d\u0430\u044f, \u0447\u0442\u043e\u00a0\u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c, \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c, \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0434\u0435\u043c\u043e\u043d. \u041a\u0430\u043a\u00a0\u0438 \u0432\u00a0\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438, \u044f \u0440\u0435\u0448\u0438\u043b \u0434\u0430\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u0432\u044b\u0431\u043e\u0440:<\/p>\n<ul>\n<li>\n<p>\u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0430 <strong>CPU<\/strong> \u0438\u043b\u0438 <strong>GPU<\/strong>;<\/p>\n<\/li>\n<li>\n<p><strong>\u0433\u0440\u0430\u0434\u0443\u0441\u044b \u0426\u0435\u043b\u044c\u0441\u0438\u044f<\/strong> \u0438\u043b\u0438 <strong>\u0424\u0430\u0440\u0435\u043d\u0433\u0435\u0439\u0442\u0430<\/strong>;<\/p>\n<\/li>\n<li>\n<p><strong>\u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 VID:PID<\/strong> \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430.<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u043f\u0443\u043d\u043a\u0442 \u0432\u0430\u0436\u0435\u043d. \u042f \u043c\u043e\u0433\u0443 \u0440\u0443\u0447\u0430\u0442\u044c\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u00a0\u0441\u0432\u043e\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u043a\u0443\u043b\u0435\u0440\u0430: \u0434\u0440\u0443\u0433\u0438\u0435 \u043c\u043e\u0434\u0435\u043b\u0438, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043d\u0435\u0442. \u0410\u00a0\u0445\u0430\u0440\u0434\u043a\u043e\u0434\u0438\u0442\u044c VID:PID \u0432\u043e\u043e\u0431\u0449\u0435 \u043f\u043b\u043e\u0445\u0430\u044f \u0438\u0434\u0435\u044f.<\/p>\n<h4>4. \u0413\u0434\u0435 \u0432\u00a0Linux \u0432\u0437\u044f\u0442\u044c \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0443<\/h4>\n<p>\u0422\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 \u0432\u00a0Linux \u043b\u0435\u0436\u0438\u0442 \u0432 <code>\/sys\/class\/hwmon\/hwmon*\/temp*_input<\/code>. \u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0435\u043c \u0438\u043c\u0435\u043d\u043d\u043e \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u044d\u0442\u0438 <code>*<\/code> \u0432\u00a0\u043a\u0430\u0436\u0434\u043e\u043c \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435. \u0414\u043b\u044f\u00a0\u044d\u0442\u043e\u0433\u043e \u044f \u043e\u043f\u0438\u0441\u0430\u043b \u0431\u0430\u0437\u043e\u0432\u044b\u0435 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u044b \u0438 \u043c\u0435\u0442\u043a\u0438 \u0438\u0445 \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u0432, \u043f\u043e\u00a0\u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0434\u0435\u043c\u043e\u043d \u043d\u0430\u0445\u043e\u0434\u0438\u0442 \u043d\u0443\u0436\u043d\u044b\u0439 \u0444\u0430\u0439\u043b:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0414\u0440\u0430\u0439\u0432\u0435\u0440\u044b<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041c\u0435\u0442\u043a\u0438<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">CPU<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>k10temp<\/code>, <code>coretemp<\/code>, <code>zenpower<\/code>, <code>amd_energy<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>Tctl<\/code>, <code>Tdie<\/code>, <code>Package id 0<\/code>, <code>Package id 1<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">GPU<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>amdgpu<\/code>, <code>nouveau<\/code>, <code>nvidia<\/code>, <code>i915<\/code>, <code>xe<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>edge<\/code>, <code>junction<\/code>, <code>hotspot<\/code>, <code>GPU<\/code><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043f\u0440\u043e\u0441\u0442\u043e\u0439: \u043f\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u0435\u043c <code>hwmon*\/name<\/code>, \u0438\u0449\u0435\u043c \u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u0438\u0437\u00a0\u0441\u043f\u0438\u0441\u043a\u0430, \u0432\u043d\u0443\u0442\u0440\u0438 \u043d\u0435\u0433\u043e \u0438\u0449\u0435\u043c <code>temp*_label<\/code> \u0441\u00a0\u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0435\u0439 \u043c\u0435\u0442\u043a\u043e\u0439 \u0438 \u0447\u0438\u0442\u0430\u0435\u043c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 <code>temp*_input<\/code>. \u0415\u0441\u043b\u0438 \u043c\u0435\u0442\u043a\u0438 \u043d\u0435\u00a0\u043d\u0430\u0448\u043b\u043e\u0441\u044c, \u0431\u0435\u0440\u0451\u043c <code>temp1_input<\/code>. \u042f\u0434\u0440\u043e \u043e\u0442\u0434\u0430\u0451\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432\u00a0\u043c\u0438\u043b\u043b\u0438\u2011\u0433\u0440\u0430\u0434\u0443\u0441\u0430\u0445 \u0426\u0435\u043b\u044c\u0441\u0438\u044f, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0434\u0435\u043b\u0438\u0442\u0441\u044f \u043d\u0430 1000.<\/p>\n<pre><code class=\"go\">cpuTarget = sensorTarget{Drivers: []string{\"k10temp\", \"coretemp\", \"zenpower\", \"amd_energy\"},Labels:  []string{\"Tctl\", \"Tdie\", \"Package id 0\", \"Package id 1\"},}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u0414\u043b\u044f\u00a0\u0432\u0438\u0434\u0435\u043e\u043a\u0430\u0440\u0442 \u0432\u0441\u0451 \u0442\u043e\u00a0\u0436\u0435 \u0441\u0430\u043c\u043e\u0435, \u043a\u0440\u043e\u043c\u0435 <strong>\u043f\u0440\u043e\u043f\u0440\u0438\u0435\u0442\u0430\u0440\u043d\u043e\u0433\u043e \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 NVIDIA<\/strong>: \u043e\u043d \u043d\u0435\u00a0\u043e\u0442\u0434\u0430\u0451\u0442 \u0434\u0430\u0442\u0447\u0438\u043a \u0447\u0435\u0440\u0435\u0437 <code>hwmon<\/code>. \u0414\u043b\u044f\u00a0\u043d\u0435\u0433\u043e \u0434\u0435\u043c\u043e\u043d \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 <strong>NVML<\/strong> (\u0447\u0435\u0440\u0435\u0437 <a href=\"https:\/\/github.com\/NVIDIA\/go-nvml\" rel=\"noopener nofollow\"><code>go-nvml<\/code><\/a>): \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u0440\u043e\u0431\u0443\u0435\u0442\u0441\u044f sysfs, \u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0441\u043b\u0438 \u0442\u0430\u043c \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435\u00a0\u043d\u0430\u0448\u043b\u043e\u0441\u044c, \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f NVML.<\/p>\n<p>\u041d\u0435\u00a0\u0431\u0443\u0434\u0443 \u0443\u0433\u043b\u0443\u0431\u043b\u044f\u0442\u044c\u0441\u044f \u0432\u00a0\u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e: \u0432\u0435\u0441\u044c \u043a\u043e\u0434 \u043e\u0442\u043a\u0440\u044b\u0442, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0435\u0433\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c, \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0438 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043c\u043d\u0435, \u0435\u0441\u043b\u0438 \u044f \u0447\u0442\u043e\u2011\u0442\u043e \u0434\u0435\u043b\u0430\u044e \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e.<\/p>\n<h4>5. \u0414\u043e\u0441\u0442\u0443\u043f \u043a\u00a0\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0443 \u0431\u0435\u0437\u00a0root: udev<\/h4>\n<p>\u0427\u0442\u043e\u0431\u044b \u0434\u0435\u043c\u043e\u043d \u043c\u043e\u0433 \u043f\u0438\u0441\u0430\u0442\u044c \u0432\u00a0HID\u2011\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e, \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u043e udev. \u0411\u0435\u0437\u00a0\u043d\u0435\u0433\u043e <code>hidraw<\/code>\u2011\u0443\u0437\u0435\u043b \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0438\u0442 root, \u0430\u00a0\u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0434\u0435\u043c\u043e\u043d \u043e\u0442\u00a0root \u043d\u0435\u00a0\u0445\u043e\u0447\u0435\u0442\u0441\u044f.<\/p>\n<pre><code>SUBSYSTEM==\"hidraw\", ATTRS{idVendor}==\"1a2c\", ATTRS{idProduct}==\"434d\", MODE=\"0666\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u0417\u0434\u0435\u0441\u044c <code>1a2c:434d<\/code>\u00a0\u2014 \u044d\u0442\u043e VID:PID \u0438\u043c\u0435\u043d\u043d\u043e <strong>Ocypus Delta A62\u00a0EX Digital<\/strong>. \u0423\u00a0\u0434\u0440\u0443\u0433\u0438\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u043c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u0438 \u0432\u00a0\u043f\u0440\u0430\u0432\u0438\u043b\u0435, \u0438 \u0432\u00a0\u043a\u043e\u043d\u0444\u0438\u0433\u0435. \u0421\u0442\u043e\u0438\u0442 \u043f\u043e\u043c\u043d\u0438\u0442\u044c \u0438 \u043e\u00a0\u043a\u043e\u043c\u043f\u0440\u043e\u043c\u0438\u0441\u0441\u0435: <code>MODE=\"0666\"<\/code> \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0443\u0437\u0435\u043b \u044d\u0442\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0432\u0441\u0435\u043c \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c. \u0414\u043b\u044f\u00a0\u044d\u043a\u0440\u0430\u043d\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0447\u0438\u0441\u043b\u043e, \u044f \u0441\u0447\u0451\u043b \u044d\u0442\u043e \u043f\u0440\u0438\u0435\u043c\u043b\u0435\u043c\u044b\u043c.<\/p>\n<h4>6. systemd, \u043a\u043e\u043d\u0444\u0438\u0433 \u0438 ocydctl<\/h4>\n<p>\u0414\u0435\u043c\u043e\u043d \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a <strong>\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 systemd\u2011\u0441\u0435\u0440\u0432\u0438\u0441<\/strong>, \u0442\u0430\u043a \u0447\u0442\u043e\u00a0root \u0434\u043b\u044f\u00a0\u043d\u0435\u0433\u043e \u043d\u0435\u00a0\u043d\u0443\u0436\u0435\u043d:<\/p>\n<pre><code class=\"bash\">systemctl --user enable --now ocyd.servicejournalctl --user -u ocyd.service -f<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043b\u0435\u0436\u0430\u0442 \u0432 <code>~\/.config\/ocyd\/config.toml<\/code>:<\/p>\n<pre><code>[display]source = 'CPU'   # 'CPU' \u0438\u043b\u0438 'GPU'unit   = 'C'     # 'C' \u0438\u043b\u0438 'F'[device]vendor_id  = '0x1a2c'product_id = '0x434d'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u0427\u0442\u043e\u0431\u044b \u043d\u0435\u00a0\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0444\u0430\u0439\u043b \u0440\u0443\u043a\u0430\u043c\u0438, \u044f \u0441\u0434\u0435\u043b\u0430\u043b \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0443\u0442\u0438\u043b\u0438\u0442\u0443 <code><strong>ocydctl<\/strong><\/code>:<\/p>\n<pre><code class=\"bash\">ocydctl -source GPU -unit Focydctl -vendor 0x1a2c -product 0x434dsystemctl --user restart ocyd.service<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>VID \u0438 PID \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\u0442\u0441\u044f \u0438 \u0432\u00a0hex, \u0438 \u0432\u00a0\u0434\u0435\u0441\u044f\u0442\u0438\u0447\u043d\u043e\u043c \u0432\u0438\u0434\u0435. \u0414\u0435\u043c\u043e\u043d \u0447\u0438\u0442\u0430\u0435\u0442 \u043a\u043e\u043d\u0444\u0438\u0433 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438\u00a0\u0441\u0442\u0430\u0440\u0442\u0435, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u0441\u043b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0435\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c.<\/p>\n<h4>7. \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439<\/h4>\n<p>\u0427\u0442\u043e\u0431\u044b \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0443 \u043d\u0435\u00a0\u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u0440\u0443\u043a\u0430\u043c\u0438 \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0442\u044c \u0444\u0430\u0439\u043b\u044b, \u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043b <a href=\"http:\/\/install.sh\" rel=\"noopener nofollow\"><code>install.sh<\/code><\/a> \u0438 <a href=\"http:\/\/uninstall.sh\" rel=\"noopener nofollow\"><code>uninstall.sh<\/code><\/a>.<\/p>\n<p><a href=\"http:\/\/install.sh\" rel=\"noopener nofollow\"><code><strong>install.sh<\/strong><\/code><\/a>:<\/p>\n<ol>\n<li>\n<p>\u0438\u0449\u0435\u0442 \u0433\u043e\u0442\u043e\u0432\u044b\u0435 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u0438: \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0440\u044f\u0434\u043e\u043c \u0441\u043e \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u043c (\u0435\u0441\u043b\u0438 \u0432\u044b \u0441\u043a\u0430\u0447\u0430\u043b\u0438 \u0430\u0440\u0445\u0438\u0432 \u0440\u0435\u043b\u0438\u0437\u0430), \u0437\u0430\u0442\u0435\u043c \u0432 <code>bin\/<\/code> (\u0435\u0441\u043b\u0438 \u0441\u043a\u043b\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439). \u0415\u0441\u043b\u0438 \u0438\u0445 \u043d\u0435\u0442, <strong>\u0441\u043e\u0431\u0435\u0440\u0451\u0442 \u0441\u0430\u043c<\/strong>;<\/p>\n<\/li>\n<li>\n<p>\u0441\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442, \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c\u00a0\u043b\u0438 VID:PID \u043f\u043e\u00a0\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e (<code>1a2c:434d<\/code>, Delta A62\u00a0EX Digital) \u0438\u043b\u0438\u00a0\u0432\u0432\u0435\u0441\u0442\u0438 \u0441\u0432\u043e\u0438;<\/p>\n<\/li>\n<li>\n<p>\u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u0438 \u0432 <code>\/usr\/bin<\/code>, \u0430\u00a0udev\u2011\u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0432 <code>\/etc\/udev\/rules.d<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u043a\u043e\u043d\u0444\u0438\u0433, \u0435\u0441\u043b\u0438 \u0435\u0433\u043e \u0435\u0449\u0451 \u043d\u0435\u0442;<\/p>\n<\/li>\n<li>\n<p>\u0441\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442, \u043d\u0443\u0436\u0435\u043d\u00a0\u043b\u0438 systemd. \u0415\u0441\u043b\u0438 \u0434\u0430, \u043a\u043b\u0430\u0434\u0451\u0442 \u0441\u0435\u0440\u0432\u0438\u0441 \u0432 <code>~\/.config\/systemd\/user\/<\/code> \u0438 \u0441\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442, \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u00a0\u043b\u0438 \u0430\u0432\u0442\u043e\u0437\u0430\u043f\u0443\u0441\u043a \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c\u00a0\u043b\u0438 \u0441\u0440\u0430\u0437\u0443.<\/p>\n<\/li>\n<\/ol>\n<p><a href=\"http:\/\/uninstall.sh\" rel=\"noopener nofollow\"><code><strong>uninstall.sh<\/strong><\/code><\/a> \u0434\u0435\u043b\u0430\u0435\u0442 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0435: \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u0438 \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0441\u0435\u0440\u0432\u0438\u0441, \u0443\u0434\u0430\u043b\u044f\u0435\u0442 \u044e\u043d\u0438\u0442, \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u0438 \u0438 udev\u2011\u043f\u0440\u0430\u0432\u0438\u043b\u043e, \u0430\u00a0\u043f\u0440\u043e\u00a0\u043a\u043e\u043d\u0444\u0438\u0433 \u0441\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e.<\/p>\n<h3>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430<\/h3>\n<p>\u0418\u0437\u00a0\u0430\u0440\u0445\u0438\u0432\u0430 \u0440\u0435\u043b\u0438\u0437\u0430 (\u0441\u0431\u043e\u0440\u043a\u0430 \u043d\u0435\u00a0\u043d\u0443\u0436\u043d\u0430):<\/p>\n<pre><code class=\"bash\">tar -xzf ocyd_*_linux_amd64.tar.gzcd ocyd_*_linux_amd64.\/install.sh<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u0418\u0437\u00a0\u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432:<\/p>\n<pre><code class=\"bash\">git clone https:\/\/github.com\/Dilikel\/ocyd.gitcd ocyd.\/install.sh<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u0414\u043b\u044f\u00a0\u0441\u0431\u043e\u0440\u043a\u0438 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u044f\u0442\u0441\u044f Go, gcc \u0438 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438 libudev (<code>libudev-dev<\/code> \u0432\u00a0Debian\/Ubuntu, <code>systemd-libs<\/code> \u0432\u00a0Arch).<\/p>\n<h3>\u0418\u0442\u043e\u0433<\/h3>\n<p>\u041d\u0430\u00a0\u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u044f \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043b:<\/p>\n<ul>\n<li>\n<p>\u0434\u0435\u043c\u043e\u043d, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043a\u0430\u0436\u0434\u0443\u044e \u0441\u0435\u043a\u0443\u043d\u0434\u0443 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0443 CPU \u0438\u043b\u0438\u00a0GPU \u043d\u0430\u00a0\u044d\u043a\u0440\u0430\u043d \u043a\u0443\u043b\u0435\u0440\u0430 \u0438 \u043f\u0440\u0438\u00a0\u044d\u0442\u043e\u043c \u0443\u0436\u0435 \u0441\u0435\u0439\u0447\u0430\u0441 \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u044f\u0435\u0442 \u0432\u0441\u0435\u0433\u043e \u043e\u043a\u043e\u043b\u043e 10\u00a0\u041c\u0411 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438;<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u0432 AMD, Intel \u0438 NVIDIA, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u043f\u0440\u043e\u043f\u0440\u0438\u0435\u0442\u0430\u0440\u043d\u044b\u0439 \u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u0447\u0435\u0440\u0435\u0437 NVML;<\/p>\n<\/li>\n<li>\n<p>\u0432\u044b\u0431\u043e\u0440 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430 \u0438 \u0435\u0434\u0438\u043d\u0438\u0446 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f (\u00b0C \/ \u00b0F) \u0438 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c\u044b\u0435 VID:PID;<\/p>\n<\/li>\n<li>\n<p>\u0443\u0442\u0438\u043b\u0438\u0442\u0443 <code>ocydctl<\/code> \u0434\u043b\u044f\u00a0\u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u0438\u0437\u00a0\u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438;<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 systemd\u2011\u0441\u0435\u0440\u0432\u0438\u0441, udev\u2011\u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0438 \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f;<\/p>\n<\/li>\n<li>\n<p>\u0433\u043e\u0442\u043e\u0432\u044b\u0435 \u0440\u0435\u043b\u0438\u0437\u044b \u0447\u0435\u0440\u0435\u0437 GoReleaser \u0438 \u0434\u0432\u0443\u044f\u0437\u044b\u0447\u043d\u044b\u0439 README (\u0440\u0443\u0441\u0441\u043a\u0438\u0439 \u0438 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u0439).<\/p>\n<\/li>\n<\/ul>\n<p>\u0412\u0430\u0436\u043d\u0430\u044f \u043e\u0433\u043e\u0432\u043e\u0440\u043a\u0430: \u043f\u0440\u043e\u0435\u043a\u0442 \u043d\u0430 <strong>\u0440\u0430\u043d\u043d\u0435\u0439 \u0430\u043b\u044c\u0444\u0430\u2011\u0441\u0442\u0430\u0434\u0438\u0438<\/strong>. \u041f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430\u00a0\u043c\u043e\u0451\u043c \u043a\u0443\u043b\u0435\u0440\u0435, Ocypus Delta A62\u00a0EX Digital. \u042e\u043d\u0438\u0442\u2011\u0442\u0435\u0441\u0442\u043e\u0432 \u043f\u043e\u043a\u0430 \u043d\u0435\u0442, \u0430\u00a0\u043a\u043e\u0434 \u0435\u0449\u0451 \u043d\u0435\u00a0\u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d \u0438 \u043d\u0435\u00a0\u043e\u0442\u043f\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d.<\/p>\n<p><strong>\u0427\u0442\u043e\u00a0\u043f\u043b\u0430\u043d\u0438\u0440\u0443\u044e \u0434\u0430\u043b\u044c\u0448\u0435:<\/strong><\/p>\n<ul>\n<li>\n<p>\u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c <strong>\u0442\u0435\u0441\u0442\u044b<\/strong> (\u043a\u043e\u043d\u0444\u0438\u0433, \u043f\u043e\u0438\u0441\u043a \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u0432 \u043d\u0430\u00a0\u043f\u043e\u0434\u0434\u0435\u043b\u044c\u043d\u043e\u043c \u0434\u0435\u0440\u0435\u0432\u0435 sysfs, HID\u2011\u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u043d\u0430\u00a0\u043c\u043e\u043a\u2011\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435);<\/p>\n<\/li>\n<li>\n<p>\u0441\u0434\u0435\u043b\u0430\u0442\u044c <strong>\u043a\u043e\u0434 \u0447\u0438\u0449\u0435 \u0438 \u043b\u0443\u0447\u0448\u0435<\/strong>: \u0440\u0435\u0444\u0430\u043a\u0442\u043e\u0440\u0438\u043d\u0433, \u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u0430\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043e\u0448\u0438\u0431\u043e\u043a \u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430;<\/p>\n<\/li>\n<li>\n<p>\u0432\u044b\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043f\u0430\u043a\u0435\u0442\u044b \u0432 <strong>AUR<\/strong>: <code>ocyd<\/code> (\u0441\u0431\u043e\u0440\u043a\u0430 \u0438\u0437\u00a0\u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432) \u0438 <code>ocyd-bin<\/code> (\u0433\u043e\u0442\u043e\u0432\u044b\u0439 \u0440\u0435\u043b\u0438\u0437);<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u043a\u0443\u043b\u0435\u0440\u043e\u0432.<\/p>\n<\/li>\n<\/ul>\n<h3>\u041f\u043e\u043c\u043e\u0433\u0438\u0442\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u0435 \u043c\u043e\u0434\u0435\u043b\u0438<\/h3>\n<p>\u0415\u0441\u043b\u0438 \u0443\u00a0\u0432\u0430\u0441 \u0434\u0440\u0443\u0433\u043e\u0439 \u043a\u0443\u043b\u0435\u0440 Ocypus (\u0438\u043b\u0438 \u0432\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0430\u0448\u043b\u0438 \u0443\u00a0\u043c\u0435\u043d\u044f \u043e\u0448\u0438\u0431\u043a\u0443), \u0431\u0443\u0434\u0443 \u0440\u0430\u0434 \u043b\u044e\u0431\u043e\u0439 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439 \u0441\u0432\u044f\u0437\u0438:<\/p>\n<ol>\n<li>\n<p>\u0443\u0437\u043d\u0430\u0439\u0442\u0435 VID:PID \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 <code>lsusb<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u043c\u0435\u043d\u044f\u0439\u0442\u0435 \u0438\u0445 \u0432\u00a0\u043a\u043e\u043d\u0444\u0438\u0433\u0435 \u0438 \u0432\u00a0udev\u2011\u043f\u0440\u0430\u0432\u0438\u043b\u0435 (\u0438\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 <code>.\/<\/code><a href=\"http:\/\/install.sh\" rel=\"noopener nofollow\"><code>install.sh<\/code><\/a> \u0438 \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u0441\u0432\u043e\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f);<\/p>\n<\/li>\n<li>\n<p>\u043d\u0430\u043f\u0438\u0448\u0438\u0442\u0435 \u0432 <a href=\"https:\/\/github.com\/Dilikel\/ocyd\/issues\/new\/choose\" rel=\"noopener nofollow\">issue<\/a>, <strong>\u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u043d\u0435\u00a0\u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e<\/strong>: \u0443\u043a\u0430\u0436\u0438\u0442\u0435 \u0442\u043e\u0447\u043d\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c, \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432, VID:PID \u0438 \u043b\u043e\u0433\u0438 <code>journalctl --user -u ocyd.service<\/code>.<\/p>\n<\/li>\n<\/ol>\n<p>\u0422\u0430\u043a\u0436\u0435 \u0431\u0443\u0434\u0443 \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u0435\u043d \u0437\u0430\u00a0code review: \u0435\u0441\u043b\u0438 \u0432\u044b \u0432\u0438\u0434\u0438\u0442\u0435, \u043a\u0430\u043a\u00a0\u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043b\u0443\u0447\u0448\u0435, \u043f\u0438\u0448\u0438\u0442\u0435 \u0432\u00a0\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445 \u0438\u043b\u0438\u00a0\u0432\u00a0issue.<\/p>\n<p>\u0421\u043f\u0430\u0441\u0438\u0431\u043e, \u0447\u0442\u043e\u00a0\u0434\u043e\u0447\u0438\u0442\u0430\u043b\u0438!<\/p>\n<\/div>\n<p>\u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/1107776\/\">https:\/\/habr.com\/ru\/articles\/1107776\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442!\u041c\u043e\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u00a0\u2014 Linux (Arch). \u041c\u043d\u0435 \u043e\u043d\u0430 \u043e\u0447\u0435\u043d\u044c \u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f, \u043d\u043e\u00a0\u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435\u0434\u0430\u0432\u043d\u043e \u044f \u043e\u0431\u043d\u043e\u0432\u0438\u043b \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u0438 \u0440\u0435\u0448\u0438\u043b \u0437\u0430\u043e\u0434\u043d\u043e \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u043a\u0443\u043b\u0435\u0440. \u0412\u044b\u0431\u043e\u0440 \u043f\u0430\u043b \u043d\u0430 Ocypus Delta A62\u00a0EX Digital. \u0423\u00a0\u043d\u0435\u0433\u043e \u0435\u0441\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u0430\u044f, \u043d\u043e\u00a0\u0441\u0438\u043c\u043f\u0430\u0442\u0438\u0447\u043d\u0430\u044f \u0444\u0438\u0447\u0430: \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u044d\u043a\u0440\u0430\u043d\u0447\u0438\u043a, \u043d\u0430\u00a0\u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0443 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 \u0438\u043b\u0438\u00a0\u0432\u0438\u0434\u0435\u043e\u043a\u0430\u0440\u0442\u044b.\u0423\u00a0Ocypus \u0435\u0441\u0442\u044c \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0434\u043b\u044f\u00a0Windows, \u0430\u00a0\u0434\u043b\u044f\u00a0Linux\u00a0\u2014 \u043d\u0435\u0442. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u0440\u0435\u0448\u0438\u043b \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0432\u043e\u0451. \u0412\u00a0\u0442\u043e \u0432\u0440\u0435\u043c\u044f \u044f \u043a\u0430\u043a\u00a0\u0440\u0430\u0437 \u0438\u0437\u0443\u0447\u0430\u043b Go, \u0438 \u043e\u043d \u043f\u043e\u0447\u0442\u0438 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u043f\u043e\u0434\u00a0\u0442\u0430\u043a\u0443\u044e \u0437\u0430\u0434\u0430\u0447\u0443, \u043d\u043e, \u0447\u0435\u0441\u0442\u043d\u043e \u0433\u043e\u0432\u043e\u0440\u044f, \u044d\u0442\u043e \u0431\u044b\u043b\u043e \u0435\u0449\u0451 \u0438 \u0436\u0435\u043b\u0430\u043d\u0438\u0435\u043c \u043f\u043e\u0442\u0440\u0435\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0432\u00a0\u044f\u0437\u044b\u043a\u0435. \u041a\u00a0\u0441\u043b\u043e\u0432\u0443, \u044f \u0434\u0443\u043c\u0430\u044e \u043a\u043e\u0433\u0434\u0430\u2011\u043d\u0438\u0431\u0443\u0434\u044c \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u0442\u044c \u0432\u0441\u0451 \u043d\u0430\u00a0C \u0438\u043b\u0438\u00a0Rust, \u043d\u043e\u00a0\u0438\u0437\u2011\u0437\u0430 \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u043e\u0431\u044a\u0451\u043c\u0430 \u0443\u0447\u0451\u0431\u044b \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043d\u0430\u00a0\u044d\u0442\u043e \u043f\u043e\u043a\u0430 \u043d\u0435\u0442.\u0422\u0430\u043a \u0438 \u043d\u0430\u0447\u0430\u043b\u0441\u044f \u043f\u0440\u043e\u0435\u043a\u0442 ocyd.\u0420\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439: github.com\/Dilikel\/ocyd\u041b\u0438\u0446\u0435\u043d\u0437\u0438\u044f: GPLv3\u041a\u0430\u043a\u00a0\u0443\u0441\u0442\u0440\u043e\u0435\u043d \u043f\u0443\u0442\u044c \u043e\u0442\u00a0\u0438\u0434\u0435\u0438 \u0434\u043e\u00a0\u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u0434\u0435\u043c\u043e\u043d\u04301. \u0427\u0442\u043e\u00a0\u0432\u043e\u043e\u0431\u0449\u0435 \u0442\u0430\u043a\u043e\u0435 \u044d\u0442\u043e\u0442 \u044d\u043a\u0440\u0430\u043d\u0447\u0438\u043a\u041f\u0435\u0440\u0432\u044b\u043c \u0434\u0435\u043b\u043e\u043c \u043d\u0443\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u043f\u043e\u043d\u044f\u0442\u044c, \u043a\u0430\u043a\u00a0\u043a\u0443\u043b\u0435\u0440 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0434\u043b\u044f\u00a0\u0441\u0438\u0441\u0442\u0435\u043c\u044b. \u0412\u044b\u044f\u0441\u043d\u0438\u043b\u043e\u0441\u044c \u0431\u044b\u0441\u0442\u0440\u043e: \u044d\u043a\u0440\u0430\u043d \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u0430\u043a HID\u2011\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0441 VID:PID = 1a2c:434d \u0438 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c \u00abChina Resource Semico Co., Ltd USB Gaming Keyboard\u00bb.Bus 001 Device 005: ID 1a2c:434d China Resource Semico Co., Ltd USB Gaming Keyboard\u0412\u0438\u0434\u0438\u043c\u043e, \u0447\u0442\u043e\u0431\u044b \u043d\u0435\u00a0\u0442\u0440\u0430\u0442\u0438\u0442\u044c \u0434\u0435\u043d\u044c\u0433\u0438 \u043d\u0430\u00a0\u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 VID \u0438 PID, Ocypus \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u0437\u044f\u043b\u0438 \u0447\u0443\u0436\u0443\u044e \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0443 \u043e\u0442\u00a0\u043a\u0430\u043a\u043e\u0439\u2011\u0442\u043e \u0438\u0433\u0440\u043e\u0432\u043e\u0439 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b.2. \u0420\u0435\u0432\u0435\u0440\u0441\u2011\u0438\u043d\u0436\u0438\u043d\u0438\u0440\u0438\u043d\u0433 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430\u0414\u0430\u043b\u044c\u0448\u0435 \u043d\u0443\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u043f\u043e\u043d\u044f\u0442\u044c, \u043a\u0430\u043a\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0438 \u043a\u0430\u043a\u00a0\u043e\u043d\u0438 \u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f. \u0414\u043b\u044f\u00a0\u044d\u0442\u043e\u0433\u043e \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b Wireshark \u0438 \u0434\u0440\u0430\u0439\u0432\u0435\u0440 USBPcap \u043d\u0430\u00a0Windows. \u0417\u043d\u0430\u044f VID:PID, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043b\u0435\u0433\u043a\u043e \u043e\u0442\u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0440\u0430\u0444\u0438\u043a \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430.\u041f\u0440\u043e\u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0432 \u0431\u0430\u0439\u0442\u044b, \u044f \u043f\u043e\u043d\u044f\u043b, \u0447\u0442\u043e\u00a0\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u0430\u043a\u0435\u0442 \u0438\u0437 64\u00a0\u0431\u0430\u0439\u0442:\u0411\u0430\u0439\u0442 (\u0441 \u043d\u0443\u043b\u044f)\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u04350Report ID = 0x071, 20xFF, 0xFF3, 4, 5\u0446\u0438\u0444\u0440\u044b \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u044b: \u0441\u043e\u0442\u043d\u0438, \u0434\u0435\u0441\u044f\u0442\u043a\u0438, \u0435\u0434\u0438\u043d\u0438\u0446\u044b6\u201463\u043d\u0443\u043b\u0438\u0422\u043e \u0435\u0441\u0442\u044c \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0447\u0435\u043d\u044c \u00ab\u0432 \u043b\u043e\u0431\u00bb: \u043d\u0435\u00a0\u043e\u0434\u043d\u0438\u043c \u0447\u0438\u0441\u043b\u043e\u043c, \u0430\u00a0\u0442\u0440\u0435\u043c\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u0446\u0438\u0444\u0440\u0430\u043c\u0438. \u041d\u0430\u00a0\u044d\u0442\u043e\u043c \u0432\u0435\u0441\u044c \u0440\u0435\u0432\u0435\u0440\u0441\u2011\u0438\u043d\u0436\u0438\u043d\u0438\u0440\u0438\u043d\u0433, \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0438\u0447\u0435\u0433\u043e \u0438 \u043d\u0435\u00a0\u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u043e\u0441\u044c:)\u0412\u00a0\u043a\u043e\u0434\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:\/\/ SendTemp \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u0442 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0443 \u043d\u0430 3 \u0446\u0438\u0444\u0440\u044b \u0438 \u043f\u0438\u0448\u0435\u0442 64-\u0431\u0430\u0439\u0442\u043d\u044b\u0439 \u0440\u0435\u043f\u043e\u0440\u0442.func (d *Display) SendTemp(temp int) error {digits := decompose(temp)copy(d.buf[3:6], digits[:])n, err := d.dev.Write(d.buf[:])\/\/ &#8230;}func decompose(temp int) [3]byte {if temp &lt; 0 {temp = 0}if temp &gt; 999 {temp = 999}return [3]byte{byte(temp \/ 100),byte((temp % 100) \/ 10),byte(temp % 10),}}\u0414\u043b\u044f\u00a0\u0440\u0430\u0431\u043e\u0442\u044b \u0441\u00a0HID \u044f \u0432\u0437\u044f\u043b \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 sstallion\/go-hid. \u0414\u0435\u043c\u043e\u043d \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043f\u043e\u00a0VID:PID \u0438 \u0440\u0430\u0437 \u0432\u00a0\u0441\u0435\u043a\u0443\u043d\u0434\u0443 \u0448\u043b\u0451\u0442 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u0443\u044e \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0443.3. \u0421\u0430\u043c \u0434\u0435\u043c\u043e\u043d\u0417\u043d\u0430\u044f, \u0447\u0442\u043e\u00a0\u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c, \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c, \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0434\u0435\u043c\u043e\u043d. \u041a\u0430\u043a\u00a0\u0438 \u0432\u00a0\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438, \u044f \u0440\u0435\u0448\u0438\u043b \u0434\u0430\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u0432\u044b\u0431\u043e\u0440:\u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0430 CPU \u0438\u043b\u0438 GPU;\u0433\u0440\u0430\u0434\u0443\u0441\u044b \u0426\u0435\u043b\u044c\u0441\u0438\u044f \u0438\u043b\u0438 \u0424\u0430\u0440\u0435\u043d\u0433\u0435\u0439\u0442\u0430;\u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 VID:PID \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430.\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u043f\u0443\u043d\u043a\u0442 \u0432\u0430\u0436\u0435\u043d. \u042f \u043c\u043e\u0433\u0443 \u0440\u0443\u0447\u0430\u0442\u044c\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u00a0\u0441\u0432\u043e\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u043a\u0443\u043b\u0435\u0440\u0430: \u0434\u0440\u0443\u0433\u0438\u0435 \u043c\u043e\u0434\u0435\u043b\u0438, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043d\u0435\u0442. \u0410\u00a0\u0445\u0430\u0440\u0434\u043a\u043e\u0434\u0438\u0442\u044c VID:PID \u0432\u043e\u043e\u0431\u0449\u0435 \u043f\u043b\u043e\u0445\u0430\u044f \u0438\u0434\u0435\u044f.4. \u0413\u0434\u0435 \u0432\u00a0Linux \u0432\u0437\u044f\u0442\u044c \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0443\u0422\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 \u0432\u00a0Linux \u043b\u0435\u0436\u0438\u0442 \u0432 \/sys\/class\/hwmon\/hwmon*\/temp*_input. \u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0435\u043c \u0438\u043c\u0435\u043d\u043d\u043e \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u044d\u0442\u0438 * \u0432\u00a0\u043a\u0430\u0436\u0434\u043e\u043c \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435. \u0414\u043b\u044f\u00a0\u044d\u0442\u043e\u0433\u043e \u044f \u043e\u043f\u0438\u0441\u0430\u043b \u0431\u0430\u0437\u043e\u0432\u044b\u0435 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u044b \u0438 \u043c\u0435\u0442\u043a\u0438 \u0438\u0445 \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u0432, \u043f\u043e\u00a0\u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0434\u0435\u043c\u043e\u043d \u043d\u0430\u0445\u043e\u0434\u0438\u0442 \u043d\u0443\u0436\u043d\u044b\u0439 \u0444\u0430\u0439\u043b:\u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0414\u0440\u0430\u0439\u0432\u0435\u0440\u044b\u041c\u0435\u0442\u043a\u0438CPUk10temp, coretemp, zenpower, amd_energyTctl, Tdie, Package id 0, Package id 1GPUamdgpu, nouveau, nvidia, i915, xeedge, junction, hotspot, GPU\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043f\u0440\u043e\u0441\u0442\u043e\u0439: \u043f\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u0435\u043c hwmon*\/name, \u0438\u0449\u0435\u043c \u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u0438\u0437\u00a0\u0441\u043f\u0438\u0441\u043a\u0430, \u0432\u043d\u0443\u0442\u0440\u0438 \u043d\u0435\u0433\u043e \u0438\u0449\u0435\u043c temp*_label \u0441\u00a0\u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0435\u0439 \u043c\u0435\u0442\u043a\u043e\u0439 \u0438 \u0447\u0438\u0442\u0430\u0435\u043c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 temp*_input. \u0415\u0441\u043b\u0438 \u043c\u0435\u0442\u043a\u0438 \u043d\u0435\u00a0\u043d\u0430\u0448\u043b\u043e\u0441\u044c, \u0431\u0435\u0440\u0451\u043c temp1_input. \u042f\u0434\u0440\u043e \u043e\u0442\u0434\u0430\u0451\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432\u00a0\u043c\u0438\u043b\u043b\u0438\u2011\u0433\u0440\u0430\u0434\u0443\u0441\u0430\u0445 \u0426\u0435\u043b\u044c\u0441\u0438\u044f, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0434\u0435\u043b\u0438\u0442\u0441\u044f \u043d\u0430 1000.cpuTarget = sensorTarget{Drivers: []string{&#171;k10temp&#187;, &#171;coretemp&#187;, &#171;zenpower&#187;, &#171;amd_energy&#187;},Labels:  []string{&#171;Tctl&#187;, &#171;Tdie&#187;, &#171;Package id 0&#187;, &#171;Package id 1&#8243;},}\u0414\u043b\u044f\u00a0\u0432\u0438\u0434\u0435\u043e\u043a\u0430\u0440\u0442 \u0432\u0441\u0451 \u0442\u043e\u00a0\u0436\u0435 \u0441\u0430\u043c\u043e\u0435, \u043a\u0440\u043e\u043c\u0435 \u043f\u0440\u043e\u043f\u0440\u0438\u0435\u0442\u0430\u0440\u043d\u043e\u0433\u043e \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 NVIDIA: \u043e\u043d \u043d\u0435\u00a0\u043e\u0442\u0434\u0430\u0451\u0442 \u0434\u0430\u0442\u0447\u0438\u043a \u0447\u0435\u0440\u0435\u0437 hwmon. \u0414\u043b\u044f\u00a0\u043d\u0435\u0433\u043e \u0434\u0435\u043c\u043e\u043d \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 NVML (\u0447\u0435\u0440\u0435\u0437 go-nvml): \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u0440\u043e\u0431\u0443\u0435\u0442\u0441\u044f sysfs, \u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0441\u043b\u0438 \u0442\u0430\u043c \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435\u00a0\u043d\u0430\u0448\u043b\u043e\u0441\u044c, \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f NVML.\u041d\u0435\u00a0\u0431\u0443\u0434\u0443 \u0443\u0433\u043b\u0443\u0431\u043b\u044f\u0442\u044c\u0441\u044f \u0432\u00a0\u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e: \u0432\u0435\u0441\u044c \u043a\u043e\u0434 \u043e\u0442\u043a\u0440\u044b\u0442, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0435\u0433\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c, \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0438 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043c\u043d\u0435, \u0435\u0441\u043b\u0438 \u044f \u0447\u0442\u043e\u2011\u0442\u043e \u0434\u0435\u043b\u0430\u044e \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e.5. \u0414\u043e\u0441\u0442\u0443\u043f \u043a\u00a0\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0443 \u0431\u0435\u0437\u00a0root: udev\u0427\u0442\u043e\u0431\u044b \u0434\u0435\u043c\u043e\u043d \u043c\u043e\u0433 \u043f\u0438\u0441\u0430\u0442\u044c \u0432\u00a0HID\u2011\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e, \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u043e udev. \u0411\u0435\u0437\u00a0\u043d\u0435\u0433\u043e hidraw\u2011\u0443\u0437\u0435\u043b \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0438\u0442 root, \u0430\u00a0\u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0434\u0435\u043c\u043e\u043d \u043e\u0442\u00a0root \u043d\u0435\u00a0\u0445\u043e\u0447\u0435\u0442\u0441\u044f.SUBSYSTEM==&#187;hidraw&#187;, ATTRS{idVendor}==&#187;1a2c&#187;, ATTRS{idProduct}==&#187;434d&#187;, MODE=&#187;0666&#8243;\u0417\u0434\u0435\u0441\u044c 1a2c:434d\u00a0\u2014 \u044d\u0442\u043e VID:PID \u0438\u043c\u0435\u043d\u043d\u043e Ocypus Delta A62\u00a0EX Digital. \u0423\u00a0\u0434\u0440\u0443\u0433\u0438\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u043c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u0438 \u0432\u00a0\u043f\u0440\u0430\u0432\u0438\u043b\u0435, \u0438 \u0432\u00a0\u043a\u043e\u043d\u0444\u0438\u0433\u0435. \u0421\u0442\u043e\u0438\u0442 \u043f\u043e\u043c\u043d\u0438\u0442\u044c \u0438 \u043e\u00a0\u043a\u043e\u043c\u043f\u0440\u043e\u043c\u0438\u0441\u0441\u0435: MODE=&#187;0666&#8243; \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0443\u0437\u0435\u043b \u044d\u0442\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0432\u0441\u0435\u043c \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c. \u0414\u043b\u044f\u00a0\u044d\u043a\u0440\u0430\u043d\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0447\u0438\u0441\u043b\u043e, \u044f \u0441\u0447\u0451\u043b \u044d\u0442\u043e \u043f\u0440\u0438\u0435\u043c\u043b\u0435\u043c\u044b\u043c.6. systemd, \u043a\u043e\u043d\u0444\u0438\u0433 \u0438 ocydctl\u0414\u0435\u043c\u043e\u043d \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 systemd\u2011\u0441\u0435\u0440\u0432\u0438\u0441, \u0442\u0430\u043a \u0447\u0442\u043e\u00a0root \u0434\u043b\u044f\u00a0\u043d\u0435\u0433\u043e \u043d\u0435\u00a0\u043d\u0443\u0436\u0435\u043d:systemctl &#8212;user enable &#8212;now ocyd.servicejournalctl &#8212;user -u ocyd.service -f\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043b\u0435\u0436\u0430\u0442 \u0432 ~\/.config\/ocyd\/config.toml:[display]source = &#8216;CPU&#8217;   # &#8216;CPU&#8217; \u0438\u043b\u0438 &#8216;GPU&#8217;unit   = &#8216;C&#8217;     # &#8216;C&#8217; \u0438\u043b\u0438 &#8216;F'[device]vendor_id  = &#8216;0x1a2c&#8217;product_id = &#8216;0x434d&#8217;\u0427\u0442\u043e\u0431\u044b \u043d\u0435\u00a0\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0444\u0430\u0439\u043b \u0440\u0443\u043a\u0430\u043c\u0438, \u044f \u0441\u0434\u0435\u043b\u0430\u043b \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0443\u0442\u0438\u043b\u0438\u0442\u0443 ocydctl:ocydctl -source GPU -unit Focydctl -vendor 0x1a2c -product 0x434dsystemctl &#8212;user restart ocyd.serviceVID \u0438 PID \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\u0442\u0441\u044f \u0438 \u0432\u00a0hex, \u0438 \u0432\u00a0\u0434\u0435\u0441\u044f\u0442\u0438\u0447\u043d\u043e\u043c \u0432\u0438\u0434\u0435. \u0414\u0435\u043c\u043e\u043d \u0447\u0438\u0442\u0430\u0435\u0442 \u043a\u043e\u043d\u0444\u0438\u0433 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438\u00a0\u0441\u0442\u0430\u0440\u0442\u0435, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u0441\u043b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0435\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c.7. \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439\u0427\u0442\u043e\u0431\u044b \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0443 \u043d\u0435\u00a0\u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u0440\u0443\u043a\u0430\u043c\u0438 \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0442\u044c \u0444\u0430\u0439\u043b\u044b, \u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043b install.sh \u0438 uninstall.sh.install.sh:\u0438\u0449\u0435\u0442 \u0433\u043e\u0442\u043e\u0432\u044b\u0435 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u0438: \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0440\u044f\u0434\u043e\u043c \u0441\u043e \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u043c (\u0435\u0441\u043b\u0438 \u0432\u044b \u0441\u043a\u0430\u0447\u0430\u043b\u0438 \u0430\u0440\u0445\u0438\u0432 \u0440\u0435\u043b\u0438\u0437\u0430), \u0437\u0430\u0442\u0435\u043c \u0432 bin\/ (\u0435\u0441\u043b\u0438 \u0441\u043a\u043b\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439). \u0415\u0441\u043b\u0438 \u0438\u0445 \u043d\u0435\u0442, \u0441\u043e\u0431\u0435\u0440\u0451\u0442 \u0441\u0430\u043c;\u0441\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442, \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c\u00a0\u043b\u0438 VID:PID \u043f\u043e\u00a0\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e (1a2c:434d, Delta A62\u00a0EX Digital) \u0438\u043b\u0438\u00a0\u0432\u0432\u0435\u0441\u0442\u0438 \u0441\u0432\u043e\u0438;\u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u0438 \u0432 \/usr\/bin, \u0430\u00a0udev\u2011\u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0432 \/etc\/udev\/rules.d;\u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u043a\u043e\u043d\u0444\u0438\u0433, \u0435\u0441\u043b\u0438 \u0435\u0433\u043e \u0435\u0449\u0451 \u043d\u0435\u0442;\u0441\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442, \u043d\u0443\u0436\u0435\u043d\u00a0\u043b\u0438 systemd. \u0415\u0441\u043b\u0438 \u0434\u0430, \u043a\u043b\u0430\u0434\u0451\u0442 \u0441\u0435\u0440\u0432\u0438\u0441 \u0432 ~\/.config\/systemd\/user\/ \u0438 \u0441\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442, \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u00a0\u043b\u0438 \u0430\u0432\u0442\u043e\u0437\u0430\u043f\u0443\u0441\u043a \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c\u00a0\u043b\u0438 \u0441\u0440\u0430\u0437\u0443.uninstall.sh \u0434\u0435\u043b\u0430\u0435\u0442 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0435: \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u0438 \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0441\u0435\u0440\u0432\u0438\u0441, \u0443\u0434\u0430\u043b\u044f\u0435\u0442 \u044e\u043d\u0438\u0442, \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u0438 \u0438 udev\u2011\u043f\u0440\u0430\u0432\u0438\u043b\u043e, \u0430\u00a0\u043f\u0440\u043e\u00a0\u043a\u043e\u043d\u0444\u0438\u0433 \u0441\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e.\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430\u0418\u0437\u00a0\u0430\u0440\u0445\u0438\u0432\u0430 \u0440\u0435\u043b\u0438\u0437\u0430 (\u0441\u0431\u043e\u0440\u043a\u0430 \u043d\u0435\u00a0\u043d\u0443\u0436\u043d\u0430):tar -xzf ocyd_*_linux_amd64.tar.gzcd ocyd_*_linux_amd64.\/install.sh\u0418\u0437\u00a0\u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432:git clone https:\/\/github.com\/Dilikel\/ocyd.gitcd ocyd.\/install.sh\u0414\u043b\u044f\u00a0\u0441\u0431\u043e\u0440\u043a\u0438 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u044f\u0442\u0441\u044f Go, gcc \u0438 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438 libudev (libudev-dev \u0432\u00a0Debian\/Ubuntu, systemd-libs \u0432\u00a0Arch).\u0418\u0442\u043e\u0433\u041d\u0430\u00a0\u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u044f \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043b:\u0434\u0435\u043c\u043e\u043d, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043a\u0430\u0436\u0434\u0443\u044e \u0441\u0435\u043a\u0443\u043d\u0434\u0443 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0443 CPU \u0438\u043b\u0438\u00a0GPU \u043d\u0430\u00a0\u044d\u043a\u0440\u0430\u043d \u043a\u0443\u043b\u0435\u0440\u0430 \u0438 \u043f\u0440\u0438\u00a0\u044d\u0442\u043e\u043c \u0443\u0436\u0435 \u0441\u0435\u0439\u0447\u0430\u0441 \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u044f\u0435\u0442 \u0432\u0441\u0435\u0433\u043e \u043e\u043a\u043e\u043b\u043e 10\u00a0\u041c\u0411 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438;\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u0432 AMD, Intel \u0438 NVIDIA, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u043f\u0440\u043e\u043f\u0440\u0438\u0435\u0442\u0430\u0440\u043d\u044b\u0439 \u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u0447\u0435\u0440\u0435\u0437 NVML;\u0432\u044b\u0431\u043e\u0440 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430 \u0438 \u0435\u0434\u0438\u043d\u0438\u0446 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f (\u00b0C \/ \u00b0F) \u0438 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c\u044b\u0435 VID:PID;\u0443\u0442\u0438\u043b\u0438\u0442\u0443 ocydctl \u0434\u043b\u044f\u00a0\u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u0438\u0437\u00a0\u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438;\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 systemd\u2011\u0441\u0435\u0440\u0432\u0438\u0441, udev\u2011\u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0438 \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f;\u0433\u043e\u0442\u043e\u0432\u044b\u0435 \u0440\u0435\u043b\u0438\u0437\u044b \u0447\u0435\u0440\u0435\u0437 GoReleaser \u0438 \u0434\u0432\u0443\u044f\u0437\u044b\u0447\u043d\u044b\u0439 README (\u0440\u0443\u0441\u0441\u043a\u0438\u0439 \u0438 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u0439).\u0412\u0430\u0436\u043d\u0430\u044f \u043e\u0433\u043e\u0432\u043e\u0440\u043a\u0430: \u043f\u0440\u043e\u0435\u043a\u0442 \u043d\u0430 \u0440\u0430\u043d\u043d\u0435\u0439 \u0430\u043b\u044c\u0444\u0430\u2011\u0441\u0442\u0430\u0434\u0438\u0438. \u041f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430\u00a0\u043c\u043e\u0451\u043c \u043a\u0443\u043b\u0435\u0440\u0435, Ocypus Delta A62\u00a0EX Digital. \u042e\u043d\u0438\u0442\u2011\u0442\u0435\u0441\u0442\u043e\u0432 \u043f\u043e\u043a\u0430 \u043d\u0435\u0442, \u0430\u00a0\u043a\u043e\u0434 \u0435\u0449\u0451 \u043d\u0435\u00a0\u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d \u0438 \u043d\u0435\u00a0\u043e\u0442\u043f\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d.\u0427\u0442\u043e\u00a0\u043f\u043b\u0430\u043d\u0438\u0440\u0443\u044e \u0434\u0430\u043b\u044c\u0448\u0435:\u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0442\u0435\u0441\u0442\u044b (\u043a\u043e\u043d\u0444\u0438\u0433, \u043f\u043e\u0438\u0441\u043a \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u0432 \u043d\u0430\u00a0\u043f\u043e\u0434\u0434\u0435\u043b\u044c\u043d\u043e\u043c \u0434\u0435\u0440\u0435\u0432\u0435 sysfs, HID\u2011\u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u043d\u0430\u00a0\u043c\u043e\u043a\u2011\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435);\u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043a\u043e\u0434 \u0447\u0438\u0449\u0435 \u0438 \u043b\u0443\u0447\u0448\u0435: \u0440\u0435\u0444\u0430\u043a\u0442\u043e\u0440\u0438\u043d\u0433, \u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u0430\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043e\u0448\u0438\u0431\u043e\u043a \u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430;\u0432\u044b\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043f\u0430\u043a\u0435\u0442\u044b \u0432 AUR: ocyd (\u0441\u0431\u043e\u0440\u043a\u0430 \u0438\u0437\u00a0\u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432) \u0438 ocyd-bin (\u0433\u043e\u0442\u043e\u0432\u044b\u0439 \u0440\u0435\u043b\u0438\u0437);\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u043a\u0443\u043b\u0435\u0440\u043e\u0432.\u041f\u043e\u043c\u043e\u0433\u0438\u0442\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u0435 \u043c\u043e\u0434\u0435\u043b\u0438\u0415\u0441\u043b\u0438 \u0443\u00a0\u0432\u0430\u0441 \u0434\u0440\u0443\u0433\u043e\u0439 \u043a\u0443\u043b\u0435\u0440 Ocypus (\u0438\u043b\u0438 \u0432\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0430\u0448\u043b\u0438 \u0443\u00a0\u043c\u0435\u043d\u044f \u043e\u0448\u0438\u0431\u043a\u0443), \u0431\u0443\u0434\u0443 \u0440\u0430\u0434 \u043b\u044e\u0431\u043e\u0439 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439 \u0441\u0432\u044f\u0437\u0438:\u0443\u0437\u043d\u0430\u0439\u0442\u0435 VID:PID \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 lsusb;\u043f\u043e\u043c\u0435\u043d\u044f\u0439\u0442\u0435 \u0438\u0445 \u0432\u00a0\u043a\u043e\u043d\u0444\u0438\u0433\u0435 \u0438 \u0432\u00a0udev\u2011\u043f\u0440\u0430\u0432\u0438\u043b\u0435 (\u0438\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 .\/install.sh \u0438 \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u0441\u0432\u043e\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f);\u043d\u0430\u043f\u0438\u0448\u0438\u0442\u0435 \u0432 issue, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u043d\u0435\u00a0\u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e: \u0443\u043a\u0430\u0436\u0438\u0442\u0435 \u0442\u043e\u0447\u043d\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c, \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432, VID:PID \u0438 \u043b\u043e\u0433\u0438 journalctl &#8212;user -u ocyd.service.\u0422\u0430\u043a\u0436\u0435 \u0431\u0443\u0434\u0443 \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u0435\u043d \u0437\u0430\u00a0code review: \u0435\u0441\u043b\u0438 \u0432\u044b \u0432\u0438\u0434\u0438\u0442\u0435, \u043a\u0430\u043a\u00a0\u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043b\u0443\u0447\u0448\u0435, \u043f\u0438\u0448\u0438\u0442\u0435 \u0432\u00a0\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445 \u0438\u043b\u0438\u00a0\u0432\u00a0issue.\u0421\u043f\u0430\u0441\u0438\u0431\u043e, \u0447\u0442\u043e\u00a0\u0434\u043e\u0447\u0438\u0442\u0430\u043b\u0438!\u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 https:\/\/habr.com\/ru\/articles\/1107776\/<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-503189","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/503189","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=503189"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/503189\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=503189"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=503189"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=503189"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}