LINUX.ORG.RU

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

Роботы насилуют мою звуковую карту

Форум — Desktop

Последние месяца три мой ляптоп периодически издает кошмарные звуки из ада во время проигрывания аудио: сэмпл. Чтобы воспроизвести достаточно либо нагрузить CPU, либо поскроллить видео туда-сюда. Воспроизводится в mpv, в firefox, в cmus. Воспроизводится и через pipewire, и через чистую ALSA с выключенным pipewire. В dmesg ничего нет. В pw-top задержки в пределах нормы. Симптомы убираются если поставить видео на паузу и подождать пока буфер pipewire обнулится (с ALSA тоже помогает, понятное дело, но с pipewire проще мониторить что происходит).

Кто-нибудь сталкивался?

Причастные:

  • Huawei MateBook X Pro 2022
  • Ядро 6.4.7-arch1-1
  • Intel Alder Lake PCH-P High Definition Audio Controller

Вывод lspci:

$ doas lspci -vvvks 00:1f.3
00:1f.3 Multimedia audio controller: Intel Corporation Alder Lake PCH-P High Definition Audio Controller (rev 01)
	Subsystem: Huawei Technologies Co., Ltd. Alder Lake PCH-P High Definition Audio Controller
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 32, Cache Line Size: 64 bytes
	Interrupt: pin A routed to IRQ 199
	IOMMU group: 15
	Region 0: Memory at 601d1b8000 (64-bit, non-prefetchable) [size=16K]
	Region 4: Memory at 601d000000 (64-bit, non-prefetchable) [size=1M]
	Capabilities: [50] Power Management version 3
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=55mA PME(D0-,D1-,D2-,D3hot+,D3cold+)
		Status: D3 NoSoftRst+ PME-Enable+ DSel=0 DScale=0 PME-
	Capabilities: [80] Vendor Specific Information: Len=14 <?>
	Capabilities: [60] MSI: Enable+ Count=1/1 Maskable- 64bit+
		Address: 00000000fee00bf8  Data: 0000
	Kernel driver in use: sof-audio-pci-intel-tgl
	Kernel modules: snd_hda_intel, snd_sof_pci_intel_tgl

Выключал энергосбережение, не помогает:

$ echo 0 | doas tee /sys/module/snd_hda_intel/parameters/power_save
$ echo N | doas tee /sys/module/snd_hda_intel/parameters/power_save_controller

 

cumvillain
()

Вопрос про видео.

Форум — Talks

Девушка прислала видео, спросить что это. Извеняюсь за оффтоп, но линукс тут при том что здесь сидят самые отьявленные спецы в области всего на свете. Интересно ваше мнение. Что на видео. Видео не мое, вообще без понятия чье оно. Мое мнение - это молния чтоли шаровая маленькая ? https://vk.com/clip650811733_456239723

 ,

nionio35
()

Как выйти из vim?

Статьи — Desktop

Что же, пора окончательно закрыть этот вопрос. По этому поводу уже написано множество статей и заметок, пусть будет ещё одна.

( читать дальше... )

Надеюсь, что моя заметка будет полезна всем начинающим пользователям этого прекрасного(или ужасного?) текстового редактора.

 

Werenter
()

Как кушать вилкой. ... или о fork() в двух словах

Статьи — Разработка

Статья о создании процессов в Linux

( читать дальше... )

 

PPP328
()

60 антипаттернов для С++ программиста

Форум — Development

Постоянно писать «как делать правильный код» надоедает. Поэтому для разнообразия и развлечения написал мини-книгу «60 антипаттернов для С++ программиста». Этакие вредные советы в духе «Книга для непослушных детей и их родителей».

На самом деле там, не только вредные советы, но и разбор почему они собственно вредны. Будет полезно почитать новичкам в программировании. Думаю, каждый знает кого-то, кому будет полезно почитать этот материал :). Впрочем, опытные программисты тоже смогут найти интересное для себя и узнать/освежить знания про некоторых тонкие моменты C++.

Там много букв. Приглашаю запастись кофе/энергетиком и приступать. Буду рад обсуждениям и дополнениям, основанном на вашем опыте.

Ещё я этот текст переработал для бумажного издания. Оно в подготовке для печати. Смысл там в целом тот же, но пришлось многое переделать или расписать подробнее. Ведь нельзя в бумажной книге дать 100500 ссылок на сторонние ресурсы «читать здесь про xxx подробнее». Надеюсь, успеем напечатать к осенним конференциям и будем раздавать на стенде, например по кодовым словам. Приходите на стенд и говорите, что с linux.org.ru и что там на тему бумажной книги :)

Парочка вредных советов для примера:

  • Пишите ваши .h-файлы так, чтобы они зависели от других заголовков, и при этом не включайте их в свой заголовочный файл. Пусть тот, кто инклудит, догадается, какие заголовки нужно заранее заинклудить перед использованием вашего файла. Развлеките коллег квестами!
  • Пишите код так, как будто его будет читать председатель жюри IOCCC и он знает, где вы живёте (чтоб приехать и вручить вам приз).

P.S. PDF (yandex.ru), если кому-то так удобнее.

 , , , ,

Andrey_Karpov_2020
()

Интересные уловки от хитровыделанных заказчиков

Форум — Talks

Сейчас я вам расскажу интересную уловку, которая очень часто встречается у работодателей. Намного чаще на фрилансе и чуть-чуть реже в реале

  1. Заголовки на фрилансе «нормальному специалисту на это надо 2 дня!»:

