LINUX.ORG.RU

Избранные сообщения superuser

Новая версия регулятора для бормашинок, с поддержкой оборотов

Новости — Hardware and Drivers
Группа Hardware and Drivers

Вышла новая версия прошивки и плат регулятора для бормашинок, который позволяет простой заменой электроники стабилизировать обороты под нагрузкой.

Те, кто пользуются сетевыми бормашинками, знают что на низких оборотах они совсем «не тянут». Поэтому на замену стандартного регулятора был разработан «валшэбный», который умеет определять скорость через противоЭДС. То есть не нужно устанавливать датчик оборотов - просто меняем плату и всё.

Что нового:

  • Разведены платы под новые модели бормашинок (старые хильды уже не выпускают)
  • Односторонний монтаж SMD (проще собирать)
  • ADRC-control вместо PID (намного лучше отрабатывает всякие неравномерности характеристик)
  • Улучшена калибровка

Несмотря на кажущуюся сложность, регулятор относительно прост для повторения. Платы и детали заказываются в полтора клика через EasyEDA, остается только собрать и прошить по USB.

Кому интересно - в документации расписана вся математика.

>>> Подробности

 speed control,

Vit
()

Российские контроллеры двигателей, совместимые с Raspberry PI

Новости — Hardware and Drivers
Группа Hardware and Drivers

Компания СЕРВОСИЛА выпустила в продажу миниатюрные встраиваемые контроллеры бесколлекторных двигателей, совместимые с Linux, в частности с Raspberry PI.

( читать дальше... )

>>> Подробности

 , сервосила

servosila
()

Уязвимость в Linux, касающаяся сетевого протокола CAN BCM

Новости — Безопасность
Группа Безопасность

Недавно выявленная уязвимость в ядре Linux (CVE-2021-3609) позволяет получить root-права рядом махинаций, связанных с сетевым протоколом CAN (controller area network) BCM. Затрагивает версии с 2.6.25 до mainline 5.13-rc6 включительно.

Исследователь, выявивший уязвимость, подготовил эксплоит, действующий на ядра версий >=5.4.

( читать дальше... )

>>> Новость на OpenNet

>>> Подробности

 , ,

x86-
()

Нужна помощь с bash-скриптом.

Форум — General

Есть такой скрипт:

#!/bin/bash
  
file="test1.txt"

cat<<EOF>$file
rabbit1-test1
rabbit1-test2
rabbit1-test3
EOF


cat $file | while read line; do jq -Rs \
   --arg v1 "/"              \
   --arg v2 "$line"          \
   --arg v3 "rabbit@node1" \
   '{"{#VHOSTNAME}" : $v1, "{#QUEUENAME}": $v2, "{#NODENAME}": $v3}' \
   <<<'{}' ;
done

Нужно получить такой результат:

{
  "data": [
    {
      "{#VHOSTNAME}": "/",
      "{#QUEUENAME}": "rabbit1-test1",
      "{#NODENAME}": "rabbit@node1"
    },
    {
      "{#VHOSTNAME}": "/",
      "{#QUEUENAME}": "rabbit1-test2",
      "{#NODENAME}": "rabbit@node1"
    },
    {
      "{#VHOSTNAME}": "/",
      "{#QUEUENAME}": "rabbit1-test3",
      "{#NODENAME}": "rabbit@node1"
    }
  ]
}

Как правильно добавить

