LINUX.ORG.RU

Сообщения ia666

 

CTAD, автовывод типа шаблона и type alias

 , ,

Дорогие плюсовики, нужен совет. Есть вот такой пример: https://godbolt.org/z/9aaj5K5Ph

Очень хочется добавить в шаблонный класс автовывод типов шаблонов по аргументам из конструктора.
Через static_assert точно знаю, что типы выводятся корректно, но компилятору не нравятся.
Это вообще обходится или проще забить и руками указывать типа всегда?

ia666
()

OpenVPN в режиме моста, проблема с получением IP адреса

 , ,

Есть роутер под управлением OpenWrt, поднял на нём openvpn в режиме моста, чтобы клиенты vpn становились полноценными участниками локальной сети.
Проблема с получением ip/routes для клиентов во время подключения от dhcp в локалке.
Но если после подключения ручками дернуть dhclient на созданный интерфейс - все прилетает.
По документации он должен обращаться к dhcp серверу локалки за адресом и выставлять его, но такого не происходит автоматически.

Конфиг openvpn, серверная часть:

verb 4
script-security 0

server-bridge nogw
port 1194
proto tcp4-server
tcp-nodelay
dev tap

dh dh.pem
pkcs12  lan.p12
tls-crypt ta.key

keepalive 5 30
remote-cert-tls client

Лог подключения клиента:

Sat Jul 15 20:15:53 2023 daemon.notice openvpn((vpn0))[5973]: 156.19.128.4:17271 TLS: Initial packet from [AF_INET]156.19.128.4:17271, sid=c5877215 8642d37b
Sat Jul 15 20:15:54 2023 daemon.notice openvpn((vpn0))[5973]: 156.19.128.4:17271 VERIFY OK: depth=1, CN=Easy-RSA CA
Sat Jul 15 20:15:54 2023 daemon.notice openvpn((vpn0))[5973]: 156.19.128.4:17271 VERIFY KU OK
Sat Jul 15 20:15:54 2023 daemon.notice openvpn((vpn0))[5973]: 156.19.128.4:17271 Validating certificate extended key usage
Sat Jul 15 20:15:54 2023 daemon.notice openvpn((vpn0))[5973]: 156.19.128.4:17271 ++ Certificate has EKU (str) TLS Web Client Authentication, expects TLS Web Client Authentication
Sat Jul 15 20:15:54 2023 daemon.notice openvpn((vpn0))[5973]: 156.19.128.4:17271 VERIFY EKU OK
Sat Jul 15 20:15:54 2023 daemon.notice openvpn((vpn0))[5973]: 156.19.128.4:17271 VERIFY OK: depth=0, CN=client1
Sat Jul 15 20:15:54 2023 daemon.notice openvpn((vpn0))[5973]: 156.19.128.4:17271 peer info: IV_VER=2.5.2
Sat Jul 15 20:15:54 2023 daemon.notice openvpn((vpn0))[5973]: 156.19.128.4:17271 peer info: IV_PLAT=linux
Sat Jul 15 20:15:54 2023 daemon.notice openvpn((vpn0))[5973]: 156.19.128.4:17271 peer info: IV_PROTO=6
Sat Jul 15 20:15:54 2023 daemon.notice openvpn((vpn0))[5973]: 156.19.128.4:17271 peer info: IV_NCP=2
Sat Jul 15 20:15:54 2023 daemon.notice openvpn((vpn0))[5973]: 156.19.128.4:17271 peer info: IV_CIPHERS=AES-256-GCM:AES-128-GCM
Sat Jul 15 20:15:54 2023 daemon.notice openvpn((vpn0))[5973]: 156.19.128.4:17271 peer info: IV_LZ4=1
Sat Jul 15 20:15:54 2023 daemon.notice openvpn((vpn0))[5973]: 156.19.128.4:17271 peer info: IV_LZ4v2=1
Sat Jul 15 20:15:54 2023 daemon.notice openvpn((vpn0))[5973]: 156.19.128.4:17271 peer info: IV_LZO=1
Sat Jul 15 20:15:54 2023 daemon.notice openvpn((vpn0))[5973]: 156.19.128.4:17271 peer info: IV_COMP_STUB=1
Sat Jul 15 20:15:54 2023 daemon.notice openvpn((vpn0))[5973]: 156.19.128.4:17271 peer info: IV_COMP_STUBv2=1
Sat Jul 15 20:15:54 2023 daemon.notice openvpn((vpn0))[5973]: 156.19.128.4:17271 peer info: IV_TCPNL=1
Sat Jul 15 20:15:54 2023 daemon.notice openvpn((vpn0))[5973]: 156.19.128.4:17271 Control Channel: TLSv1.3, cipher TLSv1.3 TLS_CHACHA20_POLY1305_SHA256, peer certificate: 4096 bit RSA, signature: RSA-SHA256
Sat Jul 15 20:15:54 2023 daemon.notice openvpn((vpn0))[5973]: 156.19.128.4:17271 [client1] Peer Connection Initiated with [AF_INET]156.19.128.4:17271
Sat Jul 15 20:15:54 2023 daemon.err openvpn((vpn0))[5973]: client1/156.19.128.4:17271 MULTI: no dynamic or static remote--ifconfig address is available for client1/156.19.128.4:17271
Sat Jul 15 20:15:54 2023 daemon.notice openvpn((vpn0))[5973]: client1/156.19.128.4:17271 Data Channel: using negotiated cipher 'AES-256-GCM'
Sat Jul 15 20:15:54 2023 daemon.notice openvpn((vpn0))[5973]: client1/156.19.128.4:17271 Data Channel MTU parms [ L:1583 D:1450 EF:51 EB:411 ET:32 EL:3 ]
Sat Jul 15 20:15:54 2023 daemon.notice openvpn((vpn0))[5973]: client1/156.19.128.4:17271 Outgoing Data Channel: Cipher 'AES-256-GCM' initialized with 256 bit key
Sat Jul 15 20:15:54 2023 daemon.notice openvpn((vpn0))[5973]: client1/156.19.128.4:17271 Incoming Data Channel: Cipher 'AES-256-GCM' initialized with 256 bit key
Sat Jul 15 20:15:54 2023 daemon.notice openvpn((vpn0))[5973]: client1/156.19.128.4:17271 SENT CONTROL [client1]: 'PUSH_REPLY,ping 5,ping-restart 30,socket-flags TCP_NODELAY,peer-id 0,cipher AES-256-GCM' (status=1)
ia666
()