шапка топика: Требуется сделать хх. В теле сообщение текст того, что надо сделать и обязательно присутствует фраза «нормальный специалист сделает это за два дня»

Как всё происходит с таким заказчиком: если у вас нет опыта, то вы начинаете делать задачу. Делаете ее неделю. Полторы. Много общения с заказчиком. Заказчик подгоняет. Вы нервничаете. Но знаете, что возможно, вы затянули сроки по незнанию предметной области. В конечном итоге вы можете месяц это делать и в конечном итоге сделаете за месяц. Заказчик с вами расчитается по оглашенному в условиях работы прайсу т.е два дня

Далее, когда у вас уже будет опыт и вы возьметесь за такую же работу, то сделаете ее за 1.5 недели. Заказчик платить за 1.5 недели не будет. Слышать какие-то вменяемые аргументы он не будет. Заплатит за 2 дня

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

Заказчики хитровыделанные товарищи. То, что они говорят вам и то, что они реально думают - не всегда совпадает. Они могут прекрасно знать, что это не делается за два дня, но если специалист сделает за 1.5 недели или даже за месяц, но он ему заплатит за 2 дня - то это…это же ПРЕКРАСНО!!!

  1. Шантаж при выдаче зарплаты за отработанное время:

Достаточно популярная уловка. Завуалированный первый вариант. Вы договариваетесь с заказчиком. Полностью оговариваете то, что вы будете делать. Пошагово. Каждый день делаете отчеты. Заказчик вам ничего на это не говорит. Работа же движется! Когда приходит день зарплаты, то заказчик начинает говорить: у нас есть задачи, которые не закрыты. Вы начинаете говорить: ну так для того, чтобы сделать эту задачу, надо выполнить предварительные работы. Заказчик все такие аргументы игнорирует. В конечном итоге предлагает вам закрыть все ключевые конечные задачи и после этого вам заплатят зарплату. Но строго за отработанную неделю

Пример: прихожу я в одну микрокредитную организацию. Договариваемся, что первый месяц анализ проекта и зарплата 50%, потом зарплата 100% и расширяем функционал проекта. Проект писал школьник(реально школьник) несколько лет. Школьник ушел в армию. И они ищут человека, который приведет в порядок проект и расширит функционал

Обсуждаем пул задач. Согласовываем. Заказчик соглашается на пул задач. Пул задач на первый месяц:

  1. анализ проекта
  2. создания лога вьюшек, потому как много дубликата кода(одинаковые названия классов и функций в разных скриптах, которые подтягивают вьюшки)
  3. по результату формирование логов. Анализ их, приведение в консистентный вид, чтобы можно было начать расширять функционал

Работаю месяц: закрыл 2 пункта, все доп. таски видел заказчик. Всё всех устраивало. Получаю зп 50%. Работаем дальше

Второй месяц: начинаю править в коде дебильные вещи, типа «одинаковые названия классов и функций в разных скриптах, которые подтягивают вьюшки» и прочее. Всё это протекает, естественно медленно т.к требует тестирования. Работаю с этим две недели. Пошла третья. Заказчика всё устраивает. В конце третьей недели я интересуюсь «а когда будет аванс за 2 недели?». И тут начинается замечательная история

История такая: заказчик спрашивает «а когда мы закроем сабжевый список тасок?». Имеется ввиду расширение функционала. Я ему: когда выполним третий пункт. Он: это всё очень долго происходит. Скажите время, когда вы закончите третий пункт. Я: в районе 1-2 недели. Заказчик: это очень долго. По моему опыту, нормальному специалисту на это надо 2 недели. Я: две недели? Заказчик: да, на ВСЕ ТРИ ПУНКТА. Вы же делаете это второй месяц. Я вам предлагаю такой вариант: сейчас я вам формирую список задач, который нам нужно выполнить. Вы их закрываете и получаете зарплату. Эти задачи, по моему мнению, специалист выполнит за 2-2.5 недели. Мы вам готовы заплатить за 3 недели. Я: хорошо, а с отработанными тремя неделями что будем делать? Заказчик: мы готовы платить за закрытые задачи. Я: я выполнял предварительные работы. Всё в коммитах. Заказчик: мы коммиты смотреть не будем. Мы видим, что вы затянули время и делали 1.5 месяца то, что делается 2 недели. Сейчас я сформирую список задач. Я: формируйте! Про себя ржу. Вот это поворот событий!

Заказчик формирует список задач(к уже имеющимся конечным таскам). И там работы месяца на 2-3

Я: тут работы на 2-3 месяца. Заказчик: нормальный специалист сделает это за 2-2.5 недели

Такая уловка(шантаж невыплаченной зарплатой) очень частая история. В разных вариантах развития событий. Но суть одна и та же

Коллеги, не давайте хитровыделанным товарищам на вас кататься! На фрилансе строго по предоплате. Нет? Гуляй, Вася. В реале бороться сложней. Самым лучшим решением - это офиц. трудоустройство на полностью белую зп. Если зп серая - вам ее и выдадут по уходу. Все остальные варианты - исключительно силовые. Набить кепку - забрать шекели

Дополнено1:

