Если инфорация оказалась интересна и/или полезна, не побрезгуйте, оставьте комментарий ;)
Показаны сообщения с ярлыком OSMC. Показать все сообщения
Показаны сообщения с ярлыком OSMC. Показать все сообщения

воскресенье, 6 декабря 2020 г.

Wi-Fi-адаптер на чипе Realtek в OSMC (Debian, Ubuntu). Как заставить работать

-------------------------------------

2021-09-14

В августовском обновлении системы пришло новое ядро 5.10.32. С ним драйвер из указанного ниже репозитория Гитхаба не собирается. Очень надеюсь, что автор репозитория модифицирует код под новое ядро. Пока приведенная ниже схема не работает (на этапе компиляции).

Это обновление принесло и еще одну проблему - сломался SSH-доступ к OSMC. Даже чистая установка не исправляет проблему. А без доступа по SSH драйвер можно собирать только локально подключив клавиатуру, монитор и кабель с интернетом.

 Поэтому перешел на LibreElec. В нем драйверы Realtek есть в базе, и автор не грозится их удалить. Есть у системы и свои особенности, например, слабые возможности командной строки. Отключена команда apt-get. Нельзя доставить пакеты, например, редактор vim. 

-------------------------------------

Моя Малинка дала сбой. Перестала загружаться. Печальный смайлик и дальше всё. Логи ясности не внесли. Не нашел даже подходящей строки для поиска в Гугле. Абстрактные запросы тоже ничего не дали. fsck криминала не нашел. Принял решение обновить систему. Пришлось побороться с неразрешенными зависимостями и невозмжностью обновить некоторые файла. Склоняюсь к тому, что либо флешка уже начала дохнуть, либо файловая система накопила ошибки от периодических выключений без "мягкого" выключения.

Не относится напрямую к настройке Wi-Fi. как запустить fsck для корневого раздела:

1. Можно сделать файл в корне и перегрузить устройство:

osmc@osmc:~$ sudo touch /forcefsck
osmc@osmc:~$ sudo reboot

2. Подправить /etc/fstab, заменив для раздела 0 на 1:

osmc@osmc:~$ sudo nano /etc/fstab
osmc@osmc:~$ /dev/mmcblk0p1  /boot    vfat     defaults,noatime    0   0
osmc@osmc:~$ /dev/mmcblk0p2  /    ext4      defaults,noatime    0   1

Теперь к основной теме статьи. Тут я писал, что в новом ядре для OSMC 4.19 был удален драйвер для чипов беспроводных адаптеров Realtek. Тогда моим предложением было откатиться на старую версию ядра 4.14. Но в этот раз у меня такой возможности не было. Система была полностью обновлена.

Итак. Подключаем Raspberry к проводной сети.

Точка старта. Общий ход сборки и установки драйвера:
https://discourse.osmc.tv/t/usb-wifi-device-wth-rtl8812au-chipset-is-not-working/84070

Прямое следование инструкции мне не помогло.

1. Устанавливаем необходимые пакеты:

osmc@osmc:~$ sudo apt-get install  rbp2-headers-$(uname -r)
osmc@osmc:~$ sudo apt-get install  rbp2-source-$(uname -r)
osmc@osmc:~$ sudo apt install libc6-dev libc-dev make binutils
osmc@osmc:~$ sudo apt install gcc
osmc@osmc:~$ sudo apt install git
osmc@osmc:~$ sudo apt install usbutils
osmc@osmc:~$ apt-get install build-essential dkms

Одной командой поставить не получилось. Система писала, что не ясно, какой GCC ставит

2. Выясняем, какой драйвер нам нужен. В моем адаптере чип RTL8192EU. Именно для него и надо искать драйвер

osmc@osmc:~$ lsusb
Bus 001 Device 005: ID 05ac:0256 Apple, Inc.
Bus 001 Device 004: ID 0bda:818b Realtek Semiconductor Corp. RTL8192EU 802.11b/g/n WLAN Adapter
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. SMC9514 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

 3. Делаем каталог, в котором будем работать:

osmc@osmc:~$ cd ~
osmc@osmc:~$ mkdir ~/realtek
osmc@osmc:~$ cd ~/realtek

4. Теперь ищем и копируем драйвер. У автора исходной статьи был адаптер на чипе RTL8812AU. По его ссылке лежит драйвер, работающий именно с этим чипом. Я не обратил на это внимание, собрал драйвер, и у меня ничего не заработало. Потратил время на поиск причины.

Да, можно открыть Makefile и отредактировать его, выбрав сборку драйвера для другого чипа. Но в моем случае это приводило к ошибке сборки. Поэтому рекомендую просто искать правильный драйвер. Моя ссылка поиска (ключевые слова “RTL8192E linux arm”)
https://github.com/search?q=RTL8192E+linux+arm 

Прежде чем собирать драйвер, изучите Makefile, чтобы не тратить время на сборки впустую:

 а. Должен быть выбран правильный чип. Только напротив него должен стоять "y":

CONFIG_MULTIDRV = n
CONFIG_RTL8188E = n
CONFIG_RTL8812A = n
CONFIG_RTL8821A = n
CONFIG_RTL8192E = y
CONFIG_RTL8723B = n
CONFIG_RTL8814A = n
CONFIG_RTL8723C = n
CONFIG_RTL8188F = n
CONFIG_RTL8188GTV = n
CONFIG_RTL8822B = n
CONFIG_RTL8723D = n
CONFIG_RTL8821C = n
CONFIG_RTL8710B = n
CONFIG_RTL8192F = n

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

б. Проверяем тип интерфейса, в моем случае это USB:
######################### Interface ###########################
CONFIG_USB_HCI = y
CONFIG_PCI_HCI = n
CONFIG_SDIO_HCI = n
CONFIG_GSPI_HCI = n

в. Платформа, для которой будет сборка:





