{"id":86184,"date":"2020-06-22T13:42:13","date_gmt":"2020-06-22T11:42:13","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/openlinux-v-sostave-modulej-sim7600e-h"},"modified":"2020-06-22T13:42:13","modified_gmt":"2020-06-22T11:42:13","slug":"openlinux-v-sostave-modulej-sim7600e-h","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/openlinux-v-sostave-modulej-sim7600e-h","title":{"rendered":"OpenLinux w sk\u0142adzie modu\u0142\u00f3w SIM7600E-H","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"OpenLinux w sk\u0142adzie modu\u0142\u00f3w SIM7600E-H\" src=\"\/wp-content\/uploads\/2020\/06\/5909392d5908cffc4d46a122ec7431a8.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMechanizm tworzenia aplikacji u\u017cytkownika i przesy\u0142ania jej do modu\u0142u jest dost\u0119pny zar\u00f3wno w systemie operacyjnym Linux, jak i Windows. W tym artykule szczeg\u00f3\u0142owo om\u00f3wimy, jak skorzysta\u0107 z przyk\u0142ad\u00f3w z SDK dostarczanego przez <noindex><a rel=\"nofollow\" href=\"http:\/\/en.simcom.com\">SIMCom Wireless Solutions<\/a><\/noindex> skompilowa\u0107 i przes\u0142a\u0107 aplikacj\u0119 u\u017cytkownika do modu\u0142u.<\/p>\n<p>Zanim napisa\u0142em ten artyku\u0142, m\u00f3j znajomy, kt\u00f3ry nie ma do\u015bwiadczenia z programowaniem w Linuxie, poprosi\u0142, abym jak najdok\u0142adniej opisa\u0142 proces tworzenia w\u0142asnej aplikacji dla modu\u0142u SIM7600E-H. Kryterium oceny przyst\u0119pno\u015bci materia\u0142u by\u0142o okre\u015blenie \u201etak, \u017ceby ZROZUMIA\u0141EM\u201d.<\/p>\n<p>Zach\u0119cam do zapoznania si\u0119 z rezultatem.<\/p>\n<blockquote><p>Artyku\u0142 jest regularnie uzupe\u0142niany i aktualizowany.<\/p><\/blockquote>\n<p>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Wst\u0119p<\/h2>\n<p>\nZazwyczaj modu\u0142y komunikacji kom\u00f3rkowej s\u0105 wykorzystywane tylko do przesy\u0142ania danych, po\u0142\u0105cze\u0144 g\u0142osowych, wysy\u0142ania SMS-\u00f3w i podobnych dzia\u0142a\u0144. Wszystko to odbywa si\u0119 za pomoc\u0105 komend AT wysy\u0142anych z zewn\u0119trznego mikrokontrolera. Istnieje jednak kategoria modu\u0142\u00f3w, kt\u00f3re pozwalaj\u0105 na wykonywanie kodu u\u017cytkownika \u0142adowanego zewn\u0119trznie. W niekt\u00f3rych przypadkach znacz\u0105co zmniejsza to ca\u0142kowity bud\u017cet urz\u0105dzenia, umo\u017cliwiaj\u0105c zastosowanie prostszego (a zatem ta\u0144szego) mikrokontrolera lub ca\u0142kowite zrezygnowanie z niego. Wraz z pojawieniem si\u0119 modu\u0142\u00f3w LTE zarz\u0105dzanych przez systemy operacyjne Android lub Linux oraz ich pot\u0119\u017cnymi zasobami, mo\u017cna rozwi\u0105zywa\u0107 wszelkie problemy, kt\u00f3re s\u0105 dost\u0119pne dla popularnych procesor\u00f3w. W tym artykule om\u00f3wimy modu\u0142 SIM7600E-H, dzia\u0142aj\u0105cy pod kontrol\u0105 systemu Linux. Zobaczymy, jak za\u0142adowa\u0107 i uruchomi\u0107 aplikacj\u0119 wykonywaln\u0105.<\/p>\n<p>Materia\u0142 w du\u017cej mierze oparty jest na dokumencie \u201eSIM7600 Open Linux development guide\u201d, ale pewne uzupe\u0142nienia, a przede wszystkim wersja w j\u0119zyku rosyjskim b\u0119d\u0105 przydatne. Artyku\u0142 pomo\u017ce tym, kt\u00f3rzy dopiero zaczynaj\u0105 nauk\u0119 obs\u0142ugi modu\u0142u, dotrze\u0107 do etapu \u0142adowania aplikacji demonstracyjnej i zdob\u0119d\u0105 niezb\u0119dne umiej\u0119tno\u015bci do p\u00f3\u017aniejszej pracy.<\/p>\n<h3>Kr\u00f3tko o tym, kim jest SIM7600E-H<\/h3>\n<p>\nSIM7600E-H to modu\u0142 zbudowany na bazie procesora ARM Cortex-A7 1.3GHz od Qualcomm, dzia\u0142aj\u0105cy na systemie operacyjnym Linux (j\u0105dro 3.18.20), zdolny do pracy w europejskich (w tym tak\u017ce rosyjskich) pasmach cz\u0119stotliwo\u015bci 2G\/3G\/LTE, wspieraj\u0105cy Cat.4, oferuj\u0105cy maksymaln\u0105 pr\u0119dko\u015b\u0107 pobierania do 150Mbps i wysy\u0142ania do 50Mbps. Bogata peryferia, przemys\u0142owy zakres temperatur oraz wbudowana nawigacja GPS\/GLONASS spe\u0142niaj\u0105 wszystkie wymagania nowoczesnych rozwi\u0105za\u0144 modu\u0142owych w tematyce M2M.<\/p>\n<h2>Przegl\u0105d systemu<\/h2>\n<p>\nModu\u0142 SIM7600E-H bazuje na systemie operacyjnym Linux (j\u0105dro 3.18.20). Z kolei system plik\u00f3w oparty jest na dziennikowym systemie plik\u00f3w UBIFS (Unsorted Block Image File System).<\/p>\n<p>Do wa\u017cnych cech tego systemu plik\u00f3w nale\u017c\u0105:<\/p>\n<ul>\n<li>praca z partycjami, umo\u017cliwiaj\u0105ca ich tworzenie, usuwanie lub zmian\u0119 rozmiaru;<\/li>\n<li>zapewnia wyr\u00f3wnanie zapisu w ca\u0142ym zakresie no\u015bnika;<\/li>\n<li>praca z uszkodzonymi blokami;<\/li>\n<li>minimalizacja ryzyka utraty danych podczas awaryjnego wy\u0142\u0105czenia zasilania lub innych awarii;<\/li>\n<li>prowadzenie dziennik\u00f3w.<\/li>\n<\/ul>\n<p>\nOpis pochodzi <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/273425\">st\u0105d<\/a><\/noindex>, tam tak\u017ce szczeg\u00f3\u0142owo opisano ten system plik\u00f3w.<\/p>\n<p>To znaczy, \u017ce ten typ systemu plik\u00f3w doskonale nadaje si\u0119 do trudnych warunk\u00f3w pracy modu\u0142u oraz mo\u017cliwych problem\u00f3w z zasilaniem. Ale nie oznacza to, \u017ce warunki niestabilnego zasilania b\u0119d\u0105 oczekiwanym trybem pracy modu\u0142u, m\u00f3wi to tylko o wi\u0119kszej \u017cywotno\u015bci urz\u0105dzenia.<\/p>\n<h3>Pami\u0119\u0107<\/h3>\n<p>\nRozdzielenie obszar\u00f3w pami\u0119ci jest zbudowane w nast\u0119puj\u0105cy spos\u00f3b:<\/p>\n<p><img decoding=\"async\" alt=\"OpenLinux w sk\u0142adzie modu\u0142\u00f3w SIM7600E-H\" src=\"\/wp-content\/uploads\/2020\/06\/b066ca935a9c1105a5407551537db670.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNale\u017cy wyr\u00f3\u017cni\u0107 trzy g\u0142\u00f3wne obszary:<\/p>\n<p><b>ubi0:rootfs<\/b> \u2013 dost\u0119pny tylko do odczytu i zawiera samo j\u0105dro Linux<br \/>\n<b>ubi0:usrfs<\/b> \u2013 u\u017cywany g\u0142\u00f3wnie dla program\u00f3w u\u017cytkownik\u00f3w oraz przechowywania danych<br \/>\n<b>ubi0:cachefs<\/b> \u2013 zarezerwowany dla aktualizacji FOTA. Je\u015bli dost\u0119pna przestrze\u0144 b\u0119dzie niewystarczaj\u0105ca do pobrania aktualizacji \u2013 system usunie nieu\u017cywane pliki, aby zwolni\u0107 miejsce. Jednak z powod\u00f3w bezpiecze\u0144stwa \u2013 nie nale\u017cy umieszcza\u0107 tam swoich plik\u00f3w.<\/p>\n<p>Wszystkie trzy partycje s\u0105 rozdzielone w nast\u0119puj\u0105cy spos\u00f3b:<\/p>\n<p>Filesystem<br \/>\nSize<br \/>\nU\u017cywane<br \/>\nDost\u0119pne<br \/>\nU\u017cycie %<br \/>\nZamontowane w<\/p>\n<p>ubi0:rootfs<br \/>\n40.7M<br \/>\n36.2M<br \/>\n4.4M<br \/>\n89%<br \/>\n\/<\/p>\n<p>ubi0:usrfs<br \/>\n10.5M<br \/>\n360K<br \/>\n10.1M<br \/>\n3%<br \/>\n\/data<\/p>\n<p>ubi0:cachefs<br \/>\n50.3M<br \/>\n20K<br \/>\n47.7M<br \/>\n0%<br \/>\n\/cache<\/p>\n<p><\/p>\n<h3>Dost\u0119pna funkcjonalno\u015b\u0107<\/h3>\n<p>\nJak ju\u017c wspomniano, modu\u0142 oparty jest na chipsecie Cortex A7 od Qualcomm. By\u0142oby b\u0142\u0119dem nie zapewni\u0107 tak wydajnego rdzenia do przetwarzania aplikacji u\u017cytkownika oraz odci\u0105\u017cenia g\u0142\u00f3wnego procesora urz\u0105dzenia, przenosz\u0105c cz\u0119\u015b\u0107 programu na modu\u0142.<\/p>\n<p>                        <b class=\"spoiler_title\">Dla aplikacji u\u017cytkownika dost\u0119pne b\u0119d\u0105 nast\u0119puj\u0105ce tryby pracy peryferi\u00f3w:<\/b><\/p>\n<p>Numer pinu.<br \/>\nNazwa<br \/>\nNumer sys GPIO.<br \/>\nDomy\u015blne dzia\u0142anie<br \/>\nFunc1<br \/>\nFunc2<br \/>\nPobierz<br \/>\nPrzerwanie wybudzenia<\/p>\n<p>6<br \/>\nSPI_CLK<br \/>\n\u2014<br \/>\nUART1_RTS<br \/>\n\u2014<br \/>\n\u2014<br \/>\nB-PD<br \/>\n\u2014<\/p>\n<p>7<br \/>\nSPI_MISO<br \/>\n\u2014<br \/>\nUART1_Rx<br \/>\n\u2014<br \/>\n\u2014<br \/>\nB-PD<br \/>\n\u2014<\/p>\n<p>8<br \/>\nSPI_MOSI<br \/>\n\u2014<br \/>\nUART1_Tx<br \/>\n\u2014<br \/>\n\u2014<br \/>\nB-PD<br \/>\n\u2014<\/p>\n<p>9<br \/>\nSPI_CS<br \/>\n\u2014<br \/>\nUART1_CTS<br \/>\n\u2014<br \/>\n\u2014<br \/>\nB-PD<br \/>\n\u2014<\/p>\n<p>21<br \/>\nSD_CMD<br \/>\n\u2014<br \/>\nKarta SD<br \/>\n\u2014<br \/>\n\u2014<br \/>\nB-PD<br \/>\n\u2014<\/p>\n<p>22<br \/>\nSD_DATA0<br \/>\n\u2014<br \/>\nKarta SD<br \/>\n\u2014<br \/>\n\u2014<br \/>\nB-PD<br \/>\n\u2014<\/p>\n<p>23<br \/>\nSD_DATA1<br \/>\n\u2014<br \/>\nKarta SD<br \/>\n\u2014<br \/>\n\u2014<br \/>\nB-PD<br \/>\n\u2014<\/p>\n<p>24<br \/>\nSD_DATA2<br \/>\n\u2014<br \/>\nKarta SD<br \/>\n\u2014<br \/>\n\u2014<br \/>\nB-PD<br \/>\n\u2014<\/p>\n<p>25<br \/>\nSD_DATA3<br \/>\n\u2014<br \/>\nKarta SD<br \/>\n\u2014<br \/>\n\u2014<br \/>\nB-PD<br \/>\n\u2014<\/p>\n<p>26<br \/>\nSD_CLK<br \/>\n\u2014<br \/>\nKarta SD<br \/>\n\u2014<br \/>\n\u2014<br \/>\nB-PN<br \/>\n\u2014<\/p>\n<p>27<br \/>\nSDIO_DATA1<br \/>\n\u2014<br \/>\nWLAN<br \/>\n\u2014<br \/>\n\u2014<br \/>\nB-PD<br \/>\n\u2014<\/p>\n<p>28<br \/>\nSDIO_DATA2<br \/>\n\u2014<br \/>\nWLAN<br \/>\n\u2014<br \/>\n\u2014<br \/>\nB-PD<br \/>\n\u2014<\/p>\n<p>29<br \/>\nSDIO_CMD<br \/>\n\u2014<br \/>\nWLAN<br \/>\n\u2014<br \/>\n\u2014<br \/>\nB-PD<br \/>\n\u2014<\/p>\n<p>30<br \/>\nSDIO_DATA0<br \/>\n\u2014<br \/>\nWLAN<br \/>\n\u2014<br \/>\n\u2014<br \/>\nB-PD<br \/>\n\u2014<\/p>\n<p>31<br \/>\nSDIO_DATA3<br \/>\n\u2014<br \/>\nWLAN<br \/>\n\u2014<br \/>\n\u2014<br \/>\nB-PD<br \/>\n\u2014<\/p>\n<p>32<br \/>\nSDIO_CLK<br \/>\n\u2014<br \/>\nWLAN<br \/>\n\u2014<br \/>\n\u2014<br \/>\nB-PN<br \/>\n\u2014<\/p>\n<p>33<br \/>\nGPIO3<br \/>\nGPIO_1020<br \/>\nMIFI_POWER_EN<br \/>\nGPIO<br \/>\nMIFI_POWER_EN<br \/>\nB-PU<br \/>\n\u2014<\/p>\n<p>34<br \/>\nGPIO6<br \/>\nGPIO_1023<br \/>\nMIFI_SLEEP_CLK<br \/>\nGPIO<br \/>\nMIFI_SLEEP_CLK<br \/>\nB-PD<br \/>\n\u2014<\/p>\n<p>46<br \/>\nADC2<br \/>\n\u2014<br \/>\nADC<br \/>\n\u2014<br \/>\n\u2014<br \/>\n\u2014<br \/>\n\u2014<\/p>\n<p>47<br \/>\nADC1<br \/>\n\u2014<br \/>\nADC<br \/>\n\u2014<br \/>\n\u2014<br \/>\nB-PU<br \/>\n\u2014<\/p>\n<p>48<br \/>\nSD_DET<br \/>\nGPIO_26<br \/>\nGPIO<br \/>\nGPIO<br \/>\nSD_DET<br \/>\nB-PD<br \/>\nX<\/p>\n<p>49<br \/>\nSTATUS<br \/>\nGPIO_52<br \/>\nStatus<br \/>\nGPIO<br \/>\nStatus<br \/>\nB-PD<br \/>\nX<\/p>\n<p>50<br \/>\nGPIO43<br \/>\nGPIO_36<br \/>\nMIFI_COEX<br \/>\nGPIO<br \/>\nMIFI_COEX<br \/>\nB-PD<br \/>\n\u2014<\/p>\n<p>52<br \/>\nGPIO41<br \/>\nGPIO_79<br \/>\nBT<br \/>\nGPIO<br \/>\nBT<br \/>\nB-PD<br \/>\nX<\/p>\n<p>55<br \/>\nSCL<br \/>\n\u2014<br \/>\nI2C_SCL<br \/>\n\u2014<br \/>\n\u2014<br \/>\nB-PD<br \/>\n\u2014<\/p>\n<p>56<br \/>\nSDA<br \/>\n\u2014<br \/>\nI2C_SDA<br \/>\n\u2014<br \/>\n\u2014<br \/>\nB-PU<br \/>\n\u2014<\/p>\n<p>66<br \/>\nRTS<br \/>\n\u2014<br \/>\nUART2_RTS<br \/>\n\u2014<br \/>\n\u2014<br \/>\nB-PD<br \/>\n\u2014<\/p>\n<p>67<br \/>\nCTS<br \/>\n\u2014<br \/>\nUART2_CTS<br \/>\n\u2014<br \/>\n\u2014<br \/>\nB-PD<br \/>\n\u2014<\/p>\n<p>68<br \/>\nRxD<br \/>\n\u2014<br \/>\nUART2_Rx<br \/>\n\u2014<br \/>\n\u2014<br \/>\nB-PD<br \/>\n\u2014<\/p>\n<p>69<br \/>\nRI<br \/>\n\u2014<br \/>\nGPIO(RI)<br \/>\n\u2014<br \/>\n\u2014<br \/>\nB-PD<br \/>\n\u2014<\/p>\n<p>70<br \/>\nDCD<br \/>\n\u2014<br \/>\nGPIO<br \/>\n\u2014<br \/>\n\u2014<br \/>\nB-PD<br \/>\n\u2014<\/p>\n<p>71<br \/>\nTxD<br \/>\n\u2014<br \/>\nUART2_Tx<br \/>\n\u2014<br \/>\n\u2014<br \/>\nB-PD<br \/>\n\u2014<\/p>\n<p>72<br \/>\nDTR<br \/>\n\u2014<br \/>\nGPIO(DTR)<br \/>\n\u2014<br \/>\n\u2014<br \/>\nB-PD<br \/>\nX<\/p>\n<p>73<br \/>\nPCM_OUT<br \/>\n\u2014<br \/>\nPCM<br \/>\n\u2014<br \/>\n\u2014<br \/>\nB-PD<br \/>\n\u2014<\/p>\n<p>74<br \/>\nPCM_IN<br \/>\n\u2014<br \/>\nPCM<br \/>\n\u2014<br \/>\n\u2014<br \/>\nB-PD<br \/>\n\u2014<\/p>\n<p>75<br \/>\nPCM_SYNC<br \/>\n\u2014<br \/>\nPCM<br \/>\n\u2014<br \/>\n\u2014<br \/>\nB-PD<br \/>\n\u2014<\/p>\n<p>76<br \/>\nPCM_CLK<br \/>\n\u2014<br \/>\nPCM<br \/>\n\u2014<br \/>\n\u2014<br \/>\nB-PU<br \/>\n\u2014<\/p>\n<p>87<br \/>\nGPIO77<br \/>\nGPIO77<br \/>\nBT<br \/>\nGPIO<br \/>\nBT<br \/>\nB-PD<br \/>\n\u2014<\/p>\n<p>Zgadzam si\u0119, lista jest imponuj\u0105ca, zwr\u00f3\u0107 uwag\u0119, \u017ce cz\u0119\u015b\u0107 peryferi\u00f3w jest wykorzystywana do dzia\u0142ania modu\u0142u jako router. T. j. na podstawie takiego modu\u0142u mo\u017cna stworzy\u0107 ma\u0142y router, kt\u00f3ry b\u0119dzie udost\u0119pnia\u0142 internet przez Wi-Fi. Nota bene, istnieje ju\u017c gotowe rozwi\u0105zanie, nazywa si\u0119 SIM7600E-H-MIFI i jest to karta miniPCIE z wlutowanym modu\u0142em SIM7600E-H oraz kilkoma wyj\u015bciami antenowymi, z kt\u00f3rych jedno jest anten\u0105 Wi-Fi. Zreszt\u0105, to ju\u017c materia\u0142 na osobny temat.<\/p>\n<h3>\u015arodowisko (nie dzie\u0144 tygodnia)<\/h3>\n<p>\n<noindex><a rel=\"nofollow\" href=\"http:\/\/en.simcom.com\">SIMCom Wireless Solutions<\/a><\/noindex> umo\u017cliwiaj\u0105 deweloperom samodzielny wyb\u00f3r najbardziej znanego \u015brodowiska programistycznego pod Linux lub Windows. Je\u015bli chodzi o jedn\u0105 aplikacj\u0119 wykonywaln\u0105 na module, lepiej wybra\u0107 Windows, co pozwoli na szybsze i prostsze wykonanie. Je\u015bli przewidziana jest skomplikowana architektura aplikacji i p\u00f3\u017aniejsze aktualizacje \u2013 lepiej u\u017cy\u0107 Linux. B\u0119dziemy r\u00f3wnie\u017c potrzebowa\u0107 Linuxa do kompilacji plik\u00f3w wykonywalnych do p\u00f3\u017aniejszego za\u0142adowania do modu\u0142u, a do kompilacji wystarczy maszyna wirtualna.<\/p>\n<p>Z tego, co b\u0119dzie potrzebne, a co nie jest dost\u0119pne do pobrania publicznie \u2013 SDK, kt\u00f3re mo\u017cna zam\u00f3wi\u0107 u swojego dystrybutora.<\/p>\n<h2>Instalacja narz\u0119dzi do pracy z modu\u0142em<\/h2>\n<p>\nTutaj i dalej b\u0119dziemy pracowa\u0107 w systemie Windows jako najbardziej znajomej OS dla wi\u0119kszo\u015bci u\u017cytkownik\u00f3w.<\/p>\n<p>B\u0119dziemy potrzebowa\u0107 w kilku prostych krokach zainstalowa\u0107 niezb\u0119dne oprogramowanie do dalszej nauki obs\u0142ugi modu\u0142u:<\/p>\n<ol>\n<li>GNU\/Linux<\/li>\n<li>Cygwin.<\/li>\n<li>Sterowniki<\/li>\n<li>ADB<\/li>\n<\/ol>\n<p><\/p>\n<h3>Instalacja GNU\/Linux<\/h3>\n<p>\nDo budowy aplikacji mo\u017cna u\u017cy\u0107 dowolnego kompilatora zgodnego z ARM-Linux. My skorzystamy z SourceryCodeBenchLiteARM GNU\/Linux, dost\u0119pnego do pobrania pod <noindex><a rel=\"nofollow\" href=\"https:\/\/sourcery.mentor.com\/public\/gnu_toolchain\/arm-none-linux-gnueabi\/arm-2014.05-29-arm-none-linux-gnueabi.exe\">linkiem<\/a><\/noindex>.<\/p>\n<p>Aby wszystkie komponenty by\u0142y zainstalowane w\u0142a\u015bciwie, zostawi\u0119 kilka zrzut\u00f3w ekranu z procesu instalacji. W zasadzie w instalacji nie ma nic skomplikowanego.<\/p>\n<p>                        <b class=\"spoiler_title\">Aby wszystkie komponenty by\u0142y zainstalowane w\u0142a\u015bciwie, zostawi\u0119 kilka zrzut\u00f3w ekranu z procesu instalacji. W zasadzie w instalacji nie ma nic skomplikowanego.<\/b><\/p>\n<ol>\n<li>Akceptujemy umow\u0119 licencyjn\u0105<br \/>\n<img decoding=\"async\" alt=\"OpenLinux w sk\u0142adzie modu\u0142\u00f3w SIM7600E-H\" src=\"\/wp-content\/uploads\/2020\/06\/dd1630770745f96c2cf03da8be749a46.png\" style=\"display:block;margin: 0 auto;\" \/><\/li>\n<li>Wskazujemy folder instalacyjny<br \/>\n<img decoding=\"async\" alt=\"OpenLinux w sk\u0142adzie modu\u0142\u00f3w SIM7600E-H\" src=\"\/wp-content\/uploads\/2020\/06\/925c11f439ae7ed0a2b6be31db0be8e8.png\" style=\"display:block;margin: 0 auto;\" \/><\/li>\n<li>Potrzebne komponenty pozostawiamy bez zmian<br \/>\n<img decoding=\"async\" alt=\"OpenLinux w sk\u0142adzie modu\u0142\u00f3w SIM7600E-H\" src=\"\/wp-content\/uploads\/2020\/06\/b35500760f9edb900871fb1683e4bf9a.png\" style=\"display:block;margin: 0 auto;\" \/><\/li>\n<li>Zostawiamy jak jest<br \/>\n<img decoding=\"async\" alt=\"OpenLinux w sk\u0142adzie modu\u0142\u00f3w SIM7600E-H\" src=\"\/wp-content\/uploads\/2020\/06\/451cb1f41db91ce3736930bbf7374588.png\" style=\"display:block;margin: 0 auto;\" \/><\/li>\n<li>Kilka razy \u201eNext\u201d, \u201eInstall\u201d i w zasadzie tyle<br \/>\n<img decoding=\"async\" alt=\"OpenLinux w sk\u0142adzie modu\u0142\u00f3w SIM7600E-H\" src=\"\/wp-content\/uploads\/2020\/06\/8c22f4834e1b13286361e10860d0c966.png\" style=\"display:block;margin: 0 auto;\" \/><\/li>\n<\/ol>\n<h3>Instalacja Cygwin<\/h3>\n<p>\nNast\u0119pnie dla rozwoju b\u0119dziemy potrzebowa\u0107 zestawu bibliotek i narz\u0119dzi dostarczonych przez <noindex><a rel=\"nofollow\" href=\"https:\/\/www.cygwin.com\">Cygwin.<\/a><\/noindex>. Tutaj wszystko jest proste, aktualn\u0105 wersj\u0119 Cygwin mo\u017cna pobra\u0107 za darmo ze strony oficjalnej projektu, w momencie pisania artyku\u0142u dost\u0119pna by\u0142a wersja 3.1.5, kt\u00f3rej u\u017cyli\u015bmy podczas przygotowywania materia\u0142u.<\/p>\n<p>W instalacji Cygwin nie ma nic skomplikowanego, jedyne co trzeba zrobi\u0107, to wybra\u0107 \u2013 lusterko, z kt\u00f3rego instalator pobierze potrzebne pliki, wybieramy dowolne i instalujemy, a tak\u017ce zestaw narz\u0119dzi i bibliotek, pozostawiaj\u0105c wybrane wszystkie dost\u0119pne biblioteki i narz\u0119dzia.<\/p>\n<h3>Instalacja sterownik\u00f3w<\/h3>\n<p>\nPo pod\u0142\u0105czeniu modu\u0142u do PC nale\u017cy zainstalowa\u0107 sterowniki. Mo\u017cna je poprosi\u0107 u swojego dystrybutora (zalecane). Nie polecam samodzielnego szukania w Internecie, poniewa\u017c mo\u017ce to wymaga\u0107 du\u017co czasu na znalezienie przyczyny konfliktu urz\u0105dze\u0144.<\/p>\n<p><img decoding=\"async\" alt=\"OpenLinux w sk\u0142adzie modu\u0142\u00f3w SIM7600E-H\" src=\"\/wp-content\/uploads\/2020\/06\/25b144da02d48332cb6a8a766af447c7.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nW\u015br\u00f3d wyodr\u0119bnionych port\u00f3w widzimy nast\u0119puj\u0105ce:<\/p>\n<p>Windows<br \/>\nLinuxa<br \/>\nOpis<\/p>\n<p>SimTech HS-USB Diagnostics<br \/>\nUSB Serial<br \/>\nDiagnostic Interface<\/p>\n<p>SimTech HS-USB NMEA<br \/>\nUSB Serial<br \/>\nGPS NMEA Interface<\/p>\n<p>SimTech HS-USB AT Port<br \/>\nUSB Serial<br \/>\nAT port Interface<\/p>\n<p>SimTech HS-USB Modem<br \/>\nUSB Serial<br \/>\nModem port Interface<\/p>\n<p>SimTech HS-USB Audio<br \/>\nUSB Serial<br \/>\nUSB Audio Interface<\/p>\n<p>SimTech HS-USB WWAN Adapter<br \/>\nUSB Net<br \/>\nNDIS wwan Interface<\/p>\n<p>Android Composite ADB Interface<br \/>\nUSB ADB<br \/>\nAndroid add debug port<\/p>\n<p>\nJak zapewne zauwa\u017cyli\u015bcie, w\u015br\u00f3d port\u00f3w na zrzucie ekranu nie ma USB ADB, poniewa\u017c port ADB w module jest domy\u015blnie zamkni\u0119ty i trzeba go w\u0142\u0105czy\u0107, wysy\u0142aj\u0105c polecenie \u2018AT+CUSBADB=1\u2019 do portu AT modu\u0142u i zrestartowa\u0107 go (mo\u017cna to zrobi\u0107 poleceniem \u2018AT+CRESET\u2019).<\/p>\n<p>W wyniku otrzymamy potrzebny interfejs w mened\u017cerze urz\u0105dze\u0144:<\/p>\n<p><img decoding=\"async\" alt=\"OpenLinux w sk\u0142adzie modu\u0142\u00f3w SIM7600E-H\" src=\"\/wp-content\/uploads\/2020\/06\/706d604bde19b43d4d6b1fa82a4a076e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nZ ko\u0144c\u00f3wk\u0105 sterownik\u00f3w sko\u0144czone, przechodzimy do ADB.<\/p>\n<h3>Instalacja ADB<\/h3>\n<p>\nWchodzimy na oficjaln\u0105 stron\u0119 Android Developer pod <noindex><a rel=\"nofollow\" href=\"https:\/\/developer.android.com\/studio\/releases\/platform-tools\">linkiem<\/a><\/noindex>. Nie b\u0119dziemy pobiera\u0107 obszernego Android Studio, wystarczy nam wiersz polece\u0144, dost\u0119pny do pobrania pod linkiem \u201ePobierz SDK Platform-Tools dla Windows\u201d.<\/p>\n<p><img decoding=\"async\" alt=\"OpenLinux w sk\u0142adzie modu\u0142\u00f3w SIM7600E-H\" src=\"\/wp-content\/uploads\/2020\/06\/9929969642382dbca66fcf1e1930af28.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPobieramy i wypakowujemy uzyskany archiwum w g\u0142\u00f3wnym katalogu dysku C.<\/p>\n<h3>Zmienna \u015brodowiskowa<\/h3>\n<p>\nPo zainstalowaniu Cygwin konieczne b\u0119dzie dodanie \u015bcie\u017cki Cygwin\/bin\/ do zmiennych \u015brodowiskowych (Klasyczna Panel sterowania \u2192 System \u2192 Zaawansowane ustawienia systemu \u2192 Zaawansowane \u2192 Zmienne \u015brodowiskowe \u2192 Zmienne systemowe \u2192 Path \u2192 Edytuj), jak pokazano na zrzucie ekranu poni\u017cej:<\/p>\n<p><img decoding=\"async\" alt=\"OpenLinux w sk\u0142adzie modu\u0142\u00f3w SIM7600E-H\" src=\"\/wp-content\/uploads\/2020\/06\/675e0cb09e98946ff30ccd1c951e1b07.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nW podobny spos\u00f3b dodajemy \u015bcie\u017ck\u0119 do pobranego i rozpakowanego archiwum ADB w g\u0142\u00f3wnym katalogu dysku C.<\/p>\n<p><img decoding=\"async\" alt=\"OpenLinux w sk\u0142adzie modu\u0142\u00f3w SIM7600E-H\" src=\"\/wp-content\/uploads\/2020\/06\/a733eb15fffc103be097ea1a0fd875df.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKilka razy klikamy OK i restartujemy komputer.<\/p>\n<p>Po restarcie mo\u017cna \u0142atwo sprawdzi\u0107, czy ADB dzia\u0142a poprawnie, otwieraj\u0105c wiersz polece\u0144 (Win+R \u2192 cmd) i wpisuj\u0105c polecenie 'adb version'. Otrzymamy mniej wi\u0119cej taki wynik:<\/p>\n<p><img decoding=\"async\" alt=\"OpenLinux w sk\u0142adzie modu\u0142\u00f3w SIM7600E-H\" src=\"\/wp-content\/uploads\/2020\/06\/84dbe94d0346947d8125adc8654a06ff.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPod\u0142\u0105czamy modu\u0142 do komputera (je\u015bli zosta\u0142 od\u0142\u0105czony) i sprawdzamy, czy ADB go wykrywa poleceniem 'adb devices':<\/p>\n<p><img decoding=\"async\" alt=\"OpenLinux w sk\u0142adzie modu\u0142\u00f3w SIM7600E-H\" src=\"\/wp-content\/uploads\/2020\/06\/b0acef97e9cc2c8f6270a00bec7efc90.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nGotowe, na tym etapie konfiguracja po\u0142\u0105czenia z modu\u0142em zosta\u0142a zako\u0144czona i mo\u017cemy uruchomi\u0107 shell do pracy z modu\u0142em.<\/p>\n<p><img decoding=\"async\" alt=\"OpenLinux w sk\u0142adzie modu\u0142\u00f3w SIM7600E-H\" src=\"\/wp-content\/uploads\/2020\/06\/3dc6d9c5d57db8d6b8eb7fea19468463.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Rozpakowywanie i kompilacja SDK<\/h2>\n<p>\nPo uzyskaniu dost\u0119pu do shella i rozpocz\u0119ciu pracy z wierszem polece\u0144 modu\u0142u, spr\u00f3bujemy skompilowa\u0107 nasz\u0105 pierwsz\u0105 aplikacj\u0119 do za\u0142adowania do modu\u0142u.<\/p>\n<p>Z tym mog\u0105 pojawi\u0107 si\u0119 problemy! Poniewa\u017c modu\u0142 dzia\u0142a na systemie operacyjnym Linux, aby unikn\u0105\u0107 konflikt\u00f3w podczas kompilacji kodu pod Windows \u2013 najlepiej kompilowa\u0107 w natywnym \u015brodowisku \u2013 Linux.<\/p>\n<p>Nie b\u0119dziemy si\u0119 szczeg\u00f3\u0142owo zatrzymywa\u0107 na tym, jak w przypadku braku Linux i ch\u0119ci jego zainstalowania na w\u0142asnym komputerze, mo\u017cna go zainstalowa\u0107 na wirtualnym. My skorzystamy z VirtualBox, zainstalujemy Ubuntu w wersji 20.04 (aktualna wersja w momencie pisania artyku\u0142u) i pod ni\u0105 rozpoczniemy prac\u0119 z kompilatorami, SDK itd.<\/p>\n<p>Przechodzimy do \u015brodowiska Linux i rozpakowujemy archiwum otrzymane od dystrybutora.<\/p>\n<pre><code class=\"bash\">simcom@VirtualBox:~\/Desktop\/OpenLinux$ sudo tar -xzf MDM9x07_OL_2U_22_V1.12_191227.tar.gz <\/code><\/pre>\n<p>\nPrzechodzimy do katalogu sim_open_sdk i dodajemy \u015brodowisko:<\/p>\n<pre><code class=\"bash\">simcom@VirtualBox:~\/Desktop\/OpenLinux\/sim_open_sdk$ cd sim_open_sdk\nsimcom@VirtualBox:~\/Desktop\/OpenLinux\/sim_open_sdk$ source sim_crosscompile\/sim-crosscompile-env-init <\/code><\/pre>\n<p>\nPozostajemy w tym samym folderze i wykonujemy kolejne polecenia, b\u0119d\u0105c w nim.<br \/>\nInstalujemy bibliotek\u0119 libncurses5-dev, je\u015bli nie zosta\u0142a jeszcze zainstalowana:<\/p>\n<pre><code class=\"bash\">simcom@VirtualBox:~\/Desktop\/OpenLinux\/sim_open_sdk$ sudo apt-get update &amp;&amp; sudo apt-get install libncurses5-dev -y<\/code><\/pre>\n<p>\nPython, je\u015bli r\u00f3wnie\u017c nie zosta\u0142 zainstalowany:<\/p>\n<pre><code class=\"bash\">simcom@VirtualBox:~\/Desktop\/OpenLinux\/sim_open_sdk$ sudo apt-get install python -y<\/code><\/pre>\n<p>\ni gcc:<\/p>\n<pre><code class=\"bash\">simcom@VirtualBox:~\/Desktop\/OpenLinux\/sim_open_sdk$ sudo apt-get install gcc<\/code><\/pre>\n<p><\/p>\n<h3>Kompilacja:<\/h3>\n<p>\nTeraz musimy skompilowa\u0107 kilka plik\u00f3w, wykonuj\u0105c kolejno nast\u0119puj\u0105ce polecenia.<\/p>\n<p>Je\u015bli podczas kompilacji pojawi si\u0119 okno konfiguracji j\u0105dra \u2013 po prostu wybieramy Exit i wracamy do konsoli, obecnie nie ma potrzeby konfigurowania j\u0105dra.<\/p>\n<p>Wykonujemy:<\/p>\n<pre><code class=\"bash\">simcom@VirtualBox:~\/Desktop\/OpenLinux\/sim_open_sdk$ make<\/code><\/pre>\n<p>\nKompilujemy bootloader:<\/p>\n<pre><code class=\"bash\">simcom@VirtualBox:~\/Desktop\/OpenLinux\/sim_open_sdk$ make aboot<\/code><\/pre>\n<p>\nKompilujemy j\u0105dro:<\/p>\n<pre><code class=\"bash\">simcom@VirtualBox:~\/Desktop\/OpenLinux\/sim_open_sdk$ make kernel_menuconfig\nsimcom@VirtualBox:~\/Desktop\/OpenLinux\/sim_open_sdk$ make kernel\n<\/code><\/pre>\n<p>\nKompilujemy system plik\u00f3w root:<\/p>\n<pre><code class=\"bash\">simcom@VirtualBox:~\/Desktop\/OpenLinux\/sim_open_sdk$ make rootfs<\/code><\/pre>\n<p>\nDla u\u017cytkownik\u00f3w Linuxa szczeg\u00f3lnie istotne b\u0119dzie skompilowanie sterownika modu\u0142u:<\/p>\n<pre><code class=\"bash\">simcom@VirtualBox:~\/Desktop\/OpenLinux\/sim_open_sdk$ make kernel_module<\/code><\/pre>\n<p>\nSkompilujemy demonstracj\u0119:<\/p>\n<pre><code class=\"bash\">simcom@VirtualBox:~\/Desktop\/OpenLinux\/sim_open_sdk$ make demo<\/code><\/pre>\n<p>\nW wyniku czego w katalogu sim_open_sdk\/output pojawi si\u0119 kilka nowych plik\u00f3w:<\/p>\n<pre><code class=\"bash\">simcom@VirtualBox:~\/Desktop\/OpenLinux\/sim_open_sdk$ ls output\/\nappsboot.mbn  boot.img  demo_app  helloworld  system.img\n<\/code><\/pre>\n<p><\/p>\n<h2>Demo<\/h2>\n<p>\nSpr\u00f3bujemy za\u0142adowa\u0107 demonstracj\u0119 do naszego modu\u0142u i zobaczymy, co z tego wyjdzie.<\/p>\n<h3>\u0141adowanie<\/h3>\n<p>\nW katalogu sim_open_sdk mo\u017cemy zobaczy\u0107 plik demo_app. Zabieramy go i przenosimy do g\u0142\u00f3wnego katalogu dysku C na komputerze, do kt\u00f3rego pod\u0142\u0105czony jest modu\u0142. Nast\u0119pnie otwieramy wiersz polece\u0144 Windows (Win+R -&gt; cmd) i wpisujemy:<\/p>\n<pre><code class=\"dos\">C:&gt;adb push C:demo_app \/data\/<\/code><\/pre>\n<p>\nKonsola poinformuje nas:<\/p>\n<pre><code class=\"dos\">C:demo_app: 1 file pushed, 0 skipped. 151.4 MB\/s (838900 bytes in 0.005s)<\/code><\/pre>\n<p>\nTo oznacza, \u017ce plik zosta\u0142 pomy\u015blnie wys\u0142any do modu\u0142u i pozostaje nam tylko go uruchomi\u0107. Nie zwlekajmy.<\/p>\n<p>Wykonujemy:<\/p>\n<pre><code class=\"dos\">C:&gt;adb shell<\/code><\/pre>\n<p>\nRozszerzamy uprawnienia przes\u0142anego pliku:<\/p>\n<pre><code class=\"plaintext\">\/ # cdhmod 777 \/data\/demo_app<\/code><\/pre>\n<p>\nI uruchamiamy:<\/p>\n<pre><code class=\"plaintext\">\/ # \/data\/demo_app<\/code><\/pre>\n<p>\nW tej samej konsoli modu\u0142 przeka\u017ce nam nast\u0119puj\u0105ce informacje:<\/p>\n<pre><code class=\"plaintext\">SDK_VER : SIM_SDK_VER_20191205\nDEMO_VER: SIM_SDK_VER_20191205\n\nProsz\u0119 wybra\u0107 opcj\u0119 do przetestowania z poni\u017cszych przedmiot\u00f3w.\n\n1. WIFI                       2. PO\u0141\u0104CZENIE G\u0141OSOWE\n3. PO\u0141\u0104CZENIE DANYCH          4. SMS\n5. WDS(APN)                   6. NAS\n7. AT                         8. OTA\n9. TTS                        10. GPIO\n11. GPS                       12. Bluetooth\n13. TCP\/UDP                   14. Timer\n15. ADC                       16. I2C\n17. UIM(SimCard)              18. DMS(IMEI,MEID)\n19. UART                      20. SPI\n21. Wersja                    22. Ethernet\n23. FTP                       24. SSL\n25. HTTP(S)                   26. FTP(S)\n27. MQTT(S)                   28. ALSA\n29. DEV                       30. AUDIO\n31. JSON                      32. LBS\n99. EXIT\nOpcja &gt;   \n<\/code><\/pre>\n<p>\nSprawd\u017amy IMEI modu\u0142u, wpiszmy 7 (przej\u015bcie do trybu polece\u0144), a nast\u0119pnie wpiszmy 5:<\/p>\n<pre><code class=\"plaintext\">Prosz\u0119 wybra\u0107 opcj\u0119 do przetestowania z poni\u017cszej listy.\n\n1. WIFI                       2. ROZMOWA G\u0141OSOWA\n3. ROZMOWA DANYCH            4. SMS\n5. WDS(APN)                  6. NAS\n7. AT                        8. OTA\n9. TTS                       10. GPIO\n11. GPS                       12. Bluetooth\n13. TCP\/UDP                   14. Timer\n15. ADC                       16. I2C\n17. UIM(Karta SIM)            18. DMS(IMEI,MEID)\n19. UART                      20. SPI\n21. Wersja                   22. Ethernet\n23. FTP                       24. SSL\n25. HTTP(S)                   26. FTP(S)\n27. MQTT(S)                   28. ALSA\n29. DEV                       30. AUDIO\n31. JSON                      32. LBS\n99. WYJ\u015aCIE\nOpcja &gt; 7\n\nProsz\u0119 wybra\u0107 opcj\u0119 do przetestowania z poni\u017cszej listy.\n\n1. pobierz wersj\u0119 modu\u0142u      2. pobierz CSQ\n3. pobierz CREG               4. pobierz ICCID\n5. pobierz IMEI               6. pobierz CIMI\n99. powr\u00f3t\nOpcja &gt; 5\nIMEI: 867584030090489\n\nProsz\u0119 wybra\u0107 opcj\u0119 do przetestowania z poni\u017cszej listy.\n\n1. pobierz wersj\u0119 modu\u0142u      2. pobierz CSQ\n3. pobierz CREG               4. pobierz ICCID\n5. pobierz IMEI               6. pobierz CIMI\n99. powr\u00f3t\nOpcja &gt;\n<\/code><\/pre>\n<p>\nW ten spos\u00f3b zobaczymy IMEI modu\u0142u.<\/p>\n<h2>Na zako\u0144czenie<\/h2>\n<p>\nMam nadziej\u0119, \u017ce uda\u0142o nam si\u0119 stworzy\u0107 og\u00f3lny obraz tego, jak rozpocz\u0105\u0107 prac\u0119 z modu\u0142em. W kolejnych artyku\u0142ach dok\u0142adniej om\u00f3wimy mo\u017cliwo\u015bci, jakie oferuje platforma SIM7600E-H, oraz jak mo\u017cemy zdalnie zaktualizowa\u0107 w\u0142asn\u0105 aplikacj\u0119 w module.<\/p>\n<p>Zach\u0119cam do zadawania pyta\u0144 w komentarzach, a tak\u017ce do wskazania, jaki aspekt mo\u017cliwo\u015bci modu\u0142u powinien by\u0107 odzwierciedlony w kolejnych artyku\u0142ach.<br \/>\n<br \/>\u0179r\u00f3d\u0142o: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/507392\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0435\u0433\u043e \u0432 \u043c\u043e\u0434\u0443\u043b\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u043a\u0430\u043a \u043f\u043e\u0434 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 Linux, \u0442\u0430\u043a \u0438 Windows. \u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0442\u043e, \u043a\u0430\u043a \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0432\u0448\u0438\u0441\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u043c\u0438 \u0438\u0437 SDK \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c\u043e\u0433\u043e SIMCom Wireless Solutions \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432 \u043c\u043e\u0434\u0443\u043b\u044c. \u041f\u0435\u0440\u0435\u0434 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c \u0441\u0442\u0430\u0442\u044c\u0438 \u043e\u0434\u0438\u043d \u043c\u043e\u0439 \u0437\u043d\u0430\u043a\u043e\u043c\u044b\u0439, \u0434\u0430\u043b\u0435\u043a\u0438\u0439 \u043e\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u043e\u0434 Linux, \u043f\u043e\u043f\u0440\u043e\u0441\u0438\u043b \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":86185,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-86184","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/openlinux-v-sostave-modulej-sim7600e-h\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47OpenLinux \u0432 \u0441\u043e\u0441\u0442\u0430\u0432\u0435 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 SIM7600E-H | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/openlinux-v-sostave-modulej-sim7600e-h\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-06-22T11:42:13+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-06-22T11:42:13+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47OpenLinux w sk\u0142adzie modu\u0142\u00f3w SIM7600E-H | ProHoster","description":"Mechanizm opracowywania aplikacji u\u017cytkownika i.","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/openlinux-v-sostave-modulej-sim7600e-h","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pl_PL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47OpenLinux \u0432 \u0441\u043e\u0441\u0442\u0430\u0432\u0435 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 SIM7600E-H | ProHoster","og:description":"\u041c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438.","og:url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/openlinux-v-sostave-modulej-sim7600e-h","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-06-22T11:42:13+00:00","article:modified_time":"2020-06-22T11:42:13+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"86184","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 14:21:09","updated":"2022-10-04 03:00:21","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/86184","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=86184"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/86184\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media\/86185"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=86184"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=86184"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=86184"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}