в комментариях есть мнение, что оценка сроков у заказчика неправильная по «незнанию предметной области». Я отвечу, что по результирующей неважно, по какой причине оценка неправильная: сознательно или по не знанию. Результирующая такая: заказчик заплатит строго по тем срокам, которые он огласил. Еще не видел, когда человеку объясняешь с фактами, почему это не делается 2 дня, а он соглашается и вы начинаете работать. Обычно такой человек пишет: «спасибо, я попробую поискать другого исполнителя» или подобное. Всё время на объяснение(которое бывает и несколько часов) - естественно никто не оплачивает

Дополнено2:

чтобы вы понимали, насколько такие уловки выгодны, я включу обычные математический расчеты уровня четвертого класса. Берем стандартный рейт $20, который является средним по СНГ среди мидл-сеньор.

Вариант1: платят за два дня, что делается по факту 1 месяц. Считаем: 6 часов в день на * 5 рабочих дня * 4 недели = 120 рабочих часов. Работаем 120 часов, платят за 12 часов. Сколько у нас оплата в час получается? Правильно, 12 * 20 = $240. 240/120 = $2 в час. Или 160 рублей в час или 21120 рублей в месяц :)

Вариант2: платят за два дня, что делается по факту 1.5 недели. Считаем: 6 часов в день на * 8 рабочих дня 48 рабочих часов. Работаем 48 часов, платят за 12 часов. Сколько у нас оплата в час получается? Правильно, 12 * 20 = $240. 240/48 = $5 в час. Или 400 рублей в час или 52 800 рублей в месяц :)

Ты такой серьезный программист, много чего знаешь. А по факту тебя заимели( поимели в 1337 порт :) ) по 160р или за 400р в час. А можешь и вообще бесплатно отработать(если не согласился на шантаж зп)

Дополнено3:

Очень частая уловка у заказчиков, у которых уже есть проект: вам дают ТЗ, что в проекте нужно сделать. Оцените так сказать. Вы оцениваете. Заказчик соглашается. И тут есть один очень интересный нюанс, который выглядит следующим образом:

Вы: сделать это - 2-3 дня, но чтобы это сделать - надо разобраться с проектом

Заказчик: а сколько на это нужно?

Вы: в районе 1-2 недели. Не знаю, как у вас проект написан. Может и меньше, может и больше. Но, обычно, в районе этого времени

Заказчик: я готов платить за выполненное ТЗ

Для тех, кто не понял, заказчик готов платить за доработку проекта, но не готов вам платить за время, которое будет потрачено на «вникнуть в проект», чтобы потом выполнить ТЗ

Считаем:

  1. минимум: 2 дня * 6 часов * $20 = $240 или 19200р
  2. максимум: 3 * 6 * $20 = $360 или 28800

затрачено времени:

  1. минимум: 5дней * 6часов * $20 = $600 или 48000р + ТЗ 19200р = 67200р
  2. максимум: 10дней * 6часов * $20 = 1200 или 96000р + ТЗ 28800 = 124800р

Ничего так потеря денег и времени. Согласны? Я более чем уверен, что после того, как этот человек найдет того, кто закроет ему ТЗ, он с чистой совестью пойдет и купит себе новый телефон. Или как-то по-другому, но строго с пользой для себя потратит сэкономленные деньги. А всё потому, что айтишник, по мнению заказчиков - это лошпидрон. Которого можно обхитрить и вместо 67т.р заплатить 19т.р т.е грубо говоря нанять по цене продавца в продуктовом магазине. И ему пофиг, сколько вы времени потратили в жизни на то, чтобы во всём этом IT разобраться и сколько вы тратите на актуализацию своих знаний

 , ,

serg002
()

Игры в терминале

Форум — Games

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

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

Теги для поисковых ботов (жрите мои любимые ботики): ascii games, terminal games, ncurses games, tty games, console games, cli games, tui games, text-based games, command line games, игры в терминале, игры в консоле, игры для командной строки.

Критерии отбора:

  1. Язык программирования: Си(в приоритете), си++. Остальные пока не рассматриваются. Потенциальные в будущем - ада, фортран, бейсик, паскаль. Жирный пайтон идет лесом, хипстерские гоу, раст и иже с ними туда же.
  2. Открытые исходники с лицензиями, позволяющими модификацию, не препятствующие распространению. Свободные и одобренные дядюшкой Столлманом в приоритете.
  3. Зависимости. Без sdl и других графических либ. Опционально пускай будет, например, для музыки. Но не навязывается. NCurses и подобные библиотеки для работы с терминалом всяко одобряются и котируются. Не приветствуются в зависимостях всякие гугловские юнит тесты и другие чёрт ногу сломит либы. Для маленьких терминальных игр эта мишура не нужна.

Источники игорей:

  1. https://ttygames.wordpress.com/
  2. https://github.com/ligurio/awesome-ttygames
  3. https://inconsolation.wordpress.com/
  4. https://kmandla.wordpress.com/
  5. https://ibiblio.org/pub/linux/games/ Артефакты прошлого. Игры для терминала надо искать. Не всё собирается с современным компилятором.
  6. gopher://sdf.org/9/users/saahriktu/bttf/gamez_p0.tar.lzma (использовать lynx) - сборник ascii игр, собранный камрадом @saahriktu
  7. https://www.youtube.com/user/livibetter/videos
  8. https://zenway.ru/tag/ASCII
  9. https://blends.debian.org/games/tasks/console
  10. ASCII игры по Linux
  11. Поиск на github.com, gitlab.com по соответствующим запросам
  12. Поиск рогаликов на http://www.roguebasin.com/index.php?title=Category:Roguelike_games
  13. Все поисковики, даже малоизвестные иногда выдают страницы, на которые не попадешь с гугла или яндекса.

