LINUX.ORG.RU

Сообщения kawaii_neko

 

Выяснить в runtime по backtrace, из какого исходного файла была вызвана функция

Форум — Development

Есть один бинарник, который использует несколько библиотек и подозревается в чрезмерной растрате памяти (не утечке — динамика роста RSS не такая взрывная). Хочется выяснить, какая библиотека за это ответственна. Для этого можно взять jemalloc, добавить вручную арен и средствами jemalloc уже вести учет выделенной памяти. Но появляется важный нюанс: как выяснить, кто позвал *alloc?

Для динамической линковки есть довольно надежный способ: сначала через backtrace, а в релизной версии грязными ассемблерными хаками получаем адрес возврата, через `/proc/$pid/map` понимаем, к какой so-шке относится этот адрес и дальше ведем себя соответственно.

Как быть при статической линковке? Есть ли способ отредактировать объектный файл, переопределив имя внешнего символа? Я знаю трюк с частичной линковкой (ld -r), когда можно подставить заглушку, которая будет вызывать нужный метод (так, например, можно все аллокации из libfoo.a заставить использовать malloc_foo/free_foo ценой одного косвенного перехода), но вдруг есть способ лучше?

На всякий случай уточню: исходники трогать нельзя, потому что: 1) так может каждый; 2) хочется странного

 ,

kawaii_neko ()

Посоветуйте опенсорные часы с bluetooth

Форум — Talks

Сабж. Есть один bt-девайс, который с часов контролировать удобнее, чем с телефона. Софта, естественно, нет. Отличный повод заняться мотивированным сплетением ног с опенсорсным устройством.

Хотелки:

  • чтоб было удобно разрабатывать
  • чтоб батарейки хватало хотя бы на неделю — эти современные «smart watch» со временем работы 16 часов просто курам насмех
  • чтоб были относительно ударопрочными
  • чтоб не боялись воды и пота — плавать с ними не собираюсь, но под открытым небом дождем полить вполне себе может

 

kawaii_neko ()

ipv6 туннель

Форум — General

Обнаружил, что у некоторых интересующих меня ресурсов появились ipv6 адреса, а это значит «bye-bye dpi».

Подскажите бесплатный ipv4-to-6 туннель, в идеале «без регистрации и SMS». Ну и как им пользоваться?

 ,

kawaii_neko ()

Кажется, настало время оставить firefox в прошлом

Форум — Talks

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

Ну ок, бывает. Запускаю top, а там

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                                                                                                        
 2957 portage   20   0 2144,2m   2,0g  25,5m R 100,0  12,9   0:57.14 cc1plus                                                                                                                        
 3145 portage   20   0 1059,8m 967,5m  20,1m R 100,0   6,1   0:19.12 cc1plus                                                                                                                        
 3325 portage   20   0  614,7m 501,2m  16,5m R 100,0   3,1   0:03.78 cc1plus                                                                                                                        
 3237 portage   20   0  524,8m 463,2m  16,6m R 100,0   2,9   0:06.43 cc1plus                                                                                                                        
 3264 portage   20   0  494,3m 428,6m  16,5m R 100,0   2,7   0:06.05 cc1plus                                                                                                                        
27042 portage   20   0 1317,6m 295,5m  14,1m S   0,0   1,9   0:06.39 cargo                                                                                                                          
 3361 portage   20   0 1317,6m 283,0m   1,6m S   1,0   1,8   0:00.01 cargo                                                                                                                          
 3336 portage   20   0  317,1m 257,5m  16,0m R 100,0   1,6   0:02.89 cc1plus                                                                                                                        

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

Только вот куда идти? Везде куцые web extensions, потребление сотен мегабайт памяти на простых страницах, никакущее юзабилити, трекинг и телеметрия.

Последний более-менее юзабельный браузер waterfox classic, но с древним gecko уже не работают новые морды teamcity и половина современных говносайтов.

Может есть какой проект, где к современному html/js движку энтузиасты прикручивают xul? Я бы поучаствовал.

 ,

kawaii_neko ()

Легковесный терминал с вкладками

Форум — Desktop

