Доброй ночи (: Обещал сделать обзор на другие аудиофильские дистрибутивы - и вот, время пришло :)
Предыдущая статья на околомузыкальную тему была о дистрибутиве для ТВ-приставок (который я сам использую, дома, на RPi) OpenELEC.
В этот раз я пишу о сверхминималистичном дистрибутиве, который загружается за 5-10 секунд даже с медленной карты MicroSD на (относительно) медленных Raspberry Pi 1, 2 и 3 (наверное, на Zero и Compute Module тоже сработает). Его зовут... Archphile!
Описание дистрибутива
Кроме RPi, Archphile также подходит для следующих плат:
- Udoo
- Cubox-i
- Odroid C1+/C2
Что умеет Archphile? У данного дистрибутива нет обычного\привычного рабочего стола (он ему и не нужен - ведь дистрибутив создан быть оконечным для устройства воспроизведения аудио с носителей или из интернета). Зато у него есть прекрасная веб-оболочка, которая заодно является MPD-интерфейсом, а значит, к ней можно подключиться не только из браузера с компьютера или телефона, но и любыми MPD-клиентами (коих миллион на любую платформу). Вы можете добавлять треки с внешних носителей, удаленных сервисов, потоки-интернет-радио, в том числе высококачественное FLAC-радио.
Установка дистрибутива
Скачиваем последнюю версию из раздела Downloads вручную и распаковываем, или делаем это из терминала (текущая актуальная версия на момент поста - 0.99.4c Beta)
wget https://downloads.sourceforge.net/project/archphile/rpi2/archphile-0.99.4c-beta-rpi2.zip
Размер загружаемого архива - чуть менее 400 МБ. Архив при этом, как не странно, запакован не ZIP, а 7zip, о чём видно по команде file
. Поэтому распаковываем:
7z e archphile-0.99.4c-beta-rpi2.zip
Теперь нам нужно подготовить чистую флешку MicroSD объемом не менее, чем 2 ГБ. На самом деле, ОС весит меньше - около 800 МБ, остальное пространство используется для корректной работы системы. Хотя в теории должно быть возможно запихнуть всё на 1Гб-флешку, что особенно может быть актуально для старой RPi1.
Далее - будьте осторожны. Вам надо 100 раз перепроверить, как называется ваша всталвенная в ноутбук или настольный ПК флешка MicroSD. Сделать это можно, посмотрев внимательно на вывод команды mount
либо sudo fdisk -l
. Чаще всего, если у вас 1 винчестер в ПК или ноутбуке, флешка будет /dev/sdb либо /dev/sdc (нам нужна именно вся флешка, а не раздел, поэтому указываем букву без цифры раздела). У меня винчестер и SSD в ноутбуке, поэтому она - /dev/sdc. Учтите, все данные будут потеряны, так как мы пишем на неё образ ОС побайтово, целиком (программа DD - означает "Disk Dump", то есть дамп (образ) диска).
sudo dd if=./archphile-0.99.4c-beta-rpi2.img of=/dev/sdc bs=4M
Подредактируйте команду если вы скачали более новую версию Archphile или ваша флешка подключается по другому адресу. Аргумент bs в конце означает block size, то есть размер блока, и мы устанавливаем его в удобные 4 мегабайта.
Кстати, процесс записи на флешку никак не отображается. В этот момент у вам может показаться что ничего не происходит (а может даже начать чуть-чуть тормозить комп, в зависимости от адекватности USB-контроллера и его драйвера, а также загруженности компа), но на самом деле происходит запись на флешку. 2 Гб обычно пишутся около 2-3 минут, но у вас этот процесс может занять и 5-10 минут, если флешка совсем печальная. Сварите кофе, наберитесь терпения.
Да, если вы хотите контролировать процесс записи DD, можно записывать образ не программкой DD, а её улучшенной версией - dcfldd. Она есть в репозиториях убунты,
sudo apt install dcfldd
Далее синтаксис команды такой же, как в случае с dd, только замените dd на dcfldd. Аргументы все те же, только вы сможете видеть процесс записи.
В результате, когда запись будет окончена, консоль будет приветственно мигать вам строкой приглашения, а это значит, что можно сделать sync
(запустите эту команду без аргументов), чтобы удостовериться что данные из кэша все записались на флешку, и по завершению данной команды смело вытыкайте MicroSD и вставляйте её в ваш Raspberry или другую плату.
И, собственно, можно запитать малинку!
Настройка сети
Если вы планируете подключить вашу RPi по кабелю к модему и проводному интернету, то сейчас уже можете это делать (IP-адрес RPi, выданный вашим модемом, можно посмотреть на нём, обычно по адресу 192.168.1.1 в разделах DHCP Clients List либо ARP List или Lan Connections).
Если же вы, как я, хотите подключить RPi через внешний Wi-Fi usb-донгл (для 2 RPi) или через встроенный Wi-Fi (для 3 модели Raspberry Pi), то необходимо выполнить ещё настройку Wi-Fi по кабелю. Для этого, давайте подключимся к нашей малинке через кабель Ethernet. Вот как раздать ей интернет автоматически, через Network-manager в Ubuntu:
Обратите внимание на Shared to other computers. Остальные настройки (название подключение, и прочее) по вашему усмотрению. Воткните кабель витой пары в компьютер и RPi, выберете справа-вверху в настройке подключений ваше названное подключение, которое вы только что создали. Готово, RPi должна быть к вам подключена и на ней даже будет интернет. Но как узнать её IP быстрее всего? Есть два способа - посмотреть в ARP-таблицы, или просто просканировать подсеть. ARP-таблицы в разных ОС находятся по разным адресам, и там может быть много всякого мусора.
Установим быстрый и небольшой сканер сети nmap.
sudo apt install nmap
Просканируем сеть (Ubuntu по умолчанию раздает DHCP в подсети 10.42.0.0/24)
sudo nmap -v -sn 10.42.0.0-255
У меня малинка нашлась по адресу 10.42.0.137. У вас может быть другой. Давайте подключаться к ней по SSH, чтобы наконец сделать WiFi! По умолчанию пользователь root, пароль archphile, поэтому:
Не забываем исправить IP на свой. Вводим пароль archphile и нажимаем Enter (да, ввод пароля никак не отображается, привыкните уже:). Должны увидеть псевдографический баннер Archphile и строку приглашения. Отлично, мы внутри RPi!
Давайте настроим Wi-Fi. Для этого действуем по вот этому руководству - if you want to change from ethernet to wireless.
Здесь я опишу, для простоты. Файл настройки сети в Archphile - это /etc/netctl/archphile-network, давайте откроем его в текстовом редакторе nano:
nano /etc/netctl/archphile-network
Необходимо закомментировать всё ( поставить перед текстом решетку # ), кроме секции про wireless:
Description=’A basic dhcp wireless connection with WEP/WPA security’
Interface=wlan0
Connection=wireless
Security=wpa
#Security=wep
Key=’blabla4523′
ESSID=blablabla
## Uncomment below if your ssid is hidden
#Hidden=yes
#IP=dhcp
IP=static
Address=('192.168.1.200/24')
Gateway='192.168.1.1'
ExecUpPost=’/usr/bin/ntpd -gq || true’
Соответственно, здесь нужно выбрать вашу Security (если у вас wep, то закомментируйте wpa и раскомментируйте wep), в переменную Key вписать ваш пароль от Wifi, в переменную ESSID - ваше имя Wi-Fi (всё делаем без ошибок, внимательно и аккуратно). Ключ лучше взять в одинарные кавычки. Если ваш SSID скрыт - раскомментируйте так же строчку про Hidden=yes. Ещё один момент - если вы хотите дать RPi получать IP от модема динамически, раскомментируйте IP=dhcp и закомментируйте IP=statiс, а также Address и Gateway - они нужны только для статической адресации. Но я сделал Static, указал адрес и Gateway так как, по-моему, намного удобнее иметь плеер всегда на фиксированном адресе, чтобы не искать его в модеме и не назначать какие-то специальные правила на самом модеме.
Сохранять в редакторе файл nano можно комбинацией клавиш Ctrl+O (от слова Output, вывод) и Enter, выход из редактора - Ctrl+X (eXit).
Готово. Теперь можете перезагрузить ваш Rapsberry Pi, подключить в него (если надо) Wi-Fi USB модуль и ожидать появления устройства в сети (обычно 15-30 секунд максимум). В моем случае я просто зашел браузером на адрес 192.168.1.200 и увидел интерфейс:
Кстати, если вы используете внешние профессиональные звуковые карты, то рекомендую их подключить до включения RPi или перезагрузить малинку после подключения. Так он точно загрузит нужный драйвер, хотя, по идее, и в "динамике" тоже должен.
Окончательная настройка
Последняя проблема, с которой я столкнулся - это невозможность менять громкость через веб-интерфейс. У меня всплывала ошибка error: problems setting volume
. Если у вас такая же, зайдите снова по SSH:
Не забудьте ввести тот адрес который задали RPi. Теперь, попробуйте задать громкость вот так: mpc volume 80
- в терминале должна отобразиться та же ошибка - error: problems setting volume
. Если всё именно так, то сейчас всё легко исправим ;) Откроем конфиг Music Player Daemon'a:
nano /etc/mpd.conf
Ищем строчку mixer_type и меняем на software, разумеется не меняя синтаксис файла. Вот:
Выходим Ctrl+O, Ctrl+X. Готово. Теперь просто перезагрузите малинку, клацните в веб-интефейсе два раза на MY DAC (возможно, это лишее), добавьте громкости - всё должно работать.
Если будут вопросы - пишите, Archphile - замечательный дистрибутив для аудиофилов, который исключительно быстро загружается и работает.
Кстати, напомню, что вы можете теперь управлять RPi не только через браузер, но и любое MPD-совместимое клиентское приложение (есть например тулбары для XFCE/MATE, Unity, приложения для андроида и так далее).
С уважением,
Увлечённый айтишник и линуксоид из Ростова
Den Ivanov aka sxiii
за Пинк Флойд респект!
охренеть)))
@mrgreen рад, что вы оценили! =)
я оценил количество приложенных усилий, но ничего не понял, ибо не технарь))
можно на ты
Хорошо) Эти усилия примерно 5%, от того что я делаю ежедневно... Вот последняя плата которую мы проектирировали и писали прошивку, например:
Проектов много разных, а жизнь одна :D
$) интересно будет посмотреть на результат!
ну а я щаЗ ждуна рисую... в неканонической позе)