LINUX.ORG.RU

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

Fedora 40. Intel WiFi AX210 мгновенный выход из suspend

Форум — Linux-hardware

Приветствую. Помогите разобраться с проблемой. Есть ПК на базе ASUS Prime Z590-A. В один из слотов PCI-E воткнут модуль WiFi+BT на базе Intel AX210. Шнур USB подключается к внутреннему разъему USB на материнской плате. (заранее оговорюсь, что пробовал этот кабель выводить наружу и подключать к внешнему USB порту).

В целом никаких проблем в работе модуля нет. Но, если ПК перевести в режим сна, то он мгновенно просыпается. И происходит это только один раз. Все последующие (до перезагрузки) переходы в сон/пробуждения происходят так как надо.

Перерыл весь гугл, перековырял все настройки BIOS. Ничего не помогает.

На этом же ПК установлена MacOS - в ней поведение аналогичное, и не ограничивается одним разом. Каждый уход в сон сопровождается мгновенным просыпанием. Но для этой системы есть решение. Я загрузчиком подгружаю пару табличек ACPI, делаю патч и проблема со сном уходит. Правда в этом режиме ПК не выходит из сна по нажатию на клавиатуру или мышь, только с кнопки включения на корпусе. И все это справедливо только в реалиях MacOS.

В Windows все работает идеально, никаких проблем со сном нет.

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

 , , ,

hurmaila
()

YT-DLP, очевидное-невероятное

Статьи — Desktop

В последнее время ютуб затеял какую-то реорганизацию и стал убирать из некоторых своих видео формат 22 (720p, единый файл, не dash). Может я наговариваю, конечно, на ютуб, но формат best (720p) всегда был, имхо.


