ачыкLinux SIM7600E-H модулдарынын бир бөлүгү катары

ачыкLinux SIM7600E-H модулдарынын бир бөлүгү катары

Ыңгайлаштырылган тиркемени иштеп чыгуу жана аны модулга жүктөө механизми эки операциялык системада тең жеткиликтүү Linuxжана WindowsБул макалада биз берилген SDKдан мисалдарды кантип колдонууну кеңири карап чыгабыз. SIMCom зымсыз чечимдер ыңгайлаштырылган тиркемени түзүү жана модулга жүктөө.

Макаланы жазардан мурун, өнүгүүдөн алыс досторумдун бири Linux, SIM7600E-H модулу үчүн ыңгайлаштырылган тиркемени иштеп чыгуу процессинин кеңири сүрөттөмөсүн сурады. Презентациянын жеткиликтүүлүгүн баалоо критерийи "мен түшүнө алышым үчүн" деген сөз айкашы болгон.

Болгон окуя менен таанышууга чакырам.

Макала такай толукталып, жаңыланып турат

башталышы

Адатта, уюлдук модулдар маалыматтарды берүү, үн чалуулар, SMS билдирүүлөр жана башка ушул сыяктуулар үчүн гана колдонулат. Мунун баары тышкы башкаруу микроконтроллеринен жөнөтүлгөн AT буйруктары аркылуу аткарылат. Бирок, тышкы жүктөлгөн колдонуучу кодун аткарууга мүмкүндүк берген модулдардын категориясы бар. Айрым учурларда, бул түзмөктүн жалпы баасын бир топ төмөндөтөт, тактага жөнөкөй (жана бирдей үнөмдүү) микроконтроллерди орнотууга же таптакыр жок кылууга мүмкүндүк берет. ОС менен башкарылуучу LTE модулдарынын пайда болушу менен Android же Linux Алардын күчтүү ресурстары менен сиз популярдуу процессорлор үчүн жеткиликтүү болгон ар кандай тапшырманы аткара аласыз. Бул макалада ОС тарабынан башкарылуучу SIM7600E-H жөнүндө сөз болот. LinuxАткарылуучу тиркемени кантип жүктөп алуу жана иштетүү керектигин карап чыгабыз.

Материал негизинен “SIM7600 Open” документине негизделген. Linux "Иштеп чыгуу боюнча колдонмо", бирок кээ бир кошумчалар, айрыкча орус тилиндеги версиясы пайдалуу болот. Бул макала модулду жаңыдан колдоно баштагандарга демо тиркемени жүктөп алууда багыт алууга жана андан аркы иш үчүн зарыл болгон көндүмдөрдү берүүгө жардам берет.

SIM7600E-H ким экендиги жөнүндө кыскача

SIM7600E-H – бул Qualcomm компаниясынын ARM Cortex-A7 1.3GHz процессорунун негизинде курулган, операциялык системага ээ модуль. Linux (ядро 3.18.20) ичинде, европалык (анын ичинде орусиялык) 2G/3G/LTE жыштык тилкелеринде иштей алат, Cat.4 колдойт жана 150 Мбит/сек чейин максималдуу жүктөө ылдамдыгын жана 50 Мбит/сек чейин жүктөө ылдамдыгын камсыз кылат. Кеңири перифериялык түзүлүштөр, өнөр жай температура диапазону жана орнотулган GPS/GLONASS навигациясы заманбап модулдук M2M чечиминин бардык талаптарына жооп берет.

Системаны карап чыгуу

SIM7600E-H модулу операциялык системага негизделген Linux (ядро 3.18.20). Файл системасы, өз кезегинде, UBIFS (Unsorted Block Image File System) журналдоо файл системасына негизделген.

Бул файл тутумунун маанилүү өзгөчөлүктөрү төмөнкүлөрдү камтыйт:

  • бөлүктөр менен иштейт, алардын өлчөмүн түзүүгө, жок кылууга же өзгөртүүгө мүмкүндүк берет;
  • бүт медиа көлөмү боюнча жазуу тегиздөө камсыз кылат;
  • Bad блоктору менен иштейт;
  • электр энергиясы үзгүлтүккө учураганда же башка бузулууларда маалыматтардын жоготуу ыктымалдыгын азайтат;
  • журналдарды сактоо.

