Музыкальный сервер
Установка и настройка операционной системы
Так как в качестве системного диска использовался SSD, пришлось погуглить и подумать, как использовать преимущества этой технологии, и при этом не загубить сам диск банальным незнанием особенностей работы SSD. В результате все сделал по вот этому руководству.
Если вкратце — было создано три партиции (root, var и usr), при создании выравнивал их по секторам и включал поддержку TRIM.
После этого, уже на простом и медленном диске был создан swap файл, а для самых востребованных директорий, куда система постоянно пишет логи или создает временные файлы были прописаны виртуальные партиции, которые система создает в памяти каждый раз при загрузке и благополучно прощается с ними при выключении. Вот как эта часть системы выглядит в файле /etc/fstab:
tmpfs /tmp tmpfs rw,nosuid,noexec,mode=01777 0 0 tmpfs /var/run tmpfs rw,nosuid,noexec,mode=01777 0 0 tmpfs /var/spool tmpfs rw,nosuid,noexec,mode=01777 0 0 tmpfs /var/log tmpfs rw,nosuid,noexec,mode=01777 0 0
В конфигах были выключены все ненужные сервисы, ядро было переконфигурировано, в числе прочего оттуда были выкинуты все звуковые драйвера. Мило, не правда ли? Делаем музыкальный сервер и выключаем поддержку звуковых карт. О причинах читайте в главе, посвященной борьбе за звук.
Для нормальной работы нужен только порт musicpd из /usr/ports/audio. Он сам установит нужные библиотеки, очень советую при конфигурации включить поддержку ffmpeg, тогда список поддерживаемых форматов резко увеличиться. У меня примерно 95% музыки в формате FLAC, тем не менее поддержка других lossless форматов греет душу.
Кроме того были установлены:
- Midnight Commander: удобно работать с файлами и править конфиги
- TinyHTTPD: для того, чтобы можно было локально вытаскивать обложки дисков
- ncmpc и ncmpcpp: два очень удобных консольных клиента для управления MusicPD
Маленький хак: так как мой вебсервер имеет поступ на чтение к музыкальной библиотеке, потеницально через него можно скачать мою музыку, чего я очень не хотел. Если бы в качестве сервера использовался Apache, защитить музыку и разрешить скачивание только JPG файлов не составило бы особого труда. Однако TinyHTTPD не может похвастаться богатством настроек, но решение все таки есть, вот такая строка в настройках thttpd.conf:
urlpat=**.flac|**.ape|**.mp3|**.wav|**.dsf
Все указанные расширения файлов не будут скачиваться до тех пор, пока вы ссылка на него не будет совпадать с вашим IP или адресом сайта. Можете назвать меня параноиком, у большинства людей такие сервера или находятся в домашней сети за файрволлом, или вообще не подключены к Интернету, но все же я хотел защитить свою коллекцию музыки от неожиданностей, и это в принципе получилось.
Одной из проблем, с которой я столкнулся, была поддержка кодировки UTF8 в FreeBSD. Русские буквы отказывались правильно отображаться, почитав советы, все решил. Правда оказалось, что для счастья мне не надо было выполнять все шаги, если нужно просто работать с русскими именами файлов и видеть русские тэги в консольных программах управления, то достаточно создать файл .login_conf в своей домашней директории с таким содержимым:
me:\
:charset=UTF-8:\
:lang=en_US.UTF-8:\
:setenv=LC_COLLATE=C:
При удаленном подключении по SSH (а у меня на этом компьютере ни монитора, ни клавиатуры нет) русские буквы начинают работать сразу после создания новой сессии.
Мощности у моего процессора намного больше, чем нужно почти во всех случаях, поэтому был установлен сервис управления частотой процессора и энергопотреблением powerd с адаптивным режимом работы, прописываем в rc.conf:
powerd_enable="YES"
powerd_flags="-a adaptive -n adaptive"
Это совершенно не повлияло на звук, по крайней мере я этого не заметил, а температура процессора упала примерно на 7 градусов.
Бюджетный музыкальный сервер | Digital Artcore says:
[…] года назад я опубликовал подробное описание устройства, собранного для прослушивания музыки. […]
Мельница “Химера” | Digital Artcore says:
[…] Раньше я обязательно купил бы диск и радовался хорошей музыке, но дисков стало столько, что ставить некуда, да и слушаю музыку последнюю пару лет только с музыкального сервера. […]