Оказывается есть возможность получать другую таблицу форматов, отличную от дефолтной. У yt-dlp есть параметр --extractor-arg "youtube:player_client=mediaconnect" ([youtube] Format 22 is only sometimes extracted for some videos #10206).
Дефолтная таблица форматов:

$ yt-dlp -F 'https://youtu.be/eUyr9MJnj4w' 
Extracting cookies from firefox
Extracted 1328 cookies from firefox
[youtube] Extracting URL: https://youtu.be/eUyr9MJnj4w
[youtube] eUyr9MJnj4w: Downloading webpage
[youtube] eUyr9MJnj4w: Downloading ios player API JSON
[youtube] eUyr9MJnj4w: Downloading player 5b22937f
[youtube] eUyr9MJnj4w: Downloading m3u8 information
[info] Available formats for eUyr9MJnj4w:
ID  EXT   RESOLUTION FPS CH │   FILESIZE   TBR PROTO │ VCODEC          VBR ACODEC      ABR ASR MORE INFO
────────────────────────────────────────────────────────────────────────────────────────────────────────────────
sb3 mhtml 48x27        0    │                  mhtml │ images                                  storyboard
sb2 mhtml 80x45        1    │                  mhtml │ images                                  storyboard
sb1 mhtml 160x90       1    │                  mhtml │ images                                  storyboard
sb0 mhtml 320x180      1    │                  mhtml │ images                                  storyboard
233 mp4   audio only        │                  m3u8  │ audio only          unknown             Default
234 mp4   audio only        │                  m3u8  │ audio only          unknown             Default
139 m4a   audio only      2 │    1.32MiB   49k https │ audio only          mp4a.40.5   49k 22k low, m4a_dash
249 webm  audio only      2 │    1.30MiB   48k https │ audio only          opus        48k 48k low, webm_dash
250 webm  audio only      2 │    1.70MiB   63k https │ audio only          opus        63k 48k low, webm_dash
140 m4a   audio only      2 │    3.51MiB  129k https │ audio only          mp4a.40.2  129k 44k medium, m4a_dash
251 webm  audio only      2 │    3.51MiB  130k https │ audio only          opus       130k 48k medium, webm_dash
602 mp4   256x144     15    │ ~  2.33MiB   86k m3u8  │ vp09.00.10.08   86k video only
394 mp4   256x144     30    │    1.68MiB   62k https │ av01.0.00M.08   62k video only          144p, mp4_dash
269 mp4   256x144     30    │ ~  4.16MiB  154k m3u8  │ avc1.4D400C    154k video only
160 mp4   256x144     30    │    1.55MiB   57k https │ avc1.4D400C     57k video only          144p, mp4_dash
603 mp4   256x144     30    │ ~  4.18MiB  154k m3u8  │ vp09.00.11.08  154k video only
278 webm  256x144     30    │    2.35MiB   87k https │ vp9             87k video only          144p, webm_dash
395 mp4   426x240     30    │    2.70MiB  100k https │ av01.0.00M.08  100k video only          240p, mp4_dash
229 mp4   426x240     30    │ ~  5.70MiB  211k m3u8  │ avc1.4D4015    211k video only
133 mp4   426x240     30    │    2.35MiB   87k https │ avc1.4D4015     87k video only          240p, mp4_dash
604 mp4   426x240     30    │ ~  7.76MiB  287k m3u8  │ vp09.00.20.08  287k video only
242 webm  426x240     30    │    3.59MiB  133k https │ vp9            133k video only          240p, webm_dash
396 mp4   640x360     30    │    5.02MiB  186k https │ av01.0.01M.08  186k video only          360p, mp4_dash
230 mp4   640x360     30    │ ~ 11.41MiB  421k m3u8  │ avc1.4D401E    421k video only
134 mp4   640x360     30    │    4.13MiB  153k https │ avc1.4D401E    153k video only          360p, mp4_dash
18  mp4   640x360     30  2 │ ≈  7.64MiB  282k https │ avc1.42001E         mp4a.40.2       44k 360p
605 mp4   640x360     30    │ ~ 15.03MiB  555k m3u8  │ vp09.00.21.08  555k video only
243 webm  640x360     30    │    6.06MiB  224k https │ vp9            224k video only          360p, webm_dash
397 mp4   854x480     30    │    8.40MiB  310k https │ av01.0.04M.08  310k video only          480p, mp4_dash
231 mp4   854x480     30    │ ~ 15.17MiB  561k m3u8  │ avc1.4D401F    561k video only
135 mp4   854x480     30    │    6.09MiB  225k https │ avc1.4D401F    225k video only          480p, mp4_dash
606 mp4   854x480     30    │ ~ 20.80MiB  769k m3u8  │ vp09.00.30.08  769k video only
244 webm  854x480     30    │    8.50MiB  314k https │ vp9            314k video only          480p, webm_dash
398 mp4   1280x720    30    │   14.51MiB  536k https │ av01.0.05M.08  536k video only          720p, mp4_dash
232 mp4   1280x720    30    │ ~ 24.57MiB  908k m3u8  │ avc1.4D401F    908k video only
136 mp4   1280x720    30    │   11.09MiB  410k https │ avc1.4D401F    410k video only          720p, mp4_dash
609 mp4   1280x720    30    │ ~ 31.59MiB 1167k m3u8  │ vp09.00.31.08 1167k video only
247 webm  1280x720    30    │   13.61MiB  503k https │ vp9            503k video only          720p, webm_dash
399 mp4   1920x1080   30    │   24.33MiB  899k https │ av01.0.08M.08  899k video only          1080p, mp4_dash
270 mp4   1920x1080   30    │ ~ 73.64MiB 2721k m3u8  │ avc1.640028   2721k video only
137 mp4   1920x1080   30    │   39.45MiB 1458k https │ avc1.640028   1458k video only          1080p, mp4_dash
614 mp4   1920x1080   30    │ ~ 53.22MiB 1967k m3u8  │ vp09.00.40.08 1967k video only
248 webm  1920x1080   30    │   26.78MiB  990k https │ vp9            990k video only          1080p, webm_dash
616 mp4   1920x1080   30    │ ~131.47MiB 4858k m3u8  │ vp09.00.40.08 4858k video only          Premium
400 mp4   2048x1152   30    │   60.94MiB 2252k https │ av01.0.08M.08 2252k video only          1080p, mp4_dash
620 mp4   2048x1152   30    │ ~151.23MiB 5589k m3u8  │ vp09.00.50.08 5589k video only
271 webm  2048x1152   30    │   82.90MiB 3063k https │ vp9           3063k video only          1080p, webm_dash

Новая таблица форматов с единым файлом/потоком для 720p (и 1080p):

$ yt-dlp -F 'https://youtu.be/eUyr9MJnj4w' --extractor-arg "youtube:player_client=mediaconnect"
Extracting cookies from firefox
Extracted 1329 cookies from firefox
[youtube] Extracting URL: https://youtu.be/eUyr9MJnj4w
[youtube] eUyr9MJnj4w: Downloading webpage
[youtube] eUyr9MJnj4w: Downloading mediaconnect player API JSON
[youtube] eUyr9MJnj4w: Downloading m3u8 information
[info] Available formats for eUyr9MJnj4w:
ID  EXT   RESOLUTION FPS CH │  FILESIZE   TBR PROTO │ VCODEC        VBR ACODEC      ABR ASR MORE INFO
────────────────────────────────────────────────────────────────────────────────────────────────────────────
sb3 mhtml 48x27        0    │                 mhtml │ images                                storyboard
sb2 mhtml 80x45        1    │                 mhtml │ images                                storyboard
sb1 mhtml 160x90       1    │                 mhtml │ images                                storyboard
sb0 mhtml 320x180      1    │                 mhtml │ images                                storyboard
140 m4a   audio only      2 │   3.51MiB  129k https │ audio only        mp4a.40.2  129k 44k medium, m4a_dash
160 mp4   256x144     30    │   1.55MiB   57k https │ avc1.4d400c   57k video only          144p, mp4_dash
91  mp4   256x144     30    │ ~ 4.16MiB  154k m3u8  │ avc1.4d400c       mp4a.40.5
133 mp4   426x240     30    │   2.35MiB   87k https │ avc1.4d4015   87k video only          240p, mp4_dash
92  mp4   426x240     30    │ ~ 5.70MiB  211k m3u8  │ avc1.4d4015       mp4a.40.5
134 mp4   640x360     30    │   4.13MiB  153k https │ avc1.4d401e  153k video only          360p, mp4_dash
93  mp4   640x360     30    │ ~11.41MiB  421k m3u8  │ avc1.4d401e       mp4a.40.2
18  mp4   640x360     30  2 │ ≈ 7.64MiB  282k https │ avc1.42001E       mp4a.40.2       44k 360p
135 mp4   854x480     30    │   6.09MiB  225k https │ avc1.4d401f  225k video only          480p, mp4_dash
94  mp4   854x480     30    │ ~15.17MiB  561k m3u8  │ avc1.4d401f       mp4a.40.2
136 mp4   1280x720    30    │  11.09MiB  410k https │ avc1.4d401f  410k video only          720p, mp4_dash
95  mp4   1280x720    30    │ ~24.57MiB  908k m3u8  │ avc1.4d401f       mp4a.40.2
137 mp4   1920x1080   30    │  39.45MiB 1458k https │ avc1.640028 1458k video only          1080p, mp4_dash
96  mp4   1920x1080   30    │ ~73.64MiB 2721k m3u8  │ avc1.640028       mp4a.40.2

Как скачивать 720p (формат единым файлом/потоком):

$ yt-dlp -f 95 'https://youtu.be/eUyr9MJnj4w' --extractor-arg "youtube:player_client=mediaconnect" 

Как воспроизводить 720p (формат единым файлом/потоком):

$ mpv --ytdl-format=95 'https://youtu.be/eUyr9MJnj4w' --ytdl-raw-options=extractor-arg="youtube:player_client=mediaconnect" 


Кроме того:

  • Для mpv можно создать профиль [youtube] в mpv.conf, где прописать условие срабатывания на ютубных ссылках, типа profile-cond=path:match('youtu%.?be') ~= nil или profile-cond=path:find('youtu%.?be') (1).
    И добавив в профиль параметр ytdl-raw-options=extractor-arg="youtube:player_client=mediaconnect" и ytdl-format=95/best.
  • Для yt-dlp, чтобы при наборе команды в терминале мучительно долго не вспоминать указанную в начале заметки длиннющую опцию, можно создать алиас. В конфиге yt-dlp прописываем, как пример, --alias 95f '-f 95 --extractor-arg="youtube:player_client=mediaconnect"'. Теперь, чтобы скачать, пишем yt-dlp --95f 'https://youtu.be/eUyr9MJnj4w'.


Для чего все это надо?

  • минус издержки на склеивание dash-потоков видео и аудио средствами ffmpeg;
  • возможность отправлять ссылку на стандартный вывод (stdout) какого-либо плеера, например vlc;
  • плюс, оказывается, и для 1080p существует подобный формат единого файла.
  • лучшая отзывчивость при перемотке во внешнем плеере (возможно верно для всех hls и не зависит от таблицы форматов)

 ,

krasnh
()

Шлем виртуальной реальности для РФ?

Форум — Games

Судя по обзорам «Шлем виртуальной реальности Oculus Quest 3 128 GB» оптимальное решение для дома, детям.

Оффициальный cайт производителя Meta не доступен по причие Блокировка и запрет Meta в России Он же на ozon

Прошу совет в выборе удобной (без лишних трудостей) модели для РФ!

VPS (VPN) в Европе в наличии.

 ,

petav
()

Настройка Visual Studio Code для работы с LLama

Статьи — Разработка
Настройка Visual Studio Code для работы с LLama

В этой статье я расскажу как развернуть локальные аналог Chat-GPT и настроить VS Code для работы с ним.

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

 , , ,

rtxtxtrx
()

Есть кто завел zapret на уровне роутера?

Форум — Admin

Отпишитесь.

Я, вроде, завел, но весь трафик уходящий в него пропадает, а я не так хочу.

Нужен для просмотра ТыЛевизора на уровне всей домашней сети (телевизоры, телефоны), а не только с компов.

 ,

pihter
()

Postgres Professional обновила бесплатный курс по администрированию PostgreSQL 16

Новости — Open Source
Группа Open Source

Postgres Professional, ведущий российский СУБД-разработчик, выпустила обновленный курс по администрированию свободно распространяемой СУБД PostgreSQL. В программу добавлена информация про новейшие версии 14, 15, 16, а также:

  • Единым обзором заменены четыре темы раздела «Управление доступом», по которым в дальнейшем появится отдельный подробный курс;
  • Частично изменена структура: изложение стало более логичным и последовательным;
  • Физическая и логическая репликации теперь рассматриваются в отдельных темах.

Помимо этого, исправлены недочёты в изложении, ошибки в скриптах демонстраций и практических заданий.

DBA-1 – базовый курс для администраторов PostgreSQL, разработанный специалистами Postgres Professional. Материал доступен для самостоятельного изучения на сайте компании, а также в авторизованных учебных центрах.

>>> Подробности

 , ,

Postgres_Pro
()

Домашний кокпит A320

Галерея — Рабочие места

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

Оборудование:

  • i7-11700F / GTX1660S / 32 GB RAM
  • 2 iPad’а для приборов
  • Logitech Extreme 3D Pro
  • Logitech Pro Flight Throttle Quadrant (на фото не влез, у меня под правую руку)
  • SB Play 3 + уже не помню какая гарнитура Sennheiser

Софт:

  • Arch Linux
  • X-Plane 11 (самолёт ToLiss A319 + кастомные сценарии + плагины и т.д.)
  • IVAO Pilot Client
  • AntiMicroX (для Push-To-Talk)
  • x11vnc + RealVNC Viewer

P.S. в будущем планирую собирать полный кокпит A320 :)