"data": [
в эту строчку?
'{"{#VHOSTNAME}" : $v1, "{#QUEUENAME}": $v2, "{#NODENAME}": $v3}'

 , ,

perrfect
()

Скрин-каст.

Форум — Games

Нужна нормальная программа ( не SimpleScreenRecorder и ей подобные ) которая может запись игры не влияя на fps в игре. При SSR fps в Guild Wars 2 катастрофически падает. В общем жуть.

 , ,

x86th
()

Помогите починить dsdt

Форум — Admin

Помогите собрать dsdt без ошибок. Сам уже замучился разбираться в этом asl, жутко странный язык, на русском ничего по нему не нашел, а по-английски не готов читать. Ошибки какие-то не типичные. Также не понятно, как asus собрал dsdt интеловским компилятором 2012 года, если у меня он выдает 5 ошибок (может декомпилируется с ошибками?).

aml: http://rgho.st/8ZqBGGyLn

asl: http://rgho.st/8jJbgdf9Y

Декомпиляция:

Intel ACPI Component Architecture
ASL+ Optimizing Compiler version 20160212-64
Copyright (c) 2000 - 2016 Intel Corporation

Input file dsdt.dat, Length 0x161BD (90557) bytes
ACPI: DSDT 0x0000000000000000 0161BD (v02 _ASUS_ Notebook 00000012 INTL 20120711)
Pass 1 parse of [DSDT]
Pass 2 parse of [DSDT]
Parsing Deferred Opcodes (Methods/Buffers/Packages/Regions)

Parsing completed

Found 18 external control methods, reparsing with new information
Pass 1 parse of [DSDT]
Pass 2 parse of [DSDT]
Parsing Deferred Opcodes (Methods/Buffers/Packages/Regions)

Parsing completed
Disassembly completed
ASL Output:    dsdt.dsl - 750692 bytes
Обратная компиляция:
Intel ACPI Component Architecture
ASL+ Optimizing Compiler version 20160212-64
Copyright (c) 2000 - 2016 Intel Corporation

Compiler aborting due to parser-detected syntax error(s)
dsdt.dsl   2399:                 Zero
Error    6126 -                    ^ syntax error, unexpected PARSEOP_ZERO

dsdt.dsl   2483:                         Zero
Error    6126 -                            ^ syntax error, unexpected PARSEOP_ZERO

dsdt.dsl  12338:         }
Error    6126 -         ^ syntax error, unexpected '}'

dsdt.dsl  21771:                 Local1 = (0x0A - Local0)
Error    6126 -                      ^ syntax error, unexpected PARSEOP_LOCAL1

dsdt.dsl  24058: 
Error    6126 - syntax error, unexpected $end and premature End-Of-File

ASL Input:     dsdt.dsl - 24058 lines, 750692 bytes, 11855 keywords
Hex Dump:      dsdt.hex - 203 bytes

Compilation complete. 5 Errors, 0 Warnings, 0 Remarks, 0 Optimizations
Ноутбук asus x555ld. Кто в этом разбирается гляньте пожалуйста.

 ,

Simarc
()

Есть люди, которые разбираются в ACPI?

Форум — Development

Даже не знаю, может это в hardware. Надо пропатчить dsdt для vostro 14-5459. Версия bios 1.0.4.

С чего начать? А эта штука универсальная? Потому что под osx частенько такая проблема обсуждается, может быть даже выложили готовый.

Интересно то, что ноут линуховый. Неужели просто решили забить на баг в acpi?

[0.669592] ACPI Error: [\_SB_.PCI0.PEG0.NHDA] Namespace lookup failure,
 AE_NOT_FOUND (20160831/psargs-359)
[0.669610] ACPI Error: Method parse/execution failed [\_SB_PCI0.PEG0.PG00._ON] (Node ffff88027b1154b0), AE_NOT_FOUND (20160831/psparse-543)

UPD: Обновил bios до 1.0.6.

 ,

Deleted
()

Пересборка FreeType с другими настройками

Форум — Development

Всем здравствуйте.

Как пересборать FreeType 2.7+ так, чтобы по умолчанию выбиралась версия 35 интерпретатора байткода TrueType?

Т. е. я хочу по умолчанию поведения, как в FreeType 2.6, но без необходимости указывать

FREETYPE_PROPERTIES=truetype:interpreter-version=35

И хочется при этом, чтобы более новые версии интерпретатора (38 и 40) тоже были доступны – путём указания FREETYPE_PROPERTIES либо программно, через FT_Property_Set().

