LINUX.ORG.RU

XFCE4 + pony = /)(^3^)(\

 , ,


0

1

Конечно, не мне тягаться с zezic, но я все же посмел разбавить серость и уныние скриншотов в галерее своим скриншотом с пони.

Собственно, вся информация о системе на скриншоте.

Однако, хотя я пришел в галерею, я пришел не столько системой хвастать, сколько рассказать об одной проблеме из расчета, что о ней, в итоге, прочитает много людей и может кто подскажет что делать. У меня, друзья, не работает звук (и видео не играется нормально — либо стерео не работает, либо жестокая непоправимая рассинхронизация, vlc просто не играет, это все время). Однако он не просто «не работает»: до тех пор, пока я не попробую быстро изменить громкость любого канала (Master, Headphones), кроме PCM, звук работает, но когда я начинаю быстро менять громкость на указанных каналах, программа-миксер зависает, а mocp, например, начинает проигрывать звук дергано, как HD-видео на медленном соединении. Поиски и чтение форумов результатов не принесло, поэтому я решил замерить за сколько времени(с момента, когда ломается звук) amixer последовательно изменит громкость от нуля до 80%. Написал несложный скрипт, который это делал. Тест с работающим звуком:

plcmn@equestria:~$ time ./test.sh 
real	0m0.743s
user	0m0.350s
sys	0m0.203s
однако если запустить этот же скрипт повторно, проявляется этот баг и результат становится таким:
plcmn@equestria~$ time test.sh
real	4m41.763s
user	0m0.607s
sys	0m12.037s
plcmn@equestria:~$ cat test.sh
export i=0 
while [ $i -lt 80 ] 
do 
  amixer set Master $i% 
  let i=$(($i+1)) 
done

Смотрится невероятно. Я полез в код alsa-utils. Я, конечно, даже не джуниор, но там ТАКОЙ код. При проверке кода alsa-lib с помощью cppcheck, я обнаружил, например

[src/mixer/simple_none.c:1661]: (error) Array 'simple.ctls[14]' accessed at index 14, which is out of bounds.

Весело, в общем. Но касательно моей проблемы я ничего не нашел, поэтому я полез делать нубодебаг, печатая в stderr время задержек между выполнением блоков инструкции, таким образом локализовав проблемную строчку:

// 430 amixer.c
err = vol_ops[dir].v[vol_type].set(elem, chn, val, correct);

// Которая вызывает

int snd_mixer_selem_set_playback_volume(snd_mixer_elem_t *elem, snd_mixer_selem_channel_id_t channel, long value)
{
	CHECK_BASIC(elem);
	CHECK_DIR_CHN(elem, SM_CAP_PVOLUME, SM_CAP_PVOLUME_JOIN, channel);
	return sm_selem_ops(elem)->set_volume(elem, SM_PLAY, channel, value);
}

// Из libasound

Задержка, измерявшаяся с помощью clock() (с использованием CLOCKS_PER_SEC) там составляла около 0.173488 мс. Real time было больше (около секунды-двух). Я понял, что придется лезть в alsa-lib, склонировал git, попробовал собрать, но не собирается. Пока что остановился на этом, пытаюсь собрать.

Если что-нибудь найду, обязательно напишу, по крайней мере, в багтрекер, а может (если смогу) и патч сделаю.

Почему я все это написал. Быть может кто-либо из лоровцев сталкивался с подобной проблемой и может подсказать мне в чем дело?

P.S. А ошибок cppcheck показал много, даже очень, незакрытые va_start(), null pointer dereference и прочие. Очень некрасивый код, там есть, например, реализация полиморфизма через указатели на фукнции, приплетен язык Python (alsa-lib из-за этого и не собирается, пока не знаю в чем проблема, ругается на несуществующего члена структуры, его там действительно нет, декларации нигде не нашел, комментирование строчки родило новые проблемы, поэтому это я пока оставил на потом) и прочие радости.
P.P.S. При перезагрузке со сломанным звуком (единственный способ решить проблему) в выводе показывается сообщение об ошибке связанное с аудио, точно не помню, могу, если кому интересно, посмотреть и сюда добавить. Даже при сломанном звуке chromium продолжает нормально играть и музыку и видео, а deadbeef, например, без проблем играет музыку. Но все прочее, что я пробовал (а пробовал я много, я даже pulseaudio ставил и пытался настроить, но последняя не видела выход для наушников, только hdmi, поэтому я ее удалил) не работало.
P.P.P.S. Забыл добавить, спасибо Khnazile за напоминание:

$ lspci -vv
00:01.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Kabini HDMI/DP Audio
	Subsystem: Dell Device 0614
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0, Cache Line Size: 64 bytes
	Interrupt: pin B routed to IRQ 40
	Region 0: Memory at f0240000 (64-bit, non-prefetchable) [size=16K]
	Capabilities: [48] Vendor Specific Information: Len=08 <?>
	Capabilities: [50] Power Management version 3
		Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [58] Express (v2) Root Complex Integrated Endpoint, MSI 00
		DevCap:	MaxPayload 256 bytes, PhantFunc 0
			ExtTag+ RBE+
		DevCtl:	Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
			RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
			MaxPayload 128 bytes, MaxReadReq 512 bytes
		DevSta:	CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
		DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR-, OBFF Not Supported
		DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
	Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
		Address: 00000000fee0f00c  Data: 4153
	Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
	Kernel driver in use: snd_hda_intel
	Kernel modules: snd_hda_intel

--
00:14.2 Audio device: Advanced Micro Devices, Inc. [AMD] FCH Azalia Controller (rev 02)
	Subsystem: Dell Device 0614
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=slow >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 32, Cache Line Size: 64 bytes
	Interrupt: pin A routed to IRQ 41
	Region 0: Memory at f0244000 (64-bit, non-prefetchable) [size=16K]
	Capabilities: [50] Power Management version 2
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=55mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [60] MSI: Enable+ Count=1/1 Maskable- 64bit+
		Address: 00000000fee0f00c  Data: 4163
	Kernel driver in use: snd_hda_intel
	Kernel modules: snd_hda_intel


$ aplay -l
plcmn@equestria:~/$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Generic [HD-Audio Generic], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: Generic_1 [HD-Audio Generic], device 0: ALC3223 Analog [ALC3223 Analog]
  Subdevices: 0/1
  Subdevice #0: subdevice #0

No offense. Просто рассказываю про свой интересный опыт. :)