>>> Просмотр (4032x2268, 2075 Kb)

 , , ,

thm
()

Ужель не вся ноутбучная память будет распаиваемой? Новый стандарт CAMM2

Форум — Linux-hardware

Сабж

Комитет по стандартизации полупроводниковой продукции JEDEC официально принял новый стандарт модулей оперативной памяти для ноутбуков, получивший название CAMM2. Принятие нового стандарта модулей ОЗУ организацией JEDEC означает, что он почти наверняка будет широко использоваться в будущих ноутбуках, постепенно заменяя старый формфактор SO-DIMM, который используется в лэптопах уже более двух десятилетий.

Стандарт памяти CAMM или Compression Attached Memory Module начался как проприетарная разработка компании Dell для её ноутбуков Precision 7670. Основным преимуществом CAMM над стандартными модулями SO-DIMM является их компактность и более высокая плотность памяти. По словам Dell, модули CAMM до 57 % тоньше, чем четыре планки памяти SO-DIMM, установленные в стандартные слоты. Кроме того, в формате CAMM можно создавать модули со скоростью выше 6400 МГц, что является ограничением для привычных модулей SO-DIMM.

Изначальная проприетарная природа формата CAMM делала его менее универсальным по сравнению с модулями SO-DIMM. В отличие от последних, которые выпускаются множеством производителей, Dell изначально планировала выпускать модули CAMM самостоятельно и предлагать их в качестве варианта для апгрейда. Этот вопрос удалось решить с принятием стандарта CAMM2 организацией JEDEC, которая занимается стандартизацией оперативной памяти.

