LINUX.ORG.RU

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

Маршрутизация с помощью метрик

Подскажите. Допустим, установлены различные метрики на маршруты (к одной цели). Ес-но будет выбираться маршрут с меньшей метрикой. Но, если этот маршрут «откажет», пойдут ли соединения через другой маршрут (автоматически)?
И вернется ли все в «нормальное русло», когда первый маршрут восстановится?

anonymus123
()

Embedded linux. No kernel messages

 ,

Здравствуйте! Имеется такая плата. Хочу поднять на ней торрент клиент. Процессор: Mstar Ssr621Q На борту uBoot + Embedded linux. Подключился я к плате по UART и начал эксперименты. В консоль uboot попасть не удалось, нет сообщений предлагающих прервать загрузку и на всякие CTRL+C не реагирует. Попробовал прервать процесс закоротив ножки памяти что бы он не смог загрузить ядро, но и тут китайцы подстраховались и юбут запросил пароль. Т.е. доступа к консоли не видать. Но как выяснилось можно прошиваться через юсб флешку. Засунул я на рутфс сторонний busybox, поднял telnetd и таким способом попал в систему. После долгих игр с библиотеками и прочим удалось поднять там transmission-daemon. Но проблема в том что в родной системе нет поддержки файловых систем EXT2-4 (на уровне ядра), только FAT и NTFS ro. FAT не очень сюда подходит, если я правильно нагуглил в родном исполнении система писала на диск напрямую без использования файловой системы, ну или она там какая-то своя. Так же пробовал собирать свою систему на buildroot, которая уже получается не так порезана, без проблем туда при сборке внедряется торрент клиент и вообще более приятна. Но все это работало с родным ядром и естественно без поддержки EXT4. Теперь главная проблема: не могу подсунуть в эту плату свое ядро, т.к. нет никаких сообщений от него :( Что в родной системе, что от моего собранного ядра. Но родное хотя бы загружается хоть и молча.

##  Booting kernel from Legacy Image at 22000000 ...
   Image Name:   Linux-4.9.84
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    2235568 Bytes = 2.1 MiB
   Load Address: 20008000
   Entry Point:  20008000
-usb_stop(USB_PORT0)
-usb_stop(USB_PORT1)
   Loading Kernel Image ... OK
using: ATAGSS
atags:0x20000000

Starting kernel ... <-- на этом все, больше никакого вывода
Не могу разобраться как заставить ядро выводить сообщения. Как я выяснил для подобных систем нужны DTS/DTB файлы, но под этот процессор практически ничего не найти. Вытащил этот файл с родного ядра, скармливал своему но не помогло. Дальше я нашел ядро другой платы(TP-LINK TL-NVR6108C-B) с таким же процессором, которое выводит сообщения при загрузке! Но не грузит систему т.к. там указаны совсем другие разделы. Я достал DTB оттуда, но он мне тоже никак не помог. Т.к. под эти процессор/плату нет никаких готовых конфигов я застопорился. Само ядро не выводит никакой информации и не понятно работает или нет. Саму систему так же не загрузить, т.к. места на разделе 4мб, а минимальный размер ядра что у меня выходит 3.5мб и уже ничего туда не влазит. Ну а что бы еще больше уменьшать его размер нужно хотя бы видеть работает оно или нет. Возможно что-то блокирует uboot, но его прошивать не хочу т.к. нет программатора под рукой вернуть все в зад. С другой стороны ядро с другой платы выводит сообщения. Буду рад Вашей помощи. Предоставлю дополнительную информацию по запросу.

libixur
()

ffmpeg дропает кадры с камеры, если битрейд увеличивается (too full or near too full)

 , , , ,

Вкратце: стримминг камеры(+звука) на rtmp сервисы через ffmpeg

Проблема в следующем: Кадры со входа дропаются, если битрейд передачи потока превышает ~400kbps.

По умолчанию, если ffmpeg получает видеокадр «слишком рано» (в то время как предыдущий кадр еще не закончен), он отбрасывает этот кадр, чтобы он мог поддерживать ввод в реальном времени

Вот что в доках:
https://trac.ffmpeg.org/wiki/DirectShow

By default FFmpeg captures frames from the input, and then does whatever you told it to do, for instance, re-encoding them and saving them to an output file. By default if it receives a video frame «too early» (while the previous frame isn't finished yet), it will discard that frame, so that it can keep up the the real time input.

Ну ок, тут вроде понятно, если кадры с камеры идут очень быстро, а я их не успеваю обрабатывать, то их нужно отбрасывать, для достижения реалтайма. Но я не вижу узких мест. Кодировщик настроен на минималку, FPS на входе и на выходе одинаков. Процессор нагружен на 2-3%. Сеть ДОМРУ ну где то 50Mbps. Сервер тоже тянет.

В целом все хорошо работает. Но сбился с толку уже с этим rtbufsize, который постоянно «too full or near too full», если битрейд превышает 400kbps

rtbufsize - буфер памяти для входа для realtime устройств. Я его установил в 10M(мегабайт). Играть с ним нет вообще никакого смысла, если установишь хоть в гигабайт, то все равно он со временем переполнится, а latency будет огромный

Камеру установил на минималку (640x480@20), выходной поток такой же (640x480@20), битрейд максимальный - 800k.

ffmpeg -f dshow -video_size 640x480 -framerate 20 -rtbufsize 10M -i "video=dev_realtime" -vcodec libx264 -preset veryfast -b 800k -maxrate 800k -bufsize 1600K -r 20 -f flv "rtmp://x.y"


Ещё заметил:
* если на выход установить файл (out.flv), то все четко идет.
* если поднять локально rtmp сервер (ffmpeg -y -f flv -listen 1 -i «rtmp://127.0.0.1:1935/app/live») и передавать на него, то тоже все четко идет
* udp://microsoft.com:666 - хорошо идет, буфер не переполняется

Удаленный сервер менял (от оборудования до провайдера), на сервере замерял битрейд - приходит четко 800kpbs. То есть успевает ffmpeg в сеть передавать?

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

Все гугления сводятся к бестолковым «увеличь rtbufsize»

UDP
Кажется баг в rtmp под windows. Помогают правки в реестре (DefaultReceiveWindow, DefaultSendWindow)
https://trac.ffmpeg.org/ticket/1604

gobot
()

Первичный фон запускаемого firefox

 

Здравствуйте.

Предпочитаю тёмные темы оформления интерфейсов, соответственно, цвет рабстола у меня тёмный. Заморочился с конфигом firefox, в юзерконтенте.цсс настроил тёмный фон about:home.

Казалось бы, живи и радуйся бесшовному переходу, но перед тем, как загрузить тёмный about:home мозилла какие-то мгновения светит пустым белым фоном.

Мне больно видеть белый свет, мне лучше в полной темноте (с). Очень может быть, что в каком-то месте в каком-то из user....css, или даже в конфиге gtk есть строчка, в которой я условное #fff поменяю на условное #000, и обрету гармонию.

Прошу знающих людей просветить по вопросу.

Linux здесь при том, что firefox у меня на убунте. Спасибо за внимание.

Перемещено hobbit из general

piyavking
()

Получить WID из PID

 , window id, ,

Запускаю через скрипт приложение

  • (appname 2>&1 > /dev/null) & echo $!
  • Читаю результат $! получив PID отпочковавшейся дочки
  • Запускаю wmctrl -lp ищу в строке PID и забираю соответствующий WID
  • Всё, я довольный, могу через WID манипулировать окном и пришибать процесс через PID точно зная что есть активная пара PID/WID и я не пришибу случайно что-то иное.

Всё работает. Но с некоторыми приложениями например glxgears беда. PID я его получаю, а вот WID найти не могу, да я могу wmctrl без параметров запустить, мышкой кликнуть на окошечко и получить WID, но это не то, не получается зная лишь PID получить WID. С большинством приложений проблем нет, а тут уже не знаю где искать. Сейчас ситуация такая что я запускаю приложеньку, жду несколько секунд пытаясь получить WID окна, если не получилось, грохаю процесс, ну и типа фиг с ним, не судьба :(

Не сообщает _NET_WM_PID оно, жопка такая. Выхода нет? Ключ поверни и по-ле-те-ли И однозначно не определить?

Варианты поиска по заголовкам окон и по содержанию командной строки не прокатят, заголовка может не быть вовсе и могут быть много окон с пустыми заголовками. Блин :(

Решение:

LINUX-ORG-RU
()

Как удалить файл только если он не открыт более никем?

 , ,

Пишу приложение, работающее в режиме «демона».

Использую PID-файл и как блокировку от повторного запуска, и как просто файл, содержащий PID процесса.

В принципе мне бы хватило алгоритма «сделал flock(LOCK_EX) после форка - сделал flock(LOCK_UN) на выходе». Для самого Perl'а этого бы хватило за глаза. Но для удобства и для порядку так сказать хотелось бы невозможного: закрывать PID-файл и затем удалять его.

Есть опасения race conditions: я могу закрыть файл, потом следующий мой инстанс получит управление и откроет его, после чего я возьму и удалю уже открытый файлик. Таким образом, будет существовать инод, содержащий PID следующего инстанса, но у файла уже не будет записи в каталоге и с точки зрения Shell-скриптов, например, PID-файл уже не будет существовать.

Сейчас попробую вариант «открыть файл - блокировать хэндлер - удалить файл - разблокировать хэндлер - закрыть файл». Выглядит последовательность странновато, но наверное должна работать...

А вообще кто что думает по этому поводу?

DRVTiny
()

Видео записывалка для вашего ПеКа

 , slop, , ,

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

Наваял вот, может кому пригодится.

  • Переменная use_recorder задаёт то чем вы ходите записывать
    • ffmpeg
    • recordmydesktop
  • Если передать скрипту аргументы то они прокинутся к утилите записи
    • например record --no-sound если используется recordmydesktop
      • но прокидывайе аргументы с умом рм рф и прочую копипасту туда писать не надо.

Ключи под себя

  • ffmpeg быстро пишет и сразу кодирует без звука.
  • recordmydesktop со звуком и отложенным долгим кодированием

Сам использую нубский recordmydesktop так как вокруг него не надо с бубном бегать по поводу звука (он меня сломан на ПК и чисто программный идёт по сети)

touch $HOME/.local/bin/record
#copy-paste code
chmod +x $HOME/.local/bin/record
  • Прерывать запись через ctrl+C
  • Зависимости в теле написаны какие надо.

Если кажется многословным перепишете на bash, всё можно переписать на bash :)

#!/usr/bin/env lua
-----------------------------------------
-- Depends for recordmydesktop: ogv out
-- apt install lua slop recordmydesktop
-----------------------------------------
-- Depends for ffmpeg: mp4 out
-- apt install lua slop ffmpeg
-----------------------------------------
-- Use ffmpeg or recordmydesktop recorder
--local use_recorder = 'ffmpeg'
local use_recorder = 'recordmydesktop'
-------------------------------------------------------------------------------
local separator = ' '
local arguments = table.concat({...},separator)
local visualfmt = '-b 5 -c 0.5,1.0,0.5,0.8 -o'
local slop_pipe = io.popen('slop -f "%x %y %w %h" '..visualfmt)
local x,y , w,h = slop_pipe:read('*l'):match('(%d+) (%d+) (%d+) (%d+)')
-------------------------------------------------------------------------------
local out_filename = os.date('%Y-%m-%H-%M-%S');
-------------------------------------------------------------------------------
local command = {};
-------------------------------------------------------------------------------
if use_recorder == 'ffmpeg' then
   command = table.concat(
   {
       'ffmpeg ','-f x11grab';
                 '-video_size',w..'x'..h;
                 '-grab_x',x;
                 '-grab_y',y;
                 '-i :0.0';
                 '-framerate 60';
                 '-vcodec libx264';
                  arguments;
                  out_filename..'.mp4';
   },separator)
   print('Run command:\n'..command)
   os.execute(command)
   return 0
end
-------------------------------------------------------------------------------
if use_recorder == 'recordmydesktop' then
   command = table.concat(
   {
       'recordmydesktop','-x='..x;
                         '-y='..y;
                         '--width='..w;
                         '--height='..h;
                         '--fps=60';
                          arguments;
                         '-o',out_filename..'.ogv';
   },separator)
   print('Run command:\n'..command)
   os.execute(command)
   return 0
end
-------------------------------------------------------------------------------
print("[ERROR]: Bad 'use_recorder' value.")
return 1

Вроде мелочёвка, а очень и очень удобно.
Всё. Досвиданья.

LINUX-ORG-RU
()

Удалённый доступ за NAT

 , , ,

Привет!

Есть ноутбук (которым пользуется родственник), на нём установлен calculate linux.

Находиться он будет за NAT (модем+маршрутизатор+точка доступа, раздаёт интернет по WiFI), который я не имею возможности администрировать (порт там пробросить или что-то такое). Кстати, не уверен, есть ли там белый IP, не помню.

Хочется иметь туда доступ по SSH… чтобы иметь возможность обновлять ПО, в первую очередь такие вещи как ядро (исправления уязвимостей) и браузер (тоже уязвимости и чтобы сайты не ломались, если долго, то есть годами не обновлять, бывает что современный сайт просто перестаёт открываться).

Какой-нибудь демон может установить… который бы устанавливал соединение, по которому я мог бы туда попадать?

Раньше я что-то такое делал на связке ipv6+ddns, но потом что-то оно перестало работать, так и не разобрался, из-за чего.

Может есть ещё какие-то варианты, которые мне в голову не пришли?

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

ОТВЕТ: zerotier именно то, что искал, круто, что есть такой продукт, да ещё и бесплатная версия, шикарно.

P.S. ssh-j.com тоже классная штука, подкупает тем, что можно скинуть человеку в чат «запусти пару команд чтобы я к тебе смог подключиться», не надо демон настраивать.

BattleCoder
()

Роутер за $50 для openWRT

 ,

У меня в принципе всегда был самый просто роутер, задумался поменять на что то более приличное. Есть ли достойные модели в данном сегменте заказать с али например. В крайнем случае до $60

armid
()

Прозрачный брандмауэр с маршрутизатором. Тестовая лаборатория

 , , ,

Группа Интернет

В статье рассмотрено решение, требующееся при объединении прозрачного брандмауэра с маршрутизатором, используя утилиту ebtables и создание тестовой лаборатории на микродистрибутиве Linux, используя qemu и initrd на основе моей сборки busybox, включающей в себя ebtables, iptables, ssh(d), рекурсивного DNS и др.

>>> Статья полностью (simtreas.ru)

vodz
()

VLC, детектор движения

 ,

VLC - мощнейший аудиовидео плеер, но не только, с его помощью можно вести записи в видеокамеры.

Попробовал сделать на его основе видеорегистратор.
Получилось легко, т.к. в его опциях есть фича, которая называется «Детектор движения».

Можно так же его использовать и через командную строку -

vlc --video-filter=motion
В тоже время обнаружилась серьезная проблема - этот детектор слишком чувствительный и обнаруживает малейшие движения, например, шелестение даже мелких листьев на удаленном дереве, и из-за этого запись, по сути, вообще не прекращается, идет постоянно.

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

Может у вас найдутся креативные идеи?
Не хочется для такой простой задачки использовать монстров вроде ZoneMinder, AVReg, Xeoma и пр.

chukcha
()

Вернуть диски или не надо? Уговорите

 

Ребят, подскажите про SSD, купил сегодня две шт. Планирую заменить stripe на mirror.

У меня раньше было два диска в stripe по 120 Гб. Выглядит пока это так:

  pool: zroot
 state: ONLINE
  scan: scrub canceled on Sat Jan  6 14:47:08 2024
config:

        NAME          STATE     READ WRITE CKSUM
        zroot         ONLINE       0     0     0
          ada2p4.eli  ONLINE       0     0     0
          ada3p4.eli  ONLINE       0     0     0

errors: No known data errors
=>       40  234441568  ada2  GPT  (112G)
         40     532480     1  efi  (260M)
     532520       1024     2  freebsd-boot  (512K)
     533544        984        - free -  (492K)
     534528   16777216     3  freebsd-swap  (8.0G)
   17311744  217128960     4  freebsd-zfs  (104G)
  234440704        904        - free -  (452K)

=>       40  234441568  ada3  GPT  (112G)
         40     532480     1  efi  (260M)
     532520       1024     2  freebsd-boot  (512K)
     533544        984        - free -  (492K)
     534528   16777216     3  freebsd-swap  (8.0G)
   17311744  217128960     4  freebsd-zfs  (104G)
  234440704        904        - free -  (452K)

Я купил два диска по 240 Гб. Возник вопрос по производителю.

Изначально я рассматривал Kingston, но он был всего один в наличии. Я зачем-то решил, что лучше будет два одинаковых. Мне предложили два диска фирмы APACER.

APACER - тоже неплохая фирма, но не такая прекрасная, как Kingston. Проблема в том, что если смотреть через SMART, Kingston предоставляет практически все показатели, в то время как APACER - только половину. https://paste.ee/p/D9xLe

Пока что я не распечатал упаковку, просто заметил эту разницу, глядя на уже имеющийся у меня старый диск от APACER. Я раньше вроде знал, что SMART может не отображать определенные параметры, но почему-то не придавал этому значения. И в магазине совершенно забыл об этой детали.

Что посоветуете делать? Возвращаться в магазин не хочется, особенно учитывая, что Kingston был в наличии всего один, и мне пришлось бы ждать второй. Предпочел бы избежать этого.

Clockwork
()

Что с ядром?

 , , ,

Ещё вчера работал и температура проца была 40-42 градуса. А сегодня - от 45. Ноуты разные с intel HD, дистрибутивы - Debian 12, Ubuntu LTS, Arch. Версии ядер - 5.15 - 6.6.7.

Пробовал и на X11 - DWM и Wayland - Sway, так как канон.

FF - ESR и 121. Простой сёрф, как пример - linux.org.ru, lm-sensors показывает 46 градусов. Из дополнений - Ublock original. При старте браузера вентилятор ноута взлетает. Youtube - тоже, но потом после отрисовки успокаивается. Vaapi стоит, в FF и MPV поддерживается.

Вопрос только один владельцам ноутов. У вас тоже теперь они при прокрутке LOR показывают похожие цифры?

Добавлю, что это на фоне последних обновлений ядер. Вся эта история с Debian и ext4, а также новыми новостями о уязвимостях.

Ещё что было замечено, torrent тоже повышает на 4-5 градусов, чего раньше не было. Что за?..

Аноним помог. Надо обратить внимание на

/sys/devices/system/cpu/cpu*/cpufreq/energy_performance_preference ```
masterOf
()

Типа Lingvo под кеды (Кубунту)

 

Нужна софтина - сабж. Чтоб ПОЛНОСТЬЮ фриварный. Чтоб было много всяких словарей, под разную тематику.

Пока интересуют буржуйский и испанский. Но и другие языки не помешат.

torsar
()

mpv: плейлисты ютуба

 , ,

Как скормить mpv напрямую плейлист вида

https://youtube.com/playlist?list=PLBLA-BLA-BLA
mpv как-бы берет этот плейлист, но видит и воспроизводит только первый трек.

yt-dlp без проблем видит (и скачивает) весь плейлист.

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

Как его заставить хавать ютубовские плейлисты?

Chord
()

Wi-Fi 6 AX200 не стабильная, влючается только ac

 , ,

sudo rmmod iwlmvm iwlwifi

sudo modprobe iwlmvm

dmesg выводит, что подгружается firmware iwlwifi-cc-a0-66.ucode когда должно iwlwifi-cc-a0-46.ucode если верить https://www.intel.com/content/www/us/en/support/articles/000005511/wireless.html

Как исправить? куда копать?

раньше работало AX роутер показывал 100%, сейчас только AC и уровень сигнала скачет 80-100%

[ 2334.279234] Intel(R) Wireless WiFi driver for Linux
[ 2334.285243] iwlwifi 0000:06:00.0: api flags index 2 larger than supported by driver
[ 2334.285253] iwlwifi 0000:06:00.0: TLV_FW_FSEQ_VERSION: FSEQ Version: 89.3.35.37
[ 2334.285459] iwlwifi 0000:06:00.0: loaded firmware version 66.f1c864e0.0 cc-a0-66.ucode op_mode iwlmvm
[ 2334.287059] iwlwifi 0000:06:00.0: Detected Intel(R) Wi-Fi 6 AX200 160MHz, REV=0x340
[ 2334.295445] thermal thermal_zone0: failed to read out thermal zone (-61)
[ 2334.406042] iwlwifi 0000:06:00.0: Detected RF HR B3, rfid=0x10a100
[ 2334.470853] iwlwifi 0000:06:00.0: base HW address: 14:f6:d8:a1:2f:8e
[ 2334.486166] iwlwifi 0000:06:00.0 wlp6s0: renamed from wlan0
sap78
()

X11-приложение на чистом ассемблере под Linux

 , ,

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

Как сама статья так и перевод - большие и сложные, знаний на такое у меня уже нехватает. Если есть желающие помочь с вычиткой и поиском ошибок - велкам!

На скриншоте обычная Ubuntu и Xfce, самое главное - ч0рное окошко по центру, это и есть та самая тестовая программа из статьи, написанная на чистом ассемблере и вызывающая Х-сервер через unix-сокет.

alex0x08
()

Узнать, содержится ли один диапазон в другом на Си

 , ,

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

Условие очень простое: выражение is_contained(h0, hlen, q0, qlen) должно возвращать 1, если диапазон под вопросом (question - q), начинающийся включительно с q0 и занимающий всего qlen индексов, полностью содержится в диапазоне (have - то что имеется), начинающимся включительно с h0 и имеющим длину в hlen индексов, и должно возвращать 0 во всех других случаях. Оба диапазона относятся к индексам некоего массива или смещениям байт в файле, при том что файл целиком влез в аллоцированный блок памяти процесса в виде того же массива.

Вопрос: написать синтаксически корректную (допустим C89) реализацию функции is_contained(), такую чтобы всегда отдавала правильный результат, при этом не содержала лишнего кода и не требовала линковки с чем-то ещё, включая libc, для работы (но содержимым C89-стандартных (только их) .h файлов пользоваться можно, если оно не приводит к импорту символов извне).

Условие именно такое как я написал, никакие уточнения не предполагаются. Если считаете что условие где-то двусмысленное - дополняйте его как хотите (не противореча исходным утверждениям).

firkax
()

Посоветуйте стартер кит(программный) для изучения схемотехники

 

Есть цель: разобраться в схемотехнике на таком уровне, чтобы можно было собирать простые усилители НЧ. Что нужно?

  1. Хорошая книга, чтобы там было максимально сжато сформирована информация, необходимая для того, чтобы можно было понимать, как работает схема и как ее промониторить

  2. Программа, для моделирования схем, с проверкой их корректности и работы

serg002
()

Удаленный терминал (поверх ssh) с показом картинок?

 , ,

Есть сервер который что то долго и много считает и генерит кучу данных. Я могу войти туда по ssh. Хочется из этих данных строить картинки (графики y(x), как правило гнуплотом), при этом сами данные к себе не выкачивать. И хочется эти картинки сразу видеть, без всяких scp/sshfs, прямо вот в терминале. Без какого то интерактива вроде выделения фрагментов, смены масштаба и пр - просто увидеть картинку глазами, эдакий предпросмотр данных.

Вход по ssh -X или vgl работает но лагает жутко, канал все таки хиленький. У gnuplot-а есть терминал dumb:

gnuplot> set term dumb
gnuplot> plot x**2

                                                                               
  100 +--------------------------------------------------------------------+   
      |*               +                 +                +               *|   
   90 |-+..............:.................:................:..............+-|   
      |  *             :                 :                :             *  |   
   80 |-+..............:.................:................:..............+-|   
      |    *           :                 :                :           *    |   
   70 |-+..............:.................:................:..............+-|   
      |      *         :                 :                :         *      |   
   60 |-+..............:.................:................:..............+-|   
   50 |-+..............:.................:................:..............+-|   
      |         **     :                 :                :     **         |   
   40 |-+..............:.................:................:..............+-|   
      |            **  :                 :                :  **            |   
   30 |-+..............:.................:................:..............+-|   
      |               *:                 :                :*               |   
   20 |-+..............:.................:................:..............+-|   
      |                :  ***            :           ***  :                |   
   10 |-+..............:.................:................:..............+-|   
      |                +       *****     +    *****       +                |   
    0 +--------------------------------------------------------------------+   
     -10              -5                 0                5                10  

вот что то такого плана, только конечно качеством повыше.

У кого какие идеи?

Можно конечно свою обертку поверх ssh написать что бы она умела и картинки отрисовывать, но неужто никто ничего такого не сделал?


Решается применением терминала sixelgd в гнуплоте. Его не всякий терминал поддерживает, я в итоге остановился на mlterm (konsole и xterm не взлетели).

https://www.arewesixelyet.com/#xterm

AntonI
()