[Решено] Ядро 2.6.30-r1 и mplayer или скорее даже alsa
Несколько раз уже пересобирал ядро, но при просмотре фильмов в mplayer (gentoo-sources-2.6.30-r1) звук "заикается": нормально играет минуту и потом резко перескакивает на секунду, будто была задержка, а затем она восстановилась таким вот перескоком.
В итоге часть сказанных предложений в фильме просто не слышно. Но если загрузиться с более раннего ядра (gentoo-sources-2.6.29-r5) - все в порядке.
Ядро пересобирал как обычно.
make oldconfig && make menuconfig && make && make modules_install
В части аудио ничего не менялось. Если нужно могу приложить конфиги. Пробовал собирать как модулями, так и встроенными в ядро.
Такая проблема наблюдается только в mplayer и mpd. Их я тоже уже несколько раз пересобрал.
Теперь одно но - в xine/gxine все в порядке и, соответственно, в ядре 2.6.29 тоже
В части аудио ядро собрано как советуются в родной документации на сайте gentoo.org, модуль
PCI devices ---> <M> Intel/SiS/nVidia/AMD/ALi AC97 Controller
~amd64
материнская плата ASUS A8N5X
Multimedia audio controller: nVidia
Corporation CK804 AC'97 Audio Controller (модуль snd_intel8x0)
Никто не подскажет, что можно сделать еще?
- Для комментирования войдите или зарегистрируйтесь

1. мне кажется, что дело не
1. мне кажется, что дело не совсем в ядре, а в алсе, которую в него включили... попробуйте отключить алсу в ядре и поставить ее из портежей. можно также сперва попробовать узнать какая версия альсы включена в ядро и посмотреть на alsa-project.org какие баги после той версии исправлены
2. синхронизация в mplayer (и в xine вроде тоже) по умолчанию зависит от rtc. попробуйте поиграть с настройками mplayer в части возможных методик синхронизации видео со звуком
3. вы звук выводите через аналог или через оптику? если через оптику да еще и врежиме PassThrouth, то официально на nForce4 Audio эта фишка не работает. У меня в свое время в этом режиме запустился тока один фильм, который на середине повесил всю систему с Kernel Panic )))
4. вообще, когда переходишь с одной версии ядра на другую, то хорошо бы знать, что именно нового в новой версии ядра и насколько оно вам надо ;-)
5. выложите конфиги обоих ядер для сравнения, на всякий случай...
Вечером отвечу подробнее. Мне
Вечером отвечу подробнее.
Мне таки не нравится то, что в gxine все хорошо, в отличие от mplayer. А изменилось только ядро.
4. Обычно я читаю, вроде ничего насчет alsa не было замечено.
Что понравилось, скорость загрузки ядра увеличилась (3.2 - 3.6 сек)
На vanilla-sources-2.6.30-rc5
На vanilla-sources-2.6.30-rc5 всё работает замечательно, там ALSA ещё v 1.0.19. А уже в vanilla-sources-2.6.30 ALSA v 1.0.20, и абсолютно такая же хрень со звуком, и суспенды тупят. Из-за этого сижу на старом ядре. Есть надежда на vanilla-sources-2.6.31_rc1, может поправили уже, но еще не установил.
Я даже обновил
Не помогло.
Поддерживаю данный баг. У
Поддерживаю данный баг. У меня тоже после перехода на новое ядро наблюдается заикание с вопсроизведением в mplayer и audasious. В vlc и на старом ядре все ок.
попробуйте посмотреть логи на
попробуйте посмотреть логи на наличие ругани со стороны ядра на rtc... на сайте mplayer'a тоже про rtc было написано...
все что есть в логах [
все что есть в логах
Это выходит при загрузке ядра. Оно не отличается от 2.6.29
Похоже я не один
Похоже я не один такой
http://groups.google.com/group/fa.linux.kernel/browse_thread/thread/ca7ef1dff779f952?pli=1
Патч такой --- diff --git
Патч такой
--- diff --git a/sound/pci/intel8x0.c b/sound/pci/intel8x0.c index 173bebf..8aa5687 100644 --- a/sound/pci/intel8x0.c +++ b/sound/pci/intel8x0.c @@ -356,8 +356,6 @@ struct ichdev { unsigned int position; unsigned int pos_shift; unsigned int last_pos; - unsigned long last_pos_jiffies; - unsigned int jiffy_to_bytes; int frags; int lvi; int lvi_frag; @@ -844,7 +842,6 @@ static int snd_intel8x0_pcm_trigger(struct snd_pcm_substream *substream, int cmd case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: val = ICH_IOCE | ICH_STARTBM; ichdev->last_pos = ichdev->position; - ichdev->last_pos_jiffies = jiffies; break; case SNDRV_PCM_TRIGGER_SUSPEND: ichdev->suspended = 1; @@ -1048,7 +1045,6 @@ static int snd_intel8x0_pcm_prepare(struct snd_pcm_substream *substream) ichdev->pos_shift = (runtime->sample_bits > 16) ? 2 : 1; } snd_intel8x0_setup_periods(chip, ichdev); - ichdev->jiffy_to_bytes = (runtime->rate * 4 * ichdev->pos_shift) / HZ; return 0; } @@ -1073,19 +1069,23 @@ static snd_pcm_uframes_t snd_intel8x0_pcm_pointer(struct snd_pcm_substream *subs ptr1 == igetword(chip, ichdev->reg_offset + ichdev->roff_picb)) break; } while (timeout--); + ptr = ichdev->last_pos; if (ptr1 != 0) { ptr1 <<= ichdev->pos_shift; ptr = ichdev->fragsize1 - ptr1; ptr += position; - ichdev->last_pos = ptr; - ichdev->last_pos_jiffies = jiffies; - } else { - ptr1 = jiffies - ichdev->last_pos_jiffies; - if (ptr1) - ptr1 -= 1; - ptr = ichdev->last_pos + ptr1 * ichdev->jiffy_to_bytes; - ptr %= ichdev->size; + if (ptr < ichdev->last_pos) { + unsigned int pos_base, last_base; + pos_base = position / ichdev->fragsize1; + last_base = ichdev->last_pos / ichdev->fragsize1; + /* another sanity check; ptr1 can go back to full + * before the base position is updated + */ + if (pos_base == last_base) + ptr = ichdev->last_pos; + } } + ichdev->last_pos = ptr; spin_unlock(&chip->reg_lock); if (ptr >= ichdev->size) return 0; --Теперь, если кто подскажет как его лучше наложить, буду весьма благодарен
Патч помог, теперь все
Патч помог, теперь все прекрасно. За 7 минут звук ни разу не прерывался.
Одно но, все изменения я сделал руками. Не мог бы кто-нибудь научить меня как правильно пропатчить ядро.
patch -p1 < mypatchконечно хорошо, но тут количество отступов не совпало, пришлось вообще удалять и вставлять строки вручную
Как мне теперь самому сделать патч и потом наложить его, да и вообще в ebuild добавить, если не исправят к тому времени ошибку.
http://devmanual.gentoo.org/
http://devmanual.gentoo.org/
Делается довольно просто.
Текстовый редактор vi имеет два режима работы: в первом он пищит, а во втором — всё портит.
Судя по Changelog исправили
Судя по Changelog исправили багу в 2.6.30.1
Щас соберем и проверим.
Щас соберем и проверим.
Я собрал 2.6.31-rc1, со
Я собрал 2.6.31-rc1, со звуком проблем точно нет. Зато появилось то, чего раньше не было, много разных error, связанных с ACPI и еще кое-чем.
Собрал 2.6.30-r2 все работает
Собрал 2.6.30-r2 все работает без глюков.