Спецификации CAMM2 приняты в двух вариантах: один для памяти DDR5, другой — для энергоэффективной LPDDR5(X). Примечательно, что CAMM2 делает возможным использование LPDDR5(X) в виде съёмных модулей — пока что эту память можно встретить только в распаянном на материнские платы виде. В пресс-релизе JEDEC указано, что модули CAMM2 DDR5 предназначены для производительных ноутбуков и обычных настольных ПК. В свою очередь память CAMM2 LPDDR5/5X предназначена для более широкого спектра ноутбуков и определенных сегментов рынка серверов. Разъёмы для CAMM2 DDR5 и CAMM2 LPDDR5/5X отличаются друг от друга, поэтому планки памяти невзаимозаменяемые.

Ещё одно преимущество модулей CAMM2 над обычными SO-DIMM заключается в том, что для активации двухканального режима работы памяти CAMM2 не требуется наличие двух модулей ОЗУ. Один модуль CAMM2 может поддерживать два канала памяти, что обеспечивает большую пропускную способность памяти для CPU и встроенной графики для повышения производительности. Память SO-DIMM может поддерживает только один модуль памяти на канал. В то же время JEDEC отмечает, что также запланированы одноканальные модули памяти CAMM2. Модули CAMM2 могут выпускаться в объёмах до 128 Гбайт.

Весьма вероятно, что поначалу модули CAMM2 будут значительно дороже обычных планок SO-DIMM из-за новизны стандарта. А производителям устройств потребуется некоторое время чтобы полностью отказаться от использования привычных модулей SO-DIMM. Однако CAMM2 обладает всем необходимым потенциалом однажды стать полной заменой привычных модулей ОЗУ для ноутбуков и других мобильных устройств.

Лоханка стала больше, но тоньше. Главное, не купить с дуру одноканальную память.

 , , ,

tiinn
()

Эту историю мы назовем «почему я разлюбил QEMU...»

Форум — Talks

… или «как перестать бояться и разбить палаточный городок аккурат на минном поле».

В общем, ни для кого не секрет, что у нас тут семимильными шагами идет возврат от богомерзкого x86 к классической паре UNIX+RISC в ее современной реинкарнации: Linux+ARM. И так уже получилось, что на этот раз заход был не со стороны рабочих станций, а со всяких маломощных мобильников и малинок. Сбоку подают голос пользователи Apple Silicon, но их пока сравнительно мало.

