Ubuntu Медиацентр – Железо, софт

марта 10, 2010

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

Управлять всем этим делом хочется без всяких заморочек, поэтому решили сделать управление с помощью пульта дистанционного управления (ПДУ).

Что мы имеем?

Набор железа, отставшееся от апгрейда:

ИК-приемник для 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.: Окраска и охлаждение в следующей части.

Google Buzz Vkontakte Facebook Twitter Google Bookmarks Digg I.ua Закладки Yandex Myscoop Communizm Zakladok.net delicious БобрДобр.ru Memori.ru МоёМесто.ru Mister Wong

Категория: ubuntu | Комментарии | Trackback

Оставить комментарий

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

Google Reader

Последние треки

Последние записи

Последние комментарии

Метки

amv anime c++ Delphi dj smash google html javascript md5 Microsoft Opera php Professional RDP SEO stSocial ubuntu urldecode urlencode WGA Notifications windows xp Видео Разработка Социальные клипы Яндекс антиспам закладки защита медиацентр новая волна новый год оптимизация панель пародия парсер праздники программы продвижение работа раскрутка спам терминал юмор

Архив

Статистика