Пользовался mate-terminal, но с переходом на gtk3 его легковесность стала несколько сомнительной, а также мне лень расковыривать .gtkrc, чтобы получить темные табы при светлой gtk теме.

Обязательно:

  • отсутсвие привязки к DE
  • табы без tmux/screen на локалхосте!
  • полноэкранный режим без строки меню
  • поддержка 256 цветов
  • все основные действия (open/close tab, move tab и т.п.) должны иметь хоткеи, по возможности настраиваемые

Крайне желательно:

  • адекватная работа Shift-F{5..8} в midnight — в mate-terminal у меня S-F3 вызывает copy, S-F4 — move
  • подсветка url
  • наличие цветовых профилей для вкладок

 

kawaii_neko ()

А как работает авторизация «git@github.com» под капотом?

Форум — Development

Ковырял я тут libssh и вдруг стало интересно, а как работает авторизация в гилабах/гитхабах?

Получается, что у них должен быть самописный ssh-сервер, который особым образом обрабатывает аутентификацию по ключам? Или же есть возможность для shell-а понять, что за ключ использовался при авторизации?

Ну и может кто подскажет, где/по каким ключевым словам можно найти исходники этих серверов авторизации?

 

kawaii_neko ()

Какой загрузчик использовать вместо grub?

Форум — General

Решил обновить мир, обнаружил, что ebuild-а grub-0.97 больше нет. grub 2 не люблю с самого первого знакомства, с uefi как-то не сложилось, lilo когда-то требовал запуска бинарника на каждое изменение загрузочного меню.

Куда бежать?

Требования:

  • возможность грузить legacy-установку windows
  • загрузочное меню
  • простое редактирование этого меню (правка kernel command line, добавление/удаление пунктов)
  • командный режим при загрузке (не раз здорово выручал, когда после очередной чистки пыли вставлял sata-кабели не в том порядке)
  • диагностические сообщения от ядра с первых секунд загрузки — после «проблем» с uefi оказалось, что ядру всего лишь не хватало вкомпиленного модуля для корневой fs, но узнал я об этом с текстового режима 80x25 (0x3, если кто еще помнит, что это такое) после перехода в legacy режим.

 ,

kawaii_neko ()

bash - выполнить команду, не добавляя ее в историю

Форум — General

Про HISTCONTROL знаю, однако самый частый паттерн — поднять какой-нибудь git fetch из истории и выполнить его. Сейчас приходится жать ^r, переходить в начало строки. добавлять пробел и только после этого жать на Enter. Хотелось бы нажимать, скажем, Ctrl-Enter, чтобы выполнить команду без оседания ее в истории.

Итого вопрос можно разбить на две части:

  1. как выглядит ctrl-enter для bind-а? Пробовал «подсмотреть» через ^v, так Ctrl-Enter работает похоже на ^j — т. е. вставляет перевод строки.
  2. а что, собственно, биндить-то? «перейти в начало строки», «ввести пробел», «нажать enter»?

 ,

kawaii_neko ()

Разыскивается DE-agnostic скриншотилка

Форум — Desktop

Требуемые фичи:

  1. никакого электронообразного говна
  2. скриншот всего экрана, выбранного окна или выделенной области (как в gimp)
  3. умение помещать скриншот в clipboard или сохранять на диск с помещением в clipboard полного пути к файлу
  4. выходное изображение в форматах png и jpg
  5. возможность слегка подправить (добавить подписи, линии, стрелки) на изображении перед сохранением
  6. плюсом будет опциональная загрузка скриншотов на какой-нибудь сервис (imgur?) и выдача ссылки в clipboard
  7. наличие ebuild-а приветствуется

Пункты 1-4 обязательны, 5 и 6 будут большим плюсом.

P.S. shutter не смог оценить, ибо

Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming.

 

kawaii_neko ()

Вторая жизнь старого телевизора

Форум — Multimedia

Есть старый «не-умный» телевизор с HDMI входом и гигабитным ethernet проводом неподалеку. Как бы дешево и сердито превратить его в мультимедиа-станцию безо всякого IPTV со стороны провайдера?

