Rtl8192eu linux driver ubuntu

Rtl8192eu linux driver ubuntu

RTL8192eu linux drivers for Raspberry Pi

The official drivers for D-Link DWA-131 Rev E, with patches to keep it working on newer kernels on Raspberry Pi.
Also works on Rosewill RNX-N180UBE v2 N300 Wireless Adapter.

NOTE: This repo was forked from Mange/rtl8192eu-linux-driver.
Kudos to Magnus Bergmark for the great work.

You have two ways to install this driver:

Building and installing using the source code

Install DKMS and other required tools

Install the driver

If you wish to uninstall the driver at a later point, use

Building and installing using DKMS

This tree supports Dynamic Kernel Module Support (DKMS), a system for generating kernel modules from out-of-tree kernel sources. It can be used to install/uninstall kernel modules, and the module will be automatically rebuilt from source when the kernel is upgraded (for example using your package manager).

Install DKMS and other required tools

Add the driver to DKMS. This will copy the source to a system directory so that it can used to rebuild the module on kernel upgrades.

Build and install the driver.

If you wish to uninstall the driver at a later point, use

To completely remove the driver from DKMS use

  1. Fork repo
  2. Do your patch in a topic branch
  3. Open a pull request on GH, or send it by email to Alessandro Ratti .
  4. I’ll squash your commits when everything checks out and add it to master .

Copyright and licenses

The original code is copyrighted, but I don’t know by whom. The driver download does not contain license information; please open an issue if you are the copyright holder.

Most C files are licensed under GNU General Public License (GPL), version 2.

About

Raspberry Pi Drivers for the rtl8192eu chipset for wireless adapters (D-Link DWA-131 rev E1 included!)

Источник

5kft / rtl8192eu-linux-driver Goto Github

Drivers for the rtl8192eu chipset for wireless adapters (D-Link DWA-131 rev E1 included!)

Makefile 0.70% Shell 0.01% C 94.65% Objective-C 0.83% C++ 3.81%

rtl8192eu-linux-driver’s Introduction

rtl8192eu linux drivers

NOTE: This branch is based on Realtek’s driver versioned 4.4.1. master is based on 4.3.1.1 originally.

The official drivers for D-Link DWA-131 Rev E, with patches to keep it working on newer kernels. Also works on Rosewill RNX-N180UBE v2 N300 Wireless Adapter and TP-Link TL-WN821N V6.

NOTE: This is just a «mirror». I have no knowledge about this code or how it works. Expect no support from me or any contributors here. I just think GitHub is a nicer way of keeping track of this than random forum posts and precompiled binaries being sent by email. I don’t want someone else to have to spend 5 days of googling and compiling with random patches until it works.

Source for the official drivers

Official drivers were downloaded from D-Link Australia. D-Link USA and the european countries I checked only lists revision A and B. Australia lists all three.

GitHub will not link to the ftp:// schema. Raw link contents:

In addition, you can find the contents of this version in the initial commit of this repo: 1387cf623d54bc2caec533e72ee18ef3b6a1db29

You can see the applied patches, their sources and/or motivation by looking at the commits. The master branch will mostly be kept clean with a single commit per patch, except for Pull Requests. You can review commit by commit and then record the SHA in order to get a safe reference to use. As long as the SHA stays the same you know that what you get has been reviewed by you.

Note that updates to this README will show up as separate commits. I will not mix changes to this file with changes to the code in case you want to mirror this without the README.

Building and installing using DKMS

This tree supports Dynamic Kernel Module Support (DKMS), a system for generating kernel modules from out-of-tree kernel sources. It can be used to install/uninstall kernel modules, and the module will be automatically rebuilt from source when the kernel is upgraded (for example using your package manager).

Читайте также:  Windows security software download

Install DKMS and other required tools

  • for normal Linux systems

Clone this repository and change your directory to cloned path.

The Makefile is preconfigured to handle most x86/PC versions. However, if you are compiling for something other than an intel x86 architecture, you need to first select the platform.

  • for the Raspberry Pi, you need to set the I386 to n and the ARM_RPI to y:
  • for arm64 devices (e.g. Orange Pi PC 2):

Add the driver to DKMS. This will copy the source to a system directory so that it can used to rebuild the module on kernel upgrades.

Build and install the driver.

Distributions based on Debian & Ubuntu have RTL8XXXU driver present & running in kernelspace. To use our RTL8192EU driver, we need to blacklist RTL8XXXU.