Всем добра и дружбомагии!

>>> Просмотр (1366x768, 481 Kb)



Проверено: JB ()
Последнее исправление: cetjs2 (всего исправлений: 5)

Всем добра и дружбомагии!

Фу быть таким, это во-первых.

Во-вторых, в посте много технической инфы, но нет модели звуковой карты.

Khnazile ★★★★★
()

Зойчем клонировать из гита? Немудрено, что там может быть поломанная версия. Возьми ту версию, которая у тебя используется. ABS-то тебе зачем?

ЗЫЖ сам скрин скучен, а текст с ним не связан совершенно. Так что тут либо крестик, либо трусы — надо было в техническом разделе тему создать.

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

Предпочитаю вместо свистоперделок более-менее спокойное окружение.

Мог бы добавить в тему скрины с редактором, запущенным gdb и указателем на строчке с багом, но зачем?

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

Предпочитаю вместо свистоперделок более-менее спокойное окружение.

Ты это к чему вообще?

Мог бы добавить в тему скрины с редактором, запущенным gdb и указателем на строчке с багом, но зачем?

Действительно, не за чем. Лучше запостить скрин, который хоть чем-то выделяется на фоне остальных.

Deleted
()

Насколько «богат» должен быть внутренний мир, чтобы постить скрины с пони... Да еще и на аватарку этих пони совать...

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

не та пони

