Введение
Когда я установил Squeezelite на мой Raspberry Pi, я использовал операционную систему Raspbian. Все работало довольно хорошо. Но когда я установил Raspberry в поративный старый радиоприемник, плеер стал поративным. Это означало что он мог быть установлен где угодно. Все работало хорошо но была проблема с выключением. Мне было необходимо подключаться по SSH (используя ServerAssistant на моем телефоне) и выполнять комманду shutdown. Это было не совсем удобно.Но потом я для себя открыл piCore. Это портированная на Raspberry Pi операционная система “TinyCore“. Это версия линукса оторая всегда загружаеться в оперативную память. Это означало что SD карта используеться толькол для чтения (за исключением случая когда нужно сделать бекап).
Результатом стала возможность выключения Raspberry без команды shutdown!
piCorePlayer
На форуме Raspberry Pi пользователь “sbp” разработал piCore образ с предустановленным плеером Squeezelite. Образ называеться piCorePlayer и располагается по следующему адресу:![](https://sites.google.com/site/picoreplayer/_/rsrc/1367933016870/config/piCoreAudioRasp_black.png.1367933016504.png)
Здесь можете найти обсуждение на форуме Raspberry Pi:
http://www.raspberrypi.org/phpBB3/viewtopic.php?f=35&t=29539
В использовании piCorePlayer очень прост. Просто запишите образ на SD карту и истановите ее в ваш Raspberry Pi, более подробные инструкции можете найти на сайте.
Но если вы любитель сделать все своими руками, в этом посте я вам расскажу как установить squeezelite самостоятельно. Но для начала вам нужно будет разобраться с частью функциональности piCorePlayer.
Но возможно вы узнаете что то новое по ходу работы.
Что нам необходимо
Смотри эту страницу.Так же стоит прочитать эти Советы новичкам по использованию Putty, если мы не знакомы с Putty.
Начало инструкции
Скачайте заархивированный образ:http://tinycorelinux.net/6.x/armv6/releases/6.0/piCore-6.0-SSH.zip
Распакуйте содержимое в папку. В папке должен оказаться .img файл. Этот файл нужно записан на SD карту используя Win32DiskImager, так же как вы это делали с Raspbian.
Вставте SD карту в ваш Raspberry, подключите к сети и включите устройство. Узнайте IP адрес Raspberry Pi используя панель усправления вашим роутером, и подключитесь к Raspberry по протоколу SSH (используя на пример Putty). Имя пользователя “tc”, пароль “piCore” (= обратите внимание на регистр букв!).
Увеличение второго раздела
Первое что вы сейчас должны сделать это увеличить второй раздел на SD карте. Этот раздел предназначен для хранения расширений, программ и домашней папки.Этот метод так же описан в README файле поставляемым вместе с образом системы.
Выполните комманду:
sudo fdisk /dev/mmcblk0
Команда fdisk перейдет в командный режим. Вы сможете управлять командами нажимая буквы. Для начала нажмите “p“, это должно привести к примерно таким результатам:
Command (m for help): p
Disk /dev/mmcblk0: 4025 MB, 4025483264 bytes
4 heads, 16 sectors/track, 122848 cylinders
Units = cylinders of 64 * 512 = 32768 bytes
Device Boot Start End Blocks Id System
/dev/mmcblk0p1 33 672 20480 c Win95 FAT32 (LBA)
/dev/mmcblk0p2 673 917 7840 83 Linux
Теперь пометьте значние start второго раздела /dev/mmcblk0p2. В моем случае оно равно 673.
Мы удалим второ раздел и создадим его снова но большего размера. Нажмите букву “d“, далее выберите второй раздел нажав цифру “2“. Это должно выглядеть так:
Command (m for help): d
Partition number (1-4): 2
После этого мы должны создать новый раздел. Сделаем это нажав “n” а потом “p” ('p' для создания раздела primary), далее “2” (указываем второй раздел), далее вводим значение “start number” которое мы запомнили ранее на предыдущем шаге (в моем случае это 673) и жмем enter для установление значения по умолчанию для последнего цилиндра.
Должно выглядеть примерно так:
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (1-122848, default 1): 673
Last cylinder or +size or +sizeM or +sizeK (673-122848, default 122848): Using default value 122848
Далее мы должны задать тип раздела как “linux”. Нажмите “t“, затем “2” (рабоатем со вторым разделом) и введите “83” это значние файловой системы Linux.
Command (m for help): t
Partition number (1-4): 2
Hex code (type L to list codes): 83
Нажмите “w” для записи всех изменений и выходите из fdisk.
Command (m for help): w
Перезагрузите raspberry:
sudo reboot |
Когда raspberry загрузиться, подключитесь по SSH снова и введите команду:
sudo resize2fs /dev/mmcblk0p2 |
Теперь ваш второй раздел увеличен до размера SD карты.
Поиск и установка расширения NANO
Вы не можете жить без текстового редактора в операционной системе Linux (или любой другой операционной системе...Я так же его использую как пример поиска и установки расширений для piCore.
Выполните команду:
tce |
Это перенес вас в коммандную строку tce. Нажмите “s“, для поиска, и затем введите “nano“. Это должно отобразить следующий результат:
tce - Tiny Core Extension browser
1. nano-doc.tcz
2. nano-locale.tcz
3. nano.tcz
Enter selection ( 1 - 3 ) or (q)uit:
Вам нужен “nano.tcz”, так что нажмем “3” и далее нажмем ввод (enter). Эта команда перенесет на на страницу описания расширения. Что бы выйти нажмите “q“, и далее нажмите “i“, чтобы установить nano.
После завершения установки нажмите “q” чтобы выйти из tce. Теперь у вас установлен nano.
И теперь вы знаете как искать расширения.
Из за того что таким образом очень накладно искать и устанавливать расширения, есть сокращенная команда, что бы все сделать в одну строчку:
tce-load -wi nano.tcz |
Намного быстрее правда?
Теперь снова перезагрузимся:
sudo reboot |
Примечание: На образе piCore SSH, приложение MidnightCommander так же доступно. Это приложение во многом похоже на старый “Norton Commander” файловый менеджер, который был популярен во времена DOS. Он может быть использован как файловый менеджер, но он так же содержит текстовый редактор.
Приложение можно запустить командой “mc“. Очень удобно перемещать между папками и редактировать файлы.
Сохранение изменений/новые файлы
В виду того что все происходит в оперативной памяти, все изменения в файлых а также созданные файлы будут утеряны после перезагрузки. Что бы зафиксировать изменения вы должны выполнить слудеующю команду:filetool.sh -b |
Эта очень важная команда, вы должны выполнять ее каждый рах когда нужно что то сохранить.
Сейча вы возможно заметили сообщения о безопасности в Putty (или другом вашем любимом SSH клиенте) при каждом подлючении к piCore. Сообщение спрашивает вас каждый раз принять ключи. Это из за того что SSH ключи генерируються при каждой загрузке ОС и из за того что вы до сих пор не воспользовались командой filetool.sh -b. Так что выполните эту команду.
Если вы добавили новые файлы, вам необходимо сказать piCore что эти фалы необходимо сохранить. Иначе после перезагрузки эти фалы будут утеряны. Что бы этого не произошло выполните команду filetool.sh -b.
Есть файл в котором перечислены все директории и файлы, сохраняемые этой командой. Этот файл называется .filetool.lst (да он начинается с точки).
Его можно открыть с помощью nano:
sudo nano /opt/.filetool.lst |
И вы увидите этот список файлов:
usr/local/etc/ssh/ssh_host_dsa_key usr/local/etc/ssh/ssh_host_dsa_key.pub usr/local/etc/ssh/ssh_host_ecdsa_key usr/local/etc/ssh/ssh_host_ecdsa_key.pub usr/local/etc/ssh/ssh_host_rsa_key usr/local/etc/ssh/ssh_host_rsa_key.pub |
Это пути к файлам содержащих SSH ключи. Обратите внимание что пути не начинаютья со слеша “/”, по какой то причине он не разрешен здесь.
Закройте файл без сохранения, мы не собиаремся что либо в нем менять пока. Я вам расказал про него только в обучающих целях.
Меняем Hostname
Мы будем использовать имя хоста Raspberry Pi как имя плеера для Squeezebox. Это позволит нам легко найти Raspberry Pi в списке DHCP клиентов на вашем роутере.Откройте этот файл:
sudo nano /opt/bootsync.sh |
И измените эту строку поменяв “box” на название вашего будущего плеера squeezebox:
/usr/bin/sethostname box |
Будьте Осторожны: Вы можете использовать только латинские буквы, цифры и минус (-)!
Сохраните и выйдите из редактора, после чего сохраните изменения на SD карту коммандой:
filetool.sh -b |
И перезагрузите Raspberry Pi.
Активация встроенной звуковой карты
Если вы будете использовать USB звуковую карту (я так и рекомендую в виду лучшего качества звука), тогда можете пропустить этот шаг. Если вы хотите использовать встроенный 3.5мм разъем, тогда вам нужно активировать звуковую карту на устройстве. Сначала вы должны выполнить следующие команды:sudo mount /dev/mmcblk0p1 sudo nano /mnt/mmcblk0p1/config.txt |
Это откроет файл config.txt в текстовом редакторе nano. Теперь поищите строки которые начинаються с “dtparam=” и добавтье “,audio=on” в конец строки. Должно получиться следующим образом:
dtparam=i2c=on,spi=on,i2s=on,audio=on |
Сохраните файл и перезагрузитесь:
sudo reboot |
Установка Alsa
Установим Alsa с помощью tce:tce-load -wi alsa.tcz tce-load -wi alsa-config.tcz |
Нам необходимо установить уровень громкости который будет устанавливаться при запуске. Для установки уровня громкости запустим alsamixer:
sudo alsamixer |
И использую клавишу F6 выберем нужную аудиокарту (Я использую USB звуковую карту), и затем установим уровень громкости клавишами со стрелками. Установите уровень громкости настолько высокий насколько это возможно без выхода в красныую зону.
Я также установил громкость мирофона на минимум для уверености что он не повлияет ни на что.
Если вы перезагрузитесь сейчас вы потеряете изменения. Что бы сохранить настройки вы должны выполнить следующие команды:
sudo alsactl store sudo echo "var/lib/alsa" >> /opt/.filetool.lst |
Первая команда сохраняет все в файл настроек, а вторая команда говорит piCore сохранить всю дерикторию alsa на SD карту огда будет вызвана команда filetool.sh -b. Вторая оманда добавляет строку “var/lib/alsa” в конец файла .filetool.lst.
Так же нам нужно указать piCore чтобы аудио настройки востанавливались после перезагрузки. Откройте файл содержащий команды выполняемые при загрузке:
sudo nano /opt/bootlocal.sh |
И добавите эту команду в конец файла:
alsactl restore |
Сохраните файл и выйдите из редактора. Не забудьте сохранить все изменения с помощью команды:
filetool.sh -b |
И перезагрузите Raspberry Pi.
Установка Squeezelite
Следующим шагом установим Squeezelite, это програмная версия Squeezebox. Скачать собрать и запустить можно с помощью этих коммнад:wget -O squeezelite-armv6hf http://ralph_irving.users.sourceforge.net/pico/squeezelite-armv6hf-noffmpeg sudo mv squeezelite-armv6hf /mnt/mmcblk0p2/tce chmod u+x /mnt/mmcblk0p2/tce/squeezelite-armv6hf |
(Спасибо Ralphy за предоставленный исполняемый файл squeezelite доступный для загрузки!)
Вам необходимо установить некоторые библиотеки:
tce-load -wi flac.tcz tce-load -wi libmad.tcz tce-load -wi libvorbis.tcz |
Из за того что я использую USB звуковую карту, мне наобходимо сказать squeezelite какое устройство нужно использовать для вывода звука. Что бы просмотреть список всех устройств выполните следующую команду:
/mnt/mmcblk0p2/tce/squeezelite-armv6hf -l |
Результат должен быть похожим на следующее:
Output devices:
null - Discard all samples (playback) or generate...
default:CARD=ALSA - bcm2835 ALSA, bcm2835 ALSA - Default Audio D...
sysdefault:CARD=ALSA - bcm2835 ALSA, bcm2835 ALSA - Default Audio D...
default:CARD=Set - C-Media USB Headphone Set, USB Audio - Defau...
sysdefault:CARD=Set - C-Media USB Headphone Set, USB Audio - Defau...
front:CARD=Set,DEV=0 - C-Media USB Headphone Set, USB Audio - Front...
surround40:CARD=Set,DEV=0 - C-Media USB Headphone Set, USB Audio - 4.0 S...
surround41:CARD=Set,DEV=0 - C-Media USB Headphone Set, USB Audio - 4.1 S...
surround50:CARD=Set,DEV=0 - C-Media USB Headphone Set, USB Audio - 5.0 S...
surround51:CARD=Set,DEV=0 - C-Media USB Headphone Set, USB Audio - 5.1 S...
surround71:CARD=Set,DEV=0 - C-Media USB Headphone Set, USB Audio - 7.1 S...
iec958:CARD=Set,DEV=0 - C-Media USB Headphone Set, USB Audio - IEC95...
Второе и третье устройство указывают на вывод звука на встроенную свуковую карту Raspberry. Качество звучания этого устройства не очень хорошее, поээтому я воспользуюсь внешней звуковой картой USB. Моя USB зуковая карта представленна остальными устройстваим в списке которые можно распознать по “C-Media”. Моя Logilink USB звуковая карта содержит “C-Media” чип.
Я хочу использовать только фронтальные динамики, поэтому я скажу squeezelite использовать “front:CARD=Set,DEV=0” .
Выбранное вами устройство запонмите или запишите в текстовый файл.
Запуск Squeezelite при загрузке
Я написал скрипт-демон для запуска Squeezelite при загрузке.Этот скрипт использует отдельный скрипт содержащий настройки “squeezelite_settings.sh”.
Срипт использует bash. Это значит что мы должны установить bash:
tce-load -wi bash.tcz sudo ln -s /tmp/tcloop/bash/usr/local/bin/bash /bin/bash sudo echo "bin/bash" >> /opt/.filetool.lst |
(symbolic link необходим так как Raspbian bash находиться в другой директории)
Скрипт-демон доступен на моем сайте, следующие комнды скачивают его и перемещают в нужную директорию и добавляют их в filetool.lst:
sudo wget http://www.gerrelt.nl/RaspberryPi/squeezelitehf.sh sudo mv squeezelitehf.sh /usr/local/etc/init.d/squeezelite sudo chmod a+x /usr/local/etc/init.d/squeezelite sudo wget http://www.gerrelt.nl/RaspberryPi/squeezelite_settings.sh sudo mv squeezelite_settings.sh /usr/local/bin sudo chmod a+x /usr/local/bin/squeezelite_settings.sh #add to .filetool.lst: sudo echo "usr/local/etc/init.d/squeezelite" >> /opt/.filetool.lst sudo echo "usr/local/bin/squeezelite_settings.sh" >> /opt/.filetool.lst |
Вы должны записать настройки звуковой карты в срипте настроек.
Откройте файл натроек с помощью nano:
sudo nano /usr/local/bin/squeezelite_settings.sh |
И найдите линию:
SL_SOUNDCARD="sysdefault:CARD=ALSA" |
Измените “sysdefault:CARD=ALSA” на выбранную вами ранее звуоквую карту (в мое случаае я измени ее на “front:CARD=Set,DEV=0?).
Если вы хотите использовать встроенную звуковую карту Raspberry, вам не нужно ничего менять.
Другие настройки также могут быть изменены, смотрите коментарии для болей информации.
Для проверки настроек вы должны запустить squeezelite командой:
sudo /usr/local/etc/init.d/squeezelite start |
Для того что бы piCore запускал squeezelite каждый раз при запуске Raspberry, мы должны вызнвать squeezelite скрипт из файла bootlocal.sh. Откроем его:
sudo nano /opt/bootlocal.sh |
И добавим следующие строки в конец:
# when using wifi, connect to wifi before this line /usr/local/etc/init.d/squeezelite start |
Сохраните и выйдите из редактирования файла.
Сохраним все на SD карту:
filetool.sh -b |
И перезагрузимся:
sudo reboot |
После перезагрузки squeezelite должен запустить и работать.
Но у Raspberry все еще проводное подключение к сети, что не совсем удобно для поративного устройства. Следующим шагом мы настроим WiFi.
Создание подключения к беспроводной сети
Для работы WiFi нам необходимо установить wifi расширение и коекакие другие пакеты:tce-load -wi wifi.tcz # patch script for slow scanning wifi adapters sudo wget -P /usr/local/bin http://www.gerrelt.nl/RaspberryPi/tinycore/wifi_g.sh sudo chmod a+x /usr/local/bin/wifi_g.sh sudo echo usr/local/bin/wifi_g.sh >> /opt/.filetool.lst filetool.sh -b tce-load -wi usbutils.tcz tce-load -wi firmware-ralinkwifi.tcz tce-load -wi firmware-rtlwifi.tcz |
Последние три комнды не обязательны но без них может быть плохо.
И перезегрузимся:
sudo reboot |
Теперь проверим доступность WiFi:
iwconfig |
Если на выходе вы видете “wlan0“ в списке, то все работает хорошо.
Для настройки WiFi запустите:
sudo /usr/local/bin/wifi_g.sh -w |
Следуйте за инструциями скрипта, чтобы выбрать правильную юеспроводную сеть.
Теперь у вас есть беспроводное подключение, но оно исчезнет после перезагрузки. Мы должны записаеть его в файл bootlocal.
Откроем файл:
sudo nano /opt/bootlocal.sh |
И добавим эти строчки перед запуском squeezelite:
/usr/local/bin/wifi_g.sh -a -w 2>&1 > /tmp/wifi.log |
Сохраним файл и не апудем выполнить эти строчки:
filetool.sh -b |
Перезагрузите ваш Raspberry и все готово.
Наслаждайтесь!
Комментариев нет:
Отправить комментарий