Ubuntu Медиацентр – Железо, софт
марта 10, 2010
С друзьями решили поставить на гараж какую-нибудь фиговину, что бы пела
Так как на гараже слушать кроме радиоприемника, который уже надоел, и телефонов, которые не очень то и громко поют, больше ничего нет.
Управлять всем этим делом хочется без всяких заморочек, поэтому решили сделать управление с помощью пульта дистанционного управления (ПДУ).
Что мы имеем?
Набор железа, отставшееся от апгрейда:
- Процессор - 1.1 ГГц
- Память - 192 Мб
- Винт – 40 Гб
- Звук – ESS-Solo
- Колонки -
ИК-приемник для COM порта:
Обе схемы работоспособны и собираются в течении 10 минут при наличии всех элементов.
Сканер Mustek ScanExpress 6000SP:

Процесс сборки:
Системный блок:
Системник было решено сделать из корпуса от сканера. Он был раскручен, выпотрошен.
Стекло оказалось приклеено двусторонним скотчем, который было очень сложно отлепить. Так что пришлось стекло выпиливать. Оно и к лучшему – больше “окно” получилось.
Закрепил внутри материнку, блок питания, винт. Блок питания припаял к родному, мастековскому разъему 220В, т.е лишних отверстий сверлить не пришлось.
На этом железная работа завершилась. В данный момент даже охлаждение не встроено в корпус.
Софт:
Поставил на все это железо Ubuntu Server (брать ).
При установке выбрал установку SSH сервера, так как монитор, клавиатура в одном экземпляре.
Устанавливаем mpd и mpc
1 | sudo apt-get install mpd mpc |
Настроим mpd:
1 | sudo nano /etc/mpd.conf |
Заменяем содержимое на это:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | music_directory "~/music/" #директория, в которой находится музыка (не забудьте создать) playlist_directory "~/music/pl" #директория, в которой находится плейлисты (не забудьте создать) db_file "~/music/music.db" #файл базы данных mpd log_file "~/music/mpd.log" #файл логов mpd error_file "~/music/errors.log" #файл логов ошибок mpd pid_file "~/music/pid" state_file "~/music/state" user "user" # пользователь, под которым будет запускаться демон (не забудьте добавить пользователя в группу audio "sudo usermod -a -G audio user") bind_to_address "localhost" port "6600" audio_output { type "alsa" name "My ALSA Device" device "hw:0,0" # optional format "44100:16:2" # optional } filesystem_charset "UTF-8" id3v1_encoding "UTF-8" metadata_to_use "artist,album,title,track,name,genre,date,composer,performer,disc" |
Далее устанавливаем lirc:
1 | sudo apt-get install lirc |
При выборе устройств в обоих случаях выбираем “Custom”.
Далее
1 | sudo nano /etc/lirc/hardware.conf |
Изменения в нем:
1 2 3 4 5 6 7 8 9 | REMOTE="RRM" REMOTE_MODULES="lirc_dev lirc_serial" REMOTE_DRIVER="default" REMOTE_DEVICE="/dev/lirc0" REMOTE_SOCKET="" REMOTE_LIRCD_CONF="/etc/lirc/lircd.conf" REMOTE_LIRCD_ARGS="" START_LIRCD="true" |
Далее проверяем приемник:
1 2 3 4 5 6 7 | sudo setserial /dev/ttyS0 uart none sudo setserial /dev/ttyS1 uart none modprobe lirc_serial mode2 -d /dev/lirc0 |
При нажатии на кнопки пульта должны появляться циферки разные. Завершаем нажатием Ctrl+C процесс mode2, т.к. он занял девайс приемника и не даст работать лирку.
Если все нормально прописываем в автозагрузку (лично я прописал в автозагрузку к лирку):
1 | sudo nano /etc/init.d/lirc |
Вписываем перед “exit 0″:
1 2 3 4 5 | sudo setserial /dev/ttyS0 uart none sudo setserial /dev/ttyS1 uart none modprobe lirc_serial |
Настраиваем кнопки для своего пульта:
1 | irrecord lircd.conf -d /dev/lirc0 |
Следуем инструкциям на экране. Желательно как можно точнее следовать этим инструкциям – от этого будет зависеть “качество” конфига. Вначале вас попросят нажимать удерживая не больше 1 сек. разные кнопки, при этом каждое нажатие должно дать не больше 10 точек. Это нужно делать пока не заполнятся 2 лини по 80 точек. После этого необходимо назначить имена разным кнопкам пульта. На каждую кнопку вводим название, жмём Enter и нажимаем соответствующую кнопку на пульте. После назначения всех кнопок давим на Enter. И на последок вас попросят многократно и быстро понажимать любую кнопку причём без удерживания. Кстати когда прога ожидает нажатия кнопок пульта, не нужно долго раздумывать – она будет ждать 10 сек. а потом вывалится и нужно всё начинать сначала не забыв кстати удалить “испорченный” файл, потому как irrecord не будет писать в существующий файл. Всё, конфиг готов и его нужно скопировать в /etc/lircd.conf
Мой lirc.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | begin remote name DVDP-2402 bits 16 flags SPACE_ENC eps 25 aeps 100 header 9062 4444 one 621 502 zero 621 1623 ptrail 621 repeat 9079 2182 pre_data_bits 16 pre_data 0xFF00 gap 39881 toggle_bit 0 begin codes POWER 0x000000000000BF40 MUTE 0x0000000000003FC0 OPEN\CLOSE 0x00000000000017E8 1 0x000000000000CD32 2 0x0000000000008F70 3 0x0000000000004DB2 4 0x0000000000000FF0 5 0x0000000000000DF2 6 0x0000000000008D72 7 0x0000000000002FD0 8 0x0000000000002DD2 9 0x000000000000AD52 10+ 0x000000000000ED12 0 0x000000000000AF50 GOTO 0x0000000000006D92 SETUP 0x0000000000004FB0 SUBTITLE 0x000000000000CF30 LANGUAGE 0x000000000000EF10 ANGLE 0x0000000000006F90 FW 0x000000000000DD22 FF 0x0000000000009F60 PREV 0x0000000000005DA2 NEXT 0x0000000000005FA0 PLAY\PAUSE 0x0000000000001FE0 STOP 0x000000000000DF20 MENU 0x000000000000FD02 TITLE 0x000000000000FF00 UP 0x0000000000009D62 DOWN 0x0000000000009768 LEFT 0x0000000000001DE2 RIGHT 0x00000000000057A8 ENTER 0x00000000000055AA OSD 0x00000000000037C8 PBC 0x000000000000B748 VIDEO 0x0000000000007D82 ZOOM 0x0000000000007F80 L\R 0x000000000000F50A PROGRAM 0x00000000000035CA N\P 0x000000000000758A RETURN 0x0000000000007788 SLOW 0x000000000000D52A STEP 0x00000000000015EA A-B 0x000000000000B54A REPEAT 0x0000000000003DC2 CLEAR 0x000000000000BD42 RAN 0x000000000000956A VOL+ 0x000000000000F708 VOL- 0x000000000000D728 end codes end remote |
Делаем ссылку на девайс лирка:
1 | sudo ln -s /dev/lirc0 /dev/lirc |
Даем доступ к девайсу:
1 | sudo chmod 666 /dev/lirc0 |
Заскаем лирковский демон:
1 | sudo lircd |
Теперь настроим lirc, так что бы он управлял плеером.
1 | sudo nano ~/.lircrc |
Структура файла такая:
1 2 3 4 5 6 | begin prog = ... #программа которой передаются параметры. в нашем случае это irexec button = ... #название кнопки пульта, как мы ее назвали при настройке irrecord repeat =0 config = ... #собственно команда для управления плеером "mpc play". Для более полной справки - man mpc end |
Так же пропишем в автозагрузку демон irexec (/etc/rc.local):
1 | irexec -d /полный_путь_к_папке_пользователя/.lircrc |
LIRC настроен на работу с mpd
Перезагружаемся и наслаждаемся.
Только вот незадача. Надо же как то будет музыку закидывать. Для этого мы реализуем автомонтирование флешки с последующим копированием файлов.
1 | sudo nano /etc/udev/10-flash.rules |
Вписываем следующее:
1 2 3 4 | # First rule BUS=="usb", SUBSYSTEM=="block", KERNEL=="sd*", ACTION=="add", NAME="%k", GROUP="disk", RUN+="/etc/udev/scripts/udev-flash-mo$ #Second rule BUS=="usb", SUBSYSTEM=="block", KERNEL=="sd*", ACTION=="remove", RUN+="/etc/udev/scripts/udev-flash-mount remove %k" |
1 | sudo nano /etc/udev/scripts/udev-flash-mount |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | #!/bin/bash LOG="/var/log/udev" LOGCP="/home/solvex/logcp" sleep 3 DEV=`echo $2 | sed -n '/^sd[a-z][1-9]\?/p'` if [ "$1" = "add" ]; then if [ "$DEV" != "" ]; then echo "--- `date` ---" >> $LOG echo "Mounting /dev/$DEV" >> $LOG mkdir /mnt/$DEV >> $LOG 2>&1 chmod a+rwx /mnt/$DEV >> $LOG 2>&1 mount /dev/$DEV /mnt/$DEV -o sync,umask=0000,iocharset=utf8 >> $LOG 2>&1 ./etc/udev/scripts/udev-flash-mount copy $DEV fi elif [ "$1" = "remove" ]; then if [ "$DEV" != "" ]; then echo "--- `date` ---" >> $LOG echo "Unmounting /dev/$DEV" >> $LOG umount /dev/$DEV >> $LOG 2>&1 rm -rf /mnt/$DEV >> $LOG 2>&1 fi elif [ "$1" = "copy" ]; then if [ "$DEV" != "" ]; then if [ -e /mnt/$DEV/mpd ]; then echo "--- `date` --- ---Start---" >> $LOGCP cp -r /mnt/$DEV/mpd/* /home/music/music >> $LOGCP 2>&1 chmod -R 777 /home/music/music mpc update echo "--- `date` --- ---End---" fi fi fi |
В скрипте “/home/music/music” - это полный путь к директории, которую мы прописали в настройках MPD.
Для того что бы добавить файлы в наш медиацентр надо на флешке создать папку “mpd” и в нее закинуть музыку.
P.S.: Фотки чуть позже.
P.P.S.: Окраска и охлаждение в следующей части.





Оставить комментарий
Вы должны быть зарегистрированы чтобы оставить комментарий.