Сүрөттөмө алынган бул жерде, ошондой эле мындай файл тутумунун кеңири сүрөттөлүшү бар.

Ошол. Файлдык тутумдун бул түрү модулдун катаал иштөө шарттарына жана мүмкүн болгон кубат көйгөйлөрүнө идеалдуу. Бирок бул туруксуз кубаттуулук шарттары модулдун күтүлгөн режими болот дегенди билдирбейт, бул аппараттын жашоого жөндөмдүүлүгүн гана көрсөтөт.

эс-тутум

Эстутум аймактарын бөлүштүрүү төмөнкүдөй түзүлөт:

ачыкLinux SIM7600E-H модулдарынын бир бөлүгү катары

Үч негизги багытты баса белгилей кетүү керек:

ubi0:rootfs – окуу үчүн гана жана ядронун өзүн камтыйт Linux
ubi0:usrfs – негизинен колдонуучу программасы жана маалыматтарды сактоо үчүн колдонулат
ubi0:cahcefs – FOTA жаңыртуулары үчүн сакталган. Жаңыртууну жүктөп алуу үчүн жеткиликтүү орун жетишсиз болсо, система пайдаланылбаган файлдарды жок кылат жана мейкиндикти бошотот. Бирок коопсуздук үчүн файлдарыңызды ал жерге койбошуңуз керек.

Бардык үч бөлүм төмөнкүдөй бөлүштүрүлөт:

Файлдык система
көлөм
колдонулган
жеткиликтүү
Колдонуу%
Монтаждалган

ubi0:rootfs
40.7M
36.2M
4.4M
89%
/

ubi0:usrfs
10.5M
360K
10.1M
3%
/ маалыматтар

ubi0:cachefs
50.3M
20K
47.7M
0%
/ кэш

Жеткиликтүү функция

Жогоруда айтылгандай, модул Qualcomm Cortex A7 чипсетинде курулган. Колдонуучу программасын иштеп чыгуу жана программанын кайсы бир бөлүгүн модулга түшүрүү менен аппараттын негизги процессорун түшүрүү үчүн мынчалык жогорку өндүрүмдүүлүктөгү ядрону бербөө туура эмес болуп калат.

Колдонуучу программасы үчүн төмөнкү перифериялык иштөө режимдери бизге жеткиликтүү болот:

PIN No.
ысым
Sys GPIO №.
Демейки аракет
Func1
Func2
тартуу
Ойготуу үзгүлтүккө учуратуу

6
SPI_CLK
-
UART1_RTS
-
-
B-PD
-

7
SPI_MISO
-
UART1_Rx
-
-
B-PD
-

8
SPI_MOSI
-
UART1_Tx
-
-
B-PD
-

9
SPI_CS
-
UART1_CTS
-
-
B-PD
-

21
SD_CMD
-
SD-карта
-
-
B-PD
-

22
SD_DATA0
-
SD-карта
-
-
B-PD
-

23
SD_DATA1
-
SD-карта
-
-
B-PD
-

24
SD_DATA2
-
SD-карта
-
-
B-PD
-

25
SD_DATA3
-
SD-карта
-
-
B-PD
-

26
SD_CLK
-
SD-карта
-
-
B-PN
-

27
SDIO_DATA1
-
WLAN
-
-
B-PD
-

28
SDIO_DATA2
-
WLAN
-
-
B-PD
-

29
SDIO_CMD
-
WLAN
-
-
B-PD
-

30
SDIO_DATA0
-
WLAN
-
-
B-PD
-

31
SDIO_DATA3
-
WLAN
-
-
B-PD
-

32
SDIO_CLK
-
WLAN
-
-
B-PN
-

33
GPIO3
GPIO_1020
MIFI_POWER_EN
GPIO
MIFI_POWER_EN
B-PU
-

34
GPIO6
GPIO_1023
MIFI_SLEEP_CLK
GPIO
MIFI_SLEEP_CLK
B-PD
-

46
ADC2
-
ADC
-
-
-
-

47
ADC1
-
ADC
-
-
B-PU
-

48
SD_DET
GPIO_26
GPIO
GPIO
SD_DET
B-PD
X