Если быть точнее, то интересует:

  • какое железо подойдет (raspberry pi3)? Я так понимаю, что мне хотелось бы звука через HDMI.
  • kodi (aka xbmc) - это какой-то пакет или дистрибутив?
  • как организовать скачивание и просмотр сериалов с торрентов «удобно и без износа носителя» - на «большом ПК» я для этого использую tmpfs на 10gb, а тут как быть?
  • может быть уже есть что-то говорое в красивой коробочке (только не надо неттопов - это явный оверкилл), или нужно как истинному линуксоиду поразвлечься с барахлом?

 ,

kawaii_neko ()

mmap и ошибки записи на диск

Форум — Development

Последние пару недель не могу найти ответ на вопрос, что же будет, если при записи mmap-нутого файла произойдет ошибка блочного устройства? Как с точки зрения приложения будет выглядеть ошибка (SIGBUS?), в какой момент она появится и как ее правильно обработать?

 ,

kawaii_neko ()

При загрузке «фризится» текстовая консоль

Форум — General

Выглядит это так: init (openrc, если это важно) выводит строки о запуске сервисов, затем вывод в консоль прекращается.

Приглашения ввести логин (да, я ретроград и гружусь в 3-й runlevel) не видно, однако можно залогиниться «вслепую», запустить иксы, после выхода из которых консоль замечательно работает. Грешил было на обновленный драйвер nvidia, убрал его из автоматически подгружаемых модулей, но проблема осталась.

В dmesg чисто.

В какую сторону копать?

 

kawaii_neko ()

sysctl.conf не устанавливает параметр ядра после загрузки в Gentoo

Форум — General

В sysctl.conf прописано:

net.ipv6.conf.all.forwarding = 1
Сразу после загрузки этот параметр равен 0. Если перезапустить /etc/init.d/sysctl, то все срабатывает.

Я полагаю, что проблема в том, что ipv6 скомпилировано в виде модулей и на момент выполнения sysctl при загрузке эти модули просто не загружены. Как бы максимально изящно выкрутится?

Можно, конечно, вкомпилировать соответствующие модули или вставить sysctl -w в local, но вдруг есть способы поэлегантнее?

Версия ядра: 4.9.76-gentoo

Ну и вдогонку, чтобы темы не плодить: можно ли как-то отучить /etc/init.d/net ждать 5 секунд появления IPv6 адреса на интерфейсе?

 

kawaii_neko ()

HDD

Форум — Linux-hardware

После 10 лет верной службы посыпался жесткий диск (72 плохих сектора на настоящий момент). Посоветуйте:

  • как правильно утилизировать отработавшие жесткие диски (молотком и в мусорку)?
  • какой производитель HDD не скатился (Seagate ведь до сих пор делает г-но)?
  • не хочется связываться с GPT — что надежного и относительно быстрого можно взять под раздел для игр в дуалбуте? Больше 1Tb навряд ли понадобится.

 ,

kawaii_neko ()

IPv6-nat?

Форум — Admin

Дано: домашний десктоп на линуксе с vpn-туннелем. К нему время от времени подключаются по wifi или по проводу другие девайсы. Нужно предоставить этим девайсам возможность пользоваться vpn-туннелем.

Сложность заключается в том, что через этот туннель ходят в т. ч. по IPv6 и его конфигурацию я не осилил от слова «совсем». Мои скромные сетеввые познания наталкивают на мысль, что мне нужен NAT для некоторых диапазонов адресов (для IPv4 это был бы -o tun0 -j MASQUERADE) — как такое делается в случае ipv6?

 ,

kawaii_neko ()

Выбор клавиатуры

Форум — Talks

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

Посоветуйте клавиатуру (бюджет некритичен) по следующим параметрам:

  • «ножничные» клавиши, а желательно «островные» (кажется, так маркетологи называли яблоподобные кнопки)
  • широкие shift-ы, низкий enter

Вот это выглядело перспективно, но enter «перевернутым сапогом» в русской версии отвратителен.

 

kawaii_neko ()

Sacred Gold — крайне низкая производительность

Форум — Games

Доброго всем времени суток!