Сами игори:

!!!NEW!!! 1. 8f (linux.org.ru) - Терминальный вариант карточной игры Сумасшедшие восьмёрки (Crazy Eights).

  1. Alienwave - Сложная Galaga-подобная игра с хорошим ascii-артом.
  2. Bricktick - Красивый клон арканоида с бонусами.
  3. CLines - Качественная реализация всеми известной офисной игры Color Lines.
  4. Dominoes - Реализация одного из вариантов игры Домино.
  5. Lwrace - Бегаем символом «O», собираем «$», избегаем «#», уворачиваемся от «o».
  6. Morpion solitaire - Отличная реализация отличной же тетрадной игры Join Five.
  7. MyMan - Пакман для терминала с множеством настроек.
  8. Peg-solitaire.c - Добротная реализация одноименной настольной игры с 5-ю раскладками.
  9. XT gyoretsu - Воссозданная с любовью и с ncurses старая тетрадная игра.
  10. Ztrack - Псевдо-тридешные гоночки с красивым бэкграундом.
  11. to be continued

 , , ,

nab_linux
()

Способы переименования сетевого интерфейса через udev

Форум — Admin

Приветствую.

Встречал я 3 основных варианта как можно через udev переименовать сетевой интерфейс. К примеру:

KERNEL=="eth0", ACTION=="add", ATTR{address}=="40:6b:1b:20:42:35", NAME="inet"
и
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="40:6b:1b:20:42:35", NAME="inet"
и
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="40:6b:1b:20:42:35", KERNEL=="eth*", NAME="inet"

Все работают, но есть ли какая-то разница между ними и какой лучше?

 ,

mag-gendalf
()

Intel выпилил S3 (suspend-to-ram) в 11 поколении

Форум — Desktop

Привет, ЛОР!
Решил рассказать о своей истории узбека сношения с ноутбками на Intel 11 поколения.

Конкретнее — сегодня поговорим о засыпании (suspend, suspend-to-ram, S3).
Если вкратце — засыпания в ноутбуках больше не будет. Вообще. Совсем.

Ссылка: https://www.reddit.com/r/System76/comments/k7xrtz/ill_have_whatever_intel_was...

Вместо Ъ-засыпания S3 (с обесточиванием всей периферии, кроме оперативной памяти) — теперь некий S0iX.
Это значит, что процессор теперь не будет обесточиваться и будет работать всегда.
Кроме очевидных минусов вроде уменьшения времени автономной работы в режиме засыпания, есть ещё и неочевидные — вроде тех, что из-за того, что CPU (и, вроде как, некоторая периферия) будет включена всегда — за нами будут следить ещё лучше и тщательнее.

Ну и, конечно же, в Linux ближайшее время это будет поддерживаться через жопу.
Например, на последнем лаптопе от Fujitsu (Lifebook U7311) засыпание не работает вовсе, потому что BIOS лаптопа бодро рапортует о поддержке S3, которое CPU, естественно, не поддерживает, с предсказуемым результатом.

А ещё сегодня мы поговорим о том, чем заменить S3 (точнее, об альтернативе б-мерзкому S0iX, накостыленной шаловливыми ручонками линуксоида).
fakesleep.sh — скрипт, который делает примерно то же самое — «усыпляет» пользовательские процессы (kill -STOP), усыпляет USB-девайсы, отключает указанные ядра процессора и выключает дисплей (и, конечно же, «вертает всё взад» при «пробуждении»).
Использовать его очень просто: нам понадобится acpid и пара нехитрых скриптов:

/etc/acpi/events/laptop-lid

event=button/lid.*
action=/etc/acpi/laptop-lid.sh

/etc/acpi/laptop-lid.sh
#!/bin/sh

FAKESLEEP=/home/ann/.bin/fakesleep
ACTION=$(grep -q closed /proc/acpi/button/lid/LID/state && echo sleep || echo resume)

$FAKESLEEP $ACTION

Естественно, нужно подправить несколько переменных в скрипте и путь до этого скрипта в laptop-lid.sh.

Как результат — ноутбук при закрытой крышке не засыпает полностью (как и в S0iX), но при этом мы можем контролировать процессы, которые мы останавливаем/не останавливаем, при этом время автономной работы в режиме «спячки» такое же (фиговое, но терпимое):
ann.: ~ ➤  acpi                                                                                                                                                                                                                                      
Battery 0: Discharging, 86%, 25:17:22 remaining

(проверено по SSH, которое остаётся доступным как раз благодаря тому, что мы контролируем, какие процессы мы усыпляем, а какие нет)

Просьба всем использующим 11 поколение Intel и сочувствующим протестировать это поделие и дать советы по улучшению/ухудшению этого всего хозяйства.
Естественно, это всё юзабельно не только на 11 поколении, а на любом ноутбуке.

sudo cast i-rinat (на всякий случай)

 , ,

annerleen
()

Linux гейминг на диване. ChimeraOS.

Форум — Talks

https://chimeraos.org/

