LINUX.ORG.RU

Сообщения Suntechnic

 

Как сделать автоматическую регулировку яркости мониторов?

 , ,

Использую три моника - Philips 439P1 и два BenQ BL2581T. С помощью датчика освещенности откалибровал их так, чтобы регулировать яркость между минимальной (ночью) и максимальной (в солнечный день), примерно синхронно. Все устраивает. 400 Кд/м² у главного вполне хватает. Но надоело менять яркость руками. Может быть есть какие-то датчики освещенности с которых можно получить уровень освещенности легко в скрипте bash? Единственное что нагугливается - это датчики движения почему-то или датчики освещенности для управления светом.

UPD: Сделал простой скрипт который меняет яркость: https://gist.github.com/Suntechnic/ed884a1976412d4e474c19b88304d50d Пока собираюсь регулировать уровень меняя exposure_time_absolute

v4l2-ctl -d /dev/video2 -c exposure_time_absolute=120

Текущая 120. Иногда яркость прыгает между 0 и 1, поэтому зкоментил уведомления - дергают часы лишний раз. Послежу.

UPD2: В итоге получилось вот такое: https://github.com/Suntechnic/monitor - основной скрипт на PHP (прост он мне ближе), логика просто - на вход передается параметр яркости, он заносится в лог и связывается с освещенностью. Таким образом система самообучается. При запуске без параметров - берет данные из лога и устанавливает подходящую яркость. Все максимально просто но lux надо подогнать под вашу камеру, поправить пути устройств и исходные таблицы калибровки.

Suntechnic
()

Apparmor агрится на FF

 , , ,

dmesg забит сообщениями:

[1905230.508601] audit: type=1400 audit(1726211072.937:60744): apparmor="DENIED" operation="open" class="file" profile="firefox" name="/proc/2576774/oom_score_adj" pid=1695367 comm="firefox" requested_mask="w" denied_mask="w" fsuid=1000 ouid=1000
[1905231.543882] audit: type=1400 audit(1726211073.969:60745): apparmor="DENIED" operation="open" class="file" profile="firefox" name="/proc/2577025/oom_score_adj" pid=1695367 comm="firefox" requested_mask="w" denied_mask="w" fsuid=1000 ouid=1000
[1905231.598293] audit: type=1400 audit(1726211074.025:60746): apparmor="DENIED" operation="open" class="file" profile="firefox" name="/proc/2577025/cgroup" pid=2577025 comm=57656220436F6E74656E74 requested_mask="r" denied_mask="r" fsuid=1000 ouid=1000

Как пофиксить?

Suntechnic
()

Помогите поймать мышь

 ,

У HP есть офигенная мышь - HP Pavilion Gaming 300. У неё две киллер фичи - есть кнопки для большого пальца левой руки и есть аппаратное переключение между левой и правой рукой.

Всё вместе позволяет во-первых возить с собой только одну мышь, а во-вторых пользоваться левой и правой рукой мышью одинаково