Охватила ностальгия и решил немного побегать в нативную версию того самого Sacred-а. Помню, что году эдак в 2010 нативная линуксовая версия выглядела намного приятнее windows-версии (поддерживалось нативное разрешение), при этом производительность была на высоте. Однако все меняется.

Запустив тот же самый бинарник сегодня с удивлением обнаружил, что уже в меню игра начинает потреблять 80-90% CPU и чувствуются тормоза. На экране выбора класса персонажа чувствуются серьезные тормоза, ну а играть попросту невозможно (меньше одного fps).

В strace кажется подозрительным постоянные попытки игры найти несуществующие файлы:

[pid 32537] open("/mnt/media/games/Sacred/./PAK/NPC_DIALOG_01.TGA", O_RDONLY) = -1 ENOENT (No such file or directory)
[pid 32537] open("/mnt/media/games/Sacred/./pak/npc_dialog_01.tga", O_RDONLY) = -1 ENOENT (No such file or directory)
[pid 32537] open("./PAK/NPC_DIALOG_01.TGA", O_RDONLY) = -1 ENOENT (No such file or directory)
[pid 32537] open("./pak/npc_dialog_01.tga", O_RDONLY) = -1 ENOENT (No such file or directory)
[pid 32537] open("/mnt/media/games/Sacred/./PAK/NPC_DIALOG_01.TGA", O_RDONLY) = -1 ENOENT (No such file or directory)
[pid 32537] open("/mnt/media/games/Sacred/./pak/npc_dialog_01.tga", O_RDONLY) = -1 ENOENT (No such file or directory)
[pid 32537] open("./PAK/NPC_DIALOG_01.TGA", O_RDONLY) = -1 ENOENT (No such file or directory)
[pid 32537] open("./pak/npc_dialog_01.tga", O_RDONLY) = -1 ENOENT (No such file or directory)
[pid 32537] _llseek(20, 478392320, [478392320], SEEK_SET) = 0
[pid 32537] read(20, "&2v\3223\20\346\354\24d\221\234b\22\326\35\31\233\33\251\277\343\334Q\277\217\v.\271\214\344L"..., 4096) = 4096

Но судя по последнему llseek-у, нужный ресурс запакован в файлы игры и успешно находится, да и картинка рисуется «правильная».

Собственно вопросы:

  1. есть ли у кого success story по работе этой игры на актуальных дистрибутивах Linux?
  2. чем можно померять, на что, собственно, уходит процессорное время? С опенсорсными библиотеками и LD_PRELOAD-ом можно творить настоящие чудеса, но нужно знать, куда копать, а я пока понятия не имею.

 

kawaii_neko ()

nvidia, черный экран

Форум — Desktop

gentoo, обновил ядро до 4.9.76-r1, xorg-server до 1.19.5-r1. Что бы я ни делал, иксы выдают черный экран с nvidia-драйвером. Пробовал различные версии драйвера от 375 до 390 — результат везде один.

Судя по логу, что-то идет не так. Пробовал убирать metamodes — ничего не меняется.