Особенности:

  • ChimeraOS - дистрибутив, который предоставляет диванный гейминг экспириенс из коробки. После установки вы загружаетесь сразу в Steam Big Picture и можете приступать к игре!

  • Легкая установка

  • Минимализм. Диструбутив содержит только то, что необходимо для игр

  • Нет необходимости в конфигурации игр из списка поддерживаемых. Можно приступать сразу к игре. ==> Список

  • Регулярные обновления драйверов и ПО

  • Дистрибутив основан на Arch Linux

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

  • Поддержка Xbox, PlayStation, Steam контроллеров и других

  • Поддержка Steam, Epic Games Store, GOG и других платформ.

Демонстрация:

https://youtu.be/E2NIGPpz_vY

 ,

Zadoff386
()

Управление файлами конфигурации при помощи GNU Stow

Статьи — Администрирование

GNU Stow — это менеджер символьных ссылок. Он позволяет управлять файлами конфигурации и установкой программ из исходников. При помощи Stow можно устанавливать программы из исходных кодов в обход менеджера пакетов, не боясь сломать систему. Также им удобно управлять файлами конфигурации (далее дот-файлами) в домашнем каталоге пользователя.

( читать дальше... )

 ,

den-jc
()

Восхитительная вещь: Linux Live Kit, но как настроить первоначальный экран, zRam, persistence (чистый аналог MX Linux с полноценной средой)?

Форум — General

Всем доброго утра!

Tomas Matejicek (автор Slax Linux) решил провести мастер-класс по альтруизму и создал инструмент, позволяющий буквально в пару кликов создать Live-версию любой операционной системы (ну, почти любой).

https://www.linux-live.org/

https://github.com/Tomas-M

Порядок действий: очищаем установленную и настроенную систему от мусора, проверяем наличие пакетов squashfs-tools, genisoimage, zstd, если нет - ставим, чистим кэш, скачиваем и распаковываем https://github.com/Tomas-M/linux-live/tarball/master

Идем в .../Tomas-M-linux-live-7d4ad09/bootfiles/

открываем syslinux.cfg добавляем пункты меню:

LABEL default
MENU LABEL Toram on
KERNEL /boot/vmlinuz
APPEND vga=769 initrd=/boot/initrfs.img load_ramdisk=1 prompt_ramdisk=0 rw printk.time=0 apparmor=0 toram
LABEL default
MENU LABEL Persistence on
KERNEL /boot/vmlinuz
APPEND vga=769 initrd=/boot/initrfs.img load_ramdisk=1 prompt_ramdisk=0 rw printk.time=0 apparmor=0 perch

Возможно, еще также должна работать и комбинация:

LABEL default
MENU LABEL Persistence on, Toram on
KERNEL /boot/vmlinuz
APPEND vga=769 initrd=/boot/initrfs.img load_ramdisk=1 prompt_ramdisk=0 rw printk.time=0 apparmor=0 perch toram

Не проверял, если честно.

Сохраняем, закрываем.

Также заменяем скучные обои bootlogo.png на наш несравненный .png размером 640х480.

Идем в /Tomas-M-linux-live-7d4ad09/build находим строки:

if [ "$SKIPCOREMOD" = "" ]; then
mksquashfs $COREFS $LIVEKITDATA/$LIVEKITNAME/01-core.$BEXT -comp xz -b 1024K -Xbcj x86 -always-use-fragments -keep-as-directory || exit
fi

и заменяем на:

if [ "$SKIPCOREMOD" = "" ]; then
#   mksquashfs $COREFS $LIVEKITDATA/$LIVEKITNAME/01-core.$BEXT -comp xz -b 1024K -Xbcj x86 -always-use-fragments -keep-as-directory || exit
#   mksquashfs $COREFS $LIVEKITDATA/$LIVEKITNAME/01-core.$BEXT -comp lz4 -always-use-fragments -keep-as-directory || exit
   mksquashfs $COREFS $LIVEKITDATA/$LIVEKITNAME/01-core.$BEXT -comp zstd -always-use-fragments -keep-as-directory || exit
fi

Можно попробовать через lz4, но xz - точно не стоит, никакого кофе не хватит.

Сохраняем, закрываем.

Идем в /Tomas-M-linux-live-7d4ad09/config находим строку:

LIVEKITNAME="linux"

Заменяем linux на название нашего дистрибутива (латиница, без пробелов), или любое название, которое считаем эстетически привлекательным.

Сохраняем, закрываем.

Запускаем через sudo или от root: ./build

Ждем, если все отработало как нужно - идем в /tmp/ и забираем наш каталог linux-live. Перебрасываем его на флешку (я форматировал ее в ext4) и запускаем уже с флешки «наше название системы»/bootfiles/bootinst.sh

Всё. Если вдруг «не всё» - то читаем файлы readme, там всё предельно ясно расписано. Ну почти всё.

Также в /tmp/ будет лежать скрипт для создания iso образа, если вдруг он нам нужен.

- - - - - - - - - - - - - - - - - - - - - - - - - - -

Теперь вопросы к пользователям Slax (но и не только):

- как по аналогии с 01-core.sb сделать, ну например, 02-vb.sb и сохранить в нем слой с установленным VirtualBox? При этом, чтобы была возможность подключать и отключать его (равно как и другие слои/образы) на лету.

- как отредактировать оформление этого чудного начального меню с таблицей из 90-х и цветами, которые вышли из моды еще во времена молодости моей бабушки?

- как сделать чтобы при включении perch изменения шли не в каталог /changes/ на нашей флешке, с дублированием корневой системы, а как-то по уму, например, единоразово при выключении в единый файл со сжатием?

