Форум XBMC и Kodi. Помощь, поддержка, обсуждение, плагины.
   

Вернуться   Форум XBMC и Kodi. Помощь, поддержка, обсуждение, плагины. > Помощь и поддержка > Поддержка платформы Linux \ Live

Ответ
 
Опции темы Опции просмотра
Старый 05.01.2021, 21:10   #1
Starcomputer
Member
 
Регистрация: 02.01.2014
Адрес: Донецк, ДНР
Сообщений: 56
По умолчанию Автономный медиаплеер на RPi3

Целью было создать автономный медиаплеер на Raspberry Pi3 для машины, который бы соответствовал некоторым требованиям:
1. Быстрая загрузка.
2. Автомонтаж флешек.
3. Автозапуск Kodi.

Была выбрана ОС Raspbian Stretch (2019-04-08-raspbian-stretch-lite).
Все далее сказанное касается именно этой системы.
Об установке системы, Kodi писать не буду - информации более чем достаточно.
Остановлюсь на решении основных задач. Сразу должен сказать, что все это не плод собственных разработок, а результат долгого рытья инета
Итак автомонтаж флешек ....
Для этого воспользуемся "pmount":
Код:
sudo apt-get install pmount
Затем нужно создать правило для автомонтирования / размонтирования флешек:
Код:
sudo touch /etc/udev/rules.d/usb.rules
и вписываем в него строчку:
Код:
ACTION=="add", KERNEL=="sd[a-z][0-9]", TAG+="systemd", ENV{SYSTEMD_WANTS}="usbstick-handler@%k"
Потом создаем соответствующий сервис:
Код:
sudo touch /lib/systemd/system/usbstick-handler@.service
с содержимым:
Код:
[Unit]
Description=Mount USB sticks
BindsTo=dev-%i.device
After=dev-%i.device

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/local/bin/cpmount /dev/%I
ExecStop=/usr/bin/pumount /dev/%I
Создадим скрипт для монтирования:
Код:
sudo touch /usr/local/bin/cpmount
с таким содержимым:
Код:
#!/bin/bash
if mountpoint -q /media/usb1
then if mountpoint -q /media/usb2
   then if mountpoint -q /media/usb3
      then if mountpoint -q /media/usb4
         then echo "Too many USB !"
         else /usr/bin/pmount --umask 000 --noatime -w --sync $1 usb4
         fi else /usr/bin/pmount --umask 000 --noatime -w --sync $1 usb3
      fi else /usr/bin/pmount --umask 000 --noatime -w --sync $1 usb2
   fi else /usr/bin/pmount --umask 000 --noatime -w --sync $1 usb1
fi
и сделаем его исполняемым:
Код:
sudo chmod u+x /usr/local/bin/cpmount
Все, после перезагрузки все работает
Автозапуск Kodi ...
Создаем сервис для Kodi:
Код:
sudo touch /lib/systemd/system/kodi.service
со следующим содержимым:
Код:
[Unit]
Description=Kodi Media Center
After=remote-fs.target network-online.target
Wants=network-online.target

[Service]
User=pi
Group=pi
Type=simple
ExecStart=/usr/bin/kodi-standalone

