[TC] рессивер под управлением ОС линукс
Здравствуйте, industry.
вопрос к тем,кто хорошо знает линукс и возможности этой операционки. имеется
рессивер на линуксе. есть ли возможность как-нибудь озвучить данный аппарат,хотя
бы английским голосом? ну а если это возможно русским,то вообще чудесно.
за всю информацию буду очень признателен.
Приветствую всех.
Наверное, имелся в виду ресивер?
Дистрибутивы Linux, используемые в подобного рода устройствах, называются "встроенным
Linux" (Embedded Linux).
Есть, как минимум, два способа адаптации встроенного Linux'а:
1. Если в устройстве есть файловая система, поддерживающая чтение-запись (обычно
это ram-диск, подключаемый в /var), а к самому Linux в устройстве есть доступ
по telnet (ssh и т.п.), то можно пытаться добавить скрипты или бинарные программы
(скомпилированные под соответствующий процессор) . Тут многое зависит от возможностей
оболочки (обычно это BusyBox): скрипты можно создавать непосредственно из консоли,
а для бинарных программ нужны будут дополнительные средства (например, wget).
Понятно, что серьезно изменить работу системы такими скриптами и программками
весьма затруднительно (и при отключении питания они пропадут), но исследовать
кое-какие особенности системы можно (это придется делать, если нет возможности
или желания разбираться с исходниками) и это позволит понять, поддается ли система
озвучиванию в принципе (и насколько это будет трудоемко).
2. Полная перепрошивка системы. Если устройство поддерживает пользовательскую
перепрошивку, то можно собрать дистрибутив "под себя" (но для этого нужно иметь
опыт сборки хотя бы "компьютерных" дистрибутивов из исходников и создания загрузочных
образов). В этом случае (при условии, что нет проблем с доступом к аппаратной
части и нет проблем с драйверами устройств) можно полностью озвучить систему,
а при наличии USB-порта добавить брайлевский вывод и т.д.
На мой взгляд, пора уже уголовную ответственность вводить за разработку и продажу
устройств, не поддерживающих альтернативные формы доступа, поскольку здесь уже
нельзя сослаться на техническую невозможность реализовать звуковой/речевой интерфейс.
Существует, как минимум, два способа озвучивания:
1. Звуковыми файлами -- на каждое контролируемое событие назначается определенный
звуковой файл (в т.ч. и заранее записанное сообщение).
2. Через синтез речи по тексту.
Понятно, что первое гораздо проще, чем второе (более того, если можно реализовать
второе, то дополнить его первым -- это не вопрос).
Вам, собственно говоря, надо выбрать способ озвучивания, исходя из возможностей
системы и способа ее модификации, поэтому первое, что вы должны сделать, это
выяснить, какой дистрибутив установлен в вашем устройстве.
Второй шаг -- это поиск в интернете информации о перепрошивке вашего устройства,
и поиск сообщества энтузиастов, которое занимается такой перепрошивкой и/или
даже готовит собственные прошивки.
В процессе всего этого вы, кроме возможности перепрошить устройство, должны
выяснить:
1. Есть ли возможность в данной системе получить доступ к звуковоспроизводящему
блоку (и каким образом).
2. Есть ли возможность получить доступ к индикаторным устройствам (и каким образом).
3. Есть ли возможность получить доступ к устройствам ввода (клавиатуре) (и каким
образом).
Если разработчики устройства действовали в духе "unix way", то все вышеназванные
устройства, скорее всего, будут представлены в виде файлов в каталоге /dev, что
потенциально может дать возможность использовать их для чтения/записи непосредственно.
Если ничего подобного нет, то придется выяснять, есь ли другие пути доступа к
этим устройствам, или исследовать исходники драйверов аппаратуры, а поскольку
драйверы проприетарные, то никто вам эти исходники предоставлять не обязан. Все
вышеописанное я и называю "проблемы с доступом к аппаратной части".
Очень вероятно, что никакого сообщества, интересующегося перепрошивкой вашего
устройства, нет и у вас есть реальный шанс обременить себя сборкой дистрибутива
Linux под вашу аппаратную платформу (процессор). Для этого вам потребуются средства
кросс-платформенной разработке (так как вам придется собирать программу для одного
процессора (например MIPS) на своем компьютере (у которого процессор Intel или
Amd). В зависимости от целевой платформы, такие средства либо уже есть врепозитариях
в установочном виде, либо вам придется собирать их из исходников самому. То есть
процесс будет выглядеть так:
1. Собрать кросс-платформенные средства (компилятор C, линкер, библиотеки и т.п.
-- по-английски toolchain) которые смогут компилировать программы для процессора,
установленного на вашем устройстве.
2. При помощи этих кросс-средств собрать дистрибутив Linux для процессора, установленного
на вашем устройстве (т.е. собрать ядро системы и все утилиты/программы, которые
вам будут нужны в системе,например, тот же eSpeak, подготовить соответствующим
образом загрузочные скрипты и т.п.).
3. Собрать загрузочный образ (прошивку) всей системы (причем в загрузочным он
должен быть именно для вашего устройства, а не для вашего компьютера).
4. Перепрошить устройство.
5. Опционально: отнести устройство в ремонт, чтобы восстановили заводскую прошивку.
Кстати, исходники используемого в вашем устройстве дистрибутива должны быть в
свободном доступе на сайте разработчика устройства (исключая, разумеется, драйверы
к аппаратной части, но некоторые производители и их выкладывают либо как исходники,
либо в скомпилированном виде).
Если же драйверы в свободном доступе отсутствуют, то их придется "выковыривать"
из родной прошивки устройства, что, конечно, разработчиками не поощряется.
Успехов. Анатолий.