Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: ТВ-тюнер перестает работать после выключения/включения системы  (Прочитано 3150 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн d_kostin

  • Автор темы
  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Здравствуйте! Прошу подсказать.

Имеются:
Xubuntu 13.04 64-bit, ядро 3.8.0-30-generic, установлен Compiz
Тюнер - древний Compro Videomate Gold Plus II
И самое страшное - пользователь страшно далекий от IT, с опытом использования Ubuntu меньше 2 месяцев, то есть я.

Установил Линукс на ПК параллельно с Windows ради интереса, ради этого же интереса попробовал запустить ТВ-тюнер (исправен, под Win работает без проблем).
Получилось - в Tvtime поймались каналы, заработал звук, я выключил компьютер. На утро включаю и снова - ничего не работает. При этом сигнал с композитного источника - есть (подключен проводом внешний источник), а с ТВ-антенны  - картинки нет. Начинаю снова перебирать значения tuner (card=62 - это известно, а вот тюнер вчера подобрал перебором) - ничего, возвращаюсь на вчерашнее tuner=38, перезагружаюсь - все снова работает. Казалось бы, все хорошо, но выключаю компьютер и опять с антенны картинки нет.

Для меня работа тюнера не так принципиальна, я им не особенно и пользуюсь, но хочется для себя понять - что это за фигня и что я делаю не так? Кто может подсказать - пожалуйста помогите.

Мой etc/modprobe.d/saa7134.conf:
alias char-major-81 videodev
options i2c-algo-bit bit_test=1
options saa7134 card=62 tuner=38
options tuner secam=d

alias char-major-81-0 saa7134
alias char-major-81-1 off
alias char-major-81-2 off
alias char-major-81-3 off

lspci последним пунктом выдает (больше про карту там ничего нет):
05:00.0 Multimedia controller: Philips Semiconductors SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (rev d1)

Если в терминале запустить dmesg | grep saa7134, то выдает следующее:
[   16.507220] input: saa7134 IR (Compro VideoMate TV as /devices/pci0000:00/0000:00:1c.3/0000:04:00.0/0000:05:00.0/rc/rc0/input3
[   16.507295] rc0: saa7134 IR (Compro VideoMate TV as /devices/pci0000:00/0000:00:1c.3/0000:04:00.0/0000:05:00.0/rc/rc0
[   16.709013] saa7134 ALSA driver for DMA sound loaded

Tvtime, чтобы был звук с PCI, запускаю командой - tvtime | arecord -D hw:2,0 -r 32000 -c 2 -f S16_LE | aplay -q -

Каналы настроены вручную - SECAM. Вчера описанная выше конфигурация работала, что могло поменяться при выключении/включении ПК?
« Последнее редактирование: 25 Августа 2013, 16:54:50 от d_kostin »

Оффлайн d_kostin

  • Автор темы
  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Экспериментальным путем определил следующее - чтобы нормально запустить tvtime мне нужно:
0) включить tvtime и увидеть, что она вещает только звук с сильными помехами и без изображения. Убедиться, что в etc/modprobe.d/saa7134.conf записано options saa7134 card=62 tuner=38
1) в saa7134.conf прописать: options saa7134 card=49 (номер похожей карты, но предыдущего поколения)
2) перезагрузить систему и убедиться, что tvtime показывает только 1 канал (и не удивительно - карта не та).
3) вернуть в etc/modprobe.d/saa7134.conf options saa7134 card=62 tuner=38 (то есть ровно то же самое, что и было там сначала). Остальные строки я из файла убрал - разницы нет.
4) еще раз перезагрузить систему, запустить tvtime и смотреть ТВ. Показывает те же каналы, что и на Win7 с фирменным ПО карты, но при этом даже чуть в лучшем качестве.
Работает ровно до следующего выключения ПК. Затем надо повторять.
Пробовал много раз - работает безотказно. Теперь можно быть увереннным, что card и tuner подобраны правильно.

Подскажите, что сделать, чтобы работало без этих "шаманских плясок"? Может быть в rc.local что-то прописать нужно или еще что-то подправить, чтобы при загрузке все само определялось?