[    16.445] (II) Module glx: vendor="NVIDIA Corporation"
[    16.445] (II) NVIDIA GLX Module  390.42  Sat Mar  3 03:25:37 PST 2018
[    16.457] (II) Module nvidia: vendor="NVIDIA Corporation"
[    16.459] (II) NVIDIA dlloader X Driver  390.42  Sat Mar  3 03:00:31 PST 2018
[    16.459] (II) NVIDIA Unified Driver for all Supported NVIDIA GPUs
[    16.472] (II) NVIDIA(0): Creating default Display subsection in Screen section
[    16.472] (==) NVIDIA(0): Depth 24, (==) framebuffer bpp 32
[    16.472] (==) NVIDIA(0): RGB weight 888
[    16.472] (==) NVIDIA(0): Default visual is TrueColor
[    16.472] (==) NVIDIA(0): Using gamma correction (1.0, 1.0, 1.0)
[    16.473] (**) NVIDIA(0): Option "HWcursor"
[    16.473] (**) NVIDIA(0): Option "RenderAccel" "true"
[    16.473] (**) NVIDIA(0): Option "AllowGLXWithComposite" "true"
[    16.473] (**) NVIDIA(0): Option "TripleBuffer" "true"
[    16.473] (**) NVIDIA(0): Option "AddARGBGLXVisuals" "True"
[    16.473] (**) NVIDIA(0): Option "ConnectToAcpid" "false"
[    16.473] (**) NVIDIA(0): Enabling RENDER acceleration
[    16.473] (**) NVIDIA(0): Option "MetaModes" "nvidia-auto-select +0+0 { ForceFullCompositionPipeline = On }"
[    16.473] (**) NVIDIA(0): Enabling 2D acceleration
[    16.719] (II) NVIDIA(0): NVIDIA GPU GeForce GTX 770 (GK104) at PCI:1:0:0 (GPU-0)
[    16.719] (--) NVIDIA(0): Memory: 4194304 kBytes
[    16.719] (--) NVIDIA(0): VideoBIOS: 80.04.bc.00.0f
[    16.719] (II) NVIDIA(0): Detected PCI Express Link width: 16X
[    16.719] (II) NVIDIA(0): Validated MetaModes:
[    16.719] (II) NVIDIA(0):     "NULL"
[    16.719] (II) NVIDIA(0): Virtual screen size determined to be 640 x 480
[    16.719] (WW) NVIDIA(0): Unable to get display device for DPI computation.
[    16.719] (==) NVIDIA(0): DPI set to (75, 75); computed from built-in default
[    16.719] (**) NVIDIA(0): Enabling 32-bit ARGB GLX visuals.
[    16.720] (II) NVIDIA: Using 6144.00 MB of virtual memory for indirect memory
[    16.720] (II) NVIDIA:     access.
[    16.735] (II) NVIDIA(0): Setting mode "NULL"
[    16.741] (==) NVIDIA(0): Disabling shared memory pixmaps
[    16.741] (==) NVIDIA(0): Backing store enabled
[    16.741] (==) NVIDIA(0): Silken mouse enabled
[    16.742] (**) NVIDIA(0): DPMS enabled
[    16.742] (II) NVIDIA(0): [DRI2] Setup complete
[    16.742] (II) NVIDIA(0): [DRI2]   VDPAU driver: nvidia
[    30.717] (II) NVIDIA(0): Setting mode "NULL"

 

kawaii_neko ()

Кто все эти люди, что производят опенсорс?

Форум — Talks

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

Сейчас в свободное время писать код мне не хочется, на все новомодные фреймворки, языки и прочее — чхать с высокой колокольни. Максимум, на что я готов потратить свободное время — многопоточный порнодаунлоадер с голосовым управлением, дабы руки были свободны для полезной деятельности. Рожать какие-то аудио или видеоплееры, пакетные менеджеры неохота. Даже дистрибутив апдейтить неохота, а то мало ли что там сломается (vimfx после последнего апдейта отсох по известным причинам, например).

И вот я задумался: а кто все те люди, что хреначат очередное окружение рабочего стола или очередной пакетный менеджер? Зачем они тратят на это свое свободное время? Неужели у них нет иных занятий кроме прожигания здоровья, сгорбившись за клавиатурой?

 

kawaii_neko ()

Господа, у нас проблема и имя ей jollheef

Форум — Linux-org-ru

jollheef потер половину дискуссии в Говнокод 10-летней давности, пройдясь попутно по шкворцу адекватных товарищей.

Хочу перейти сразу к делу:

  • вот это особенно сочно: https://imgur.com/a/uGvPD Годегенерат, как и растодегенерат — это клинический диагноз, как, скажем, и олигофрен.
  • зачем он модерирует development, в котором ничего не понимает? Если понимает, то зачем трет техническую дискуссию?
  • что он делает в интернете с такой хрупкой психикой? В формат хабра вполне впишется, на лоре после такого лично мне его видеть неприятно

P. S. и как же называть таких товарищей, которые гыгыкают при виде magic; do not touch? Приматоразработчик чтоли?

P. P. S. не знаю зачем, но cast tailgunner

 ,

kawaii_neko ()

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