Сижу, курю /usr/include/freetype2/freetype/config/ftoption.h – и что-то не понимаю. Вижу лишь, что можно полностью выключить субпиксельный хинтинг, но также это полностью отключает интерпретаторы версий 38 и 40.

P.S. Указание версии по умолчанию в /etc/environment не вариант – интересует именно пересборка.

 , ,

Bass
()

Почтальонов 20 лет по ошибке сажали в тюрьму из-за «кривого» ПО

Форум — Talks

Британская почтовая компания Post Office десятками лет использовала ПО Horizon с ошибкой в коде. Оно применялось для учета всех продаж и вело неверные подсчеты. Программа указывала на недостачу денег, и сотрудники компании, «ответственные» за нее, попадали в тюрьму или лишались личных сбережений, а некоторые даже кончали с собой. Количество пострадавших исчисляется сотнями.

Без вины виноватые

Сотрудники британской почтовой компании Post Office Ltd. на протяжении последних 20 лет рисковали оказаться за решеткой или как минимум без жилья и средств к существованию из-за ошибок в программном обеспечении. Как пишет портал The Verge, компания использовала специализированный софт Horizon, принадлежащий японской Fujitsu. За ее разработкой стоит британская ICL – она создала Horizon в 1995 г. В 1998 г. Fujitsu стала единственным акционером ICL, а в 2002 г. она перестала существовать под своим именем и была переименована в Fujitsu.

В Horizon присутствовала фатальная ошибка, из-за которой ПО вело неправильные подсчеты и раз за разом показывало недостачи денег, которые руководители почтовых отделений Post Office затем приписывали сотрудникам отделений. В компании были уверены в том, что Horizon работает безупречно.

BBC пишет, что случай с Post Office стал крупнейшей судебной ошибкой за всю историю Великобритании, поскольку из-за бага в Horizon пострадали без преувеличения сотни невиновных людей. Сама компания существует с 1986 г., и на начало 2019 г. ее штат насчитывал свыше 5000 сотрудников.

Сломанные судьбы
BBC пишет, что из-за программистов ICL и руководства Post Office жизнь многих сотрудников почтовых отделений была разрушена. От кого-то ушел супруг, а кто-то, как, например, Джанет Скиннер (Janet Skinner), лишился возможности растить своих детей.

Скиннер не просто разлучили с детьми – ее посадили в тюрьму на девять месяцев после того, как злополучное детище Fujitsu выявило в отделении, в котором она работала, недостачу в размере 59 тыс. фунтов стерлингов (6,148 млн руб. по курсу ЦБ на 26 апреля 2021 г.).

Но случай Джанет Скиннер далеко не самый вопиющий. Уверенность британских руководителей в том, что японское ПО безупречно, привело к тому, что свободы лишилась ни в чем не повинная беременная женщина. И даже это, как выяснилось, не предел – в одном из офисов компании Post Office программа Horizon выявила недостачу почти в 100 тыс. фунтов стерлингов (10,42 млн руб.). Ее «повесили» на сотрудника отделения, и тот, узнав об этом, покончил жизнь самоубийством. Это не надоумило руководство Post Office проверить, все ли в порядке с ПО Fujitsu. В итоге всего несколько месяцев спустя новый сотрудник, заменивший покончившего собой, тоже пострадал из-за ошибок в работе Horizon.

Британская судебная система была беспощадная не только к беременным женщинам, но и к пожилым мужчинам. Так, 62-летний Виджай Парех (Vijay Parekh), пишет The Guardian, провел в тюрьме полгода. Его обвинили в краже 72 тыс. фунтов стерлингов (7,5 млн руб.), и адвокат посоветовал ему признать вину.

Тюрьма или потеря жилья
По информации BBC, ошибочные подсчеты, производимые Horizon, привели, в общей сложности, к судебному преследованию почти 740 сотрудников Post Office за период с 2000 по 2014 гг. Число людей, получивших повестки в течение последних семи лет, еще подлежит уточнению.