[Install]
WantedBy=multi-user.target
и активируем его:
Код:
sudo systemctl enable kodi
после перезагрузки Kodi запустится автоматом
Ускорение загрузки системы ...
Надо сказать это был самый сложный для меня процесс
Для начала смотрим скорость загрузки системы:
Код:
systemd-analyze
Startup finished in 1.821s (kernel) + 15.648s (userspace) = 17.470s
Да, 17 с лишним секунд это много
Для начала откорректируем сам загрузчик, добавив в /boot/cmdline.txt перед rootwait следующие опции: quiet loglevel=0 consoleblank=0 logo.nologo
ВНИМАНИЕ ! Все должно быть в ОДНУ строку.
Данные опции это:
quiet - тишина, убирает вывод лишних сообщений;
loglevel=0 - вывод только критических сообщений;
consoleblank=0 - не совсем разобрался, но помогает;
logo.nologo - гасит вывод логотипа (три малинки).
Также в /boot/config.txt нужно добавить следующее:
Код:
# Запрет радужной заставки
disable_splash=1
# Задержка загрузчика
boot_delay=0
# Разгон Raspberry
force_turbo=1
# Запрет блютуза (мне не нужен)
dtoverlay=pi3-disable-bt
# Запрет WiFi (мне не нужен)
dtoverlay=pi3-disable-wifi
# Включение аппаратных часов
dtoverlay=i2c-rtc,ds3231
# Увеличение памяти для дисплея
gpu_mem=300
start_x=1
Далее посмотрим, какие модули больше всего тормозят загрузку:
Код:
systemd-analyze blame
         11.646s dhcpcd.service
          4.667s hciuart.service
          1.688s dev-mmcblk0p2.device
          1.613s raspi-config.service
          1.218s networking.service
           790ms dphys-swapfile.service
           617ms keyboard-setup.service
           563ms systemd-logind.service
           368ms avahi-daemon.service
           367ms systemd-timesyncd.service
           363ms rsyslog.service
           361ms rng-tools.service
           334ms wifi-country.service
           332ms systemd-udev-trigger.service
           325ms triggerhappy.service
           323ms dev-mqueue.mount
           313ms systemd-fsck@dev-disk-by\x2dpartuuid-88eab95e\x2d01.service
           303ms ssh.service
           270ms systemd-fsck-root.service
           264ms systemd-udevd.service
           245ms run-rpc_pipefs.mount
           237ms systemd-journald.service
           231ms sys-kernel-debug.mount
           228ms wpa_supplicant.service
           185ms systemd-tmpfiles-setup-dev.service
           149ms kmod-static-nodes.service
           144ms systemd-modules-load.service
           135ms systemd-tmpfiles-setup.service
           127ms plymouth-start.service
           124ms user@1000.service
           121ms fake-hwclock.service
           121ms systemd-journal-flush.service
           102ms systemd-remount-fs.service
           100ms systemd-random-seed.service
            87ms polkit.service
            76ms systemd-update-utmp.service
            70ms nfs-config.service
            69ms console-setup.service
            55ms systemd-sysctl.service
            48ms plymouth-quit-wait.service
            42ms alsa-restore.service
            40ms rc-local.service
            33ms sys-kernel-config.mount
            33ms systemd-user-sessions.service
            31ms boot.mount
            30ms systemd-update-utmp-runlevel.service
            29ms systemd-rfkill.service
            29ms plymouth-quit.service
            23ms plymouth-read-write.service
И начнем их отключать:
Код:
systemctl disable raspi-config
systemctl disable networking
systemctl disable systemd-timesyncd
systemctl disable wpa_supplicant
systemctl disable fake-hwclock
systemctl disable wifi-country
systemctl disable dphys-swapfile
systemctl disable avahi-daemon
Перед отключением dhcpcd нужно поднять сеть на systemd-network.
для этого в /etc/systemd/network создаем конфиг с расширением ".network":
Код:
sudo touch /etc/systemd/network/eth-0.network
со следующим содержимым:
Код:
[Match]
Name=e*

[Network]
DHCP=yes

[DHCP]
RouteMetric=202
Где:
Name - имя интерфейса (все, что на "e");
DHCP - понятно
RouteMetric - не смог разобраться в сути, но посмотреть метрику можно командой "route -n":
Код:
route -n
Kernel IP routing table
Destination     Gateway         Genmask             Flags Metric Ref    Use Iface
0.0.0.0           192.168.10.1  0.0.0.0                UG    202    0        0   eth0
192.168.10.0  0.0.0.0           255.255.255.0     U       0       0        0   eth0
192.168.10.1  0.0.0.0           255.255.255.255 UH     202    0        0   eth0
Затем отключаем dhcpcd:
Код:
systemctl disable dhcpcd
и включаем systemd-networkd:
Код:
systemctl enable systemd-networkd
systemctl enable systemd-resolved
Перегружаемся и смотрим результат:
Код:
systemd-analyze
Startup finished in 1.163s (kernel) + 2.746s (userspace) = 3.909s
менее 3 сек. - уже вполне приемлемо
На этом пока все.
Если у кого-то будут комментарии и советы - буду весьма рад
__________________
GA-E350N / AMD E-350D / AMD Radeon HD 6310 / AMD A45 FCH / Realtek ALC887 / Realtek GbE LAN / TL-WN722N
Ubuntu 18.04 / XBMC 18.7
Starcomputer вне форума   Ответить с цитированием
   
Старый 05.01.2021, 21:23   #2
Starcomputer
Member
 
Регистрация: 02.01.2014
Адрес: Донецк, ДНР
Сообщений: 56
По умолчанию

Ну и собственно фото еще пока не совсем готового девайса ...