###################### Platform Related #######################
CONFIG_PLATFORM_I386_PC = n
CONFIG_PLATFORM_ARM_RPI = y
CONFIG_PLATFORM_ANDROID_X86 = n
CONFIG_PLATFORM_ANDROID_INTEL_X86 = n
CONFIG_PLATFORM_JB_X86 = n
CONFIG_PLATFORM_ARM_S3C2K4 = n
CONFIG_PLATFORM_ARM_PXA2XX = n
CONFIG_PLATFORM_ARM_S3C6K4 = n
CONFIG_PLATFORM_MIPS_RMI = n
CONFIG_PLATFORM_RTD2880B = n
CONFIG_PLATFORM_MIPS_AR9132 = n
CONFIG_PLATFORM_RTK_DMP = n
CONFIG_PLATFORM_MIPS_PLM = n
CONFIG_PLATFORM_MSTAR389 = n
CONFIG_PLATFORM_MT53XX = n
CONFIG_PLATFORM_ARM_MX51_241H = n
CONFIG_PLATFORM_FS_MX61 = n
CONFIG_PLATFORM_ACTIONS_ATJ227X = n
CONFIG_PLATFORM_TEGRA3_CARDHU = n
CONFIG_PLATFORM_TEGRA4_DALMORE = n
CONFIG_PLATFORM_ARM_TCC8900 = n
CONFIG_PLATFORM_ARM_TCC8920 = n
CONFIG_PLATFORM_ARM_TCC8920_JB42 = n
CONFIG_PLATFORM_ARM_TCC8930_JB42 = n
CONFIG_PLATFORM_ARM_RK2818 = n
CONFIG_PLATFORM_ARM_RK3066 = n
CONFIG_PLATFORM_ARM_RK3188 = n
CONFIG_PLATFORM_ARM_URBETTER = n
CONFIG_PLATFORM_ARM_TI_PANDA = n
CONFIG_PLATFORM_MIPS_JZ4760 = n
CONFIG_PLATFORM_DMP_PHILIPS = n
CONFIG_PLATFORM_MSTAR_TITANIA12 = n
CONFIG_PLATFORM_MSTAR = n
CONFIG_PLATFORM_SZEBOOK = n
CONFIG_PLATFORM_ARM_SUNxI = n
CONFIG_PLATFORM_ARM_SUN6I = n
CONFIG_PLATFORM_ARM_SUN7I = n
CONFIG_PLATFORM_ARM_SUN8I_W3P1 = n
CONFIG_PLATFORM_ARM_SUN8I_W5P1 = n
CONFIG_PLATFORM_ACTIONS_ATM702X = n
CONFIG_PLATFORM_ACTIONS_ATV5201 = n
CONFIG_PLATFORM_ACTIONS_ATM705X = n
CONFIG_PLATFORM_ARM_SUN50IW1P1 = n
CONFIG_PLATFORM_ARM_RTD299X = n
CONFIG_PLATFORM_ARM_LGE = n
CONFIG_PLATFORM_ARM_SPREADTRUM_6820 = n
CONFIG_PLATFORM_ARM_SPREADTRUM_8810 = n
CONFIG_PLATFORM_ARM_WMT = n
CONFIG_PLATFORM_TI_DM365 = n
CONFIG_PLATFORM_MOZART = n
CONFIG_PLATFORM_RTK119X = n
CONFIG_PLATFORM_RTK119X_AM = n
CONFIG_PLATFORM_RTK129X = n
CONFIG_PLATFORM_RTK390X = n
CONFIG_PLATFORM_NOVATEK_NT72668 = n
CONFIG_PLATFORM_HISILICON = n
CONFIG_PLATFORM_HISILICON_HI3798 = n
CONFIG_PLATFORM_NV_TK1 = n
CONFIG_PLATFORM_NV_TK1_UBUNTU = n
CONFIG_PLATFORM_RTL8197D = n
CONFIG_PLATFORM_AML_S905 = n
CONFIG_PLATFORM_ZTE_ZX296716 = n


 В некоторых репозиториях, найденных на GitHub, не было нужной мне платформы "ARM_RPI" (Raspberry PI 2)

Итак, мне подошел репозиторий https://github.com/lord2y/rtl8192eu-arm-linux-driver. Копируем его себе:
osmc@osmc:~$ git clone https://github.com/lord2y/rtl8192eu-arm-linux-driver

5. Нужно сделать ссылку на заголовки ядра:
osmc@osmc:~$ sudo ln -s /usr/src/rbp2-headers-$(uname -r) /lib/modules/$(uname -r)/build

6. Этот пункт потребуется, если будет та же ошибка, что у автора исходной инструкции (я не переделывал его вывод команды, на смысл это не влияет):

osmc@osmc:~/ rtl8812au$ make
make ARCH=arm CROSS_COMPILE= -C /lib/modules/4.19.55-6-osmc/build M=/home/osmc/rtl8812au modules
make[1]: Entering directory '/usr/src/rbp2-headers-4.19.55-6-osmc'
     CC [M] /home/osmc/rtl8812au/core/rtw_cmd.o
In file included from ./include/linux/compat.h:16:0,
                         from ./include/linux/ethtool.h:17,
                         from ./include/linux/netdevice.h:41,
                         from /home/osmc/rtl8812au/include/osdep_service_linux.h:35,
                         from /home/osmc/rtl8812au/include/osdep_service.h:41,
                         from /home/osmc/rtl8812au/include/drv_types.h:32,
                         from /home/osmc/rtl8812au/core/rtw_cmd.c:22:
./include/linux/if.h:28:54: fatal error: sys/socket.h: No such file or directory
 #include <sys/socket.h> /* for struct sockaddr. */
                                                                          ^
compilation terminated.


Ошибка в наличие файла заголовков socket.h. Если это произошло, то надо скачать  исходники ядра с kernal.org.

Нужно выбрать правильную версию исходников. В моем случае ядро 4.19.122. Проверить можно командой "uname -r".