Одновременно с этим, армов стало достаточно много, чтобы задуматься о том, как собирать под них софт. И если раньше для этого использовали кросс-компиляцию и всякие хаки, то сейчас у нас появилась прекрасная эмуляция вида qemu-arm-static с binfmt, исполняемые на x86. То есть, достаточно сделать чрут с армовой осью, а затем сказать ядру, чтобы для запуска бинарников с сигнатурой ARM он использовал qemu-arm-static - и вуаля, ваши армовые бинарники волшебным образом начинают работать на x86 машине, как родные.

Круто? Круто. Можно зачрутиться в систему, позапускать в ней всякие pacman и dpkg, чтобы получить корень, в котором затем выполнять сборку пакетов с помощью обычных makepkg, debuild и других дистротулов. Здорово? Здорово. И наплевать, что это медленнее кросс-сборок, потому что в разы проще и не требует от всего софта поддерживать префиксы для фейкового корня. А еще можно нативно повыполнять какие-то команды внутри чрута, чтобы получить корень, который затем можно скопировать на карту памяти вашего армового эмбеда.

Сейчас у нас есть как минимум два широко рапространенных инструмента для сборки чего-либо в эмуляции:

  • docker-buildx. Это такой docker-build на стероидах, который в том числе поддерживает сборку докер-образов для ARM (и других архитектур) на x86. Как? С помощью QEMU и binfmt, разумеется.
  • pi-gen с опцией USE_QEMU=1. Это официальная тулза для сборки образов Raspberry Pi. Суть почти та же: команды выполняются в чруте, чтобы получить образ для карты памяти.

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

В обоих случаях QEMU играет ключевую роль. И всё бы было хорошо, но он иногда падает. Либо сегфолтится, либо вылетает в какой-нибудь ассерт - разницы нет, суть в том, что эмуляция прерывается. Увы, но мой опыт активного использования qemu-arm-static показывает, что баги в нем хотя и фиксятся, но имеют свойство либо возвращаться с очередным мажорным релизом, либо что-то в ранее работающих воркфлоу может сломаться в новом неожиданном месте. Я не большой спец по QEMU, но таки делал репорты. Что-то исправлено, а что-то открыто до сих пор. Что хуже - поведение QEMU часто зависит от настроек хостовой ОС, и то, что вылетает на арче, не будет вылетать на дебиане.

«Не обновляй QEMU» - скажете вы. Да, но при очередном обновлении glibc в чруте, QEMU тоже может перестать работать из-за какого-нибудь нереализованного системного вызова, или редкого сочетания багов в glibc/QEMU. Поэтому можно угодить в ситуацию, когда старый QEMU уже не работает, а новый - еще не работает в вашем окружении.

Теперь, когда мы выяснили, что QEMU сам по себе не очень надежен, можно подумать - дескать, хрен бы с ним, ну падает и падает. В конце концов, безглючного софта не существует, и если QEMU упадет, то процесс просто прекратится, не так ли?

А вот нет.

Берем типичный сценарий современного использования QEMU - docker-buildx. В докерфайле у нас есть несколько команд RUN, которые выполняют всякие установки пакетов и прочие операции. А что происходит при установке пакетов, помимо распаковки и размещения файлов? Правильно, запускаются всякие хуки на баше. Спаунится пакетный менеджер, из него спаунится баш для скрипта, а из скрипта поочередно спаунятся команды. Коды возврата которых, разумеется, никто не проверяет. Ведь вряд ли у вас из под руда упадет какой-нибудь ls /, верно? Или, скажем, греп.

Но с QEMU они падают.

Вот что вы можете увидеть в эмуляции, пытаясь поставить пакет:

:: Proceed with installation? [Y/n]
:: Retrieving packages...
 openssl-3.1.4-1-aarch64 downloading...
 openssl-1.1-1.1.1.w-1-aarch64 downloading...
checking keyring...
checking package integrity...
loading package files...
checking for file conflicts...
:: Processing package changes...
upgrading openssl...
installing openssl-1.1...
error: command terminated by signal 11: Segmentation fault
:: Running post-transaction hooks...
(1/1) Arming ConditionNeedsUpdate...

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

Внутри пост-инсталл хука происходит сегфолт, но поскольку почти никто не ставит в скриптах set -e и не проверяет код возврата тривиальных (ха-ха) операций, установленный пакет будет находиться в неопределенном состоянии. И сборка будет продолжаться, потому что код возврата всего скрипта был нулевой! Пакет вроде поставлен, но корректно ли?

Эта проблема касается не только pacman и dpkg, но и вообще любых шелл-скриптов. Кто вообще может гарантировать, что во всех этих килопарсеках портянок, запускающихся в эмуляции, не будет вот таких непредсказуемых сбоев, на которые никто и никогда не делал тесткейс, потому что они, по мнению авторов скриптов, не могут сбойнуть?