Force RTL8192EU Driver to be active from boot.

Newer versions of Ubuntu has weird plugging/replugging issue (Check #94). This includes weird idling issues, To fix this:

Update changes to Grub & initramfs

Reboot system to load new changes from newly generated initramfs.

Check that your kernel has loaded the right module:

You should see the line driver=8192eu

If you wish to uninstall the driver at a later point, use sudo dkms uninstall rtl8192eu/1.0. To completely remove the driver from DKMS use sudo dkms remove rtl8192eu/1.0 —all.

Reference: Intelbras IWA 3001 USB WiFi Adapter
Devices using the 8192eu chip can serve as decent access points, with speeds up to

Using hostapd to manage your AP, set the proper ht-capab field for this device, which is:

Optionally enable wideband, if you don’t have neighbours:
Note that while this will result in a increase in network throughput it may cause clients further away to fail connecting.
It may also make the device work better with repeaters repeating its signal.

HT_CAPAB=[HT40+][RX-STBC1][SHORT-GI-40][SHORT-GI-20][DSSS_CCK-40][MAX-AMSDU-7935] (for channels 1-7), or
HT_CAPAB=[HT40-][RX-STBC1][SHORT-GI-40][SHORT-GI-20][DSSS_CCK-40][MAX-AMSDU-7935] (for channels 5-13)

Changing transmit power

Currently there is no way to change transmit power in the driver with iw or iwconfig tools, as you would with other wireless devices.
The values returned by these tools are purely fictional on this driver. However, you can still manually change the transmit power at compile time by editing the file hal/rl8192e/rtl8192e_phycfg.c and changing the lines below:

  1. Fork repo
  2. Do your patch in a topic branch
  3. Open a pull request on GH, or send it by email to Magnus Bergmark .
  4. I’ll squash your commits when everything checks out and add it to master .

Copyright and licenses

The original code is copyrighted, but I don’t know by whom. The driver download does not contain license information; please open an issue if you are the copyright holder.

Most C files are licensed under GNU General Public License (GPL), version 2.

Contributors

Watchers

Recommend Projects

React

A declarative, efficient, and flexible JavaScript library for building user interfaces.

Vue.js

🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

Typescript

TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

TensorFlow

An Open Source Machine Learning Framework for Everyone

Django

The Web framework for perfectionists with deadlines.

Laravel

A PHP framework for web artisans

Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

javascript

JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

Some thing interesting about web. New door for the world.

server

A server is a program made to process requests and deliver data to clients.

Machine learning

Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

Visualization

Some thing interesting about visualization, use data art

Some thing interesting about game, make everyone happy.

Recently View Projects

rtl8192eu-linux-driver

drivers for the rtl8192eu chipset for wireless adapters (d-link dwa-131 rev e1 included!).

iOS-CoreImage-Swift

ios8 core image in swift.

mapserver

umn mapserver behind nginx using fastcgi in a docker container.

Читайте также:  Adobe flash player для windows 10 как включить

Источник

Записки на полях

Грабли, на которые я наступил. Руководства, инструкции, ощущения.

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

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

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

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

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

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

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

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

$ sudo touch /forcefsck
osmc@osmc:

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

$ 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 к проводной сети.

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

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

$ 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. Именно для него и надо искать драйвер

$ 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. Делаем каталог, в котором будем работать:

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)

$ 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. Этот пункт потребуется, если будет та же ошибка, что у автора исходной инструкции (я не переделывал его вывод команды, на смысл это не влияет):

/ 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 /* for struct sockaddr. */
^
compilation terminated.

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

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

/ 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:

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

/ less Makefile
osmc@osmc:

/ sudo make install

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

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

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

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

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

$ ifconfig
eth0: flags=4163 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 mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
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 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. Если всё хорошо, драйвер установился и наша карта заработала, надо настроить автоматическую пересборку модуля при обновлении ядра.

$ 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. Можно из консоли подключиться к точке доступа для окончательной проверки работоспособности собранного драйвера:

$ sudo connmanctl scan wifi
Scan completed for wifi

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

$ 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

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

$ sudo connmanctl scan wifi
Scan completed for wifi

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

$ 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

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

$ 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:

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

$ 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 =

$ connmanctl connect wifi_40a5ef07da44_4d6774733130_managed_psk
Connected wifi_40a5ef07da44_4d6774733130_managed_psk

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

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

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

Источник

Оцените статью