49
АБАЛЫ
GPIO_52
абал
GPIO
абал
B-PD
X

50
GPIO43
GPIO_36
MIFI_COEX
GPIO
MIFI_COEX
B-PD
-

52
GPIO41
GPIO_79
BT
GPIO
BT
B-PD
X

55
SCL
-
I2C_SCL
-
-
B-PD
-

56
SDA
-
I2C_SDA
-
-
B-PU
-

66
RTS
-
UART2_RTS
-
-
B-PD
-

67
CTS
-
UART2_CTS
-
-
B-PD
-

68
RxD
-
UART2_Rx
-
-
B-PD
-

69
RI
-
GPIO(RI)
-
-
B-PD
-

70
DCD
-
GPIO
-
-
B-PD
-

71
TxD
-
UART2_Tx
-
-
B-PD
-

72
DTR
-
GPIO(DTR)
-
-
B-PD
X

73
PCM_OUT
-
PCM
-
-
B-PD
-

74
PCM_IN
-
PCM
-
-
B-PD
-

75
PCM_SYNC
-
PCM
-
-
B-PD
-

76
PCM_CLK
-
PCM
-
-
B-PU
-

87
GPIO77
GPIO77
BT
GPIO
BT
B-PD
-

Макулмун, тизме таасирдүү жана көңүл буруңуз: перифериялык түзүлүштөрдүн бир бөлүгү модулду роутер катары иштетүү үчүн колдонулат. Ошол. Мындай модулдун негизинде сиз Wi-Fi аркылуу Интернетти тарата турган кичинекей роутерди жасай аласыз. Айтмакчы, SIM7600E-H-MIFI деп аталган даяр чечим бар жана ширетилген SIM7600E-H модулу жана бир нече антенна төөнөгүчтөрү бар miniPCIE картасы, алардын бири Wi-Fi антеннасы. Бирок, бул өзүнчө макаланын темасы.

Шаршемби (аптанын бир күнү эмес)

SIMCom зымсыз чечимдер иштеп чыгуучуларга өздөрү үчүн эң тааныш иштеп чыгуу чөйрөсүн тандоо мүмкүнчүлүгүн берүү Linux же WindowsЭгерде биз модулдагы бир аткарылуучу тиркеме жөнүндө сөз кылып жатсак, анда тандап алган жакшы Windows, ал тезирээк жана оңой болот. Эгер сиз татаал тиркеме архитектурасын жана андан кийинки жаңыртууларды күтсөңүз, анда аны колдонгон жакшы LinuxБизге да керек болот Linux Модульга кийин жүктөө үчүн аткарылуучу файлдарды компиляциялоо үчүн виртуалдык машина компиляция үчүн жетиштүү.

Сизге керектүү нерсени жүктөп алуу үчүн бекер жеткиликтүү эмес - SDK, аны сиз дистрибьюторуңуздан сурасаңыз болот.

Модуль менен иштөө үчүн утилиталарды орнотуу

Мындан ары биз төмөнкү эрежелердин негизинде иштейбиз Windows көпчүлүк колдонуучулар үчүн эң тааныш ОС катары.

Модуль менен иштөөнү өздөштүрүү үчүн бир нече жөнөкөй кадамдар менен керектүү программалык камсыздоону орнотушубуз керек:

  1. GNU/Linux
  2. Cygwin
  3. айдоочу
  4. АӨБ

GNU орнотулууда/Linux

Тиркемени куруу үчүн сиз каалаган ARM менен шайкеш келген платформаны колдоно аласыз.Linux компилятор. Биз SourceryCodeBenchLiteARM GNU/ колдонобузLinuxкотормочуну жүктөп алууга болот байланыш.

Бардык компоненттер туура орнотулганын камсыз кылуу үчүн, мен орнотуу процессинин бир нече скриншотторун калтырам. Негизи, орнотууда татаал эч нерсе жок.