Everypony is the best pony!

мыльное

Ты ведь не забываешь открывать скриншот в полном размере? Иначе конечно — мыльное ШГ.
У меня все нормально смотрится

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

Не расстраивайся так сильно, проблемы со звуком бывают у многих, ты тоже с ними справишься. :)

Plcmn
() автор топика

Обои страшноваты. + в меню шрифты слишком тонкие, да иконки в трее. Ну и все.

DeadEye ★★★★★
()

Я до сих пор не понимаю, зачем совать меню приложения в панель? Пользоваться невозможно. Единственное, что более-менее понравилось, так это шрифт в терминале. Еще + за пони.

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

Everypony is the best pony!

NMM is a best pony.

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

Ага, также я забыл зайти на лор, проснуться и родиться вообще.

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

Везде, куда ни глянь эти пони! Это что, вирус какой-то?

Полагаю, это что-то в стиле «Улыбайтесь - это всех раздражает!».

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

Твое хейтерство тут никого не интересует.

Хейтерство это здорово, а пони - не нужно. На ЛОРе есть гномохейтеры, кедохейтеры, амдхейтеры, нвидияхейтеры, системдхейтеры... Всякие разные, короче. Чем понихейтерство хуже?

Khnazile ★★★★★
()

Шрифты радуга, а так нравится, неплохо.

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

Не трогай хейтеров, пусть они продолжают хейтить, без них не будет холиваров на лоре, и он станет уныл.

funeralismatic ★★★
()

Очевидно, что не в утилитах дело, а в модуле ядра. Откат или обновление до последней версии должно помочь. Хотя бы до 3.18.2, но можно и до 3.19-rc4. На последнем ядре с похожим контроллером и кодеком постарее всё ОК.

P.S. Есть планшет у которого на ядре 3.16* постоянно зависает звуковуха и алса её ресетит. Звук, естественно, прерывается. Pulseaudio в этом плане лучше отрабатывает эти зависания и прерываний нет, хотя и не понятно почему, ведь работает через ту же алсу. Мб баг в ядре, который пульс как-то хитро избегает.

nrndda
()

предлагаю банить всех понийобов ибо они латентные модераторы
//скриншот говно

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

/me звучно сблевал. Тогда я не буду смотреть новые сезоны, если они на русском будут.

DeadEye ★★★★★
()

Конечно, не мне тягаться с zezic

Вот это прикол.

Пони хорошие, но мультик я не смотрю. Глюк в альсе занятный, желаю удачно пофиксить.
По скрину (не знаю, хотел ли автор комментарии): удачно и чётко выглядит шрифт в терминале, но зверское хинтование на панели. Какой размер иконок в доке? 37? Ведь если выставить 36 или 40, то можно получить меньше мыла, если это нужно, конечно. (Хотя, может быть, и не выйдет.)

zezic ★★★★
()

У меня в арче с 2007 года стабильно «что-нибудь не работает» :)

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

так неинтересно... вот когда наши пони въедут в ЛОс-Анджелес, ...

odii
()

Почему за поней ещё не банят?

А понифаги ходят на ЛУГи? Надо бы их там жестоко избивать ногами.

user42 ★★
()

В меню ШГ лютое

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

Мне стоит всем желать зла и ненависти? :)

Да, будь как все, не выделывайся.

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

Почему за поней ещё не банят?

Может Maxcom сам втихую MLP ночью под подушкой смотрит.
Напомню, на прошлое первое апреля весь ЛОР отпонили.

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

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

ritsufag ★★★★★
()

Rainbowдэш! Комбинация черного и темного зеленого заставляет вытекать глаза.

ZUKMAN
()

я все же посмел разбавить серость и уныние скриншотов в галерее своим скриншотом с пони.

С каких это пор пони перестали быть серостью и унынием?

Polugnom ★★★★★
()

Ёлка, ну че за шг вверху? В терминале норм, но верх лютое шг

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