P.S. Систему с тех пор я переустановил (после экспериментов с разными версиями *buntu) - теперь у меня обычная Ubuntu 13.04 с Unity на борту. Проявление проблемы и в Xfce, и в Gnome, и в Unity - одинаковое.

Оффлайн rayanAyar

  • Старожил
  • *
  • Сообщений: 1027
  • Да пребудет с вами совпавшая контрольная сумма
    • Просмотр профиля
Вместо перезагрузки наверное можно использовать rmmod с последующим "modprobe saa7134 card=62 tuner=38".

Оффлайн d_kostin

  • Автор темы
  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Вместо перезагрузки наверное можно использовать rmmod с последующим "modprobe saa7134 card=62 tuner=38".
Так не получается. В ответ на rmmod saa7134 выдает - "Module saa7134 is in use by: saa7134_alsa".

Оффлайн d_kostin

  • Автор темы
  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
У тебя меняются местами устройства /dev/video0 и /dev/video1? вебкамера есть?
Если да, решение есть - в /etc/udev/rules.d/хх-name-video-device.rules зфиксировать видеоустройства.

Вебкамеры нет, тюнер определяется как /dev/video0

Оффлайн Peter_I

  • Старожил
  • *
  • Сообщений: 3266
    • Просмотр профиля
Я бы попробовал так:
1) Создать в /etc/modprobe.d два conf-файла, один - переименованный
   правильный, другой - с card=49 и каждый раз устанавливать symlink
   на тот файл, который нужен.
2) Предположим, при включении ссылка указывает на файл с card=49;
   Тогда после загрузки с помощью modprobe выгрузить драйвер,
   переустановить ссылку на правильный файл, затем с помощцью
   modprobe загрузить драйвер.
3) При выключении переустановить ссылку на файл с card=49.

Действия в 2) можно выполнять из /etc/rc.local, для 3) - в /etc/init.d
есть скрипт halt, выполняющийся именно при выключении, а при перезагрузке
выполняется /etc/reboot. Вот в halt можно вставить команду переустановки
ссылки на файл с card=49. Вообще это плохой способ - с изменением halt,
но, если это будет работать, можно будет поместить в /etc/init.d свой
скрипт, который переустанавливает symlink и потом вызывает системный
halt и с помощью update-rc.d настроить так, чтобы в /etc/rc0.d по команде
halt вызывался ваш скрипт, хотя это тоже не лучший вариант.

Пётр.
Пётр.

Оффлайн rayanAyar

  • Старожил
  • *
  • Сообщений: 1027
  • Да пребудет с вами совпавшая контрольная сумма
    • Просмотр профиля
Так не получается. В ответ на rmmod saa7134 выдает - "Module saa7134 is in use by: saa7134_alsa".
Сначала saa7134_alsa выгрузить?

Оффлайн d_kostin

  • Автор темы
  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Я бы попробовал так:
1) Создать в /etc/modprobe.d два conf-файла, один - переименованный
   правильный, другой - с card=49 и каждый раз устанавливать symlink
   на тот файл, который нужен.
2) Предположим, при включении ссылка указывает на файл с card=49;
   Тогда после загрузки с помощью modprobe выгрузить драйвер,
   переустановить ссылку на правильный файл, затем с помощцью
   modprobe загрузить драйвер.
3) При выключении переустановить ссылку на файл с card=49.

Действия в 2) можно выполнять из /etc/rc.local, для 3) - в /etc/init.d
есть скрипт halt, выполняющийся именно при выключении, а при перезагрузке
выполняется /etc/reboot. Вот в halt можно вставить команду переустановки
ссылки на файл с card=49. Вообще это плохой способ - с изменением halt,
но, если это будет работать, можно будет поместить в /etc/init.d свой
скрипт, который переустанавливает symlink и потом вызывает системный
halt и с помощью update-rc.d настроить так, чтобы в /etc/rc0.d по команде
halt вызывался ваш скрипт, хотя это тоже не лучший вариант.

Пётр.

Спасибо. Такой вариант наверняка будет работать. Но все же это "костыль", а мне-то суть проблемы понять хочется, почему при правильных параметрах карты требуются такие "телодвижения".

