понедельник, 6 декабря 2021 г.

 vmware-usbarbitrator

 

 

 vmware-usbarbitrator - это та самая тулза, запуск которой позволит вам увидеть в #gentoo подключенную #usb флашку.

Без этого демона никакой флешки в removable devices не будет. 


как-то так


 

среда, 20 января 2021 г.

Snort3

 Вышел снорт3, порт снорта2, написанного на С, порт на С++.

Вижу в коде совершенно неприемлемые для разработчика с любым стажем неловкости портирования.

Пример: во втором снорте часто используются связанные списки для хранения данных.

Для поиска в этих списках само собой приходится итерировать по списку.

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

Но нет.  Осуществлен пословный перевод с С на С++. Более того.  Выбран худший контейнер. Вместо связанного списка задействовали вектор. std::vector<>. Так и вижу этот разговор между сеньором и джуном:

Джун: 

-вижу в снорте2 связанный список. модифицируется изредка. Для поиска пробегается весь список. На что меняем в снорте3 - на очередь и так же будем бегать?

Сеньор:

-совсем больной? какая очередь?

-ну а на что тогда?

-ну если совсем идей нет то попробуй вектор

-нет проблем


суббота, 9 января 2021 г.

 Gentoo + steam = linux gaming 

Собрал системничек на базе #ксеонов_с_алиэкспресса, добавил видяйку, поставил #генту, #стим, вроде бы бы всё работает, что удивительно. Даже виндовые игры.  

Железо:  система с алиэкспресса  Xeon E5-2690 @ 2.90GHz 32Gb  + GeForce GTX 1660 SUPER,  ssd на 480гиг и nvme на терабайт. Старый корпус, на всякий случай пару вентиляторов подвесил в корпусе, причем один костылями, с сомнительной необходимостью в этом костылинге.

Софт: Linux 5.4.80-gentoo-r1 + steam 1.0.0.67  + Proton.  

Можно и без протона, если ограничиться только играми, рассчитанными под SteamOS, это тот же линукс, насколько я понял. ТомбРейдер, например, или BlackMesa имеют версии под линукс=SteamOS. Но после установки этого 'compatibility tool=Proton' становятся доступны и виндовые игры. Подробнее статус поддержки игр надо узнавать в протондб, например вот страничка для GTA V.
При выбранном протоне на вкладке 'compatability' по шестеренке/properties кнопка install/play становится доступной в вендовых играх:


Видеокарта работает под NVIDIA drivers pack #455:

С дровами ещё надо что-то поделать, вручную сейчас скриптом в автостарте local.d модули подгружаю перед стартом иксов, в определенном порядке. Надо бы поизучать проблему, но лень.

В библиотеке уже просмотрены, успешно запущены Rise of the Tomb Raider,  Serious Sam 2-4, DOOM Eternal, Black Mesa, Euro Truck Simulator 2, GTA 4-5, CS и ещё ряд тайтлов.

Собственно, с нерешаемыми проблемами ещё не столкнулся.

TombRaider предупреждает при старте о том, что в биосе для цпу не выбран режим perfomance mode, это действительно так, но производительности хватает. По крайней мере, хватает для full HD:



 Проектор не держит 4к, на телевизоре не так интересно играть. Докупил моник фуллхдшный, подключил и моник и проектор к видяйке в режиме копирования экрана, в конфигураторе nvidia-settings это выглядит таким образом: 



 Что пришлось подправить, в принципе больших проблем не было, но упоминуть стоит.
1. Вначале хотел сжульничать, запустить на системе простую копию установленной и настроенной системы со старой машины. Выяснилось, что если  просто в эту интеловскую систему переткнуть диск/скопировать раздел с системы х64 но под амд, то гипертрединг не будет включаться - в /proc/cpuinfo будет 8 cpu вне зависимости от переключателя в биос.  Ядро собрано с -march=native, или же какие-то опции в menuconfig ядра выбраны, результат интересен. 

Не стал разбираться, в чём именно дело, ибо даже с загрузочной флешки отображается всё корректно. Надо просто пересобраться с -march=native на новой системе.

2. Подгрузку модулей для nvidia пришлось задавать руками - nvidia.ko, далее nvidia-modeset.ko, потом nvidia-drm.ko. упоминал про это.
Ну как бы на этом всё.

Теперь по софту. Cтим ставил по гентушному вики. Всё работает.

Запускаю из консоли, именно через ./steam. Как выяснилось, это дает хороший обьём информации для решения проблем, ибо происходит обильное логирование в stdout/err. 

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

 Надо снять эту галочку, вводить пароль при каждом старте стима.
Для удаления сохраненного логина надо выполнить rm -fr ~/.local/share/Steam/config

Сходу запустилась без проблем Rise of Tomb Raider.
Ввообще все игры с отметкой Steam OS должны запускаться без проблем, но на самом деле есть исключения. Например, Black Mesa: не стартовала, в консоль были жалобы о невозможность инициализировать аудиокарту.   Помогло тогда создание ~/.asoundrc,  такого плана:


Ставил же систем с нуля, как-то не заметил отсутствия. Да и не все игры требовали, по умолчанию всё находилось норм. В качестве звуковой использую встроенную в мать реалтековскую.
Но для GTA V и Doom Eternal этого было недостаточно. Вылетали с сообщением что-то типа "Failed to open audio .. device is busy". То есть, устройство никто не использовал, но при старте игрушки само окружение чем-то занимало звуковую карту и далее не отдавало.
Решил довольно просто - разрешил открывать устройство сразу нескольким приложениям. Возможно, что есть и другое решение, но  мне достаточно и этого - задания dmix в .asoundrc, теперь мой .asoundrc выглядит таким образом:


Для копипасты весь файлик текстом, все 4 строчки:

pcm.!default {
        type plug
        slave.pcm "dmix"
}

 GTA V требует скачивания ~100Gb файлов. Трижды подумайте. Далее при старте жалуется, что не хватает лимита на открытые файлы. Поднял до 655535, через /etc/security/limits.conf:

Хватило- https://www.youtube.com/watch?v=SzrCdmXu1Y4


среда, 3 июня 2020 г.

Использую WindowMaker.
Удинственное, что не нравилось, это то, что он хранит настройки в GNUstep директории. Прямо в хомовике. нет, без точки, просто создает директорию
Всегда не нравилось.
Ну почему не .GNUstep? один симвлол - точка спереди - и какая разница в лс, файловых менеджерах.
Сегодня настраивал систему, собрался с духом - и поправил все упомения GNUstep в .c .h исходников. сделал патчец, чтообы потом в генте по обновлению вмейкера не слетали эти настройки.
И задумался
Как часто обновляется этот идеальный оконной менеджер?
Нужен ли патч?
ведь код идеален.
Человечество создало два редактора текста, все никак второй не изучу, видать и не слезу с вима никогда. Человечество создало один оконный менеджер.  Ну и запустило человека в космос.
Не за горами достижение идеала и в других областях ПО. Практически сразу, после автоматизации разработки. Лет за пять ПО будет вылизано. В индустрии останутся лишь аналитики, продукт-менеджеры, бариста и пол-дансинг-танцовщицы с охранниками.

пятница, 9 августа 2019 г.

совершенно не знал про такой милый ресурсец
https://www.linuxatemyram.com/

How do I see how much free ram I really have?

To see how much ram your applications could use without swapping, run free -m and look at the "available" column:
  $ free -m
                total        used        free      shared  buff/cache   available
  Mem:           1504        1491          13           0         855      792
  Swap:          2047           6        2041
(On installations from before 2016, look at "free" column in the "-/+ buffers/cache" row instead.)
This is your answer in MiB. If you just naively look at "used" and "free", you'll think your ram is 99% full when it's really just 47%!
For a more detailed and technical description of what Linux counts as "available", see the commit that added the field.

When should I start to worry?