osmc@osmc:~/ cd ~/realtek    
osmc@osmc:~/ wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.19.122.tar.xz
osmc@osmc:~/ tar xf linux-4.19.122.tar.xz

Убираем старый каталог ../include/linux и копируем туда содержимое соответствующего каталога распакованного архива.
osmc@osmc:~/ sudo mv /usr/src/rbp2-headers-4.19.122-2-osmc/include/linux/ /usr/src/rbp2-headers-4.19.122-2-osmc/include/linux-bak
osmc@osmc:~/ sudo cp -ar linux-4.19.122/include/linux /usr/src/rbp2-headers-4.19.122-2-osmc/include/

Проверяем, что всё на месте:
osmc@osmc:~/ ls /usr/src/rbp2-headers-4.19.122-2-osmc/include/linux

 7. Итак, наконец, сборка. Подробная инструкция есть в репозитории https://github.com/lord2y/rtl8192eu-arm-linux-driver:

osmc@osmc:~/ cd ~/realtek/rtl8192eu-arm-linux-driver/
osmc@osmc:~/ ls
osmc@osmc:~/ less Makefile
osmc@osmc:~/ make ARCH=arm
osmc@osmc:~/ make install
osmc@osmc:~/ sudo make install

Процедура сборки занимает некоторое время.

8. Проверяем, что модуль ядра поставился:

osmc@osmc:~$ lsmod |grep 8192
8192eu               1445888  0
cfg80211              651264  1 8192eu
snd                    81920  3 snd_timer,snd_bcm2835,snd_pcm

 

Обновление

---

Если в предыдущем выводе только последняя строка, то надо выполнить

osmc@osmc:~$ modprobe 8192eu

---

Проверяем, что появился новый интерфейс в ifconfig:

osmc@osmc:~$ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.102  netmask 255.255.255.0  broadcast 192.168.1.1
        ether b8:27:eb:01:e6:26  txqueuelen 1000  (Ethernet)
        RX packets 1921  bytes 282385 (275.7 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1087  bytes 206934 (202.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 144  bytes 7228 (7.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 144  bytes 7228 (7.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.3  netmask 255.255.255.0  broadcast 192.168.1.1
        ether 40:a5:ef:07:da:44  txqueuelen 1000  (Ethernet)
        RX packets 38  bytes 6940 (6.7 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 63  bytes 16454 (16.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

9. Если всё хорошо, драйвер установился и наша карта заработала, надо настроить автоматическую пересборку модуля при обновлении ядра.

Удаляем модули:

osmc@osmc:~$ dkms uninstall rtl8192eu/1.0 
osmc@osmc:~$ dkms remove rtl8192eu/1.0 --all

И заново собираем через dkms. Первая команда копирует код в дерево, вторая собирает и устанавливает модуль ядра:
osmc@osmc:~$ dkms add .
osmc@osmc:~$ dkms install rtl8192eu/1.0

10. Можно из консоли подключиться к точке доступа для окончательной проверки работоспособности собранного драйвера:

https://gist.github.com/kylemanna/6930087 

Сканируем сети:

osmc@osmc:~$ sudo connmanctl scan wifi
Scan completed for wifi

Обновление

---

Во второй раз у меня выскочила такая ошибка
Error /net/connman/technology/wifi No carrier


Лечение найдено тут

osmc@osmc:~$ sudo connmanctl en
able wifi
osmc@osmc:~$ sudo connmanctl technologies
osmc@osmc:~$ sudo rfkill unblock wifi
osmc@osmc:~$ sudo ip link set wlan0 up
osmc@osmc:~$ sudo connmanctl
> disable wifi
> enable wifi
> agent on

Программа rfkill скорее всего не установлена. Ее надо установить через apt get

После этого повторяем команду

osmc@osmc:~$ sudo connmanctl scan wifi
Scan completed for wifi

---

Смотрим, что нашли:

osmc@osmc:~$ sudo connmanctl services
*AO Wired                ethernet_b827eb01e626_cable
    Mgts10               wifi_40a5ef07da44_4d6774733130_managed_psk
    MGTS_GPON_BEDD       wifi_40a5ef07da44_4d4754535f47504f4e5f42454444_managed_psk
    MGTS_GPON_0777       wifi_40a5ef07da44_4d4754535f47504f4e5f30383235_managed_psk
    NETGEAR              wifi_40a5ef07da44_4e455447454152_managed_psk
    Keenetic-8888        wifi_40a5ef07da44_4b65656e657469632d33393234_managed_psk
    MGTS_16              wifi_40a5ef07da44_4d4754535f3136_managed_psk
    MGTS_GPON_9999       wifi_40a5ef07da44_4d4754535f47504f4e5f38353136_managed_ps

Смотрим информацию какой-нибудь сети:

osmc@osmc:~$ sudo connmanctl services wifi_40a5ef07da44_4d6774733130_managed_psk
/net/connman/service/wifi_40a5ef07da44_4d6774733130_managed_psk
  Type = wifi
  Security = [ psk ]
  State = idle
  Strength = 68
  Favorite = False
  Immutable = False
  AutoConnect = False
  Name = Mgts10
  Ethernet = [ Method=auto, Interface=wlan0, Address=40:A5:EF:07:DA:44, MTU=1500 ]
  IPv4 = [  ]
  IPv4.Configuration = [ Method=dhcp ]
  IPv6 = [  ]
  IPv6.Configuration = [ Method=off ]
  Nameservers = [  ]
  Nameservers.Configuration = [  ]
  Timeservers = [  ]
  Timeservers.Configuration = [  ]
  Domains = [  ]
  Domains.Configuration = [  ]
  Proxy = [  ]
  Proxy.Configuration = [  ]
  mDNS = False
  mDNS.Configuration = False
  Provider = [  ]
osmc@osmc:~$


Редактируем настройки подключения к выбранной сети:

osmc@osmc:~$ sudo nano /var/lib/connman/wifi_40a5ef07da44_4d6774733130_managed_psk.config
  [wifi_40a5ef07da44_4d6774733130_managed_psk]
  Type = wifi
  Name = wifi_40a5ef07da44_4d6774733130_managed_psk
  Passphrase = <passphrase>

Подключаемся:
osmc@osmc:~$ connmanctl connect wifi_40a5ef07da44_4d6774733130_managed_psk
Connected wifi_40a5ef07da44_4d6774733130_managed_psk

11. Всё можно идти в графический интерфейс и настраивать систему. 

 Если есть вопросы, пишите, если что-то пошло не так, вы нашли как это исправить, тем более пишите. 

P.S.

Скомпилированные драйверы под разные ядра. К сожалению, с текущим 5.10.32-2-osmc у меня не завелся. Ссылка на будущее.

http://downloads.fars-robotics.net/wifi-drivers/8192eu-drivers/

Найдено тут.

четверг, 20 февраля 2020 г.

Дополнение YouTube для медиаплейера XBMC Kodi перестал работать

Обновлено 2021-03-31
 
Перестало работать дополнение YouTube для медиаплейера XBMC Kodi (у меня вариант OSMC).

Ошибка следующая:
Youtube: access Not configured
Project 294899064488 has been scheduled for deletion


Ответ найден на форуме поддержки Kodi
https://forum.kodi.tv/showthread.php?tid=348464&pid=2925054#pid2925054

Google что-то поменял в политиках авторизации. Разработчик дополнения был вынужде удалить свои ключи. Теперь каждый пользователь дополнения должен получить свой собственный ключ разработчика.

Как это сделано, написано тут
https://github.com/anxdpanic/plugin.video.youtube/wiki/Personal-API-Keys (новая ссылка)
Рекомендую начать с этого видео, так как со времени написания статьи прошло время, и, судя по вопросам в комментариях, некоторые шаги изменились.

 
Снимки экрана я взял с этого сайта, парочку заменил на свои (на русском языке. Когда сам проходил процедуру получения ключа, снимки экрана не далал, поэтому некоторые экраны уже повторить не могу.

Итак поехали.

1. Идем на сайт https://console.developers.google.com/ и заходим под своей учетной записью Гугл. На главном экране (Панель управления - Dashboard) нажимаем "Включить API и сервисы".

2. Проматываем вниз и выбираем "YouTube Data API v3"

3. Выбираем "Enable"


4. Происходит возврат на основной экран. На нем справа вверху выбираем "Создать учетные данные"

5. На следующем экране выбираем в выпадающем меню "YouTube Data API v3", в следующем "Other UI (e.g. Windows, CLI tool)". На русском это звучало "Другое, с интерфейсом пользователя, например CLI". Есть два похожих пункта, надо выбрать тот, где CLI. Далее "Данные пользователя" ("User Data"). Далее "Выбрать тип учетных данных".


6. В новом диалоге выбираем "Set up consent screen". Откроется новое окно в браузере.

7. Выбираем "Общее" (External). Нажимаем "Создать" (Create).

8. В следующем окне придумываем имя приложения. Я взял как на снимке экрана. Адрес электронной почты у меня подставился автоматически. Сохраняем кнопкой "Save"

9. Это окно больше не нужно. Возвращаемся в первое окно браузера. В нем вводим наше имя проекта из шага 7 и нажимаем "Create OAuth client ID"

10. С этого экрана можно скопироват Client ID. Он будет в формате "<много букв и цифр>.apps.googleusercontent.com". Нажимаем "Done"

11. На странице "Учетные данные" (Credentials) сверху выбираем "+ Создать учетные данные". В выпадающем списке "Ключ API"

12. В открывшемся диалоговом окне будет ваш ключ. Можно его скопировать

13. Всё. Ключи созданы. На странице "Учетные данные" будут два списка по одному значению в каждом. В первом списке наш "Ключ API". Во втором название нашего приложения

14. Выбираем "Ключ API", копируем его значение, если не сделали этого раньше

15. Заходим наше приложение в списке "Идентификаторы клиентов OAuth 2.0". Копируем идентификатор клиента и секретный ключ

16. Теперь надо наши ключи записать в настройки дополнения. На странице приведены несколько способов. Первый - вручную вбить идентификторы в настройках дополнения "Settings -> API". Но это долго.
Второй вариант - через веб-сервер дополнения. У меня веб-сервер не поднялся.

17. Самым простым для меня был третий вариант - отредактировать настройки через удаленный терминал. Заходим на приставку (если у вас Kodi стоит на медиаплейере, а не на компьютере) через SSH. В моем случае (дистрибутив OSMC) команда выглядит так:
$ ssh osmc@<osmc IP address>

Пароль по умолчанию - "osmc". Открываем с настройками на редактирование:
nano /home/osmc/.kodi/userdata/addon_data/plugin.video.youtube/api_keys.json

и вставляем ключи и идентификаторы. Для идентификатора клиента достаточно только самого ключа без суффиксов.

{
  "keys": {
    "developer": {},
    "personal": {
      "api_key": "AIXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOs",
      "client_id": "44YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYk2",
      "client_secret": "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
    }
  }
}

18. Необязательный пункт. Если это ваши не первые ключи. То есть по какой-то причине вы сгенерировали новые (я это сделал, чтоб ответить на вопрос читателя), то помните, что ключи хранятся не только в файле api_keys.json, но и в файле settings.xml.

Поэтому надо вставить новые ключи в
/home/osmc/.kodi/userdata/addon_data/plugin.video.youtube/api_keys.json
как написано в пункте 17, а также в файле
/home/osmc/.kodi/userdata/addon_data/plugin.video.youtube/settings.xml

Надо очистить значения в следующих полях:
<setting id="youtube.api.id"></setting>
<setting id="youtube.api.key"></setting>
<setting id="youtube.api.secret"></setting>


19. Перезагружаем приставку. Проверяем. Должно работать.

P. S. Откорректировал текст в пунктах 4 и 5. Для этого удалил настройки своей учетной записи и повторил путь с пункта 3. Хочу отметить, что получить все экраны, как это было в первый раз, мне не удалось. То есть часть настроек в системе где-то осталось. Но это не помешало получить тот же конечный результат. Основная цель, к которой стремимся - создать "Ключ API" и "Идентификаторы клиентов OAuth 2.0". Точнее вначале OAuth, а затем Ключ API. Их можно создать последовательно выбрав пункты в выпадающем списке "Создать учетные данные" на странице, как это ни странно, "Учетные данные".

суббота, 2 ноября 2019 г.

OSMC. Перестал работать WiFi. Есть решение со сбокой модуля ядра для Wi-Fi-адаптера

Так всё было хорошо с OSMC много лет. И тут раз, и разработчики сломали сеть. Пояснение от разработчиков:
got sick of rebasing Realtek patches for new kernels constantly, and so a few drivers have been dropped and won’t be re-added until they are upstreamed. You can either stay on the older version or purchase a WiFi adapter.
Since Raspberry Pi and Vero has 802.11ac built in WiFi in recent models, the numbers haven’t been there to justify the hours of work to maintain these chipset drivers out of tree.
Other distributions are doing the same, and also plan to drop out of tree Realtek driver support in the near future.
Высказать радость по поводу случившегося можно тут:
https://osmc.tv/2019/11/osmcs-october-update-is-here-with-kodi-18-4/

Если кратко, то разработчик замучился встраивать драйверы Realtek в ядра. Как я понял, драйверы давно не обновлялись. Типа, так делают все разработчики. Но мне, как пользователю, от этого не легче.

Итак, как быть? Дискуссия по этому поводу идет тут:
https://discourse.osmc.tv/t/no-wi-fi-connection-after-update/82829/6
Пока единственный путь - вернуться на старую версию ядра, в котором драйверы еще есть.
Первая испорченная версия OSMC с Kodi - 18.4, версия ядра 4.19. Надо вернуться на предыдущую версию ядра. У меня это 4.14. У вас должно быть также, если вы регулярно обновляли ОС. К счастью для нас, если настройки не менялись вручную через командную строку, то на диске остается предыдущая версия ядра. Соответственно у меня 4.19 - новая версия, неработающая, 4.14 - старая, на которую надо вернуться.

Приставку надо подключить к сети. Очевидный путь - проводное соединение. Если у вас DHCP, на роутере в списке устройств, получивших адрес находим наше и запоминаем IP-адрес, например, 192.168.1.10:

user@Laptop:~$ ssh osmc@192.168.1.10

Пароль по умолчанию - "osmc"

Чтобы узнать наверняка, какое есть последнее рабочее ядро, выполняем команду:
osmc@osmc:~$ sudo find / -name rbp2-image*
/usr/share/doc/rbp2-image-4.14.78-4-osmc
/usr/share/doc/rbp2-image-4.19.55-3-osmc
/var/cache/apt/archives/rbp2-image-4.14.34-2-osmc_2_armhf.deb
/var/cache/apt/archives/rbp2-image-4.14.34-1-osmc_1_armhf.deb
/var/cache/apt/archives/rbp2-image-4.19.55-3-osmc_3_armhf.deb
/var/cache/apt/archives/rbp2-image-4.14.34-4-osmc_4_armhf.deb
/var/cache/apt/archives/rbp2-image-4.14.78-2-osmc_2_armhf.deb
/var/cache/apt/archives/rbp2-image-4.9.29-15-osmc_15_armhf.deb
/var/cache/apt/archives/rbp2-image-4.14.34-6-osmc_6_armhf.deb
/var/cache/apt/archives/partial/rbp2-image-4.14.15-5-osmc_5_armhf.deb
/var/cache/apt/archives/rbp2-image-4.9.29-13-osmc_13_armhf.deb
/var/cache/apt/archives/rbp2-image-4.14.78-4-osmc_4_armhf.deb
/var/lib/dpkg/info/rbp2-image-4.19.55-3-osmc.md5sums
/var/lib/dpkg/info/rbp2-image-4.19.55-3-osmc.postinst
/var/lib/dpkg/info/rbp2-image-4.19.55-3-osmc.postrm
/var/lib/dpkg/info/rbp2-image-4.19.55-3-osmc.list
/var/lib/dpkg/info/rbp2-image-4.14.78-4-osmc.postrm
/var/lib/dpkg/info/rbp2-image-4.14.78-4-osmc.md5sums
/var/lib/dpkg/info/rbp2-image-4.19.55-3-osmc.preinst
/var/lib/dpkg/info/rbp2-image-4.14.78-4-osmc.preinst
/var/lib/dpkg/info/rbp2-image-4.14.78-4-osmc.prerm
/var/lib/dpkg/info/rbp2-image-4.14.78-4-osmc.postinst
/var/lib/dpkg/info/rbp2-image-4.19.55-3-osmc.templates
/var/lib/dpkg/info/rbp2-image-4.19.55-3-osmc.prerm
/var/lib/dpkg/info/rbp2-image-4.19.55-3-osmc.config
/var/lib/dpkg/info/rbp2-image-4.14.78-4-osmc.list
/var/lib/dpkg/info/rbp2-image-4.14.78-4-osmc.templates
/var/lib/dpkg/info/rbp2-image-4.14.78-4-osmc.config


Узнаем, что последнее архивное ядро rbp2-image-4.14.78-4-osmc. Его и используем.

В обсуждении предлагается команда:
osmc@osmc:~$sudo apt install --reinstall rbp2-image-4.14.78-4-osmc

Начните с нее. У меня она не сработала.
smc@osmc:~$ sudo apt install --reinstall rbp2-image-4.14.78-4-osmc
Чтение списков пакетов… Готово
Построение дерева зависимостей      
Чтение информации о состоянии… Готово
Переустановка rbp2-image-4.14.78-4-osmc невозможна, он не скачивается.


Я не стал разбираться, почему инсталятор пытается что-то скачать, если всё уже есть на диске.

У меня сработала другая команда (вывод команды не сохранился):
sudo dpkg-reconfigure rbp2-image-4.14.78-4-osmc

После окончания ее выполнения перезагружаем приставку и проверяем сеть. У меня всё заработало. Минус такого решения очевиден. Больше обновления ставить нельзя. С другой стороны, ничего нового и хорошего они мне не приносили в последнее время. Работает - вот и хорошо.

На этом всё, всем удачи!
 
Обновление! Если готовы заморочиться со сборкой модуля ядра для адаптера, то написал статью, что да как.

суббота, 18 мая 2019 г.

Kodi. PVR IPTV Simple Client. Смена списка каналов в командной строке

Для просмотра IP TV в Kodi (у меня OSMC для Raspberry PI) есть простой и достаточно удобный клиент PVR IPTV Simple Client (https://github.com/afedchin/pvr.iptvsimple). Умеет работать с расположенными удаленно списками каналов в формате m3u. Один минус - неудобно с экранной клавиатуры вбивать адрес в соответствующее поле. И даже внешней клавиатурой неудобно.

Решение - сделать копи-паст.

1. Заходим по SSH на устройство: ssh <OSMC IP Address>
$ ssh osmc@10.1.1.10

имя/пароль по умолчанию для OSMC: osmc/osmc.

2. После успешного соединения на удаленном устройстве:
 

$ nano /home/osmc/.kodi/userdata/addon_data/pvr.iptvsimple/settings.xml

3. Правим строку:
<setting id="m3uUrl">http://URL/list.m3u</setting>

4. Перегружаем устройство. Обязательно для PVR IPTV Simple Client, чтобы перечитать список каналов:
$ reboot

Проверяем, нравится ли вам список. Если нет, повторяем операцию с другим списком.