- как работает zRam? Всегда ли происходит сжатие всего, что идет в память, или только тогда, когда свободная память подходит к концу? Если всегда, то как отключить эту опцию? Интуитивно - zram=off или zram=0 в начальном меню, но не уверен.

Ну и наконец - зачем городить весь этот огород, если можно взять готовую MX Linux? Во-первых, Вы можете попробовать проделать это с любой системой, а не только с модификацией Debian без Systemd (понимаю, что для гуру - не критично, но для новичков - это ад, когда «все делаешь по инструкции», но ничего не работает, ибо у тебя «особенная» система), во-вторых, Вам не нужно вычищать весь мусор, который сочли нужным положить в систему разработчики дистрибутива - Вы просто берете и настраиваете все сами (на самом деле нет - придется 100500 раз задать вопросы на ЛОРе), с нуля, с консоли, устанавливая только то, что нужно, ну и в третьих, (продолжая тему доверия к AppImage - Какие репозитории AppImage можно считать «безопасными»?) к репозиториям основного семейства дистрибутивов всё-таки больше доверия. Но это уже дело вкуса.

 , , , ,

Starover
()

Ubuntu на m1 через Multipass

Статьи — Администрирование

Всем привет! Понадобилось сейчас запустить один очень специфичный софт(корпоративный), который работает только на бубунте. А так как у меня есть только macbook pro 2020 года, который на m1. То пришлось поднять бубунту на нем.

( читать дальше... )

 , , ,

romanlinux
()

Переводилка для вашего ПекА

Форум — Talks

Часто забываю всякие забугорные слова, написал скриптик прототип, который берёт текст из буфера обмена шлёт на сервера гугла и показывает ответ всплывающим окошечком, удобно тем что переводить можно всё подряд из любого мета и не нужно теледвижений, можно навесить на горячую клавишу. Написал для себя, мож кому будет полезно.

Обновлено.

Зависимости apt install lua xclip xsel xdotool aosd_cat translate-shell

Вопщем таксь.
Порой, нужно не просто выделить текст где угодно и увидеть его по перевод по горячей клавише,
но и получить его перевод в виде текста. К счастью в x11 есть аж три буфера обмена.
Поэтому добавил опцию copy_translated=true/false.

Суть проста:

  • вешаете скрипт, например на F7
  • выделяете произвольный текст без его копирования через контекстное меню(как и было)
  • нажимаете F7 и
  • всплывает текст перевода (как и было)
  • нажимаете среднюю кнопку мышки и в любом поле ввода вставляется оригинальный текст
  • нажимаете правую кнопку мышки и через контекстное меню делаете вставить и вставляется переведённый вариант
  • повторное нажатие F7 ещё раз покажет перевод, без повторного выделения
#! /bin/env lua
local poptrans =
{
    -- select language from lang to lang
    lang_from = "auto", --auto,en,fr,de or other
    lang_to   = "ru",
    -- copy translated text to clipboard
    -- if you select text (no use context menu textcopy)
    --   - middle mouse button paste translated text
    --   - right mouse button context menu paste original text
    --   - script used 2 levels X11 clipboard buffest of 3 levels :)
    copy_translated = true,
    -- how more seconds show you translated text
    show_timer = 3,
    -- popup translated text under mouse position
    follow_mouse = true,
    -- if follow_moise is false, set translated
    -- text position static coords
    popup_pose_x = 0,
    popup_pose_y = 0,
    -- max width message in screen, zero is auto
    popup_width  = 0,
    -- get text from system clipboard
    app_clipboard = "xclip -o 2> /dev/null",
    -- set text to system clipboard
    app_set_clipb = "xsel -b -i ",
    -- get mouse systemd coords
    app_mousepose = "xdotool getmouselocation 2> /dev/null",
    -- show text popup with translated text
    app_popup_msg = "aosd_cat -x %d -y %d -B white -R white -t 0 -p 0 -u %d -w %d"
}