Бардык компоненттер туура орнотулганын камсыз кылуу үчүн, мен орнотуу процессинин бир нече скриншотторун калтырам. Негизи, орнотууда татаал эч нерсе жок.

  1. Prinimaem лицензия калыбына келтирүү
    ачыкLinux SIM7600E-H модулдарынын бир бөлүгү катары
  2. Орнотуу папкасын көрсөтүңүз
    ачыкLinux SIM7600E-H модулдарынын бир бөлүгү катары
  3. Биз керектүү компоненттерди өзгөртүүсүз калтырабыз
    ачыкLinux SIM7600E-H модулдарынын бир бөлүгү катары
  4. Аны ошол бойдон калтырыңыз
    ачыкLinux SIM7600E-H модулдарынын бир бөлүгү катары
  5. Бир нече жолу "Кийинки", "Орнотуу" жана негизинен ушул
    ачыкLinux SIM7600E-H модулдарынын бир бөлүгү катары

Cygwin орнотулууда

Андан ары, иштеп чыгуу үчүн, сизге берилген топтомдон китепканалардын жана коммуналдык кызматтардын топтому керек болот Cygwin. Бул жерде баары жөнөкөй, Cygwinдин учурдагы версиясын долбоордун расмий сайтынан бекер көчүрүп алса болот, 3.1.5 версиясы бар болчу, биз материалды даярдоодо колдонгонбуз.

Cygwinди орнотууда татаал эч нерсе жок, сиз тандашыңыз керек болгон бир гана нерсе - орнотуучу керектүү файлдарды жүктөп алып, каалаганын тандап, орното турган күзгү, ошондой эле бардык жеткиликтүү китепканаларды калтырып, утилиталардын жана китепканалардын жыйындысы. коммуналдык кызматтар тандалды.

Драйверди орнотуу

Модуль компьютерге туташтырылгандан кийин, драйверлерди орнотуу керек. Буларды дистрибьютериңизден сураса болот (сунушталат). Интернетти өз алдынча издөөнү сунуштабайм, анткени... Түзмөктүн чатагына эмне себеп болгонун табуу үчүн көп убакыт талап кылынышы мүмкүн.

ачыкLinux SIM7600E-H модулдарынын бир бөлүгү катары

Тандалган порттордун ичинен биз төмөнкүлөрдү көрөбүз:

Windows
Linux
баяндоо

SimTech HS-USB диагностикасы
USB сериясы
Диагностикалык интерфейс

SimTech HS-USB NMEA
USB сериясы
GPS NMEA интерфейси

SimTech HS-USB AT порту
USB сериясы
AT порт интерфейси

SimTech HS-USB модеми
USB сериясы
Модем портунун интерфейси

SimTech HS-USB аудио
USB сериясы
USB аудио интерфейси

SimTech HS-USB WWAN адаптери
USB Net
NDIS WWAN интерфейси

Android Композиттик ADB интерфейси
USB АӨБ
Android мүчүлүштүктөрдү оңдоо портун кошуу

Сиз байкагандай, скриншоттогу порттордун арасында USB ADB жок, анткени модулдагы ADB порту демейки боюнча жабык жана сиз аны AT+CUSBADB=1 буйругун жөнөтүү менен иштетишиңиз керек. модулдун порту жана аны кайра жүктөө (бул 'AT+CRESET' буйругу менен жасалышы мүмкүн).

Натыйжада, биз түзмөк башкаргычында каалаган интерфейсти алабыз:

ачыкLinux SIM7600E-H модулдарынын бир бөлүгү катары

Биз айдоочулар менен бүттүк, келгиле АӨБга өтөбүз.

ADB орнотуу

Менин расмий сайтым жок Android Иштеп чыгуучу байланышКелгиле, чоңун жүктөп албайлы. Android Studio, бизге "SDK Platform-Tools программасын жүктөп алуу үчүн" шилтемеси аркылуу жүктөп алууга боло турган буйрук сабы гана керек. Windows«.

ачыкLinux SIM7600E-H модулдарынын бир бөлүгү катары

Алынган архивди C дискинин тамырына жүктөп алып, ачыңыз.

Environment Variables

Cygwin орнотулгандан кийин, сиз Cygwin/bin/ жолун иштеп чыгуу чөйрөсүнүн өзгөрмөлөрүнө (Классикалык Башкаруу панели → Система → Өркүндөтүлгөн тутум орнотуулары → Өркүндөтүлгөн → Айлана-чөйрөнүн өзгөрмөлөрү → Системанын өзгөрмөлөрү → Жол → Түзөтүү) төмөнкү скриншотто көрсөтүлгөндөй кошушуңуз керек болот:

ачыкLinux SIM7600E-H модулдарынын бир бөлүгү катары

Ошо сыяктуу эле, C дискинин тамырына жүктөлүп алынган жана ачылбаган АӨБ архивине жолду кошуңуз.

ачыкLinux SIM7600E-H модулдарынын бир бөлүгү катары

OK баскычын бир нече жолу чыкылдатып, компьютерди өчүрүп күйгүзүңүз.

Өчүрүлгөндөн кийин, сиз буйрук сабын (Win+R → cmd) ачып, "adb версиясы" буйругун терүү менен АӨБ туура иштеп жатканын оңой текшере аласыз. Биз мындай нерсени алабыз:

ачыкLinux SIM7600E-H модулдарынын бир бөлүгү катары

Келгиле, модулду компьютерге туташтыралы (эгерде ал ажыратылган болсо) жана АӨБ аны "adb devices" буйругу менен көрөрүн текшерип көрөлү:

ачыкLinux SIM7600E-H модулдарынын бир бөлүгү катары

Бүттү, бул модулга туташуунун конфигурациясын аяктайт жана модул менен иштөө үчүн кабыкты ишке киргизе алабыз.

ачыкLinux SIM7600E-H модулдарынын бир бөлүгү катары

SDKны таңгактан чыгаруу жана компиляциялоо

Эми биз кабыкчага кирүү мүмкүнчүлүгүнө ээ болуп, модулдун буйрук сабы менен иштей баштайбыз, келгиле, модулга жүктөө үчүн биринчи тиркемени компиляциялоого аракет кылалы.

Бул көп адамдар үчүн кыйынчылык жаратышы мүмкүн! Анткени модуль операциялык системада иштейт. Linux, астында кодду компиляциялоодо кагылышууларды болтурбоо үчүн Windows – жергиликтүү чөйрөдө компиляциялоо эң жакшы – Linux.

Биз жок учурда кантип экенине кенен токтолбойбуз Linux Эгер сиз аны компьютериңизге орноткуңуз келбесе, аны виртуалдык машинага орното аласыз. Биз VirtualBox колдонобуз, орнотобуз Ubuntu 20.04 версиясы (жазылып жаткан учурдагы версия) жана биз анын алкагында компиляторлор, SDK ж.б. менен иштей баштайбыз.

Шаршембиге өтүү Linux жана дистрибьютордон алынган архивди ачыңыз.

simcom@VirtualBox:~/Desktop/OpenLinux$ sudo tar -xzf MDM9x07_OL_2U_22_V1.12_191227.tar.gz 

sim_open_sdk каталогуна барып, чөйрөнү кошуңуз:

simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ cd sim_open_sdk
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ source sim_crosscompile/sim-crosscompile-env-init 

Биз ошол эле папкада калабыз жана анда кийинки буйруктарды аткарабыз.
libncurses5-dev китепканасын орнотуңуз, эгерде ал орнотулбаса:

simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ sudo apt-get update && sudo apt-get install libncurses5-dev -y

Python, эгерде ал орнотулбаса:

simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ sudo apt-get install python -y

жана gcc:

simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ sudo apt-get install gcc

Компиляция:

Эми биз бир нече файлдарды компиляциялашыбыз керек, биз ырааттуу түрдө төмөнкү буйруктарды аткарабыз.

Эгерде компиляция учурунда ядро ​​конфигурациясынын терезеси чыкса, жөн гана Чыгууну тандап, консолго кайтыңыз, биз азыр ядрону конфигурациялоонун кереги жок;

Биз жасайбыз:

simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make

Жүктөгүчтү компиляциялоо:

simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make aboot

Ядро түзүү:

simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make kernel_menuconfig
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make kernel

Тамыр файл системасын түзүңүз:

simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make rootfs

катталган колдонуучулар үчүн Linux Модуль драйверин компиляциялоо тиешелүү болот:

simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make kernel_module

Келгиле демонстрацияны түзөлү:

simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make demo

Андан кийин sim_open_sdk/output каталогунда бир нече жаңы файлдар пайда болот:

simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ ls output/
appsboot.mbn  boot.img  demo_app  helloworld  system.img

Демо