Но этих мышей в Россию теперь не завозят (((

Известны ли кому-то модели с похожей функциональностью? Я даже уже готов смириться что придется таскать две мыши, лишь бы были кнопки под левый большой палец вперед-назад, уж очень привык. Но когда в яндексе сейчас выбираешь мыши для левшей, ничего для левшей там конечно нет. Обычные праворукие мыши ((

Suntechnic
()

Как почисить snap'ы?

 

Не удалить, а именно почистить. Есть всякие советы типа такого скрипта:

#!/bin/bash
# Удаляет старые ревизии SNAP пакетов
# ЗАКРОЙТЕ ВСЕ SPAN ПРИЛОЖЕНИЯ ПЕРЕД ЗАПУСКОМ ЭТОГО СКРИПТА
set -eu
snap list --all | awk '/disabled/{print $1, $3}' |
    while read snapname revision; do
        snap remove "$snapname" --revision="$revision"
    done

Но он не очищает /var/lib/snapd/snaps а там:

# ls -la /var/lib/snapd/snaps
итого 9554848
drwxr-xr-x  3 root root       4096 янв  7 11:14 .
drwxr-xr-x 24 root root       4096 янв  7 11:14 ..
-rw-------  1 root root 1240817664 янв  6 23:25 android-studio_144.snap
-rw-------  1 root root       4096 апр  5  2022 bare_5.snap
-rw-------  1 root root  110960640 окт  5 20:51 core_16202.snap
-rw-------  1 root root   58363904 дек  5 17:09 core18_2812.snap
-rw-------  1 root root   67014656 дек 11 10:09 core20_2105.snap
-rw-------  1 root root   77713408 дек  9 05:39 core22_1033.snap
-rw-------  2 root root  103182336 мая 19  2023 fslint-unofficial_73.snap
-rw-------  1 root root  366682112 июл 12 01:57 gnome-3-38-2004_143.snap
-rw-------  1 root root  521121792 сен 28 20:45 gnome-42-2204_141.snap
-rw-------  2 root root     143360 мая 19  2023 gtk2-common-themes_13.snap
-rw-------  1 root root   96141312 июн 29  2022 gtk-common-themes_1535.snap
drwxr-xr-x  2 root root       4096 июн 18  2022 partial
-rw-------  1 root root  175771648 дек 15 12:33 postman_236.snap
-rw-------  1 root root   42393600 янв  4 08:24 snapd_20671.snap
-rw-------  2 root root     462848 апр 27  2023 snapd-desktop-integration_83.snap
-rw-------  1 root root   12922880 апр 28  2023 snap-store_959.snap
-rw-------  1 root root  408764416 апр 24  2023 telegram-desktop_4743.snap
-rw-------  1 root root  408805376 апр 25  2023 telegram-desktop_4759.snap
-rw-------  1 root root  410406912 июл 21 18:03 telegram-desktop_4872.snap
-rw-------  1 root root  410484736 июл 29 09:10 telegram-desktop_4897.snap
-rw-------  1 root root  414953472 авг 16 00:21 telegram-desktop_4926.snap
-rw-------  1 root root  425472000 сен 13 17:22 telegram-desktop_5002.snap
-rw-------  1 root root  425525248 сен 13 22:42 telegram-desktop_5031.snap
-rw-------  1 root root  425627648 сен 25 05:04 telegram-desktop_5062.snap
-rw-------  1 root root  426921984 сен 25 09:54 telegram-desktop_5076.snap
-rw-------  1 root root  433700864 ноя 10 09:30 telegram-desktop_5204.snap
-rw-------  1 root root  434049024 ноя 14 18:16 telegram-desktop_5220.snap
-rw-------  1 root root  434241536 дек  1 16:00 telegram-desktop_5298.snap
-rw-------  1 root root  434241536 дек  3 00:27 telegram-desktop_5305.snap
-rw-------  1 root root  434237440 янв  3 02:04 telegram-desktop_5368.snap
-rw-------  1 root root  434262016 янв  5 06:24 telegram-desktop_5378.snap
-rw-------  1 root root  434270208 янв  7 10:39 telegram-desktop_5390.snap
-rw-------  2 root root  114372608 дек 17  2022 woe-usb_21.snap

Это чо такое? Он все скачанные пакеты хранит? Как-то можно сделать по другому?

Suntechnic
()

Лагает UI

 , , ,

Иногда начинает сильно лагать интерфейс. Вроде особой нагрузки какой-то нет: https://i.imgur.com/VlNxIyr.png

В данный момент запущено 3 файрфокса, хром, телега, calc, эмулятор андроида в виртуалбоксе и там же два дебиана. Интрефейс иногдf подвисает буквально на несколько секунд. Особенно часто когда работают виртуалки VB или в файерфоксе открыты графики сложные. При этом LA сносный вроде 3-4, оперативы полно, но лаги есть.

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

Может быть из-за видео? Три монитора - один 4К и два 1920*1200. Можно с этим что-то сделать? Куда копать?

Ubuntu 22.04
6.4.3-060403-generic
Nvida Quadra M2200
i7-7820HQ
Suntechnic
()

Не открываются сайты в телеграм

 

Сабж. Самое простой - оплата премиума. Просто открывается окно и висит белая страница. В целом вообще никакие сайты в телеграм не открываются.

Это проблема только у меня? Или у всех на Linux? Или это проблема у всех на десктопе?

В андроиде все нормально.

Ubuntu 22.04, телега 4.12.2, но и на более старых не открывались.

Suntechnic
()

nmcli - автоматическое поднятие соединений

 , ,

Как его выключить? Я вообще-то ожидал что будет нечто вроде nmcli connection autostart [off|on], но ничего подобного в мане не нашел.

А проблема вот в чем - добавил два wireguard соединения и оба они подключаются при старте системы автоматически. При этом сети вообще нет, хотя я не понимаю почему, ведь и у них разные метрики и трафик не должен в них запутываться… но вот так вот. Приходится одно отрубать вручную, а поэтому возникла необходимость убрать с одного из них автоматическое подключение (удалять не хочется). Как это сделать?

Suntechnic
()

перестал работать wgdashboard

 , ,

Ругается на что не может загрузить зависимость как я понял:

# ./wgd.sh start
------------------------------------------------------------
| Starting WGDashboard with Gunicorn in the background.    |
Failed to read config file: /root/wgdashboard/src/gunicorn.conf.py
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/base.py", line 111, in get_config_from_filename
    spec.loader.exec_module(mod)
  File "<frozen importlib._bootstrap_external>", line 848, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/root/wgdashboard/src/gunicorn.conf.py", line 2, in <module>
    import dashboard
  File "/root/wgdashboard/src/dashboard.py", line 25, in <module>
    from flask import Flask, request, render_template, redirect, url_for, session, jsonify, g
  File "/usr/local/lib/python3.8/dist-packages/flask/__init__.py", line 5, in <module>
    from .app import Flask as Flask
  File "/usr/local/lib/python3.8/dist-packages/flask/app.py", line 30, in <module>
    from werkzeug.urls import url_quote
ImportError: cannot import name 'url_quote' from 'werkzeug.urls' (/usr/local/lib/python3.8/dist-packages/werkzeug/urls.py)
| Log files is under log/                                  |
------------------------------------------------------------

При этом, при запуске pip install -r requirements.txt никаких ошибок не выдает - для всех пакетов Requirement already satisfied:*

Чо не так-то?

Suntechnic
()

Как сделать сервер маршрутизации?

 ,

Работаю сейчас с одним из заказчиков и у него gitlab «недоступен без VPN». Что это означает - что gitlab только в локальной сети есть или там фильтрация по IP я так и не смог добиться: «для доступа ставь VPN».

VPN’ом они называют вот такую штуку: https://www.fortinet.com/ru/support/product-downloads

Ставить ее себе на компьютер я не очень хочу. Но могу поставить на сервер разработки… сделал и тут выяснилось что российские IP заблокировны на VPN сервере, а серверы разработки у меня в России и там другой IP не получить. С их переносом есть сложности, да и мой комп тоже надо подключить как-то к этому VPN. Поэтому придумал взять VPS в другой локации, поставить туда эту штуку и какой-нибудь настоящий VPN к которому и будут цепляться и со своего ноута и с сервера разработки.

Все сделал, запустил, прицепился… как мне теперь сделать так чтобы мой OpenVPN использовал для некоторых маршрутов как выход подключение forti?

Сейчас например ping с машины где работает сервер OpenVPN и клиент форти к целевому серверу проходит. А с машины которая подключена к этому серверу OpenVPN - нет.

Что делать дальше?

Suntechnic
()

Как добраться до датчика освещенности?

 , , ,

Недавно обзавелся третьим монитором: Рабочие место с тремя мониторами - справа BenQ BL2581T.

В момент выбора я даже не думал о том что у него есть встроенные сенсор (даже два - есть сенсор присутствия,но он нихрена не видит меня в книжном положении, что грустно) освещенности, но потом сообразил что можно попробовать использовать его для регулировки яркости. Предположение было очень простое - вероятно значения сенсора пишутся в сектор доступный для чтение по DDC/CI, а если нет - тоже не страшно - можно включить автояркость на монике и читать собственно значение яркости.

Не тут-то было - судя по всему данные никуда с сенсора не попадают в регистры доступные по DDC/CI, а яркость монитора при автояркости всегда в 0x10 выглядит как 50. Т.е. по DDC/CI туда не добраться (((

Однако, можно робко предположить, что инженерам, делавшим моник, нужен какой-то интерфей отладки, к тому же нужно же и прошивки как-то в него заливать? Возможно каким-то чудом, можно получить доступ по USB к нему и по USB читать значения с сенсора?

Но я даже не представляю куда и как копать. Никакой гуглинг не помог. Какое ПО есть для какой-нибудь низкоуровневой работы с USB?

Suntechnic
()

Как удалить код из PHP файлов?

 ,

Есть большое количество файлов крупного проекта на PHP. Хочу закинуть его в расширение для редактора, для автокомплита. Как удалить весь лишний код внутри фукнций, не нарушив при этом структуру файла, так чтобы он остался валидным?

Помню что как-то делал это и даже вроде шпаргалку писал себе - но перерыл сейчас и не могу найти (((

Suntechnic
()

Как перенести систему на другой диск?

 , ,

Нужно перенести систему на другой физический диск. Я собрался просто установить на него ту же Ubuntu 22.04, затем перегрузится в лайв режиме и скопировать все файлы со старого диска в новый. Затем поправить UUID в /ect/fstab.

Ничего не упускаю?

Suntechnic
()

Рабочие место с тремя мониторами

 , , , ,

На главном мониторе обычно браузеры и редактор кода. Левый для телеги и хранителя паролей, правый для терминала + ещё чего-нибудь, в данном случае файлового менеджера.
На центральном мониторе переключаются рабочие места, в том время как боковые фиксированны — стандартная фишка Gnome.
Окна расставлены с помощью gTile — расширения Gnome.

Стол - обычный из Икеи с регулировкой высоты. Иногда использую для работы стоя.
На столе (слева направо):

  • древний BenQ GW2460 1920*1080, планирую заменить на такой же, как справа;
  • Philips 439p1 4K;
  • BenQ BL2581T 1920x1200.

Боковые мониторы подвешены на газлифтах NB F80 — примерно таких (левый прямо такой, а правый чуть поновее, с другими изгибами немного).

За ними прячется ThinkPad P51, на котором все это работает, без док-станции, так как в доке 40A2 перестает работать DDC/CI и непонятно, как регулировать яркость.

Под центральным монитором Lenovo ThinkSmart Bar [11RTZ9ATGE] — самая дешевая комплектация. Подключен по USB. Созвоны с ним стали гораздо комфортнее.

Мышь HP Gaming mouse 300 USB, главная особенность которой — апаратная инверсия кнопок, что позволяет легко менять руку. Единственый минус — через 2-3 года отклеиваются резиновые накладки, и их нечем приклеить.

Клавиатура Microsoft NEK 4000 — жалко, что для правшей таких не делают. Левая подставка под руку протерлась и перетянута в кожу козленка, но тоже уже вытерлась, а была под цвет стен. Правую лень перетягивать, хотя кожа еще есть.

Белое между ковриком и монитором — икеевский выключатель лампы, которая закреплена сзади за монитором и обеспечивает подсветку при работе в темное время суток. Справа за моником есть еще настольная лампа, которая тоже чаще работает как подсветка.

Кресло — китайщина, купленная в 2017 и уже нуждающаяся в замене, но все не могу ничего подобрать.

Suntechnic
()

Помогите с переездом на VS Code

 , , , ,

Давно пора сменить мою уже не поддерживаемую IDE. Выбрал Visual Code, так как он единственные нормально заработал с удаленным сервером по ssh.

Но некоторые вещи даже нагуглить не получается. Адепты VS Code, помогите с переездом.

1 В Komodo кроме навигатора по директории был навигатор по проекту (здесь это, я так понимаю, рабочие области) и в прокет можно было добавить шорткаты переводящие в определенные директории проекта или даже шорткаты файлов, позволяющие не лазить по дереву файлов проекта а открывать их прямо из ннавигатора по проекту: https://i.imgur.com/IGJFQvo.png - никак не пойму можно ли сделать что-то подобное тут.

2 В Komodo я мог добавить каталоги для индексации прямо к языку и получать автокомплит на основании библиотек из этих каталогов во всех проектах. Можно ли здесь организовать что-то такое?

Suntechnic
()

На работает звук через thunderbolt, если подключен DP

 , , ,

Дано: Thinkpad P51 и три монитора подключенные соответственно в HDMI, miniDP и Thunderbolt. В панели выбора звука только три варианта:
HDMI / DisplayPort 2 - GM206 High Difinition Audio Controller
HDMI / DisplayPort - GM206 High Difinition Audio Controller
Speakers - Встроенное аудио

Если отключить miniDP или HDMI то один из «HDMI / DisplayPort» - становится выходом на thunderbolt, если же подключены и HDMI и miniDP то TB в пролете. А мне бы нужен как раз он. Как-то можно этим управлять?

Suntechnic
()

Как сделать чтобы монитор затемнялся/размываласькартинка при бездействии?

 , ,

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

Suntechnic
()

DKMS не собирает модуль ddcci на ядрах старше 5.15.5

 , ,

Нагуглить ничего не получается, как будто проблемы и нет ни у кого.

Может я что-то очевидное делаю не так?

Building module:
cleaning build area...
make -j8 KERNELRELEASE=6.1.1-060101-generic KVER=6.1.1-060101-generic -C /var/lib/dkms/ddcci/0.4.2/build...(bad exit status: 2)
ERROR (dkms apport): kernel package linux-headers-6.1.1-060101-generic is not supported
Error! Bad return status for module build on kernel: 6.1.1-060101-generic (x86_64)
Consult /var/lib/dkms/ddcci/0.4.2/build/make.log for more information.
в /var/lib/dkms/ddcci/0.4.2/build/make.log
DKMS make.log for ddcci-0.4.2 for kernel 6.1.1-060101-generic (x86_64)
Сб 07 янв 2023 12:43:11 MSK
make: вход в каталог «/var/lib/dkms/ddcci/0.4.2/build»
make -C "ddcci"
make[1]: вход в каталог «/var/lib/dkms/ddcci/0.4.2/build/ddcci»
make -C "/lib/modules/6.1.1-060101-generic/build" M="/var/lib/dkms/ddcci/0.4.2/build/ddcci" modules
make[2]: вход в каталог «/usr/src/linux-headers-6.1.1-060101-generic»
warning: the compiler differs from the one used to build the kernel
  The kernel was built by: x86_64-linux-gnu-gcc-12 (Ubuntu 12.2.0-9ubuntu1) 12.2.0
  You are using:           gcc-12 (Ubuntu 12.1.0-2ubuntu1~22.04) 12.1.0
  CC [M]  /var/lib/dkms/ddcci/0.4.2/build/ddcci/ddcci.o
/var/lib/dkms/ddcci/0.4.2/build/ddcci/ddcci.c:1813:27: error: initialization of ‘void (*)(struct i2c_client *)’ from incompatible pointer type ‘int (*)(struct i2c_client *)’ [-Werror=incompatible-pointer-types]
 1813 |         .remove         = ddcci_remove,
      |                           ^~~~~~~~~~~~
/var/lib/dkms/ddcci/0.4.2/build/ddcci/ddcci.c:1813:27: note: (near initialization for ‘ddcci_driver.remove’)
cc1: some warnings being treated as errors
make[3]: *** [scripts/Makefile.build:250: /var/lib/dkms/ddcci/0.4.2/build/ddcci/ddcci.o] Ошибка 1
make[2]: *** [Makefile:1998: /var/lib/dkms/ddcci/0.4.2/build/ddcci] Ошибка 2
make[2]: выход из каталога «/usr/src/linux-headers-6.1.1-060101-generic»
make[1]: *** [Makefile:38: ddcci.ko] Ошибка 2
make[1]: выход из каталога «/var/lib/dkms/ddcci/0.4.2/build/ddcci»
make: *** [Makefile:28: ddcci] Ошибка 2
make: выход из каталога «/var/lib/dkms/ddcci/0.4.2/build»

Решение:

в файле /usr/src/ddcci-0.4.2/ddcci/ddcci.c в строке 1774 заменить тип int на void и в этой же функции убрать return, т.е. функция ddcci_remove должна принять такой вид:

static void ddcci_remove(struct i2c_client *client)
{
	struct ddcci_bus_drv_data *drv_data = i2c_get_clientdata(client);
	struct device *dev;

	down(&drv_data->sem);
	while (1) {
		dev = bus_find_device(&ddcci_bus_type, NULL, client,
				      ddcci_remove_helper);
		if (!dev)
			break;
		device_unregister(dev);
		put_device(dev);
	}
	up(&drv_data->sem);
}

Suntechnic
()

Перестал запускаться Firefox на Ubuntu 22.04

 , , ,

Не было печали - апдейтов накачали. Ну и после них случился сабж.

Получаю

firefox
/bin/sh: 0: cannot open /usr/bin/firefox: Permission denied

Если для apparmor запустить режим обучения:

firefox
snap-confine has elevated permissions and is not confined but should be. Refusing to continue to avoid permission escalation attacks

И как теперь быть?

Есть способ запускать приложения установленные из snap? Или надо к черту снести apparmor и поставить нормальный firefox (только как?)?

UPD (решение): Этот гайд: https://omgubuntu.ru/how-to-install-firefox-deb-apt-ubuntu-22-04/

Или кратко: Перестал запускаться Firefox на Ubuntu 22.04 (комментарий)

Если после этого возникает такая ошибка: Перестал запускаться Firefox на Ubuntu 22.04 (комментарий) то можно попробовать удалить и установить FF через Synaptic. Это кажется странным, но мне почему-то помогло.

Suntechnic
()

Как настроить диалог выбора файлов Gnome?

 , ,

Эта хрень открывается во весь экран, но еще и сдвигается к правому краю вьюпорта если окно не прижато к левому. В итоге разъезжается на два монитора, так еще и под панель заходит. Если попытаться уменьшить или переместить то уменьшается и перемещается окно из которой диалог открыт.

Как-то можно сделать по человечески?

Gnome 42.1
Ubuntu 22.04
X11

UPD:
Рeшение: Как настроить диалог выбора файлов Gnome? (комментарий)

Suntechnic
()

Как сделать датчик освещенности?

 , , , ,

Первая мысль - камера. У меня Logitech C270. Набросал небольшой скрипт:

ffmpeg -f video4linux2 -s 1280x720 -i /dev/video2 -f image2 /tmp/snapshot.jpg -y 2>/dev/null
lumen=`convert /tmp/snapshot.jpg -colorspace GRAY -resize 1x1 txt: | egrep -o '[0-9]+.[0-9]+%' | egrep -o '[0-9]+.[0-9]+' | tr . ,`
echo $lumen;
printf "%.0f \n" $lumen #2>/dev/null

Но вот проблема - значение детектируемой яркости вечером с освещением включенным в кабинете выходит в диапазоне 53-57, а без него 26-38.

Но даже утром солнечного дня, когда солнце еще не в зените, но в кабинете уже значительно светлее (в разы) я получаю значения в области 57-59. Очевидно в камере есть какой-то механизм регулирования яркости картинки (чувствительности матрицы или хрен его знает еще как) и она старается привести картинки к среднему серому. Собственно это подтверждается описанием с сайта производителя. Похоже все, даже самые дешевые камеры устроены так же.

Как бы эту хрень отключить? Или из чего еще сделать датчик освещенности рабочего места?

Suntechnic
()

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