function poptrans:run()
    local translated = '';
    self.previos_text = '';
    -- read clipboard
    local exec = io.popen(self.app_clipboard);
    local text = exec:read('*all');exec:close();
    -- get cursor position
    exec = io.popen(self.app_mousepose);
    if self.follow_mouse then
        self.popup_pose_x,self.popup_pose_y = exec:read("*all"):match("x:(%d+) y:(%d+)");
        self.popup_pose_x = self.popup_pose_x+3; exec:close();
    end
    -- do not translate previos text or empty or translated text
    if text ~= previos_text and text ~= '' and text ~= translated then
      local from = ''
      if self.lang_from ~= "auto" then
        from = self.lang_from;
      end
      exec = io.popen('trans   '..from..':'..self.lang_to.." -b '"..text.."'");
      translated = exec:read("*all"); exec:close();
      if self.copy_translated then
         exec = io.popen(self.app_set_clipb,'w')
         exec:write(translated:sub(1,#translated-1));
         exec:flush();
         exec:close();
      end
      previos_text = text;
      exec = io.popen(
      self.app_popup_msg:format(
      self.popup_pose_x,self.popup_pose_y,self.show_timer*1000,self.popup_width),"w");
      exec:write(translated);exec:close();
    end
end

poptrans:run()

Не используйте версию из истории правок!. Там опасный баг с кавычками, (спасибо @maxcom исправить дал)
Единственное что там полезно это пример как делать перевод через гугл API по токену.
Но раз появилась возможность правки то ::)

- ИСПОЛЬЗОВАТЬ НА СВОЙ СТРАХ И РИСК, Я НЕ НЕСУ НИКАКОЙ ОТВЕТСТВЕННОСТИ
- ВСЁ ПРЕДОСТАВЛЯЕТСЯ КАК ЕСТЬ, ЛЮБЫЕ СОМНЕНИЯ ДОЛЖНЫ ВЕСТИ
- К ОТКАЗУ ОТ ИСПОЛЬЗОВАНИЯ

 , , , ,

LINUX-ORG-RU
()

Multiboot USB Creator (YUMI, Ventoy, Easy2Boot,..)

Форум — Linux-install

На фоне всеобщей истерии по поводу Ventoy (любят его и хейтят поголовно) мне хочется спросить про https://www.pendrivelinux.com/yumi-multiboot-usb-creator/ и иные аналоги Вентоя.

Чего хочется: в случае с Юми, под Виндой, а в случае аналогов на вроде https://easy2boot.xyz/ – из любой системы, создавать мульти-загрузочные USB Flash, притом обязательно с возможностью бутаться этой флешкой и в режиме BIOS, и в UEFI-режиме. Потому как иначе, если это первейшее правило не соблюдается, то необходимо 2 флеш-карты иметь с собой на ключах: для Биос и для Юифай, чего очень не хочется.

Статья в тему: https://en.wikipedia.org/wiki/List_of_tools_to_create_bootable_USB (эта статья про синг-бут утилиты, что не совсем в тему нашей беседы, ибо с синг-бут утилитами всё очень даже ясно и понятно. Единственное, я хочу предостеречь вас от юзанья Руфуса: эта всеми любимая утилита не умеет делать флешки загружаемые и в Биос и в Uefi, в отличие от обожаемого мною WoeUSB-ng).

 , ,

SerW
()

samba и каталоги с точкой в конце.

Форум — Admin

Подскажите откуда мог вылезти косяк и можно ли его обойти?
Есть древний Debian Stretch x64
Есть samba 2:4.5.16+dfsg-1+deb9u4
Зайдя в очередной раз на шару с ноута с Windows 7 - обнаружил каталоги кракозябры... Начал разбираться и выяснил что нечитаемыми становятся каталоги оканчивающиеся на '.' ну или содержащие '«'
Я понимаю что это спецсимволы, но они же присутствуют в именах файлов/каталогов и их надо отдать по сети.
Проблема проявилась на кривом Яндекс Диске, клиент которого отсутствует в Линуксе, и приходится заливать раздав через самбу Винде. Через WebDAV всё тормозно, а зеркальный демон не удобен... Я просто решил вынести в облако - часть содержимого сетевого раздела.

Есть ли какое то решение этой проблемы?

 , ,

n0mad
()

FireJail — краткое и ознакомительное практическое руководство

Статьи — Desktop
FireJail — краткое и ознакомительное практическое руководство

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

Ниже я хочу описать почти золотую середину в лице утилиты firejail в виде практических советов по использованию в первую очередь для обычных пользователей и (возможно) разработчиков.

( читать дальше... )

 , , , ,

LINUX-ORG-RU
()

vim для самых маленьких

Статьи — Desktop
vim для самых маленьких

Основные команды текстового редактора vim

( читать дальше... )

 , ,

LINUX-ORG-RU
()

О зоологии и программировании

Форум — Talks

https://habr.com/ru/post/254473/

Вы неправильно пишете животных

Животные – это платформы с очень ограниченной памятью, вычислительными способностями и возможностями модификаций. Разработчикам энимал-сцены приходится выдавать практически гениальные низкоуровневые алгоритмы. Правда, большое количество хардкода вызывает характерные проблемы с отсутствием проверки в экзотических условиях. Та же фильтрация входных данных делается очень и очень криво.

Не знаю, кто писал большую часть птиц, но я хочу обратить внимание на особенность, позволяющую провести инъекцию произвольного яйца в гнездо. Дело в том, что птица проверяет только расположение и количество яиц, но не их хэши. В 20% случаев кукушка, эксплуатирующая этот баг, может внести яйцо с сохранением контрольной суммы, чего вполне достаточно для повышения прав в гнезде.

Но пойдём далее. Я не знаю, кто разрабатывал архитектуру ящериц, но они бегают в одном процессе, а дышат в другом. При этом платформа не поддерживает многозадачность, поэтому костыль с максимальной длиной бега в 4-6 секунд просто эпичен.

Да, ещё о птицах, чтобы два раза не вставать. У них насквозь кривой модуль распознавания «свой-чужой». Что позволяет провести animal-in-the-middle-атаку с помощью подстановки звука птенца. Всё, что примерно совпадает по размерам и при этом передаёт открытую часть ключа, нужно покормить. Похожий баг есть у некоторых грызунов, что позволяет предположить проблемы с общей библиотечной функцией.

Теперь муравьи. Муравьёв довольно легко зациклить. Навигационный блок у них совмещён с системой приоритетов ОС, поэтому при построении циклического маршрута образуется «спираль смерти», затягивающая всё больше и больше ресурсов муравейника – и всё это зависает на 3-4 дня, пока муравьи не погибнут от истощения или что-то снаружи не поменяет навигацию.

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

А вот страус – вершина оптимизации. То, как именно в него впихнули пищеварение, вообще достойно войти в «Жемчужины программирования». Чтобы эта птичка нормально переваривала пищу, разработчик придумал заставить его натурально жрать камни. При беге камни трясутся и перемалывают зёрна. Теперь самое весёлое. Чтобы не писать отдельный код для поедания камней, страусу просто взяли и отключили центральный сектор зрения (как зайцу, но там это известный минорный баг). Поэтому когда страус целится в зерно, он попадает только в 30-50% случаев. Что легко позволяет набирать нужное количество камней, да ещё и с запасом. Именно поэтому страусы, запущенные на чистой виртуальной машине в зоопарке, испытывали проблемы с пищеварением до появления поддержки камней на уровне гипервизора. Кстати, коровы тоже жрут гвозди и иногда гравий, но это не в архитектуре, а просто техническая ошибка обратной совместимости.

Да, и ещё. Очень хорошая вещь – повторное использование кода. Часть функционала с камнями потом накатили на крокодила – чтобы ему нырялось лучше. Ныряется действительно лучше.

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

Дельфину вообще не всегда удаётся включать оба ядра мозга – только тогда, когда нужно делать что-то важное. Если вам встретился тормозящий дельфин – проверяйте, оба ли глаза открыты. Только один? Значит, он в спящем режиме и работает на одном ядре с пониженной тактовой частотой.

Медведь не всегда корректно выходит из hibernate-режима. Это же, кстати, касается некоторых растений, но там баг не так опасен. Растения легко перезапустить. И да, учитесь у тех, кто писал альбатроса. Альбатрос вообще спит в воздухе.

Теперь черепаха. Ей вместо того, чтобы прописать нормальный алгоритм обхода препятствий, захардкодили рефлекс убирания головы в панцирь. Теперь даже если она натыкается на крокодила, тот со своим молниеносным броском не успевает откусить ей голову. Побочный эффект – черепаха легко уворачивается от ножа мясника. Скорость обработки инструкций процессора не сравнится со скоростью работы интерпретируемого высокоуровневого кода у повара. Черепаху не обгонишь, критичные функции переписаны на ассемблере.

Белый медведь – отличный пример работы с солнечной энергией. Медведь прозрачный в УФ по меху и чёрный на коже. Это уже торжество инженера.

Жираф – сплошной костыль. Нет, в целом, понятно, что требования заказчика по высоте кроны несколько раз повышались по мере развития проекта. Но вот то, что вошло в релиз по водопоям и было пропущено на приёмке – это нонсенс. Жираф тупо не достаёт головой до воды(!) в обычном режиме. Ему приходится жутко вывернуться и почти сесть на шпагат, чтобы попить. Ясное дело, анонимусы-хищники этим нагло пользуются. Детёныша вообще пришлось укреплять – он в стабильном релизе падает с полутора метров при рождении.

Морской свинке и ряду рыб косо прописали задержки на прерываниях. Если обычное животное по очереди опрашивает прерывания вроде «нет ли опасности», «не надо ли попить», «не надо ли поесть», «не надо ли начать размножаться», «не надо ли лечь спать» и «не надо ли выполнять нестандартную процедуру» — и всё это без видимого переключения — то морские свинки делают sleep(1000); после каждой операции. Видимо, осталось с отладки и вошло в релиз.

Хорошей идеей было накатить код сборщика мусора в ОЗУ от золотой рыбки на белку – garbage collector с высокой вероятностью очищает и неиспользуемые указатели на места размеченных орехов и семечек. В результате благодаря белке вырастает много новых деревьев.

Вот индийскую кобру точно писал фанат Starcraft. Потому что, задумайтесь, где ещё можно встретить юнита, плюющегося ядом на два с половиной метра точно в глаз террану.

Ну и раз начали о нерациональности – вспомним того же осьминога. Километры нервной ткани просто потому, что кому-то было интересно написать его на brainfuck. Да если использовать эти отдельные модули управления присосками, ту же ткань – может получиться вообще ЦОД на колёсиках.

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

Тлей и других насекомых, а также ряд животных точно писал бешеный фанат рекурсии. Светлая мысль рождать некоторых уже беременными – просто вынос мозга для тестеров. Зато слонёнок деплоится 22 месяца — вот что значит не влезть в кэш процессора.

Кстати, пасхалка с бегемотом получилась смешная. Люди боятся львов, носорогов, змей – но только этот обаятельный толстяк целенаправленно бегает за человеком. И, внезапно, со скоростью до 30 км/ч. То есть догоняет даже велосипедистов.

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

У курицы расслабленная лапа «защёлкнута», поэтому если поставить курицу на ветку, дождаться, пока она уснёт, а потом легко и быстро перевернуть, сработает рефлекс – и у вас будет курица, спящая вниз головой на дереве. Главное – подготовить почву и рассказать всей деревне про вампиров за день до зрелища такого курятника.

У собак и ряда других хищников и падальщиков косо прописано распознавание добычи. В одном из условий AND случайно заменили на OR, и вот результат — известный баг с запуском приоритетного процесса с атакой на пятно лазерной указки.

В общем, вы наверняка и сами можете продолжить.

P.S. Обратите внимание, что большая часть описанных уязвимостей до сих пор не исправлена.

 

question4
()

Говорилка через спикер.

Форум — Multimedia

Есть ли что-то лайтовое под топик?

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

 

Bearded_Dantes
()