{"id":301011,"date":"2020-03-31T09:00:26","date_gmt":"2020-03-31T09:00:26","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=301011"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=301011","title":{"rendered":"GSM\/3G\/4G-\u043c\u043e\u0434\u0435\u043c\u044b \u0432\u043e \u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 LTE-\u043c\u043e\u0434\u0435\u043c\u0430 Quectel EC21 \u0438 Yocto Project"},"content":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/post\/494838\/\">\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/_6\/es\/my\/_6esmy-jluwxo_vjdmz3i6aeh0g.jpeg\" alt=\"image\"><\/p>\n<p>  <\/p>\n<p>\u041c\u043d\u043e\u0433\u0438\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c \u043d\u0430 \u0431\u0430\u0437\u0435 \u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442. \u041f\u0440\u043e\u0432\u043e\u0434\u043d\u043e\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0443 \u0434\u043b\u044f \u043d\u0438\u0445 \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0438 \u0435\u0441\u043b\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u0437\u043e\u043d\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0441\u043e\u0442\u043e\u0432\u043e\u0439 \u0441\u0432\u044f\u0437\u0438, \u0442\u043e \u043a \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0443 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e GSM\/3G\/4G-\u043c\u043e\u0434\u0435\u043c\u043e\u0432. <\/p>\n<p>  <\/p>\n<p>\u0412 \u044d\u0442\u043e\u0439 \u0437\u0430\u043c\u0435\u0442\u043a\u0435 \u043e\u043f\u0438\u0441\u0430\u043d \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u0430 \u041e\u0421 Linux \u0434\u043b\u044f \u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f Yocto Project, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043a \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0443 \u0447\u0435\u0440\u0435\u0437 GSM\/3G\/4G-\u043c\u043e\u0434\u0435\u043c \u0438 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b PPP.<\/p>\n<p><a name=\"habracut\"><\/a>  <\/p>\n<h3 id=\"soderzhanie\">\u0421\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435<\/h3>\n<p>  <\/p>\n<ul>\n<li><a href=\"#oborudovanie-i-programmnoe-obespechenie\">\u041e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0435 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u0435<\/a><\/li>\n<li><a href=\"#podgotovka-pk-dlya-sborki-distributiv\">\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u041f\u041a \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u0430<\/a><\/li>\n<li><a href=\"#sozdanie-proekta-i-sborka-distributiva\">\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0438 \u0441\u0431\u043e\u0440\u043a\u0430 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u0430<\/a><\/li>\n<li><a href=\"#dobavlenie-podderzhki-protokola-ppp-v-yadro-os\">\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 PPP \u0432 \u044f\u0434\u0440\u043e \u041e\u0421<\/a><\/li>\n<li><a href=\"#dobavlenie-v-distributiv-paketa-ppp\">\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0432 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432 \u043f\u0430\u043a\u0435\u0442\u0430 ppp<\/a><\/li>\n<li><a href=\"#skripty-dlya-pppd-i-chat\">\u0421\u043a\u0440\u0438\u043f\u0442\u044b \u0434\u043b\u044f pppd \u0438 chat<\/a><\/li>\n<li><a href=\"#recept-rasshireniya-dlya-paketa-ppp\">\u0420\u0435\u0446\u0435\u043f\u0442 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043f\u0430\u043a\u0435\u0442\u0430 ppp<\/a><\/li>\n<li><a href=\"#zaklyuchenie-i-ssylka-na-proekt\">\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0438 \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043f\u0440\u043e\u0435\u043a\u0442<\/a><\/li>\n<\/ul>\n<p>  <\/p>\n<h3 id=\"oborudovanie-i-programmnoe-obespechenie\">\u041e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0435 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u0435<\/h3>\n<p>  <\/p>\n<p>\u0414\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432 \u041e\u0421 Linux \u0434\u043b\u044f \u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <a href=\"https:\/\/www.yoctoproject.org\/\" rel=\"nofollow\">Yocto Project<\/a> \u0432\u0435\u0440\u0441\u0438\u0438 THUD 2.6.4 \u043d\u0430 \u041f\u041a \u043f\u043e\u0434 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u041e\u0421 Ubuntu 18.04.<\/p>\n<p>  <\/p>\n<p>\u0420\u043e\u043b\u044c \u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0431\u0443\u0434\u0435\u0442 \u0438\u0433\u0440\u0430\u0442\u044c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e <a href=\"https:\/\/beagleboard.org\/black\" rel=\"nofollow\">BeagleBone Black Rev. C<\/a> \u0441 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u043c \u043a \u043d\u0435\u043c\u0443 LTE-\u043c\u043e\u0434\u0435\u043c\u043e\u043c <a href=\"https:\/\/www.quectel.com\/product\/ec21.htm\" rel=\"nofollow\">Quectel EC21-E<\/a>. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u044b \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u044b\u043c \u043d\u0430\u0431\u043e\u0440\u043e\u043c <a href=\"https:\/\/www.quectel.com\/product\/umtsevb.htm\" rel=\"nofollow\">UMTS&amp;LTE EVB<\/a> \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f UMTS \u0438 LTE \u043c\u043e\u0434\u0443\u043b\u0435\u0439 Quectel. \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u0430\u044f \u0441\u0445\u0435\u043c\u0430 \u0441\u0442\u0435\u043d\u0434\u0430, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0430 \u043d\u0430 \u0440\u0438\u0441. 1.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/85\/nc\/y0\/85ncy0u5t-uj_gppxrxazahr25q.png\" alt=\"image\"><\/p>\n<p>  <\/p>\n<p>\u0420\u0438\u0441\u0443\u043d\u043e\u043a 1 \u2014 \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u0430\u044f \u0441\u0445\u0435\u043c\u0430 \u0441\u0442\u0435\u043d\u0434\u0430<\/p>\n<p>  <\/p>\n<h3 id=\"podgotovka-pk-dlya-sborki-distributiv\">\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u041f\u041a \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u0430<\/h3>\n<p>  <\/p>\n<p>\u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u043d\u0430 \u0432\u0430\u0448\u0435\u043c \u041f\u041a \u0435\u0441\u0442\u044c 50 \u0413\u0411 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0433\u043e \u0434\u0438\u0441\u043a\u043e\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 \u0438 \u043d\u0430 \u043d\u0435\u043c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u044b:<\/p>\n<p>  <\/p>\n<ul>\n<li>Git \u0432\u0435\u0440\u0441\u0438\u0438 1.8.3.1 \u0438\u043b\u0438 \u043d\u043e\u0432\u0435\u0435;<\/li>\n<li>Tar \u0432\u0435\u0440\u0441\u0438\u0438 1.27 \u0438\u043b\u0438 \u043d\u043e\u0432\u0435\u0435;<\/li>\n<li>Python \u0432\u0435\u0440\u0441\u0438\u0438 3.4.0 \u0438\u043b\u0438 \u043d\u043e\u0432\u0435\u0435.<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043f\u0430\u043a\u0435\u0442\u044b:<\/p>\n<p>  <\/p>\n<pre><code class=\"bash\">$ sudo apt-get install gawk wget git-core diffstat unzip texinfo \\                        gcc-multilib build-essential chrpath socat  \\                        cpio python python3 python3-pip python3-pexpect \\                        xz-utils debianutils iputils-ping libsdl1.2-dev xterm<\/code><\/pre>\n<p>  <\/p>\n<p>\u041d\u0430 \u044d\u0442\u043e\u043c \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u041f\u041a \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u0430 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f Yocto Project \u0437\u0430\u043a\u043e\u043d\u0447\u0435\u043d\u0430. \u041b\u044e\u0431\u043e\u043f\u044b\u0442\u043d\u044b\u0435 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0438 \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0432\u0448\u0438\u0441\u044c \u0441 <a href=\"https:\/\/www.yoctoproject.org\/docs\/2.6.4\/brief-yoctoprojectqs\/brief-yoctoprojectqs.html\" rel=\"nofollow\">Yocto Project Quick Build<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"sozdanie-proekta-i-sborka-distributiva\">\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0438 \u0441\u0431\u043e\u0440\u043a\u0430 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u0430<\/h3>\n<p>  <\/p>\n<p>\u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0432 \u0434\u043e\u043c\u0430\u0448\u043d\u0435\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u043a\u0430\u0442\u0430\u043b\u043e\u0433, \u0433\u0434\u0435 \u0443 \u043d\u0430\u0441 \u0431\u0443\u0434\u0435\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 <code>Poky<\/code> \u0438 \u043c\u0435\u0442\u0430-\u0441\u043b\u043e\u0438 \u0441 \u0440\u0435\u0446\u0435\u043f\u0442\u0430\u043c\u0438. \u041d\u0430\u0437\u043e\u0432\u0435\u043c \u0435\u0433\u043e <code>habr-yocto-lte<\/code>:<\/p>\n<p>  <\/p>\n<pre><code class=\"bash\">~$ mkdir habr-yocto-lte<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e <code>habr-yocto-lte<\/code> \u0438 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043f\u0443\u0441\u0442\u043e\u0439 <code>git<\/code> \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439:<\/p>\n<p>  <\/p>\n<pre><code class=\"bash\">~$ cd habr-yocto-lte ~\/habr-yocto-lte$ git init<\/code><\/pre>\n<p>  <\/p>\n<p>\u0414\u043e\u0431\u0430\u0432\u0438\u043c \u0432 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 <code>git<\/code>-\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439, \u0432 \u0432\u0438\u0434\u0435 \u043f\u043e\u0434\u043c\u043e\u0434\u0443\u043b\u0435\u0439, \u043f\u0440\u043e\u0435\u043a\u0442 <code>Poky<\/code> \u0438 \u0441\u043b\u043e\u0439 <code>meta-ti<\/code>:<\/p>\n<p>  <\/p>\n<pre><code class=\"bash\">~\/habr-yocto-lte$ git submodule add -b thud git:\/\/git.yoctoproject.org\/poky.git ~\/habr-yocto-lte$ git submodule add -b thud git:\/\/git.yoctoproject.org\/meta-ti<\/code><\/pre>\n<p>  <\/p>\n<p><code>Poky<\/code> \u044d\u0442\u043e \u043a\u0430\u043a \u0440\u0430\u0437 \u0442\u043e\u0442 \u0441\u0430\u043c\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u043d\u0430\u0448 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432, \u0430 <code>meta-ti<\/code> \u2013 \u044d\u0442\u043e \u0441\u043b\u043e\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0435\u0442 \u0432 \u0441\u0435\u0431\u0435 \u043d\u0430\u0431\u043e\u0440\u044b \u0440\u0435\u0446\u0435\u043f\u0442\u043e\u0432, \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u0434\u043b\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043e\u0432 Texas Instruments. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 <code>Poky<\/code> \u0438 \u043c\u0435\u0442\u0430-\u0441\u043b\u043e\u0438 \u043c\u043e\u0436\u043d\u043e \u0443\u0437\u043d\u0430\u0442\u044c \u0438\u0437 <a href=\"https:\/\/www.yoctoproject.org\/docs\/2.5\/overview-manual\/overview-manual.html\" rel=\"nofollow\">Yocto Project Overview and Concepts Manual<\/a>.<\/p>\n<p>  <\/p>\n<p>\u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0444\u0430\u0439\u043b <code>oe-init-build-env<\/code> \u0438 \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u043c:<\/p>\n<p>  <\/p>\n<pre><code class=\"bash\">~\/habr-yocto-lte$ touch oe-init-build-env ~\/habr-yocto-lte$ chmod +x oe-init-build-env<\/code><\/pre>\n<p>  <\/p>\n<p>\u0414\u043e\u0431\u0430\u0432\u0438\u043c \u0432 \u043d\u0435\u0433\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043a\u043e\u0434:<\/p>\n<p>  <\/p>\n<pre><code class=\"bash\">#!\/bin\/sh source $(pwd)\/poky\/oe-init-build-env build<\/code><\/pre>\n<p>  <\/p>\n<p>\u0424\u0430\u0439\u043b <code>oe-init-build-env<\/code> \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0432\u0441\u044f\u043a\u0438\u0439 \u0440\u0430\u0437, \u043f\u0440\u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u0438 \u043d\u043e\u0432\u043e\u0433\u043e \u043e\u043a\u043d\u0430 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0430. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043c \u0435\u0433\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439:<\/p>\n<p>  <\/p>\n<pre><code class=\"bash\">~\/habr-yocto-lte$ source .\/oe-init-build-env<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u0440\u0438 \u043f\u0435\u0440\u0432\u043e\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u0432 \u043f\u0430\u043f\u043a\u0435 <code>~\/habr-yocto-lte<\/code> \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u0430 \u043f\u0430\u043f\u043a\u0430 <code>build<\/code>, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0430\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0441\u0431\u043e\u0440\u043a\u0438 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u0430, \u0430 \u0432 \u043e\u043a\u043d\u0435 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0430 \u043c\u044b \u0443\u0432\u0438\u0434\u0438\u043c \u043d\u0435\u0447\u0442\u043e \u0432\u0440\u043e\u0434\u0435 \u044d\u0442\u043e\u0433\u043e:<\/p>\n<p>  <\/p>\n<pre><code class=\"bash\">### Shell environment set up for builds. ###  You can now run 'bitbake &lt;target&gt;'  Common targets are:     core-image-minimal     core-image-sato     meta-toolchain     meta-ide-support  You can also run generated qemu images with a command like 'runqemu qemux86'<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435, \u0442\u0435\u043f\u0435\u0440\u044c \u0443 \u043d\u0430\u0441 \u0432\u0441\u0435 \u0433\u043e\u0442\u043e\u0432\u043e \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u0430, \u043d\u043e \u043c\u044b \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u0435\u0449\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u00ab\u0448\u0442\u0440\u0438\u0445\u043e\u0432\u00bb:<\/p>\n<p>  <\/p>\n<ul>\n<li>\u0414\u043e\u0431\u0430\u0432\u0438\u043c \u0441\u043b\u043e\u0439 <code>meta-ti<\/code> \u0438 \u0443\u0434\u0430\u043b\u0438\u043c \u0441\u043b\u043e\u0439 <code>meta-poky-bsp<\/code>. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0437\u0430\u043f\u0438\u0448\u0435\u043c \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e <code>BBLAYERS<\/code>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0444\u0430\u0439\u043b\u0435 <code>~\/habr-yocto-lte\/build\/conf\/bblayers.conf<\/code>, \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435:<\/li>\n<\/ul>\n<p>  <\/p>\n<pre><code class=\"python\">BBLAYERS ?= &quot; \\         \/home\/alex\/habr\/poky\/meta \\         \/home\/alex\/habr\/poky\/meta-poky \\         \/home\/alex\/habr\/meta-ti \\         &quot;<\/code><\/pre>\n<p>  <\/p>\n<ul>\n<li>\u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0430\u0448 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432 \u0432\u044b\u0431\u0435\u0440\u0435\u043c <code>beaglebone<\/code>. \u0420\u0430\u0437\u0440\u0435\u0448\u0438\u043c \u0437\u0430\u043f\u0438\u0441\u044c \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u0441\u0431\u043e\u0440\u043a\u0438, \u044d\u0442\u043e \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u043d\u0430\u043c \u043f\u043e\u043d\u044f\u0442\u044c \u043a\u0430\u043a\u0438\u0435 \u043f\u0430\u043a\u0435\u0442\u044b \u0431\u044b\u043b\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u044b \u0432 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432, \u0443\u0437\u043d\u0430\u0442\u044c \u0438\u0445 \u0440\u0430\u0437\u043c\u0435\u0440 \u0438 \u0434\u0440. \u0424\u043e\u0440\u043c\u0430\u0442 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u0441\u0434\u0435\u043b\u0430\u0435\u043c <code>ipk<\/code> \u0438 \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u043c \u043c\u043e\u0434\u0443\u043b\u0438 \u044f\u0434\u0440\u0430. \u0412\u043c\u0435\u0441\u0442\u043e <code>sysvinit<\/code> \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <code>systemd<\/code>. \u041e\u0431\u043d\u043e\u0432\u0438\u043c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u0430, \u0434\u043e\u0431\u0430\u0432\u0438\u0432 \u0432 \u043a\u043e\u043d\u0435\u0446 \u0444\u0430\u0439\u043b\u0430 <code>~\/habr-yocto-lte\/build\/conf\/local.conf<\/code> \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0441\u0442\u0440\u043e\u043a\u0438:<\/li>\n<\/ul>\n<p>  <\/p>\n<pre><code class=\"python\">MACHINE = &quot;beaglebone&quot; INHERIT += &quot;buildhistory&quot; BUILDHISTORY_COMMIT = &quot;1&quot; PACKAGE_CLASSES = &quot;package_ipk&quot; CORE_IMAGE_EXTRA_INSTALL += &quot; kernel-modules&quot; DISTRO_FEATURES_append = &quot; systemd&quot; DISTRO_FEATURES_BACKFILL_CONSIDERED += &quot;sysvinit&quot; VIRTUAL-RUNTIME_init_manager = &quot;systemd&quot; VIRTUAL-RUNTIME_initscripts = &quot;systemd-compat-units&quot;<\/code><\/pre>\n<p>  <\/p>\n<p>\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u043c \u0441\u0431\u043e\u0440\u043a\u0443 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u0430:<\/p>\n<p>  <\/p>\n<pre><code class=\"bash\">~\/habr-yocto-lte\/build$ bitbake \u2013k core-image-base<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u043e\u043a\u0430 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432 \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0439\u0442\u0438 \u0432\u0437\u0434\u0440\u0435\u043c\u043d\u0443\u0442\u044c, \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u043d\u0430 \u044d\u0442\u043e \u0447\u0430\u0441\u0430 4 :). \u041f\u043e\u0442\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u0432\u0441\u0451 \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0431\u044b\u0441\u0442\u0440\u0435\u0435.<\/p>\n<p>  <\/p>\n<p>\u0414\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 <code>~\/habr-yocto-lte\/build\/tmp\/deploy\/images\/beaglebone<\/code><\/p>\n<p>  <\/p>\n<h3 id=\"dobavlenie-podderzhki-protokola-ppp-v-yadro-os\">\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 PPP \u0432 \u044f\u0434\u0440\u043e \u041e\u0421<\/h3>\n<p>  <\/p>\n<p>\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432, \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435, \u0443\u0436\u0435 \u0441\u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0442\u044c LTE-\u043c\u043e\u0434\u0443\u043b\u044c Quectel EC21-E, \u0442.\u043a. \u0435\u0433\u043e \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 \u0435\u0441\u0442\u044c \u0432 \u044f\u0434\u0440\u0435 Linux. \u041e\u0434\u043d\u0430\u043a\u043e \u0434\u043b\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043a \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0443 \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 PPP \u0432 \u044f\u0434\u0440\u043e Linux, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 \u043d\u0430\u0448 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432 \u043f\u0430\u043a\u0435\u0442 <code>ppp<\/code> \u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0434\u043b\u044f \u043d\u0435\u0433\u043e \u0444\u0430\u0439\u043b \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u0440\u0435\u0446\u0435\u043f\u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u00ab\u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0435\u0442\u00bb <code>bitbake<\/code> \u043a\u0430\u043a \u0438 \u043a\u0443\u0434\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0432 \u043d\u0430\u0448\u0435\u043c \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0434\u043b\u044f <code>pppd<\/code> \u0438 <code>chat<\/code>, \u044f\u0432\u043b\u044f\u044e\u0449\u0438\u0435\u0441\u044f \u0447\u0430\u0441\u0442\u044c\u044e \u043f\u0430\u043a\u0435\u0442\u0430 <code>ppp<\/code>.<\/p>\n<p>  <\/p>\n<p>\u0414\u043b\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u044f\u0434\u0440\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u0443:<\/p>\n<p>  <\/p>\n<pre><code class=\"bash\">~\/habr-yocto-lte\/build$ bitbake virtual\/kernel -c menuconfig<\/code><\/pre>\n<p>  <\/p>\n<p>\u041e\u0442\u043a\u0440\u043e\u0435\u0442\u0441\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u043e\u043a\u043d\u043e <code>menuconfig<\/code> \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043d\u0430\u0434\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c:<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">Device drivers ---&gt;     [*] Network device support ---&gt;         &lt;M&gt; PPP (point-to-point protocol) support             &lt;M&gt; PPP BSD-Compress compression             &lt;M&gt; PPP Deflate compression             &lt;*&gt; PPP filtering             &lt;M&gt; PPP MPPE compression (encryption)             &lt;*&gt; PPP multilink support             &lt;M&gt; PPP over Ethernet             &lt;M&gt; PPP support for async serial ports             &lt;M&gt; PPP support for sync tty ports <\/code><\/pre>\n<p>  <\/p>\n<p>\u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e \u0438 \u0432\u044b\u0445\u043e\u0434\u0438\u043c \u0438\u0437 <code>menuconfig<\/code>. \u0423\u0447\u0442\u0438\u0442\u0435, \u0447\u0442\u043e \u044d\u0442\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u0442\u043e\u043c \u041f\u041a, \u043d\u0430 \u043a\u0430\u043a\u043e\u043c \u043e\u043d\u0430 \u0431\u044b\u043b\u0430 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0430. \u0414\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e \u0431\u044b \u043e\u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u043b\u0430\u0441\u044c \u043d\u0430 \u043b\u044e\u0431\u043e\u043c \u041f\u041a \u043f\u0440\u0438 \u043a\u043b\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0438\u0437 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e \u0432 \u0444\u0430\u0439\u043b\u0435 <code>defconfig<\/code> \u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0440\u0435\u0446\u0435\u043f\u0442 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u0434\u043b\u044f <code>recipes-kernel<\/code>.<\/p>\n<p>  <\/p>\n<p>\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u043c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e \u044f\u0434\u0440\u0430 \u0432 \u0444\u0430\u0439\u043b\u0435 <code>defconfig<\/code>:<\/p>\n<p>  <\/p>\n<pre><code class=\"bash\">~\/habr-yocto-lte\/build$ bitbake virtual\/kernel -c savedefconfig<\/code><\/pre>\n<p>  <\/p>\n<p>\u0424\u0430\u0439\u043b <code>defconfig<\/code> \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 <code>~\/habr-yocto-lte\/build\/tmp\/work\/beaglebone-poky-linux-gnueabi\/linux-ti-staging\/4.19.94+gitAUTOINC+5a23bc00e0-r22a\/build<\/code><\/p>\n<p>  <\/p>\n<p>\u0412\u0441\u0435 \u0440\u0435\u0446\u0435\u043f\u0442\u044b \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u0438 \u0440\u0435\u0446\u0435\u043f\u0442\u044b, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0435 \u043d\u0430\u043c\u0438, \u0431\u0443\u0434\u0435\u043c \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u043c \u043c\u0435\u0442\u0430-\u0441\u043b\u043e\u0435. \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0438 \u043d\u0430\u0437\u043e\u0432\u0435\u043c \u0435\u0433\u043e <code>meta-habr<\/code>:<\/p>\n<p>  <\/p>\n<pre><code class=\"bash\">~\/habr-yocto-lte\/build$ bitbake-layers create-layer ~\/habr-yocto-lte\/meta-habr<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 <code>~\/habr-yocto-lte<\/code> \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f <code>meta-habr<\/code> \u2013 \u044d\u0442\u043e \u0438 \u0435\u0441\u0442\u044c \u043d\u0430\u0448 \u043c\u0435\u0442\u0430-\u0441\u043b\u043e\u0439. \u0412 \u044d\u0442\u043e\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u043c\u0435\u0440 \u0440\u0435\u0446\u0435\u043f\u0442\u0430 <code>recipes-example<\/code>, \u043e\u043d \u043d\u0430\u043c \u043d\u0435 \u043d\u0443\u0436\u0435\u043d, \u0443\u0434\u0430\u043b\u0438\u043c \u0435\u0433\u043e, \u0430 \u0437\u0430\u0442\u0435\u043c \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043d\u0430\u0448 \u043c\u0435\u0442\u0430-\u0441\u043b\u043e\u0439 \u0432 \u0444\u0430\u0439\u043b <code>bblayers.conf<\/code>:<\/p>\n<p>  <\/p>\n<pre><code class=\"bash\">~\/habr-yocto-lte\/build$ rm -r ~\/ habr-yocto-lte\/meta-habr\/recipes-example\/ ~\/habr-yocto-lte\/build$ bitbake-layers add-layer ~\/habr-yocto-lte\/meta-habr<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u0440\u0438\u0448\u043b\u043e \u0432\u0440\u0435\u043c\u044f \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0440\u0435\u0446\u0435\u043f\u0442 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u044f\u0434\u0440\u0430 Linux. \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0438 \u0438 \u0444\u0430\u0439\u043b\u044b:<\/p>\n<p>  <\/p>\n<pre><code class=\"bash\">~\/habr-yocto-lte$  mkdir \u2013 p meta-habr\/recipes-kernel\/linux\/linux-ti-staging\/beaglebone ~\/habr-yocto-lte$  touch meta-habr\/recipes-kernel\/linux\/linux-ti-staging_%.bbappend<\/code><\/pre>\n<p>  <\/p>\n<p>\u041a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u0440\u0430\u043d\u0435\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b <code>defconfig<\/code> \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 <code>~\/habr-yocto-lte\/meta-habr\/recipes-kernel\/linux\/linux-ti-staging\/beaglebone<\/code><\/p>\n<p>  <\/p>\n<pre><code class=\"bash\">~\/habr-yocto-lte$ cp ~\/habr-yocto-lte\/build\/tmp\/work\/beaglebone-poky-linux-gnueabi\/linux-ti-staging\/4.19.94+gitAUTOINC+5a23bc00e0-r22a\/build\/defconfig  meta-habr\/recipes-kernel\/linux\/linux-ti-staging\/beaglebone<\/code><\/pre>\n<p>  <\/p>\n<p>\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0432 \u0444\u0430\u0439\u043b <code>linux-ti-staging_%.bbappend<\/code> \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043a\u043e\u0434:<\/p>\n<p>  <\/p>\n<pre><code class=\"python\">FILESEXTRAPATHS_prepend := &quot;${THISDIR}\/${PN}:&quot; SRC_URI += &quot;file:\/\/defconfig&quot;<\/code><\/pre>\n<p>  <\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u044f\u0434\u0440\u0430, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u0430\u044f \u0432 \u0444\u0430\u0439\u043b\u0435 <code>defconfig<\/code> \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u0440\u0438 \u0441\u0431\u043e\u0440\u043a\u0435 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u0430. \u0421\u043e\u0431\u0435\u0440\u0451\u043c \u0435\u0433\u043e \u0438 \u0443\u0431\u0435\u0434\u0438\u043c\u0441\u044f, \u0447\u0442\u043e \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u044b\u0435 \u043c\u043e\u0434\u0443\u043b\u0438 PPP \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u044b:<\/p>\n<p>  <\/p>\n<pre><code class=\"bash\">~\/habr-yocto-lte\/build$ bitbake \u2013k core-image-base ~\/habr-yocto-lte\/build$ cat buildhistory\/images\/beaglebone\/glibc\/core-image-base\/installed-packages.txt | grep &quot;ppp&quot; -------------------------------------------------------- kernel-module-ppp-async-4.19.94-g5a23bc00e0_4.19.94+git0+5a23bc00e0-r22a_beaglebone.ipk kernel-module-ppp-deflate-4.19.94-g5a23bc00e0_4.19.94+git0+5a23bc00e0-r22a_beaglebone.ipk kernel-module-ppp-generic-4.19.94-g5a23bc00e0_4.19.94+git0+5a23bc00e0-r22a_beaglebone.ipk kernel-module-ppp-mppe-4.19.94-g5a23bc00e0_4.19.94+git0+5a23bc00e0-r22a_beaglebone.ipk kernel-module-pppoe-4.19.94-g5a23bc00e0_4.19.94+git0+5a23bc00e0-r22a_beaglebone.ipk kernel-module-pppox-4.19.94-g5a23bc00e0_4.19.94+git0+5a23bc00e0-r22a_beaglebone.ipk kernel-module-ppp-synctty-4.19.94-g5a23bc00e0_4.19.94+git0+5a23bc00e0-r22a_beaglebone.ipk<\/code><\/pre>\n<p>  <\/p>\n<h3 id=\"dobavlenie-v-distributiv-paketa-ppp\">\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0432 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432 \u043f\u0430\u043a\u0435\u0442\u0430 ppp<\/h3>\n<p>  <\/p>\n<p>\u041f\u0430\u043a\u0435\u0442\u044b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0432 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 <code>IMAGE_INSTALL_append<\/code>. \u0414\u043e\u0431\u0430\u0432\u0438\u043c \u0435\u0451 \u0432 \u043a\u043e\u043d\u0435\u0446 \u0444\u0430\u0439\u043b\u0430 <code>local.conf<\/code> \u0438 \u043f\u0440\u0438\u0441\u0432\u043e\u0438\u043c \u0435\u0439 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0435 \u0438\u043c\u0435\u043d\u0438 \u043f\u0430\u043a\u0435\u0442\u0430:<\/p>\n<p>  <\/p>\n<pre><code class=\"python\">IMAGE_INSTALL_append = &quot; ppp&quot;<\/code><\/pre>\n<p>  <\/p>\n<p>\u0421\u043e\u0431\u0435\u0440\u0451\u043c \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432 \u0438 \u0443\u0431\u0435\u0434\u0438\u043c\u0441\u044f, \u0447\u0442\u043e \u043f\u0430\u043a\u0435\u0442 <code>ppp<\/code> \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d:<\/p>\n<p>  <\/p>\n<pre><code class=\"bash\">~\/habr-yocto-lte\/build$ bitbake \u2013k core-image-base ~\/habr-yocto-lte\/build$ cat buildhistory\/images\/beaglebone\/glibc\/core-image-base\/installed-packages.txt | grep &quot;ppp_&quot; -------------------------------------------------------- ppp_2.4.7-r0_beaglebone.ipk<\/code><\/pre>\n<p>  <\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0432 \u043d\u0430\u0448\u0435\u043c \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u0435 \u0435\u0441\u0442\u044c \u0432\u0441\u0435 \u0434\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043a \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0443 \u0447\u0435\u0440\u0435\u0437 LTE-\u043c\u043e\u0434\u0435\u043c. \u041e\u0434\u043d\u0430\u043a\u043e \u043c\u043d\u0435 \u043b\u0438\u0447\u043d\u043e \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c <code>pppd<\/code> \u0438 <code>chat<\/code>, \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u0432 \u043f\u0430\u043a\u0435\u0442 <code>ppp<\/code>, \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u0434\u043b\u044f \u044d\u0442\u0438\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c \u0432 \u043d\u0430\u0448 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u0440\u0435\u0446\u0435\u043f\u0442\u0430 <code>ppp<\/code>.<\/p>\n<p>  <\/p>\n<h3 id=\"skripty-dlya-pppd-i-chat\">\u0421\u043a\u0440\u0438\u043f\u0442\u044b \u0434\u043b\u044f pppd \u0438 chat<\/h3>\n<p>  <\/p>\n<p>\u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0442\u0440\u0438 \u0444\u0430\u0439\u043b\u0430 \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432 <code>habrppp<\/code>, <code>habr-chat-connect<\/code> \u0438 <code>habr-chat-disconnect<\/code> \u0441\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u044b\u043c:<\/p>\n<p>  <\/p>\n<ul>\n<li><em>habrppp<\/em><br \/> \n<pre><code class=\"plaintext\">\/dev\/ttyUSB3 921600 user &quot;beeline&quot; password &quot;beeline&quot; connect 'chat -s -v -f \/etc\/ppp\/peers\/habr-chat-connect' disconnect 'chat -s -v -f \/etc\/ppp\/peers\/habr-chat-disconnect' hide-password noauth debug defaultroute noipdefault persist<\/code><\/pre>\n<\/li>\n<li><em>habr-chat-connect<\/em><br \/> \n<pre><code class=\"plaintext\">ABORT &quot;BUSY&quot; ABORT &quot;NO CARRIER&quot; ABORT &quot;NO DIALTONE&quot; ABORT &quot;ERROR&quot; ABORT &quot;NO ANSWER&quot; TIMEOUT 30 &quot;&quot; AT OK ATE0 OK ATI;+CSUB;+CSQ;+CPIN?;+COPS?;+CGREG?;&amp;D2 OK AT+CGDCONT=1,&quot;IP&quot;,&quot;static.beeline.ru&quot;,,0,0 OK ATD*99# CONNECT &quot;&quot;<\/code><\/pre>\n<\/li>\n<li><em>habr-chat-disconnect<\/em><br \/> \n<pre><code class=\"plaintext\">ABORT &quot;ERROR&quot; ABORT &quot;NO DIALTONE&quot; &quot;&quot; +++ &quot;&quot; +++ &quot;&quot; +++<\/code><\/pre>\n<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0435\u0432 \u043f\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u043c \u0432\u044b\u0448\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u0430\u043c.<br \/>  LTE-\u043c\u043e\u0434\u0443\u043b\u044c Quectel EC21-E \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u0441\u044f \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0432 \u0432\u0438\u0434\u0435 \u0447\u0435\u0442\u044b\u0440\u0451\u0445 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u043e\u0440\u0442\u043e\u0432:<\/p>\n<p>  <\/p>\n<ul>\n<li><code>ttyUSB0<\/code> \u2013 \u043f\u043e\u0440\u0442 \u043e\u0442\u043b\u0430\u0434\u043a\u0438<\/li>\n<li><code>ttyUSB1<\/code> \u2013 \u043f\u043e\u0440\u0442 \u0434\u043b\u044f \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 GPS NMEA<\/li>\n<li><code>ttyUSB2<\/code> \u2013 \u043f\u043e\u0440\u0442 \u0434\u043b\u044f AT-\u043a\u043e\u043c\u0430\u043d\u0434<\/li>\n<li><code>ttyUSB3<\/code> \u2013 \u043f\u043e\u0440\u0442 \u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f PPP<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u0415\u0441\u043b\u0438 \u0432 \u0432\u0430\u0448\u0435\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0435\u0441\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u0435 USB-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430, \u0442\u043e \u043d\u0443\u043c\u0435\u0440\u0430\u0446\u0438\u044f \u043f\u043e\u0440\u0442\u043e\u0432, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u043b\u0438\u0447\u0430\u0442\u044c\u0441\u044f \u043e\u0442 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043d\u043e\u0439 \u0432\u044b\u0448\u0435, \u043d\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043e\u0441\u0442\u0430\u043d\u0435\u0442\u0441\u044f \u0442\u0430 \u0436\u0435. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0432 \u043d\u0430\u0448\u0435\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043d\u0443\u043c\u0435\u0440\u0430\u0446\u0438\u044f \u043f\u043e\u0440\u0442\u043e\u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0432\u044b\u0448\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043d\u043e\u0439, \u0442\u043e \u0432 \u0441\u043a\u0440\u0438\u043f\u0442\u0435 <code>habrppp<\/code> \u043c\u044b \u0443\u043a\u0430\u0437\u0430\u043b\u0438 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u043e\u0440\u0442\u0430 \u0434\u043b\u044f \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u043f\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0443 PPP \u043f\u043e\u0440\u0442 <code>\/dev\/ttyUSB3<\/code>. <\/p>\n<p>  <\/p>\n<p>\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u043f\u043e\u043b\u044f <code>user<\/code> \u0438 <code>password<\/code> \u0432 \u0441\u043a\u0440\u0438\u043f\u0442\u0435 <code>habrppp<\/code>, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043d\u0430 <code>APN<\/code> \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u0435 <code>AT+CGDCONT<\/code> \u0432 \u0441\u043a\u0440\u0438\u043f\u0442\u0435 <code>habr-chat-connect<\/code>, \u043e\u043d\u0438 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u044b \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u044f\u043c \u0441\u043e\u0442\u043e\u0432\u043e\u0433\u043e \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430.<\/p>\n<p>  <\/p>\n<h3 id=\"recept-rasshireniya-dlya-paketa-ppp\">\u0420\u0435\u0446\u0435\u043f\u0442 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043f\u0430\u043a\u0435\u0442\u0430 ppp<\/h3>\n<p>  <\/p>\n<p>\u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0441\u043e\u0432\u0441\u0435\u043c \u0447\u0443\u0442\u044c-\u0447\u0443\u0442\u044c. \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0438 \u0438 \u0444\u0430\u0439\u043b \u0434\u043b\u044f \u0440\u0435\u0446\u0435\u043f\u0442\u0430 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f <code>ppp<\/code>:<\/p>\n<p>  <\/p>\n<pre><code class=\"bash\">~\/habr-yocto-lte$ mkdir \u2013p meta-habr\/recipes-connectivity\/ppp\/ppp\/beaglebone ~\/habr-yocto-lte$ touch meta-habr\/recipes-connectivity\/ppp\/ppp_%.bbappend<\/code><\/pre>\n<p>  <\/p>\n<p>\u0421\u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u0441\u043a\u0440\u0438\u043f\u0442\u044b, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0435 \u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u0432 \u043f\u0430\u043f\u043a\u0443 <code>~\/habr-yocto-lte\/meta-habr\/recipes-connectivity\/ppp\/ppp\/beaglebone<\/code> \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0432 \u0444\u0430\u0439\u043b <code>ppp_%.bbappend<\/code>:<\/p>\n<p>  <\/p>\n<pre><code class=\"python\">FILESEXTRAPATHS_prepend := &quot;${THISDIR}\/${PN}:&quot;   SRC_URI += &quot;file:\/\/habrppp \\                          file:\/\/habr-chat-connect \\                          file:\/\/habr-chat-disconnect \\                          file:\/\/20-habr-modem.rules \\                          &quot;   do_install_append () {           install -m 0755 ${WORKDIR}\/habrppp ${D}${sysconfdir}\/ppp\/peers\/habrppp           install -m 0755 ${WORKDIR}\/habr-chat-connect ${D}${sysconfdir}\/ppp\/peers\/habr-chat-connect           install -m 0755 ${WORKDIR}\/habr-chat-disconnect ${D}${sysconfdir}\/ppp\/peers\/habr-chat-disconnect             mkdir -p ${D}${sysconfdir}\/udev\/rules.d              install -m 0755 ${WORKDIR}\/20-habr-modem.rules ${D}${sysconfdir}\/udev\/rules.d\/20-habr-modem.rules  } <\/code><\/pre>\n<p>  <\/p>\n<p>\u0412\u044b, \u043d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, \u0437\u0430\u043c\u0435\u0442\u0438\u043b\u0438, \u0447\u0442\u043e \u043a \u0442\u0435\u043c \u0442\u0440\u0435\u043c \u0444\u0430\u0439\u043b\u0430\u043c \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0441\u044f \u0444\u0430\u0439\u043b <code>20-habr-modem.rules<\/code>. \u042d\u0442\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0434\u043b\u044f <code>udev<\/code>, \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u043f\u0440\u0438 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u0438 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043f\u043e\u0440\u0442\u0430 <code>ttyUSB3<\/code> \u0431\u0443\u0434\u0435\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u0430 \u0441\u043b\u0443\u0436\u0431\u0430 <code>pppd<\/code> \u0441 \u043d\u0443\u0436\u043d\u044b\u043c\u0438 \u043d\u0430\u043c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043d\u0430\u0448\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0431\u0443\u0434\u0435\u0442 \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c\u0441\u044f \u043a \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0443 \u043f\u0440\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u043c\u043e\u0434\u0435\u043c\u0430 \u043a USB-\u043f\u043e\u0440\u0442\u0443. \u0421\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0444\u0430\u0439\u043b\u0430 <code>20-habr-modem.rules<\/code>:<\/p>\n<p>  <\/p>\n<pre><code class=\"bash\">SUBSYSTEM==&quot;tty&quot;, KERNEL==&quot;ttyUSB3&quot;, TAG+=&quot;systemd&quot;, ENV{SYSTEMD_WANTS}=&quot;ppp@habrppp.service&quot;<\/code><\/pre>\n<p>  <\/p>\n<h3 id=\"zaklyuchenie-i-ssylka-na-proekt\">\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0438 \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043f\u0440\u043e\u0435\u043a\u0442<\/h3>\n<p>  <\/p>\n<p>\u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u043d\u0430\u0448 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b <a href=\"https:\/\/www.balena.io\/etcher\/\" rel=\"nofollow\">balenaEtcher<\/a> \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0435\u0433\u043e \u043e\u0431\u0440\u0430\u0437 \u043d\u0430 microSD \u043a\u0430\u0440\u0442\u0443 \u043f\u0430\u043c\u044f\u0442\u0438 \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435. \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u0448\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043e \u043a \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0443:<\/p>\n<p>  <\/p>\n<pre><code class=\"bash\">~$ ifconfig lo        Link encap:Local Loopback           inet addr:127.0.0.1  Mask:255.0.0.0           inet6 addr: ::1\/128 Scope:Host           UP LOOPBACK RUNNING  MTU:65536  Metric:1           RX packets:0 errors:0 dropped:0 overruns:0 frame:0           TX packets:0 errors:0 dropped:0 overruns:0 carrier:0           collisions:0 txqueuelen:1000           RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)  ppp0      Link encap:Point-to-Point Protocol           inet addr:XXX.XXX.XXX.XXX  P-t-P:XXX.XXX.XXX.XXX  Mask:255.255.255.255           UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1           RX packets:13 errors:0 dropped:0 overruns:0 frame:0           TX packets:17 errors:0 dropped:0 overruns:0 carrier:0           collisions:0 txqueuelen:3           RX bytes:432 (432.0 B)  TX bytes:611 (611.0 B)<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u043a \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0443 \u0447\u0435\u0440\u0435\u0437 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b PPP \u043c\u043e\u0436\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0432\u0440\u0443\u0447\u043d\u0443\u044e, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u043c\u0430\u043d\u0434 <code>pon<\/code> \u0438 <code>poff<\/code>. \u0414\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u0443:<\/p>\n<p>  <\/p>\n<pre><code class=\"bash\">~$ pon habrppp<\/code><\/pre>\n<p>  <\/p>\n<p>\u0414\u043b\u044f \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f:<\/p>\n<p>  <\/p>\n<pre><code class=\"bash\">~$ poff habrppp<\/code><\/pre>\n<p>  <\/p>\n<hr>\n<p>  <\/p>\n<p>\u041f\u0440\u043e\u0435\u043a\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <a href=\"https:\/\/gitlab.com\/amamaev\/habr-yocto-lte\" rel=\"nofollow\">https:\/\/gitlab.com\/amamaev\/habr-yocto-lte<\/a>. \u0414\u043b\u044f \u043a\u043b\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u0443:<\/p>\n<p>  <\/p>\n<pre><code class=\"bash\">~$ git clone --recursive https:\/\/gitlab.com\/amamaev\/habr-yocto-lte.git<\/code><\/pre>\n<p>  <\/p>\n<blockquote><p>\u041d\u0435 \u0437\u0430\u0431\u0443\u0434\u044c\u0442\u0435 \u0441\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0443\u0442\u0438 \u043a \u0441\u043b\u043e\u044f\u043c \u0432 \u0444\u0430\u0439\u043b\u0435 bblayers.conf<\/p><\/blockquote>\n<\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/494838\/\"> https:\/\/habr.com\/ru\/post\/494838\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/post\/494838\/\">\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/_6\/es\/my\/_6esmy-jluwxo_vjdmz3i6aeh0g.jpeg\" alt=\"image\"><\/p>\n<p>  <\/p>\n<p>\u041c\u043d\u043e\u0433\u0438\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c \u043d\u0430 \u0431\u0430\u0437\u0435 \u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442. \u041f\u0440\u043e\u0432\u043e\u0434\u043d\u043e\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0443 \u0434\u043b\u044f \u043d\u0438\u0445 \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0438 \u0435\u0441\u043b\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u0437\u043e\u043d\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0441\u043e\u0442\u043e\u0432\u043e\u0439 \u0441\u0432\u044f\u0437\u0438, \u0442\u043e \u043a \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0443 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e GSM\/3G\/4G-\u043c\u043e\u0434\u0435\u043c\u043e\u0432. <\/p>\n<p>  <\/p>\n<p>\u0412 \u044d\u0442\u043e\u0439 \u0437\u0430\u043c\u0435\u0442\u043a\u0435 \u043e\u043f\u0438\u0441\u0430\u043d \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u0430 \u041e\u0421 Linux \u0434\u043b\u044f \u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f Yocto Project, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043a \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0443 \u0447\u0435\u0440\u0435\u0437 GSM\/3G\/4G-\u043c\u043e\u0434\u0435\u043c \u0438 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b PPP.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-301011","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/301011","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=301011"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/301011\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=301011"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=301011"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=301011"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}