Показать сообщение отдельно
Старый 16.02.2014, 17:47   #3
kononvaler
Новый Пользователь
 
Регистрация: 16.02.2014
Город: Алма-ата
Регион: Казахстан
Машина: Montero Sport
Сообщений: 14
kononvaler is on a distinguished road
По умолчанию

3. Расширяемся.
Само-собой, что в наше время 16Gb для хранения мультимедиа, а если у нас планшет и само-собой подразумевается просмотр видео, это очень мало. В предыдущем посте была картинка точки доступа Tp-Link TL-MR3020, где хорошо виден не используемый пока LAN порт. Вот его-то и можно задействовать для наших целей, в чем поможет еще одна чудная железка RaspberryPi http://www.raspberrypi.org/

Raspberry Pi был куплен еще в октябре прошлого года, посылка пришла за 9 дней, а хорошо это помню, потому что обсуждалось на форуме Linuxforum.kz . Использовать предполагалось как XBMC хосты к медиа-серверу для телевизоров с HDMI , но без поддержки сети. Пультов в Алматы я к ним не нашел, но зато он оказался как нельзя кстати для моих целей. А именно как устройство для хранения и передачи данных, раз уж наш Nexuz 7 в этом весьма ограничен.
Купил новую SD карту на 4GB Ridata 10 класса всего за 1200 тенге (240 руб.). Такими темпами скоро их будут давать на сдачу. P.S. Прошла буквально неделя, не закончил еще опыты и описание, как эта карта благополучно издохла. Теперь купил Transend на те-же 4 гига, тот-же 10 класс, но за 1450 тенгенов(290 руб.).
Все готово к установке , а так-как Debian мне ближе по привычкам, то качаю образ 2013-09-25-wheezy-raspbian.zip http://www.raspberrypi.org/downloads, это оптимизированный образ Debian Wheezy для Raspberry.
Вставляю карту памяти , распаковываю скаченный образ в /tmp и иду туда терминалом:
cd /tmp
смотрим на подключенные устройства : ls -la /dev/disk/by-id
и видим запись типа mmc-NCard_0x0000bc71 -> ../../mmcblk0
наша карта памяти mmcblk0 и путь к ней /dev/mmcblk0 , если сомневаетесь, то лучше проверьте, иначе дальнейшими действиями можно затереть рабочий диск .
Дальше совсем просто, используя утилиту dd копируем скаченный и распакованный образ на карту:
sudo dd if=2013-09-25-wheezy-raspbian.img of=/dev/mmcblk0
5785600+0 записей получено
5785600+0 записей отправлено
скопировано 2962227200 байт (3,0 GB), 1344,32 c, 2,2 MB/c (для Transend показатель оказался получше 1274,49 c, 2,3 MB/c)
где if=образ_системы of=SD_карта .
(Если хочется подробностей, то здесь http://www.armlinux.ru/создание-sd-к...ионной-систем/ описание под разные системы и разными способами. )
В итоге, как видим, через 23 минуты карта с установленной системой готова. Вставляем карту в Raspberry , подключаем сеть и питание.
Что дальше? Хорошо если вы подключили через HDMI монитор, и сразу попадете в консоль, у меня же дома кроме телека (а он обычно по вечерам, когда я пишу, занят) мониторов с HDMI нет. Конечно, наша железка получит IP адрес с DHCP сервера (а если его в сети нет, то и не получит), в моем случае этим сервером в домашней сети является роутер, к тому-же старый Billion, у которого в вэб-интерфейсе нет информации по получившим адреса клиентам. Если вы в такой-же ситуации, то ставим и открываем nmap (или zenmap с GUI):
valery@valery-HP-ProBook-4740s:~$ nmap -T4 -F 192.168.1.1-254

Starting Nmap 5.21 ( http://nmap.org ) at 2013-10-28 21:01 ALMT

Nmap scan report for 192.168.1.2
Host is up (0.032s latency).
Not shown: 99 closed ports
PORT STATE SERVICE
80/tcp open http

Nmap scan report for 192.168.1.3
Host is up (0.025s latency).
Not shown: 98 closed ports
PORT STATE SERVICE
22/tcp open ssh
111/tcp open rpcbind

Nmap scan report for 192.168.1.6
Host is up (0.027s latency).
Not shown: 99 closed ports
PORT STATE SERVICE
22/tcp open ssh

Nmap done: 254 IP addresses (6 hosts up) scanned in 5.19 seconds

Часть результатов я выкинул, оставил только три для примера. С 22 ssh портом устройство только одно, с 6-м адресом, можно предположить что это наш Pi. Можно просто отключть сеть от него и еще раз просканироовать сеть и посмотреть на разницу.

Возвращаем сеть на место и пытаемся соединиться :
valery@valery-HP-ProBook-4740s:~$ ssh pi@192.168.1.6
The authenticity of host '192.168.1.6 (192.168.1.6)' can't be established.
ECDSA key fingerprint is d8:9e:eb:2b:c5:88:84:2c:5f:a3:48:4c:4e:7c:89:7b.
Are you sure you want to continue connecting (yes/no)? yes # здесь надо подтвердить вписав "yes"
Warning: Permanently added '192.168.1.6' (ECDSA) to the list of known hosts.
pi@192.168.1.6's password: # здесь вводим пароль по умолчанию "raspberry"
Linux raspberrypi 3.6.11+ #538 PREEMPT Fri Aug 30 20:42:08 BST 2013 armv6l

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.

NOTICE: the software on this Raspberry Pi has not been fully configured. Please run 'sudo raspi-config'

pi@raspberrypi ~ $ # Ура, мы внутри!
Обратим внимание на последнюю строку перед приглашением в командную строку, и выполним эту рекомендацию.
sudo raspi-config


Выбираем первый пункт для расширения root раздела на всю карту,
во втором пункте можно сменить пароль на более простой (в предыдущей версии образа системы для смены пароля на трехсимвольный приходилось вносить изменения , в этой таких ограничений нет),
а вот в 4-м пункте :
Internationalisation Options
│ I1 Change Locale к en-GB локализации отметим для добавления ru-RU UTF-8
│ I2 Change Timezone выбираем стрелками вверх Asia и сразу видим Almaty
│ I3 Change Keyboard Layout выполняем для применения изменений от Change locale
Finish
Проверяем русский шрифт, переключение по Ctrl+Shift.

С основной установкой закончено, следующий этап – установка мультимедийного сервера.
Как самый легкий, был выбран miniDLNA.
Так как он есть у нас в репозитарии, то просто
sudo apt-get install minidlna

Свою приготовленную специально для этих целей 64 GB флешку я отформатировал для всеобщей совместимости в FAT32 и дал метку 64GB_RIDATA, тем более что файлы размером более 4GB просматривать не предполагается. При выборе флешки главными критериями были цена и объем, а так как скорость записи и чтения в нашем случае не критичны ( у Raspberry USB версии 2.0) то купил самую дешевую для данного объема, ну почти самую дешевую, еще обратил внимание на знакомый бренд. Скопировал на нее несколько видео и аудио файлов для тестов.
Все готово, вставляем флешку в Pi и смотрим как она видна в системе
sudo blkid
/dev/mmcblk0p1: SEC_TYPE="msdos" LABEL="boot" UUID="2654-BFC0" TYPE="vfat"
/dev/mmcblk0p2: UUID="548da502-ebde-45c0-9ab2-de5e2431ee0b" TYPE="ext4"
/dev/sda1: LABEL="64GB_RIDATA" UUID="3157-8F10" TYPE="vfat"

обращаем внимание на нашу флешку, а точнее на ее UUID, по нему и будем производить монтирование, а то мало ли что еще сможет смонтироваться в sda1, тогда как UUID он и в африке... Добавим директорию, куда будем монтировать
sudo mkdir /media/minidlna
поменяем пользователя для этой директории
sudo chown minidlna:minidlna /media/minidlna
Теперь будем прописывать флешку для автомонтирования в эту директорию при старте системы, это удобно будет тем более потому, что отключать и подключать ее буду при отключенном Pi.
Прежде чем править fstab , узнаем еще ID minidlna, чтобы дать серверу все права на нашу медиатеку при монтировании:
pi@raspberrypi ~ $ id minidlna
uid=107(minidlna) gid=110(minidlna) groups=110(minidlna)

Теперь добавим последнюю строку в fstab:
sudo nano /etc/fstab
proc /proc proc defaults 0 0
/dev/mmcblk0p1 /boot vfat defaults 0 2
/dev/mmcblk0p2 / ext4 defaults,noatime 0 1
# a swapfile is not a swap partition, so no using swapon|off from here on, use
UUID=3157-8F10 /media/minidlna vfat rw,noatime,uid=107,gid=110,user,iocharset=utf8 0 0
(монтируем устройство с заданным UUID=3157-8F10; в директорию /media/minidlna; тип файловой системы vfat; права чтение/запись, установить пользователя с указанными uid:gid, использовать кодировку Utf-8 ; не делать проверку диска 0 0)
С кодировкой могут быть проблемы, например VLC плеер отображал русские названия директорий и файлов вопросиками, пока не добавил в fstab опцию iocharset=utf8 . Не знаю правда как это будет выглядеть для директорий, скопированных в Windows. У них своё видение стандартов, а проверять лень, ибо дома винды нет.
Пробуем смонтировать:
sudo mount –all

Проверяем, что получилось:
pi@raspberrypi ~ $ ls -la /media/minidlna/
total 52
drwxr-xr-x 4 minidlna minidlna 16384 Jan 1 1970 .
drwxr-xr-x 3 root root 4096 Oct 29 21:56 ..
drwxr-xr-x 3 minidlna minidlna 16384 Oct 30 2013 Music
drwxr-xr-x 3 minidlna minidlna 16384 Oct 30 2013 Video

Как видим, все как и задумывалось, и директории Music и Video принадлежат пользователю minidlna. Теперь и пришла пора настроить наш уже установленный minidlna. Для этого окрываем для правки его конфигурационный файл:
sudo nano /etc/minidlna.conf
правим только одну строку (по умолчанию это media_dir=/var/lib/minidlna), указывающую на наш каталог с мультимедиа, то есть на директорию , куда монтируется флешка:
media_dir=/media/minidlna

Перезапустим сервер
sudo service minidlna restart

Можем проверять что получилось например через плеер VLC:
Медиатека видна

Фильм показывает

Что любопытно, в предыдущих версиях minidlna , цитирую с одного из описаний устанвки : "Сервер рассчитан на накопление файлов - новые файлы добавляются, а удаленные не убираются. Решение очень простое - удалять индексный файл /var/lib/minidlna/files.db при остановке сервера. При следующем запуске каталоги будут просканированы и будет создан новый индексный файл. "
Теперь это оказывается не нужно, при перезапуске сервера (сервиса) удаленные файлы чудесно исчезают.
P.S. Опыт показал, что не все хорошо все-же с обновлением и удалением файлов из базы. Но я не стал делать удаление индексного файла по запуску сервера, потому-что индексирование большого количества файлов занимает продолжительное время, а так как переиндексация нужна только при добавлении/удалении контента, то я просто вынес индексный файл на ту-же флешку, и явно указал медиа-директории в конфигурационном файле:
sudo nano /etc/minidlna.conf
media_dir=A,/media/minidlna/Music
media_dir=V,/media/minidlna/Video
media_dir=V,/media/minidlna/Клипы
db_dir=/media/minidlna
И теперь можно будет просто удалять его при необходимости в то время когда будет изменяться содержимое флешки .

Для воспроизведения из сети я использовал вначале МедиаХауз UPnP / DLNA Browser , для воспроизведения видео он запрашивает использование любого из установленных плееров с возможностью запоминания выбора в дальнейшем. Аудио воспроизводит сам, но какие-то заморочки с плейлистами. Буквально на днях установил UPnPlay , для видео так-же просит внешний рендерер, зато для аудио сам сканирует папку и добавляет в плейлист, возможность перемешивания, и , что мне понравилось, так-как есть интернет в машине, то UPnPlay

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

Продолжение следует....

Последний раз редактировалось kononvaler; 16.02.2014 в 21:37.
kononvaler вне форума   Ответить с цитированием