Самое страшное тут то, что docker-buildx и сборки образов через QEMU сейчас получили повальное распространение из-за своей простоты. Вокруг нас может быть уже полно устройств с ОС, поломанными еще на этапе сборки. К чему это может привести - время покажет. Как минимум - к сложно детектируемым ошибкам у конечного пользователя.

Ну и самый интересный вопрос: хто виноват?

  • Ну, в меньшей степени виноват QEMU. Это отличная утилита, которая просто делает свою работу. Она не виновата в том, что ее начали использовать в настолько комплексных окружениях. В некоторых ситуациях она сегфолтится, в других - сознательно падает с какой-то диагностикой. Это лучшее поведение, какое только можно придумать в этом случае.
  • docker-buildx? На своем уровне он тоже делает, что может.
  • Баш-портянки? Пожалуй, они. Точнее, общая низкая культура их кода. Коды возврата не проверяются, фейлы пайпов не проверяются. Кушаем, как есть.
  • А может, виноваты диды? В своей бесконечной мудрости отцы UNIX сделали шелл, который ведет себя как сишечка: когда ты хочешь выстрелить себе в ногу, тебе услужливо подают патрон и усаживают в кресло. Ничто не мешало сделать неявную проверку кода возврата и выход из скрипта с ошибкой, и требовать явно эту ошибку игнорить при необходимости. Они предполагали, что этим будут пользоваться люди, которые знают, что делают, но теперь, спустя сорок лет, мы имеем в скриптах повальный чад кутежа.

А шо делать-то?

А ничего. Исправить все скрипты в мире не представляется возможным. Слепая установка set -e или ее аналоги на более низком уровне может привести к другим проблемам. Остаются два пути:

  • Использовать чистые кросс-сборки без эмуляции, как делали другие мудрые диды (мое почтение NetBSD c их тулчейном).
  • Использовать сорта чрутов (включая докер), но на реальном железе, а при нехватке производительности - подключать distcc.

В обоих случаях теряется удобство связки docker+QEMU, но за это удобство мы платим прямо сейчас щелчком взрывателя под жопой.

 , ,

liksys
()

Корпус для Raspberry Pi 4

Галерея — Рабочие места

Наконец то строительный сезон закончен, техника эвакуирована и расфасована и можно заняться всякой ерундой. Например наконец то упаковать Пи4 в корпус, более компактный и мобильный чем посудная полка с Пи3.

Итак:

  • 4 гига, 4 ядра, 64 бита, распбиан 11.
  • Дисплей onyx Mira, e-ink, 2200x1650 (но из-за рамок, наползающих на рабочую область экрана и странной геометрии пикселей лучше использовать 1280х960. Если повезёт — заставлю его работать в масштабе ровно 50%), 38Гц. Короче факинг эту вашу плавность и 100% sRGB.
  • Второй порт свободен и ждёт монитора из ремонта.
  • Диски: 64Гб карта kingston повышенной скорости и ssd 120Гб, 5 лет отработавший свопом на Пи3. Что странно, даже при ехт4 на карте памяти и без тюнинга нет признаков бага 12309 (в отличиt от тройки).
  • 4 порта юсб3 с аппаратными выключателями. Но без выделенной линии питания это плохо.
  • Звук — noname-колонки, которые после пилы и саморезов начинают дребезжать на половине мощности.
  • Полноразмерная клавиатура.
  • Полноразмерная мышка.
  • БП 5В*5А
  • Батарея 27,6 Втч с вольтметром и портом для подключения всего что под руку подвернётся из диапазона 11...14,5В. Ожидаемое время автономной работы 2 часа.
  • Ручка для переноски и колёсики не планируются.

>>> Просмотр (3389x2634, 3587 Kb)

 ,

kirill_rrr
()

Система управления ssh-ключами

Форум — General

Привет, ЛОР!

Ищу софт под линукс в духе KeepassX или Bitwarden, только для управления приватными SSH ключами. Что хочу:

  • Хранение приватных и публичных ключей;
  • Доступ к хранилищу как минимум по паролю, в идеале с возможностью использовать другие факторы;
  • Возможность синхронизации между девайсами;
  • Работа ssh-агентом;
  • Полный опенсорс, включая серверную часть (при её наличии).

То есть, хочу Bitwarden, только для SSH. Скажи, ЛОР, есть чо? А то я задолбался добавлять ключи от каждого девайса в десяток разных аккаунтов.

 , ,

hateyoufeel
()

HyperDX: альтернатива Datadog и New Relic

Новости — Open Source
Группа Open Source

13 сентября на Github опубликован HyperDX — инструмент мониторинга и отладки, который позволяет сопоставлять журналы, трассировки и сеансы пользователей в одном месте. Исходный код доступен и распространяется под лицензией MIT.

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

>>> Подробности

 , ,

evgeny_aa
()

Осваиваем STM32 снизу: часть 1 - подключаем и исследуем плату

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

Часть 1 Часть 2 Часть 3 Часть 4 Часть 5 Часть 6 Часть 7 Часть 8 Часть 9

Все файлы можно взять тут.