Вариантов у работников Post Office, оказавшихся «под прицелом» ПО Horizon, было не так уж много. Кто-то отправлялся в тюрьму, а кто-то мог остаться без единого фунта сбережений в попытке покрыть недостачу, которой на самом деле не было, из своего кармана.

Были среди пострадавших и те, кто буквально рисковал переехать жить на улицу. Не имея на руках свободных средств, они закладывали свои дома, лишь бы подсчеты в программном обеспечении сошлись, и им не пришлось отправляться в тюрьму.

Horizon все еще работает...
https://www.cnews.ru/news/top/2021-04-26_krivoj_soft_krupnoj_pochtovoj

https://en.wikipedia.org/wiki/Horizon_(IT_system)

 

novus
()

Возможность вендорлока в Linux

Форум — General

Так как не все ЛОРовцы внимательно следят за событиями и пропустив разрозненные факты не могут увидеть их взаимные связи то я для того чтобы они их увидели буду сюда постить ссылки на посты указывающие на те или иные возможности вендорлока в Linux.

 

torvn77
()

C++ override методов.

Форум — Development

Вот что-то я не смог осилить такую простую вещь как переопределение методов при наследовании.

#include <iostream>

class foo
{
  public:
    virtual void print() { std::cout << "foo\n";}
};


class bar : public foo
{
  public:
    void print() override { std::cout << "bar\n";} 
};


void fun(foo f)
{
  f.print();
}

int main()
{
  foo f;
  bar b;

  f.print();
  b.print();

std::cout << "===========\n";
  fun(b);

  return 0;
}