Келгиле, демонстрацияны модулубузга жүктөөгө аракет кылып көрөлү жана андан эмне болорун карап көрөлү.

жүктөө

sim_open_sdk каталогунда demo_app файлын көрө алабыз. Аны чыгарып алып, модуль туташкан компьютердеги C дискинин түпкү бөлүгүнө жылдырыңыз. Андан кийин буйрук сабын иштетиңиз. Windows (Win+R -> cmd) басып, төмөнкүнү киргизиңиз:

C:>adb push C:demo_app /data/

Консол бизге айтып берет:

C:demo_app: 1 file pushed, 0 skipped. 151.4 MB/s (838900 bytes in 0.005s)

Бул файл модулга ийгиликтүү жөнөтүлгөнүн билдирет жана биз аны иштетишибиз керек. тартынбайлы.

Биз жасайбыз:

C:>adb shell

Жүктөлгөн файлдын укуктарын кеңейтебиз:

/ # cdhmod 777 /data/demo_app

Жана биз чуркап:

/ # /data/demo_app

Ошол эле консолдо модул бизге төмөнкүлөрдү айтып берет:

SDK_VER : SIM_SDK_VER_20191205
DEMO_VER: SIM_SDK_VER_20191205

Please select an option to test from the items listed below.

1. WIFI                       2. VOICE CALL
3. DATA CALL                  4. SMS
5. WDS(APN)                   6. NAS
7. AT                         8. OTA
9. TTS                        10. GPIO
11. GPS                       12. Bluetooth
13. TCP/UDP                   14. Timer
15. ADC                       16. I2C
17. UIM(SimCard)              18. DMS(IMEI,MEID)
19. UART                      20. SPI
21. Version                   22. Ethernet
23. FTP                       24. SSL
25. HTTP(S)                   26. FTP(S)
27. MQTT(S)                   28. ALSA
29. DEV                       30. AUDIO
31. JSON                      32. LBS
99. EXIT
Option >   

Келгиле, модулдун IMEIсин карап көрөлү, 7ди киргизиңиз (буйрук режимине өтүңүз), андан кийин 5ти киргизиңиз:

Please select an option to test from the items listed below.

1. WIFI                       2. VOICE CALL
3. DATA CALL                  4. SMS
5. WDS(APN)                   6. NAS
7. AT                         8. OTA
9. TTS                        10. GPIO
11. GPS                       12. Bluetooth
13. TCP/UDP                   14. Timer
15. ADC                       16. I2C
17. UIM(SimCard)              18. DMS(IMEI,MEID)
19. UART                      20. SPI
21. Version                   22. Ethernet
23. FTP                       24. SSL
25. HTTP(S)                   26. FTP(S)
27. MQTT(S)                   28. ALSA
29. DEV                       30. AUDIO
31. JSON                      32. LBS
99. EXIT
Option > 7

Please select an option to test from the items listed below.

1. get Module Version         2. get CSQ
3. get CREG                   4. get ICCID
5. get IMEI                   6. get CIMI
99. back
Option > 5
IMEI: 867584030090489

Please select an option to test from the items listed below.

1. get Module Version         2. get CSQ
3. get CREG                   4. get ICCID
5. get IMEI                   6. get CIMI
99. back
Option >

Бул жол менен биз модулдун IMEI көрөбүз.

Жыйынтык

Мен модулду кантип баштоо керектиги жөнүндө жалпы түшүнүк ала алдык деп үмүттөнөм. Кийинки макалаларда SIM7600E-H платформасы камсыз кылган мүмкүнчүлүктөрдү, ошондой эле модулда өзүңүздүн тиркемени алыстан кантип жаңырта аларыңызды кененирээк карап чыгабыз.

Мен сиздерди комментарийлерде суроолорду берүүгө, ошондой эле кийинки макалаларда модулдун мүмкүнчүлүктөрүнүн кайсы аспектиси чагылдырылышы керектигин көрсөтүүгө чакырам.

Source: www.habr.com

DDoS коргоосу, VPS VDS серверлери бар сайттар үчүн ишенимдүү хостинг сатып алыңыз 🔥 DDoS коргоосу, VPS VDS серверлери бар ишенимдүү веб-сайт хостингин сатып алыңыз | ProHoster