Ставится в Ниве-Шевроле вместо крышки подушки безопасности со стороны пассажира, все равно ее (подушки) отродясь не было. Все остальное внутри торпеды.
__________________
GA-E350N / AMD E-350D / AMD Radeon HD 6310 / AMD A45 FCH / Realtek ALC887 / Realtek GbE LAN / TL-WN722N
Ubuntu 18.04 / XBMC 18.7
Starcomputer вне форума   Ответить с цитированием
Старый 17.03.2021, 03:07   #3
Elmariachi
Member
 
Регистрация: 10.01.2011
Сообщений: 65
По умолчанию

Это очень круто ! Спасибо . Продолжайте проект.
__________________
https://clck.ru/NJerQ Лучшие дебетовые карты для вывода, обмена, хранения крипты и фиата
Elmariachi вне форума   Ответить с цитированием
Старый 31.03.2021, 18:47   #4
SERG23
Senior Member
 
Регистрация: 30.04.2012
Сообщений: 105
По умолчанию

Если у кого-то будут комментарии и советы - буду весьма рад
----------------------------------------------------------------
Было бы интересно увидеть головное устройство.
Видео наблюдение motionEye с плагином kodi (IP Cam или Surveillance Cameras )
С камерой заднего вида при включение задней передачи.
Навигация GPS Navit
Управление через Multi-touch LCD panel
С разделением дисплея пополам в вертикальном режиме
В Верхний Kodi нижний Navit
SERG23 вне форума   Ответить с цитированием
Старый 05.06.2021, 10:46   #5
shum
Junior Member
 
Регистрация: 19.11.2017
Сообщений: 24
По умолчанию

А можно более подробно про начинку?
shum вне форума   Ответить с цитированием
Старый 12.09.2021, 13:31   #6
Starcomputer
Member
 
Регистрация: 02.01.2014
Адрес: Донецк, ДНР
Сообщений: 56
По умолчанию

Цитата:
Сообщение от SERG23 Посмотреть сообщение
Если у кого-то будут комментарии и советы - буду весьма рад
----------------------------------------------------------------
Было бы интересно увидеть головное устройство.
Видео наблюдение motionEye с плагином kodi (IP Cam или Surveillance Cameras )
С камерой заднего вида при включение задней передачи.
Навигация GPS Navit
Управление через Multi-touch LCD panel
С разделением дисплея пополам в вертикальном режиме
В Верхний Kodi нижний Navit
1. Собственно это и есть головное устройство. Raspberry + Дисплей + БП (преобразователь 12В->5В.
2. Зачем ?
3. Камера отдельно в зеркале (там две камеры, навигатор и т.п.). Под линукс нормального навигатора нет, а если еще и карты свежие нужны, то совсем плохо
__________________
GA-E350N / AMD E-350D / AMD Radeon HD 6310 / AMD A45 FCH / Realtek ALC887 / Realtek GbE LAN / TL-WN722N
Ubuntu 18.04 / XBMC 18.7
Starcomputer вне форума   Ответить с цитированием
Старый 12.09.2021, 13:33   #7
Starcomputer
Member
 
Регистрация: 02.01.2014
Адрес: Донецк, ДНР
Сообщений: 56
По умолчанию

Цитата:
Сообщение от shum Посмотреть сообщение
А можно более подробно про начинку?
Raspberry, дисплей, понижающий БП 12В->5В. Это вся начинка.
__________________
GA-E350N / AMD E-350D / AMD Radeon HD 6310 / AMD A45 FCH / Realtek ALC887 / Realtek GbE LAN / TL-WN722N
Ubuntu 18.04 / XBMC 18.7
Starcomputer вне форума   Ответить с цитированием
Ответ
 


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
подскажите медиаплеер для 4k artur7000 Оборудование для XBMC 6 01.03.2019 12:19
трансляция windows экрана на OpenELEC+Rpi3 veguska Поддержка платформы Linux \ Live 3 12.07.2017 07:59
Аналоговый ТВканал в инет через RPi3+OpenELEC razzor Поддержка платформы Linux \ Live 3 03.05.2017 14:19
медиаплеер Icy Box (RaidSonic) Мария Оборудование для XBMC 4 08.10.2016 11:26
Медиаплеер для XBMC 18504 Оборудование для XBMC 23 25.09.2013 20:56


Текущее время: 06:48. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2023, Jelsoft Enterprises Ltd.