A healthy Linux system with more than enough memory will, after running for a while, show the following expected and harmless behavior:
  • free memory is close to 0
  • used memory is close to total
  • available memory (or "free + buffers/cache") has enough room (let's say, 20%+ of total)
  • swap used does not change
Warning signs of a genuine low memory situation that you may want to look into:
  • available memory (or "free + buffers/cache") is close to zero
  • swap used increases or fluctuates
  • dmesg | grep oom-killer shows the OutOfMemory-killer at work

вторник, 20 ноября 2018 г.

  • отлично сформулировано:
  • http://www.opennet.ru/openforum/vsluhforumID3/115824.html#11
  •  
  • 3.11, Аноним (11), 22:36, 13/11/2018 [^] [ответить]    [к модератору]  
  • +1
    > > Для десктопа не подходит из-за отсутствия systemd
    > Чего это? Это некий "системный менеджер". Почитал бегло описание: содержит в одном проекте упрощённые реализации множества стандартных утилит, написанные (и пишущиеся в данный момент) с нуля двумя людьми под влиянием того, как аналогичные задачи решаются в windows и macos.
    По сути, похоже на бизибокс, только если там есть определённая цель - embedded и среды с ограниченным объёмом ресурсов, то здесь - проект пишется для души, не преследуя никакой конкретной цели.
    Утилиты реализованы особым образом, и, чтобы они работали, требуются изменения в базовых принципах работы современных юниксов. В результате ребятам пришлось реализовать свой инит, свой способ работы с логами, свой менеджер сеансов, свой способ монтирования разделов (временно с целью поддержки софта, аналоги которого ещё не реализованы в рамках systemd, традиционный fstab генерируется автоматически), даже отдельный демон для работы с /etc/localtime. Подробностей, к сожалению, не знаю, так как прочитал описание лишь бегло, но, судя по всему, многие задачи, типично решаемые в никсах запуском утилиты или установкой переменной окружения, здесь решаются просто отдельным демоном. То есть традиционное никсовое "всё есть файл" тут пытаются заменить на "всё есть демон".
    Проект является "домашним проектом" двоих вышеупомянутых, поэтому если им требуется какая-то возможность, то они просто берут и реализовывают её, а если что-то становится им ненужным, то могут удалить. Кроме того, поддерживается только работа в Линукс, причём достаточно свежих версий, и требует, чтобы ядро было собрано с некоторыми экзотическими опциями (как минимум, cgroups).
    РедХэт седьмую центось (и рхел вроде тоже) реализовала на базе этого "системного менеджера".
    Лидеру технического комитета Дебиана тоже так понравился этот systemd, что он устроил несколько голосований по вопросу внедрения его в дебиан и переделки всего на работу именно с ним вместо традиционных аналогов. Однако после трёх голосований желающих переходить на systemd всё ещё было не слишком много, так что решение мигрировать Дебиан на systemd ему пришлось принимать самостоятельно. Части голосовавших это не понравилось, и они создали ветку Дебиана в классическом исполнении - devuan.

    среда, 19 сентября 2018 г.

    ntpdate при невозможности синхронизировать время с сервером NTP весьма неинформативно об этом рапортует, что на самом деле не только снижает потенциальный интерес к утилите, но и фактически мешает работать.   Утилита при стандартном запуске вида
      ntpdate 10.20.30.40
    не даст отличить  ситуации "нет доступа к сетевому узлу 10.20.30.40" от ситуации "на хосте 10.20.30.40 не запущен NTP сервер" не говоря уже об новой для меня ситуации "NTP сервер запущен, но его stratum/leap - это параметры [не]достоверности времени сервера -  слишком велики.
    Для более подробного разбора полётов -ожидаемого на самом деле поведения - необходимо запускать nptdate с ключом -d.
    Вчера на gentoo настраивал NTP сервер без доступа к внешним источникам. В генте 3 варианта NTP серверов, это

    • net-misc/openntpd
    • net-misc/ntp
    • net-misc/chrony

    Мне был привычен традиционный ntp от www.ntp.org но решил попробовать openntpd.
    Дать шанс. Указал адрес прослушивания, вроде бы что-то поднялось, попробовал синхронизироваться, не получилось - забил. Думаю, надо использовать старых друзей.
    И как выяснилось, привычный ntpd  тоже не отдаст время с ожидаемой точностью для ntpdate.
    Запустил
       <client>#ntpdate192.168.0.1

    получил ожидаемое
    20 Sep 05:54:30 ntpdate[1890]: no server suitable for synchronization found

    далее с ключом  -d
      <client># ntpdate -d  192.168.0.1 ...
     20 Sep 05:57:03 ntpdate[5580]: ntpdate 4.2.6p5@1.2349-o Mon Nov 14 18:25:09 UTC 2016 (1)
    Looking for host 192.168.0.1 and service ntp
    host found : 192.168.0.1
    transmit(192.168.0.1)
    receive(192.168.0.1)
    ...
    receive(192.168.0.1)
    192.168.0.1: Server dropped: strata too high
    server 192.168.0.1, port 123
    stratum 16, precision -24, leap 11, trust 000

    ...
    20 Sep 05:57:09 ntpdate[5580]: no server suitable for synchronization found


    Решил немного покопать, может получится быстро исправить ситуацию - не получилось быстро найти требуемые опции.

     В сердцах 
    подправил в сорцах

    в  ntpd/ntp_proto.c задал при отправке  stratum = 2;

    немногое изменилось:
     <client># ntpdate -d  192.168.0.1
    20 Sep 05:59:26 ntpdate[8858]: ntpdate 4.2.6p5@1.2349-o Mon Nov 14 18:25:09 UTC 2016 (1)
    Looking for host 192.168.0.1 and service ntp
    host found : 192.168.0.1
    transmit(192.168.0.1)leap 11
    ...
    ...
    192.168.0.1: Server dropped: Leap not in sync
    server 192.168.0.1, port 123
    stratum 2, precision -24, leap 11, trust 000




    решил, что это уже перебор. Надо дать шанс chrony, перед дальнейшей ломкой кода.
    <server>#emerge chrony
    <server>#cat /etc/chrony/chrony.conf
    driftfile /var/lib/chrony/drift
    makestep 1.0 3
    rtcsync
    clientloglimit 100000000
    local stratum 10
    leapsectz right/UTC
    allow  192.168.0.100
    bindaddress 192.168.0.1

    <server>#/etc/init.d/chronyd start

    на клиентской тачке
     <client># ntpdate  -d 192.168.0.1
    ...
    ...
    server 192.168.0.1, port 123
    stratum 10, precision -25, leap 00, trust 000

    refid [192.168.0.1], delay 0.02576, dispersion 0.00182
    ...
    20 Sep 06:05:10 ntpdate[16530]: adjust time server 192.168.0.1 offset 0.434906 sec

    отлично