LINUX.ORG.RU

А можно ли завести в современном линуксе Covox?

 , ,


0

4

Спаял я себе по совету exception13 простенький Covox. Теперь хочу его опробовать, но для старичка, для которого он предназначен, ещё не приехал носитель под корень, а на одной дискете особо не разгуляешься. Можно ли это чудо как-то завести в современном линуксе? Я нагуглил только модуль для чего-то похожего и для ядра 2.x. В то же время, на википедии пишут, что драйвер, по крайней мере, был. Кто-нибудь в курсе как эту штуковину завести?

★★★★★

Гуглится вот это вот http://www.linuxjournal.com/article/1362 я точно не помно, но похоже на правду, что поддержку covox давал драйвер для PC-Speaker'а. Вроде подобный модуль ещё жив, так что, поправьте его.

mky ★★★★★
()

да может вообще из юзерспейса можно, без модуля, пишешь прямо в /dev/parport0

Harald ★★★★★
()

Модуль тоже примитивный в принципе, поправить для современного ядра несложно по идее

Harald ★★★★★
()

модуль по ссылке датирован 2004 годом, а у первослаки ядро древнее, так что как бы его бэкпортировать ещё не пришлось )

Harald ★★★★★
()

вощщем, не компилируется в современном линуксе, пишет вот такое

make -C /usr/src/linux M=`pwd` modules
make: Вход в каталог `/usr/src/linux-3.14.4-gentoo'
  CC [M]  /home/user/temp/parsp.o
/home/user/temp/parsp.c:9:26: фатальная ошибка: sys/soundcard.h: Нет такого файла или каталога
компиляция прервана.
make[1]: *** [/home/user/temp/parsp.o] Ошибка 1
make: *** [_module_/home/user/temp] Ошибка 2
make: Выход из каталога `/usr/src/linux-3.14.4-gentoo'

Если хочешь завести этот модуль, достаточно прочитать первые 6 глав Linux Device Drivers 3, потом нагуглить, какие изменения произошли с тех пор в ядре и внести нужные поправки, всё просто :)

Harald ★★★★★
()
Последнее исправление: Harald (всего исправлений: 1)
Ответ на: комментарий от Harald

как бы там поправок больше изначального кода не оказалось

anonymous
()
Ответ на: комментарий от Axon

Я подразумевал, что нужно взять старое ядро 2.0.x, посмотреть как там был сделан драйвер pc-speaker с поддержкой covox и поправить драйвер pc-speacker в современном ядре (каталог /sound/drivers/pcsp). Тогда получется нормальный ALSA-драйвер.

Причём, можно попробовать пропатчить грязно, в pcspkr_input_event() вместо вызова pcspkr_do_sound() поставить вывод в поpт lpt outb(), пересчитав value в 4 разряда.

mky ★★★★★
()
Ответ на: комментарий от mky

Ох... Я же не просто с ядром не знаком, но и с сишечкой вообще. Боюсь, не по мне задачка.

Axon ★★★★★
() автор топика

Спаял я себе по совету exception13 простенький Covox

Он прикололся, а ты хернёй страдаешь =)
Linux не RT система, как и чем будешь в него играть? Нужна большая и _стабильная_ частота вывода.

GAMer ★★★★★
()
Ответ на: комментарий от GAMer

Linux не RT система, как и чем будешь в него играть?

А DOS - RT система, что ли? Ну и был же драйвер когда-то, всё-таки.

Axon ★★★★★
() автор топика
Ответ на: комментарий от Axon

А DOS - RT система, что ли?

Конечно, CLI - и никто тебе не помешает гадить в порт. qubic player mp3-шки ок играл.
А если так хочешь паять, можно слепить LPT-ISA Bridge и воткнуть в него саундбластер...

GAMer ★★★★★
()
Ответ на: комментарий от GAMer

А если так хочешь паять

Да, на самом деле, особо желанием не горю. Я в этом деле чайник.

можно слепить LPT-ISA Bridge и воткнуть в него саундбластер...

Это ещё где-то саундбластер такой найти надо. Да и схемы для такого переходника, что-то, не гуглятся. Он, вообще, пассивный?

Axon ★★★★★
() автор топика
Ответ на: комментарий от Axon

Я в этом деле чайник.

Ковокс на фотке няшный, я встречал их только в виде оргызков плат и пуков проводов =)

Он, вообще, пассивный?

Это тоже был сарказм... Врядли пассивный, надо будет буферизовать шину да драйвер писать. Но какова идея...
LPT в теории до 2-2.5 МБ/с выдать может, а если использовать его в ECP-режиме, то можно и DMA задействовать, то есть и заикаться не будет, и работать можно без фризов.
http://www-user.tu-chemnitz.de/~heha/bastelecke/Rund um den PC/LPTISA/
Вот товарищи кажется что-то замутили, но на EPP и всего лишь 8бит ISA.

GAMer ★★★★★
()
Ответ на: комментарий от GAMer

Ковокс на фотке няшный

Это потому что вы кишки не видели. ☺

Это тоже был сарказм...

Я подозревал...

Axon ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Чтобы была стабильная частота записи в порт. Там ведь нет буфера, нужно выводить значения раз в 1/44100 секунды.

mky ★★★★★
()
Ответ на: комментарий от mky

ради звука низкого качества? ну и понятно, что у меня не раритет, как у тс, но:

$ grep resolu /proc/timer_list
  .resolution: 1 nsecs
  .resolution: 1 nsecs
  ...

anonymous
()
Ответ на: комментарий от anonymous

У ТС не раритет. На раритет он бы поставил старое ядро и там бы Covox заработал, но пока у него нет HDD, поэтому он не может поставить на раритет операционку, а Covox послушать хочется, вот и пришёл на ЛОР с желанием завести Covox в современном линуксе.

Наличие таймеров с высокой разрешающей способностью не гарантирует, что User space паузы будут именно этой длительностью, они могут быть и больше, что особенно заметно при большом Load average. Чтобы правильно воспроизводить, нужно не просто делать паузу на 1/44100 секунды, а каждый раз получать абсолютное системное время и вычислять на сколько нужно сделать паузу.

В ядре есть готовый драйвер для PC Speaker, ИМХО, проще его подхачить, чем писать код в user space. По моим прикидкам в ядре хватит минимальных правок и получится нормальный девайс в /dev/snd/ . А в userspace сколько кода надо, чтобы в системе появилось аудио-устройство?

mky ★★★★★
()
Ответ на: комментарий от Lavos

А как ты запустил современный линукс на трешке?

А в чём проблема? BTW, у меня на основной машине корадуба.

На современном железе нет ничего подобного.

Ты не поверишь

Axon ★★★★★
() автор топика
Ответ на: комментарий от Lavos

Я в шоке, на некоторых даже PCI есть.

Живых PCI-девайсов нынче гораздо больше, чем LPT-принтеров.

Axon ★★★★★
() автор топика
Ответ на: комментарий от ZenitharChampion

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

mky ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.