Выбор сетевой карты

 ,

Полетела встроенная в материнку сетевая карта, поэтому вынужден искать замену. Подскажите, пожалуйста, беспроблемную в плане драйверов в linux сетевую карту, Ethernet, 1ГБит/c, на 1-2 порта, подключение к PCI шине.

ia666
()

nvidia GT730

 , ,

День добрый, ищу себе «затычку» в системник. Летом хотел взять вот такой перевыпуск GT710.
В ней вроде всё хорошо, пассивная, аж 4 до моников, и nouveau поддерживает вроде без геммороя.
Но не успел, закончились в продаже. Счас увидел в продаже GT730.
Посему пришел сюда с таким вопросом - стоит ли брать её, есть ли варианты от AMD подобные?
Есть ли подводные камни? Очень хочется услышать мнение со стороны.

ia666
()

Нужна помощь с написанием ebuild'a для модуля pulseaudio

 ,

Хочу написать ебилд для либы, у нее есть опция - собрать модуль для пульсы. Встретилось 2 неясности:

  • Требуются распакованные исходники пульсы( #include <pulsecore/..> ). Вопрос лишь какую версию указать в SRC_URI?
    Вариантов решения вижу два:

    • Завести PULSE_VER и обновлять его, если надо.
    • Каким то образом вытягивать версию пульсы, которая стоит в системе(portage вообще может такое напрямую?) и плясать от нее.
  • Требуется config.h, который обычно генерируется из config.h.in после configure у пульсы, в исходниках его нету.
    Глядя в media-sound/pulseaudio-modules-bt, там config.h.in идет вместе с исходниками и средствами cmake генерируется.
    Т.к. pulseaudio знаю слабо, то не огребу ли в будущем каких то проблем, если просто запущу econf с нужными ключами на сорцах пульсы, а потом перекину сгенерированнный config.h куда надо?
    По идее, дефайны могут не совпасть с теми, которые были при сборке pulseaudio. Что вообще делать в таких ситуациях?

Интересует как сделать это в соотвествии с devmanual и не накосячить

ia666
()

Поиск оптимального момента для снижения цены

 

Есть X, что генерирует ресурс c одинаковой скоростью, по цене P = f(n), где n - количество уже имеющихся X.
Цель - найти оптимальный момент, когда снизить цену покупки на R процентов выгоднее, чем купить новый X. Мысли пока такие:

  • оценивать время, которое будет необходимо, чтобы купить новый X для обоих случаев
  • оценивать снижение цены как множитель выхлопа 1/(1-total), где total - суммарное снижение. 20% снижение = 1.25

Смущает, что пока не ясно насколько это точно отображает влияние решения на все будущие покупки.

Какие есть алгоритмы для оценки таких ситуаций?
И как блин гуглить такие вещи, по каким запросам?

ia666
()

Хранение переменной одного из двух типов

 

Есть два enum для двух очень похожих, но не пересекающихся категорий.
И стандартные map’ы где хранятся элементы:

struct Entity {
    const int v1;
    int v2;
/* дальше кучка методов с формулами */
};
enum class First { ... };
enum class Second { ... };
std::map<First, Entity> FirstMap;
std::map<Second, Entity> SecondMap;

Хочется написать некий класс View, который будет запоминать часть данных от Entity на момент создания View. А также возможность обновить представление. Что то типа:

View( First t, const Entity & e ){...}
View( Second t, const Entity & e){...}

Как лучше хранить t внутри объекта View? т.к. без этого не сделать «обновление данных» в View, надо знать, что за сущность отображается. Отображение First отличается от отображения Second, поэтому и затык.

Про std::variant и его аналоги в курсе, но вдруг найдется более лучше решение, т.к. здесь всего 2 возможных типа.
Или можно по другому организовать хранение данных, чтобы такая проблема вообще не возникла? Буду рад любым идеям.

ia666
()

Heroes 3 HD mod под wine

 ,

У кого нибудь есть успешный опыт в запуске многопользовательской игры в 3 героях с HD модом?
В одиночной игре проблем нету, при попытке начать многопользовательскую игру или присоединиться - висяк
Пробовал и wine vanilla и wine staging, разницы 0. Хочется выяснить, это я криворук или нет

ia666
()

Bash while досрочное прерывание цикла

 

Нужно было перегнать несколько файлов через ffmpeg, накидал простенький скрипт. там есть фрагмент:

find $dir -maxdepth 3 -iname "*.mp4" -type f | while read f
do
    f=$(basename "${f}")
    ffmpeg ... > /dev/null 2>&1
done
...

Цикл обрабатывает только первый файл, а потом прекращает работу.
Если убрать вызов ffmpeg - обходит все файлы.
Куда копать?

ia666
()

Radeon и dpm

 ,

Имеется ноут, карточка radeon(используется драйвер RV710) + 2 монитора. Если ничего не трогать, то при подключении 2 монитора memory clock улетают на максимум, в итоге оно жрет больше энергии и греется тоже больше.

echo battery > /sys/class/drm/card0/device/power_dpm_state

спасает ситуацию, но до первого сна или отключения монитора. Потом он автоматом выставляет performance.
Вопрос - как заставить его использовать только один указанный режим? в параметрах модуля ничего такого не нашел.
P.S Про вариант выключить dpm и использовать управление через profile в курсе, но это запасной вариант, если с dpm ничего не выйдет

ia666
()

Странно высокий LA

 

уже второй раз ловлю ситуацию, что на ноутбуке показывает высокий la. В первый раз в простое было 6, сейчас показывает 3.
Учитывая, что у ноута всего 2 физ.ядра, top показывает 98% idle, iotop показывает, что диск воообще на нагружен, одни нули, la ниже 3 не падает.
с памятью тоже все прекрасно, занято только 2 из 8Gb, свап никто не мучает
Куда копать, чтобы выяснить откуда берется эта 3?

ia666
()

tmpfs с другой фс

 , ,

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

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

Есть ли другие варианты?

ia666
()

Многопоточный поиск пути

 , ,

Умные люди, помогите, пожалуйста, с алгоритмом:

  • Имеем 7 измерений, по которым можно двигаться, с шагом в 1.
  • Одномоментно можно пройти только по одному измерению.
  • При переходе надо сделать расчет можем ли мы здесь находиться, если можно, ок, идем дальше, нельзя - по этому пути прохода нет.
  • Начальные условия задаются при старте, как далеко можно зайти зависит только от начальных условий

Хочу узнать как далеко можно зайти. Если делать в один поток, то вырисовывается простая рекурсивная функция, которая рано или поздно все обойдет.
Думал как можно распараллелить сие, пока что пришел к мысли хранить контейнер с мьютексом для хранения уже пройденных состояний. При переходе проверять наличие исследуемого элемента в контейнере. Если его нет, тут же добавлять его в контейнер, чтобы другие потоки не делали дублирующую работу.
Вопрос собственно в том, а не фигню ли я придумал?
Интересует есть ли более быстрые/простые способы запускать от 1 до N потоков, чтобы они не делали лишную работу и не мешались друг другу

ia666
()

Зависает UI в Chromium

 , ,

Собственно проблем две

  • После выбора файла для загрузки интерфейс окна зависает нафиг. Я вижу все вкладки, содержмое текущей вкладки перерисовывается при изменении размера окна, но на ввод мышки\клавиатуры и другие попытки переключить вкладку не реагирует. Шанс так попасть примерно 50% на 50%. Если открыто другое окно с вкладками - его не затрагивает
    Из похожих нашел такой баг https://bugs.chromium.org/p/chromium/issues/detail?id=716892
    Но у меня kde и GTK_MODULES у меня вообще не определена.
  • При открытии диалога выбора файла он слева выводит ссылки на /home и на пути указанные в fstab, но почему то считает, что они не примонтированы, хотя это не так. И вместо перехода по ним пытается примонтировать их, и отваливается из-за недостатка прав на это. Как его научить нормально видеть папки? И можно ли его заставить использовать родной диалог выбора файла?
ia666
()

Multiple pulseaudio

 

Есть какой нибудь нормальный способ урегулировать ситуацию, когда имеется больше одного пользователя, которые используют PA для вывода звука?
По умолчанию у второго и последующих пользователей звук просто отваливается

ia666
()

обновление OpenWRT

 

Имеется старая прошивка OpenWRT, с деревом исходников и конфигом, с которым прошивка создавалась
Цель - обновить прошивку до 18.06.2 релиза, готовую брать не могу, т.к. её все равно под свои нужды изменять.
При обновлении, мне надо просто обновить сорцы через гит, прогнать feeds если надо, и сделать olddefconfig? Или еще какие то грабли в наличии?
Или взять чисто конфиг, и скачать всё исходники по новой?

ia666
()

Шахматы

 

Кто подскажет какие есть программы для шахмат под linux? Из необходимого:

  • Импорт сыгранной игры, PGN формат
  • Возможность анализа и т.д.
  • Если возможно выбор движка.
ia666
()

MiniPCIe Wifi адаптер для ноутбука

 , ,

Задумал обновить wifi карточку в ноуте, смотрю на чипы от Atheros, т.к. хочу без адаптер без блоба и хорошей поддержкой в ядре + bluetooth. Офигенные скорости, ac режим, 5GHz не обязательны, но почему бы и нет. Что мудрые люди посоветуют?

ia666
()

RSS подписка на новые темы