Вот по всем моим понятиям он после горизонтальной черты должен написать bar, a пишет foo :-(

Почему он так со мной, и что я делаю не так?

Мне то как раз надо чтобы позвали метод наследника, раз его передали в качестве параметров…

 

shaplov
()

Правило для udev (подключение монитора)

Форум — Linux-hardware

Приветствую!

Хочу сделать так, чтобы при подключении монитора к ноутбуку, автоматически запускался скрипт, который бы настраивал расположение экранов так, как мне нужно. Как я понимаю, это можно реализовать при помощи правил udev.

В каталоге /etc/udev/rules.d я добавил файл 99-monitor-hotplug.rules со следующим содержимым:

 ACTION=="change", SUBSYSTEM=="drm", ENV{HOTPLUG}=="1", RUN+="/home/viktor/scripts/monitor_plug.sh" 

Скрипт monitor_plug.sh содержит такой код:

#!/bin/bash

statusVGA="$(cat /sys/class/drm/card0-VGA-1/status)"
export XAUTHORITY=/home/viktor/.Xauthority
export DISPLAY=:0.0

if [ "${statusVGA}" = "connected" ]; then
        if [[ $(edid-decode /sys/class/drm/card0-VGA-1/edid | grep "Monitor name:" | sed 's/Monitor name: //') == "S22E200" ]]; then
                #/bin/sleep 2;
                xrandr --output LVDS-1-1 --off --output VGA-1-1 --primary --mode 1920x1080 --pos 0x0 --rotate normal --output HDMI-0 --off;
       fi
fi

Наверняка скрипт написан максимально криво, но суть в том, что при его запуске вручную, все работает как надо, но при подключении монитора ничего не происходит. Подскажите, пожалуйста, в чем может быть дело.

 , ,

ncrdg
()

autostart'ы в совремённом Linux

Форум — Admin

Что-то много развелось нынче разных мест, в которых могут быть прописаны или откуда какие-нибудь программы/скрипты могут стартовать автоматически. В этом отношении Linux сделался похож на винду.

Уже не уверен, что все их знаю. Решил составить список, может кто чего скажет ещё по его поводу. Поскольку ориентируюсь на Debian, не исключено есть какие-то особенности в иных дистрах.

  1. /etc/init.d  — (rc.0-6) — классическое место для init-скриптов для запуска разных демонов. + rc.local
  2. cron — /etc/crontab запуск чего-то по расписанию кроном и его клонами.
  3. /etc/systemd/system — сервисы, которые запускает systemd
  4. etc/xdg/autostart/ — приложения, запускаемые при загрузке десктопа, а вообще есть (но может и не быть, но автозагрузка иметься) системная переменная $XDG_CONFIG_DIRS
  5. /etc/profile, а также скрипты внутри /etc/profile.d — запускаются bash подобными оболочками.
  6. ~/.bashrc ~/.profile и ~/.bash_logout при разлогинивании
  7. /etc/X11/xinit/xinitrc — запускается X-ами, но если есть ~/.xinitrc запускается он.
  8. /etc/X11/xinit/xserverrc — тоже может запускаться
  9. /etc/gdm3/Xsession (gdm — для старых) если gdm3 менеджер, соответственно есть ещё: /usr/share/config/kdm/Xsession и другие
  10. Автозапуск графическими оболочками, кроме автостарта десктопа есть ещё, например, автозапуск гномом (и прочими), например для гнома и кде в /usr/share/applications и для текущего пользователя в ~/.config/autostart/ для кде ещё и в ~/.config/plasma-workspace/shutdown и ~/.config/plasma-workspace/env
  11. Вообще в графических оболочках может быть дохренища всяких автозапусков на разные случаи прописано в отдельных настройках, например, в гномореестре: скринсейверы, приложения при нажатии кнопки Power и т.д.
  12. Модули ядра. Загрузка прописывается в /etc/modules — сами модули лежат в подкаталогах /lib/modules/`uname -r`/ с расширением .ko
  13. Может быть раздел в (U)EFI — BIOS, оттуда что-то тоже может стартануть, причём даже после загрузки ядра, если правильно понял. Как фича работает пока толком не понял.
  14. /etc/udev/rules.d — менеджер устройств в Linux.

 ,

anonymous_incognito
()

Как исправить EDID?

Форум — General

На ноутбуке установил убунту 12.04. После добавления самых важных для себя программ поставил пакет lm-sensors. Перезагрузил систему и увидел ошибку EDID checksum error remainder 174.

Может кто подскажет, как эту ошибку исправить. Подозрение, что из-за нее слетело родное разрешение экрана и нижняя часть рабочего стола находится вне видимости.

 , ,

bagdanchik
()

Intel i915 и частота ШИМ подсветки

Форум — General

Такая история. В моем ноутбуке установлена графическая карта от Intel. При уменьшении яркости очень заметна низкая частота ШИМ. Глаза болят. Нашел решение вот здесь: http://devbraindom.blogspot.com/2013/03/eliminate-led-screen-flicker-with-int.... При запуске системы устанавливается нужная частота и все чудесно. Но при переходе в спящий режим и выхода из него (это когда экран блокировки с вводом пароля появляется) частота ШИМ сбрасывается на дефолтные значения. Какие костыли или не костыли посоветуете? Заранее спасибо.

UPD: решение в первом комментарии.

 , , , ,

Tuxman
()

Избавление от PWM-мерцания на железе intel. Нюансы

Форум — Linux-hardware

Всем привет Как известно, есть такая проблема как PWM-мерцания, связанная с реализацией функции изменения яркости.

На драйверах intel есть возможность это пофиксить с помощью intel_gpu_tools. А точнее, прописать в спец регистр значение периода мерцания (обратно пропорционально частоте). Туда же в нижние байты можно записать значение цикла внутри периода, который отвечает за яркость (цикл =0 - яркость 0%, цикл = период - яркость 100%)

Собственно, с этим все ок, это действительно работает. Подробнее есть здесь

Но есть большая проблема в том, что после этого изменения яркость практически не регулируется. Например, оригинальный период 937 (200Hz, шаг изменения яркости - 9). Я меняю период на 94 (2000Hz, шаг изменения яркости должен стать 1). Кол-во шагов для примера - 100 (то есть, в условных единицах - от 0 до 100 с шагом 1)

Таким образом, получается, что после изменения частоты, я дохожу до 100% яркости всего за 10 шагов (10%). То есть 0-10% еще есть какая-то регулировка, а 10-100% уже максимальная яркость.

Полагаю, что эту ситуацию можно исправить, изменив параметр /sys/class/backlight/intel_backlight/max_brightness. Он всегда остается равным периоду, который был задан изначально. Если можно было бы синхронизировать изменение регистра и этого параметра, то теоретически можно было бы сохранить регулировку яркости в полном диапазоне. Но этот параметр не получается изменить даже под рутом (permission denied) путем echo >

Есть ли какие-нибудь мысли, каким образом его еще можно изменить. Может опять таки есть регистр, который отвечает за этот параметр?

Спасибо

Upd: Думаю важно добавить, что это ноут

 , , ,

kao
()

Мерцание монитора

Форум — Desktop

Праздничного вечера всем, господа. Уже довольно давно раздражает, но всё как-то терпел, старался светлые темы выбирать и т.д., сейчас надоело, хочу решить проблему. Сама проблема: мерцает монитор при тёмных тонах на экране (как серая тема LOR'а, к примеру, или же #002b36 из тёмной Solarized-темы, но там вообще полная задница, очень чётко видно это мерцание, смотреть невозможно). Что характерно, на оффтопике такого не наблюдается, специально накатил и проверил. Что пробовал: пробовал сменить кабель HDMI - не помогло, пробовал сменить вход в мониторе на второй HDMI - не помогло, пробовал настраивать сам монитор - тоже не помогло, менял DE и WM - абсолютно никакой разницы. Единственное, что вроде бы частично спасло, это подключение через VGA, там этого дела вроде бы нет, или, хотя бы, поменьше, но сидеть с VGA - попахивает абсурдом. Моё железо и софт, собственно:

  • Void Linux x64, ядро неважно, всегда так было, даже на всяких мятах-манжарах
  • bspwm (тоже не слишком-то роль играет, в кедах была та же ботва, по-моему, даже хуже было, но это было давно, ручаться не буду)
  • Монитор ViewSonic VX2363SMHL
  • Intel i3 7100
  • Intel HD 630 в качестве графики, от которой идёт картинка.

Всем заранее спасибо.

 , ,

john_snake
()

modeline parameters

Форум — General

Вопрос знатокам

Кто знает как узнать и перенести из под винды в иксы вот эту строчку. А конкретно Linux modeline parameters: «1360x768» .....

Купил ноут Dell Latitude 3470 Но настройки экрана по дефолту работают под линухом ужасно.

Глаза спустя 3-4 часа вытекают просто.

Это возможно?

 

gybkabob
()

Самый быстрый алгоритм / библиотека на распаковке

Форум — Development

Собственно интересует библиотека всякого сжатия без потерь типа zstd, всякие lz, можно и гугловские.

Скорость сжатия не важна, низкий размер архива и главное быстрая распаковка (возможно даже низкая нагрузка на проц).

Например тут https://github.com/facebook/zstd написано в бенчмарке что lz4 1.9.2 = 4530 MB/s на распаковке и ничего про нагрузку на проц, память.

Может кто находил сравнение по скоростям и с нагрузкой на систему?

P.S. Факт: Встроенная функция бекапа игры в Steam использует gzip с AVX ускорениями, не реально медленное и жрет все ресурсы процессора.

 , , , ,

bhfq
()

Почему работает доступ к значению без $ в условном выражении?

Форум — Development

Сейчас наткнулся вот на такую особенность:

#!/bin/bash

regExpLen="1"

if [[ regExpLen -eq 1 ]]; then
  echo "Равно 1"
fi

Вопрос: почему в условии можно не писать $regExpLen, почему работает просто имя переменной?

 , ,

Xintrea
()