My first contribution to Linux 🔥 Горячее
Разработчик-энтузиаст, изучая исходники Linux, заметил, что старый ноутбук Fujitsu Lifebook S2110 2005 года неправильно обрабатывает нажатие специальных клавиш «Application» и «Player». Он выяснил, что в режиме «Player» клавиши вообще не генерируют события, а в режиме «Application» они работают, но не так, как ожидается. Вместо этого в журнале ядра появляются сообщения об ошибках ACPI. Он подготовил и отправил на рассмотрение патч, который корректно обрабатывает эти клавиши в обоих режимах, и теперь ждет его включения в основную ветвь Linux.
Комментарии (76)
- Участники обсуждали, как начать вклад в ядро Linux: находить задачи по метке «good first issue», писать патч, проходить ревью и попадать в историю коммитов.
- Подчеркивалось, что даже микро-фикс требует тщательной проверки, но именно такие шаги и делают open-source сообщество устойчивым.
- Несколько человек поделились историями о своих первых коммитах в ядро, включая односимвольное исправление макроса, которое потребовало двух недель перепроверок.
- Участники обменялись советами о том, как начать, если ты не знаешь с чего начать: начни с документации, тестов или мелких улучшений.
- Замечено, что даже если патч кажется мелким, он может быть критически важным для конкретного оборудования, и что такие патчи могут быть применены к старому железу.
- Поднята тема о том, что вклад в ядро Linux может быть полезен при приеме на работу, и что такой опыт ценится.
Kernel: Introduce Multikernel Architecture Support
Предложена архитектура мультиядра, позволяющая запускать несколько независимых экземпляров ядра Linux на одной физической машине с выделенными CPU-ядрами и общими аппаратными ресурсами. Это обеспечивает улучшенную изоляцию сбоев, повышенную безопасность и более эффективное использование ресурсов по сравнению с традиционными виртуальными машинами.
Ключевые компоненты включают расширенную подсистему kexec для загрузки образов, фреймворк межъядерного обмена сообщениями через IPI и механизмы инициализации CPU для x86. Реализация сохраняет обратную совместимость и добавляет интерфейс /proc/multikernel для мониторинга. Пока это черновая версия, требующая тестирования и доработки, но открывающая возможности для zero-down обновлений ядра и новых сценариев изоляции workload'ов.
Комментарии (49)
- Обсуждаются технические сложности совместного использования аппаратных ресурсов несколькими ядрами, включая управление состоянием драйверов, DMA и аппаратными синглтонами (PCI, ACPI).
- Проводятся параллели с существующими архитектурами и проектами: exokernel, Barrelfish OS, OpenVMS Galaxy, CoLinux, Kerrighed и LPAR на мейнфреймах IBM.
- Поднимаются вопросы безопасности: потенциальные уязвимости при совместном доступе к памяти через DMA, отсутствие изоляции между доверенными ядрами и ограниченный периметр атаки при компрометации одного ядра.
- Отмечаются потенциальные преимущества: улучшенная изоляция сбоев (устойчивость к паникам ядра), высокая производительность без накладных расходов виртуализации и возможность запуска разнородных ОС (Linux и BSD).
- Упоминается коммерческий контекст: автор работает над этим в рамках стартапа multikernel.io, что вселяет надежду на понимание производственных сложностей.
I uncovered an ACPI bug in my Dell Inspiron 5567. It was plaguing me for 8 years
Владелец Dell Inspiron 5567 восемь лет сталкивался со случайными перезагрузками вместо перехода в спящий режим S3. Проблема проявлялась во всех ОС — от Windows до Linux — что указывало на ошибку в прошивке, а не в программном обеспечении.
Изучив декомпилированные ACPI-таблицы через acpidump и iasl, он обнаружил проблему в методе _PTS, который координирует подготовку к сну. Вместо стандартного поведения метод SPTS для южного моста принудительно устанавливал регистр AES3 в единицу для S3-сна, что нарушало ожидаемую последовательность и вызывало сброс системы. Исправление через модификацию DSDT или обновление прошивки устранило проблему, подтвердив, что даже давние аппаратные ошибки можно исправить анализом низкоуровневого кода.
Комментарии (16)
- Проблемы с оборудованием часто исправляются программными костылями из-за экономии производителей, особенно после выхода новых моделей.
- Многие пользователи сталкиваются с ошибками ACPI в Linux (сон, перезагрузка, чтение батареи), требующими ручных правок или патчей ядра.
- Производители редко рассматривают качество ПО как конкурентное преимущество, предпочитая закрытый код, хотя проблемы универсальны для чипсетов.
- Сообщество вынуждено самостоятельно документировать и исправлять баги через патчи DSDT/initrd, иногда спустя годы.
- Новые версии ядра Linux постепенно включают исправления под конкретные модели, улучшая совместимость.
The Asus gaming laptop ACPI firmware bug 🔥 Горячее 💬 Длинная дискуссия
Глубокий анализ проблем задержек DPC в ACPI.sys на ноутбуках Asus ROG.
Комментарии (166)
- Обнаружена критическая ошибка в ACPI-коде ASUS, вызывающая задержки до 30 мс в игровых ноутбуках, связанная с вызовом Sleep() внутри обработчика прерываний.
- Проблема сохраняется четыре года, затрагивает множество моделей и не фиксируется производителем, несмотря на наличие диагностических инструментов.
- Пользователи и эксперты критикуют отсутствие должного тестирования и низкое качество прошивок, особенно в сегменте игровых ноутбуков с гибридной графикой.
- Отмечается негативное влияние на пользовательский опыт: лаги, проблемы с аудио, thermal throttling, при этом возвраты по гарантии редки из-за сложности диагностики.
- Подчёркивается сложность обратной инженерии и исправления ACPI-кода, а также отсутствие эквивалентных инструментов для диагностики на Linux.
- Высказывается разочарование в бренде ASUS и игровых ноутбуках в целом, некоторые пользователи рекомендуют переходить на Mac или системы с интегрированной графикой.
- Обсуждается системная проблема индустрии: приоритет маркетинга над качеством инженерии и привыкание пользователей к неидеальной работе устройств.
Tips for installing Windows 98 in QEMU/UTM
Советы по установке Windows 98 в QEMU/UTM
-
ACPI вместо PnP BIOS
SeaBIOS ломает PnP-перечисление. Запускай установку с флагомsetup /p j– Windows 98 SE сам перейдёт на ACPI и все устройства определятся корректно. -
Система
Выбирай машинуpc-i440fx, Q35 не нужен. CPU «pentium2» – оптимально для 9x/NT4. -
Ввод
Отключи USB-контроллер, иначе зависает. Мышь/клавиатура только PS/2; курсор захватывается, но на iPad с внешней клавой не критично. -
Видео
-vga cirrus– единственный ускоренный вариант с родными драйверами. Есть баги 16/8-бит, но терпимо. Rage 128 пока сыра. -
Сеть и файлы
SLiRP-NAT + PCI-NE2000/PCNet/DC2114x = доступ в интернет и SMB-шары без танцев. ISA-NE2000 (300h, IRQ9) – только если очень надо. -
Звук
- SB16: PCM работает, MIDI нет.
SET BLASTER=A220 I5 D1 H5 P330 T5 - AdLib (OPL2) можно добавить отдельно.
- SB16: PCM работает, MIDI нет.
Комментарии (25)
- Пользователи делятся опытом запуска Windows 95/98 в эмуляторах: QEMU, VirtualBox, DOSBox, PCem, x86box, UTM.
- Проблемы: нет sb16 в virt-manager, AC97 работает нестабильно, Win9x в DOSBox «часто ломается», требуются драйверы для тач-ввода.
- Для MIDI достаточно встроенного Microsoft GS Wavetable Synth, но DOS-игры, требующие SB16-MIDI, всё равно могут не заработать.
- PCem/x86box дают высокую точность эмуляции старого «железа», но медленнее; QEMU ориентирован на современные ОС.
- Win98 не умеет останавливать CPU (нет HLT), поэтому в эмуляторе грузит хост на 100 %.