В данной серии статей мы попробуем поработать с процессором STM32 с помощью GNU утилит, немного познакомимся с ассемблером и отладкой.

Примеры написаны для популярной платы blue pill, построенной на микроконтроллере STM32F103C8T6.

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

 ,

vbr
()

Взять всё, да и поделить...

Форум — Talks

Источник (одинаковые тексты):
https://openela.org/news/hello_world/
https://www.oracle.com/news/announcement/ciq-oracle-and-suse-create-open-enterprise-linux-association-for-a-collaborative-and-open-future-2023-08-10/
https://www.suse.com/news/OpenELA-for-a-Collaborative-and-Open-Future/

Oracle и SUSE объявили о намерении создать Open Enterprise Linux Association (OpenELA).

Короче, эта контора будет создана в ответ на известные события. Если кто пропустил, то здесь обсуждали:
Mike McGrath -- реакция на восстание клонов

Эти двое начали крошить батон на Шапку, вот здесь обсуждали:
Oracle встаёт на сторону бобра!
Хамелеон разевает беззубую пасть

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

Обещают уже в этом году начать выкладывать исходный код для версий 8 и 9, а может быть даже и 7. В каком виде это будет пока не ясно. Насколько это будет совместимо с RHEL тоже не понятно.

Они обещают, что создатели совместимых с RHEL дистрибутивов снова будут иметь всё необходимое без каки-либо ограничений.

Что сказать?! Шоу продолжается, не отходите от синих экранов.

Кстати, Альма пока идёт своей дорогой, обсуждали здесь:
Лечение током даёт первые результаты

 , ,

papin-aziat
()

Elder Kings 1 на Crusader Kings 2

Галерея — Скриншоты

Решил поиграть после долгого перерыва в Elder Kings(полная конверсия в мир Elder Scrolls) для игры Crusader Kings 2, чтобы поискать баги которые я пропустил. Пока из багов я заметил только что не работает нормально даэдрическое вторжение Джиггалага и криво реализованные гильдии на Атморе.

>>> Просмотр (1920x1080, 2219 Kb)

 ,

vbcnthfkmnth123
()

Треш и угар продолжается: виртуализация в OpenBSD

Галерея — Скриншоты

Продолжаю хорошую традицию охоты за дичью.

В этот раз в качестве дичи выступает гипервизор VMM в OpenBSD. Да, и в наш загончик наконец завезли аппаратную виртуализацию.

На скриншоте работающий Skypе запущенный в Ubuntu 22, которая крутится на OpenBSD-хосте. Отрисовка интерфейса организована через проброс X-сессии.

Традиционная статья с новыми приключениями неуловимых тут.

Там еще скриншоты и рассказано про запуск более банального Chromium.

Сама VMM стабильна как кирпич и спокойно переживает suspend/resume на ноутбуке где весь этот цирк и развернут.

>>> Просмотр (1600x900, 427 Kb)

 , , ,

alex0x08
()

Одноплатники для бомжей!

Форум — Talks

В этой теме предлагаю обсуждать один из лучших одноплатников для бомжей - Orange Pi 3G IoT. За тыщу рублей дают двухядерный медиатек, 256мб ОЗУ, 512мб NAND, Mali-400 и GPS/3G/Wi-Fi. По сути, взяли рефборду бюджетного смартфона 2013-2014 года и вывели гребенку GPIO. Из коробки Android, Debian, Ubuntu.

Производителю давно пофиг на плату, поэтому там не то что i2c/spi в линухе нет, там даже гпио через жопу работает. Мне удалось завести там UART, I2C, нормальный GPIO через ioctl.

Плюсы: Годные характеристики за такой прайс, GPU.

