vmware-usbarbitrator
vmware-usbarbitrator - это та самая тулза, запуск которой позволит вам увидеть в #gentoo подключенную #usb флашку.
Без этого демона никакой флешки в removable devices не будет.
как-то так
Вышел снорт3, порт снорта2, написанного на С, порт на С++.
Вижу в коде совершенно неприемлемые для разработчика с любым стажем неловкости портирования.
Пример: во втором снорте часто используются связанные списки для хранения данных.
Для поиска в этих списках само собой приходится итерировать по списку.
В стандартной библиотеке плюсов из коробки есть варианты хранения данные в ассоциативных контейнерах. Сравнительно мгновенное время поиска и в данном случае незначительный рост трат памяти и ресурсов на хранение/модификацию хранимого плюс удобство кодера, казалось бы, должны перевесить. Просто здравый смысл в выборе типа контейнера дал бы мап, хешед мап.
Но нет. Осуществлен пословный перевод с С на С++. Более того. Выбран худший контейнер. Вместо связанного списка задействовали вектор. std::vector<>. Так и вижу этот разговор между сеньором и джуном:
Джун:
-вижу в снорте2 связанный список. модифицируется изредка. Для поиска пробегается весь список. На что меняем в снорте3 - на очередь и так же будем бегать?
Сеньор:
-совсем больной? какая очередь?
-ну а на что тогда?
-ну если совсем идей нет то попробуй вектор
-нет проблем
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, такого плана:
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.)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 changeavailable memory (or "free + buffers/cache") is close to zeroswap used increases or fluctuatesdmesg | grep oom-killer shows the OutOfMemory-killer at work|
| +1 |
|
> > Для десктопа не подходит из-за отсутствия systemd
> Чего это? Это некий "системный менеджер". Почитал бегло описание: содержит в одном проекте упрощённые реализации множества стандартных утилит, написанные (и пишущиеся в данный момент) с нуля двумя людьми под влиянием того, как аналогичные задачи решаются в windows и macos. По сути, похоже на бизибокс, только если там есть определённая цель - embedded и среды с ограниченным объёмом ресурсов, то здесь - проект пишется для души, не преследуя никакой конкретной цели. Утилиты реализованы особым образом, и, чтобы они работали, требуются изменения в базовых принципах работы современных юниксов. В результате ребятам пришлось реализовать свой инит, свой способ работы с логами, свой менеджер сеансов, свой способ монтирования разделов (временно с целью поддержки софта, аналоги которого ещё не реализованы в рамках systemd, традиционный fstab генерируется автоматически), даже отдельный демон для работы с /etc/localtime. Подробностей, к сожалению, не знаю, так как прочитал описание лишь бегло, но, судя по всему, многие задачи, типично решаемые в никсах запуском утилиты или установкой переменной окружения, здесь решаются просто отдельным демоном. То есть традиционное никсовое "всё есть файл" тут пытаются заменить на "всё есть демон". Проект является "домашним проектом" двоих вышеупомянутых, поэтому если им требуется какая-то возможность, то они просто берут и реализовывают её, а если что-то становится им ненужным, то могут удалить. Кроме того, поддерживается только работа в Линукс, причём достаточно свежих версий, и требует, чтобы ядро было собрано с некоторыми экзотическими опциями (как минимум, cgroups). РедХэт седьмую центось (и рхел вроде тоже) реализовала на базе этого "системного менеджера". Лидеру технического комитета Дебиана тоже так понравился этот systemd, что он устроил несколько голосований по вопросу внедрения его в дебиан и переделки всего на работу именно с ним вместо традиционных аналогов. Однако после трёх голосований желающих переходить на systemd всё ещё было не слишком много, так что решение мигрировать Дебиан на systemd ему пришлось принимать самостоятельно. Части голосовавших это не понравилось, и они создали ветку Дебиана в классическом исполнении - devuan. |