Пользователь решил продолжить мысль 29 Сентября 2013, 16:46:33:
Так не получается. В ответ на rmmod saa7134 выдает - "Module saa7134 is in use by: saa7134_alsa".
Сначала saa7134_alsa выгрузить?
А его rmmod выгружать отказывается - Error: Module saa7134_alsa is in use (sudo - не помогает).
« Последнее редактирование: 29 Сентября 2013, 16:46:33 от d_kostin »

Оффлайн Peter_I

  • Старожил
  • *
  • Сообщений: 3266
    • Просмотр профиля
Почему - возможно, ошибка драйвера, некорректно инициализирует устройство.
Либо - вообще не загружать драйвер при старте, скажем, поместить его
в blacklist или вообще удалить из дерева модулей, а затем из /etc/rc.local
сначала загрузить  с card=49, выгрузить и загрузить с правильными параметрами.

Пётр.
Пётр.

Оффлайн d_kostin

  • Автор темы
  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Почему - возможно, ошибка драйвера, некорректно инициализирует устройство.
Либо - вообще не загружать драйвер при старте, скажем, поместить его
в blacklist или вообще удалить из дерева модулей, а затем из /etc/rc.local
сначала загрузить  с card=49, выгрузить и загрузить с правильными параметрами.

Пётр.
А первый вариант, с blacklist - как реализовать? Хотя бы вкратце, а то я от этого всего достаточно далек))))

Оффлайн rayanAyar

  • Старожил
  • *
  • Сообщений: 1027
  • Да пребудет с вами совпавшая контрольная сумма
    • Просмотр профиля

Оффлайн d_kostin

  • Автор темы
  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
http://ubuntuforums.org/showthread.php?t=1567212&p=9801664#post9801664
Номер карты там в таблице указан такой же как и у меня 62 -> Compro VideoMate TV Gold+II
Установка  linux-firmware-nonfree ничего не дала. Больше в той теме ничего интересного не нашел, если что-то упустил - подскажите, пожалуйста.

И еще раз обращаю внимание - если тюнер работает нормально, то перезагрузка ничего в этой работе не нарушает. Перестает работать только после выключения/включения. Кто может, подскажите, чем с точки зрения определения системой оборудования отличается перезагрузка от включения?

Оффлайн rayanAyar

  • Старожил
  • *
  • Сообщений: 1027
  • Да пребудет с вами совпавшая контрольная сумма
    • Просмотр профиля
Больше в той теме ничего интересного не нашел, если что-то упустил - подскажите, пожалуйста.
Порядок выгрузки модуля:
sudo modprobe -vr saa7134_dvb
sudo modprobe -vr saa7134_alsa
sudo modprobe -vr saa7134


Пользователь решил продолжить мысль 29 Сентября 2013, 17:59:57:
Кто может, подскажите, чем с точки зрения определения системой оборудования отличается перезагрузка от включения?
Бивис может что-то "инициализирует".
« Последнее редактирование: 29 Сентября 2013, 17:59:57 от rayanAyar »

Оффлайн d_kostin

  • Автор темы
  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Больше в той теме ничего интересного не нашел, если что-то упустил - подскажите, пожалуйста.
Порядок выгрузки модуля:
sudo modprobe -vr saa7134_dvb
sudo modprobe -vr saa7134_alsa
sudo modprobe -vr saa7134
Пробовал, эффект такой же - на команде sudo modprobe -vr saa7134_alsa - ошибка "Module saa7134_alsa is in use"

Пользователь решил продолжить мысль 29 Сентября 2013, 18:02:20:
Кто может, подскажите, чем с точки зрения определения системой оборудования отличается перезагрузка от включения?
Бивис может что-то "инициализирует".

А можно для "чайника" чуть расшифровать?)))

Оффлайн rayanAyar

  • Старожил
  • *
  • Сообщений: 1027
  • Да пребудет с вами совпавшая контрольная сумма
    • Просмотр профиля
Вывод покажите:
lsmod | grep saa7134
А можно для "чайника" чуть расшифровать?)))
В BIOS можно попробовать настройки какие-нибудь поковырять. Что-нить типа "pnp os", или APIC.

 

Страница сгенерирована за 0.019 секунд. Запросов: 21.