Минусы: MIPI на дисплей. Причем под проприетарный 24-пин шлейф. Продают конечно же за оверпрайс. Однако с брейкаут-платой, можно развести дисплей от какого-нибудь смартфона тех же лет и подменить драйвер дисплея. Шлейфы у них по количеству и размеру пинов похожи. Причем эти говноеды решили именно мипи воткнуть, когда медиатеки держат как 8080 дисплеи, так и TTL RGB иатрицы :( А ещё нет GSM-стека под линухом.

Первая статья: https://habr.com/ru/companies/vstack/articles/749254/ Вторая выйдет на некст неделе (там допиливаем гпио, i2c и пересобираем ядро).

 , ,

monobogdan1337
()

Временное рабочее (и не только) место

Галерея — Рабочие места

Корпус системного блока - MasterBOX NR200P от CoolerMaster в т.н. SFF (small form factor) исполнении. Габариты корпуса 376x185x292 мм. Вес около 8 кг в собранном виде без упаковки. Системник довольно удобен в транспортировке: помещается в сумку для тренировок, без вопросов проходит в ручной клади при перелетах.

Немного про начинку данного товарища:

Начну с главного компонента любого компьютера - блока питания. БП Seasonic Focus SGX на 650W с 80+ Gold сертификатом, модульный, форм-фактор SFX-L.

Материнская плата на B450 чипсете от Gigabyte, модель «I AORUS PRO WIFI». При выборе системной платы одним из критериев было наличие звукового чипа Realtek 1220 и поддержка WIFI5+BT не ниже версии 5.0. В итоге мать оказалась с довольно хреновым WIFI+BT чипом Intel AC9260, который был заменен на интеловский AX210.

Процессор Ryzen 5 5600X + башня be quiet! Pure Rock 2 c 4-мя тепловыми трубками.

Оперативная память Kingston KVR 2x32GB 3200Mhz.

Видеокарта MSI Ventus RTX 3060 12GB.

NVMe накопитель Samsung 970 EVO Plus 2TB произведенный 03.2023 со свежей прошивкой и контроллером Elpis (вместо Phoenix), который используется в старшей модели 980PRO.

«Перелётно-походный» монитор IIYAMA ProLite XUB2292HS-B1 (FHD, IPS, Flicker-free + Blue light reducer) с регулировкой по высоте/наклону/повороту.

Дешёвый графический планшет XP-Pen. Механическая клавиатура Ducky One 2 TKL. Мышь Smartbuy 334K. Микрофон HyperX SoloCast + вебка Logitech c270 для общения с коллегами и родственниками в Discord/Skype/Slack/Telegram. Игровой контроллер Xbox для покатушек и побегушек во всяких RDR2, DIRT Rally, GTA и прочих киберпанках. Беспроводные наушники Edifier W800BT Plus. Вроде всё.

P.S. Снято на кроссовок.
P.P.S. Внутренности человека машинки https://imgur.com/7QDZrSs

>>> Просмотр (1920x1086, 2978 Kb)

 ,

basilic
()

наткнулся на сбойные сектора на очередном nvme ssd

Форум — Linux-hardware

Уважаемый ЛОР,

Я словил очередное проявление сбойных секторов на SSD. Пациент — Samsung SSD 980 PRO 2TB с прошивкой 3B2QGXA7, в эксплуатации примерно год. Что интересно, с предыдущим накопителем проблемы обнаружились тоже примерно через год после начала эксплуатации.

Думал, что это просто старый накопитель был сбойный, поэтому даже не помню, пробовал ли делать полное чтение на новом с момента переезда. Но вот недавно мне понадобилось сбросить данные с раздела с Windows, и оно опять:

critical medium error, dev nvme0n1, sector 3854183392 op 0x0:(READ) flags 0x80700 phys_seg 32 prio class 2

В этот раз плохие сектора оказались намертво плохими. Попытки чтения из них не давали ничего.

Вот текущие параметры SMART, если интересно:

=== START OF SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

SMART/Health Information (NVMe Log 0x02)
Critical Warning:                   0x00
Temperature:                        34 Celsius
Available Spare:                    79%
Available Spare Threshold:          10%
Percentage Used:                    3%
Data Units Read:                    267 208 610 [136 TB]
Data Units Written:                 115 214 434 [58,9 TB]
Host Read Commands:                 1 770 760 875
Host Write Commands:                880 382 061
Controller Busy Time:               8 163
Power Cycles:                       452
Power On Hours:                     2 220
Unsafe Shutdowns:                   30
Media and Data Integrity Errors:    32 243
Error Information Log Entries:      32 243
Warning  Comp. Temperature Time:    21
Critical Comp. Temperature Time:    0
Temperature Sensor 1:               34 Celsius
Temperature Sensor 2:               35 Celsius
Thermal Temp. 1 Transition Count:   37
Thermal Temp. 2 Transition Count:   17
Thermal Temp. 1 Total Time:         570
Thermal Temp. 2 Total Time:         1815

Удалось отследить, что было задето. Это был старый LVM том со swap, который ни разу со дня миграции не использовался. И это были файлы игр из Steam, которые я в последний год не запускал, судя по датам в Steam’е. То есть симптомы те же — сбоят места, которые очень давно даже не читались. И я даже не знаю, попали ли мне плохие экземпляры, или это вообще общая проблема. У текущего экземпляра ещё и «Available Spare» за пару дней упал с 92% до 79%.


Upd. Оказывается, известная проблема: https://www.tomshardware.com/news/samsung-980-pro-ssd-failures-firmware-update.


Upd. 2023-02-15. Обновил прошивку до актуальной версии, 5B2QGXA7. На всякий случай сделал trim вообще по всему объёму, хотя ещё до этого выяснил, в каких именно файлах были проблемы и потримил занимаемое ими место. Пока что весь объём читается нормально.


Upd. После обновления прошивки операция TRIM стала заметно дольше выполняться. По ощущениям раз в 10 дольше.


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

 , , , ,

i-rinat
()

LibreTrack. Облегчённые пособия по вычислительной свободе

Новости — Open Source
Группа Open Source

В рамках проекта LibreTrack вышли практические облегченные пособия по вычислительной свободе на компьютере и мобильных устройствах.

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

>>> LibreTrack на Youtube

 libretrack

zx_gamer
()