Специалисты компании Sophos рассказали, что неизвестный пользователь под ником R.F. Burns уже 15 лет почти каждый год в июне, но в разные дни, просит разработчиков в списке рассылки ядра Linux (Linux Kernel Mailing List, LKML) сделать драйвер для Linux, который сумел бы вывести из строя штатный спикер ПК, буквально взорвав его. Как это сделать, автор не поясняет.
Это уже стало традицией, а часть команды ментейнеров Linux ждет каждый год нового запроса от R.F. Burns с адреса burnsrf(@)gmail.com. Причем, этот ник также имеет какой-то скрытый смысл, но пока его никто не обнаружил среди исследователей, как и непонятна сама цель запроса.
В этом году неизвестный пользователь опять попросил создать «взрывной» код на Linux.
Примеры запросов от R.F. Burns. от 2007 года и от 2020 года.
ИБ-исследователь Тэвис Орманди (Tavis Ormandy) из Google в шутку считает, что этот запрос отправляет призрак, застрявший в динамике старого ПК или ноутбука с Linux, в поисках помощи и своего освобождения.
Разработчики из сообщества Linux выяснили, что таких запросов от R.F. Burns было с 2007 года всего 10 штук, причем на часть из них были даны достаточно развернутые ответы. Судя по продолжению запросов, ни один ответ по какой то непонятной причине не удовлетворил R.F. Burns.
Александр Наталенко (Oleksandr Natalenko) из RedHat попытался выяснить у R.F. Burns причины его запроса и его тайну, выяснить не робот ли это шлет. Наталенко также хотел узнать, почему вопрос про спикер не был прислан с 2011 по 2015 годы, а также в 2008 году он был прислан в июле. Разработчик попросил автора раскрыть эту великую тайну LKML. Все вопросы остались без ответа от R.F. Burns.
Специалисты Sophos пояснили, что сейчас вопрос про спикер особо не актуален для новых ноутбуков. В них уже давно используются обычные динамики, подключенные к звуковой плате, а не олдскульный 5-ти вольтовый спикер, которым можно управлять (включать и выключать) через неиспользуемый бит в контроллере клавиатуры (бит 1 порта 0x61).
Помимо непосредственного управления динамиком с помощью побитового сигнала, некоторые энтузиасты припаивали провод питания динамика к программируемому интервальному таймеру (Programmable Interval Timer, PIT) и получали возможность имитировать на спикере 6-битные (64 различных уровня звука) или даже 8-битные (256 различных уровней звука) мелодии и немного странную, но понятную человеческую речь. Но для этого нужно внести изменения в текущую схему подключения, а в запросе неизвестного пользователя уже 10 раз звучит просьба о программном решении.
Одним из самых первых ответов на запрос R.F. Burns, заключался в том, что теоретически есть возможность разрушения спикера, если реализовать программно с помощью долговременного сценария путем подбора ряда факторов вывод этого устройства воспроизведения на резонансную частоту. Через некоторое время спикер начал бы звучать по-другому или даже сломался, но не взорвался. Вероятно, это не то, что нужно R.F. Burns.
Пример использования спикера для прослушивания разных мелодий на старом ноутбуке.
stalinets
А я уже много лет мечтаю о драйвере для винды, который позволит выводить через спикер все звуки в системе вместо динамиков) Такое ведь было во время DOS и Win9x. Мне даже поясняли, почему это нереально сегодня сделать, но всё же было бы прикольно позапускать фильмы, старые игры, некоторую музыку, чтобы она звучала с хрипами и искажениями из спикера.
DEamON_M
Помню наоборот ставили драйвер, чтобы звуки модема при коннекте НЕ шли из спикера, так как там громкость не регулировалась и прямо в ночи такие истошные звуки соединения с адом доносились из него
funnycar
Я в то отверстие спикера вворачивал болтик подходящего диаметра и поджимал мембрану до состояния когда звук почти исчезал.
intelfx
Живодёр! :)
aamonster
А не проще было выключение спикера сделать? Традиционное решение было подключить его через кнопку Turbo, благо, для этого ничего паять не требовалось, просто подсоединялись проводки нужным образом.
funnycar
Зато тут была хардварная регулировка громкости. На самом деле, болт - первое что пришло в голову, а потом уже просто лень было переделывать.
Arcanum7
Вы сейчас предка переменного резистора описали.
drWhy
А вход «Турбо» материнки подключить к тому самому аппаратному таймеру, к которому умельцы подключали спикер. И в результате найти аппаратную уязвимость 386/486 процессоров, не все же они достались современным.
Black_Spirit
А я закладывал в него немного ваты, потом тонкую резинку и заматывал скотчем.
c_kotik
Душил подушкой во время подключения)
Arcanum7
Тумблер в разрыв, не? Или переменный резистор.
ICELedyanoj
Я почти такую операцию провёл с десятком детских игрушек. Среди разработчиков интерактивных игрушек почему-то принято (даже при наличии штатных кнопок настройки громкости) включать игрушку сразу на максимальной громкости.
Разбирал и впаивал резисторы.
PowerMetall
У меня сейчас есть одна китайская материнская плата, там адовый и мерзкий звук спикера при запуске, после того как пост-коды все пробегут (кто слышал — той поймет)
Так я просто жвачкой заклеил ))
vorphalack
так у модема свой динамик, или речь про софтмодемы, которые выводили через звуковую?
Aleksazhko
Эммм… Софт-модем так назывался ввиду того, что из мозгов у него было примерно нифига и вся его высшая нервная деятельность вытворялась драйвером. ЕМНИП, у таких модемов под никсы и дров-то не было. Хардверные же модемы всё управление потоком данных и сессией разруливали сами, не озадачивая ЦПУ лишним геморроем.
А динамики модемы имели все.
vorphalack
драйверы были. собственно, у меня вопрос-удивление о том, каким местом pc speaker связан с модемом — в каком-нить ноуте вполне себе модем могли и на системные пищалки сунуть, а всё остальное и правда со своей собственной бесилкой шло.
Aleksazhko
да никак и не связан, собственно. Я же реагировал на тезис
Кстати, софт-модемы не все имели возможность работать с красноглазым пользователем как раз ввиду отсутствия дров, потому их и называли вин-модемами.
Вспомнился старый анекдот: Вин-админ — это как вин-модем, только вин-админ.
vorphalack
их и при наличии дров так называли, как и GDI-принтеры.
а анекдот грустный, и до сих пор актуальный.
HardWrMan
В микшере звуковой карты может присутствовать регулировка PC Speaker и/или TAD/Modem.
HardWrMan
Зачем драйвер, если есть AT команда, которую просто надо было вписать в инит строку в свойствах модема?
roswell
ATM0
же.vorphalack
разные варианты были, у нормальных модемов типа IDC можно было и громкость на минимум убрать и вдобавок сделать так, что он ретрейны подзвучивать будет — всё же телефонные линии в россии отличались тем, что обрыв/бизю ДАЖЕ специально адаптированные модемы далеко не всегда видели.
Stanislavvv
Э… В строке инициализации добавить после AT символы M0 недостаточно было???
moon_prism_power
Мне даже стало интересно почему нельзя.. Прямо в статье пишут, что можно выводить до 256 различных тонов. Разве нельзя просто на программном уровне "перенаправить"?
qw1
Пишут, если припаять спикер к таймеру.
А так, можно выводить довольно произвольные звуки в неплохом качестве (это делали DOS-программы), одна проблема — CPU будет почти полностью занят, нет аппаратного ускорения под спикер.
AKudinov
Пишут не совсем правду. В IBM PC «Пищалка» уже припаяна к выходу таймера, так что ничего делать не нужно, загружаем в таймер делитель, разрешаем работу, и наслаждаемся звуком меандра. Поскольку меандр генерируется аппаратно, пищалка продолжает пищать, даже если сама программа намертво зависла.
aamonster
Пищать – да, а вот выводить какой-то более сложный звук – нет. Для этого надо постоянно параметры таймера менять (емнип там обычно использовалось два таймера: один дёргал прерывание, по которому меняли длину второго, подключенного к спикеру).
AKudinov
Да, всё так и
естьбыло. Но эти операции не затратные, и ЦП, как тут пишут, не нагружают почти никак.qw1
Чтобы выводить качественный звук ШИМ-ом или ещё как-то, нужно менять параметры спикера с частотой 256khz-1mhz. 1bit/1mhz интерполируется в нормальные 16bit/44khz.
DistortNeo
Именно так. Причём здесь важна не только частота, но и точность интервалов. Тут никакие средства операционной системы здесь не помогут — они слишком грубые, только busy wait с приоритетом реального времени. Во времена одноядерных процессоров это означало, что ничего, кроме как воспроизводить звук, система делать не могла.
Небольшой экскурс: PC Speaker может управляться как программируемым таймером, так и напрямую через выставление 0 или 1. Соответственно, весь вопрос — как эти 0 и 1 отправлять в нужные моменты времени.
Способ 1: поднять частоту системного таймера (INT 8) и посылать 0 или 1 в обработчике прерываний. Но вызов прерываний — это довольно дорого.
Способ 2: просто крутить холостой цикл для обеспечения задержки. Минус: надо ещё учесть время, которое процессор потратил на полезную работу.
Способ 3: программируемый таймер имеет обратную связь. Можно поднять ему частоту и постоянно опрашивать его состояние. Плюс: это точнее, чем способ 2. Минус: может криво работать и пропускать циклы.
Способ 4: RDTSC. На старых процессорах недоступен.
И да, во всех случаях это возможно только в реальном режиме (или в ring 0).
drWhy
Было несколько вариантов разрешения работы с портами в ring 3, к примеру, giveio.
DistortNeo
Конечно, такие способы есть.
https://habr.com/ru/post/527006/
https://habr.com/ru/post/429198/
Но это всё костыли и дыра в безопасности.
DistortNeo
В этом случае вы получаете ограниченный вариант: монофонический звук.
drWhy
Первые звуковые карты и были монофонические. В 1996 году набор «сделай сам» из платы и деталей, представлявший собой клон не слишком широко разошедшейся карты, стоил 15$, столько же стоила мультяшка — плата портов com/lpt.
И довольно популярный благодаря простоте и дешевизне Covox был преимущественно монофоническим.
Buzzzzer
Да. Помню выводил через спикер всякую "музыку" с хрипами, т.к. звуковая карта а те времена была роскошью. Под dos резидентник писал на какое то прерывание, не помню уже.
Причем при выводе звука всё остальное дико тормозило. Под 95 винду даже драйвер был, который все звуки на спикер посылал и всё висло напрочь
achekalin
К win 3x такой драйвер был, и очень выручал.
Fly3110
Как правильно написали выше, CPU в это время был полностью занят и запуск проигрывания длинного звукового файла без вариантов заставлял дослушать его до конца :)
mSnus
Да ладно! MOD-файлы отлично игрались на PC Speaker, и можно было даже на лету переключать каналы:
https://www.youtube.com/watch?v=Biyjb4pa8zE&t=28s
nitro80
О да!
Лето 98 года (примерно), кто-то выложил данный проигрыватель с несколькими треками в ЛВС КГАРФ. Администраторы конечно же пытались искать и удалять, но у нас тогда уже появилась привычка делать копии на дискетах )))
netdog
Как-то оно очень круто звучит для спикера. Полагаю в эмуляторе это дело значительно лучше звучит и уже с выводом в звуковую карту :)
mSnus
поверьте, оно реально круто звучало именно из спикера. с GUS или SoundBlaster звук был ещё мягче и приятнее, но оно и из спикера выдавало отличное техно. Das Boot я мог слушать по 10 раз подряд)))
Vaitek
Я к спикеру проводами прицепил здоровенный динамик паралельно. 386ой плате хватало мощи, чтобы что прокачать. Кнопку включения прикрутил к столу) даз бут звучал прекрасно. LHX тоже бабахал знатно)
Andy_Big
Ух, как ностальгия пробила :))
xsevenbeta
МОД файлы действительно были крутым прорывом после *.mid и весили не очень много.
km2
Кстати не по теме, а есть хоть какие-нибудь трекерные плееры для симбиана? Нагуглил на единственном сайте некий Mobi tracker, ссылка битая и даже гугл о таких не слыхивал. Один спам мне ищет.
qw1
mSnus
Курсор мыши плавно ездил) а Турбо Паскаль просто не влез бы в память, процессор тут ни при чём. Если уж тут каналы можно было миксовать в реальном времени, на Паскаль бы процессора хватило..
qw1
Курсор мыши не показатель. На ZX-Spectrum были плееры через бипер, которые максимально грузили процессор, но выдавали плавную анимацию в 50fps через атрибуты (бегущие цветные квадратики), там буквально сотню-две тактов нужно было от всего фрейма на эту анимацию.
Проблема не сколько в количестве данных, а в том, что в порт надо выдавать их равномерно по времени. Нельзя, как с нормальной аудиокартой, потратить 5% времени на плеер и микширование, настроить проигрываение готового блока на аудиокарте через DMA и забыть до следующего фрейма. Надо постоянно выводить в порт, без пауз (ну можно взять микро-паузу на курсор мыши, обработку кнопок, обновление статистики в текстовом режиме, будет немного потрескивать).mSnus
про курсор согласен, но микс каналов это явно очень прожорливое до ресурсов CPU действие
qw1
Я вторую часть дописал. Неважно, насколько мощный процессор, и насколько тяжёло миксовать каналы (там по сути умножения с весами, до пентиумных времён оно было медленным, но была куча ухищрений с таблицами). Важно то, что какой бы не был мощный процессор, после вывода бита в спикер, нужно было подождать 10-100-1000 тактов (на мощных процах) и выводить следующий бит. Никакая многозадачность так работать не сможет.
drWhy
В брендовых системниках часто спикер кроме основной задачи подключён и к выходу аудиокарты, что позволяет худо-бедно обойтись без колонок для озвучивания рабочего процесса. Если вывести громкость на максимум, пожалуй можно добиться и хрипа от спикера.
aamonster
Драйвер вряд ли (да и спикера классического уже нет), а вот на какой-нибудь blue pill сделать USB звуковую карту, которая будет выводить так же, как выводилось на спикер (PWM с не шибко высокой частотой) реально.
isden
У меня есть ощущение, что тут вполне хватит какой-нибудь attiny.
aamonster
По быстродействию да, но на stm32 можно сделать USB sound card, которая подхватится стандартными драйверами. А на AVR придётся ещё драйвер писать.
bilayan
Я помню как Касперский через него оповещал о нахождении вируса, криком свиньи, и громкость не регулировалась %) И это вроде было во время ХР
vectorplus
Вот с тех пор я не люблю антивирусы.
Я тогда ещё не знал, что Касперский под ментами, что антивирусы не нужны и проч. Визг госпожи Касперской невозможно забыть.
CoolCmd
в моем мониторе есть говененький динамик без "низов". всегда включен. дров не требует. звук не сильно лучше, чем в DOS-е.
qw1
Что толку, если он не делает «пип» при инициализации BIOS.
CoolCmd
мой UEFI с настройками по умолчанию и на спикере не пищит.
кстати, стало интересно где стоит пишалка: на матери или в корпусе.
sleirsgoevy
В линуксе, кстати, есть для этого драйвер snd_pcsp. Работает как по мне вполне прилично.
Еще было бы интересно сделать на этом выводе софтовый UART, чтобы в него отладочные логи системы пихать. Ибо последовательные порты не везде доступны, в отличие от «пищалки».
Gordon01
Просто подключите спикер к звуковой карте.
eimrine
denis-19 Автор
Т.е. отсылка к коричневой ноте Картмана из серии Южного парка 2000 года только для мира старых ПК? Было бы жестоко, но время прошло. И типа он знает сам, как это сделать, судя по нику и адресу, и просто троллит разработчиков?
dartraiden
В современных компьютерных корпусах спикера, зачастую, нет. Я долго искал его в своём Fractal Design Define. Но его просто нет.
IkaR49
Я с трудом нашел, где его купить) Точнее в продаже есть, но по 100-150 рублей за штуку. В итоге нашёл за 10 рублей, что всё равно дорого, но уже не 100)
dartraiden
Алиэкспресс? 22 рубля всё удовольствие. Хотя, по отзывам, пайка чрезвычайно хлипкая и эти два проводочка очень быстро отваливаются.
Am0ralist
То есть надо из старых системников не выбрасывать спикеры (которые иногда в диаметре больше пятака), а дождаться, как станут раритетом и продавать дороже китайцев, зато с нормальной пайкой?
dartraiden
Звучит как бизнес-план.
IkaR49
Нет, с али долго ждать. Нашёл какой-то подвальный магазинчик-скупку. И на али их упаковками минимум по 10 штук покупать, чтобы дешевле было.
vectorplus
Я на Али заказал жменю баззеров, как на картинке. Отлично работают, только у них странная зависимость от тока/напряжения, которую я не понял. То орут, то еле шелестят.
HardWrMan
У них ещё есть резонансная частота. Это как раз где-то между 1 и 3 кГц. На них отдача максимальная. Всё-таки это не громкоговоритель и предназначен выдавать бип определённой частоты но зато максимально громко.
Stesh
Am0ralist
Во, у меня несколько таких где-то лежали, но чаще всё таки крохотные.
Причем эти мелки в старых корпусах их ведь до морды вели, а в новых прям у мамки висят на хвостиках.
stalinets
Если взять 4 таких динамика (если они валяются без дела) и подключить по схеме «четвёрка резвых», и вклеить в пластиковый корпус, можно получить колоночку со звуком средней паршивости)) Добавляем mp3-декодер и усилитель на 3 ватта, антенну, обклеиваем фетром, и радио на кухню готово) Единственный такой динамик тоже можно, но звук слишком уж писклявый.
garageman
Какой я старый... Для меня по-умолчанию динамик корпуса как правило бумажный и сантиметров 5 диаметром.
aamonster
А вы его подключали через кнопку «Turbo» или через ключ клавиатуры?
(было удобно отключать звук на ночь)
CoolCmd
в моем Поиске не было ни того, ни другого. звук полицейской сирены в игре test drive вымораживал.
garageman
Да... Помню первым корпусом для 386 был какой-то брендовый, лежачий, у него верхняя часть откидывалась как капот автомобиля.
Javian
В старых системниках спикер - это обычная 8 Ом , 0.5 ватт динамическая головка. В 2000-х их заменили примитивной пищалкой, а потом и её убрали.
GADzillo
Он идет в комплекте с некоторыми материнскими платами.
LeToan
Был в комплекте какой-то из матплат, и теперь уже много лет переезжает из сборки в сборку
qw1
А почему именно «взорвать»? У слова blow столько значений, что даже на порнхабе есть такая категория…
mar1k94
интересно, где вы увидели в тексте слово blow? там же burn
Darlock_Ahe
На скриншотах писем.
Avael23
Я бы все таки перевел это как гудеть, а не взорвать. По аналогии с blow a horn - гудеть в охотничий рог.
Darlock_Ahe
В оригинале всё-таки обсуждается уничтожение.
tyomitch
Он сам объяснял: lkml.org/lkml/2007/6/12/185
tormozedison
В данном случае to blow — всего лишь, пережечь, заставить перегореть, как предохранитель. Вполне пересекается с упомянутым там «make it no longer usable». Но как известно, при прочих равных громкоговоритель будет потреблять максимальный ток, если пропустить через него постоянку. Если там тупо ключ, это вполне возможно. Но. 5 В через 8 Ом — это 0,625 А, будет греться, но сутками не перегорать. А ведь он там и на 32 Ома может быть, тогда и греться почти не будет.
A114n
Если он совсем ни на одно письмо не отвечает, то возможно это действительно просто скрипт.
Yuuri
Не, он там местами в переписке участвовал.
alcanoid
За столько лет можно бы уже и самому освоить программирование и написать этот драйвер.
k12th
Я — Р.Ф. Бёрнс, и всё не так однозначно...
nibb13
del
agat000
Вот это я понимаю, Техподдержка с железными нервами. 15 лет клиент просит решить проблему, 15 лет его футболят.
Шутка юмора, если что.
dwdraugr
Мне интересно, почему до сих пор никто из сторонних разработчиков не реализовал такой драйвер. Или я плохо искал.
i360u
Прямо вижу как на дэшборде у товарища майора замигала красная лампочка…
qw1
Спикер гос. думы?
agat000
опять замигала
Еще в Совете Федерации есть.
/Опять замигала
Nomad1
Еще в 1992м я случайно где-то скачал маленький (17-25 кб) .com файл, который показывал морду мужика, и громко посылал на йух через динамик. Морда была нарисована в текстовом режиме с перепрограммированием знакогенератора, звук был относительно четкий и разборчивый (как минимум, леща от сестры я отхватил сразу же после установки этой проги в autoexec.bat на рабочей ЕС1840).
olsamurai
Если я не ошибаюсь, то эта программа называлась «шлюхер». И да это было очень громко!
Nomad1
Таки да! Благодарствую
https://youtu.be/RPQtCC0nlKE
JerleShannara
Ещё была замечательная "[фанфары]Здравствуй жопа" программа.
xsevenbeta
Ностальгия, как круто из PC Speaker музыка из Prince of Persia звучала:
HardWrMan
Пример крутого звука на PC спикере ингейм выложили пример внизу. А если речь только за титры, то тут только Myth, только хардкор!
Denis_Andreevich
В 2007 году он дал ответ, зачем ему это нужно:
lkml.org/lkml/2007/6/12/313
denis-19 Автор
Но потом так и не ответил, почему он продолжает слать запросы. Может cron у него был так настроен, причем в разные дни, а потом он забыл про эту задачу).
isden
Хабраэффект и туда добрался О_о
F0iL
Кстати интересно, получается ему нужно не именно «взорвать» пищалку, а просто отключить ее любым способом, чтобы ученики не могли баловаться спикером даже в обход ОС (хотя мне прям очень интересно, как они все-таки смогли использовать спикер без ядерного модуля и без root-прав одновременно; почему-то сомневаюсь, что в линухе реально писать ручками в 61h из юзерспейса).
Aldrog
В рассылке предположили, что у него биос не запаролен и/или позволяет загрузку с носителей. Даже дали инструкцию, как это исправить, но на это R.F. Burns уже не ответил.
CoolCmd
кстати, пищалки есть в современных видеокартах. их как взрывать будем?
qw1
В спецификациях производителя не нашёл таких ))
CoolCmd
спецификации чего?
если не подключить внешнее питание, раньше пищали. 30хх хуанга непонятно зачем пищали в режиме CSM.
qw1
В спецификации видеокарты строчка: «присутствует монофонический динамик 16 Ом, 20 Гц – 18 кГц» ))
drWhy
Пищалки бывают даже в вентиляторах, типа применяемых в компьютерах. При заклинивании вентилятор делает попутку раскрутиться, если не удаётся — пищит.
До ПЗУ видеокарты, по крайней мере, добираться научились давно, к примеру программа uniflash.
JerleShannara
Сначала надо в raid контроллерах их уничтожить — вот там они жутко громкие стоят
YetAnotherSlava
Выше выкладывали Принца Персии как пример хорошей музыки на спикере. Нет уж, это плохой пример, а вот это куда лучше:
www.youtube.com/watch?v=SnOwboZQ_sM