<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>СЮМ</title><link href="https://yura.stryi.com/" rel="alternate"/><link href="https://yura.stryi.com/feeds/all.atom.xml" rel="self"/><id>https://yura.stryi.com/</id><updated>2025-08-08T00:00:00+03:00</updated><entry><title>Підступний умовний оператор в Groovy</title><link href="https://yura.stryi.com/2025-08-08/groovy-ternary-operator/" rel="alternate"/><published>2025-08-08T00:00:00+03:00</published><updated>2025-08-08T00:00:00+03:00</updated><author><name>Юрій Сметана</name></author><id>tag:yura.stryi.com,2025-08-08:/2025-08-08/groovy-ternary-operator/</id><summary type="html">&lt;p&gt;&lt;img alt="Groovy ternaly operator logic" class="img-thumbnail" src="/images/2025-08-08/working-of-conditional-operator.webp" style="max-width: 50%; height: auto;"&gt;&lt;/p&gt;
&lt;p&gt;Потрійний умовний оператор (ternary operator) в Groovy може поводитися "дивно", якщо не звертати увагу на його особливості. Він має форму:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;condition&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;?&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;trueValue&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;falseValue&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Наприклад:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kt"&gt;def&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;
&lt;span class="kt"&gt;def&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;
&lt;span class="kt"&gt;def&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;max&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;?&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;
&lt;span class="n"&gt;println&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Максимальне значення: $max&amp;quot;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Дуже зручно використовувати для типових значень, якщо вхідні дані не …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;img alt="Groovy ternaly operator logic" class="img-thumbnail" src="/images/2025-08-08/working-of-conditional-operator.webp" style="max-width: 50%; height: auto;"&gt;&lt;/p&gt;
&lt;p&gt;Потрійний умовний оператор (ternary operator) в Groovy може поводитися "дивно", якщо не звертати увагу на його особливості. Він має форму:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;condition&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;?&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;trueValue&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;falseValue&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Наприклад:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kt"&gt;def&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;
&lt;span class="kt"&gt;def&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;
&lt;span class="kt"&gt;def&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;max&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;?&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;
&lt;span class="n"&gt;println&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Максимальне значення: $max&amp;quot;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Дуже зручно використовувати для типових значень, якщо вхідні дані не задано:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kt"&gt;def&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;input_a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;

&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;input_a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;?:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;// Якщо a не задано, то буде 5&lt;/span&gt;
&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;input_b&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;?:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;// Якщо b не задано, то буде 10&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Але, через те що оператор використовує для порівняння булеві значення його поведінка може бути неочікуваною ящо вхідні дані вже є булевими. Наприклад:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kt"&gt;def&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;input_a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;
&lt;span class="kt"&gt;def&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;input_a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;?:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;

&lt;span class="kt"&gt;def&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;input_b&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;
&lt;span class="kt"&gt;def&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;input_b&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;?:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;

&lt;span class="c1"&gt;// a = true&lt;/span&gt;
&lt;span class="c1"&gt;// b = true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;☝️ &lt;code&gt;input_a&lt;/code&gt; існує, але його значення &lt;code&gt;false&lt;/code&gt; не задовольняє умову, тому &lt;code&gt;a&lt;/code&gt; отримає значення &lt;code&gt;true&lt;/code&gt;. Хоча, якщо змінна існувала, то його значення може бути використано і нема сенсу його перевизначати.&lt;/p&gt;
&lt;p&gt;Отже, при використанні булевих вхідних даних їх треба явно перевіряти, наприклад на &lt;code&gt;null&lt;/code&gt;, чи іншими явними способами:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kt"&gt;def&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;input_a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;
&lt;span class="c1"&gt;// def a = input_a ?: true&lt;/span&gt;
&lt;span class="kt"&gt;def&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;input_a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;!=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;?&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;input_a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;

&lt;span class="kt"&gt;def&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;[]&lt;/span&gt;
&lt;span class="c1"&gt;// def b = args.b ?: true&lt;/span&gt;
&lt;span class="kt"&gt;def&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;containsKey&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;b&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;?&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;b&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Не пригадую як в інших мовах, але мабуть є схожа поведінка.&lt;/p&gt;
&lt;h2 id="_1"&gt;Елвіс живий?&lt;/h2&gt;
&lt;p&gt;Один з варіантів тернарі оператора — це "елвіс" оператор &lt;code&gt;?:&lt;/code&gt;, який дозволяє скоротити запис, бо ми вказуємо лише значення, яке буде використано, якщо умова не виконується:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kt"&gt;def&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;input_a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;?:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Його назва походить від схожості з профілем голови Елвіса Преслі, запис &lt;code&gt;?:&lt;/code&gt; нагадує смайлик з його шевелюрою.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Elvis Presley" class="img-thumbnail" src="/images/2025-08-08/Elvis.png" style="max-width: 25%; height: auto;"&gt;&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;Головна ілюстрація від &lt;em&gt;www.scaler.com&lt;/em&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:1" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:2"&gt;
&lt;p&gt;Ілюстрація Елвіса від &lt;em&gt;www.supercoloring.com&lt;/em&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:2" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="Технічні теми"/><category term="Groovy"/><category term="програмування"/><category term="умовний оператор"/><category term="ternary operator"/></entry><entry><title>Міграція коментарів з Disqus на Giscus</title><link href="https://yura.stryi.com/2025-08-06/disqus-to-giscus-migration/" rel="alternate"/><published>2025-08-06T00:00:00+03:00</published><updated>2025-08-06T00:00:00+03:00</updated><author><name>Юрій Сметана</name></author><id>tag:yura.stryi.com,2025-08-06:/2025-08-06/disqus-to-giscus-migration/</id><summary type="html">&lt;p&gt;Отакої! Минуло багато часу з моменту останньої публікації на цьому сайті. Мабудь надто багато. Якось не до блогів і не до змін на сайті.&lt;/p&gt;
&lt;p&gt;Але, якось зайшов випадково сюди з мобільного і жахнувся від кількості реклами під постами. І згадав що Disqus, система коментарів яку я використовував, в безкоштовних планах …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Отакої! Минуло багато часу з моменту останньої публікації на цьому сайті. Мабудь надто багато. Якось не до блогів і не до змін на сайті.&lt;/p&gt;
&lt;p&gt;Але, якось зайшов випадково сюди з мобільного і жахнувся від кількості реклами під постами. І згадав що Disqus, система коментарів яку я використовував, в безкоштовних планах почала показувати рекламу під коментарями.&lt;/p&gt;
&lt;p&gt;Не можу сказати що існуючі коментарі мають особливу цінність, бо більшість інформації вже застаріла. Але, все ж, вони мають цінність для мене, як історія мого блогу. Відверто кажучи, з великою ностальгією перелистав деякі з них. Ніби з минулого життя. За &lt;strong&gt;18&lt;/strong&gt; років так багато змінилося... Проте, це окрема тема.&lt;/p&gt;
&lt;p&gt;Безліч реклами, простирадло реклами. А це не те, що мені хотілося б бачити у своєму блозі.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Disqus comments with ads" class="img-thumbnail" src="https://lh3.googleusercontent.com/pw/AP1GczPKLMH3nLs45ZbhNZ56CypM00FIpDY2s1UNS1pEGsR_ddzX9jZLg2Q_uT_hMKQU9uVAW5WSIz2r4Fte24aKhkfMFNGLQCihMPdUJ_2nSvnc3gjYg-H2LEXW3AfmaUH7NMYpUSjzmA_tiRhYahKnrMUjJA=w800-h879-s-no-gm?authuser=0" style="max-width: 50%; height: auto;"&gt;&lt;/p&gt;
&lt;p&gt;Так як блог працює на статичних даних то встановлювати спеціальну систему коментарів не було сенсу. Я вирішив спробувати &lt;a href="https://giscus.app] — систему коментарів, що використовує (GitHub Discussions)[https://docs.github.com/en/discussions"&gt;Giscus&lt;/a&gt; для зберігання коментарів.&lt;/p&gt;
&lt;p&gt;➕ Плюси Giscus:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Безкоштовна система, без реклами.&lt;/li&gt;
&lt;li&gt;Легко інтегрується з сайтом.&lt;/li&gt;
&lt;li&gt;Знайшов скрипт для міграції коментарів з Disqus до Giscus.&lt;/li&gt;
&lt;li&gt;Використовує безкоштовні репозиторії GitHub.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;🙁 Мінуси:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Потрібно мати обліковий запис на GitHub щоб коментувати.&lt;/li&gt;
&lt;li&gt;Використовує безкоштовні репозиторії GitHub. :) Стороння залежність.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="_1"&gt;Міграція коментарів&lt;/h2&gt;
&lt;p&gt;На щастя в самому Disqus є можливість експортувати коментарі, у форматі XML. Цей файл можна завантажити з налаштувань Disqus.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Disqus export comments" class="img-thumbnail" src="https://lh3.googleusercontent.com/pw/AP1GczM5ATIJ4z_eDjsY772c4HQ481PkOCpk6k0DycZ1bAi_V1n_8woLc3PMClmvhbqjBUytnAaBjlGdwxmcJz_ZoZDyhoJclMm6CHkBlqDTQIWmobEc48ICG0uLmsHGlm0khR1guYRZceQGc_TouCEtWU1M9Q=w1400-h1366-s-no-gm?authuser=0" style="max-width: 50%; height: auto;"&gt;&lt;/p&gt;
&lt;p&gt;Файл треба трохи відредагувати. Я знайшов багато дублікатів коментарів, бо деякі статті зберігалися в Disqus з різними URL, в тому числі в інших мовах. Мабуть якийсь такий внутрішній алгоритм роботи Disqus. Проте, їх було досить просто відслідкувати і позначити, щоб при імпорті їх не враховувало (я змінив URL сайту таких коментарів щоб виглядало що це не відносяться до мого).&lt;/p&gt;
&lt;p&gt;Для міграції коментарів з Disqus на Giscus я скористався системою &lt;a href="https://github.com/estruyf/disqus-to-github-discussions"&gt;disqus-to-github-discussions&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Працює досить просто. Треба лише створити новий &lt;strong&gt;відкритий&lt;/strong&gt; репозиторій на GitHub, куди будуть імпортуватися коментарі, та увімкнути там функцію Discussions. До речі, там само можна зберігати і увесь сайт (можливо пізніше).&lt;/p&gt;
&lt;p&gt;Згенерувати &lt;a href="https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-fine-grained-personal-access-token"&gt;персональний токен доступу&lt;/a&gt; до GitHub з правами на читання та запис в репозиторій.  Або, створити &lt;a href="https://docs.github.com/en/apps/creating-github-apps/registering-a-github-app/registering-a-github-app"&gt;Github App&lt;/a&gt;, що ніби то, мало б врятувати від обмежень з частити запитами, але я не помінтив різниці – блокувало і так і так. :)&lt;/p&gt;
&lt;p&gt;Вудредагувати параметри у файлі &lt;code&gt;.env&lt;/code&gt;. Працює система імпорту на &lt;a href="https://nodejs.org/en"&gt;Node.js&lt;/a&gt;, тому треба встановити Node.js та &lt;a href="https://www.npmjs.com/"&gt;npm&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Потім, запустити команду &lt;code&gt;npm start&lt;/code&gt; і почекати поки скрипт імпортує коментарі.&lt;/p&gt;
&lt;p&gt;&lt;img alt="disqus-to-github-discussions run" class="img-thumbnail" src="https://lh3.googleusercontent.com/pw/AP1GczPubdXk5q8dOMzj8gKallaKhU-v7E8sQzWlxhoLmWLzvHpZ83pqWoeDDisNdnpNvoucbtox8OO22-BfZi1wjqnceN_w48tOWwNnDgxoheRJ4rUMffL48AqNrSnmEZQPeBlC5eUGXewpWekI64gty4oeJg=w2082-h1110-s-no-gm?authuser=0" style="max-width: 75%; height: auto;"&gt;&lt;/p&gt;
&lt;p&gt;Система імпорту вміє робити паузи між запитами до GitHub, щоб не перевищувати ліміт запитів, та повторювати їх за потреби. Але, все одно, я отримував помилки з перевищенням ліміту запитів. Можна перезапускати виконання, бо ведеться журнал виконання, і скрипт пропустить вже імпортовані коментарі.&lt;/p&gt;
&lt;p&gt;Я був змушений трохи змінити скрипт, бо через хитрі повторювальні URL в Disqus отримував дублі обговорень. Я заборонив імпортувати статті у яких є 0 коментарів і отримав список правильних адрес в яких є коментарі. Запропоную зміни автору системи, можливо він їх прийме.&lt;/p&gt;
&lt;p&gt;Кожна стаття на сайті перетвориться в обговорення Github Discussions, а коментарі до статті стануть коментарями до обговорення.&lt;/p&gt;
&lt;p&gt;P.S.&lt;/p&gt;
&lt;p&gt;Якщо видалити GitHub App, якою додавалися коментарі, то вони зникнуть. Тепер я це знаю :) Додаю знову, через персональний токен.&lt;/p&gt;</content><category term="Технічні теми"/><category term="Disqus"/><category term="Giscus"/><category term="коментарі"/><category term="GitHub"/></entry><entry><title>Як продовжити життя SD-карти чи SSD-диску</title><link href="https://yura.stryi.com/2023-04-12/extending-life-of-sd-card-or-ssd/" rel="alternate"/><published>2023-04-12T00:00:00+03:00</published><updated>2023-04-12T00:00:00+03:00</updated><author><name>Юрій Сметана</name></author><id>tag:yura.stryi.com,2023-04-12:/2023-04-12/extending-life-of-sd-card-or-ssd/</id><summary type="html">&lt;p&gt;&lt;img alt="SD-карти" src="https://lh3.googleusercontent.com/WUAV8BCcohYMbVSQ4G-NI4C31AaDJUl_H86jWxMDTK42hdRYEhIh5z9t-pn2_A-M3WYT6tpmIWrwf7e1s58gJAjhRIdOCkG8zqFT4GX0cRoOi2pSo1RLArzpDWq8zA2pnrkr_Pbxt-nLNUvb0DgYMRR1HN23Av7joU_trvilJKmnaXc8GUP-KhOgFwAUswo5Q7evuIdI5olo0XYmHDR6eJ4lsypuI5FeU6rqaxp2p1l2YPfwkMAbM3-slSCfNL4bQGoDylN4zMCartspHATo4las6XsLa5JGnwXMjGjSEBM_9U5fro9wD7iaXyux8TDfKLNydTOD8Yj9BOcoftf_TRLl0FB_fTD1Kyb_RTZiy--UrWCbyP19E8nP0HQUtfo3zoBXBkftUB3MROU7CnNDvXTMC9Jewg_0DMpe8tw9iLccwq9VqozLLcnA-Iro4p7VWVhL1mPagpz4dml185XTTqSXE3Yn8PR690B8TZdSCIhu3h2kiYUt-PpQTb1fQJSVcsTCMaRlQSXnen11uJp7fNvQpb0zcA_VZJpngzFTsbMlWY9VlgttqTpv3WJOGiYZCpzkX-oFiAaEO_h5D1deU-ZvJQf658XztR9Pqp2UNfS4Lde_lumCHnIbwIiBH86dQvO2Ikup64GPhq13PGr5c7mFhbnvqOF11Ymwu0tcRdIAVx_AECF_SZTiOc4KYhGT7n6OzGMlAtBxVAApeA4Dv8CIDBKBkWDa8Z2FRUgshHlHCBSok5NYAqIQxfmkZw4VK9n2bQRctU0HaRiOZTksBO_8SXXO91-LME_mecJ6HYYnMztSMsjnvhUtRrRIKIzCRHgrQyKaqhjowghMlfn0Af5_0d2oKpmZHdnIJNJrl4GwspvXxzDVFudxoRbRW9_auD-cs4Ed4ty4eowmhI8FjGq6M3Kx-dSPBfyf4WLh74toeA=w1014-h761-s-no?authuser=0"&gt;&lt;/p&gt;
&lt;p&gt;Маленькі, швидкі, без рухомих механічних частин — електронні носії пам'яті здаються ідеальними пристроями.&lt;/p&gt;
&lt;p&gt;Для деяких мікрокомп'ютерів, як Raspberry Pi це основний спосіб збереження даних.&lt;/p&gt;
&lt;p&gt;На жаль, через особливості роботи електронних чипів що зберігають дані, з часом дані можуть втрачатися. Тим швидше, чим частіше відбувається запис даних.&lt;/p&gt;
&lt;h2 id="sd-"&gt;Чому SD-карти "помирають"?&lt;/h2&gt;
&lt;p&gt;Кожна частинка …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;img alt="SD-карти" src="https://lh3.googleusercontent.com/WUAV8BCcohYMbVSQ4G-NI4C31AaDJUl_H86jWxMDTK42hdRYEhIh5z9t-pn2_A-M3WYT6tpmIWrwf7e1s58gJAjhRIdOCkG8zqFT4GX0cRoOi2pSo1RLArzpDWq8zA2pnrkr_Pbxt-nLNUvb0DgYMRR1HN23Av7joU_trvilJKmnaXc8GUP-KhOgFwAUswo5Q7evuIdI5olo0XYmHDR6eJ4lsypuI5FeU6rqaxp2p1l2YPfwkMAbM3-slSCfNL4bQGoDylN4zMCartspHATo4las6XsLa5JGnwXMjGjSEBM_9U5fro9wD7iaXyux8TDfKLNydTOD8Yj9BOcoftf_TRLl0FB_fTD1Kyb_RTZiy--UrWCbyP19E8nP0HQUtfo3zoBXBkftUB3MROU7CnNDvXTMC9Jewg_0DMpe8tw9iLccwq9VqozLLcnA-Iro4p7VWVhL1mPagpz4dml185XTTqSXE3Yn8PR690B8TZdSCIhu3h2kiYUt-PpQTb1fQJSVcsTCMaRlQSXnen11uJp7fNvQpb0zcA_VZJpngzFTsbMlWY9VlgttqTpv3WJOGiYZCpzkX-oFiAaEO_h5D1deU-ZvJQf658XztR9Pqp2UNfS4Lde_lumCHnIbwIiBH86dQvO2Ikup64GPhq13PGr5c7mFhbnvqOF11Ymwu0tcRdIAVx_AECF_SZTiOc4KYhGT7n6OzGMlAtBxVAApeA4Dv8CIDBKBkWDa8Z2FRUgshHlHCBSok5NYAqIQxfmkZw4VK9n2bQRctU0HaRiOZTksBO_8SXXO91-LME_mecJ6HYYnMztSMsjnvhUtRrRIKIzCRHgrQyKaqhjowghMlfn0Af5_0d2oKpmZHdnIJNJrl4GwspvXxzDVFudxoRbRW9_auD-cs4Ed4ty4eowmhI8FjGq6M3Kx-dSPBfyf4WLh74toeA=w1014-h761-s-no?authuser=0"&gt;&lt;/p&gt;
&lt;p&gt;Маленькі, швидкі, без рухомих механічних частин — електронні носії пам'яті здаються ідеальними пристроями.&lt;/p&gt;
&lt;p&gt;Для деяких мікрокомп'ютерів, як Raspberry Pi це основний спосіб збереження даних.&lt;/p&gt;
&lt;p&gt;На жаль, через особливості роботи електронних чипів що зберігають дані, з часом дані можуть втрачатися. Тим швидше, чим частіше відбувається запис даних.&lt;/p&gt;
&lt;h2 id="sd-"&gt;Чому SD-карти "помирають"?&lt;/h2&gt;
&lt;p&gt;Кожна частинка інформації зберігається у своїй частині чипа (комірці) — як електричний заряд певної величини. Щоразу, при зміні інформації в комірці її властивості утримувати цей заряд трохи погіршуються. І може настати такий момент коли комірка не може довго тримати правильний заряд, або на комірку надто сильно діють заряди сусідніх комірок, через що дані спотворюються безповоротно.&lt;/p&gt;
&lt;p&gt;SD-карти, як і SSD-диски, використовують кмітливі алгоритми автокорекції правильності записаних даних, мають автодіагностику що, наприклад, використовує надлишкову кількість комірок, щоб зайняти місце таких що здаються ненадійними. Але, ніякі алгоритми не можуть врятувати електронну пам'ять від неминучого виходу з ладу. Це лише питання часу.&lt;/p&gt;
&lt;p&gt;Для деяких типів сучасних SSD-дисків це не є такою сильною проблемою, бо їх час до настання відмови може перевищити час протягом якого цей диск буде використовуватися. Але, для більшості SD-карт чи SSD-дисків старих технологій проблема "старіння" дуже актуальна.&lt;/p&gt;
&lt;p&gt;Приходимо до очевидного висновку: &lt;strong&gt;чим менше буде записів на карту, тим довше вона проживе&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id="_1"&gt;Бережіть карти змолоду&lt;/h2&gt;
&lt;p&gt;Операційна система постійно читає і пише дані на диск. І повністю позбутися цього — неможливо. Проте, можна збільшити час життя карти використовуючи прості поради що наведено нижче.&lt;/p&gt;
&lt;h3 id="_2"&gt;Зменшення надлишкових даних&lt;/h3&gt;
&lt;p&gt;Немає потреби зберігати дані в яких немає потреби. Вимкніть непотрібні логи програм, або зменште їх рівень (щоб зберігалася лише критична інформація).&lt;/p&gt;
&lt;h3 id="_3"&gt;Зменшення службової інформації&lt;/h3&gt;
&lt;p&gt;Інформації на диску зберігається як спеціальна файлова система — набір даних та їх властивостей. Крім самих даних що містяться на диску файлова система зберігає інформацію про час створення даних, час їх зміни, права доступу до об'єкта тощо.&lt;/p&gt;
&lt;h4 id="noatime"&gt;noatime&lt;/h4&gt;
&lt;p&gt;Якщо для файлової системи вжити атрибут &lt;code&gt;noatime&lt;/code&gt; — при читанні файлу не буде зберігатися інформація про час останнього звернення. Я згадував про це у &lt;a href="/2023-04-09/installing-debian-on-laptop-netbook/"&gt;статті про встановлення Debian на нетбуці&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Цей параметр можна вказати під час встановлення системи та розбивання дисків, або пізніше, у файлі &lt;code&gt;/etc/fstab&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;klp@klipper:/$&lt;span class="w"&gt; &lt;/span&gt;cat&lt;span class="w"&gt; &lt;/span&gt;/etc/fstab
&lt;span class="c1"&gt;# / was on /dev/sdd1 during installation&lt;/span&gt;
&lt;span class="nv"&gt;UUID&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;270e17a9-5c82-4677-9bed-a1da9cec33df&lt;span class="w"&gt; &lt;/span&gt;/&lt;span class="w"&gt;               &lt;/span&gt;ext4&lt;span class="w"&gt;    &lt;/span&gt;noatime,errors&lt;span class="o"&gt;=&lt;/span&gt;remount-ro&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="w"&gt;       &lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;
&lt;span class="c1"&gt;# /boot was on /dev/sda1 during installation&lt;/span&gt;
&lt;span class="nv"&gt;UUID&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;d4f01822-0954-42c9-8887-fbac3151884b&lt;span class="w"&gt; &lt;/span&gt;/boot&lt;span class="w"&gt;           &lt;/span&gt;ext4&lt;span class="w"&gt;    &lt;/span&gt;noatime&lt;span class="w"&gt;         &lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="w"&gt;       &lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h4 id="commit"&gt;commit&lt;/h4&gt;
&lt;p&gt;Файлові системи Ext3, Ext4 вміють синхронізувати зміну даних з даними на диску з затримкою, наприклад раз на 30 хв. Всі зміни даних, скільки б разів вони не відбулися, остаточно запишуться на диск лише 1 раз, через 30 хв.&lt;/p&gt;
&lt;p&gt;Збереже записи, але &lt;strong&gt;не збереже&lt;/strong&gt; дані які ще не записалися якщо система аварійно вимкнулася. Тому треба використовувати &lt;strong&gt;дуже обережно&lt;/strong&gt;, на комп'ютерах з автономним живленням.&lt;/p&gt;
&lt;p&gt;Приклад &lt;code&gt;fstab&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;PARTUUID=bbf24818-02 / ext4 defaults,noatime,commit=1800 0 1
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h3 id="swap"&gt;swap (ні)&lt;/h3&gt;
&lt;p&gt;Розділ "підкачки", або файл підкачки. Використовується як резервне місце для оперативної пам'яті. SD-карти повільні та не помічні для підкачки даних. &lt;strong&gt;Вимкніть swap&lt;/strong&gt;, якщо він був.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;swapoff&lt;span class="w"&gt; &lt;/span&gt;--all
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Якщо для &lt;code&gt;swap&lt;/code&gt; використовується окремий розділ — закоментуйте його в &lt;code&gt;/etc/fstab&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id="log2ram"&gt;log2ram&lt;/h3&gt;
&lt;p&gt;Це вишенька-черешенька на верхівці оптимізації роботи SD-карт.&lt;/p&gt;
&lt;p&gt;Розумним людям прийшла ідея — а що, якщо частину даних тримати не на диску (карті) а у швидкій, надійній, довговічній оперативній пам'яті (RAM)?&lt;/p&gt;
&lt;p&gt;Єдина проблема — дані витираються при вимкненні комп'ютера, тому час від часу їх таки треба зберігати на диск. Виникли спеціальні файлові системи, оптимізовані для роботи в RAM. А ентузіасти створили готові скрипти для автоматизації цих процесів.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/azlux/log2ram"&gt;log2ram&lt;/a&gt; одна з таких систем. Триматиме вибрані директорії в оперативній пам'яті й зміна цих даних не використовуватиме ресурси запису диска (значно рідше).&lt;/p&gt;
&lt;p&gt;Встановлення просте:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;deb [signed-by=/usr/share/keyrings/azlux-archive-keyring.gpg] http://packages.azlux.fr/debian/ bullseye main&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;tee&lt;span class="w"&gt; &lt;/span&gt;/etc/apt/sources.list.d/azlux.list
sudo&lt;span class="w"&gt; &lt;/span&gt;wget&lt;span class="w"&gt; &lt;/span&gt;-O&lt;span class="w"&gt; &lt;/span&gt;/usr/share/keyrings/azlux-archive-keyring.gpg&lt;span class="w"&gt;  &lt;/span&gt;https://azlux.fr/repo.gpg
sudo&lt;span class="w"&gt; &lt;/span&gt;apt&lt;span class="w"&gt; &lt;/span&gt;update
sudo&lt;span class="w"&gt; &lt;/span&gt;apt&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;log2ram
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Конфігурація зберігається у файлі &lt;code&gt;/etc/log2ram.conf&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;klp@klipper:/$&lt;span class="w"&gt; &lt;/span&gt;cat&lt;span class="w"&gt; &lt;/span&gt;/etc/log2ram.conf&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;grep&lt;span class="w"&gt; &lt;/span&gt;-v&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;#&amp;quot;&lt;/span&gt;
&lt;span class="nv"&gt;SIZE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;128M
&lt;span class="nv"&gt;MAIL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;false&lt;/span&gt;
&lt;span class="nv"&gt;PATH_DISK&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;/var/log&amp;quot;&lt;/span&gt;
&lt;span class="nv"&gt;ZL2R&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;false&lt;/span&gt;
&lt;span class="nv"&gt;COMP_ALG&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;lz4
&lt;span class="nv"&gt;LOG_DISK_SIZE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;100M
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Після перевантаження видно що частина директорій живе в оперативній пам'яті:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;klp@klipper:/$&lt;span class="w"&gt; &lt;/span&gt;df&lt;span class="w"&gt; &lt;/span&gt;-h
Filesystem&lt;span class="w"&gt;      &lt;/span&gt;Size&lt;span class="w"&gt;  &lt;/span&gt;Used&lt;span class="w"&gt; &lt;/span&gt;Avail&lt;span class="w"&gt; &lt;/span&gt;Use%&lt;span class="w"&gt; &lt;/span&gt;Mounted&lt;span class="w"&gt; &lt;/span&gt;on
log2ram&lt;span class="w"&gt;         &lt;/span&gt;128M&lt;span class="w"&gt;   &lt;/span&gt;51M&lt;span class="w"&gt;   &lt;/span&gt;78M&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="m"&gt;40&lt;/span&gt;%&lt;span class="w"&gt; &lt;/span&gt;/var/log
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Фізична копія даних зберігається в &lt;code&gt;/var/hdd.log&lt;/code&gt; і оновлюється з RAM &lt;strong&gt;раз на добу&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Якщо потрібно частіше — змініть, виконавши команду &lt;code&gt;systemctl edit log2ram-daily.timer&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="o"&gt;[&lt;/span&gt;Timer&lt;span class="o"&gt;]&lt;/span&gt;
&lt;span class="nv"&gt;OnCalendar&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;
&lt;span class="nv"&gt;OnCalendar&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;Mon&lt;span class="w"&gt; &lt;/span&gt;*-*-*&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;23&lt;/span&gt;:55:00
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;У випадку проблем — читайте логи в &lt;code&gt;/var/log/log2ram.log&lt;/code&gt;.&lt;/p&gt;
&lt;h4 id="journalctl-debian"&gt;journalctl в Debian&lt;/h4&gt;
&lt;p&gt;Наприклад в мене розмір поточного &lt;code&gt;/var/log&lt;/code&gt; був більшим ніж розмір RAM який я дозволив використати. Виявилося що директорія &lt;code&gt;/var/log/journal/&lt;/code&gt; займала купу місця. Я зменшив її командою&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;journalctl&lt;span class="w"&gt; &lt;/span&gt;--vacuum-size&lt;span class="o"&gt;=&lt;/span&gt;10M
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Також, можна видалити всі системні логи старіші за N днів:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;journalctl&lt;span class="w"&gt; &lt;/span&gt;--vacuum-time&lt;span class="o"&gt;=&lt;/span&gt;10d
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Щоб зберегти ці зміни на постійно відредагуйте файл &lt;code&gt;/etc/systemd/journald.conf&lt;/code&gt;, щоб він містив:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nv"&gt;SystemMaxUse&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;10M
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;Титульна ілюстрація від &lt;a href="https://www.kindpng.com/userpngs/1862/"&gt;Aliaksei Baturytski&lt;/a&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:1" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="Технічні теми"/><category term="Debian"/><category term="Linux"/><category term="Eee PC"/><category term="SD-card"/><category term="SSD"/></entry><entry><title>Налаштування Debian на нетбуці Asus Eee PC</title><link href="https://yura.stryi.com/2023-04-11/setup-debian-on-laptop-netbook/" rel="alternate"/><published>2023-04-11T00:00:00+03:00</published><updated>2023-04-11T00:00:00+03:00</updated><author><name>Юрій Сметана</name></author><id>tag:yura.stryi.com,2023-04-11:/2023-04-11/setup-debian-on-laptop-netbook/</id><summary type="html">&lt;p&gt;&lt;img alt="Debian Linux" src="https://lh3.googleusercontent.com/IZ8I68SvL3WzkGfyMTEnWTfq-hmXhAsLD7TA2qHVRuCFlSpx9XOHkdO4zNZbxIArTFiAJc_uLGRimrlyyubqdwPRIPYP0kOpzpfWHoiVQdn-0u-hEdRWesQd48-MzEXXBpeVEmBUSkK-E24p6AUyFT4TrTtkMJP1sep45go5LUSDSXJ4tN0ZFE4sXoI2hSMh_yYUeo8WYdtrK2YU2FkUZgfLr5wficVdaPM7iByo4ukrjtuwCKwag_Q4ZUC49-oRTXZCrMJV6bcb9sHWz5k4oFvlamQW3DOwUyLWOeNt5Ncw3IU_9OkFskYZffjodmZqS65z1VslRa7Z9p9dGFJ1lXlGsfCPlW0MYq18uOzh7lLKjwtkmasWaFWQUmk1nlT-G68nLuRgT8PnpYjAaPTHIZW_PNC9ooIWCYKnAlVVi8oKPNZxoveJ9BEqa71Wd-C9qRh-7CmlrBc7mjoVa2GgVkYNY7eDYPSUawOowTbXQkVvvBT57xjvtREEAQ7iMp9Le4FCgtSDe_QEIghJ0Wyb0ClRnNv32g7bQiPOBvEgpeCK02-4f_e-V9pRxhU2C_gHNGno7HMr8IIQdwsr4JDCNnKi64Ps65SzTI-Q6_emSz7gRUKUsN6hKhAiDT_7WDytUYVFN0NKe94eSdRF7gGxTO2_QgRkUlwYPZbLJgiNaGjMoBdnKshf4iib4ljBCCssEA9wFsxgwztJc4rq1iYCmwPIlspMrd3Qc1ynNDdY1JCnX4F9K34yDo5KFv9ZhzxoTqVkz6JOeeHl8fQsSiHaPiFg4VN70LNVR9_j_UFtw5YS2vGjp-YH2x_ii64iLcLbNtuc7juuRJwjNo0bK32yIgcMXbp1-cx4VKBBsmx8FgWbovFtR_rmQIBTshkqgILrJN6frZQlZFBYQdroN1nnLwWTcCG4zB8XJxLszCrqXT48xQ=w800-h403-s-no?authuser=0"&gt;&lt;/p&gt;
&lt;p&gt;Встановлення Debian на старенький нетбук Asus Eee PC &lt;a href="/2023-04-09/installing-debian-on-laptop-netbook"&gt;я описав в попередній статті&lt;/a&gt;. Зараз, я зроблю базові налаштування системи для роботи з сервером 3D-друку &lt;a href="https://www.klipper3d.org/"&gt;Klipper&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id="wi-fi"&gt;Налаштування Wi-Fi&lt;/h3&gt;
&lt;p&gt;Зайти як звичайний користувач:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;login:&lt;span class="w"&gt; &lt;/span&gt;klp
Password:&lt;span class="w"&gt; &lt;/span&gt;*******
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Стати адміністратором root:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;klp@klipper:~$&lt;span class="w"&gt; &lt;/span&gt;su
Password:&lt;span class="w"&gt; &lt;/span&gt;*******

root@klipper:
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Налаштувати мережу. Вкажіть свої &lt;code&gt;NETWORK-NAME&lt;/code&gt; та &lt;code&gt;NETWORK-PASS …&lt;/code&gt;&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;img alt="Debian Linux" src="https://lh3.googleusercontent.com/IZ8I68SvL3WzkGfyMTEnWTfq-hmXhAsLD7TA2qHVRuCFlSpx9XOHkdO4zNZbxIArTFiAJc_uLGRimrlyyubqdwPRIPYP0kOpzpfWHoiVQdn-0u-hEdRWesQd48-MzEXXBpeVEmBUSkK-E24p6AUyFT4TrTtkMJP1sep45go5LUSDSXJ4tN0ZFE4sXoI2hSMh_yYUeo8WYdtrK2YU2FkUZgfLr5wficVdaPM7iByo4ukrjtuwCKwag_Q4ZUC49-oRTXZCrMJV6bcb9sHWz5k4oFvlamQW3DOwUyLWOeNt5Ncw3IU_9OkFskYZffjodmZqS65z1VslRa7Z9p9dGFJ1lXlGsfCPlW0MYq18uOzh7lLKjwtkmasWaFWQUmk1nlT-G68nLuRgT8PnpYjAaPTHIZW_PNC9ooIWCYKnAlVVi8oKPNZxoveJ9BEqa71Wd-C9qRh-7CmlrBc7mjoVa2GgVkYNY7eDYPSUawOowTbXQkVvvBT57xjvtREEAQ7iMp9Le4FCgtSDe_QEIghJ0Wyb0ClRnNv32g7bQiPOBvEgpeCK02-4f_e-V9pRxhU2C_gHNGno7HMr8IIQdwsr4JDCNnKi64Ps65SzTI-Q6_emSz7gRUKUsN6hKhAiDT_7WDytUYVFN0NKe94eSdRF7gGxTO2_QgRkUlwYPZbLJgiNaGjMoBdnKshf4iib4ljBCCssEA9wFsxgwztJc4rq1iYCmwPIlspMrd3Qc1ynNDdY1JCnX4F9K34yDo5KFv9ZhzxoTqVkz6JOeeHl8fQsSiHaPiFg4VN70LNVR9_j_UFtw5YS2vGjp-YH2x_ii64iLcLbNtuc7juuRJwjNo0bK32yIgcMXbp1-cx4VKBBsmx8FgWbovFtR_rmQIBTshkqgILrJN6frZQlZFBYQdroN1nnLwWTcCG4zB8XJxLszCrqXT48xQ=w800-h403-s-no?authuser=0"&gt;&lt;/p&gt;
&lt;p&gt;Встановлення Debian на старенький нетбук Asus Eee PC &lt;a href="/2023-04-09/installing-debian-on-laptop-netbook"&gt;я описав в попередній статті&lt;/a&gt;. Зараз, я зроблю базові налаштування системи для роботи з сервером 3D-друку &lt;a href="https://www.klipper3d.org/"&gt;Klipper&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id="wi-fi"&gt;Налаштування Wi-Fi&lt;/h3&gt;
&lt;p&gt;Зайти як звичайний користувач:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;login:&lt;span class="w"&gt; &lt;/span&gt;klp
Password:&lt;span class="w"&gt; &lt;/span&gt;*******
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Стати адміністратором root:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;klp@klipper:~$&lt;span class="w"&gt; &lt;/span&gt;su
Password:&lt;span class="w"&gt; &lt;/span&gt;*******

root@klipper:
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Налаштувати мережу. Вкажіть свої &lt;code&gt;NETWORK-NAME&lt;/code&gt; та &lt;code&gt;NETWORK-PASS&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;ip&lt;span class="w"&gt; &lt;/span&gt;link&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;set&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;wlp1s0&lt;span class="w"&gt; &lt;/span&gt;up
wpa_passphrase&lt;span class="w"&gt; &lt;/span&gt;NETWORK-NAME&lt;span class="w"&gt; &lt;/span&gt;NETWORK-PASS&lt;span class="w"&gt; &lt;/span&gt;&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;/etc/wpa_supplicant/wpa_supplicant.conf
systemctl&lt;span class="w"&gt; &lt;/span&gt;restart&lt;span class="w"&gt; &lt;/span&gt;wpa_supplicant
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Мій файл &lt;code&gt;/etc/wpa_supplicant/wpa_supplicant.conf&lt;/code&gt;, порівняйте зі своїм:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;root@klipper:/home/klp#&lt;span class="w"&gt; &lt;/span&gt;cat&lt;span class="w"&gt; &lt;/span&gt;/etc/wpa_supplicant/wpa_supplicant.conf

&lt;span class="nv"&gt;ctrl_interface&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;DIR&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/var/run/wpa_supplicant&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;GROUP&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;sudo
&lt;span class="nv"&gt;network&lt;/span&gt;&lt;span class="o"&gt;={&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nv"&gt;ssid&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;NETWORK-NAME&amp;quot;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nv"&gt;psk&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;86927f1e3a2103c78b7dd8854751b766f23a9808852dda76c0f488a2d8ffbcfd
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nv"&gt;proto&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;RSN
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nv"&gt;key_mgmt&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;WPA-PSK
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nv"&gt;group&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;CCMP
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nv"&gt;pairwise&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;CCMP
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Запуск підключення в ручному режимі:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;/sbin/wpa_supplicant&lt;span class="w"&gt; &lt;/span&gt;-B&lt;span class="w"&gt; &lt;/span&gt;-D&lt;span class="w"&gt; &lt;/span&gt;nl80211&lt;span class="w"&gt; &lt;/span&gt;-i&lt;span class="w"&gt; &lt;/span&gt;wlp1s0&lt;span class="w"&gt; &lt;/span&gt;-c&lt;span class="w"&gt; &lt;/span&gt;/etc/wpa_supplicant/wpa_supplicant.conf
dhclient
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Перевірка підключення:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;root@klipper:/home/klp#&lt;span class="w"&gt; &lt;/span&gt;ip&lt;span class="w"&gt; &lt;/span&gt;a
&lt;span class="m"&gt;1&lt;/span&gt;:&lt;span class="w"&gt; &lt;/span&gt;lo:&lt;span class="w"&gt; &lt;/span&gt;&amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;mtu&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;65536&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;qdisc&lt;span class="w"&gt; &lt;/span&gt;noqueue&lt;span class="w"&gt; &lt;/span&gt;state&lt;span class="w"&gt; &lt;/span&gt;UNKNOWN&lt;span class="w"&gt; &lt;/span&gt;group&lt;span class="w"&gt; &lt;/span&gt;default&lt;span class="w"&gt; &lt;/span&gt;qlen&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;1000&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;link/loopback&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;00&lt;/span&gt;:00:00:00:00:00&lt;span class="w"&gt; &lt;/span&gt;brd&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;00&lt;/span&gt;:00:00:00:00:00
&lt;span class="m"&gt;2&lt;/span&gt;:&lt;span class="w"&gt; &lt;/span&gt;enp4s0:&lt;span class="w"&gt; &lt;/span&gt;&amp;lt;NO-CARRIER,BROADCAST,MULTICAST,UP&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;mtu&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;1500&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;qdisc&lt;span class="w"&gt; &lt;/span&gt;pfifo_fast&lt;span class="w"&gt; &lt;/span&gt;state&lt;span class="w"&gt; &lt;/span&gt;DOWN&lt;span class="w"&gt; &lt;/span&gt;group&lt;span class="w"&gt; &lt;/span&gt;default&lt;span class="w"&gt; &lt;/span&gt;qlen&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;1000&lt;/span&gt;
&lt;span class="m"&gt;3&lt;/span&gt;:&lt;span class="w"&gt; &lt;/span&gt;wlp1s0:&lt;span class="w"&gt; &lt;/span&gt;&amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;mtu&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;1500&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;qdisc&lt;span class="w"&gt; &lt;/span&gt;mq&lt;span class="w"&gt; &lt;/span&gt;state&lt;span class="w"&gt; &lt;/span&gt;UP&lt;span class="w"&gt; &lt;/span&gt;group&lt;span class="w"&gt; &lt;/span&gt;default&lt;span class="w"&gt; &lt;/span&gt;qlen&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;1000&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;link/ether&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;00&lt;/span&gt;:15:af:ef:f3:f3&lt;span class="w"&gt; &lt;/span&gt;brd&lt;span class="w"&gt; &lt;/span&gt;ff:ff:ff:ff:ff:ff
&lt;span class="w"&gt;    &lt;/span&gt;inet&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;192&lt;/span&gt;.168.1.17/24&lt;span class="w"&gt; &lt;/span&gt;brd&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;192&lt;/span&gt;.168.1.255&lt;span class="w"&gt; &lt;/span&gt;scope&lt;span class="w"&gt; &lt;/span&gt;global&lt;span class="w"&gt; &lt;/span&gt;dynamic&lt;span class="w"&gt; &lt;/span&gt;wlp1s0
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Бачу що інтерфейс &lt;code&gt;wlp1s0&lt;/code&gt; має IP-адресу &lt;code&gt;192.168.1.17&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="_1"&gt;Віддалене підключення до системи&lt;/h2&gt;
&lt;p&gt;Під'єднайтеся до комп'ютера з іншої системи, де SSH клієнт надає можливість копіювати дані. Для Windows популярними клієнтами є &lt;a href="https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html"&gt;PuTTY&lt;/a&gt;, &lt;a href="https://mobaxterm.mobatek.net/download.html"&gt;MobaXterm&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Для підключення використайте IP-адресу з кроку тестування підключення до мережі.&lt;/p&gt;
&lt;h2 id="wi-fi_1"&gt;Автоматичне підключення Wi-Fi&lt;/h2&gt;
&lt;p&gt;Проте, для автоматичного під'єднання треба ще трохи конфігурації. Перегляньте ключ який відповідає паролю для Вашої Wi-Fi мережі, скопіюйте ключ &lt;code&gt;psk&lt;/code&gt; з файлу &lt;code&gt;/etc/wpa_supplicant/wpa_supplicant.conf&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;cat&lt;span class="w"&gt; &lt;/span&gt;/etc/wpa_supplicant/wpa_supplicant.conf&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;grep&lt;span class="w"&gt; &lt;/span&gt;psk

&lt;span class="nv"&gt;psk&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;XXX
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Відредагуйте файл &lt;code&gt;/etc/network/interfaces&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;pico&lt;span class="w"&gt; &lt;/span&gt;/etc/network/interfaces
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;В кінці, з нового рядка, вставте текст:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;allow-hotplug&lt;span class="w"&gt; &lt;/span&gt;wlp1s0
iface&lt;span class="w"&gt; &lt;/span&gt;wlp1s0&lt;span class="w"&gt; &lt;/span&gt;inet&lt;span class="w"&gt; &lt;/span&gt;dhcp
&lt;span class="w"&gt;    &lt;/span&gt;wpa-ssid&lt;span class="w"&gt; &lt;/span&gt;NETWORK-NAME
&lt;span class="w"&gt;        &lt;/span&gt;wpa-psk&lt;span class="w"&gt; &lt;/span&gt;XXX
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Де &lt;code&gt;XXX&lt;/code&gt; скопійовано в попередньому кроці (з файлу &lt;code&gt;/etc/wpa_supplicant/wpa_supplicant.conf&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;Збережіть дані та вийдіть з редактора натиснувши &lt;code&gt;Ctr + X&lt;/code&gt; та &lt;code&gt;Y&lt;/code&gt;, а потім &lt;code&gt;Enter&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Мій файл &lt;code&gt;/etc/network/interfaces&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;root@klipper:/home/klp#&lt;span class="w"&gt; &lt;/span&gt;cat&lt;span class="w"&gt; &lt;/span&gt;/etc/network/interfaces
&lt;span class="c1"&gt;# This file describes the network interfaces available on your system&lt;/span&gt;
&lt;span class="c1"&gt;# and how to activate them. For more information, see interfaces(5).&lt;/span&gt;

&lt;span class="nb"&gt;source&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;/etc/network/interfaces.d/*

&lt;span class="c1"&gt;# The loopback network interface&lt;/span&gt;
auto&lt;span class="w"&gt; &lt;/span&gt;lo
iface&lt;span class="w"&gt; &lt;/span&gt;lo&lt;span class="w"&gt; &lt;/span&gt;inet&lt;span class="w"&gt; &lt;/span&gt;loopback

allow-hotplug&lt;span class="w"&gt; &lt;/span&gt;wlp1s0
iface&lt;span class="w"&gt; &lt;/span&gt;wlp1s0&lt;span class="w"&gt; &lt;/span&gt;inet&lt;span class="w"&gt; &lt;/span&gt;dhcp
&lt;span class="w"&gt;    &lt;/span&gt;wpa-ssid&lt;span class="w"&gt; &lt;/span&gt;Lufa-2
&lt;span class="w"&gt;        &lt;/span&gt;wpa-psk&lt;span class="w"&gt; &lt;/span&gt;86927f1e3a2103c78b7dd8854751b766f23a9808852dda76c0f488a2d8ffbcfd
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Перевантажте систему та переконайтеся що автоматичне підключення до Wi-Fi відбулося:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;/sbin/reboot
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Видаліть пароль який вказано відкритим текстом у файлі &lt;code&gt;/etc/wpa_supplicant/wpa_supplicant.conf&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;pico&lt;span class="w"&gt; &lt;/span&gt;/etc/wpa_supplicant/wpa_supplicant.conf
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Більше варіантів для підключення мережі описано в &lt;a href="https://wiki.debian.org/WiFi/HowToUse"&gt;офіційній документації Debian&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="_2"&gt;Оновлення системи&lt;/h2&gt;
&lt;p&gt;Відредагуйте файл &lt;code&gt;/etc/apt/sources.list&lt;/code&gt;, закоментуйте рядки з &lt;code&gt;cdrom&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;:::&lt;span class="w"&gt; &lt;/span&gt;bash
pico&lt;span class="w"&gt; &lt;/span&gt;/etc/apt/sources.list
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Мій файл &lt;code&gt;/etc/apt/sources.list&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;:::&lt;span class="w"&gt; &lt;/span&gt;bash
root@klipper:/home/klp#&lt;span class="w"&gt; &lt;/span&gt;cat&lt;span class="w"&gt; &lt;/span&gt;/etc/apt/sources.list
&lt;span class="c1"&gt;# deb cdrom:[Debian GNU/Linux 11.6.0 _Bullseye_ - Official i386 DVD Binary-1 20221217-10:40]/ bullseye contrib main&lt;/span&gt;

&lt;span class="c1"&gt;#deb cdrom:[Debian GNU/Linux 11.6.0 _Bullseye_ - Official i386 DVD Binary-1 20221217-10:40]/ bullseye contrib main&lt;/span&gt;

deb&lt;span class="w"&gt; &lt;/span&gt;http://deb.debian.org/debian/&lt;span class="w"&gt; &lt;/span&gt;bullseye&lt;span class="w"&gt; &lt;/span&gt;main
deb-src&lt;span class="w"&gt; &lt;/span&gt;http://deb.debian.org/debian/&lt;span class="w"&gt; &lt;/span&gt;bullseye&lt;span class="w"&gt; &lt;/span&gt;main

deb&lt;span class="w"&gt; &lt;/span&gt;http://security.debian.org/debian-security&lt;span class="w"&gt; &lt;/span&gt;bullseye-security&lt;span class="w"&gt; &lt;/span&gt;main&lt;span class="w"&gt; &lt;/span&gt;contrib
deb-src&lt;span class="w"&gt; &lt;/span&gt;http://security.debian.org/debian-security&lt;span class="w"&gt; &lt;/span&gt;bullseye-security&lt;span class="w"&gt; &lt;/span&gt;main&lt;span class="w"&gt; &lt;/span&gt;contrib

&lt;span class="c1"&gt;# bullseye-updates, to get updates before a point release is made;&lt;/span&gt;
&lt;span class="c1"&gt;# see https://www.debian.org/doc/manuals/debian-reference/ch02.en.html#_updates_and_backports&lt;/span&gt;
deb&lt;span class="w"&gt; &lt;/span&gt;http://deb.debian.org/debian/&lt;span class="w"&gt; &lt;/span&gt;bullseye-updates&lt;span class="w"&gt; &lt;/span&gt;main&lt;span class="w"&gt; &lt;/span&gt;contrib
deb-src&lt;span class="w"&gt; &lt;/span&gt;http://deb.debian.org/debian/&lt;span class="w"&gt; &lt;/span&gt;bullseye-updates&lt;span class="w"&gt; &lt;/span&gt;main&lt;span class="w"&gt; &lt;/span&gt;contrib
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Оновіть перелік відомих пакетів (програм):&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;apt&lt;span class="w"&gt; &lt;/span&gt;update
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h2 id="sudo"&gt;sudo&lt;/h2&gt;
&lt;p&gt;Щоб працювати під звичайним користувачем, але мати можливість виконувати команди як адміністратор потрібно встановити програму &lt;code&gt;sudo&lt;/code&gt;.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;apt&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;sudo
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Додайте звичайного користувача в групу адміністраторів:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;/sbin/adduser&lt;span class="w"&gt; &lt;/span&gt;klp&lt;span class="w"&gt; &lt;/span&gt;sudo

root@klipper:/home/klp#&lt;span class="w"&gt; &lt;/span&gt;/sbin/adduser&lt;span class="w"&gt; &lt;/span&gt;klp&lt;span class="w"&gt; &lt;/span&gt;sudo
Adding&lt;span class="w"&gt; &lt;/span&gt;user&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;klp&lt;span class="s1"&gt;&amp;#39; to group `sudo&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;...
Adding&lt;span class="w"&gt; &lt;/span&gt;user&lt;span class="w"&gt; &lt;/span&gt;klp&lt;span class="w"&gt; &lt;/span&gt;to&lt;span class="w"&gt; &lt;/span&gt;group&lt;span class="w"&gt; &lt;/span&gt;sudo
Done.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Вийдіть з системи:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nb"&gt;exit&lt;/span&gt;
&lt;span class="nb"&gt;exit&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Після повторного логіну, для виконання команд адміністратора можна використовувати &lt;code&gt;sudo&lt;/code&gt; перед нею. Пароль для sudo це пароль звичайного користувача (не суперадміністратора root). Наприклад:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;klp@klipper:~$&lt;span class="w"&gt; &lt;/span&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;poweroff
&lt;span class="o"&gt;[&lt;/span&gt;sudo&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;password&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;klp:
klp@klipper:~$&lt;span class="w"&gt; &lt;/span&gt;Connection&lt;span class="w"&gt; &lt;/span&gt;to&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;192&lt;/span&gt;.168.1.17&lt;span class="w"&gt; &lt;/span&gt;closed&lt;span class="w"&gt; &lt;/span&gt;by&lt;span class="w"&gt; &lt;/span&gt;remote&lt;span class="w"&gt; &lt;/span&gt;host.
Connection&lt;span class="w"&gt; &lt;/span&gt;to&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;192&lt;/span&gt;.168.1.17&lt;span class="w"&gt; &lt;/span&gt;closed.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h2 id="_3"&gt;Не засинати після закривання екрана&lt;/h2&gt;
&lt;p&gt;За замовчуванням, нетбук засинатиме якщо закрити кришку екрана. Це можна відключити.&lt;/p&gt;
&lt;p&gt;У файлі &lt;code&gt;/etc/systemd/logind.conf&lt;/code&gt; розкоментувати &lt;code&gt;HandleLidSwitch=ignore&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;HandleLidSwitch=ignore&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;tee&lt;span class="w"&gt; &lt;/span&gt;--append&lt;span class="w"&gt; &lt;/span&gt;/etc/systemd/logind.conf
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Перевантажте комп'ютер.&lt;/p&gt;
&lt;h2 id="_4"&gt;Відображення процесу завантаження&lt;/h2&gt;
&lt;p&gt;Я люблю бачити як вантажиться система. :) За замовчуванням, цей процес відбувається "за ширмою". Зроблю його видимим. Треба відредагувати &lt;code&gt;/etc/default/grub&lt;/code&gt; і переконатися що &lt;code&gt;GRUB_CMDLINE_LINUX_DEFAULT&lt;/code&gt; не містить &lt;code&gt;quiet&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;klp@klipper:~$&lt;span class="w"&gt; &lt;/span&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;cat&lt;span class="w"&gt; &lt;/span&gt;/etc/default/grub
...
&lt;span class="nv"&gt;GRUB_CMDLINE_LINUX_DEFAULT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&amp;quot;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Перечитати конфігурацію GRUB:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;klp@klipper:~$&lt;span class="w"&gt; &lt;/span&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;update-grub
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h2 id="_5"&gt;Оптимізація роботи диска&lt;/h2&gt;
&lt;p&gt;Якщо використовуєте SD-карту, або SSD старого зразка — раджу ознайомитися з моїми &lt;a href="/2023-04-12/extending-life-of-sd-card-or-ssd"&gt;порадами для продовження життя карти (диска)&lt;/a&gt;.&lt;/p&gt;</content><category term="Технічні теми"/><category term="3D"/><category term="Debian"/><category term="Linux"/><category term="GRUB"/><category term="Eee PC"/><category term="Klipper"/></entry><entry><title>Встановлення Debian на нетбук Asus Eee PC</title><link href="https://yura.stryi.com/2023-04-09/installing-debian-on-laptop-netbook/" rel="alternate"/><published>2023-04-09T00:00:00+03:00</published><updated>2023-04-09T00:00:00+03:00</updated><author><name>Юрій Сметана</name></author><id>tag:yura.stryi.com,2023-04-09:/2023-04-09/installing-debian-on-laptop-netbook/</id><summary type="html">&lt;p&gt;&lt;img alt="Asus Eee PC 901" src="https://lh3.googleusercontent.com/mq2AiEXgARQ4U5PlsKWlL50GwRPF7N-soq8fJhbz6nEJCbBOOms484_Q7kzq69fDLhAvycqOT-JNb_Q_f_d26a0V9w_0jBqjnleRSu_T-n_JLc0UDQEj--4jB2x_nhbAnVcu80uPO69CKPnDGII2mvNYhX_fSGgvsFNS-FS_r3O18vfAC7y9oAKYj2arjGZI_C0hQ3QW6b6NJoo_VKamL1eX-tb2RIgducPnwhPoedzrrC6Eon0g1Gx2Qt0kysr0QArlWuguWpi3z8pS3N7McyeYFQxQIw__-ErpKC3tt8Fj62EYyKvANtWL4L36M_aE7mj1KxVVl-Bs5n3NWho0ctND2VjEQB3a-A3Df7cIWm1OQN6I2lDtHEFegb0pMtVUnSlVn484aijgo5dv7m_Atur6jN-P7Nd7OKQ2nqPksSOmJ7qzg0giVSQ9WJLumb6GRzMIQDSAAPpsBf1mWB5GbLQUCPiMvCAXG5msThpZ5heB_vbCGRzR8V3lIq4dKbo_YM1fAibNqR_nbgeCCT9QQnBmjRnFs26cPjn0ayOfhVPKFOZMP9SQ7fJUmPI3U7T3eLQu9bwrIGi5U4wckGfOY28tcXs9qXDpeDcZwg74Sj1DtqaQaRE_adoZj7bhFYzMBdB_l_fz5vjOZ1CyuD3iZCDKPpU6V2gg6nbmr04l2JYI8FiH9ez8BppY9TgS4K6Nerw20zP4o-oXPWFeCs-nUOGFKzSSyjIZ9YvDPqDhkkoA7Cpi_GTyvx-iUmigv_ADnf5N6vQDRD5xN_GFoi1d6WM8HNHL934s8HXuj9RcWQFfLKG2vrSA3WOb8Ret9FQPhnml2zfguOgAxVJxP3qhvarfGsqMu-6Wgy1y9PCz2BqdDgHMp3iVglvpgYDavukPu1WQU9n77lIQlnD0K51hY9FbKcOL8kstsqD3ELmLj6w08w=w1024-h768-s-no?authuser=0"&gt;&lt;/p&gt;
&lt;p&gt;Для встановлення альтернативної прошивки що контролює роботу 3D-принтера, як правило, можна використати рідну материнську плату. Наприклад прошивка &lt;a href="https://marlinfw.org/"&gt;Marlin&lt;/a&gt; може бути записана на місце стокової.&lt;/p&gt;
&lt;p&gt;Проте, деякі прошивки надто великі, або вимагають більше обчислюваних потужностей, через що їх не можна записати на місце стокових. Тоді використовують мікрокомп'ютери (так звані одноплатники), наприклад …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;img alt="Asus Eee PC 901" src="https://lh3.googleusercontent.com/mq2AiEXgARQ4U5PlsKWlL50GwRPF7N-soq8fJhbz6nEJCbBOOms484_Q7kzq69fDLhAvycqOT-JNb_Q_f_d26a0V9w_0jBqjnleRSu_T-n_JLc0UDQEj--4jB2x_nhbAnVcu80uPO69CKPnDGII2mvNYhX_fSGgvsFNS-FS_r3O18vfAC7y9oAKYj2arjGZI_C0hQ3QW6b6NJoo_VKamL1eX-tb2RIgducPnwhPoedzrrC6Eon0g1Gx2Qt0kysr0QArlWuguWpi3z8pS3N7McyeYFQxQIw__-ErpKC3tt8Fj62EYyKvANtWL4L36M_aE7mj1KxVVl-Bs5n3NWho0ctND2VjEQB3a-A3Df7cIWm1OQN6I2lDtHEFegb0pMtVUnSlVn484aijgo5dv7m_Atur6jN-P7Nd7OKQ2nqPksSOmJ7qzg0giVSQ9WJLumb6GRzMIQDSAAPpsBf1mWB5GbLQUCPiMvCAXG5msThpZ5heB_vbCGRzR8V3lIq4dKbo_YM1fAibNqR_nbgeCCT9QQnBmjRnFs26cPjn0ayOfhVPKFOZMP9SQ7fJUmPI3U7T3eLQu9bwrIGi5U4wckGfOY28tcXs9qXDpeDcZwg74Sj1DtqaQaRE_adoZj7bhFYzMBdB_l_fz5vjOZ1CyuD3iZCDKPpU6V2gg6nbmr04l2JYI8FiH9ez8BppY9TgS4K6Nerw20zP4o-oXPWFeCs-nUOGFKzSSyjIZ9YvDPqDhkkoA7Cpi_GTyvx-iUmigv_ADnf5N6vQDRD5xN_GFoi1d6WM8HNHL934s8HXuj9RcWQFfLKG2vrSA3WOb8Ret9FQPhnml2zfguOgAxVJxP3qhvarfGsqMu-6Wgy1y9PCz2BqdDgHMp3iVglvpgYDavukPu1WQU9n77lIQlnD0K51hY9FbKcOL8kstsqD3ELmLj6w08w=w1024-h768-s-no?authuser=0"&gt;&lt;/p&gt;
&lt;p&gt;Для встановлення альтернативної прошивки що контролює роботу 3D-принтера, як правило, можна використати рідну материнську плату. Наприклад прошивка &lt;a href="https://marlinfw.org/"&gt;Marlin&lt;/a&gt; може бути записана на місце стокової.&lt;/p&gt;
&lt;p&gt;Проте, деякі прошивки надто великі, або вимагають більше обчислюваних потужностей, через що їх не можна записати на місце стокових. Тоді використовують мікрокомп'ютери (так звані одноплатники), наприклад &lt;a href="https://www.raspberrypi.com/"&gt;Raspberry Pi&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="asus-eee-pc"&gt;Asus Eee PC&lt;/h2&gt;
&lt;p&gt;Коли ж настала моя черга подумати на чому встановити "прошивку" &lt;a href="https://www.klipper3d.org/"&gt;Klipper&lt;/a&gt; для 3D принтера я згадав про старенький нетбук Asus Eee PC. Відверто кажучи — одна з найневдаліших моїх покупок. Дорогий, повільний, незручний. Але зараз, через 10 років після купівлі, замість того щоб просто викинути, його робота у якості хоста для керування принтером чудово себе виправдовує.&lt;/p&gt;
&lt;p&gt;Використання нетбука чи старого ноутбука не завжди виправдано — вони великі, інколи шумні, споживають більше електрики ніж одноплатники. Зате мають екран, Wi-Fi. Якщо інших альтернатив нема, для економії коштів, старі нетбуки цілком підійдуть.&lt;/p&gt;
&lt;p&gt;Asus Eee PC 901 має процесор Intel Atom, 1 ГБ оперативної пам'яті та 2 SSD-диски: на 4 і 8 ГБ. Диск на 8 ГБ успішно вийшов з ладу (тодішні SSD були дуже ненадійними), тому для системи я використаю SD-карту.&lt;/p&gt;
&lt;h2 id="debian-linux"&gt;Debian Linux&lt;/h2&gt;
&lt;p&gt;Intel Atom на цьому нетбуці є 32-бітним, тому для нього підійдуть лише системи з архітектурою &lt;em&gt;i386&lt;/em&gt;. &lt;a href="https://ubuntu.com/download/server"&gt;Ubuntu Server&lt;/a&gt; віднедавна випускається лише як &lt;em&gt;x64&lt;/em&gt; і не підійде для цього комп'ютера.&lt;/p&gt;
&lt;p&gt;На щастя, операційна система Linux &lt;a href="https://www.debian.org/index.uk.html"&gt;Debian&lt;/a&gt; (на якому, до речі, побудована і система Ubuntu) досі випускається  також і для архітектур i386.&lt;/p&gt;
&lt;h2 id="debian"&gt;Завантаження Debian&lt;/h2&gt;
&lt;p&gt;Усі можливі варіанти системи зібрано &lt;a href="https://www.debian.org/distrib/"&gt;на офіційній сторінці завантажень&lt;/a&gt;. Нас цікавить варіант &lt;strong&gt;32-bit PC (DVD)&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Остання рекомендована версія Debian має назву &lt;strong&gt;Stable&lt;/strong&gt;. Зараз, Debian Stable це Debian 11. На сторінці з &lt;a href="https://cdimage.debian.org/debian-cd/current/i386/iso-dvd/"&gt;образами DVD-дисків для i386&lt;/a&gt; файл для завантаження має назву &lt;code&gt;debian-11.6.0-i386-DVD-1.iso&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Його і треба завантажити. Версія, звісно, може мати інший номер.&lt;/p&gt;
&lt;h2 id="usb-"&gt;Створення завантажувальної USB-флешки&lt;/h2&gt;
&lt;p&gt;Комп'ютери, звичайно старенькі, але навіть вони не всі мають DVD-ROM. Потрібно створити USB-флешку з якої можна буде завантажитися і розпочати інсталяцію.&lt;/p&gt;
&lt;p&gt;Для створення завантажувальних флешок раджу використати безкоштовну програму &lt;a href="https://rufus.ie/"&gt;Rufus&lt;/a&gt; для Windows. Флешка має бути хоча б 8 ГБ за об'ємом.&lt;/p&gt;
&lt;p&gt;Виберіть iso-файл завантажений раніше, вкажіть Вашу флешку — і через кілька хвилин завантажувальна флешка буде створена. &lt;strong&gt;Увага! Це видалить усі попередні дані з Вашого носія.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="_1"&gt;Мережеві підключення&lt;/h2&gt;
&lt;p&gt;Переконайтеся що на нетбуці увімкнено Wi-Fi: синій світлодіод повинен світитися.&lt;/p&gt;
&lt;p&gt;Якщо це не так — натисніть &lt;code&gt;Fn + F2&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Увімкнення Wi-Fi з клавіатури" src="https://lh3.googleusercontent.com/xHDQ9fXN0HZE7CIf99n9SPZMZH5lKLKKTyRmzCmH_wLRGM1YSBpyqMIAdLjjomfVECwoZm8w-ZIqh5hAvuxbHYzIwtdHYLbd1hloJUWWLikNPjPf9rvf0eEdEFruxqfhDq0ZXSWg-VxwUIuVLnEDUWvjSk_3qau2OvRtZUi9vH_uoA-OdBDVDW_BxXU-tpNasGrlidCZSOF_9i3gKSrRFP8OKqDnpCiIv2Slgd4R999u-DMsxFJOtUp5KHusTX1WrOt4bcoDxmrhzJ7YGdgH0hWi5a2aVWNZG5lbZHNkbKfGw72nXehgM3SJ8V9dcsjpPpKlJAqccdN_5WMIZ9Xv1hn58p8Cir6SfJYFXoA8ZfD2v3Zl48ncWGu348kbQ0fN6z8EroQOSnyvZT-Ryn0_RlAIh99JYdapPkHbfqHVUNZABQZq_dbj8DTKmPWjdfwNfYUZh73ylXttzXKszen1qakFUQaa4EsOJ-hz7a_kyMqDgdY_zhM8MqJm1AvXE4yNpWD5vZwmsDW7IZhEnTZPc0BTmgf4c2YLhTuwEqb_pa1KLXwJAvb6lia3uBitDiysVp_WeVQ6T3j2HW-dAx0KfypmxV_soMoFIqZay5fSEk8vb0qo-TbFIDnyBihUFS20oLMpg7FqXcWvZBys1eb2huz0XS1JPJ-8wimxR6E8kRLlq9PLIcE7kYxmOMvUowbbRz-eUwWYy1OLLKxkWLOZDqzIOAEUlaDY8zQ-yhzRZoYcgBj3e3MbRkDMrxtpve43ghn_yhj_pzOY051tynxaP5f-xge6C_hrXyME9pku5EAwMTO2pGBbPvYO5-eI39kxhqiAPyDr__ec9cwvGbHocZw72C9lzhradqXuwWTv6g2_OWHzGlkNAqYh43aEfDmv31Gm_U5BQQmxA5hqdQVoBbHRduySzEz_MO6uoDQWr9-PEA=w1158-h820-s-no?authuser=0"&gt;&lt;/p&gt;
&lt;p&gt;Якщо не допомагає, відразу після увімкнення натисніть &lt;code&gt;F2&lt;/code&gt;, щоб зайти в BIOS та переконайтеся що у розділі &lt;strong&gt;Advanced -&amp;gt; Onboard Device Configuration&lt;/strong&gt; параметр &lt;strong&gt;Onboard WLAN&lt;/strong&gt; встановлено в &lt;strong&gt;Enabled&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Увімкнути Wi-Fi в BIOS" src="https://lh3.googleusercontent.com/AdhL_7eBCDLd-PUDK5CH_HK19EIRNmUeuILO3Si9RyGrPgtj6zD0s6ZbIoEPEmOFeiBVu1emZAEBaUM8HhcQ6TPGXL4SSuairfrN8DmAqcPqvLmY2TyJcZnRKaoSR0wVdt9JvM3MtmlDW2b45f7JcknWoFb-TMMw0EKJiV9aVcJYrylKKX8ILZQMPDusIbqIKrtghyQ5H06MZrN4v4fOCR-_0rEtXjb6knqP4YiKXRCeQdjZu1KlHVOdYuycA_0JXFltAP3AL6nX9U0X4v_K99JaNIKub8SsCCJUK81ja-4GQup7ro4Rgfq6-NR4_PNYUIJz_WxlJce4W_ZbGCwCmHxtLxTnOoIkYV_J6ZnLz9ikiRc_dy5BtnMI8kqcngx75A40QWA36XOXp9v2M0B2UV0-7WpdSG6YxSoVZTCV_9Wx9gyuPPXox-fhjkFpnDi5p_LEXrE7H-f7HTfmCJUOocBXwfTIOKzn7O5mGk5hpkmT51o02PKgzZLXUojCeTMLg0XTLbIIanjByhrlJTW1Lwr-J2vGLIeoRbGF_uHiGfaUjs8MvkRPTatxDDC_3NABu-TwYFOZKQrF0QgwoBCa69zlwWeiA1cxJ9zo1VPhwLevK4TyDh3_DKzSKr9tEbBiRMXK311nFealDtYsZyJJOMa2aBuLzgFeEQCSqBd9pfxiaUKfCQXuTtCXguc7Y4X7RdCGEne7yBWjeyFY3cxZC7quZdt9-MdJdNh-ro1KgMGs6uQf4n84w631sDvlur9JEq6cYr_spHJaZT8SB6yHdWOxRzxUv7HubEouqAODrI0VjW2NYSGNs0MVJzkH7-gEnTOgPdp2-p4nn3JKrVKOsg5BnLXPlE0myYxSLHCqIBUxajqDGxZFxNffqzl7Wze_capdG2aFQIiNaRDy4dsYn2VA5z0cBi1XAHzYw4pCz9uOKA=w1666-h1250-s-no?authuser=0"&gt;&lt;/p&gt;
&lt;p&gt;Або, під'єднайте мережевий кабель в порт Ethernet, щоб використовувати провідне підключення до мережі.&lt;/p&gt;
&lt;h2 id="_2"&gt;Завантаження з флешки&lt;/h2&gt;
&lt;p&gt;Відразу після увімкнення треба кілька разів натиснути клавішу &lt;code&gt;ESC&lt;/code&gt;. З'явиться меню вибору пристроїв. Потрібно вибрати USB-накопичувач і натиснути &lt;code&gt;Enter&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Вибір пристрою завантаження" src="https://lh3.googleusercontent.com/ouedXADSvky1Sd1CrZd5_-9h_daAF7SwvCfbLnNIrMSklQd9vS7iiUspuHdN1YZz9FtnmtYnVJ4IbLJ2FOJri__VeGygLfCH2PUrMQG4HGzEN4U94lwnuLVnPTsJMmsZ2gjqhmpO5XmQl4wmk5Q_4h1kS2ePlaU5L0TYv-QDgai2Ta7bVcjWYLGk98z3ySKiQaeyxwBXl7KNXhFplGxwxnBxzZdYFPKWs0iMjg-LtkIZBEcJM_KB2gc60apO4CZDFgFr8tYGILy_gVuEzJew2v0hF4hcUrTM43z6bKGOUxUb8hZeBtGnpWraJdo-Zpv5Vcwu11d-HBxbzWylDpUOfr_dcKtJX3K4po58lYboHqvoY-Yvj6QL3WdCb2GwkB7VXmbPGltwwgH80YENP_rs-I4aCI3_y-iiNdiSk1MAxkwl046SStrTtN-o7yg1D_f0ch5s1p969l6PycrZRu0NWN2cNQCQ1noVcxTR2kqyY0qdIs_h4JTVjdDK09fsyLrp5_L9GW6YKojF4HmSUgdkWl28mY0vcs983PvfQz1YR8fXlyNSxVGxOFV88Y9uBvvDpD49fe2BqZ5ADZuzx7TAa0CGRl4z7Sd67I-xTuiYN53ySyrRZNF0a2z1uM09YBYQeOdWJUtC-VJGe5TfMn0zAp1WV0aJHYto-v8W5VGGixK63PApPUqh6BMCemLln-mmcndyzp-DMIMJfCONDliJACxbX6tvUzSkg-VbIDN8ODI8RJhAqVgGbaibQqbZ-trMq4ZaRZd-4eaysLCFFvlo2ZysR8C5VGJWHMBr7jDmIxtXxdARExY3SzHQQMdciur5PhAwlu7YFI5wE-p-i5-RItzsez-4Dic8hTF7yr0uLbmpsXeLLULP8HivoO8s5jFVs3K_VgxYn843tIbMRXLYEeNMjc9_76NaiNxgfunszvMUFw=w1666-h1250-s-no?authuser=0"&gt;&lt;/p&gt;
&lt;p&gt;Якщо Ви вибрали флешку та на ній правильно записана система — запуститься програма встановлення Debian.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Запуск інсталяції Debian" src="https://lh3.googleusercontent.com/8ROIV6GVmMP18SRB28dsaCKC0iAEfMMhdVxFKmWUxV3XyzsDipX5H2P7gaucppY3Dw40noVE31tQgeB4vZjpREn4rapudC1HtEmcyB5ZeK4_yx8CPqT_yq20BTHJUuktDMNg1gx8ySQQ6JPzZxZ04vzD4uURd3GS043Cuky23isHvwqXP5GKtOp33FlG_4ldtryZ6GadL6VfnZQW8klgjwQ1Ev-RE0jjBEd0XCOEG5oguq9JFGrfZ3YGtwYJGhJi3iE8tjP_FxVNOz7NeGghakMoToh_iNK7mA_ntoDv5UYMz2sw9Bi6QT0MvOXgnXoZ7IuOx6iXJYwKjeOVPKkaPy5XrXIhh0SfhE3JzHh9Ailkypv7h6UgrpX-y1KGNys4pcktiEoDxtVcOO3V7vxzHqrwyl0csojUsgVlfcpVDXc7nZToMsmhpblalDUid50UqIC7IlELZJo1ON1pDimiApyZ3zYB2QMKf_vSVtYH9JhhsBW-_LyMlRGBJ9w3XlfyzbKuNddF0RK7txgftVE6t8jb6aK7PF2_cv3I_M_U_egn3jXr7LorEoGPrtiCwVTXrorZTRMNYePchBuTBFoCSoXWFfWQh0Vit-8UiAGy6TTWm4qbBTLjFnQM9b13-nkXK9Vl1FmLv1eR3oHGLFiYV2igzujEAvJq6v_QFRzXZorEhtr05zd1vbE3T_BeyPTXAwgItltYXYaVE5URVQ_BTlIm7aWX0m8ifjwIgm-PbGbA2qWAtMmJLKsmP3VBeLblDMzPeuudT6oQwlK1mzx5pvoEHEmkGL5a__2xcihX9q2Gw6DoHZc5pSmYB_88NI4t5jZc9It556PF5DpyqgSLBsu0l7Fy8vz7OmnThpRfhf7ZJ1YDMIkictge3To24QQR_zH3BzYkAH1QVNiBDsdIC2uPXR3cvnfZ-jaOy5TZolbfWQ=w1666-h1250-s-no?authuser=0"&gt;&lt;/p&gt;
&lt;p&gt;Я вибрав &lt;strong&gt;Graphical install&lt;/strong&gt;, щоб мати можливість робити скріншоти, але простий &lt;em&gt;Install&lt;/em&gt; теж підходить.&lt;/p&gt;
&lt;h2 id="debian_1"&gt;Встановлення Debian&lt;/h2&gt;
&lt;p&gt;Деякі, очевидні кроки я пояснювати не буду. Наприклад вибір мови чи регіону мав би бути зрозумілим. &lt;strong&gt;Ukraine&lt;/strong&gt; знайдете в  &lt;strong&gt;Other -&amp;gt; Europe&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Я використовував англійський інтерфейс, хоча є можливість перемкнути мову на українську.&lt;/p&gt;
&lt;p&gt;Якщо під час інсталяції якийсь крок буде незрозумілим — як правило можна безпечно залишати рекомендовані параметри. Просто тисніть &lt;strong&gt;Continue&lt;/strong&gt;.&lt;/p&gt;
&lt;h3 id="wi-fi"&gt;Драйвер Wi-Fi&lt;/h3&gt;
&lt;p&gt;На кроці сканування мережевих пристроїв інсталятор попросить драйвер для безпровідної мережевої карти, а саме файл &lt;strong&gt;rt2860.bin&lt;/strong&gt;. З  певних причин його нема в стандартній комплектації. Але він є в пакеті драйверів з так званої &lt;em&gt;non-free&lt;/em&gt; версії пакетів.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Встановлення rt2860.bin в Debian" src="https://lh3.googleusercontent.com/KXjaUmhBufFw0taZ62tRTIlgKz1R9q-IdtGO97ohZaoPPVT62cjnjlVJMIqn_lOu2zv0iLPyz0zB5bn_pT9Xx0OD016QH8DOKB_qP-SDN7EG9zJ0iGKq4bpZZMLomj8WKNOPldOiVVfcZlc1WcUeCrD5WFqlTrp9IWnVJTz__C3ReXqvCJl4JnqrWFGJQmp-_-KAVA4x3a6Se7Mbc45rzQLkAZ2alrttalTF0PVsMQOTzM6-ok2ZteqTixsiDFwfQA6-Fpel-NAdjIz_ycoqBIDhdu5-6UOkOce8C3v6kZ3ruqF9_UYD5BOEd1Ki6Mcc5riSw6GvyLF2SmdXJfJCNebSRN3A8U3Pbttg4Nfu2k-8EeRZvZ93Dd8Pr1263uSFzI5rBVd6PVb4zV1nmzxvtHyLzcOEZKVeRVf0_e-0oLZMsyLLiMivyk_mWQT5fk6_DVqHgJBbDsqfOM7P_qd1UfCsm6S8uGww3diD362cVyP1xKd7Lidmc-PQSykCCHF86kUQXMUxZWLqvQtHibvBfNijQ7ovAVG118mXymm-OOn6rAgqV4-6xcM5lGE2YTRkMdaw_ve0-w1vaEajhGY8Hs55uRQWpwKpkBZWVbZg-5W9yIXjBUyBvsyDH-ouutj62etdgd8XL4IYjMX9Z26K5SJ3ZHUyZIAOPmSwu4KCq14mFxo21k6_6GMRnHmYwojk2_SBnj_ZMi4mYIAigEPCUjny8IlD0SAGIkoGIWKBjWnMx8nDmH7wLkmHBC6hAylfXSO-AfCCp6eZHCK3SRosrmgZb2jl6sq6KYa8YeBCOT_koZm88mHLzlbpP_lic1ZqknOQ2h6H1L2gfnS8ksEjboFa7uHAtaphpC8Adv-krENHo1mY64_6GfmBhMqlm3QMHB38GwDyhXSeEVOfDwCSpNZ8xWYGY-aT5YyaLRYV2Bpd_w=w800-h600-s-no?authuser=0"&gt;&lt;/p&gt;
&lt;p&gt;Я встановив ці пакети на іншій системі Linux і взяв потрібний файл звідти.&lt;/p&gt;
&lt;p&gt;Якщо не хочете шукати — я виклав цей &lt;a href="/images/2023-04-08/rt2860.bin.zip"&gt;файл в себе&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Завантажте, &lt;strong&gt;розпакуйте&lt;/strong&gt; і покладіть файл в корінь &lt;strong&gt;іншої флешки&lt;/strong&gt;. А цю іншу флешку запхайте у вільний USB порт.&lt;/p&gt;
&lt;p&gt;Виберіть &lt;strong&gt;Yes&lt;/strong&gt; i &lt;strong&gt;Continue&lt;/strong&gt;.&lt;/p&gt;
&lt;h3 id="_3"&gt;Налаштування мережі&lt;/h3&gt;
&lt;p&gt;Після того як інсталятор "побачить" провідну і безпровідну мережі він запитає Вас яку мережу використовувати для підключення.&lt;/p&gt;
&lt;p&gt;Для кабелю — достатньо просто запхати кабель і тицяти Continue.&lt;/p&gt;
&lt;p&gt;Для безпровідної мережі виберіть зі списку &lt;code&gt;wlp1s0&lt;/code&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img alt="Вибір мережевого адаптера" src="https://lh3.googleusercontent.com/ts-c3c-EnxmAZw4yysg7vd4fJn40D6W89N3NuJ44mS5wweF8YkufiKe2Hbs1ubZ__8P5rI40Oa7VNHUxP67UR_4aPFIINZg6P_R-xMcf6acW2HetX5Z9f3AR89iVyn8EHUvT4LhHa2fWj6YVzC1fpfzcgoinRfN7XoEnphYdw2E_J1d-2DG4hnZFyEqhqFn6gFcBln4LvrgLSpTeQGhP1CAApcmtzEOteZhbf6g_bQUcR-PJ8w0UK0Gi4llfuBKGNcnsWCAybaL8ILiUeivd5cuQ-4atNNZ5Pn3jtro8XG69hpNZeAAvS-ceTHGiKWBbHkhRXuOK5WAzUfRLdrHchCH5it06-rQ6lokjs5H0OwAElHIb9SwI6lGVAHHwwZVbQLDcQLghXwpPNugTQnLESnL50f289dRpemnzMn95V5T4OK52dIVrGWS3eRZAkzcuU_JSfAdRAUmmngxFust8VYvNus5-GIgOSyowoC-ltVavr4YDVbxURTwuVH4oWNGWHfalwhNZayUkuWcLdY48XzbBaDBLJ3kzf59svqScpuExFyrFO36J-Y7HYrl3sWgq_ZdnaBahZXC-Ce8oXryYRpGIOO_k5PLGZXpTa8X1hBpIOkxuDheb5vMRICgVz01nAZsYFxxgcW0edUBf27UOfzxDCghoJQ_-hVRlsN7oj3zlc5_4fk4KluwgliqIBcIlvp15A3pwTlJ_qzX5RMCJJaxY5qYuZQiVED-CRSg-LXyYRhqPnXIVJbMDWxoiEt6ZqFvC-vXrp33vuVocAXbpdXa29WBjhLyB0dDcs8GmeOYoN7PCwvXJxx6F30MK6e9RIoWy8HibF99dX3T8oc8uLoj_9aYeF5FxFVR-iiGY_DJ0SGJTuShRA7GN92B0j-331yn2X9-JtiDLJhkTwSLcaiqr11ts3IDqQ5AvU4jgCIR2JA=w800-h600-s-no?authuser=0"&gt;&lt;/p&gt;
&lt;p&gt;На наступному кроці виберіть свою мережу:&lt;/p&gt;
&lt;p&gt;&lt;img alt="Вибір Wi-Fi мережі" src="https://lh3.googleusercontent.com/dxb3kRgSrllBakS2fRtY1CokurzqFCaadf2es223CaSgG8N3uKqE4WiiMrJwwhEBt6yLbQNh9DM33cFq8Ie5R2rbWXoyWV92XekbH5rJYVUOSUG-Mq9xUaxwWeMDfow8Fn51MkisQtF7xhMGdL_r-7YExRN7zEZBsmMOHumiFV03i2Sn5UCKPZCyiweRJMTtAbO4OJYjuNmG3Biud0GyU6x2cRBxdzImCsr4ruVWOwgCIGEW6OtWepC4hn8E3MK80-_KCiFFn9cv5-07yh4ZxC7sMp8B9OUFoD7YjGWFIJk1rfg1AooJCw4CvBx_BC9F2LkuImkAyUgBrU51d50n0uy8s-lAbw89MQgcb84ZO4m39Du4Hg4vkInSHwcZvUUiJZONc0LQzrRznUSLrMujR9j-mEDmiBNungGYIuD5bE3xxk0v1Pj0YFJley5fWXKaJ_bonb5Eg2gjfpfsRESscaXmh1plUX4womLTOlT3w7pC-fsFY60cq764K-WaUinPWCxNNyGDcp-anDzRtJGYwbY0IRMaywEjLQQUCbD_gjLYgvZpcAOeE7uFWP7c-lkXjgu2gTYOjsQCXy7Xj_bmpgXM7QSloixRbynHeKWJ12q1AJMkZaTGXEwYnt0GPZifL1GlTAbvJYFnwed5KnYwQJBko6TyXzzb7qFDG-3CgLOWerl6wWI1QBUxbM8jp9kt5wUE5mgb7k3wvl3tX2toIxS7psGq_Tgp6Ucq3tXILqRhgnogJhTzOQW3Ya_EM1GP6m5DispUWfgLX4pXKzumrcodAe7rQnPQnkyoRsBrp4WRbLi5iLq7bxppJ9sBvIEW-S17FWRHxRlJ3ai66BHOCXxsguv_IGAxt245VejGy2gHrKXy9y6QBPC9WRh2gZJvFG5-ueDmkbzGTKgmPxLaLDEsIqwaviUekyx-Y02HwjB7rA=w800-h600-s-no?authuser=0"&gt;&lt;/p&gt;
&lt;p&gt;Вкажіть тип шифрування, як правило це &lt;strong&gt;WPA2/PSK&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img alt="WPA2/PSK" src="https://lh3.googleusercontent.com/q6jfv3nXbLhKvoK0X3i_doc3Yow4iWYyMZ66j7osKXhyMPjex9qBsSWonZG7RP91BYVqKHooTQB40-EI5YzhUe5TXeWT5GTn8oKTKg8O6rP9an7l82u3v1XJ457IQACpN5BiPAJYA4q-0gkY3xYo_bQpYScCyHJtbqex4ydHz2T9CZ5f0VUIccpR35sdGqOQPScLC1Rk62dcu9bCScAn67G_nJUnl34QB6fE3MR8xPyv01pUoo8GJf8i1dWpOVC0lNTsCXaiTUVOa7tBo5Z4UFQa7B7gY3maqNHCFtEXJ6BUjjVm6MFa4C7LtDyRVrFutkAPCMFZKLTA28FO8w2RhYbBzzu4qhsdR0-RCBDiXsMDwFi8kYNcYFfjCqWJZAK3mI81gnRW5_291IzIFbrkM9kA1MRjbFr_PsklNBPnHSDtQ_VKlGzpcRlg2krXNaEWpooR6WQ-VdxavKfT-kAzBj4JLlkc16CP0_Unz068DMNGJ39QGcvYJFdaa956pB2kIV8JhVREfIwGT8IYVIjwZamPr-RtmILbbagCSt05l-8PVDGmHXFucabcKonzoC0e7kRIcGTta3f_W61wMMlGyQef4UUTQBgutb7d2QxLvLPoNwlTavPy057-z2kobOaqsb3n4alVdWxcB7h2eqo-1cPECPrkuuwnZ8VCAjUIuBI9EM53gAjDoCbau_Q5fQiviL4eAXx1YlHRRwgFjqCM1Q6OXl1_VP0HCfZyZYpnJ-bC8grQ67aICzb6bPjXWjPIf1AXRB47KYkgkYAnLmX8v3dflphTQxI9BComukRqjXTMMzos8hR5J7zIMCqdM-Sf-faEIXjbabjlnGiqwfCiFlFnzftRCJ3Dsb6NX5Xa3ACV1TU5lqidWr5tfcvDMtPLYDK58hQ7IJCxl0EPCQIgo8PUhK42kcBBXT1fUcwW-_zBGg=w800-h600-s-no?authuser=0"&gt;&lt;/p&gt;
&lt;p&gt;Вкажіть пароль мережі:&lt;/p&gt;
&lt;p&gt;&lt;img alt="Пароль Wi-Fi мережі" src="https://lh3.googleusercontent.com/kX_65IEuJkOP0_4G8930PYAgQAT1mlN7k6yepYQj14Dc2SxpV4ShItzuvt6gqZ3R46-6rQBrxl7JFIgS9oW9vw60THnYqiJqu7XXcBKgTbV3usn0_EgRa9_j3NwOOBnNo9acwJuCKac8nOo7r40WflsTb-yrSRS6dSAICvDtjcnTUZUfbbJDlOQQWb9c58ciT9jFYp2YAaGtz6IZSuBiZK7cI82LSkLZ7nNluZ-HPj5J78HjlS9FnKWJR7RJAsT7zs3TajO2yJFqOokYXkNYwbav-Dct-FiT_2lF-k1pwL_jNyfs2VVGe1DuEXYYF4uGTW-Y6tPk6PiANWl-mgLr_Tuj3Pah_4nTwwVI8DhJi873wdhFEAok2O1y9VBBSE0fqtFoSTgATHKPwMIG1d2xWLxcuH0x6PohxkiYKy0aWoIs-QG4FVqTeMHZ0HEc4KJl8KkZUkopDp1oUWHuHWF3olGLTYH6oGNMfCcpa-VkakuSUS8jK9FaV3p524h3YKQCvzWCqjzlbHFds2mdaVriXwq-PJAtWeb5UfSnXBc89lxN4bDwZ90Rd2s77ggjtXxYkmNNLNqdMcAEVveD5xoF75-u8RoSfzXPDAlULMBNYpiNsl-a92DyHgRzSWa2QvhwaWJu19aYR62TjaZNHmMKQg903Fpp7t6jDaHn-nn13bbza-B0AXSxzPZ8ZodamVZunrrwfFzxu9W4hkqhpcaOb_CyUVWMM_-eppTRqJHNqOymGuaTdx99cZ4pbDyjxQwIRXd57MSD9-sHapavkLoE0KlxF489wqZzDT9yWt9xNnB-h-PIVy5DaGNY5f-CR1b49wtE3RNrGMrN2xzkKmyHRh-Yd_XFkSnRTh2p7-BNVT4H3OAkAztf4vpJq3kbSSa-0ypZWutxxeNujNlhODaMBtMwf-5NfWuhYRyU6yE6y4JnZQ=w800-h600-s-no?authuser=0"&gt;&lt;/p&gt;
&lt;p&gt;Параметр &lt;strong&gt;Domain&lt;/strong&gt; можна залишити порожнім. Для &lt;strong&gt;Hostname&lt;/strong&gt; вкажіть назву комп'ютера, я обрав &lt;code&gt;klipper&lt;/code&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img alt="Назва комп'ютера" src="https://lh3.googleusercontent.com/eh1sqOg45F5J6qgvD8hngpDq048hjWNZAIrBTInevB-f2_urNMN72-N-FofI_cL3P0vgQXlUTz6_7JiCooNw73TH0uOjXoE19sCVu6gpNC8ekIYFe3OgEQriBCu0I0VZJhwdNsRb52tIBNdHuGkZLujDmGpamNkqz1zDi7aPS296jMqkug4akh5wQk2K4aG1ilX86SQy9KSvODmFi0VL4H69-GdcgdvW5Gimqf_9rk6sqvKY6-SS0MyWbFHsYuPYK_Z0pUA99B3QhFAIpCIIagz9l37MSteO4WzmDcb-KKHjIX9WEbj7NuEdd_qMbFDmZqR7tqSkgQjRrgNkCYHfjkmpOxK5JQVkh3tOty2trsBUsPxbeiuSSon7tT_T6_CqZry2soON3enejUccjen66b4mdM8Ja6C_iEMHPr1Q3ZgzyoJj13jGInvmfg8fD8SnJDUl9m2fK_Ma86qlvH8JHZJZviBcoELGakD821Y3EHi9rqA8skHxzQiBv6qCw_PFXd-TqwWBxfikebN9zD0wE1K6mqtZ4Ltul41AIuHtxZNLrhP4Crrmpjlkjy4HSWRnxezjbqKRdUZfGCqBhi3aamgm4W0Y84-mQqNDT88ic4VfKGkaWl3sCn0yYa2QGwqCie3R-_7VGJvFSupdpVXjvp_mDg4Mr8A2hDMNVjGSRWvw1bsO6pZDgwx1A7oaTZwLME1OEai5zGJPGf6-8XjgyLz94QHA-2ccPd9Iqwaa0i8zfoSCgV5E-QUkHQKZaOWuUoHUb1lWgK0P_qnwxMw9OlqahASB6TOf5wwUVyYHUBw6cZfY1-WJY6ES40tZAISa1IcIx-KFcWiSqQxbMHy8j24nugDnpQnFVZLID9UMi4W7rCy3GclJZUc8k8T6CjusL1b0ZWCoeyYHi13FioXnIqfP7ctDEVDpSfLASYQARLMSJg=w800-h600-s-no?authuser=0"&gt;&lt;/p&gt;
&lt;h3 id="_4"&gt;Користувачі&lt;/h3&gt;
&lt;p&gt;В майбутній системі буде щонайменше 2 користувачі:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;root&lt;/strong&gt; — головний адміністратор комп'ютера&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;klp&lt;/strong&gt; — користувач для потрібних систем які я встановлюватиму&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Інсталятор попросить задати пароль головного адміністратора, root:&lt;/p&gt;
&lt;p&gt;&lt;img alt="Пароль для root" src="https://lh3.googleusercontent.com/qxbVnixWgV87GF8N6lxpjmgt4RWEFMzU7rgvh-ckPxsomrZNUtwkYX_z17Xjv-JERk4i7ten3g3sYkovbccCzcWTCScno21U_htiSM0ZMqoyfi3BRhR3YaGDYra8LNLe0IUVSFZAr-_V5-REtIwasuZwBOVqo1PiXK_ugQyaw-Y-FKP3zilwfdcqe72SAMMBOHaDSuTiPvvFdv5b6XVWhxOaoPpbVfoYEKgqxIFj6DwZem6C4JTlx7GpqCf4SFw6bB5J4cp83kR8IMllwZLehG_Nev5VNMvSffFYfwT6KkfWhZB2nJ2yZt0-uy2vI6SNC3j9sf3dWhrnmYTs0ERb6HAKB-r7kJ0yN1edtE_mxYhY1TxZ59YCnhQtKCd1R7uWH3u58r5llTyx40cAFz5lWX3dPN5iZQZ8QFQ9P-TQBMAeReTwlr_zPsHKx43fRPFDiAvUCSQpf1s0xhZynPFqVcRSDxUf2JSFxJE4_EBOovxV_OSVRL5ArxajQRnqO49Y-3U9jT4O5DkFP3wGPBXP6g2VbytLCookKNyFPZok-QyrisMwLCS6M5-vCPlzfVnS4fAXd7XP1iw6QBKa73OajqW5n33H_tMWXmcw36DTNXuv4QEubZz_KrJ9iZHB9v8q_Y6D3ADRNM9kD62Tcs5St4y90kdH21bnGsNPrgST21Z0M2ZtFasmSkzqKIYsqZNhDpJlOCjvtQn0CITInk53gq8UijOZ0mno4NY0SBUTXQ4LuNYqZdZUO5lxfeuqlZujgVjbxAyNtPDht8QrV_lIy5K0csGq8s8jzvFlmJxI2QkzeJqVieVZzWFbNcRO4XEm7PRyLuQzmTxFgxiPPTEwyZodxsh0vyHxUdg3lzJEVNWaqpXOVA-gM7NmP-RW4wmePxm7WE4AgdKNUk1HjzAiCJjI_sTTFrnfFHtRNQEP-zsLbQ=w800-h600-s-no?authuser=0"&gt;&lt;/p&gt;
&lt;p&gt;А також придумати ім'я та назву для нового користувача. Це може бути "Yuriy S" і "yuriy", а може бути щось коротше та однакове.&lt;/p&gt;
&lt;p&gt;Нехай це буде просто &lt;code&gt;klp&lt;/code&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img alt="Новий користувач системи" src="https://lh3.googleusercontent.com/AAsv2Vm79gzSms6jPRhcjmhwtrFatmvzRiyZixRS95cQ5qXzZmXty7UiS2QVcupi5IGnHcK7pyGA004-oarAQBRrnr_7bMw-lglaTQ4rmU-2LE4zku0X_NeiLfUw8-Eu1ICNjTSQwYe1ep2PD05Ex2aAURDvb-n1TlokpuvhVY28vpEuzJUubYsH5cuIz1Kityk5dqtJLNicG-1KP1MVH5iq60PoHUW62IgJ55z8aIsTG7bgE-hl2a4rdFjyAbMCN7k78wuJBmC_xo5bJ78-XjXziO_megIRrY6UCVG8_R9_Ckbao0xK1q4s_C3t1Tj9urpQbYI7Z3YCcCdomWxqe9QtOcjPO6lfQ8EagCpnyJGvKUSF7sXQYStJa9J15dsMM-6KTdqjDpcC7rRs7gjA6gU_zjMOLCxDwTR9QzoMB-uanYZERvebB5M6HAH6hJ6hgbOCHqWMB8RtVpFOoSGDyX4kaIorYMuQE4Kix1iODPS6LdxiqM409CsMqNIaipPTpluBO4whZpQEnp3DX98xgEXTcH8zu2Wg1jxEfhXF5jtfaGXSwg6NsK7uoAAX8WYMKtebnOk-SFksLbtTldVD9GD0K1q9By3Nf7aqj_Mg4LS45qgqFBxg3e6nXhmfex3QmJPHzJIDe8ihm3ReRggyeLAAogbqOXtDtBvT0ZRD7cSAflIcSAq2mBOxrJX28Ojsvv3irdSElL1_Cu3TsaHm8kPXxKhvyYJQ812ipNkDdCQLLoR8nHAAwSQXzV6DGF6_keeAJ7zFuS5jDsSyBIcoW2fC9B_ABuIWgjM98ZMFt6LTZ_5x1r9FfzWNS2efx57lsaOF9ob-ZU4lyCbLMejz2DG22GPxcwLnY9tq1fwAkeUMdxDOi9cL3OlpxyW-13gqj4QtPnEJf6cr4V3SPeez8k1z8bq_hlU_wJ2Esc-daRf1hw=w800-h600-s-no?authuser=0"&gt;&lt;/p&gt;
&lt;p&gt;На наступному кроці задайте пароль для нового користувача. Правильно буде використовувати &lt;strong&gt;різні&lt;/strong&gt; паролі для різних користувачів.&lt;/p&gt;
&lt;h3 id="linux"&gt;Дисковий простір в Linux&lt;/h3&gt;
&lt;p&gt;Важлива частина. Якщо Ви не знайомі з розподіленням дискового простору в Linux це може трохи спантеличити. Тут не буде знайомих дисків "C", "D" як у Windows.&lt;/p&gt;
&lt;p&gt;Кожен пристрій для збереження даних має в Linux коротку назву(&lt;code&gt;/dev/sda&lt;/code&gt;, &lt;code&gt;/dev/sdb&lt;/code&gt;). Пристрої діляться на частини (розділи) назва яких складається з назви пристрою та порядкового номера розділу на пристрої (наприклад &lt;code&gt;/dev/sda1&lt;/code&gt;, &lt;code&gt;/dev/sda2&lt;/code&gt;). Розділи диска, зокрема, мають такі властивості:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;назву розділу (наприклад &lt;code&gt;/dev/sda1&lt;/code&gt;, &lt;code&gt;/dev/sda2&lt;/code&gt;, &lt;code&gt;/dev/sdb1&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;назву директорії в системі (точка монтування, наприклад &lt;code&gt;/boot&lt;/code&gt;, &lt;code&gt;/home&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;тип файлової системи&lt;/li&gt;
&lt;li&gt;додаткові опції монтування (підключення)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Для закріплення розуміння розглянемо такий приклад:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;фізичний диск SSD №1&lt;/li&gt;
&lt;li&gt;в Linux називається &lt;code&gt;/dev/sda&lt;/code&gt; (або просто &lt;code&gt;sda&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;і на ньому є 2 розділи: &lt;code&gt;/dev/sda1&lt;/code&gt;, &lt;code&gt;/dev/sda2&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;розділ &lt;code&gt;/dev/sda2&lt;/code&gt; буде використовуватися в системі як директорія &lt;code&gt;/home&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;розділ &lt;code&gt;/dev/sda1&lt;/code&gt; буде використовуватися в системі як директорія &lt;code&gt;/&lt;/code&gt; (&lt;strong&gt;коренева&lt;/strong&gt;, початкова)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Вкладені директорії &lt;code&gt;/var&lt;/code&gt;, &lt;code&gt;/usr&lt;/code&gt; є піддиректоріями кореневої &lt;code&gt;/&lt;/code&gt;. Директорія &lt;code&gt;/var/log&lt;/code&gt; є піддиректорією &lt;code&gt;/var&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Директорія &lt;code&gt;/home&lt;/code&gt; теж є піддиректорією кореневої &lt;code&gt;/&lt;/code&gt;, хоч фізично дані будуть розташовуватися на іншому розділі (або навіть іншому пристрої).&lt;/p&gt;
&lt;p&gt;Якщо в комп'ютері 1 фізичний диск (&lt;code&gt;sda&lt;/code&gt;) можна зробити на ньому лише 1 розділ (&lt;code&gt;sda1&lt;/code&gt;) і використати (монтувати) його в файловій системі як коренева директорія (&lt;code&gt;/&lt;/code&gt;). Всі інші потрібні директорії створяться "в ній", вкладеними.&lt;/p&gt;
&lt;p&gt;Якщо в комп'ютері кілька фізичних дисків — на кожному з них може бути 1 або більше розділів кожен з яких буде містити певні директорії системи. Але, незалежно від кількості розділів, шляхи всіх директорій в системі будуть починатися з кореневого (&lt;code&gt;/&lt;/code&gt;) і виглядати як одне ціле, а точніше як послідовність вкладених одна в одну директорій, у вигляді "дерева" (&lt;a href="https://uk.wikipedia.org/wiki/%D0%93%D1%80%D0%B0%D1%84_(%D0%BC%D0%B0%D1%82%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B0)"&gt;геометричного графа&lt;/a&gt;):&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;klp@klipper:/$&lt;span class="w"&gt; &lt;/span&gt;tree&lt;span class="w"&gt; &lt;/span&gt;-L&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt;
.
&lt;span class="p"&gt;|&lt;/span&gt;--&lt;span class="w"&gt; &lt;/span&gt;bin
&lt;span class="p"&gt;|&lt;/span&gt;--&lt;span class="w"&gt; &lt;/span&gt;boot
&lt;span class="p"&gt;|&lt;/span&gt;--&lt;span class="w"&gt; &lt;/span&gt;usr
&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;--&lt;span class="w"&gt; &lt;/span&gt;bin
&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;--&lt;span class="w"&gt; &lt;/span&gt;games
&lt;span class="w"&gt;    &lt;/span&gt;...
&lt;span class="p"&gt;|&lt;/span&gt;--&lt;span class="w"&gt; &lt;/span&gt;var
&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;--&lt;span class="w"&gt; &lt;/span&gt;backups
&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;--&lt;span class="w"&gt; &lt;/span&gt;cache
&lt;span class="w"&gt;    &lt;/span&gt;...
...
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Якщо комусь стало цікаво для чого розділяти різні директорії між різними розділами (одного диску), то це використовується для фізичної ізоляції частин файлової системи, коли наприклад переповнення даними розділу &lt;code&gt;/var/log&lt;/code&gt; не зможе забрати місце і переповнити &lt;code&gt;/&lt;/code&gt;, відтак не зможе вивести з ладу саму систему. Це важливо для критичних серверних систем і не дуже потрібно в "домашніх" серверах.&lt;/p&gt;
&lt;h3 id="_5"&gt;Розподілення дисків&lt;/h3&gt;
&lt;p&gt;В Asus Eee PC 2 SSD диска (4 і 8 ГБ). Перший швидкий, але ненадійний. Другий — повільний, але витримує більше циклів перезапису. Іронічно, але в мене вийшов з ладу саме 2-й. :) Я заміню диск №2 SD-картою, слот для неї в нетбуці є.&lt;/p&gt;
&lt;p&gt;Не бачу великого сенсу ділити диски на велику кількість розділів. Диск 1 буде суто для завантаження системи. Диск 2 для самої системи і всіх програм.&lt;/p&gt;
&lt;p&gt;Після усіх встановлень та налаштувань (вже з Klipper та іншими системами) ось так виглядає файлова система мого Debian:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;klp@klipper:/$&lt;span class="w"&gt; &lt;/span&gt;df&lt;span class="w"&gt; &lt;/span&gt;-h
Filesystem&lt;span class="w"&gt;      &lt;/span&gt;Size&lt;span class="w"&gt;  &lt;/span&gt;Used&lt;span class="w"&gt; &lt;/span&gt;Avail&lt;span class="w"&gt; &lt;/span&gt;Use%&lt;span class="w"&gt; &lt;/span&gt;Mounted&lt;span class="w"&gt; &lt;/span&gt;on
/dev/sda1&lt;span class="w"&gt;       &lt;/span&gt;&lt;span class="m"&gt;3&lt;/span&gt;.7G&lt;span class="w"&gt;   &lt;/span&gt;67M&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="m"&gt;3&lt;/span&gt;.4G&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt;%&lt;span class="w"&gt; &lt;/span&gt;/boot
/dev/sdc1&lt;span class="w"&gt;       &lt;/span&gt;&lt;span class="m"&gt;7&lt;/span&gt;.3G&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="m"&gt;5&lt;/span&gt;.5G&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;.5G&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="m"&gt;80&lt;/span&gt;%&lt;span class="w"&gt; &lt;/span&gt;/
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;При появі майстра розподілу дисків вкажемо що бажаємо налаштувати їх вручну, &lt;strong&gt;Manuall&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img alt="Ручний розподіл дисків" src="https://lh3.googleusercontent.com/dw8uxp65ZJYE1H58GQ137Wd4k063_uTENJrfybTpZJAqOvRAXPetZtyTVODbJHHte9aR0JhXDJOyTkjFWEUxhNZfHYgj-h7acsAmKkbDwTmTtujdfhHGMQDiX1y0meCfJDTkDtGC4MzpzVmO2zu-mnWVzIgSELR98Bu0IdWqubwzOwYUUJsm-64qPQT2NUVL22h8ZjV7GXNCeJ6WlXe6s-Zj9lG0H4J9MuLlEkYdoE4Y5dzy0fQJXGWZRAbZ1bhjXSBVEKflNpPHXpvxAwdTZClHrrkGjiC_PbaYmCHRtHmRT7KRL8sMvcDJrwjvHWZpr1qnl6YSobkas86PF9ginJf95Em2ukFcwtdJJmxkvhk95P9dqUbM81q9pCVG0Hw_LussyGBWuGLvtBRk2EzQo-pAE20KvoizSZdHF5wLmmmZX6nQ1d10ckj0UJvpI6nru33wBzWzjIZvD8_0HaEZ41hj4VC2-OOUzZ3W_hHhDyqDRYzHVQnUsuekYTpvectPSpiKOJi9W5ims_l9KAUEgVaeNjKmJQ4gU1zI8IaB2WgnI7BRlS8zXYbz8GqyBLS3ba_nhqIt_v0NtDWSoz5jW8K1tAO238pi08_D2IMLI4b82K9kswUAE5VEMBfzFuzjNE4dsXVSAw0GeGhu8CupI-vZf6_gk1TPz7v8rp744lnYNNnC61zKskY9AWAOO_sjy_NBqjh5ozu0BNlNz2KoquAxV170Q2bfg4lUir1-_W0irzQp5HfMKh4znKJVZra3yl3SKDuTtqLvtEaq-j-R0YHTDC87et1RRe2_7eCckgMyn549pSBx9qUOilDbg_SBovPCqwjgYXSSjjCVdB34sVL8vaXNN0w-0vgo4GGsnwMZHlK8Ku8soeIoYCsGmnV7OT2GQRGz1CCMey8ZWlJLAwLC0phkKviT8mANJG2dDlPARA=w800-h600-s-no?authuser=0"&gt;&lt;/p&gt;
&lt;p&gt;В моєму випадку розділи виглядають так:&lt;/p&gt;
&lt;p&gt;&lt;img alt="Розділи файлової системи" src="https://lh3.googleusercontent.com/OadXqxVZ7-zH9BajjScGrl5bPTZvPx8U0T7-55NnVywo8wZH2kLRZ9rOCMLeZLWDNzjnzizaXz_OcRTpGF7YQxC2MlBBvtAlJhoaacpAq2i-x46tFSlpJGupi9nLVfcZ8neKFBPszRw_d_7aos1Ndd9VUZ4M9SXx5EtAcsw_K0XvQEStxZEmv8HbylM6F5dabn12Z3FZnVItkyyNOUhK3-h2pUfIr3lvtDm-i3-uVXs4kmOZ1DILX9I1a4mG4_Hb7ZhCuUI-XPyihLD8runzstYcuo2OXBvRSre--_8g-hZmvK_zozQXf_GBh7dQTKGEstIlw8FcW82ggx4eWeZuFt7rG30_mwCv7p0_euKdZZGLIpxftO9NiCgd798AHa12FWZE_5vTHksf6V19V4q8Nz4Lo98xPNz0NDoy7d3ZwHGwFEcvXCAWmdmdJZbf-s72rUJe2u4O7l3l2dpNKxxgK4D8fQs7Eo7WCW289V1U3DmoPx6SlnyYfDbsOMbX8k8-zroHzUoJiw7L19hBWUZ8qUcEbnayhmGAxQkp-iUSOwmaL6PnnSCzT2QhgtrTerM52SbQOgyCGW-q_dDWu47l5_8cmRwD3J8VYAL7zhIllNZ_AaUDysSUzbuhC3cK1FvDyg9Kxqywap9nXLDkHA9uhIOBRrmvXtKCIUWVKnbXfhpJY6RcccXysF8jVF3UOfXa6uHGQ2Frywjk_B4X0f0SbPr7Uiy7v6s7wBYLpcY8ozaxBK02HcXfY8mWevaINtrXS-1kKXQhnMDx2-6SLxyqMIuAWcxF17_6jO6OfvwtclrTnlsUErwUmJG0eJ3Jc8zEjHQzbiq00v18_H_ceX0E9sKm3Cprotk9CmtBX1_esbalpyHJC4Tqa_n8jkC5ycZRLGSNJcpnvavmIJ4TTaX7pVe4SWikvx3cU-4e1GW553DvXg=w800-h600-s-no?authuser=0"&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;sda&lt;/code&gt;, &lt;code&gt;sdb&lt;/code&gt; це SSD-диски Eee PC. &lt;code&gt;sdc&lt;/code&gt; — завантажувальна флешка. &lt;code&gt;sdd&lt;/code&gt; — SD-карта на 8 ГБ запхана в нетбук, на заміну &lt;code&gt;sdb&lt;/code&gt; (SSD диска №2 в комп'ютері) який в мене вийшов з ладу.&lt;/p&gt;
&lt;p&gt;Вибираю 1-й розділ диска &lt;code&gt;sda&lt;/code&gt;. Встановлюю такі параметри:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Uses as: &lt;code&gt;Ext4&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Format the partition: &lt;code&gt;Yes&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Mount point: &lt;code&gt;/boot&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Mount options: &lt;code&gt;noatime&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Bootable flag: &lt;code&gt;on&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="Параметри для sda1" src="https://lh3.googleusercontent.com/L8cvlgfrjLUkm9e6u6cb9I58Jt8vztApti9gAQvUbMKprXbXxr0_luNmuPZQPif0oajVnaLFDyHmWrWToQ9LXCamZAPVKdwQQv_yDcp4LdxCbddqf7Byx5A9r3m2Q-IXAeNcoVdVBzDIEPo_lDMEjqm45kqrfpF_IuFVbN0rpy2ni-MPdp6PkScwJ4kOrdUwIUlgS2o-9_KAX_f-TPkePicX5Vo2ST3jC9iR80XiH8JDqCHgf6iezDD5dbe6PKcxgByQ_IPsCbMGZXrNya4XLn85e0VRYLVFfkcKGSu0q__U412NerJXM-8owjaCrB-Bpm8UY9OuoB90Y298VOc-mHLTNWLUGJP9ASrEppca5WgndJ035yqFO2pPxnb1Ooo1QQcVUaCNL_NtMQUAKwa6zjPBPqlm2h_SP9XcZDoiQPVwMapPfeGXQ2rrMw8HsFgEHuiCo9pMK28TFNfAbdV_3sTkUnCtT_m5BF9kPdVklr6qdi4vZPdS5t8lcXeeq9ARw_OG-0mFYsnPwg1jMytCDEQk-DU51kjFyA036dlf1v04rSpwuFVGAbQQVjtxcce8c5mzNei91CnFbliQQo_u4EhsXFF2k-Cdb7WFpECsBQrR9RbFfOOMJc9HTcJbyanzh0BzbF84Cc4uSOiwp0EjEbsB6bLWMSFQOa22FWcDh3j6Yg5ACYcJCAq8waaB_e0A2rwSkTkVQJicEEVcnpjXr61fS8wl3xn9b5VJCuU5UhDcsajghArcFJ0Ub-z98IjhHkCVTRLtb5oZYphtx0OTJsmT7GwD3yNmIQDpZ0lWo1N_k3uzdCO2l5CzC_iO-H1eoSE1lMckjbjGuuOf_FXYyxmVo7nW2S-d5a3twAbGAEBbJjEpTBp14TEnogP0mq9sc9XaMsU9BBCs-xN8sOmIAdOeYdqJnPXSu550gKS66wTKxQ=w800-h600-s-no?authuser=0"&gt;&lt;/p&gt;
&lt;p&gt;Параметр &lt;code&gt;noatime&lt;/code&gt; потрібен для того, щоб зменшити кількість службових записів на SSD диск, що продовжить час його служби.&lt;/p&gt;
&lt;p&gt;Тисну &lt;strong&gt;Done setting the partition&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Вибираю 1-й розділ наступного диска, у Вас це має бути &lt;code&gt;sdb&lt;/code&gt;. Встановлюю такі параметри:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Uses as: &lt;code&gt;Ext4&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Format the partition: &lt;code&gt;Yes&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Mount point: &lt;code&gt;/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Mount options: &lt;code&gt;noatime&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Bootable flag: &lt;code&gt;off&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="Параметри для sdb1" src="https://lh3.googleusercontent.com/8C-s2NpcbEgVeJ0yg4OmCQ2pEs3qEIxp0PSUMllO7eZxSGCzXes19prtWsVRjU6ZN3FHJJ3yVLD4Qu56-f6Osju9rEKimnOZAmUAaTGoRra5s-jHv_wV-NQP2K7BINp3_Ag5fCdjQyLHnl8SMS46R0HJEWkdHr_-wfD2BK8BSBgoXKjjLsZ0DBG6ZgT_qXgUGo29So-YLp_1J-TRuBMUTyq_ZbEEqCMygtVz4-O19AYVDHt15Y2se8zgBSJXiugFvRQpdEd2X-l0e6MHB1mZvJ_yXVV8BCDW1jRoTiAjwAl5RQ4Ox9g_ENCdM28ND6_bPKTXwjdlJkyf6BRPMhOg-JVps5q1vSmfqzycvLvFcW-42nCBPKYRc6GS2gnhLKmau_ufllZ3CIy5m-NjRHoU1OPX6ZELwBHT3UmPrZz9zyt-AAzHKDO81LOn7_XGYENOrMnEnv5GF3lwI_KOabv5o8JUfVoGXsi9MaJxM7FNkrO4q5AFpWMXGjr73FrdIkuc2YNaheMXMW574t-rdVL-4G8eMf0HWZj3Fa5P-6c1NTG61mS1xnxX54-wzZ5ijkX3OYU_T4zAHCktvttt0HGaljbpwKbN295tfHbV9we9UIRVZsUwDkciSW_XGxs2Bt99czuyyPPnY77w6ufKOfdQmUXChv4G9Me695NWWYMFFfVXud67NHLKvEFbP6jznRRT29O9nJ6Xqyip8IG9PikR78r1lVBzTTZn3tc0PLpibS4-G9Ilhbgg2KTinp1FAdEuyNU1KsCOcErtZOm6qeUCsLXOCktsDaOUJ_37vIXhU17IPO2hlLcf68bi8Fkf4pLg1pv4HDYZ-bbutVgnsMGIO4K71nC_e5cKv6OMuRU_dGWDllmYNSfCDUclpkK9f5zHmOc2SRLQxdk9KraPi39jFEsfzV3Wr2b8YwPDp02qUVdV0g=w800-h600-s-no?authuser=0"&gt;&lt;/p&gt;
&lt;p&gt;Після налаштування обидвох розділів вибираю &lt;strong&gt;Finish patritioning and write changes to disk&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img alt="Завершення налаштувань диска" src="https://lh3.googleusercontent.com/rKs0fJE_prwfr3uE2fvRtjgKB8KVTj0UtUUSIQa24I5-IIQS_1wKd860Ro7t5yyhNpQ5oxYEil2rdtgIzqWwR7ERsPrOGgAGiJekNNVSKlb8Wf9kg7snrC8Wl5GIoDW9KOgrDVLb7Wr3V97J5S-G9R5yhNTxcuGfkHC2ppeVyKf-suTYExhYAygnqbhBZRxo6yCEnHO2bIBKvoGPeUfDhrWDh_5kIlkmaXG-wyhmYbb3ZRdftl5FtcKWbFDfhSjLtQWzcZNDqxk8AWNKKxgyqwQzHUA5AGCBI0xnJ9jFVCv4GIGuQpLLCrWWY1XV_z9b6Yrx4U1ry44ea6ZyDyiSoSm7IDytHcD5UQ6Kv90cL3AUfqSAIwPR1eOczLHi0BtADtj6qjsly7GZR39ufm7R0GGMJgXumphjtt1lQdmWV5VHMNlUEiVa8T2MUGgpW10T20UmG_grq_fHwiguk2OjMoxFHslypyrW6YYXzTR793sbB7NonyWnkMgGPH0rLso8B7ulWXwQaOILTGrPVmavBryZvh9PlKUnmLaeNA7Vr_kYaEECtQXT7AYxE9IE3N_88Z1-JPiVjFosZbZ804t7C0qo95lQ8DpNXHdUrCpKF5YbzREU-4RU432MtwV-ZewlrLbQTBX0VH4fqw2c-RfB8wWt2anFvdPqX-4TBqv1EETeX5qvaG5Z9d0YVTQFcc_U0ezHpUG4YRLpusO64CdCdQwhtQ6C_RVvmVVIDJGVbrZqZoEqu0oN4NqlpSk6nSPxxkq4qkxtvK-5IFk5jFe6-jYdgtAqlW578F4_ydpix8J-AthQqHEFmD11NSs3ge463icjVQCWDuKmpQR1UBqL9U8PMgjnIni_qWIS3YYEXJ49v3YyGnqljva9mZ1IWiaUwXpFJxOTw8unG_0pFhUmY_AIlDwLj_JjQasgZ4A45UOFSw=w800-h600-s-no?authuser=0"&gt;&lt;/p&gt;
&lt;p&gt;Справді завершити розподіл дисків і зберегти дані? &lt;strong&gt;Yes&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Розумна система побачить що ми не створювали розділу &lt;strong&gt;swap&lt;/strong&gt; — він потрібен у випадках коли не вистачає оперативної пам'яті. Але для SSD-дисків ми не можемо собі цього дозволити. Тому &lt;strong&gt;No&lt;/strong&gt;, не треба розділу swap:&lt;/p&gt;
&lt;p&gt;&lt;img alt="Відмовитися від swap" src="https://lh3.googleusercontent.com/JlPRVN3AAZ16Q7vRPfboLV2SV7BPd14u8ZmkDVCiSqRqgwySkHeiDfIMpb2H6mFNbK-aUQnWJWk2DBzShgbsd5j78Dp0dFSgtEtBg0jWgMvdwEOQ0R5TF0zLNOmxeTbL6c4EuauaR77qqpjtzPJPw-MRqhWAnt369NCAdpZa7xsAc_Ru2TRsIs8KD8e2KlA7YSEsA4SVfl6iHNx0qYPJ2yfmiPYkJGnQVddFFgYP-NggWXZ3a-o_UVzF8XRdS5UEshpzO3IGfs33LK30rwoc8b8jVVE5FBa8VMd5-SJA_QwV7a9g3DWiCSsDL20h9ruveAOg7M2SFc8RRfviJz1-h0OCEEVV4DYmJEf17YqVbbZToYq_iUU37ooYlCv3PL-P92N2WYcBHbCrmkDIWvV9LeW_YEjsFq9uGQ5vPz4v0B_JWBxUrCnqwBKrNQYbQ5uGTb_pr7xq6vqQKHzfA98mr8AFYeldm5EsU2XS0NxLWPH3WG6GreSaC0MR4zq3TIRPvjg2TwgjECHqE9dmEg_7Ve4Npk3s3_dAY5ObDOqeidJ27kZr_eWbFRC-Po987u_PMXPmpV3IacjKgrd-NhoVZbOSAH1zVtdODieCYNaYOZzEkJHzMcZ5xJFrViiRqunc4BHXUh8tnC9Ag2oNxJs66kjJ1EVtBTMXliucKn8ZibIbOOP5fCi0EWXLTPrrxb9SQtD9oNPwzJMn5gKMiUJ4Q3Jbvflz8U-tH1CHMoO-pmamGWwsMpmSTXKVtdVXJiazunFCRJMniJssoOQWA-oeQ2lu4OjbJiDZpgFWmL_sIykhYP8uNtnUQOB_ZYV-9Fpm0EPp7ayoyqu3z9pJz55TTfrvGsd9WbDAHDnGr-B_Rbf0l2WqcHhNpokdA3HKs8PfrXhvKeBsyx76QK4p71koS16v4j75b-0EX0nKJWHjySxBGw=w800-h600-s-no?authuser=0"&gt;&lt;/p&gt;
&lt;p&gt;Install &lt;strong&gt;GRUB&lt;/strong&gt; boot loader? &lt;strong&gt;Yes&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img alt="Встановлення GRUB" src="https://lh3.googleusercontent.com/2fxYTcURw4-9UCazAbVJhHbqjffRrpu1olxDshP0VL27a-swrboDuuwfdJv7s6EVJd-ltxK0NpD_mKKh4-cCuwYuUAHaJ5y4s9Ksdu7Viu30Tqkj9ZRazdNauELu-YVQY3PBT2ehF5A3Gov9yzgs1fhJpzqd8U2ugflsZknc3TgJFFx_c8m7o8fudMvRhi5-_65RkeYFDBysv0SNiZF_FXKBVlK-dDMquBgRctFuSzbeP-AqW1KyXYftH7dRnFlf1pjBghlckeUFR0ygID9h-ekXWfkSiIm7uFfDN4rpYWcww7mp-9cE6MgkOVf37Sr_MbPVJ7ZMEOf0ixt6A7OXtRN5784q5kfSs-PvGtW7vhwoREzMH1_VOQFfT_Om3CnxRBA7nR_1WlCCHL0Ogg0YMMVuw2JEzHZpuc1ZZ8cmUghWKf4wpQ1RpTouPkquQ-wFI-YhADrC6b8wothmrhebflyOwF8waQ0zEcaM0jJk71L2b1A5Am_F-OmRDbIyxy0gBESE5VE4xhQqzecHEal2M7aR_OarOqu_0xutOhHehDEJ1hrfvPfU38Z2lAToGn3qY8Bi5hdv_TOHxhcF0VRvsKdpfa3yct7VrXzv4NVWY2IUfeFsK0EcgeJ1aDj6sK3Pwpp4_xDd7n4VgUZzg2k_FRjmorVezgzH-MPqK3mF74xKrP8IXDYpXz88fc_KCr1lo0hne6WTFP3qseUVpajPgEJlJkXV_Ikh0_Yl39aOh2CEastBFcvomv8yfZ0YGc7L8YUI_mBG8Ntb2ik0AUuRiVx0DX-BPAnwMUmw390UtCSCoSP2FEHpUGX2FV_A-lUyCNjyckySp0f-HorzVK744mnkKkL-cRnoeUsfPqyrz6RXxq_mOfdeRg1gvfBMtOCm_-l6Wb3GSw0vHfYm1oqBpf_dz1akLRPmpG6Ha8WW8F7nDQ=w800-h600-s-no?authuser=0"&gt;&lt;/p&gt;
&lt;p&gt;Врешті-решт система запитає який розділ буде завантажувальним. &lt;strong&gt;Вкажіть це вручну&lt;/strong&gt; вибравши &lt;code&gt;/dev/sda&lt;/code&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img alt="Завантажувальний диск" src="https://lh3.googleusercontent.com/muujwROzTsWKlIDCfWfhotr7l41n4AgvZ_iI83yOIkxbfoBNzk0y_dyKNKDiHX3sY7vCxqlDTymQQDaZl2Dn6TAimMrqvQMMF2VtYgDT9G_rnqKWKoLNnr07zq2a9Um-MWv3WcZBrmx9NHE-mF5f1J39LkklSzfACpCVcz08nuOwG23MjnMRNPl6eL4OrwHoSN8OLscZDQMQH2XAeD-T9dKEkQIyijMii_0Xkwyk3CEJ_yC6RL5g_GhY4xqDyHVGhbsOl31wRUecWjVE4OVCeBTQTjiGre1ZCdVmoPUf8GsbcYBLalrK462u49d0Ce53bQ7egKtkJ8RCZMnWOz2KnrRtVkTlOolxBcQTEDrvrMB3jwtoQt1_Xhux85xYH2DhSSM6Jae4hOIxMY6jGUpOVvdyk2dKHPSdEOgPu1GSoFEbkMp_rbfZVhT3spuqB9b__UIMZRFPBiE-_oBf2fLVqhms21dZTaCJanJie364Kvf5u8M2YB2gSk_jvpREAWdP2_Bbvt4phaHnrJNOZ5sV4QqsVffLk_i6C11c7HEuDaKWBom8rxetAgqWpjhrBj8CyTsGXADNKfllI1S2k0THXUdP15H_SEvhb5C44Et15g0M5fG2djOJW4njxKueGaPPNpZlkXwtvKDc1NhRGk_tCF2fGG1Pp2N9xCeOUM94vjAOmCsL1ST2aqlEn5Qae0NdoKCu-qexBwwuj1AEJw775szcIKFtV0-c78v8qlMPKLRAp0hIguCYIJMBC5Rro2hEcdkyELgeCygkI6dBdJxaZ4rXKr_4_ckU1XU5gCm6N-ElZnJsmqlsVKR_sK2HK0zhT-7RVdb76EPFmrzgltGiaU4N_nhFIbpfcJoHAJOnMcsQNqNOWUpXxhf2gNgpivRtzzD7-7uIu6vVyUvfov0psYYkJkJajW4mg39Y9iM7m8T9Bw=w800-h600-s-no?authuser=0"&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Увага&lt;/strong&gt;!!! Якщо &lt;code&gt;/boot&lt;/code&gt; розташовано на іншому диску ніж &lt;code&gt;sda&lt;/code&gt; то потрібно вибрати цей інший диск. А в BIOS комп'ютера вказати що 1-м завантажувальним пристроєм є цей інший диск.&lt;/p&gt;
&lt;h3 id="_6"&gt;Встановлення компонент системи&lt;/h3&gt;
&lt;p&gt;Коли Вас запитається чи вибрати сервери для Package manager – можна вибрати Україну, це пришвидшить завантаження з інтернету:&lt;/p&gt;
&lt;p&gt;&lt;img alt="Вибір дзеркала для менеджера пакетів" src="https://lh3.googleusercontent.com/4TDR1CvQC5Crmg6A3FEhEXnxZCJguj4T5u13eaXt-F_uLBYaTg5UUyqP-7yla5wV0l1G0hqDKu3daZ4Y6zILWaPTyFs9m-dNMxIIA5nfO_erAFAthMeAyps_i2dcmJnKVGnfLhPUmxbvSH8Zc3VVwLjK5xSymFiShxis48zpnoQw5glLPwhQTkn8YHWzit3vEECj7ppLNs_VqaMTqtDl3PIcWuhPjcV8mw6JayyHZJIU05sInfzvr8OeMOuo3YKifckq-bBUPSeylRcuIVbkVlELY_jZA8-JuRzlSpOaCkVNW4P_AtzoRlXK_mdibigJP6zO29tQEP1HhDxjd_-eJvAh7upLc4SYXxQnHHm721LiF7iHKS51utb3Yi6w-RVcvmDNZG5sb_YYscMNkobFFpMJezyEDLuMiSQm7zg6hGhsRh51OK6CCOjtxxAg6--41cLfrnfzi5rZMlBqzmpxySoPPAlDPI6pfTSwTxHIR43AdqJkd8hevHd05vX1kcBjjTwuBn8GMPqiB0Cz_uBMBJ_OCXJCSLZM-U7KmiEOAELNyA_m0S96TVFcehsgpG0h90ahy4nr8-xzRZ-H7r3sJD7sOC0LT4L9mN26mtUbZPbn8Nk1heefgzhHNCpWEvlyyee_g-T8T2-9VMic8XIQ2QFP6q-x9CXGaw9vbatoR0-sVjSSozn6qlj4zOuH9nOALA-FFUf2V5q_T3ZjIVSIQ2qT4uMkrMGJKPqje_X62ZGrE_Py5vJ9TdZ56-0VDvTl9y45nwGkX8AltxYuD3S7yp8HG0yPUTvLKyAXFOmelpl8Vpd3lGmekB1oNVtF0nRRczSPGzH01aWPtfv1G1VVCvgHkDwVcGhOPnZ8dltvcxP7nUb4DsLadyeEHW4K_XWwvQWqFqIzIxcUhdCMHlQ1XQaZt0dP8Nc00pvYBG87cvtJSA=w800-h600-s-no?authuser=0"&gt;&lt;/p&gt;
&lt;p&gt;Наступним кроком інсталятор попросить вибрати програми які ми бажаємо встановити.  Для майбутнього сервера для 3D-друку мені достатньо:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SSH server&lt;/li&gt;
&lt;li&gt;standart system utilities&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="Вибір додаткових програм" src="https://lh3.googleusercontent.com/3SIDWqwcW6pT9oY0Eigb-uhp_y9J94JMGkgo9AY3v_WHe1JgdkYpQtwSDaIYZ_aLM8gtHm0gsm2BhYz8tQwMDu-YavdZvOoOnlEPVgEv-8JqN7sf2HDzg14lKiEi6Kz_F70dBEITbvo69Yb1IMG7zbPOoPhyx4l4i0FV4PX7UDzQxfJvH_crjsd_jW_00sHNbHnyk2dOY0CYwZtGQ9WJXf05KRzWjJiYGXI12JkhCDkTrwS4WQkKRckZELPr6g8_kxmDvxMtsxhFMeoGa1xfrDgpOmOruAMNkEpsWDB9n0ZCQ0p7RNfCU6YJQYlI5ceJRh2GfpqBYBk-mUHiZceZM47NXwrC_O8DkmlTkxUno6bSb11VcLHIRmqgViWVVtK3QD_yUtItZqkv2tjRujgIKlk_TGUw1ksnFIFcoLtTbSMpoV1TFMUEiik7cow4rhiSXw0Tvc1K8DdfDirUuh0DoQBvLjyiS-G5nQDdIutPi8pqEcV_2juYhLVr4XzL3Yewb82Pkddj7lgGu3-QW1s0uXQRmUv6yw5TI3puZVLLdQ3Qa4xhC1TgVgqGWK7qSPoFBbFcij6nb2vxk5iqpo66igdIMkDE0mf4oCgL95g50_8C7nSj36CuhaqMDoJCph7W9ZkXETMM_2wPASikqoyos_M5sAKggH3R3Sn91HalLn0l9vfge157rTTUd66ykmOUF2jH7ZowUC5RknvGgML1I0Md_Ka1l-N9-6iOdNSXcIz4xHnZCTXJLEo4_KhRe_TrBdNdMWeYxglNrHEJh3eM31R-qjR1oVBIcPsCOZ9fQsZXOng0BdBDhutxavO1FSmt6Y7hvkL94rNMVTz235i478RIWx7BszTEwoMNXe_L38LVHKP4kluWOBniqpjo31FOdQcNVGcVLuaPftIJGQOL9eqMFywKVWFaVAMaequcgrjl3w=w800-h600-s-no?authuser=0"&gt;&lt;/p&gt;
&lt;p&gt;Якщо система буде використовуватися для чогось іншого, можливо, Вам стане в пригоді графічна оболонка, тоді виберіть також:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Debian desktop environment&lt;/li&gt;
&lt;li&gt;Xfce, або MATE, або LXDE — швидкі й просто оболонки&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Інсталяцію завершено! Всі молодці! :) Витягніть всі флешки. &lt;strong&gt;Continue&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Інсталяцію Debian завершено" src="https://lh3.googleusercontent.com/WRoLqQchlx3IPp5KTM70ILEcOLahns2ASejceImWsySrhZxxI15RG3FZcxbJt37WTT_PqVfjrdSWKm3kks-DcW3p2s5qpG4m8L3KWfNxE6nBusrk_WrYYtwVuVLBZaAhFlHcNH6CsyrQdHLPMCcm2lCI9Do1Aeir5-7dCHK8oGh1ZQGTlWmBHBknMdwknGYQ7GXHHK1tVZddXzI24Ck73unOkspsxdIhdKvz8hpxRmQon6CLRZMlQrOY_5ShBs_lxUvBEG2SCNZ1mutrcysbIGDQR6Yy1FCKthQrZM_j4CbBSZtN70UPJ4y228xl3EVjFSqYa7o7G66zwJOsP61-CK30YKZOsOQxSOdKa2WCJCI2P5UHQFWsUfYkr4sB8JzzduCglpM4_4PCUI6M07Iz32lyR3ZEDnvIjxALLQOGg2KJJJSXRyYlSZFvbvh6Wg9ozhK0FE__FNg_-hs-ed_-X17wO9b6w8hjuJ1Rl7F74di3DE1nsnP2-Cen6d8RnqY-1Hr-ND0krlgjXls5uNwwrVTPyqonOeCZRglttfox1qDsc-j9av_cu0vCtWt0hgf62eFZOkPhYs3MHVCnm4JSFMy8R7EYpyjanFBz_AYB6PyxF4Uq_HJ1RQV8v01DQkVM0GxBDiEBGreXq5_dRa1DqYVaY6i0ze5ld4d2DhhTLLpzMCyxl0NTaOIZE2LB4hnQQmLNipZBGtxeUQga4VEHZ5OwEtcYZxfGwHNKCl1Jj5nm9y61KuieVwRrBFusAMxkBRX1wrSd1kcuTOBqrhXAfN9uO1UNUiS3xSLXkXnMn-_D1Rmetj9GjMOhJwiPKI4eXiwWDcSohXMg7ViWt8mnfdoOlt7tdMU18aXKGjJQr1peIaF3gBSaROwuiDD5-NY5Vf_86dw6pxb9TpS1EILdfwqQhxO-T_na70reqy3EYExlAg=w800-h600-s-no?authuser=0"&gt;&lt;/p&gt;
&lt;p&gt;Після перевантаження комп'ютера повинна автоматично завантажитися Debian і згодом з'явиться чорний екранчик командного рядка Linux:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;login:
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h2 id="_7"&gt;Налаштування системи після встановлення&lt;/h2&gt;
&lt;p&gt;На жаль, не всі параметри системи підходять для користування. Наприклад, налаштування Wi-Fi що ми вказували під час встановлення не збереглися.&lt;/p&gt;
&lt;p&gt;Базові налаштування Debian &lt;a href="/2023-04-11/setup-debian-on-laptop-netbook"&gt;я продовжив в наступній статті&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;А для того щоб SD-карта не вмирала так часто можете налаштувати файлову систему &lt;a href="/2023-04-12/extending-life-of-sd-card-or-ssd"&gt;щоб продовжити життя диска&lt;/a&gt;.&lt;/p&gt;</content><category term="Технічні теми"/><category term="3D"/><category term="Debian"/><category term="Linux"/><category term="Eee PC"/><category term="Klipper"/></entry><entry><title>3D-принтери та їх прошивки</title><link href="https://yura.stryi.com/2023-04-08/3d-printer-firmware/" rel="alternate"/><published>2023-04-08T00:00:00+03:00</published><updated>2023-04-08T00:00:00+03:00</updated><author><name>Юрій Сметана</name></author><id>tag:yura.stryi.com,2023-04-08:/2023-04-08/3d-printer-firmware/</id><summary type="html">&lt;p&gt;&lt;img alt="3D-принтер" src="https://lh3.googleusercontent.com/zZgxtpOEkDcvenEb8QUL2z1_E-eBp-m-82Xh8mcUE3-A2KVHjiD-OKtJhRT7fr0_VGc3J7T4P-NBtFTqV6LRB_-K5c1Vv2Q45H1TllY4A32hhw0ZBOfBfBWrWOn2se53ooFm9U-l74LICBu67QvT4P0vEIkbaqI3RdOIYqnkSG2EHKLV2MXr5m3ZiR-DmgL2_JBTolojZaWjoW5WA16dpzLSUJfghCNLQKB2UJj5uvxwDn_dAVl0StbtWDcUUPidIYoE7cSQNV9MM5wbIykz9Ydt9IMbw5aSyqvce56OLT_CfO0fpYFHr4e5qsSOZA95cyIrHlunmISK-xVtvKsmbZkvPXucLsJoJHz3zZ2T3zZfddYQQzdCBuUrV9-1Z96JVh9BWzdUWucBHOPYhWMwibs5ZVuqGdUd1KgD3LbHwPbL2AWPCzCUuKjnl5mI1MMkTLftqNNHnc3g6HUXG0Wt3b273itmOeJnQe9Z00SooUCGKB9n6LduXDQgv3hWiOKqgtT-O74LEI1023eL2Txy65FeMGjAolOPFVdoPXAz0CTLG3X_iqo4JVx--5PJ1AS49f_-4HMRD4T6icMp9KNTqJiZc4ZR5B5K4u6iRc2Hegd7bUzNMcSnhgiqZHzzKHHYwEB5axPJA8zwghFhK4fQuJmvfdBfLTFp8UoYE1tN_Fz1EX81cILeBsJrXLpkE2CGsCj0G-2v4bkh0YEhuly7TfqfgLcehXuwUHP6VYGN1NuboOCZJt0qS2-Z9itkNGb0PUtoiIxIWukmvRVTkXrEF7jjmMpJaHvT4bmNI_5K-kYaH3VTU2otbu_fs0spOBwgmpNisr4a9zbH3-zXZY7ck1TE0s8xTn9R8ocgZht3g5mNYFK5-mYbPwYDgHM9mUODK46Ml0DVUApnWh-Iyiu-07iwzuOhCAzJDHyyI-c0y-dpVg=w1000-h846-s-no?authuser=0"&gt;&lt;/p&gt;
&lt;p&gt;Розпочинаю нову, для себе, тематику — 3D-друк! Можливість створювати власноруч, в домашніх умовах, вироби з пластику: прототипи, запчастини і  просто цікаві речі для хобі і побуту давно вабила мене. Чимось схоже на програмування — коли з "нічого" створюється щось. Де процес часто цікавіший за результат. :)&lt;/p&gt;
&lt;p&gt;Збирання і тюнинг 3D-принтера під свої потреби …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;img alt="3D-принтер" src="https://lh3.googleusercontent.com/zZgxtpOEkDcvenEb8QUL2z1_E-eBp-m-82Xh8mcUE3-A2KVHjiD-OKtJhRT7fr0_VGc3J7T4P-NBtFTqV6LRB_-K5c1Vv2Q45H1TllY4A32hhw0ZBOfBfBWrWOn2se53ooFm9U-l74LICBu67QvT4P0vEIkbaqI3RdOIYqnkSG2EHKLV2MXr5m3ZiR-DmgL2_JBTolojZaWjoW5WA16dpzLSUJfghCNLQKB2UJj5uvxwDn_dAVl0StbtWDcUUPidIYoE7cSQNV9MM5wbIykz9Ydt9IMbw5aSyqvce56OLT_CfO0fpYFHr4e5qsSOZA95cyIrHlunmISK-xVtvKsmbZkvPXucLsJoJHz3zZ2T3zZfddYQQzdCBuUrV9-1Z96JVh9BWzdUWucBHOPYhWMwibs5ZVuqGdUd1KgD3LbHwPbL2AWPCzCUuKjnl5mI1MMkTLftqNNHnc3g6HUXG0Wt3b273itmOeJnQe9Z00SooUCGKB9n6LduXDQgv3hWiOKqgtT-O74LEI1023eL2Txy65FeMGjAolOPFVdoPXAz0CTLG3X_iqo4JVx--5PJ1AS49f_-4HMRD4T6icMp9KNTqJiZc4ZR5B5K4u6iRc2Hegd7bUzNMcSnhgiqZHzzKHHYwEB5axPJA8zwghFhK4fQuJmvfdBfLTFp8UoYE1tN_Fz1EX81cILeBsJrXLpkE2CGsCj0G-2v4bkh0YEhuly7TfqfgLcehXuwUHP6VYGN1NuboOCZJt0qS2-Z9itkNGb0PUtoiIxIWukmvRVTkXrEF7jjmMpJaHvT4bmNI_5K-kYaH3VTU2otbu_fs0spOBwgmpNisr4a9zbH3-zXZY7ck1TE0s8xTn9R8ocgZht3g5mNYFK5-mYbPwYDgHM9mUODK46Ml0DVUApnWh-Iyiu-07iwzuOhCAzJDHyyI-c0y-dpVg=w1000-h846-s-no?authuser=0"&gt;&lt;/p&gt;
&lt;p&gt;Розпочинаю нову, для себе, тематику — 3D-друк! Можливість створювати власноруч, в домашніх умовах, вироби з пластику: прототипи, запчастини і  просто цікаві речі для хобі і побуту давно вабила мене. Чимось схоже на програмування — коли з "нічого" створюється щось. Де процес часто цікавіший за результат. :)&lt;/p&gt;
&lt;p&gt;Збирання і тюнинг 3D-принтера під свої потреби і надалі залишається полем для ентузіастів і надає широких можливостей. Але, з розвитком 3D-друку у світі стали з'являтися відносно доступні по ціні, готові до користування, пристрої, які потребують мінімум зусиль для початку роботи.&lt;/p&gt;
&lt;p&gt;Наявність вітчизняних виробників філаменту сприяє утриманню ціни на пластик на нижчому рівні, в порівнянні з європейськими чи навіть китайськими аналогами.&lt;/p&gt;
&lt;p&gt;Через напад росії на Україну для 3D-друку з'явилися нові завдання, пов'язані з допомогою для армії, що дозволяють приносити і суспільну користь.&lt;/p&gt;
&lt;p&gt;Так як є абсолютним новачком у цій сфері більшість термінів і понять, принципів роботи були, а деякі і досі є, мені незрозумілими. Тому, я вважаю за потрібне викласти свій досвід простою мовою, як це розумію я і це орієнтовано саме на початківців.&lt;/p&gt;
&lt;p&gt;Не підіймаю питання самого вибору і придбання — тема складна і краще порадитися з людьми які справді в цьому розуміються.&lt;/p&gt;
&lt;h2 id="3d-"&gt;Прошивка 3D-принтера&lt;/h2&gt;
&lt;p&gt;3D-принтер це передусім система механізмів що вміють "вичавити" напіврідкий пластик у потрібній кількості у потрібному місці. Щоб керувати розташуванням голівки що друкує (&lt;strong&gt;екструдера&lt;/strong&gt;) та параметрами пластика яким відбувається друк (&lt;em&gt;філамента&lt;/em&gt;) електричним механізмам 3D принтера передаються команди, на кшталт:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;Перемістися у координати x:y
та на висоті z почни рух
у координати x1:y1
подавши N філаменту
з температурою K.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Таке обладнання називають пристроями з &lt;em&gt;числовим програмним керуванням&lt;/em&gt; (&lt;em&gt;ЧПК&lt;/em&gt;), або &lt;em&gt;ЧПУ&lt;/em&gt; (російською), або &lt;em&gt;CNC&lt;/em&gt; (англійською).&lt;/p&gt;
&lt;p&gt;А поширеним форматом команд є G-код. Наприклад:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;G01 X5 Y7 F200
X10 Y15
X12 Y20
G02 X5 Y5 I0 J-5
X3 Y6 I-2 J0
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Електроніка 3D-принтера сприймає цей код і перетворює його на відповідні дії своїх механізмів.&lt;/p&gt;
&lt;p&gt;Зазвичай, ніхто не створює G-команди для принтера вручну. Це завдання спеціальних програм (&lt;em&gt;слайсер&lt;/em&gt;) що на основі 3D-моделі об'єкта поділять його на шари для друку, продумають оптимальні рухи екструдера, параметри його роботи і створять готовий набір команд (G-код) для принтера.&lt;/p&gt;
&lt;p&gt;Навіть маючи однаковий G-код різні принтери можуть дати різний результат. Швидкість виконання команд, точність роботи, правильність подачі матеріалу і підлаштування під особливості друку конкретних елементів може відрізніятися в залежності від апаратного обладнання та програмного забезпечення яким керується принтер.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Ender control screen" src="https://lh3.googleusercontent.com/bp-M_2Atvtmb-EY9gMRfH1vqEmlxLHM47YkSjTAdGev_VKiRTMuWgOxCCKPcAXLd7__X5T5hbQSKowW30Dzyg5b1N555bn16Fbqog8WloiRAS3VByNW9P-L94m0Q9E2V5mwPbwga2UlhiUNihPAxMb8MXbFhCBvwjbeuevMcZu7FYQpX5KLkgSpu5w43Acyuf2mZprNywdsamSJP6tk-LnBi3_WwiIqLhwsAz-NbIVAT3ASQfrLiZxJSCGoSpTFfpJyC_uEPLF7LU7CtfAxFJS9TSdMG9KcrOhU7GYuCjQPbW9SfJP8DChK8rXg8sS7qGxUjZRrD-R5psC9kqS2ma9lsIr81cfhq2D0kfi_73cln3xEQrxlN3MFPiTmcM01N92dPf-FdCLjOaon3odaKbQJX6ug-LA5takpqJN6EouMSVkW-I28BGRCgFpeJSiS5QBAokRmQ0biDRgmEMcrb-Ya-lJJx9yN-hvgNwV0EcW7C49OWrmMVyGnw9Q1QzLxloKyTnLzbQMZQNcmdgs-27kquIU7-PN9QzomX2pFOorvBdEvCVvNYSNZg-8BC0hSQt0QkU6XsVzQVCnm6y1CfNvIwYIe5iU_iYbZ5R_bHDjmUea4YGVhZDPAmP4lWQupDloIUeHjJoTbzpcXLbXeuKNHauvgA7qHG0dMPb1mCfthkf7ezmdHhCtrLJn55TDKpkjYgSxWXFD9OI5qAHm8B3QKcQdTmuwmux64v3sbLd6BaujBR72YUL_ZE5hB_F8XqATBkP-guNhQKDQc5mpHcPVoFds9jRA0ngjAj-hF3j7D0ax4NQe0bkIt0M-WeyMy9mynxB1kzcmtPOfv-mGMM9ZvU3H0_GqF4KGxmPkCe6JjBLCQJeOJLW0pOeQK-e44EGGw8JChU0VLQFrD9Rge5ak7PIO-Xic2TyOu4TLjUSmerTw=w800-h713-s-no?authuser=0"&gt;&lt;/p&gt;
&lt;p&gt;Кожен виробник принтера може мати свою власну прошивку. Крім стандартного внутрішнього програмного забезпечення (прошивок) з якими постачаються материнські плати принтерів, у більшості випадків, можна використовувати сторонні, які надають обладнанню більше можливостей, а користувачеві більше контролю та тонкого налаштування.&lt;/p&gt;
&lt;p&gt;Наприклад &lt;a href="https://marlinfw.org/"&gt;Marlin&lt;/a&gt; — альтернативна прошивка що замінює "заводську". Деякі принтери вже постачаються з нею, а більшість можна "перешити".&lt;/p&gt;
&lt;p&gt;Існують прошивки що надають ще більше можливостей — віддалене керування друком, веб-інтерфейс, потужна панель керування на екрані принтера, спостереження за друком через камеру,  інтеграція з іншими системами тощо.&lt;/p&gt;
&lt;p&gt;Беззаперечним лідером прошивок "все в одному" є &lt;a href="https://www.klipper3d.org/"&gt;Klipper&lt;/a&gt;. В наступному огляді я опишу процес встановлення Klipper для 3D-принтера.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Klipper" src="https://lh3.googleusercontent.com/7dGf89euhhNf6borX-Cjjq4eAmGLjb36-K5QDephPUv6tO7woc3hNI_iU_wEqJ0rJY78yE73DGeNSG0NRB6IpYRdGQ9XyINk6Uk-xAN9zNvqe4SX_KPU2oxiqePaWhxtU9ekDbx38Ys84PnhenbmEF0cWbTXZ_7yj8oKvlP1085iveZhWSutP5exkbnpNTgZeUThc7y0kMVHtJRTrkejwwGEIfMiH8kb5BM5H72Ojgf_p_Ch-LSxDI8KLA9y_UjQFm9NRjpP3B-hBnnDBcM7fLziEBrTBmGspYwq0NZdzyRNUqiHL63lbaligq3UM4Q9wXZiHuQZGXrRoyIAiTcU0Ckhv1PhFTUT_UmyMsJWuOgc_ijSyOTG0AqmsrWsUm8pYzPG8TxOINY6eQFa1PnlymhjWNedRPywqjYycRDVAemWA8GGd8LGGtbxoV0_1coc-026Q81yDcVKP3OigOFRlVcUcsQNEtyISxMeRsTYObpEsbVxyHXEG2q8uASkFNTdVrl5blaT4ecaH0nbTcC1PusMdLs6fXHB1e5b9TpXDcWBeckHoDdFdYGuwzqRwNQGgaZNlgeT6NtvRvBy15H_YreUjUvPhKEvyhafsraIq8n82ZzYpO3IcFvZgHKlQ9lVCAunixM99C4H01jFBxoZWMpZpPGATwNJ44ueJ5e603VCZG-1JFovKf9EIt_CT9MlNfd2gVimUNXUATTYO8qHMy3q4NK3rgULulFFkR0sm5-g0RpPeZACw51H1r6Cr6cjllwfWtqyCV2hGBVia-988BAL03dSK995d0SZkzo70hEpke2Jds29zX9QSl4Df9c3TBIS8s7si3FxvnvXy11m79AbQHYYjQc8c8BeUwTgV3vetr11LC27KCm6vv2RWOhercJa7_OVkQdu6rIDvHVDvVrUzJj3Pr6bxV2VciVEhNTSzQ=w860-h401-s-no?authuser=0"&gt;&lt;/p&gt;
&lt;p&gt;Встановлення системи Klipper на старенькому нетбуці Asus &lt;a href="/2023-04-09/installing-debian-on-laptop-netbook/"&gt;я описую в наступних статтях&lt;/a&gt;.&lt;/p&gt;</content><category term="Технічні теми"/><category term="3D"/><category term="Debian"/><category term="Klipper"/><category term="marlin"/><category term="G-code"/></entry><entry><title>Прошивка контактора TOMZN TOB8-63WiFi під ESPHome</title><link href="https://yura.stryi.com/2023-02-22/flashing-tomzn-tob8-63wifi-for-esphome/" rel="alternate"/><published>2023-02-22T00:00:00+02:00</published><updated>2023-02-22T00:00:00+02:00</updated><author><name>Юрій Сметана</name></author><id>tag:yura.stryi.com,2023-02-22:/2023-02-22/flashing-tomzn-tob8-63wifi-for-esphome/</id><summary type="html">&lt;p&gt;&lt;img alt="Контактор з Wi-Fi" src="https://lh3.googleusercontent.com/AFnEqOOtHR-6IRK8vzm6rH0jut7wz7GFULVCIEkzN2Fh7t-YSpI9gMPg8CUZCJlpCsU_nD2OZFqK0Hfo9rDzFZzLZYRQc801yD0zF7GYJBQsI8LM1hBxSQ3-OQGVG3_2u3N6A8TE5qZvfl_4ixJwoRrmBkvw375z-rZO1dseJVfAFDdmv2qX6FvDKtDREToMsMuaEYvYFgLDKCM38sI1YBBkswyDKn0WW0sRHaS3XtbjSNsA6x1vl5hpC_RvtFeG1SI8FzCZbmXhDphoAStMk7ksE6L3ZGZ4qfRfi_FI__SyGtYX-qZ3ReoXC8NrKl_nsVwSDhKSJqvTB3ZSLhGFDksRyD--q-dzoz5JNfkI0N1hObceWkV204NjTdsQJiXdm6EAOP_7tLlqwEPczKmYl63A-2xgrMEa1Xy3irFEuz4cXeH3boofkCNEY0pvT-A1WaY2E1O4ZdGMyJXn0g3cIJ6L8kulOwSCHrHCdiGpVxH_U-KB6T2REvqL_R-WI3YNhyY6eRM0JHhbSuQfJd5ewJ0PzNPFirdVgAzUN3YHaYU2gl8FsWfmdUWcPgLvMWSjP6TUIYtVLhAyPtdl2Bfw_GCFU3hjYW_hc26LyzxNYnfKELyXDhLb1BOISwdTBkiGmDvZ7-IYh6kBFJxI9Vc6s66P12cyjqIa624ZA0Q1yuWKzVyBom7olFcfBCOrJe6RL-HEXQMt7hSzNiuMnT2ZXGdYYiHGdYLCwggUYDVAwWM-kp8CLYCQhrzUTUAOixeG3thVAdIdqqyJpPpWDnR2l9vKDcInEo1npD-pmQmy6KHl6FRYF_Uux4q4S5cAftj-HoMeBemagXatELlu4X6sVbRmi4Km0_2-vJ4Ry9xGVzfJEVUAylu41DyQ467vpk5UtJsN-TMVLQgOYsv2m1G3v9wxwGhOo5Mqib3L-wD6zGBR7w=w488-h97-no?authuser=0"&gt;&lt;/p&gt;
&lt;p&gt;Для довгоочікуваного оновлення електромережі гаража потрібно пристрій що вимикав би електрику (зокрема і віддалено), коли в ній нема потреби (наприклад коли в гаражі нікого немає).&lt;/p&gt;
&lt;p&gt;Для цього існують так звані &lt;a href="https://uk.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BD%D1%82%D0%B0%D0%BA%D1%82%D0%BE%D1%80"&gt;контактори&lt;/a&gt; — зовні схожі на звичайні автомати захисту, але вони міняють свій стан (увімкнуто/вимкнено) в залежності від керуючого сигналу. Вони …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;img alt="Контактор з Wi-Fi" src="https://lh3.googleusercontent.com/AFnEqOOtHR-6IRK8vzm6rH0jut7wz7GFULVCIEkzN2Fh7t-YSpI9gMPg8CUZCJlpCsU_nD2OZFqK0Hfo9rDzFZzLZYRQc801yD0zF7GYJBQsI8LM1hBxSQ3-OQGVG3_2u3N6A8TE5qZvfl_4ixJwoRrmBkvw375z-rZO1dseJVfAFDdmv2qX6FvDKtDREToMsMuaEYvYFgLDKCM38sI1YBBkswyDKn0WW0sRHaS3XtbjSNsA6x1vl5hpC_RvtFeG1SI8FzCZbmXhDphoAStMk7ksE6L3ZGZ4qfRfi_FI__SyGtYX-qZ3ReoXC8NrKl_nsVwSDhKSJqvTB3ZSLhGFDksRyD--q-dzoz5JNfkI0N1hObceWkV204NjTdsQJiXdm6EAOP_7tLlqwEPczKmYl63A-2xgrMEa1Xy3irFEuz4cXeH3boofkCNEY0pvT-A1WaY2E1O4ZdGMyJXn0g3cIJ6L8kulOwSCHrHCdiGpVxH_U-KB6T2REvqL_R-WI3YNhyY6eRM0JHhbSuQfJd5ewJ0PzNPFirdVgAzUN3YHaYU2gl8FsWfmdUWcPgLvMWSjP6TUIYtVLhAyPtdl2Bfw_GCFU3hjYW_hc26LyzxNYnfKELyXDhLb1BOISwdTBkiGmDvZ7-IYh6kBFJxI9Vc6s66P12cyjqIa624ZA0Q1yuWKzVyBom7olFcfBCOrJe6RL-HEXQMt7hSzNiuMnT2ZXGdYYiHGdYLCwggUYDVAwWM-kp8CLYCQhrzUTUAOixeG3thVAdIdqqyJpPpWDnR2l9vKDcInEo1npD-pmQmy6KHl6FRYF_Uux4q4S5cAftj-HoMeBemagXatELlu4X6sVbRmi4Km0_2-vJ4Ry9xGVzfJEVUAylu41DyQ467vpk5UtJsN-TMVLQgOYsv2m1G3v9wxwGhOo5Mqib3L-wD6zGBR7w=w488-h97-no?authuser=0"&gt;&lt;/p&gt;
&lt;p&gt;Для довгоочікуваного оновлення електромережі гаража потрібно пристрій що вимикав би електрику (зокрема і віддалено), коли в ній нема потреби (наприклад коли в гаражі нікого немає).&lt;/p&gt;
&lt;p&gt;Для цього існують так звані &lt;a href="https://uk.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BD%D1%82%D0%B0%D0%BA%D1%82%D0%BE%D1%80"&gt;контактори&lt;/a&gt; — зовні схожі на звичайні автомати захисту, але вони міняють свій стан (увімкнуто/вимкнено) в залежності від керуючого сигналу. Вони вміють комутувати великі струми, тому підходять для підключення навіть потужних пристроїв.&lt;/p&gt;
&lt;p&gt;На жаль, для віддаленого керування ними все одно потрібно якийсь "розумний" пристрій. Тому, я вирішив спробувати пристрої що вже мають віддалене керування.&lt;/p&gt;
&lt;p&gt;&lt;img alt="TOMZN TOB8 63A WiFi" src="https://lh3.googleusercontent.com/3btiVxTMRLfxyHklwkQWaLgcLiWmDR1McN184MZk5c4Zl3czIQSS8ChXV39dtSL4md9ZkBRWNBQNVgeSEZbOCO_PEDkDcOwe67oO73iXWxvA7-24BQUJa9tDqG_jUqU2dnsTw5ncxdE0n6KyWhV_-ir779onf9B97oMik4o6nPvQ6oN7TRejZcIWHKeiZWDLjd0LfIj88mx3Hg2HotffH6dpvTfTpOqY94aHqVMoGLcY0oeaRHTsmRVxrE-Obo5oJE5vNvipuXraG8Cug6w4PqOuJ8FNTl3uC2LgDLJqnu9_CML5YVsgowGLsDffs_Fc50ei13YKTDYOBzZqNdXDpS1QnY3zOoC7QH8w4Moi7S27DRSFEFMWfflyMNq-Wl-KTBqvzAzY3O6EFhfgZUBbm0m32StTOBRlcivyMw0ezCKhtdXu0OHpRQdCXPDyDoHnUDMDR5t01XzRzMvaTB6-AQC4fsPFAZH3itu7gK-ashTrJG8FbWjTN357oUPCuCu2F0UQ9lYswnnFuXTHSAtaMUk8txmw4vJ8GhQRAahLkk_x6f3W-_BV8CD8vTvT3pjoaxx64M7e_rop5lclm4dY0jYl-jhJaB1ncBPpnzaYwqO4NP5-TzmSWGUuPH07zY5_gfFTLhD09UbYkPyeEO-15shXEkS0FKOiB85WjOuWa40dHtjtfRco23ofime9ZX72A4cD5k5G9CXENhZlWTLxAGchM11s5cteyl48ch7VNqBb0WCQmfAxoNFgZCbHOM1FTdd28V3woSjM1fmf7sYiIzOYWOP4-1NUYf-yp35Rt1qr2drubeTq5HoVXszJgOiUR1vLhjzlkN7qt3i1o1bvjSqusiQ-vukzW8GRruXZSPB2dLlLpJtGGcNrey4Ms-O1IJqalxZWoLTt-fScUSoNU-sNBkTMBzc7CHoXhkMkHlGVSw=w515-h640-no?authuser=0"&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;TOMZN TOB8-63А WiFi&lt;/strong&gt; вже має вбудований Wi-Fi і може комутувати до 63А (короткочасно, 50А надовго). А також, вимірює споживання електрики (струм, напруга, потужність), тобто такий собі контактор з функцією лічильника електроенергії. Монтується на DIN-рейку в електрощитову. Існують клони (невідомо хто чий) під назвою SMTONOFF 63A.&lt;/p&gt;
&lt;p&gt;Роздрібна вартість в Україні — трохи більше 20 доларів США.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Коробка" src="https://lh3.googleusercontent.com/ij3dmcGFTsj52rwn7tTla7QtvrUA72Az6mP40gl-ZZh6YyUzsMvMomnr9L0T3rhI1uNZ8db8kX3zbdhLFmZEDeBEutuKD2RUkxWwvUv7s24WmQV9z5gPL1bEkBv0kMQ3sbosBROVEkHVwpKtDuza5CfC4M2D60Xxo2cxFjRa2tFHFxHssIGyfKG53rYIP31oDiBDR7TDCXWGHyXgOk_vqXEIahhMNsHIE3oiyngpkPO0TWJI-vqCpqTVEFdGM6vKMaLC5TZpjpZPjWgdarHYF3iO4s2SDCLXORAhvMRW3Omw68KehhIIEawm2ujU3DfS-i2TWB7-QjqIu_wvuP9vVwf_mPTC3P-qX9OiB2dLwuwgJQvkwWZaIRCCRYdAvJPT61uyf2kQyv-vxzgO-Bdfpe1m2jcgDuXdFLK3l-TYpn0FTfSYrVZ1ne3aERUe3NssMxf2cl7Z3ChH97MMRMlCts5Xbc4HdmBNg2cSD4gixpbLpbWOovitbiWLqmPDpj_70uGPceEi8NHTfqZYZxUhHsTP7m98zYCD78G6WHdJLNjXD36XCYkCZ_uOVZlh0hK0nikBaIshavvdHpu3ZoUwn9KiScgE4j5zevMRYOfXW73QqIZKFPq4Bn3TwVZVEVia0tvC1zRpbjXOMAW9zmIFWhsqgaVY_QdZ7uQIHRtBUWJklvgViS_uP7jFK6Z6sAQWaMN_5-onfczbzbnmpO5US386q5nlpejD56fBjBtuOk_RY23HEWNc9e0rqwm9ED77fK0JA7xwe4NvId0-uVdxiRaqK-S0lqKXe-N7w4pM71dhrgu6Lm-8uv-mnb7w-Ec7R4OwiPMCNDeJZtBvNrH87I39bWWzUviBmYKM8Kpv1_px3sxgWFf47VdKvYgxBSyjQuCj-EPYGVIy65hNA2wI9Avx_s26H6tMnZHGXQaHlCjqXg=w489-h240-no?authuser=0"&gt;&lt;/p&gt;
&lt;p&gt;"З коробки" TOMZN вміє працювати через хмарний сервіс eWelink. Але, я хотів інтеграцію з сервером розумного будинку &lt;a href="https://www.home-assistant.io/"&gt;Home Assistant&lt;/a&gt; завдяки прошивці &lt;a href="https://esphome.io/"&gt;ESPHome&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Прошивку ESPHome можна встановити лише на сумісні процесори (ESP). Інколи, виробники замінюють процесори в нових серіях пристроїв. Треба дізнаватися і продавця. Без розбирання, можна взнати процесор якщо під'єднати пристрій до Wi-Fi, дізнатися його MAC-адресу, та по онлайн-базах MAC-адресу взнати виробника. &lt;strong&gt;Espressif Systems&lt;/strong&gt; – сумісний виробник.&lt;/p&gt;
&lt;div class="alert alert-warning" role="alert"&gt;
УВАГА! Некваліфіковане втручання в роботу таких пристроїв може призвести до їх виходу з ладу і становить небезпеку для людини!
&lt;/div&gt;

&lt;p&gt;Корпус зібраний з двох половинок що скріплені заклепками з м'якого металу. Їх початок, з однієї сторони, треба висвердлити свердлом 4 мм. Згодом, заклепка провалюється і її легко вийняти з протилежного боку.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Корпус" src="https://lh3.googleusercontent.com/fife/AMPSemeI88lahqhViSOk3KaM2ttK-3dgvWroXAtQcFLMci4Y7O8bdPmdbwUUgbgNHwlw9_QVN_gC4LZd1Xs35x1CRMh9vz8TX81f4fofiHNJgISCyEUWUQdS7T6aEC8QwU61rswWCfcDQaA3eGUyBvJpPO1Ujkkf0L1u0YBtTuExj7ohJoJTnMk8l6j4lZP35OWwSyxWnf04XAVFtq0ej2NrRgwlSmHsnzDCfq27H62Axk2MfFDtCy8BFfGl2cMQsDOPlfA2JXKkJr_tzMtF8DGhFPZ95IrN7_LvsowWZMY7buMYkDr9GoPdgXjq1jow1oX4U9ww-3ZQiYI3Vz_KgCVpPLeHO9_KeBiGFkhCxd58aXxcShdBv04IuC_NyTKHBs-Q8pJuy75BIXjbHeevoDgsHw9_ymS0xCdIS9pv7WLRTn8YUOOD0-6ZMhnPnMzMP5mrntXqWssuPvjYgw4t6BGvFcM2gusWVZkbRcFZN6CFIJafjmgTslK9FG1-0D1_QKUz_djCsR0B4qCSqLiRYg_w6YLjyOAG3OQc9_7lMbr6XFAmv0SKOExu-R3Ca3_6qbieN6AdRI1huVpTTrVhnyOnhZ7ovY4rMRKiCThVzkS39P7rj-omt-9fPGeIqT_ySl6685DtRCrsKbbyzVIb3ACO3d2htxQZgPVkcF5gd9gSPIzEaAs_ki0z3gZRtfbD74hM-23GJIm2swXqKtK4ze0xtM3-yFGFxnirWvk0NQuxKll4Fcwjef57csbjj7e3dEjTaezoduiv3ASEQXpTCxHGr9zM7FBx4xYeWHHAw_0ZwvsB7w5RofIUc0Jrx_NmsWZzh94vic99Ks4yt8jToAQ_CFGwc-iuQyH6SM4X1fiKrjT5qCHBuLxlASxG8Z6M5nfXKgZAPUzuaSnl_LYhShhm2t9Q5jkm7jGs4ziqCvAQI3xhH5NcTB3uCVVoPChH-4md__1qRn2agkKg7f136O2ELCWjWtKw9nvXPfTk7MvDTCXiaULFLwRT0hY9h2yC_rAVhv2QFrVtJ-8Nv5DGP4WjKZmg1HXg-JCrQRAeaaQqhp0kKOJ3xH97WvDpIlt6YnF1Ekpycx76lhMQAm1u0O-yQyHEUTGszphY8Xo5HrijPh_D3u17bekgRHi0ft_c1mi1-RO-1OlUhxREd3lTCJGpTHURZtuOSEwe5SXVIKg00EV3f-A03M_Spfwjz_UnsD7rsqXq91krEGkEd9AWUlse6kaNCQGXvr7Y5hdDI7UPV2AJOphvIdCNjJm6xWbmG_yOMSeh0lf2pysocHbXmDGJ8MjV_QnT-MT_E2gRu4wUkhKQqdblN_qVMR1w54pGNUaYzHKCWsPeGEraDPGx7isPHDKegSD1lu-t5xGnTafUkiBzjH0bpaisEAwJ9QY8KH-rXyy7bMJ7mlCVFyQphVnEYk_so94NsI4Rn9bzw11WEy3hj0bp7cz_snpPvxwDdQXfYkFA7BNk-3nUxu3prziFWrKdyiKyO13wXG3OU-gE8GmoPlUZgKrd0G7sWYHRyoVF781nSuGqaio1AMle69HBV6t_83ux5ChznAhv_ZXy0e87pVv4A8l_A2xiLHQrbI7dwO3PJXlfzNq1AUWJmXTG65mhP7GIXbRC7oV9svKjKnOt6cIAYoUm7Cq8LH2NlFqkUt7FpasCGjoejrX1R-tAE3JO2rsYBK4KfTsIyTskYdkmOzmIoEgCeq5y1F_zxZpoC2h4zwkW7UjTAmfs5QJkxFTVOg1SEflf0gDY3U8146xOY4VenEN1RCT-2wfeEedADt4L1W-rIBeU0pkrxu3GpW3HUNZfDl7med-HXNb74SDDD3rclnjqYQ9o3MNZxhtMNAB6tjHfx_QzWIrF3z86ZLBgI7WAvvTmKiJ1gGUrJGJfhpMaz6LvwxgXSHKZIKtDuBy_HucwPFFLjlLIP47f-7O4Xdyt8rtIqWK_eWvxs8CWYlRF3Rrp8DZOtCZ5Zys-PWRh1dk-ptBFBvE0m5xYsO9_1yhrahKxWR1rv4wpAKlhlkdFkDFH2_cqzFbHt0z_ElZpyi_Y-N0XAWEF7bVGq5Npr-awRH0HQt6w1KW74hbRygUvbC2rpBjuYruDkkrSxOxi54laKQKtJR8msOJVBPe1qq_NQHVkr717nnMAlX0HwpzIGEAfsIOwGXeMDvB9tuqCCwVgWepajBLFTryf_SCe628ARc92gfyYPc1EPI7dyDEGGtsHkB2Mokc9LG0ORdtqGz_7kbGuITQD47qkfoaHZXABXVTxix08NDlY4baSCPMZQMS3iRS859IH5HaWKGmE3uMbyFB8PXoNHps8fK0HzQ3kBTHr7ozJ2Mz2uJhZR51sCef8_ByO9uDLPJeBNAQSJ_ou1sjykvNyFXjgH87M8d48mazzU4iw_ZsA6sdpo5fKt6Sq1RU4RBzq_QTcWTPnmfYpOxAVJMCZHPZNDlsSPa7miV0oDERCJ-YJ2w23C94iq1a3RbbwMNMiu_7nBuXkQdbnjH_JGvUPp298IEgG4VJgtgxGIKCpdPW5QrjOT-_x3v_k-Iaxr0U69_IfdxRou_qCsrjaYz9pCzMd0b_yuFuTqFFPDYcb1OmLeW_I7_8QJ3g3Swd3MlSLq_JRzH9UCBKpFV5wrSIQue72s8xB-hdnneptPyZ1Hpa0N3bL89oEIEoVX0yxzuePUUF1uiVy7b4cYxEO8jXxP0WS7AX0isQ7JbE3jdrxNNMZR0lEnrFu_xQJHuyoS0leXOsEKl-4-ZaP5N40NEhTF89qGVze4MdUuQyzBKQPiBGhQFfmrEu5YnXq_NgOnLz7GBTBm3dZXhrqKbH6i6V-cBSujZV_tsWZgCknJ-bwejWhALQZvkN5vz_qKxdNVxL0Ayfxm9bBSUsk-sPEalyV_K3aV2rRx7rBGapALxB3E0pnj6toepm_ETZL2Pv9BvvJ7hlqOKuflysLXGOxygYOD95MVWpY9n79swFG3_2X1kH55vD_FOe_XbxXMvk6R1bMyFctuPwnBjBubFCVTaff-2yve9kvJahbUrIwi41fjC7MEEDvtXTy9t3nwoYcmPZ2O6AEvUyhFLg1lej48SZ7D4tBBlGIs57ZN1zbjq4WzHGV9zMtEOHZ0UrJ7C7pHCqHaxkiZ2j_sjF7GTqWMNvvQOzIPX2hlLc2pkljbVA8QWuf6G8v82KsY2TGBAm_dwP4ABQKenl9vg8baCX--g0iqb16xNmqtzapL8Nf-UZCsb6SdFn36J-rAKFxN58f-s0nkURc4mFMTX9GBgSfprrnxuNZ5Esm_jtwRmkQr9bU1OUZpVwaM-Sq9FUxK7uOMDbEpybq6XKMNAV1XNktrFT_LmUdioF-NtkDvqMryrOcWmH3ky8RjYL4Y7YmTiBx0UhuSxTf-hGpn_Yv9xE6e5PNCrFOtz9uZWAXY5j2lSFFzJShkOtkkzzwJ4zYHlrqzjkg0HhhdSZ9p11ULUfDfwbXhPalJ1xy2XTsv8vGXh8n830hwCwxatwsXzO6e_u9n5Wz_0Pw9IhOpakNI_8FHiYLt48BKV--p3zyjU6uIAZmtknMB6yAZLFdl0mgP0By9vKgvbrMMZtOVvEoGN0joLL8vvXorgOeYrAPD9YudMHllRLt9hDGAtDA51KbFWaiRCphaKFpE1XwlvZAONBGEC725cAS0U4KTjRLVTHFAOjbB0jHmUh9yhK0u6Afy4flJf-CCbxMsUDWPT9ZNtXps-qEVlKQFEdxNMO9wbOv1RUctejIFRWo3d01OcllU6nF3PLu_BPg3RO8-YEuODncswmx0LQItQ3734bJ6VEbi3VWvWLKtRw95iq1DmNtueGVWhtb6tppTa3L78bv0iclzdkzXUr8zEcH_Oo1hkRZNo8XDWhdBr56DInepcC52DHJfIQjiYD1Vl8YdeTUAaWBBohgSadavf-1zKaNQ3aXN0MFSb8dJMRN-jW9Y75U2DONBkCNw7LK9OyEOVLqDDNp8EVW_TThx4VYi3m0NUcDVG_XucfPkJ4MtlujNjo8RMgGjAvyzDZlt8UlYG118O8FfHAzSFMvSpFHXgZO1zLUuvKy4SA9wYZu22MpjNMy_2iKqnRgIiKc46g7vKF9ZMhXFOM3zPmz1FM8N3PE5FCNgBgEgAWnnaRAnR93jBINrwiCA_w4MT6c_nO5KX9NfeATfVbw-fmo1k2ilFV6vtzHVWWHGF5rfK3pbyjTnon84zKEAlkUP0tBFOBYQoWWakomP61arAmOfWmlxqUg7I0boYUF9ntGckwRlykP0PQwvtR-IqXBshSBBMbvzB8hdOD2kHKp5DN4M0H4aPwgQwZhnEBpqAKIwP5HskMWisDg5cjMzXFyICEtv4Pn-0yAoOBvhZ5kux3_EVBMI45UBqaELseOKFpZuBrZcH46sT667z46t-leO5GnbFYoK2lh0G3NbSW6ukvMo5aIYsPt4BlZKpH39AURL-WBVNmi0lOKcgg2P7yo81TlWzvReyGqY37NKGCVYJv7ThECQoHlu1r6IGah7coL01ZP8O9lF62k1DIkl5a-6qwtfYA2z78-R0s_5pm2KpkVOyG6qYQshPhe3tpIpNEMHeHoEdFsVNSeKjWxpcqlmOSRY3Q3EKArZGkBP_p5MdB6SAPmb8jMn-qnlV6Vsd4nuQta8FHGbZbP4mUeV9BN05Y_d5V7ewBXEzCxDvunxH3Zmz0sFjhOUMcObAaPsLkJpTQD6QlaR46RS3PUunEfp0sxoTlu5A-Qbki8GOe4uBcYdviS_NR_uvQBfTmDKMqvlfKqFEnyXYNeQQM0A568ugrcT6vABDnz35ovRWdrSzmLcCCrv8bdntZoRrTFAyFIxOiO4Rh6oZP2_SYosP0z3F_witmxdOYn1Z9rT0oT2X0WC2EqHllMJ5VrsEvxavxxpI8ek3bSIWVTtSliboTz9h6KE3wWEW9-dxmkBSu9QMc7rkqgHe5fBWlJ2rwUl1Tep7dLqAXUV2Ncj_CMYKzrwLs79xB7VP14KShsPfiZxl5fkYChHUmb-x8OYLzHOEjlCv_09CPzDHAwdXR8fprOvd64-6Iw9lS9_M-2fi8I0zTvg8ob08OPrRKYkrAdhvWv97oAr5QIDAHoBmcE5i4qtmiypyORsNeoug-WmbLbU7UKuFpPdIG_78hJe5apPP2ePcrv4a6q5_AMG-3vfC9KSsnKrXbVASAMj1IiPrh-y_N3LTmNGL3YLvGlw7985Lsl3e9YXrzgbr7R5-cTvpcE8EbaM76S5tIE6rcId_fdPvPo7hSfzNHot3sGuMKD1leWU7J2VRdUsbYAW0wVJ1IXpH6eFvJ4esnAwWsrcZgIJ_B5J7nIKBsIYBGlF-oXP2rMXbU_vqhRdU8ov4tH4q9uWNjaWqKppyAIR2b3cvH2ccoeYrOpzqpRmvDdwlshir0DkADEeCGHO_hMtgq-GMLs5dLE03WuamerXaE6pbj9gt3rZpTFnlQoog1uf_LuwKYajpKXaG2QZF1MaMNXyapDtw5tJDKOlc9wqEE9N1bQaId6tigDNPICz9Idx-F9mgpQjJKw9ZVxYS2IRlGy7oGpbjzHaZ7mRdFf_x9HXeQUl-LiutZdxT0Za74PoUNGo2r7b1fwyXjH8jho00IOd_RbivuNbSTkTOGEEIIOJCsUVya7LeWFfsL6Mpi4T24Do9f2zvpbbd5vS2Hwfl-U9b8GFK6U6DQ1fr5lX1huPXrG7lCnCl7PLjTUJ20KZoVKqwKi_IT5iY8iE3At2MRsI0Lj0N1S3oVQcowROImtZYKY6p6B-Dh3s1Og_y8YuNkZQc0ejxKVOfUn8zBmjY0J_kBepyjpo1cZfFRno-ohNo5a-UUBBo8_TygJO1dE5o5E24i8j7lBGHe9f9HZoENIAVSDMitMFSk1pMls0KsCBNMxMcEW8eCsE0EN-A3Emu-IvuJ6ECN5ILnEYnyfD1xwaESRSkFJGgZKj2SgztSl2V_com9iLmEPDblPU3eXxXa6jMP-GNGXBI-KlUIJcaHM8lpZD_kyDL_aNz0ruADyuUsa52iBHyNdZOJYozKfU-tTii8sDY4C9BFfx9Ubq_VapHufO158SG-CewAXB5G_ibbsMvLQlsdDJ2En975vxE_7FCoIk_gWRom_H-jQm3EGW6JqWBwmxiOhwhkALWBbdE3F19ZYAEMWBRSC4hZj-6r1WG2v8RzvsJQLwQTyWfV5ykv_hquDpGh0vdnxP7RsJQTTQmQD_j9i1M10UINVIz92a3pLzgd9X1GkAb5X7Md8Qazq2DtnocUPTPR2tglP5de2EJD0e-pKLCG1WGTf8x0uKIFA_DarjISLM696PdNEH7NVI8ibm6JMOGMbjubScbygCwDdYgGNritZYYyIM4yAvBG7SY7pnwXGmRr89n9zcJgT9A_oKd6svXFmZhveR-kpjqzy0PBEYWq0VisarC0W8CCu9XpRQ9Op-4_OaU-hm-vETTo21Fqc8t96BI3kp-fUGOizBSoAt8fUrnrlBTvdb_vA50HMXGGe2RoWwqhID34bYTdQSUSU4mBkamnTXiaxDzND5_KrC_USDpoApJ-vHRe6Cgcs7OoHOYSWOqju2LzHW-PfMnaGu-IEzXlNnMakgIWtudXhsxArCms7nhggTWEDYorCX1YD5ZosMJl47d8jc-0z8xsOM1p3-ZXI6L0EYU3aUzlhIWyVohl24uhY4wg3kl0meiXyakeYPTk7H538EoAXehWTUR8N7JLVajKKoNG-RntatKUk-BeS-CK2vYt3I9IONmr_9fiNNv5_JMVTU6WbZAcwXXrnGDcqa6YSaEJGelvfhdUlrGqfZ1-vGeZ0OGpZknnNKPnnEuGiDJmR0sbfM_j_nm1XasI3GyJNHkvkGnkB2SikKPrKHOZEcUuTLbb3CKB2hc7_JpcdQ8gWV8sBeOvtI5aU3PA3jwBILySDkWwcgta2yIb4dmR4oWg9eayALUqkqXlOeWx8laHA1wubx_D69hJU3nb9AjAAi8akTmKL2h1Pec6_KXwnPU2v5HSuRFVNACWHiXAoPd9oGkfC9f2urizvzYEiC0z6efefoZkSTuqcCb7GnBXUSKxS6YFF1a_D7Y9TkmJ0ZPDgt1VlVAn19V-YYEwd_0Op4_vTBCnUedF5NNQia1_jCYXLpC5yH0F4nbe3ugdGpxdlGlSU1qnVpYlVtLL-sWB86pT569FmKerbEE1JsEisetUUm08tL0zPp3R3lYuu2Tbpf5IHvsSTJmRtbTdmOCl0lHPlGFNeouTFmwcXbCHJKQOfSqgygi_O2D7XKZFtre0c4vU4LS2dQ0OF30KuGGr-6WCAYl69VqL8nBbbhlaK2yvibWbecrL5LLejNKggCY4rD0cDjmpmIYrormQ5TWin3i1evb_K9Xdt3zy8X-c3oSkQUL9AWnrdRyW55AwnG7KapmUUVux1ETfRuGAWbdDhuOINbJXh9c5rMJQslaLSmy6sJT5yv5HEEJBE2r3qdV7GfTEO6oBMCm_90SFr_C63r-CzMM6j4y6V_q_arI0roEU1ADTqVjh0iOHJwaPkrKtPDca3WMaRPdCB6Ck1-321jD9RzbWnBFyEUkrq8HurZwQY9detJ9-iYlQ5O8xdFY3KpDGbfv1uCNADHAfzI4GcWtVnZTxJtJgcVopEdiUIyyETHkbj2j0gz7TpAjLytL7tx1_PQ_bR-WhuxMO_YMBrrS_N6dLLixqzmOsO2iLZ7tpLC54QjwAN1qUxVXeyT3CbCz30MlUlobRy5FaRT9jGhcG6OgkgIBzHhvrE8IeTljyPWPzwJMwf1uatyQ9oWwuLKPIHWGZKm2scuX5oLWdg13SP2shW1EOrKLXbsocX780M4XJwkbtyp2ABhEixhw8iRY3Lhhp2fafF4sS3sERJW4WDickf3zyoJ418bY5h1dLdwAlDHczSKfbPBAwG2x-LwRfUqqUU_mNhblLD-DXRZOvOVGAwdGAPSe-3W-LgnsvUGoGHZj-xqzUNho0qude07aoH6941feA4NJm4kYnP486Z-shYI8Qd0ssqYV8SqISFPHqj2vu7Zm_mvhN4BhYP-iJJdmVNU0DyQCsMeV4ysQRy0N9nsl1SKeWBq3aK7v8gNFjK5oFQpDjy1kTOpiFgGnZZxc57QyHRrqcdWCqbte72xLSdXfFav87eRkT8jSmrav7DBMs9_rk_P-uQTVVLY7efZ3PqowmBe-kCsoQOuKXOmxxtQd9BRmyjF9N0qYfZZPIaCB4QWLSWPnfV6EXUhKpynBtns0TaVR9S-mKeVfQt93qhpq2QQdps-SstT8PBTVHRW4GuWQDTU3_4Int8AZVvdiS7h8nl_NpLiqDg5Hm4PNlWaod4xL4njBFJVIro_Pv8KdrFKKfJhXYrSKG5HukaR88jKqr8THWsPYe2Ez8M0F_aKeNznkX5eQbPECRlCtK7-y2rDwbMrdZ1uuQS80jZv_tVD0BHt8bzcjevAuiQi8FIKqCqn_jmkBNkP1QBrHtc5VAN2kXmT00BGvMmYQEaHGC7J9QjAloCEQY0Eg91_qfh_4v9XidnVgQ1l94FRPohOlckXQWE4THl4pIPE3H_UKYxO5NASvFpQDGQSG6FcjEfF6pN2almOxILERD94Y5m7guzblCnUW_jiLIswchXuMGgpo5vGyvjgx099Di_cikkgwT5vOQX303VnKnufdojsGiCmhviSVLygFFuihJjKNqV7SMFSmx6AMbGcHgSTEFlC7qv0l7PwoBrJRVmUiYBLIsOW75sWkZJ2boQQ0JLuhCqxlwHWrHuxZpDrwboWbvrLoqo3XhS_epSQEIV0owErXbNewPN3ukhRsyBghhMV3QY_xD3x1ilSQhyuoC5n_nSRCMMSbMG_hOrR7VmFoubsocwT_zNqH7xA2xHjiH8DOr6XlPSvgN6aCfgxcUxwmGdVW_YsGONrEs4m3512DQgg5G8FI4bIQ8rJquMokXEA-kRP12XBC3MKMsa244dFEza7W6EypRdOKzgsZqSECLg2mxGS-iebNmhT0roYAY8AjlEaXk9-eVPkU4hgM9j5GCN1txi7oihBE3-3VzpDgIoZhEdV6vnbyryDBeYKCuLMtH-4YsBlUvxgM0NR9LwBrnr_EFOg9gs9jjK03QPrDcrkxzAD3-wdP3fCrRJMssbih3Y2YR0CxPpPCqMU55GOmtrp8DtBGlMYXLvKMMe4XghTnlw65tAdXctBHmqPrMG3bfeU90tqq1XsskZspEDUIaezzALxcuteLmOWfp59BbcbMyDR8FIVHP_0nuCrAhm-4N19q3tAgdakm23zO9an29koecPj01AKk6J8wWGC9ldFxF51AUXQPalpBue-GST3ABmIFIliXnsuFM4GvAlFBZcsWEaUT8UG6HHE3Rf13dFjiWIFqdkBlZ3lHihXXxjHg4uG9VzoFUakYYQ5IWAaKzqqWUHrVFawCKfbZpcbQH134heWsJ-9qJEUbLZynjh2NkQfJaFEtHKNUfz2fWT4xjWs4l0L5L8IkEPFQOcXGuE8ZIqq8sUuCSCKUD-KcCzbcVYULDQzDkEpe7lb6oq-TkYDidnHpPiFycZweGhG2TzxLpdL1_el-d4BXBRw-XcVuZefhhW079vKZo5OtBwwr2krEy1yu_q3ToGL2wM2tNrzwxzMi3T9u5NMOWWFJ9_rYoNKnCT2ZpYmEyRhuAFX-LMMx7cgy-8P2khCuCi-mwf0M-bEQwJVpCPBvWTgad7XrTAysNB6hRW8v6YsexuM01XeR4CKAX6h6koBOdlfsoE3sIPWhVkFabdCiMq3LO_IgeQzGQCQlBT_xEYaX5gbz49wbGiF6vgDezurP-qmD0PDzmh4NeoQj5rT5NXgo0Jr0IjF9shfpnG5yvlCBdUtf8E3Pb18TCK-FF3Wh6J1cIMEnjXoLuvNzJ7fVmrk63PSxDDU0VUdXgH3_rFCgw-QVE89xo3_a8G1ZItNd77gcFTYa6Vaz3hxDVtbpgbDZW_vKyfmf-JjjlFNmRArKVgScMqpOR8hQRbvlCv_osBYO1rN99SLQIqLTzAa2OgprgtUjtoiJ7twi7FAz3wZ93qVx-AhNIuCbAxc_0CkvUxzk1Dja-Y5x8bEsMgexnhW6sDUSxfOn8wzaDyv6tm-wH3QWMYqSpjB_db-0-kSvJohUXO-oBpKzLNhLiN0v1pB7avz-9NnC5bsVh-FMXElARqry5YIzTGe3wPp4PZTXUc0KdnWQEbHuf36-H_eD_AyPP6nzFqVJIpLJFSAE2v4_Vug6642NFhPdr_VHsyCCUB7GHtlSt4So2NtC6zf3lw8EODs5zOJ9oNdpngQMwoyQevclaM1rNEWwFlUILS1UMsVqRsX1IF2VnIJixJhpFQ6CWgMgCjPtUgiA=s1668-w1668-h1250-no?authuser=0"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="Корпус-2" src="https://lh3.googleusercontent.com/dZktmrNW6Ex4DFiKnck8nJb9yiS9A5rFnanxS3_g1xHUL3o24RFgeJxOD9d1V_7ohKmeAaMlU1qv8aI4vrV61PJMfGPUlJI4ClqxFcpZryDiB_-30qNQyfNiRYhRXpj04tEQgbqDQHby9eBj1cq0V3a6S34Qu9NeEJ1R9UCF99MHDIDRnG3LIXd8g3wvO1FTm0od4tTCdDA-QeD4B2sw3C2t6sxdo5wMjfHZhrSAUjIU3UyKUGeg0hQaxoRlnoE5_tqk1zgSbRW79MiIT5CwhVNiLbYv-F8tCTfBl0XwtWe_ZkQOnqN754ATvkh3a7k_vbtOIR-pOL-EGL-tSdRh_BmJl4DU80_hI9oVtlrzO0lOajTXpn3L6R31GxM2C0hm_nz5_ehqBp-b50KtXah9ylJu-jSGAIqmYINGrJB9zrvbOhTT5_j1S1AQlj6RTkIgolsJ2rzo5AkmR-rYLjlp8o0qEvg0p1EiKsYPnkGzFp8cKU8Ll6st_16pfjRBTmVsIn1qPRZUhqfJeiGH8mPGg5bHCmcN1oHAGnG4PSZZnWNEgMppY1OKJq2x_C8Wd0TkXQzRDWq5R3I-CiE-4askkquB2FneU0a-mLDca7Nqrp4H48VGzGItl0gJE1S_QdhD52mJfxMIVaW4sMW9PiDCsXcdAFahMBtOC9jO8ze09ywBGTdq-dp80tOV-ZKg3FLLCbaBuxOHXmIPuJ0JIjSGkfmjpsT9mCJGsXchibxKHlF0U8fNo1omAM_wQeOnSQ_KMChcGcwJCjayQt0CnTarY0nEOLqUzQKrAP9vpoadWyMNxo8-rssFBr9lZ-BMLegVP64dYQSDHpmsaVad4kyEJkMISXkspj4pIRIIrTRdQ900KAIQ_e_9EFT0mRwzK6PgmAeWbHeExPjFGrIYQCE-lkyDXJ0SbEFmJqpjS8nIF5V0fQ=w853-h640-no?authuser=0"&gt;&lt;/p&gt;
&lt;p&gt;Всередині — плата керування з модулем обліку споживання електрики на платформі &lt;strong&gt;CSE7766&lt;/strong&gt;, та реле комутації навантаження. Реле — бістабільне. При зміні положення (вимкн.-увімкн.) воно не потребує електрики, щоб утримуватися в поточному стані.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Всередині" src="https://lh3.googleusercontent.com/MeOEGRb37m77jxX311t7CN0gXDJGTye1-TlPxDg7o6gDsGJTgbww5ikuoD7rDcPtelHUeO7PnaaSQDnyipKVM4LX8Wj_OPA8Q94TlpH-8VZYz3yXhPpQfMT-Ifk69aGn_dx3M3_nLH-bJnlykzZyVINDzbY7yP8I8Udlnh_s3pBndHzCFa_zrFx44K2P5z4C0HC6isIpGPdOiJP6rmPV334K36ebQZsP2S457XgZtODgxKeKaQpqd1YOklKYAt0jf8OPoA3QwW_np2iL_yzKsTaNAC5UM13R4eJCICdaOoPp5paz0wR-gcRQAt83N4a8iW4dhK6YDHmeqTcAwC-tZ1u2MtOTlN4iNNsZSYkYh3jt5wSbwVdl-b124XPHhF6FW8UIwsgK18R-HVWR7MyUegipB91Djgz4KjZr-GfnB5hB5DaUprJqXk_QUXWr9EwBxr7DHdMVe8XoesKvuwxpCGnkGVWqntAZgu6FvL-HDBOSxRJ4Fa9HWvbCr_znP5H9upjVsavZXgVEQp7jM1gKRSeh_7BDtMs9hMTFSlujRiHCZhCeh8083cAcwbKtaFedUzKQJNG8IdCkDzZnojRc7rDMe-hDIPBlc1kdc59aAhh1AKJcrZACaA4ElCxvtvzwOrgPJTKoBttTsiGZNKiVSrqmLDpPc810Lp-z9jqKu-ozqMhppXMFIRX2_lHZEfVWsG-Rk-Iz7PQuevAP0737Sh7qlYJmlYoS4gMZjauCt2GeOEMkHmgt4j8TfFxsdKqWLwH-56dj-CWAby8AKsbu5dhPxlhhmIODgvjR8wpmtKJLtBKY-aSZDarZe_W-VSHXWh6_ujwjnfm0d4onbPM3CIpTGqAZXa5WyLT7YC7jyyZflbQP8w7I0UT-OeXlCRcxSpb7BCXx-tzqfArgOQqIRUEMS3PWgGlCyip6TSGaIUx9Qw=w892-h640-no?authuser=0"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="Всередині-2" src="https://lh3.googleusercontent.com/lB5ZIaAHI4YxKB79jmNaS2q-RaDnRK8QPNwsCayAPBCPok12mzhCelPppHKhBQW9kuC7P2oYeTAUSok6877ao0ccNWv0IloLIEgUf-9odkPn-bTazGC8UnK5hQhCDG1BYyXaoJHqCamCuDjQpjWR6_0EjhcwV5-BlVmntX85YtzEKHluyhaSzeJNaA4UhirfQQxNqJrK8EyMhH_92c09bMQl4ZlJU8_qXNgbM1tICGzyLNa1YzLY8eI4zS-vqE7GP0_SZt54siiPYI1g1grHL98OTP-4-e3tAiAnadp_WFRkHxQAZxOgFrVuew_8ZW0a6OC115EB4LBwzCdOFLnFweMQneP6xXV5CwpyKGd0_VPC3rpZxNGzwQNmwCvFteviDxnrrfAbe8GA21NGHs8p2qFUnLgcywvA3jX91y_lKryz0C-VzheLdTSNAKzps0dlsa65-F463odSHQd-uTbfvQqXnLa8lKpUK7sP5FETkGTviJ7tgC0fs1_eM3O8Y3iM8NsHYkpaCezB2Uva_mmEHQp1X7vKkClvHJDKZkDQmXJoj65MLsqNaJ_WeArtwpc2bUA0rTx2Z2awJmoj98FG_H11CiH1hhu6mJmSmfnZcfMolKr4ICe2xYaNxLBkifaTvW-R37geSenlG8tVLZMGYyTVGMBVREhz6sUXUNdVX24yAu6vnsMlzJ2NWWlAE8wIKVzZlTmANSkYtAdklSQLUZeK9n3CumrCEGUHFh5Dbe9bUy50hOUxsAWVO0k8g2nFmfzd9xL5tQCUWsEwp4uViwWrr0lltDUVhPCfT33C9ikmLpCtG351-xJrCJQQ15HpZbtuKbPCUotdINaq-yRC6iqwUHxzpWe-iUCDHt-UGhHD1Y4wGyFh3_li0_X_b5enAkmuyyiZze0Vm5JQCfx8EwxgA_3tDzY5HQ9l516Uy0IhGw=w853-h640-no?authuser=0"&gt;&lt;/p&gt;
&lt;p&gt;Процесор — на звороті плати. Щоб витягти плату потрібно вийняти кнопку (стиснути 2 вусики з середини) та витягти світлопровідні пластикові елементи, просто витиснувши їх з середини назовні.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Перед тим як витягати плату" src="https://lh3.googleusercontent.com/XkkB_x0AqAiF-5IV2jwPGMnP6kpLVPhZ74ZxKNK8wPAi64YJZ7C82zu2fEXZAH-7bnGzmgcFhp53b7tyrrnecseVp71_Y5MCHrZeU9XHMW-L_IF060URTsOoo7nN32k8AembfK_KXnKCemjOhSQ1J9l2i624Fx4gJxXw9YWO-KEHmpibgrNgVxXWmBmw55stTrLuKQhzfZYurf2ObQpfXeTqGWpyLdtwNdCWwR5WCJK0Y3sbhd4SRpKA9SbHB5dVSkOXdg6N842lbL_yIicHOulVF8vy88Js_1FikypNitLeYst2DJJCodYSXzSCIUEgaTjjMUCRk7Zf6PAN7lTzTBpSiEEB9LaIbm5iG19TSX-768bEggUSC-Dd5Gc7bhPmkgAGkJI0XMQDFnnOhxmH1qLRNKAP8oI4tmn3Y9NZe66HGT44RsxU_4CsqG9Jz2nRFLZCxYDo0wFg9XCC_jUemLcSCjjfiXOtUN41eFfCoX0N7scWFvvEnQLT7eXx-NoUs2nLJg5NSCq1X0e-3rHJNTRO4aJwnvLBf8KT4JYWwdOSqGZm4mEm8Cqw1NzDLoM1yw8wyxh3k50Lgv2dQBHr51OO_2_AyiaVKJGjXQ-Jq3LaBZ2Ua-qdYQk0mPm7QP9ZzEztzAIcards6AJ08zHl_WB764X_gtCLTw_nTTqyZxmu3TF1fu8XRmQOGtmveTctonu0gNbRqZxAmE8H96dYGY4ylcnVwgTZKnFmZvqHeYvsJZOtLSlIcklevzD_rNY7jt_UuA5msatW-V-KdIeGVcgiYZ8ZIO4o2o1I_i2DrVZdkLZIc96oR3ShwFnXEZUfGWWaBqjeOzAkoPw17NLU-Wr1MuvmMAbTzrWRpnPlJLcHyKTjXXEzuWkHtMn5vsXU68e0v32vOmL5OWf5959jl3qPAbwNdjN8JjIMbgO9bt5R3Q=w853-h640-no?authuser=0"&gt;&lt;/p&gt;
&lt;p&gt;Після від'єднання 2-х роз'ємів плату можна легко витягти назовні і перевернути.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Інша сторона плати" src="https://lh3.googleusercontent.com/N_mwW5rW_UIX4XkKgTI4xTYFWxROp_pVtIwKtoBUv5LvDpSJprdU76q2vo8xGfWrfyaLeXz-hyU365M4hT_9wqxvFJlov8GZ3btkyBEa3fqQxPF03zK7SUiqzHPYXW0ToH20efqBk8ndnZo9fuz4DqovQgyOz9aF5YxttVlfJ9Uc4kcvEodnJhyu7Yve9MceLXwHbR2T9fyFFAb1hPFQuRZD8fGxWiJYjKjDN7FX1wVfo4yRg4OBqQpOCG9n1r6Nqzkw3xcTKQxfwQvFXvvNbHkPs-rN48nzAriRMbJyiemWYAE5e-Zrj8jNtjdIsfE5OrJ6vDAk62yFmld_sDSALuf-tf9GjM-OrpW-kaNVpY1dWJXazTMmAbUqIC8Ey2p8cXvcdtyvE-Al7kviSDaC22wTNkW1Se12PK4A0vG0QspfB2f4OadqNJhGBVvwz-42sj1MBMvtRE8kVdAcdFecpYtWLFGWFHanQflejsT-6CqkNhZuS3-9VpSCEX8qmL9kEK94TChgJHQwWrxoSYAdpeOUOQMl3eHo9PIkFkSkWv2hhscS-MjD5tFR_rutZLhKr3BvqJW7MnGQM3dgHv1wB7Y4m1Y30VC2Zh-OcTh9Wp1H6Xn7LEKHCxpolSE2hW8aDP8_CI4Yg_abKNCstQuCXSzt9hiUhpsnAMDmaD0HOGUDbHjSvcimKmDCfkFeiqaPkX56-5F5uXQeaRkLuLh6_GZ_oEE9cBd_YyaQB9pK7enudf15HFO_1vXUgbtUm1Yo3OW2FOM9oPlC9qhAzSK3vEas4e7VF0ws8faS08GAeQc2a2gNk3N6hKQuPWy-xOQUDQMJ5HjYqu0dtddhCaEDuA4Gpg2ohKZqGBQmigNcKv0h7OqfvhfcmYtfjlil_JfTvGl1k_81aWTbigjmsMaGrs6Ja-WI_E3TzD2_FPzXU1TPxg=w853-h640-no?authuser=0"&gt;&lt;/p&gt;
&lt;p&gt;Процесор має дуже дрібні контактні майданчики, до яких потрібно під'єднатися. Нас цікавлять +3.3V, GND i RX/TX.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Контакти процесора" src="https://lh3.googleusercontent.com/nawjoQD0aM-Ge79Tl5HiovCANOKg6PohnHZhW952f9D0Pc4IMmuAeTPM-9o0hgvTqqSKaESByQrqY9xyvX3Jr7jJ86BITJMKmwCDtnkfb_RTtVUB0UydFEAq-6eOqechZz6Ut6R0xRNevN4qcW2lGSBLR-338kApnRpntNDrlsZvoDge1qScXpmvDP9NBRsycb6N0WWg2fewh-sVmP-RGYBeilm-c40zjB45ouvqi6s8_blUJtIJZthUVnSukYDDvDWEDEQ17GmXMgANW14LaRuhyxgD9jExKjonoZV_ucyaLcl_oriXzLQQB6UrsaEZpmzrBj7J8HHAzaxrmuwYP-qmiixqoxmlm1rSDF3Lek0BNpenyMCrCCpCdZJBTc5Jty4J2NCPb4Z_pZil6EBmSifs-5dipGY8jFdjpFH3quocaaiz1MfKbCQK7hAe7uT-rh7lmFK-ARPYeW6LP2QcFnpynfwozzE7gMdyy_zfWhORpF7haWdvgXARUI3j6SSRX09oZWYf86dMQmxWxEZl2CgzjNeuq8Iy2A-PB5Yc1NCoG_17fExtC9S2bY4GYuXUvgofkqkb-8D_31rIgkAyijQcKf3L40GwjJt7q4CsolymfXgdxI1V5Tp_cH7V8CDAUTaCA4e4h71WK6V1UTsXZcR12BinE7tzTztbjldhIsNqM6iIJEwJjpifnqBnkZZrsIloPmkyOC7y0NqagOb2VgM6PczA_5jYEUfvtH2_AmOpFrSvz5AhTAMR20Ugxs3IIa2Ykpct9WbM5CY0vd5pKDP_VYxjRVYLi7n1AJTN6u_XbwmmKk5bgLf4MGeX6IV_6yzm5FuA_zkjp0U82ytK6EvOVm7H52bwFZOnQy-TCdkYIMdsXrQrJ3obVUUrI37CLZmIYq6tvHASaIf28YZbPhESajbyqfQDOew3A24_dk_S_g=s600-no?authuser=0"&gt;&lt;/p&gt;
&lt;p&gt;Навіть тоненьким жалом зробити це акуратно досить складно. Мінус (GND) можна взяти з контактів поруч з процесором.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Підпаяні контакти процесора" src="https://lh3.googleusercontent.com/jUh7zOdc-TWHZJYeIsSn4QcEK_SlMZhWPNu1W8oIBov4SkTzA4CCZC8RzYLCWfdj8pcRdxG8zsc-XyW2Xa0GHsrmTVx2ZacrJmpqEoPjry_-wWorRmdmFQzHnQCBBr9rWocuHWAUlOiUVjeDuAuORH3E5cakObmL4cquBfZRFX0MBug0zxzrizJ8O1dsJyp4ixonMK-0buopEJ3y_qJ7w0SJQfK3KfCXKSUTYUMf42uLVX10txtcy7P5ejTYq3sIR_MyzTGH1IpndwvlT5BzqEvNC3dQQV-i0TUpP31fSHxTzh3mbF9kyO9K2NCjZKJ_gBjecOLXz4yGIt8QAvNFt9Rmi3W_hr6aWPnaaMDYm65YGB4CZvJdx1p-s65SSBuTUtcn8hMtuJyKa04SXh7IhIXfB_bFgcGlKkqWH8Co6wE1ynVlU74ZYOceJqqIz2DC_x6V81m097BXvnMm8Tamq8ukS1r1GN4n93JcQtBTAIuRj_T-6p-ZzEuiOy2TvMZ9KOfHMp3Xc_Q3SvLiNRFcXeryK--6bonkdlJheAEwHzOvBILoJnPIOF-NoQvIwlXIOzv_Ugq-O73H0w1KC4y_kuJxjBi2RiJLAXIZw4yOr0KzzLnyPbjSKV8D_RYzonSlEvA-PoTl95HIhX-rNocRlrueqrqqCfqanGmgPhXlR18hPPK02cEtwx9agcDz1TvIsHmq4a1i8YpLqIngR0bWe_eEG4upqEXMbPFIp2Yx9DPlFVxUG2_VInkJGp34ODjj5sp0w64zrfHNp9djbDjeWjLojX2k3EaVQHOPR4hmY8iWxvYqBpT_QweN_iLm9VO0fi3PVORKgL38PifWPXOmBMBReBiwEjv7w2Ys0ctDXbFzgJO2yobEnr6XCOgtv2vXp3paas7XPlLN6jzlriDFPwQi9rNPzMZAROJ5biJTV1kE9A=w853-h640-no?authuser=0"&gt;&lt;/p&gt;
&lt;p&gt;Прошивати процесор можна подаючи живлення (3,3В) безпосередньо з конвертора FTDI, не треба під'єднувати пристрій до мережі 220В!&lt;/p&gt;
&lt;p&gt;Можна зашити власну прошивку ESPHome, готову &lt;a href="https://tasmota.github.io/install/"&gt;Tasmota&lt;/a&gt;, чи якусь базову для ESP8266. Я генерував власну і прошивав з macOS через скрипт &lt;a href="https://github.com/espressif/esptool"&gt;esptool&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Для переведення пристрою в режим програмування, перед подачею живлення, потрібно тримати затисненою кнопку керування на платі.&lt;/p&gt;
&lt;p&gt;Кілька секунд — і процесор прошито.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;esptool.py&lt;span class="w"&gt; &lt;/span&gt;--chip&lt;span class="w"&gt; &lt;/span&gt;esp8266&lt;span class="w"&gt; &lt;/span&gt;-p&lt;span class="w"&gt; &lt;/span&gt;/dev/cu.usbserial-A52IGJRM&lt;span class="w"&gt; &lt;/span&gt;write_flash&lt;span class="w"&gt; &lt;/span&gt;0x0&lt;span class="w"&gt; &lt;/span&gt;home_b3f0bc.bin
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;img alt="Вивантаження нової прошивки" src="https://lh3.googleusercontent.com/QBxQaQ6MDXcjSsSboTCtw7xDlCxhpVtxs-wY_4eABS2uyltffnXqA6nYP2OjfVzNEA1X3QFubJnuQ7hNKXHVDYKoodGLJ_t-Z3T_IrUFqdKJGtctfCRDmguI1pbsVwjSyY7YTyeAs5GcXjXfYyQCbrxQBmXkD4eSb86d1MzL8-8kd3vs0qaPVk-qFZdqDdoX0AI_KH-G3HFF_FG7DRpxZC3LxYBXkZiCsRLIeRqcQgWcLd-BBEKAIv6jHvdHIMJVdXILqYHaTMH9XhlO7tTlXM-FIOyps_NtW6OYRiinLev7-OMe9nvSGjOXrkzUkMYztpmkx-Bu3YJJZDLvaHxbBuPGaPRhYQLDIUgmxL_qQGkkpzb-G5ZPmJcobIneD49zQMqOzsoiE6YmYm8jUKm6CO3GqQXUY-WU445KNlyOy1DXp1EroO2W086lQFcaV1hca7TK6pIk0raOjbMuh5hsuKI4ceeeDdv9IslsEM6liI3pKXzbGWOz9_LyUKj6rKK6Wu6GmROTIXANLcEMoW9f_odNzb7uT7KPUA0RnttdWSXxC7pRhPsah3M7e0vegO1yJmifIuOZIkhJ-AbqubM70VxdlRKY6FOVVJu67aynLnqj7PIh8df4nTmI30-Tk7HJxj4QJGAZp3kk26KzqPRcyj8fiNH7YeKPBosQDpxI1sYvUTXB-mo6xoe-zvyme8DI_YZPIiSPpfnCQEi_tYMlXWZoIFxbm5UpkUQzi_r0gnt4bxpNGy6v0NcmRuCXodeUxCTKx3IjrzEdnmZsWQtgyjmazhecBcXD30Na8vGobOpoZewsKNDycaaFrz6K_5ST1Yq0A-w6cV4htJzsJBfr2GbWpD2NDAie5i955HabRvls7kv4CJJJvEN9Ml-XV5Pf_O6LuXZIySmuRlgeHpijOcg1Lw6ukI_XWjRioMnS21YHrg=w853-h640-no?authuser=0"&gt;&lt;/p&gt;
&lt;p&gt;Моя базова прошивка використовувала такі входи-виходи:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GPIO13 — світлодіод (статус)&lt;/li&gt;
&lt;li&gt;GPIO0 — кнопка керування&lt;/li&gt;
&lt;li&gt;GPIO03 — опитування модуля обліку споживання електрики&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Код прошивки ESPHome:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nt"&gt;substitutions&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="nt"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;quot;AABBCC&amp;quot;&lt;/span&gt;
&lt;span class="nt"&gt;device_name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;tomzn_63A&lt;/span&gt;
&lt;span class="nt"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;home_${device_name}_${id}&lt;/span&gt;

&lt;span class="nt"&gt;esphome&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="nt"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;home_$id&lt;/span&gt;
&lt;span class="c1"&gt;# platform: ESP8266&lt;/span&gt;

&lt;span class="nt"&gt;esp8266&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="nt"&gt;board&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;esp01_1m&lt;/span&gt;
&lt;span class="nt"&gt;restore_from_flash&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;True&lt;/span&gt;

&lt;span class="nt"&gt;wifi&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="nt"&gt;ssid&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kt"&gt;!secret&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;home_ssid&lt;/span&gt;
&lt;span class="nt"&gt;password&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kt"&gt;!secret&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;home_pass&lt;/span&gt;

&lt;span class="c1"&gt;# Enable logging&lt;/span&gt;
&lt;span class="nt"&gt;logger&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;

&lt;span class="c1"&gt;# Enable Home Assistant API&lt;/span&gt;
&lt;span class="nt"&gt;api&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="nt"&gt;password&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kt"&gt;!secret&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;api_pass&lt;/span&gt;

&lt;span class="nt"&gt;ota&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="nt"&gt;password&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kt"&gt;!secret&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;api_pass&lt;/span&gt;

&lt;span class="nt"&gt;status_led&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="nt"&gt;pin&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="nt"&gt;number&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;GPIO13&lt;/span&gt;
&lt;span class="nt"&gt;inverted&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;False&lt;/span&gt;

&lt;span class="nt"&gt;output&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="p p-Indicator"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;platform&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;gpio&lt;/span&gt;
&lt;span class="nt"&gt;pin&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;GPIO12&lt;/span&gt;
&lt;span class="nt"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;relay_$id&lt;/span&gt;

&lt;span class="nt"&gt;switch&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="p p-Indicator"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;platform&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;output&lt;/span&gt;
&lt;span class="nt"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;quot;switch_$id&amp;quot;&lt;/span&gt;
&lt;span class="nt"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;quot;switch_$id&amp;quot;&lt;/span&gt;
&lt;span class="nt"&gt;output&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;relay_$id&lt;/span&gt;
&lt;span class="nt"&gt;icon&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;mdi:power&lt;/span&gt;
&lt;span class="nt"&gt;restore_mode&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;RESTORE_DEFAULT_OFF&lt;/span&gt;

&lt;span class="nt"&gt;binary_sensor&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="p p-Indicator"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;platform&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;gpio&lt;/span&gt;
&lt;span class="nt"&gt;pin&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="nt"&gt;number&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;GPIO0&lt;/span&gt;
&lt;span class="nt"&gt;mode&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;INPUT_PULLUP&lt;/span&gt;
&lt;span class="nt"&gt;inverted&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;True&lt;/span&gt;
&lt;span class="nt"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;button_$id&lt;/span&gt;
&lt;span class="nt"&gt;on_press&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="nt"&gt;then&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="p p-Indicator"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;switch.toggle&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;quot;switch_$id&amp;quot;&lt;/span&gt;

&lt;span class="nt"&gt;uart&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="nt"&gt;rx_pin&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;GPIO03&lt;/span&gt;
&lt;span class="nt"&gt;baud_rate&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;4800&lt;/span&gt;

&lt;span class="nt"&gt;sensor&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="p p-Indicator"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;platform&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;cse7766&lt;/span&gt;
&lt;span class="nt"&gt;current&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="nt"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;quot;current_$id&amp;quot;&lt;/span&gt;
&lt;span class="nt"&gt;voltage&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="nt"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;quot;voltage_$id&amp;quot;&lt;/span&gt;
&lt;span class="nt"&gt;power&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="nt"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;quot;power_$id&amp;quot;&lt;/span&gt;
&lt;span class="nt"&gt;energy&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="nt"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;quot;energy_$id&amp;quot;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Для того, щоб пристрій запам'ятовував свій останній стан і відновлював його після аварійного зникнення живлення потрібно встановлювати ключ 'restore_from_flash: True'.&lt;/p&gt;
&lt;p&gt;Після підключення пристрою до Home Assistant всі його параметри з'явилися на сторінці системи.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Додано у Home Assistant" src="https://lh3.googleusercontent.com/j9LkrMO_d4rJuO_1N3eSs2MI1VXVG81JZ3cEbiRedVoo0P51tQcj0FCxdd9W6To3O7gvxts1HZNekqh5v7fzoIPr473pxtCJN51WH59nnuWb150KPfy4pI5tdZQvCVqXtplVmpI_54bvS8y3eLKItDilmf0ue4Y7x-EoDQ1XPcsR_ZCNTiqvPFfDSjN1CqSAwyk-bRS-enK-qVPy5YdFwap6vj-kE73nQ_dFPcHtN_fpDgdiZSVv9dCT0_00HJfXuTTcOYFM8BVp2Yws0fhy_UUgn4GnIdSvK4dc4OfQ7DOim5tEhXO34bKvBk_sPqpzi_-0MAZLA_S3Pk00dZY0hROvwL9A2CYZDKoOcdiNViZ3hxxoRN_OGmd9PVeAjybMuTim0EQJuX0OdFrrNX_MHmZLlLn172exu4gTgGDVTQGPvKmy8YJGicanRJSxArNV8nAVX1I2K2Nn8brxeJvcU3dvTTwxstDhY0h3wAvh0t-TFMta63TvdcXZynCrIyl1ep8zoqHkkj573mZmFNF_oiYLq_DtToBa137m1nwS3WmrOhO7QMH12cfcXA_L1vSjZ_jKvUBe3pZG7axVz7YbFZH9z0MjDUnhrB7ZXyN-_Oq-3vIuqQ8T6zgWbRPK-fs0R7QtC4eAChLknSpHmheY9cd6jOlv4P_NPmbdVZdqkMOAdQzMrBpAfIUaB1AawOVOiNwu5eChbRSeQjt-BLgiu-G2YJeGuW_-QH13ZC2fBCpVoV2W7K5n9zMNyXP-Jc7yWeEdH-GTshjK8ha9hb7bjWhzTAnjciA01PvSQV5nVdeg9RSWDmwYxDP-sWs6ALVpZh_Pf5pLC2vHnewPgUoRTmQM5Aw0FhSzozgtKqZLwHKDrAYMelauBOzqq7qiAx3cH93YzwyGGE_6G3E3sNMyClBykArMlRSEKOr2Snd5BDI7cg=w920-h210-no?authuser=0"&gt;&lt;/p&gt;
&lt;div align="center" margin-left="auto" margin-right="auto"&gt;
&lt;iframe width="560" height="315" src="https://www.youtube.com/embed/oS87UrvjseM" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen&gt;&lt;/iframe&gt;
&lt;/div&gt;

&lt;p&gt;Для збирання корпусу я трошки збільшив вхідний отвір свердлом 6 мм, так щоб в ньому ховалася гайка М3. А з іншого боку стягнув болтом М3 довжиною 8 мм. Чудово підійшло.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Нові болтики" src="https://lh3.googleusercontent.com/htAO3TYBukpAPYdt1neUv8reSl5Ie4I9UYqXgC3JGRu_nKNtTN0qfMz-JoqOj2v4DVU5tYleQGO2V21iOHhfn4bGhr61k4qqd0nQJVDIwjdPdIHZT2Gh3OGhVoRzwA1za4rfBZYlIRn964URD9W2taiD028PB8oLW16d4IzMYicu8EtgZXI6WkOEGZ9LxrG_FwmMUOLXYx5O7Tt9EFXVN5Kb2IC_6aG8yC5blNvMkBQnRTkMKoT1XC-4npPbV6ytt2g2W-d9giAYZz3ZDmrhyJ2hLNgWu_IEJslxrt2fxoC7yAgssqj56W4hi6Qlpleo1gFt0mKtMaN6AqZ6QnyVTS-h7M_oL37w48xXd3TvDSQFhbO_2q6TiR6eRano_WAiuMMUSgbPyTy7D3kEvMOr7eprQgzWQK85rQD-or4T5Fk4dp10FFBJFpi-9eERBQuqjuqtCo7qF3VHDjD_bJ4GHa7d0V33pObI5z1j56aqt7ahA8K8X9UzKWIkxhLfkJz9x1oom_wJtAz2v3oLfNlLXpgr8SFAdg1gvq5Nh-D-G_09-SHnCCorUCrPIrM7opTASppKDbVYUCKMYsrHG-4HjbnnbgFHSyDWMQJElRzFcWBWrpTbqiRZbXRediRChqvKtdhpcqwN5iITNYEzr8CP-BllKv1f1F_m4kXeM2LnTMxEsV0ghLnAiCX39Oq7eQYoJOMydgkxJj3GB0jDR_ImhA9-USdwHYrkv1JXnoL7ixFRrmiPWnm5YgIFChbgs72s5y8swXJ_LHM32t-g52-_bgFciY4oYirIPJPKtLkA6gDQV5pyF7nTToYCEt9vlZUflJyE1BwXKCcAwhgGUlDTi2HCxlgApD6AiJCr-OT1q8_KYxVUAc9bhadziB7egmKYhdWjIIug2Qh48lKSKpIcxxcQLh9X2YnVIpVkG0U7cxyxrA=w874-h640-no?authuser=0"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="Зібраний корпус з новими болтами" src="https://lh3.googleusercontent.com/BKc6vcAGpgxVCWjbBaSsHHaCM87rgdWGfIxDDwFPIgKXhL3T-hK4IUVXzXqtNoKaWs_G0PeDkVRL1_C3WUU5qPTige3vFvq3-LfSbiF5YiPhZ6t38FZSGKpIXqY5uS-d9WTdcsxHG2EJJzl7EyUiVB5y4J1CdWj8xl1e7VXYHVILH1Dl0WDdWpHZz7vHyNI13zIuhe1NxZpIpWA0_0FUhpczInr4zzHdiApZPrRhkUaqT1DahLPUKdKeuLKU6hCfd6x3MPuy1pHeGzk9tC8h7yHkjQRhMCP1-iFQ7CeAyYvtL-6mtDGfDlCXlXql7xf8vSAjz624mIzoNeVM-hxrlDOd2EEoYjyueR76CBCeb94t0UpZwHhkhkDPDofqTrAf_5RvRXd6NWcQcRXPUyRfiJhjf1mtXrLJBHJySgQGs0364npaVg42m9L_36NftHn3vonKg9aFP4jEhV2qukAJNOKOzmHw3q76JRorKbj_YDqtLxthxVCJ3-B865gujI_C59wmvfPReWYqWGp2uPiXHrFAUiL1X8rglOxNXY14AOn7DUWsp66S61UeD_kdGhOTy-a_-fTEmBYvKH0oLfNt3Gb3Jj6UT1qba9WZ5z9gq7kakfLab4nltPCrlo9hnwrYm0H1iZDX5gDREyiPJcgLPNyYUoKqLiFHuvw0M-jWSoepRjnaE8xsS2ZAvaLCW8gdVWTMEbzPWa5xRuOpuzzAvxGvqCvJV6gwIlnNLgbMpeQEswegDhdjIDNW62gLyEbR6jQ3djmrA2mxEkV4fbMScuL85hnjwqYk-56coXJMkEOYNk72ESWdpijDttIAb8VLDKoxnPu5naFb_4O-XfUznBaxH0uCeHBNITE_lkckUFwTMdb4EKMbXSEprn71ieUk18gD0yE3wVJC-kw0vYX750WTn124Safi2SR5lvopIELwdA=w853-h640-no?authuser=0"&gt;&lt;/p&gt;</content><category term="Технічні теми"/><category term="HA"/><category term="Home Assistant"/><category term="ESPHome"/><category term="ESP"/><category term="TOMZN"/><category term="Wi-Fi"/></entry><entry><title>Updating git repository with remote data</title><link href="https://yura.stryi.com/en/2023-02-09/updating-git-repository-with-remote-data/" rel="alternate"/><published>2023-02-09T00:00:00+02:00</published><updated>2023-02-09T00:00:00+02:00</updated><author><name>Юрій Сметана</name></author><id>tag:yura.stryi.com,2023-02-09:/en/2023-02-09/updating-git-repository-with-remote-data/</id><summary type="html">&lt;p&gt;&lt;img alt="Repeat! Photo by Brett Jordan" src="https://lh3.googleusercontent.com/D-MebMYnK2HyMjY4lJN_3X0zgDSLJpdq0xZHsfkQT85rfLMl4WaOMtwg8_cEaT98TlnmDkZHQYaYVsQvx1tlGS8k7ONVY6KaIfUJqSVLFefff-Vgtlu3czSsk-u-1qXHHpxVrtWTwxGdiOS1CNeFenitPqiC1xsTR-m_2vf3ezgbEnwW4DPztrfUx5CDPMqSf1SZLmTjLedo7zBJo9I8kDxBWrfJ3aDmpA9HbyURb4Wz6hSsGoZklCtkAlhNbIb-njMchFayaOWjZI0INv1U2kNlb71p8a59bN7H0pGI7ztrYqsqoBxaw3jujCnEfVEMp4dhXWoDmUGy3hhwhuYfWWNQttaNCcNfHEqIwWTpq13BbDqBzL6OzwhXm8pThYqqEQe-i8FpzzGv0FejM6XmFdjn2ie_ts7XhZsIui2e1TYlaHYqqEuN8cHojiHsRtNeiEv1_3UXCEzzp0LyuQZOj9Yd_rWr72eJTv_2YY2-3yr3R652LX_ajdZF-3rOZbZMB-8Tq3-SsFbOiPQvSmHkgx5vgEzvQzm3KUCbk8CEZmdSXBIrb61jJgzWyFGra9yxmE5h0FW_b8VxH1o_WlHzEkwYwc11oynI11XGvdHriCC9DxbV5_RMAPk6SEbmEYV5b-hMl-aJbZ7mSbvvw6CA75EAh34SX8XdFVZjKl3k0Qjb-dP1i66XjvJR9zxQwcV3wCyWW3isC4LmUf6B-md_oW55FpIbJbGMs_KyBg6IuT7Odh_sJX6iVuGprD6bvS1OoyBdfrHYDFMDbYqpWPoqtqNBHGve8jJTIgn3wH3k1aZJRu4IbXeWndt5ilX4q4cZZucpZcN6LncK52SpkiHfI3O0kCyMRi6KN-nk_cM3ViAqy90tBJr99bCbLFYx5GnaRrpnlHXilJNjU6qoBLaupeVzT8rmV43lwiAEJJySozg6kw=w569-h302-no?authuser=0"&gt;&lt;/p&gt;
&lt;p&gt;Sometimes, during the testing it is needed to update local code with the recent changes of some GIT branches, ignoring local changes (overwriting them).&lt;/p&gt;
&lt;p&gt;In my case, I am creating the code on one machine, but testing (multiple tiles) on another.&lt;/p&gt;
&lt;p&gt;Long story short:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;git&lt;span class="w"&gt; &lt;/span&gt;fetch&lt;span class="w"&gt; &lt;/span&gt;--all&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;git&lt;span class="w"&gt; &lt;/span&gt;reset&lt;span class="w"&gt; &lt;/span&gt;--hard …&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</summary><content type="html">&lt;p&gt;&lt;img alt="Repeat! Photo by Brett Jordan" src="https://lh3.googleusercontent.com/D-MebMYnK2HyMjY4lJN_3X0zgDSLJpdq0xZHsfkQT85rfLMl4WaOMtwg8_cEaT98TlnmDkZHQYaYVsQvx1tlGS8k7ONVY6KaIfUJqSVLFefff-Vgtlu3czSsk-u-1qXHHpxVrtWTwxGdiOS1CNeFenitPqiC1xsTR-m_2vf3ezgbEnwW4DPztrfUx5CDPMqSf1SZLmTjLedo7zBJo9I8kDxBWrfJ3aDmpA9HbyURb4Wz6hSsGoZklCtkAlhNbIb-njMchFayaOWjZI0INv1U2kNlb71p8a59bN7H0pGI7ztrYqsqoBxaw3jujCnEfVEMp4dhXWoDmUGy3hhwhuYfWWNQttaNCcNfHEqIwWTpq13BbDqBzL6OzwhXm8pThYqqEQe-i8FpzzGv0FejM6XmFdjn2ie_ts7XhZsIui2e1TYlaHYqqEuN8cHojiHsRtNeiEv1_3UXCEzzp0LyuQZOj9Yd_rWr72eJTv_2YY2-3yr3R652LX_ajdZF-3rOZbZMB-8Tq3-SsFbOiPQvSmHkgx5vgEzvQzm3KUCbk8CEZmdSXBIrb61jJgzWyFGra9yxmE5h0FW_b8VxH1o_WlHzEkwYwc11oynI11XGvdHriCC9DxbV5_RMAPk6SEbmEYV5b-hMl-aJbZ7mSbvvw6CA75EAh34SX8XdFVZjKl3k0Qjb-dP1i66XjvJR9zxQwcV3wCyWW3isC4LmUf6B-md_oW55FpIbJbGMs_KyBg6IuT7Odh_sJX6iVuGprD6bvS1OoyBdfrHYDFMDbYqpWPoqtqNBHGve8jJTIgn3wH3k1aZJRu4IbXeWndt5ilX4q4cZZucpZcN6LncK52SpkiHfI3O0kCyMRi6KN-nk_cM3ViAqy90tBJr99bCbLFYx5GnaRrpnlHXilJNjU6qoBLaupeVzT8rmV43lwiAEJJySozg6kw=w569-h302-no?authuser=0"&gt;&lt;/p&gt;
&lt;p&gt;Sometimes, during the testing it is needed to update local code with the recent changes of some GIT branches, ignoring local changes (overwriting them).&lt;/p&gt;
&lt;p&gt;In my case, I am creating the code on one machine, but testing (multiple tiles) on another.&lt;/p&gt;
&lt;p&gt;Long story short:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;git&lt;span class="w"&gt; &lt;/span&gt;fetch&lt;span class="w"&gt; &lt;/span&gt;--all&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;git&lt;span class="w"&gt; &lt;/span&gt;reset&lt;span class="w"&gt; &lt;/span&gt;--hard&lt;span class="w"&gt; &lt;/span&gt;origin/LOCAL-BRANCH&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;git&lt;span class="w"&gt; &lt;/span&gt;clean&lt;span class="w"&gt; &lt;/span&gt;-f&lt;span class="w"&gt; &lt;/span&gt;-d&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;git&lt;span class="w"&gt; &lt;/span&gt;pull
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Or, to auto-detect the current branch:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;git&lt;span class="w"&gt; &lt;/span&gt;fetch&lt;span class="w"&gt; &lt;/span&gt;--all&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;git&lt;span class="w"&gt; &lt;/span&gt;reset&lt;span class="w"&gt; &lt;/span&gt;--hard&lt;span class="w"&gt; &lt;/span&gt;origin/&lt;span class="sb"&gt;`&lt;/span&gt;git&lt;span class="w"&gt; &lt;/span&gt;branch&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt;&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;/dev/null&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;sed&lt;span class="w"&gt; &lt;/span&gt;-e&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;/^[^*]/d&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-e&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;s/* \(.*\)/\1/&amp;#39;&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;git&lt;span class="w"&gt; &lt;/span&gt;clean&lt;span class="w"&gt; &lt;/span&gt;-f&lt;span class="w"&gt; &lt;/span&gt;-d&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;git&lt;span class="w"&gt; &lt;/span&gt;pull
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Photo by &lt;a href="https://unsplash.com/@brett_jordan?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Brett Jordan&lt;/a&gt; on &lt;a href="https://unsplash.com/photos/TMj1c5wlO3k?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Unsplash&lt;/a&gt;&lt;/p&gt;</content><category term="Технічні теми"/><category term="GIT"/></entry><entry><title>Azure SAML authentification for FortiGate SSL VPN (with Azure MFA)</title><link href="https://yura.stryi.com/en/2021-03-05/fortigate-ssl-vpn-azure-mfa/" rel="alternate"/><published>2021-03-05T00:00:00+02:00</published><updated>2021-03-05T00:00:00+02:00</updated><author><name>Юрій Сметана</name></author><id>tag:yura.stryi.com,2021-03-05:/en/2021-03-05/fortigate-ssl-vpn-azure-mfa/</id><summary type="html">&lt;p&gt;SAML authentification allows Fortigate to use Azure AD service directly as a source of users for SSL VPN and administrative logins.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Fortigate SAML authentication with Azure" src="/images/2021-03-05/SAML-diagram.png"&gt;&lt;/p&gt;
&lt;p&gt;In this article, I focus on &lt;strong&gt;SSL VPN logins&lt;/strong&gt;, but very similarly the admin login can be done though. In FortiOS 6.4 administrative SSO login via SAML is …&lt;/p&gt;</summary><content type="html">&lt;p&gt;SAML authentification allows Fortigate to use Azure AD service directly as a source of users for SSL VPN and administrative logins.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Fortigate SAML authentication with Azure" src="/images/2021-03-05/SAML-diagram.png"&gt;&lt;/p&gt;
&lt;p&gt;In this article, I focus on &lt;strong&gt;SSL VPN logins&lt;/strong&gt;, but very similarly the admin login can be done though. In FortiOS 6.4 administrative SSO login via SAML is now part of Security Fabric and can be configured from GUI.&lt;/p&gt;
&lt;p&gt;The following setup was tested on FortiOS 6.2.7 and FortiOS 6.4.5 (with bugs described in debugging the section) on both physical FortiGate and virtual AWS applience.&lt;/p&gt;
&lt;div class="toc"&gt;&lt;span class="toctitle"&gt;Table of contents:&lt;/span&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#azure-setup"&gt;Azure setup&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#new-azure-app"&gt;New Azure app&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#app-settings"&gt;App settings&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#basic-saml-configuration"&gt;Basic SAML Configuration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#user-attributes-claims"&gt;User Attributes &amp;amp; Claims&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#connection-urls"&gt;Connection URLs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#azure-certificate"&gt;Azure certificate&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#azure-part"&gt;Azure part&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#fortigate-part"&gt;FortiGate part&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#azure-users-and-groups"&gt;Azure users and groups&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#conditional-access"&gt;Conditional access&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#fortigate-setup"&gt;FortiGate setup&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#saml-connection"&gt;SAML connection&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#fortigates-groups-connected-to-azure"&gt;FortiGates groups connected to Azure&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#azure-part_1"&gt;Azure part&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#fortigate-part_1"&gt;FortiGate part&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#fortigate-firewall-policy"&gt;FortiGate firewall policy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#very-important-timeouts"&gt;Very important — timeouts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#forticlient-ems-setup"&gt;FortiClient EMS setup&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#forticlient-manual-setup-and-run"&gt;FortiClient manual setup and run&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#troubleshooting-and-debugging"&gt;Troubleshooting and debugging&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#references"&gt;References&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="azure-setup"&gt;Azure setup&lt;/h2&gt;
&lt;h3 id="new-azure-app"&gt;New Azure app&lt;/h3&gt;
&lt;p&gt;Login into Azure Active Directory admin center at &lt;a href="https://aad.portal.azure.com"&gt;https://aad.portal.azure.com&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Click &lt;strong&gt;Enterprise applications&lt;/strong&gt; in the main menu and then &lt;strong&gt;+New application&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="/images/2021-03-05/2732884005.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
Search for &lt;code&gt;FortiGate&lt;/code&gt; and choose the corresponding result:&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="/images/2021-03-05/2733637670.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
Give it distinguish name and press &lt;strong&gt;Create&lt;/strong&gt; at the bottom of the page:&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="/images/2021-03-05/2733867029.png"&gt;&lt;/p&gt;
&lt;h3 id="app-settings"&gt;App settings&lt;/h3&gt;
&lt;p&gt;Adding the new application will take a few seconds. You should be redirected to the app setting page. If not - go back to the &lt;strong&gt;Enterprise applications&lt;/strong&gt; section and find the new app manually (by first letters of the name), open it by clicking:&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="/images/2021-03-05/2733637676.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
In &lt;strong&gt;2. Set up single sign on&lt;/strong&gt; click &lt;strong&gt;Get Started&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="/images/2021-03-05/2733637682.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
and choose &lt;strong&gt;SAML&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="/images/2021-03-05/2733899815.png"&gt;&lt;/p&gt;
&lt;h3 id="basic-saml-configuration"&gt;Basic SAML Configuration&lt;/h3&gt;
&lt;p&gt;Create SSL VPN portal base address. Check &lt;strong&gt;IP-address&lt;/strong&gt; or FQDN of Fortigate interface used for incoming SSL VPN connection and available from the world (usually WAN). And SSL VPN TCP &lt;strong&gt;port&lt;/strong&gt; (usually 10443). Also, note a &lt;strong&gt;Server Certificate&lt;/strong&gt; name. You can see this data on &lt;strong&gt;SSL-VPN Settings&lt;/strong&gt; page of the FortiGate:&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="/images/2021-03-05/2733965377.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
In my test case, the SSL VPN portal address base is &lt;code&gt;https://54.72.124.53:10443&lt;/code&gt;. Use FQDN (&lt;a href="https://example-site.com:10443"&gt;https://example-company.com:10443&lt;/a&gt; if this domain points to the correct SSL VPN portal IP address).&lt;/p&gt;
&lt;p&gt;Go back to Azure. In the App settings click &lt;strong&gt;Edit&lt;/strong&gt; under section &lt;strong&gt;1&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="/images/2021-03-05/2733473817.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
Put the following&lt;/p&gt;
&lt;table class="table"&gt;
    &lt;thead&gt;
        &lt;tr&gt;
            &lt;th&gt;Parameter&lt;/th&gt;
            &lt;th&gt;Value&lt;/th&gt;
        &lt;/tr&gt;
    &lt;/thead&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td&gt;Identifier (Entity ID)&lt;/td&gt;
            &lt;td&gt;https://example-company.com:10443/remote/saml/metadata/&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;Reply URL&lt;/td&gt;
            &lt;td&gt;https://example-company.com:10443/remote/saml/login/&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;Sign on URL&lt;/td&gt;
            &lt;td&gt;https://example-company.com:10443/remote/login&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;Relay State&lt;/td&gt;
            &lt;td&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;Logout Url&lt;/td&gt;
            &lt;td&gt;https://example-company.com:10443/remote/saml/logout/&lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;Make sure that value is set as &lt;strong&gt;Default&lt;/strong&gt; were available:&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="/images/2021-03-05/2733965383.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
Finally, &lt;strong&gt;Save&lt;/strong&gt;. When asked for a test — skip it by now.&lt;/p&gt;
&lt;h3 id="user-attributes-claims"&gt;User Attributes &amp;amp; Claims&lt;/h3&gt;
&lt;p&gt;Under section &lt;strong&gt;2&lt;/strong&gt; click &lt;strong&gt;Edit&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="/images/2021-03-05/2733899837.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
Click &lt;strong&gt;+ Add new claim&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="/images/2021-03-05/2733047901.png?width=680"&gt;&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
During one of the tests "Add new claim" was inactive. I found no reason for this — just re-created the Azure App.&lt;/p&gt;
&lt;p&gt;Set the following (use autocompletion when possible):&lt;/p&gt;
&lt;table class="table"&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Name&lt;/td&gt;
&lt;td&gt;username&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Source attrribute&lt;/td&gt;
&lt;td&gt;user.userprincipalname&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;Then Save:&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="/images/2021-03-05/2733113390.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
We need to add another claim, this time a &lt;strong&gt;Group claim&lt;/strong&gt;. But this option was always unavailable for me. We can edit existed group claim. I am still not sure about this part.&lt;/p&gt;
&lt;p&gt;Click on &lt;strong&gt;user.groups [SecurityGroup]&lt;/strong&gt; (do not use context menu •••). Enable &lt;strong&gt;Customize the name of the group claim&lt;/strong&gt;. Set:&lt;/p&gt;
&lt;table class="table"&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Name&lt;/td&gt;
&lt;td&gt;group&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;&lt;strong&gt;Save&lt;/strong&gt; and close setting:&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="/images/2021-03-05/2732851244.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
The final setting should look like this (check &lt;strong&gt;username&lt;/strong&gt; and &lt;strong&gt;group&lt;/strong&gt; parameters):&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="/images/2021-03-05/2734424067.png"&gt;&lt;/p&gt;
&lt;h3 id="connection-urls"&gt;Connection URLs&lt;/h3&gt;
&lt;p&gt;From section &lt;strong&gt;4 Set up Test FortiGate SSL VPN&lt;/strong&gt; copy and save (we will use it later) content of&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Login URL&lt;/li&gt;
&lt;li&gt;Azure AD Identifier&lt;/li&gt;
&lt;li&gt;Logout URL&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="" src="/images/2021-03-05/2732884032.png"&gt;&lt;/p&gt;
&lt;h3 id="azure-certificate"&gt;Azure certificate&lt;/h3&gt;
&lt;p&gt;&lt;br/&gt;&lt;/p&gt;
&lt;h4 id="azure-part"&gt;Azure part&lt;/h4&gt;
&lt;p&gt;From section &lt;strong&gt;3 SAML Signing Certificate&lt;/strong&gt; download file under &lt;strong&gt;Certificate (Base64)&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="/images/2021-03-05/2736717863.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
Save the file to the local computer.&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="/images/2021-03-05/2733178919.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
If the certificate is wrong, most likely you will get this error later on:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;samld_sp_login_resp [747]: Failed to process response message. ret=440(The profile cannot verify a signature on the message)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;br/&gt;&lt;/p&gt;
&lt;h4 id="fortigate-part"&gt;FortiGate part&lt;/h4&gt;
&lt;p&gt;In the FortiGate UI go to the &lt;strong&gt;System → Certificates&lt;/strong&gt; section. Then do &lt;strong&gt;Import → Remote Certificate&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="/images/2021-03-05/2733539367.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
Click &lt;strong&gt;+Upload&lt;/strong&gt;. Choose the Azure certificate (.cer file) which has just been downloaded and press &lt;strong&gt;OK&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="/images/2021-03-05/2733506593.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
The certificate will appear in &lt;strong&gt;Remote Certificate&lt;/strong&gt; section with the name &lt;strong&gt;REMOTE_CERT_n&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="/images/2021-03-05/2733146139.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
Give it a reasonable name in CLI, if you want:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nf"&gt;config&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;vpn&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;certificate&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;remote&lt;/span&gt;
&lt;span class="nf"&gt;rename&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;REMOTE_Cert_1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;to&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Azure_SAML&lt;/span&gt;
&lt;span class="nf"&gt;end&lt;/span&gt;

&lt;span class="nf"&gt;show&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;vpn&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;certificate&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;remote&lt;/span&gt;

&lt;span class="nf"&gt;FTG-example&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;show&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;vpn&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;certificate&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;remote&lt;/span&gt;
&lt;span class="nf"&gt;config&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;vpn&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;certificate&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;remote&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nf"&gt;edit&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Azure_SAML&amp;quot;&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nf"&gt;set&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;range&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;global&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nf"&gt;next&lt;/span&gt;
&lt;span class="nf"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;img alt="" src="/images/2021-03-05/2733637694.png"&gt;&lt;/p&gt;
&lt;h3 id="azure-users-and-groups"&gt;Azure users and groups&lt;/h3&gt;
&lt;p&gt;Not sure about this, but for test purposes add the user who can use our SAML SSL VPN login. In a real-life environment you would probably allow all users to use the app or use group-based assignment.&lt;/p&gt;
&lt;p&gt;In the App settings open &lt;strong&gt;Users and groups&lt;/strong&gt;, then &lt;strong&gt;+ Add user/group&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="/images/2021-03-05/2733539382.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
Click &lt;strong&gt;None selected&lt;/strong&gt; first:&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="/images/2021-03-05/2733637706.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
Search for the user, click it, click &lt;strong&gt;Select&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="/images/2021-03-05/2733441092.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
And, finally, &lt;strong&gt;Assign&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="/images/2021-03-05/2732851250.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
We have the first user now:&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="/images/2021-03-05/2732884055.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
There are other user-related settings in &lt;strong&gt;Properties&lt;/strong&gt; page of the App, but we do not use them at the moment.&lt;/p&gt;
&lt;h3 id="conditional-access"&gt;Conditional access&lt;/h3&gt;
&lt;p&gt;From the main page of the App, in section &lt;strong&gt;4. Conditional Access,&lt;/strong&gt; click &lt;strong&gt;Create a policy&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="/images/2021-03-05/2732884061.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
Then &lt;strong&gt;+ New policy&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="/images/2021-03-05/2733342773.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
Give it a name and under &lt;strong&gt;Users and groups&lt;/strong&gt; select &lt;strong&gt;All users&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="/images/2021-03-05/2733867056.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
Under &lt;strong&gt;Grant&lt;/strong&gt; section, enable &lt;strong&gt;Require multi-factor authentication&lt;/strong&gt;, press &lt;strong&gt;Select&lt;/strong&gt;, switch &lt;strong&gt;Enable policy&lt;/strong&gt; to &lt;strong&gt;On&lt;/strong&gt;, click &lt;strong&gt;Create&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="/images/2021-03-05/2733637714.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
The result:&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="/images/2021-03-05/2733506616.png"&gt;&lt;/p&gt;
&lt;h2 id="fortigate-setup"&gt;FortiGate setup&lt;/h2&gt;
&lt;p&gt;Considering that the basic SSL VPN setup is already done.&lt;/p&gt;
&lt;p&gt;We need to create FortiGate SAML connection server and local groups connected to the remote Azure groups via FortiGate SAML server.&lt;/p&gt;
&lt;h3 id="saml-connection"&gt;SAML connection&lt;/h3&gt;
&lt;p&gt;To accomplish this step you will need:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SSL VPN portal address and port (&lt;strong&gt;example-company.com:10443&lt;/strong&gt;)&lt;/li&gt;
&lt;li&gt;SAML IdP URLs from &lt;strong&gt;Azure app&lt;/strong&gt; (Connection URLs, &lt;strong&gt;Step 4&lt;/strong&gt;)&lt;/li&gt;
&lt;li&gt;Local certificate name (e.q &lt;em&gt;Fortinet_Factory&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;Remote certificate name (we renamed it to &lt;strong&gt;Azure_SAML&lt;/strong&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In the FortiGate console:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nf"&gt;config&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;user&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;saml&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nf"&gt;edit&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;quot;azure-saml&amp;quot;&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nf"&gt;set&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;cert&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Fortinet_Factory&amp;quot;&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nf"&gt;set&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;entity-id&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;quot;https://example-company.com:10443/remote/saml/metadata/&amp;quot;&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nf"&gt;set&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;single-sign-on-url&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;quot;https://example-company.com:10443/remote/saml/login/&amp;quot;&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nf"&gt;set&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;single-logout-url&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;quot;https://example-company.com:10443/remote/saml/logout/&amp;quot;&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nf"&gt;set&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;idp-entity-id&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;quot;https://sts.windows.net/YYY-e027-4bb6-a213-XXX/&amp;quot;&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nf"&gt;set&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;idp-single-sign-on-url&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;quot;https://login.microsoftonline.com/YYY-e027-4bb6-a213-XXX/saml2&amp;quot;&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nf"&gt;set&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;idp-single-logout-url&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;quot;https://login.microsoftonline.com/YYY-e027-4bb6-a213-XXX/saml2&amp;quot;&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nf"&gt;set&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;idp-cert&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Azure_SAML&amp;quot;&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nf"&gt;set&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;user-name&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;quot;username&amp;quot;&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nf"&gt;set&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;group-name&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;quot;group&amp;quot;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nf"&gt;next&lt;/span&gt;
&lt;span class="nf"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Where:&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
&lt;code&gt;set cert&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Use local certificate name. Ideally, it should be your purchased SSL certificate for the domain you use for SSL VPN (i.e. &lt;a href="http://example-company.com"&gt;example-company.com&lt;/a&gt;). It also available on SSL-VPN settings page:&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="/images/2021-03-05/2737111053.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
&lt;code&gt;set entity-id&lt;/code&gt; &lt;code&gt;set single-sign-on-ur&lt;/code&gt; &lt;code&gt;set single-logout-url&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Just use it exactly as it is, but change &lt;code&gt;example-company.com:10443&lt;/code&gt; for your own address and port. It corresponds to the addresses we set in Azure app settings in &lt;strong&gt;Basic SAML Configuration&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="/images/2021-03-05/2736980004.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
&lt;code&gt;set idp-entity-id&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Azure AD Identifier&lt;/strong&gt; from Azure app settings &lt;strong&gt;4 Set up Test FortiGate SSL VPN&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="/images/2021-03-05/2736390183.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
&lt;code&gt;set idp-single-sign-on-url&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Login URL from Azure app settings &lt;strong&gt;4 Set up Test FortiGate SSL VPN&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="/images/2021-03-05/2736586796.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
&lt;code&gt;set idp-single-logout-url&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Logout URL from Azure app settings &lt;strong&gt;4 Set up Test FortiGate SSL VPN&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="/images/2021-03-05/2736783390.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
&lt;code&gt;set idp-cert&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;The one we downloaded from Azure app settings, imported into the Fortigate, and renamed for convenience.&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="/images/2021-03-05/2733637694.png"&gt;&lt;/p&gt;
&lt;h3 id="fortigates-groups-connected-to-azure"&gt;FortiGates groups connected to Azure&lt;/h3&gt;
&lt;h4 id="azure-part_1"&gt;Azure part&lt;/h4&gt;
&lt;p&gt;FortiGate will use the Azure group as an assignment to local groups. They will be used as user groups in firewall policies. We need to create one or use existed &lt;strong&gt;Security&lt;/strong&gt; group. Find the Azure group ID first.&lt;/p&gt;
&lt;p&gt;On the main page of the &lt;strong&gt;Azure Active Directory admin center&lt;/strong&gt; click &lt;strong&gt;Groups&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="/images/2021-03-05/2736357430.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
Search group by name. Click on the desired group name:&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="/images/2021-03-05/2736619570.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
Copy the Object ID of the group:&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="/images/2021-03-05/2736685091.png"&gt;&lt;/p&gt;
&lt;h4 id="fortigate-part_1"&gt;FortiGate part&lt;/h4&gt;
&lt;p&gt;Now, knowing Azure group ID link iot with the FortiGate group:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nf"&gt;config&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;user&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;group&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nf"&gt;edit&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;quot;SAML_AZ_ALL&amp;quot;&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nf"&gt;set&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;member&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;quot;azure-saml&amp;quot;&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nf"&gt;config&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;match&lt;/span&gt;
&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="nf"&gt;edit&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;
&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="nf"&gt;set&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;server-name&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;quot;azure-saml&amp;quot;&lt;/span&gt;
&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="nf"&gt;set&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;group-name&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;quot;YYY-a79a-40f0-a2df-XXX&amp;quot;&lt;/span&gt;
&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="nf"&gt;next&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nf"&gt;end&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nf"&gt;next&lt;/span&gt;
&lt;span class="nf"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Where &lt;code&gt;set server-name&lt;/code&gt; and &lt;code&gt;set server-name&lt;/code&gt; are the SAML connection name we have just created in the FortiGate, and &lt;code&gt;set group-name&lt;/code&gt; corresponds to group ID we have copied from Azure portal.&lt;/p&gt;
&lt;p&gt;Check FortiGate groups info, the group should also be there:&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="/images/2021-03-05/2736619580.png"&gt;&lt;/p&gt;
&lt;h3 id="fortigate-firewall-policy"&gt;FortiGate firewall policy&lt;/h3&gt;
&lt;p&gt;The system needs the policy to allow users to connect via SSL VPN.&lt;/p&gt;
&lt;p&gt;Remember — the first policy that matches some user’s group will set this group as user default (main) and an appropriate VPN portal will be chosen based on this group.&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="/images/2021-03-05/2737012749.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
The incoming interface should be &lt;strong&gt;ssl.root&lt;/strong&gt;. Make sure to add &lt;strong&gt;SAML&lt;/strong&gt; group as &lt;strong&gt;Source&lt;/strong&gt;. Keep attention to NAT and other settings depending on your setup.&lt;/p&gt;
&lt;h3 id="very-important-timeouts"&gt;Very important — timeouts&lt;/h3&gt;
&lt;p&gt;In all my cases, it did not work until I tweaked some connection timeouts or you will get errors similar to:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nv"&gt;Timeout&lt;/span&gt; for connection &lt;span class="mh"&gt;0x7f1123ba2000&lt;/span&gt;.
&lt;span class="nv"&gt;Destroy&lt;/span&gt; sconn &lt;span class="mh"&gt;0x7f1123ba2000&lt;/span&gt;, connSize&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;0.&lt;/span&gt; (root)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Set:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nf"&gt;config&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;system&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;global&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nf"&gt;set&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;remoteauthtimeout&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;180&lt;/span&gt;
&lt;span class="nf"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;And, just to be sure:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nf"&gt;config&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;vpn&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;ssl&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;settings&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nf"&gt;set&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;login-timeout&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;180&lt;/span&gt;
&lt;span class="nf"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h3 id="forticlient-ems-setup"&gt;FortiClient EMS setup&lt;/h3&gt;
&lt;p&gt;VPN connection can be added via EMS for all FortiClient that are connected to it. Edit endpoint profile in the EMS &lt;strong&gt;Endpoint Profiles → Manage profiles&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Add Tunnel&lt;/strong&gt; in the &lt;strong&gt;VPN Tunnels&lt;/strong&gt; section of &lt;strong&gt;VPN&lt;/strong&gt; tab of the profile.&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="/images/2021-03-05/2738684034.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
Check the Fortigate &lt;strong&gt;address&lt;/strong&gt; and SSL VPN &lt;strong&gt;port&lt;/strong&gt; number:&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="/images/2021-03-05/2738585716.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
Activate &lt;strong&gt;Enable SAML Login&lt;/strong&gt; in &lt;strong&gt;Advanced Settings&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="/images/2021-03-05/2740518939.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
Wait till the FortiClients populated the settings.&lt;/p&gt;
&lt;h2 id="forticlient-manual-setup-and-run"&gt;FortiClient manual setup and run&lt;/h2&gt;
&lt;p&gt;SAML-based VPN connection available in FortiClient &lt;strong&gt;6.4.0+&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;During the setup of SSL VPN connection manually enable &lt;strong&gt;Single Sign On (SSO) for VPN Tunnel&lt;/strong&gt; and make sure that the Fortigate address and SSL VPN port number are correct:&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="/images/2021-03-05/2740813843.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
You should see &lt;strong&gt;SAML login&lt;/strong&gt; button when SSO-enabled connection is chosen:&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="/images/2021-03-05/2738684028.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
Try to login and provide Azure user email and password:&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="/images/2021-03-05/2740748484.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
If everything is fine — MFA request will be displayed:&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="/images/2021-03-05/2740748490.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
If not — don’t panic and please read the troubleshooting section below.&lt;/p&gt;
&lt;h2 id="troubleshooting-and-debugging"&gt;Troubleshooting and debugging&lt;/h2&gt;
&lt;p class="alert alert-warning"&gt;Current FortiOS 6.4.5 has a bug that causes the system to select an incorrect default user group and thus an incorrect VPN portal. FortiOS 6.2.7 has no such problem.&lt;/p&gt;
&lt;p&gt;If login was successfull, you can check logged in users wia &lt;strong&gt;SSL-VPN&lt;/strong&gt; users widget of FortiOS:&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="/images/2021-03-05/4.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
and via &lt;strong&gt;Firewall Users&lt;/strong&gt; widget to see user groups:&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="/images/2021-03-05/5.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
As well as from CLI with &lt;code&gt;get vpn ssl monitor&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# get vpn ssl monitor&lt;/span&gt;
SSL&lt;span class="w"&gt; &lt;/span&gt;VPN&lt;span class="w"&gt; &lt;/span&gt;Login&lt;span class="w"&gt; &lt;/span&gt;Users:
&lt;span class="w"&gt; &lt;/span&gt;Index&lt;span class="w"&gt;   &lt;/span&gt;User&lt;span class="w"&gt;    &lt;/span&gt;Group&lt;span class="w"&gt;   &lt;/span&gt;Auth&lt;span class="w"&gt; &lt;/span&gt;Type&lt;span class="w"&gt;      &lt;/span&gt;Timeout&lt;span class="w"&gt;         &lt;/span&gt;Auth-Timeout&lt;span class="w"&gt;    &lt;/span&gt;From&lt;span class="w"&gt;     &lt;/span&gt;HTTP&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;in&lt;/span&gt;/out&lt;span class="w"&gt;    &lt;/span&gt;HTTPS&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;in&lt;/span&gt;/out&lt;span class="w"&gt;    &lt;/span&gt;Two-factor&lt;span class="w"&gt; &lt;/span&gt;Auth
&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="w"&gt;       &lt;/span&gt;Yuriy.Smetana@example-company.com&lt;span class="w"&gt;    &lt;/span&gt;SAML_AZ_ALL&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="m"&gt;256&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="w"&gt;           &lt;/span&gt;&lt;span class="m"&gt;840&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="m"&gt;28369&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="m"&gt;153&lt;/span&gt;.53.53.53&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;/0&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;/0&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;

SSL&lt;span class="w"&gt; &lt;/span&gt;VPN&lt;span class="w"&gt; &lt;/span&gt;sessions:
&lt;span class="w"&gt; &lt;/span&gt;Index&lt;span class="w"&gt;   &lt;/span&gt;User&lt;span class="w"&gt;    &lt;/span&gt;Group&lt;span class="w"&gt;   &lt;/span&gt;Source&lt;span class="w"&gt; &lt;/span&gt;IP&lt;span class="w"&gt;      &lt;/span&gt;Duration&lt;span class="w"&gt;        &lt;/span&gt;I/O&lt;span class="w"&gt; &lt;/span&gt;Bytes&lt;span class="w"&gt;       &lt;/span&gt;Tunnel/Dest&lt;span class="w"&gt; &lt;/span&gt;IP
&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="w"&gt;       &lt;/span&gt;Yuriy.Smetana@example-company.com&lt;span class="w"&gt;    &lt;/span&gt;SAML_AZ_ALL&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="m"&gt;193&lt;/span&gt;.53.53.53&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="m"&gt;424&lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="m"&gt;42112&lt;/span&gt;/55944&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="m"&gt;172&lt;/span&gt;.20.0.1
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;br/&gt;
If you can't login, or group is wrong — debugging can be really helpful. I personally discovered issues with timeouts, certificate problems as well as group assignment bug in FortiOS 6.4.5.&lt;/p&gt;
&lt;p&gt;To troubleshoot SSL VPN SAML login issues use:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nf"&gt;diag&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;debug&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;reset&lt;/span&gt;
&lt;span class="nf"&gt;diag&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;debug&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;console&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;timestamp&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;enable&lt;/span&gt;
&lt;span class="nf"&gt;diag&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;debug&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;app&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;sslvpn&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;-1&lt;/span&gt;
&lt;span class="nf"&gt;diag&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;debug&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;app&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;samld&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;-1&lt;/span&gt;
&lt;span class="nf"&gt;diag&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;debug&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;enable&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Example of debug output:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;FTG-example # 2021-03-03 17:26:44 [163:root:0]total sslvpn policy count: 2
2021-03-03 17:26:47 [163:root:37]allocSSLConn:298 sconn 0x7f11245ef900 (0:root)
2021-03-03 17:26:47 [163:root:37]client cert requirement: no
2021-03-03 17:26:47 [163:root:37]SSL state:SSLv3/TLS read client hello (153.53.53.53)
...
**** Auth Req URL ****
https://login.microsoftonline.com/YYY-e027-4bb6-a213-XXX/saml2?SAMLRequest=ZZZ
***********************
__samld_sp_create_auth_req [394]:
**** SP Login Dump ****
2021-03-03 17:27:10 [163:root:39]Timeout for connection 0x7f11245ef900.
2021-03-03 17:27:10 [163:root:39]Destroy sconn 0x7f11245ef900, connSize=1. (root)
...
2021-03-03 17:27:21 [163:root:3b]req: /remote/saml/login/
__samld_sp_login_resp [733]:
Message Body
...xwOlJlc3BvbnNlPg==
..
samld_send_common_reply [120]:     Attr: 10, 50, &amp;#39;username&amp;#39; &amp;#39;Yuriy.Smetana@example-company.com&amp;#39;
samld_send_common_reply [120]:     Attr: 10, 47, &amp;#39;group&amp;#39; &amp;#39;ZZZ-765c-4d61-9b26-ZZZ&amp;#39;
samld_send_common_reply [120]:     Attr: 10, 47, &amp;#39;group&amp;#39; &amp;#39;MMM-a79a-40f0-a2df-MMM&amp;#39;
samld_send_common_reply [120]:     Attr: 10, 47, &amp;#39;group&amp;#39; &amp;#39;KKK-b782-4390-9d22-KKK&amp;#39;
samld_send_common_reply [120]:     Attr: 10, 47, &amp;#39;group&amp;#39; &amp;#39;LLL-d9ed-4e9a-8322-LLL&amp;#39;
samld_send_common_reply [120]:     Attr: 10, 47, &amp;#39;group&amp;#39; &amp;#39;OOO-c702-427c-a550-OOO&amp;#39;
samld_send_common_reply [120]:     Attr: 10, 47, &amp;#39;group&amp;#39; &amp;#39;UUU-a05e-47b8-a884-UUU&amp;#39;
...
2021-03-03 17:27:23 [163:root:3b]stmt: username
2021-03-03 17:27:23 [163:root:3b]fsv_saml_login_response:437 Got saml username: Yuriy.Smetana@example-company.com.
2021-03-03 17:27:23 [163:root:3b]stmt: group
2021-03-03 17:27:23 [163:root:3b]fsv_saml_login_response:444 Got group username: ZZZ-765c-4d61-9b26-ZZZ.
2021-03-03 17:27:23 [163:root:3b]stmt: group
2021-03-03 17:27:23 [163:root:3b]fsv_saml_login_response:444 Got group username: MMM-a79a-40f0-a2df-MMM.
2021-03-03 17:27:23 [163:root:3b]stmt: group
2021-03-03 17:27:23 [163:root:3b]fsv_saml_login_response:444 Got group username: KKK-b782-4390-9d22-KKK.
2021-03-03 17:27:23 [163:root:3b]stmt: group
2021-03-03 17:27:23 [163:root:3b]fsv_saml_login_response:444 Got group username: LLL-d9ed-4e9a-8322-LLL.
2021-03-03 17:27:23 [163:root:3b]stmt: group
2021-03-03 17:27:23 [163:root:3b]fsv_saml_login_response:444 Got group username: OOO-c702-427c-a550-OOO.
2021-03-03 17:27:23 [163:root:3b]stmt: group
2021-03-03 17:27:23 [163:root:3b]fsv_saml_login_response:444 Got group username: UUU-a05e-47b8-a884-UUU.
2021-03-03 17:27:23 [163:root:3b]sslvpn_auth_check_usrgroup:2603 forming user/group list from policy.
2021-03-03 17:27:23 [163:root:3b]sslvpn_auth_check_usrgroup:2641 got user (1) group (1:0).
2021-03-03 17:27:23 [163:root:3b]sslvpn_validate_user_group_list:1786 validating with SSL VPN authentication rules (0), realm ((null)).
2021-03-03 17:27:23 [163:root:3b]sslvpn_validate_user_group_list:2506 got user (1:0), group (1:0) peer group (0).
2021-03-03 17:27:23 [163:root:3b]sslvpn_update_user_group_list:1734 got user (1:0), group (1:0), peer group (0) after update.
2021-03-03 17:27:23 [163:root:3b]fsv_saml_auth_group:269 find a remote match group: MMM-a79a-40f0-a2df-MMM, portal: full-access, group: SAML_AZ_ALL.
2021-03-03 17:27:23 [163:root:3b]fsv_saml_auth_group:290 saml client cert: 0.
...
2021-03-03 17:27:23 [163:root:3b]User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) FortiClient/6.0.0 Chrome/69.0.3497.128 Electron/4.2.9 Safari/537.36
2021-03-03 17:27:23 [163:root:3b]deconstruct_session_id:426 decode session id ok, user=[Yuriy.Smetana@example-company.com],group=[SAML_AZ_ALL],authserver=[azure-saml],portal=[full-access],host=[153.53.53.53],realm=[],idx=0,auth=256,sid=1b5fedc6,login=1614785243,access=1614785243,saml_logout_url=no
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;We can see:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;beginning of user connection (&lt;code&gt;SSL state:SSLv3/TLS read client hellol&lt;/code&gt;),&lt;/li&gt;
&lt;li&gt;if we have any connection with Azure, it responses&lt;/li&gt;
&lt;li&gt;certificate issue (described in the previous sections)&lt;/li&gt;
&lt;li&gt;any timeouts if happened (&lt;code&gt;Timeout for connection 0x7f11245ef900&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;user name (&lt;code&gt;samld_send_common_reply [120]: Attr: 10, 50, 'username' 'Yuriy.Smetana@example-company.com'&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;list of user’s Azure groups ID (&lt;code&gt;samld_send_common_reply [120]: Attr: 10, 47, 'group'&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;very important — local group match and portal assigment (&lt;code&gt;fsv_saml_auth_group:269 find a remote match group: MMM-a79a-40f0-a2df-MMM, portal: full-access, group: SAML_AZ_ALL.&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;client general info etc&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="references"&gt;References&lt;/h2&gt;
&lt;p&gt;The following resources were very helpful:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.ultraviolet.network/post/fortigate-ssl-vpn-with-azure-mfa-using-saml"&gt;https://www.ultraviolet.network/post/fortigate-ssl-vpn-with-azure-mfa-using-saml&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://sites.google.com/frellsen.se/kimfrellsen/fortinet-ssl-vpn-with-okta-mfa-using-saml?authuser=0"&gt;https://sites.google.com/frellsen.se/kimfrellsen/fortinet-ssl-vpn-with-okta-mfa-using-saml?authuser=0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.microsoft.com/en-us/azure/active-directory/saas-apps/fortigate-ssl-vpn-tutorial" rel="nofollow"&gt;https://docs.microsoft.com/en-us/azure/active-directory/saas-apps/fortigate-ssl-vpn-tutorial&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Less helpful official FortiNet docs (actually pretty bad):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.fortinet.com/document/fortigate/6.2.0/azure-cookbook/584456/configuring-saml-sso-login-for-ssl-vpn-web-mode-with-azure-ad-acting-as-saml-idp" rel="nofollow"&gt;https://docs.fortinet.com/document/fortigate/6.2.0/azure-cookbook/584456/configuring-saml-sso-login-for-ssl-vpn-web-mode-with-azure-ad-acting-as-saml-idp&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.fortinet.com/document/fortigate/6.2.0/azure-cookbook/584456/configuring-saml-sso-login-for-ssl-vpn-web-mode-with-azure-ad-acting-as-saml-idp" rel="nofollow"&gt;https://docs.fortinet.com/document/fortigate/6.2.0/azure-cookbook/584456/configuring-saml-sso-login-for-ssl-vpn-web-mode-with-azure-ad-acting-as-saml-idp&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content><category term="Технічні теми"/><category term="Azure"/><category term="FortiGate"/><category term="MFA"/><category term="VPN"/></entry><entry><title>Performance debugging on FortiGate firewalls</title><link href="https://yura.stryi.com/en/2021-03-01/fortigate-performance-debug/" rel="alternate"/><published>2021-03-01T00:00:00+02:00</published><updated>2021-03-01T00:00:00+02:00</updated><author><name>Юрій Сметана</name></author><id>tag:yura.stryi.com,2021-03-01:/en/2021-03-01/fortigate-performance-debug/</id><summary type="html">&lt;p&gt;While FortiGate routers from FortiNet company are quite reliable, some bugs or strange behaviour can drive you crazy sometimes.&lt;/p&gt;
&lt;p&gt;From time to time we are facing an issue when unit is under high CPU usage and/or lack of memory (RAM).&lt;/p&gt;
&lt;p&gt;Usually it's being caused by Intrusion Prevention Systems (IPS …&lt;/p&gt;</summary><content type="html">&lt;p&gt;While FortiGate routers from FortiNet company are quite reliable, some bugs or strange behaviour can drive you crazy sometimes.&lt;/p&gt;
&lt;p&gt;From time to time we are facing an issue when unit is under high CPU usage and/or lack of memory (RAM).&lt;/p&gt;
&lt;p&gt;Usually it's being caused by Intrusion Prevention Systems (IPS) or sFlow process. Of cource, every issue must be investigated, but for really quick-and-dirty solution IPS might be &lt;strong&gt;restarted&lt;/strong&gt; by the following command:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;diagnose&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;test&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;application&lt;span class="w"&gt; &lt;/span&gt;ipsmonitor&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;99&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;or even &lt;strong&gt;disabled&lt;/strong&gt; by:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;diagnose&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;test&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;application&lt;span class="w"&gt; &lt;/span&gt;ipsmonitor&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;98&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Recently our FortiGate unit send us "SOS" notification with the message&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;Kernel enters memory conserve mode
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Ughhh, sounds serious. The reason was lack of RAM. 4 GB is not enough for modern firewall board?&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# diagnose sys top&lt;/span&gt;
Run&lt;span class="w"&gt; &lt;/span&gt;Time:&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="m"&gt;14&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;days,&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;18&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;hours&lt;span class="w"&gt; &lt;/span&gt;and&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;4&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;minutes
7U,&lt;span class="w"&gt; &lt;/span&gt;0N,&lt;span class="w"&gt; &lt;/span&gt;7S,&lt;span class="w"&gt; &lt;/span&gt;74I,&lt;span class="w"&gt; &lt;/span&gt;0WA,&lt;span class="w"&gt; &lt;/span&gt;0HI,&lt;span class="w"&gt; &lt;/span&gt;12SI,&lt;span class="w"&gt; &lt;/span&gt;0ST&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;3954T,&lt;span class="w"&gt; &lt;/span&gt;1990F
&lt;span class="w"&gt;          &lt;/span&gt;sflowd&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="m"&gt;8461&lt;/span&gt;&lt;span class="w"&gt;      &lt;/span&gt;S&lt;span class="w"&gt;       &lt;/span&gt;&lt;span class="m"&gt;80&lt;/span&gt;.1&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="m"&gt;10&lt;/span&gt;.8
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;sflowd&lt;/strong&gt; process, the resources eater with 80.1% of CPU, can be calm down as easy as that:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;diagnose&lt;span class="w"&gt; &lt;/span&gt;sys&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;kill&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;11&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;8461&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;where &lt;code&gt;11&lt;/code&gt; is &lt;strong&gt;SIGSEGV&lt;/strong&gt; signal (restart) to process &lt;code&gt;8461&lt;/code&gt; from the &lt;strong&gt;top&lt;/strong&gt; command above.&lt;/p&gt;
&lt;p&gt;Another perfomance diagnostic commands for FortiOS are:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;get&lt;span class="w"&gt; &lt;/span&gt;system&lt;span class="w"&gt; &lt;/span&gt;performance&lt;span class="w"&gt; &lt;/span&gt;status
diagnose&lt;span class="w"&gt; &lt;/span&gt;sys&lt;span class="w"&gt; &lt;/span&gt;top&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;50&lt;/span&gt;
diagnose&lt;span class="w"&gt; &lt;/span&gt;hardware&lt;span class="w"&gt; &lt;/span&gt;sysinfo&lt;span class="w"&gt; &lt;/span&gt;memory
diagnose&lt;span class="w"&gt; &lt;/span&gt;hardware&lt;span class="w"&gt; &lt;/span&gt;sysinfo&lt;span class="w"&gt; &lt;/span&gt;shm
diagnose&lt;span class="w"&gt; &lt;/span&gt;firewall&lt;span class="w"&gt; &lt;/span&gt;statistic&lt;span class="w"&gt; &lt;/span&gt;show
diagnose&lt;span class="w"&gt; &lt;/span&gt;sys&lt;span class="w"&gt; &lt;/span&gt;session&lt;span class="w"&gt; &lt;/span&gt;stat
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</content><category term="Технічні теми"/><category term="FortiGate"/><category term="FortiNet"/></entry><entry><title>NTP time sync on Cisco switch</title><link href="https://yura.stryi.com/en/2018-09-26/NTP-time-sync-on-Cisco-switch/" rel="alternate"/><published>2018-09-26T00:00:00+03:00</published><updated>2018-09-26T00:00:00+03:00</updated><author><name>Юрій Сметана</name></author><id>tag:yura.stryi.com,2018-09-26:/en/2018-09-26/NTP-time-sync-on-Cisco-switch/</id><summary type="html">&lt;p&gt;Current status:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="go"&gt;c3750# sh clock detail&lt;/span&gt;
&lt;span class="go"&gt;12:02:37.640 UTC Wed Sep 26 2018&lt;/span&gt;
&lt;span class="go"&gt;Time source is user configuration&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Set time zone and DST:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="go"&gt;c3750(config)# clock timezone EST 2 # Kyiv, Ukraine&lt;/span&gt;
&lt;span class="go"&gt;c3750(config)# clock summer-time EET recurring last Sat Mar 3:00 last Sat Oct 4:00&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Set …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Current status:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="go"&gt;c3750# sh clock detail&lt;/span&gt;
&lt;span class="go"&gt;12:02:37.640 UTC Wed Sep 26 2018&lt;/span&gt;
&lt;span class="go"&gt;Time source is user configuration&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Set time zone and DST:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="go"&gt;c3750(config)# clock timezone EST 2 # Kyiv, Ukraine&lt;/span&gt;
&lt;span class="go"&gt;c3750(config)# clock summer-time EET recurring last Sat Mar 3:00 last Sat Oct 4:00&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Set NTP server address:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="go"&gt;c3750(config)# ntp server 172.22.80.11 prefer&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Check results:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="go"&gt;c3750# sh clock detail    &lt;/span&gt;
&lt;span class="go"&gt;.12:22:19.560 EET Wed Sep 26 2018&lt;/span&gt;
&lt;span class="go"&gt;Time source is NTP&lt;/span&gt;
&lt;span class="go"&gt;Summer time starts 03:00:00 EST Sat Mar 31 2018&lt;/span&gt;
&lt;span class="go"&gt;Summer time ends 04:00:00 EET Sat Oct 27 201&lt;/span&gt;


&lt;span class="go"&gt;c3750# show ntp status &lt;/span&gt;
&lt;span class="go"&gt;Clock is unsynchronized, stratum 16, no reference clock&lt;/span&gt;
&lt;span class="go"&gt;nominal freq is 119.2092 Hz, actual freq is 119.2093 Hz, precision is 2**18&lt;/span&gt;
&lt;span class="go"&gt;reference time is DF55CC99.24F3E418 (12:15:05.144 EET Wed Sep 26 2018)&lt;/span&gt;
&lt;span class="go"&gt;clock offset is -6.2347 msec, root delay is 46.11 msec&lt;/span&gt;
&lt;span class="go"&gt;root dispersion is 59.42 msec, peer dispersion is 7.84 msec&lt;/span&gt;


&lt;span class="go"&gt;c3750# show ntp associations&lt;/span&gt;

&lt;span class="go"&gt;      address         ref clock     st  when  poll reach  delay  offset    disp&lt;/span&gt;
&lt;span class="go"&gt; ~172.22.80.11     0.0.0.0          16     -    64    0     0.0    0.00  16000.&lt;/span&gt;
&lt;span class="go"&gt; * master (synced), # master (unsynced), + selected, - candidate, ~ configured&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</content><category term="Технічні теми"/><category term="Cisco"/><category term="NTP"/><category term="time"/></entry><entry><title>Using NVM with Jenkins</title><link href="https://yura.stryi.com/en/2018-04-26/NVM-with-Jenkins/" rel="alternate"/><published>2018-04-26T00:00:00+03:00</published><updated>2018-04-26T00:00:00+03:00</updated><author><name>Юрій Сметана</name></author><id>tag:yura.stryi.com,2018-04-26:/en/2018-04-26/NVM-with-Jenkins/</id><summary type="html">&lt;p&gt;Imagine that we need to update Node.js version on the Jenkins server. But it could affect other projects. For such cases, when we need multiple versions of Node.js on the same server the NVM (Node Version Manager) project exist.&lt;/p&gt;
&lt;h2 id="nvm"&gt;NVM&lt;/h2&gt;
&lt;p&gt;Documentations - &lt;a href="https://github.com/creationix/nvm"&gt;https://github.com/creationix/nvm&lt;/a&gt;. Nice tutorial …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Imagine that we need to update Node.js version on the Jenkins server. But it could affect other projects. For such cases, when we need multiple versions of Node.js on the same server the NVM (Node Version Manager) project exist.&lt;/p&gt;
&lt;h2 id="nvm"&gt;NVM&lt;/h2&gt;
&lt;p&gt;Documentations - &lt;a href="https://github.com/creationix/nvm"&gt;https://github.com/creationix/nvm&lt;/a&gt;. Nice tutorial: &lt;a href="https://www.sitepoint.com/quick-tip-multiple-versions-node-nvm/"&gt;https://www.sitepoint.com/quick-tip-multiple-versions-node-nvm/&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;NVM is the Bash command which will be installed locally, into user's home directory. Actually is not the script (file) - it is the Bash (Shell) function &lt;strong&gt;nvm&lt;/strong&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="gp"&gt;jenkins@jenkins:~$ &lt;/span&gt;whereis&lt;span class="w"&gt; &lt;/span&gt;nvm
&lt;span class="go"&gt;nvm:&lt;/span&gt;
&lt;span class="gp"&gt;jenkins@jenkins:~$ &lt;/span&gt;which&lt;span class="w"&gt; &lt;/span&gt;nvm
&lt;span class="gp"&gt;jenkins@jenkins:~$ &lt;/span&gt;&lt;span class="nb"&gt;command&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-v&lt;span class="w"&gt; &lt;/span&gt;nvm
&lt;span class="go"&gt;nvm&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;You can install multiple versions of Node.js (and appropriate &lt;em&gt;npm&lt;/em&gt;) into the local directory and switch between them.&lt;/p&gt;
&lt;p&gt;After the installation of NVM be sure that the following code has being added to the &lt;strong&gt;.profile&lt;/strong&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nb"&gt;export&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;NVM_DIR&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="nv"&gt;$HOME&lt;/span&gt;&lt;span class="s2"&gt;/.nvm&amp;quot;&lt;/span&gt;
&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-s&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="nv"&gt;$NVM_DIR&lt;/span&gt;&lt;span class="s2"&gt;/nvm.sh&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\.&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="nv"&gt;$NVM_DIR&lt;/span&gt;&lt;span class="s2"&gt;/nvm.sh&amp;quot;&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="c1"&gt;# This loads nvm&lt;/span&gt;
&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-s&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="nv"&gt;$NVM_DIR&lt;/span&gt;&lt;span class="s2"&gt;/bash_completion&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\.&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="nv"&gt;$NVM_DIR&lt;/span&gt;&lt;span class="s2"&gt;/bash_completion&amp;quot;&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="c1"&gt;# This loads nvm bash_completion&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Examples:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="gp"&gt;jenkins@jenkins:~/.nvm$ &lt;/span&gt;nvm&lt;span class="w"&gt; &lt;/span&gt;ls-remote&lt;span class="w"&gt; &lt;/span&gt;
&lt;span class="go"&gt;        v0.10.33&lt;/span&gt;
&lt;span class="go"&gt;        ...&lt;/span&gt;
&lt;span class="go"&gt;        v6.11.3   (Latest LTS: Boron)&lt;/span&gt;

&lt;span class="gp"&gt;jenkins@jenkins:~/.nvm$ &lt;/span&gt;nvm&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;.10.33
&lt;span class="gp"&gt;jenkins@jenkins:~/.nvm$ &lt;/span&gt;nvm&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;6&lt;/span&gt;.11.3

&lt;span class="gp"&gt;jenkins@jenkins:~/.nvm$ &lt;/span&gt;nvm&lt;span class="w"&gt; &lt;/span&gt;ls
&lt;span class="go"&gt;-&amp;gt;     v0.10.33&lt;/span&gt;
&lt;span class="go"&gt;        v6.11.3&lt;/span&gt;
&lt;span class="go"&gt;         system&lt;/span&gt;
&lt;span class="go"&gt;default -&amp;gt; system&lt;/span&gt;
&lt;span class="go"&gt;node -&amp;gt; stable (-&amp;gt; v6.11.3) (default)&lt;/span&gt;
&lt;span class="go"&gt;stable -&amp;gt; 6.11 (-&amp;gt; v6.11.3) (default)&lt;/span&gt;
&lt;span class="go"&gt;iojs -&amp;gt; N/A (default)&lt;/span&gt;
&lt;span class="go"&gt;lts/* -&amp;gt; lts/boron (-&amp;gt; v6.11.3)&lt;/span&gt;
&lt;span class="go"&gt;lts/argon -&amp;gt; v4.8.4 (-&amp;gt; N/A)&lt;/span&gt;
&lt;span class="go"&gt;lts/boron -&amp;gt; v6.11.3&lt;/span&gt;

&lt;span class="gp"&gt;jenkins@jenkins:~/.nvm$ &lt;/span&gt;nvm&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;alias&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;default&lt;span class="w"&gt; &lt;/span&gt;system

&lt;span class="gp"&gt;jenkins@jenkins:~$ &lt;/span&gt;nvm&lt;span class="w"&gt; &lt;/span&gt;use&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;6&lt;/span&gt;.11.3
&lt;span class="go"&gt;Now using node v6.11.3 (npm v3.10.10)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h2 id="nvm-in-jenkins"&gt;NVM in Jenkins&lt;/h2&gt;
&lt;p&gt;Using NVM in Jenkins is a little bit tricky.&lt;/p&gt;
&lt;p&gt;First of all - when running a Shell script from the job Jenkins use non-interactive session, so neither &lt;em&gt;.profile&lt;/em&gt; no &lt;em&gt;.bashrc&lt;/em&gt; files aren't executed. So &lt;em&gt;nvm&lt;/em&gt; command is not set up automatically.&lt;/p&gt;
&lt;p&gt;Also when set-up script (&lt;strong&gt;nvm.sh&lt;/strong&gt;) consist of other command which returns non-zero exit status (even thought the main script itself will return 0) - the Jenkins' job will fail. That's because Jenkins use &lt;strong&gt;-e&lt;/strong&gt; shell option. We have to disabled it temporary.&lt;/p&gt;
&lt;p&gt;Also I have found that NVM directory path should be set. Beware of using &lt;strong&gt;~&lt;/strong&gt; as home-directory alias - Jenkins override it to build working directory, so it is crucial to use &lt;strong&gt;$HOME&lt;/strong&gt; variable.&lt;/p&gt;
&lt;p&gt;Working example of Jenkins' Project config:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# Node Version Manager with Jenkins&lt;/span&gt;
&lt;span class="c1"&gt;# https://github.com/creationix/nvm , https://www.sitepoint.com/quick-tip-multiple-versions-node-nvm/&lt;/span&gt;
&lt;span class="nb"&gt;set&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;+ex&lt;span class="w"&gt;                     &lt;/span&gt;&lt;span class="c1"&gt;# immediate script fail off, echo off&lt;/span&gt;
&lt;span class="nb"&gt;export&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;NVM_DIR&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="nv"&gt;$HOME&lt;/span&gt;&lt;span class="s2"&gt;/.nvm&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;# set local path to NVM&lt;/span&gt;
.&lt;span class="w"&gt; &lt;/span&gt;~/.nvm/nvm.sh&lt;span class="w"&gt;             &lt;/span&gt;&lt;span class="c1"&gt;# add NVM into the Shell session&lt;/span&gt;
&lt;span class="c1"&gt;#nvm install v6.11.3        # first time only&lt;/span&gt;
nvm&lt;span class="w"&gt; &lt;/span&gt;use&lt;span class="w"&gt; &lt;/span&gt;v6.11.3&lt;span class="w"&gt;             &lt;/span&gt;&lt;span class="c1"&gt;# choose current version&lt;/span&gt;
&lt;span class="nb"&gt;set&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-ex&lt;span class="w"&gt;                     &lt;/span&gt;&lt;span class="c1"&gt;# immediate script fail on (default), echo on (default)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</content><category term="Технічні теми"/><category term="Jenkins"/><category term="Bash"/><category term="Shell"/><category term="Node.js"/><category term="NPM"/><category term="NVM"/></entry><entry><title>Видалення старих ядер Linux, які більше не використовуються</title><link href="https://yura.stryi.com/2017-06-09/remove-old-unused-Ubuntu-kernels/" rel="alternate"/><published>2017-06-09T00:00:00+03:00</published><updated>2017-06-09T00:00:00+03:00</updated><author><name>Юрій Сметана</name></author><id>tag:yura.stryi.com,2017-06-09:/2017-06-09/remove-old-unused-Ubuntu-kernels/</id><summary type="html">&lt;p&gt;З часом, після оновлень ядра Ubuntu в системі залишаються старі версії, які більше не використовуються, а лише займаютьс місце.&lt;/p&gt;
&lt;p&gt;Їх можна відшукати і видалити однією командою (це не зачіпить поточне, останнє, ядро):&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="gp"&gt;# &lt;/span&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;dpkg&lt;span class="w"&gt; &lt;/span&gt;-l&lt;span class="w"&gt; &lt;/span&gt;linux-&lt;span class="o"&gt;{&lt;/span&gt;image,headers&lt;span class="o"&gt;}&lt;/span&gt;-*&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;awk&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;/^ii/{print $2}&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;egrep&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;[0-9]+\.[0-9]+\.[0-9]+&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;grep&lt;span class="w"&gt; &lt;/span&gt;-v&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;uname&lt;span class="w"&gt; &lt;/span&gt;-r …&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</summary><content type="html">&lt;p&gt;З часом, після оновлень ядра Ubuntu в системі залишаються старі версії, які більше не використовуються, а лише займаютьс місце.&lt;/p&gt;
&lt;p&gt;Їх можна відшукати і видалити однією командою (це не зачіпить поточне, останнє, ядро):&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="gp"&gt;# &lt;/span&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;dpkg&lt;span class="w"&gt; &lt;/span&gt;-l&lt;span class="w"&gt; &lt;/span&gt;linux-&lt;span class="o"&gt;{&lt;/span&gt;image,headers&lt;span class="o"&gt;}&lt;/span&gt;-*&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;awk&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;/^ii/{print $2}&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;egrep&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;[0-9]+\.[0-9]+\.[0-9]+&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;grep&lt;span class="w"&gt; &lt;/span&gt;-v&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;uname&lt;span class="w"&gt; &lt;/span&gt;-r&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;cut&lt;span class="w"&gt; &lt;/span&gt;-d-&lt;span class="w"&gt; &lt;/span&gt;-f-2&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;xargs&lt;span class="w"&gt; &lt;/span&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;apt-get&lt;span class="w"&gt; &lt;/span&gt;-y&lt;span class="w"&gt; &lt;/span&gt;purge
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</content><category term="Технічні теми"/><category term="Ubuntu"/><category term="kernels"/></entry><entry><title>Оновлення PHP до версії 5.6 на Ubuntu 14.04</title><link href="https://yura.stryi.com/2017-04-19/php-5.6-upgrade-on-ubuntu-14.04/" rel="alternate"/><published>2017-04-19T00:00:00+03:00</published><updated>2017-04-19T00:00:00+03:00</updated><author><name>Юрій Сметана</name></author><id>tag:yura.stryi.com,2017-04-19:/2017-04-19/php-5.6-upgrade-on-ubuntu-14.04/</id><summary type="html">&lt;p&gt;Якщо якийсь з серверів ще досі працює на LTS версії Ubuntu 14.04, то в офіційних пакетах до цієї системи, для PHP, доступна лише версія 5.5.9. Проте, існують модулі чи системи які хочуть новішу версію, наприклад 5.6.&lt;/p&gt;
&lt;p&gt;В Ubuntu можна тримати декілька версій PHP одночасно. Можна запускати …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Якщо якийсь з серверів ще досі працює на LTS версії Ubuntu 14.04, то в офіційних пакетах до цієї системи, для PHP, доступна лише версія 5.5.9. Проте, існують модулі чи системи які хочуть новішу версію, наприклад 5.6.&lt;/p&gt;
&lt;p&gt;В Ubuntu можна тримати декілька версій PHP одночасно. Можна запускати окремі скрипти з різними версіями і навіть мати різні версії інтерпретатора для різних віртуальних доменів веб-сервера.&lt;/p&gt;
&lt;p&gt;Альтернативні версії доступні в репозиторії &lt;a href="https://launchpad.net/~ondrej/+archive/ubuntu/php"&gt;Ondřej Surý&lt;/a&gt;, який є співавтором і офіційних версій.&lt;/p&gt;
&lt;h2 id="_1"&gt;Підготовка&lt;/h2&gt;
&lt;p&gt;Перевірка наявної версії PHP:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="gp"&gt;# &lt;/span&gt;php&lt;span class="w"&gt; &lt;/span&gt;-v
&lt;span class="go"&gt;PHP 5.5.9-1ubuntu4.7 (cli) (built: Mar 16 2015 20:47:39)&lt;/span&gt;
&lt;span class="go"&gt;Copyright (c) 1997-2014 The PHP Group&lt;/span&gt;
&lt;span class="go"&gt;Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies&lt;/span&gt;
&lt;span class="go"&gt;with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Та встановлених модулів PHP:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="gp"&gt;# &lt;/span&gt;php&lt;span class="w"&gt; &lt;/span&gt;-m
&lt;span class="go"&gt;[PHP Modules]&lt;/span&gt;
&lt;span class="go"&gt;bcmath&lt;/span&gt;
&lt;span class="go"&gt;bz2&lt;/span&gt;
&lt;span class="go"&gt;...&lt;/span&gt;
&lt;span class="go"&gt;zip&lt;/span&gt;
&lt;span class="go"&gt;zlib&lt;/span&gt;

&lt;span class="go"&gt;[Zend Modules]&lt;/span&gt;
&lt;span class="go"&gt;Zend OPcache&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h2 id="_2"&gt;Встановлення нової версії&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="gp"&gt;# &lt;/span&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;add-apt-repository&lt;span class="w"&gt; &lt;/span&gt;ppa:ondrej/php
&lt;span class="gp"&gt;# &lt;/span&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;apt&lt;span class="w"&gt; &lt;/span&gt;update
&lt;span class="gp"&gt;# &lt;/span&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;apt&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;php5.6

&lt;span class="go"&gt;//sudo apt install php7.0&lt;/span&gt;
&lt;span class="go"&gt;//sudo apt install php7.1&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h2 id="_3"&gt;Встановлення модулів до нової версії&lt;/h2&gt;
&lt;p&gt;Маючи список модулів які були потрібні нам раніше можна перевірити які модулі потрібно доставити.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="gp"&gt;# &lt;/span&gt;php5.6&lt;span class="w"&gt; &lt;/span&gt;-m
&lt;span class="go"&gt;[PHP Modules]&lt;/span&gt;
&lt;span class="go"&gt;bcmath&lt;/span&gt;
&lt;span class="go"&gt;bz2&lt;/span&gt;
&lt;span class="go"&gt;...&lt;/span&gt;
&lt;span class="go"&gt;Zend OPcache&lt;/span&gt;
&lt;span class="go"&gt;zlib&lt;/span&gt;

&lt;span class="go"&gt;[Zend Modules]&lt;/span&gt;
&lt;span class="go"&gt;Zend OPcache&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;І встановити їх:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="gp"&gt;# &lt;/span&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;apt&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;php5.6-zip
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h2 id="_4"&gt;Вибір версії за замовчуванням&lt;/h2&gt;
&lt;p&gt;Тепер у системі є дві версії PHP, які співіснують одночасно:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="gp"&gt;# &lt;/span&gt;whereis&lt;span class="w"&gt; &lt;/span&gt;php
&lt;span class="go"&gt;php: /usr/bin/php /usr/bin/php5.6 ...&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;І в скриптах можна вказувати конкретну назву бажаного інтерпретатора (наприклад &lt;em&gt;php5.6&lt;/em&gt;), або вказувати повний шлях до команди.&lt;/p&gt;
&lt;p&gt;Також, можна вказати яка версія вважається "стандартною" для системи й буде запускатися при команді &lt;strong&gt;php&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Якщо переглянути що приховується за командою &lt;em&gt;php&lt;/em&gt; то стане більш зрозуміло:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="gp"&gt;# &lt;/span&gt;which&lt;span class="w"&gt; &lt;/span&gt;php
&lt;span class="go"&gt;/usr/bin/php&lt;/span&gt;

&lt;span class="gp"&gt;# &lt;/span&gt;ls&lt;span class="w"&gt; &lt;/span&gt;-l&lt;span class="w"&gt; &lt;/span&gt;/usr/bin/php
&lt;span class="go"&gt;lrwxrwxrwx 1 root root 21 Mar 6 2015 /usr/bin/php -&amp;gt; /etc/alternatives/php&lt;/span&gt;

&lt;span class="gp"&gt;# &lt;/span&gt;ls&lt;span class="w"&gt; &lt;/span&gt;-l&lt;span class="w"&gt; &lt;/span&gt;/etc/alternatives/php
&lt;span class="go"&gt;lrwxrwxrwx 1 root root 13 Apr 19 09:22 /etc/alternatives/php -&amp;gt; /usr/bin/php5&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;За встановлення стандартних команд, в Ubuntu, відповідає &lt;a href="http://manpages.ubuntu.com/manpages/trusty/man8/update-alternatives.8.html"&gt;update-alternatives&lt;/a&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="go"&gt;&amp;gt; sudo update-alternatives --list php&lt;/span&gt;
&lt;span class="go"&gt;/usr/bin/php5&lt;/span&gt;
&lt;span class="go"&gt;/usr/bin/php5.6&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Зміна стандартного значення:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="gp"&gt;# &lt;/span&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;update-alternatives&lt;span class="w"&gt; &lt;/span&gt;--set&lt;span class="w"&gt; &lt;/span&gt;php&lt;span class="w"&gt; &lt;/span&gt;/usr/bin/php5.6
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h2 id="php-apache"&gt;Зміна версії PHP для Apache&lt;/h2&gt;
&lt;p&gt;Використання нової верії для веб-сервера:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="gp"&gt;# &lt;/span&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;a2dismod&lt;span class="w"&gt; &lt;/span&gt;php5
&lt;span class="gp"&gt;# &lt;/span&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;a2enmod&lt;span class="w"&gt; &lt;/span&gt;php5.6
&lt;span class="gp"&gt;# &lt;/span&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;service&lt;span class="w"&gt; &lt;/span&gt;apache2&lt;span class="w"&gt; &lt;/span&gt;restart
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h2 id="_5"&gt;Використання різних версій у скриптах&lt;/h2&gt;
&lt;p&gt;Якщо потрібно запустити скрипт використтовуючи певну версію можна явно запустити інтерпретатор:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="gp"&gt;# &lt;/span&gt;/usr/bin/php5.6&lt;span class="w"&gt; &lt;/span&gt;test.php
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Або вказати відповідний &lt;a href="https://uk.wikipedia.org/wiki/%D0%A8%D0%B5%D0%B1%D0%B0%D0%BD%D0%B3_(Unix)"&gt;шебанг&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;test.php&lt;/strong&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="x"&gt;#!/usr/bin/php5.6&lt;/span&gt;
&lt;span class="x"&gt;# Але краще так не робити — див. нижче!&lt;/span&gt;
&lt;span class="cp"&gt;&amp;lt;?php&lt;/span&gt;
    &lt;span class="c1"&gt;//...&lt;/span&gt;
&lt;span class="cp"&gt;?&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Проте, краще використовувати &lt;strong&gt;env&lt;/strong&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="gp"&gt;# &lt;/span&gt;mkdir&lt;span class="w"&gt; &lt;/span&gt;-p&lt;span class="w"&gt; &lt;/span&gt;/usr/bin/overrides/php5.6/bin
&lt;span class="gp"&gt;# &lt;/span&gt;ln&lt;span class="w"&gt; &lt;/span&gt;-s&lt;span class="w"&gt; &lt;/span&gt;/usr/bin/overrides/php5.6/bin/php&lt;span class="w"&gt; &lt;/span&gt;/usr/bin/php5.6

&lt;span class="gp"&gt;# &lt;/span&gt;&lt;span class="nb"&gt;export&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;PATH&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;/usr/bin/overrides/php5.6/bin:&lt;/span&gt;&lt;span class="nv"&gt;$PATH&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Тоді, у скрипті поточної сесії першою знайдеться та команда &lt;em&gt;php&lt;/em&gt;, що посилається на &lt;em&gt;php5.6&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;test.php&lt;/strong&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="x"&gt;#!/usr/bin/env php&lt;/span&gt;
&lt;span class="x"&gt;# Пошук по $PATH поверне php з /usr/bin/overrides/php5.6/bin/php&lt;/span&gt;
&lt;span class="cp"&gt;&amp;lt;?php&lt;/span&gt;
    &lt;span class="c1"&gt;//...&lt;/span&gt;
&lt;span class="cp"&gt;?&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</content><category term="Технічні теми"/><category term="PHP"/><category term="Ubuntu"/></entry><entry><title>Ремонт люмінесцентної (флуоресцентної "економної) лампи</title><link href="https://yura.stryi.com/2017-03-27/fluorescent-lamp-fix/" rel="alternate"/><published>2017-03-27T00:00:00+03:00</published><updated>2017-03-27T00:00:00+03:00</updated><author><name>Юрій Сметана</name></author><id>tag:yura.stryi.com,2017-03-27:/2017-03-27/fluorescent-lamp-fix/</id><summary type="html">&lt;p&gt;&lt;img alt="Розібрана люмінесцентна лампа" src="https://lh3.googleusercontent.com/eG3jyJGgLbkBJLDqA1aRy_jRC8F0NhmA7cfWxT1O8pXkSElChqXHP5BrqnKM_YxUac2kV_54XHjTvwih-xuQQezm3bliIffy1uEGFdKIak0jSfenv86A6pDXpNB94xZLrBCz6GsPUNL4C00MJY9QXW0vkVGGsTQ4-vHjBCbgpGvn3PfGksadCcAivYv1cX8RQjnvRxaQ30uvbEo60fv-dK0dmf_4-X2get0Hp2ZB-9GGdYAA2U-VfrhFxnS-0HNAGQZnvZTcLemyc1FJWxOfAHtUA3BF-H6E1mG3Dxz1oQltJ0Fa2_evGVh4YamJjO4R9uN8R7cGIUGjKeoMOREYRCKiG-WEa5qbgYB0HTRGrydDOU4O91nwEKDSUDGL7xOSt_-yFmg6tOB8pfPyPQmEHMCUAWU84JUNHaE2fQPwZ2KkUMz3yCtXkFSTA0iE1cpOlsyqGPvPL7X_oWfDRXht1btejCuCMaRIliRgWyDmpxpjZSkRbY1BhcwSNHXzSbvhzfNB5-6RgVf0tMJlYndODcg1s6TjxqqKjZEV43BLf4zukoQHKxa1Etf08TYhGep0JX9-Slae7Iz_3JTvuuvfo1g1gbcLXNqemsSP4pDS7qdbG_8xg7JB9A=w650-h797-no"&gt;&lt;/p&gt;
&lt;p&gt;Хоч зараз люмінесцентні "економні" лампочки втрачають свою популярність передаючи естафету світлодіодним — їх все ще залишається багато. Термін служби таких лампочок, з практики — 2-3 роки.&lt;/p&gt;
&lt;p&gt;Проте, навіть коли лампочка раптово перестала працювати це не підстава негайно її викидати. Більшість з них піддаються ремонту в домашніх умовах.&lt;/p&gt;
&lt;p&gt;Потрібно знати, що навіть компактні …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;img alt="Розібрана люмінесцентна лампа" src="https://lh3.googleusercontent.com/eG3jyJGgLbkBJLDqA1aRy_jRC8F0NhmA7cfWxT1O8pXkSElChqXHP5BrqnKM_YxUac2kV_54XHjTvwih-xuQQezm3bliIffy1uEGFdKIak0jSfenv86A6pDXpNB94xZLrBCz6GsPUNL4C00MJY9QXW0vkVGGsTQ4-vHjBCbgpGvn3PfGksadCcAivYv1cX8RQjnvRxaQ30uvbEo60fv-dK0dmf_4-X2get0Hp2ZB-9GGdYAA2U-VfrhFxnS-0HNAGQZnvZTcLemyc1FJWxOfAHtUA3BF-H6E1mG3Dxz1oQltJ0Fa2_evGVh4YamJjO4R9uN8R7cGIUGjKeoMOREYRCKiG-WEa5qbgYB0HTRGrydDOU4O91nwEKDSUDGL7xOSt_-yFmg6tOB8pfPyPQmEHMCUAWU84JUNHaE2fQPwZ2KkUMz3yCtXkFSTA0iE1cpOlsyqGPvPL7X_oWfDRXht1btejCuCMaRIliRgWyDmpxpjZSkRbY1BhcwSNHXzSbvhzfNB5-6RgVf0tMJlYndODcg1s6TjxqqKjZEV43BLf4zukoQHKxa1Etf08TYhGep0JX9-Slae7Iz_3JTvuuvfo1g1gbcLXNqemsSP4pDS7qdbG_8xg7JB9A=w650-h797-no"&gt;&lt;/p&gt;
&lt;p&gt;Хоч зараз люмінесцентні "економні" лампочки втрачають свою популярність передаючи естафету світлодіодним — їх все ще залишається багато. Термін служби таких лампочок, з практики — 2-3 роки.&lt;/p&gt;
&lt;p&gt;Проте, навіть коли лампочка раптово перестала працювати це не підстава негайно її викидати. Більшість з них піддаються ремонту в домашніх умовах.&lt;/p&gt;
&lt;p&gt;Потрібно знати, що навіть компактні "економні" лампочки це нащадки довгих циліндричних люмінесцентних ламп і працюють вони за таким самим принципом. Сам процес добре &lt;a href="https://uk.wikipedia.org/wiki/%D0%9B%D1%8E%D0%BC%D1%96%D0%BD%D0%B5%D1%81%D1%86%D0%B5%D0%BD%D1%82%D0%BD%D0%B0_%D0%BB%D0%B0%D0%BC%D0%BF%D0%B0#.D0.9C.D0.B5.D1.85.D0.B0.D0.BD.D1.96.D0.B7.D0.BC_.D0.B7.D0.B0.D0.BF.D1.83.D1.81.D0.BA.D1.83_.D0.BB.D0.B0.D0.BC.D0.BF.D0.B8_.D0.B7_.D0.B5.D0.BB.D0.B5.D0.BA.D1.82.D1.80.D0.BE.D0.BC.D0.B0.D0.B3.D0.BD.D1.96.D1.82.D0.BD.D0.B8.D0.BC_.D0.B1.D0.B0.D0.BB.D0.B0.D1.81.D1.82.D0.BE.D0.BC"&gt;описано тут&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Для роботи лампи потрібні:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;електрика :)&lt;/li&gt;
&lt;li&gt;лампа ;)&lt;/li&gt;
&lt;li&gt;стартер&lt;/li&gt;
&lt;li&gt;дросель&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;В сучасному виконанні стартер та дросель замінені т. зв. електронним баластом.&lt;/p&gt;
&lt;h2 id="_1"&gt;Розбирання корпусу&lt;/h2&gt;
&lt;p&gt;Як правило, корпуси розділяються досить легко, якщо по периметру акуратно підважити тонкою викруткою.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Корпус лампи" src="https://lh3.googleusercontent.com/ZGocNu2SUPjYQbhJeZrxedsY4Omtwrbe7dSdhz73vRIgnfIYU3SvwUvhHIWaH52PQ_Jreqq9Z7LTKDx2xM-WGzTdGGiMKaWt4E-6CZY8_7YVjrNyoPJfSeShNU8udfG0EV-qWhfDJsoUfr29jUiZ8v37JAxdlQl55emJmeWpkKtc8nqDz7lHvoqHfjh7mewLZuUTfd9LMM_FL-DxX_16Xobp0wXJBg5EOFGsAl9QwdGvyDf5hq0TKX8ASctcvlQDPWErrgtqTqeRpK5j5X_YTbupatUNphLLO4CgOuvdUnVfibH6qDqCtpEsUuv6dNynMUAo3ctQg4iv2pwYBT4U1CBEMN91HxtFZ7tIX7uP097QJk5kZ2iTgFiURbkoNrCtyRBC_XDMLk9m_zsglF7dIY0X6nc5EO7fypxiA9X73jc9l2XxTqfvs6ePMNscUVo228zxbEXWKcKo48fD3yF_1cWso3nT6UEqTXwSJ9d7ZOvvb7GcQXnk9G-jBLlsgvUg_77pWp9Xa5M2FYNyjRL_BWgSTUnTujRmFDiDZZIU1enzaXcLjPdEP6RYFfIxqGYNlvR1Vvi2bnan375ndkhNC7QaVVoDivrGHscxOZ0EsBd9BZ9UJE7JUhmPL3t0MSYU8sJOUvwjA0KJnI5PLjnhGashn-yj8oOclprDtoMPoGo=w650-h901-no"&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Увага!&lt;/strong&gt; Пари газів у колбі можуть бути небезпечними для Вашого здоров'я та навколишнього середовища. Їх не можна розбивати, та потрібно утилізувати у спеціальних місцях!&lt;/p&gt;
&lt;h2 id="_2"&gt;Перевірка запобіжника&lt;/h2&gt;
&lt;p&gt;Може бути така банальна проблема. В компактних лампах він, як правило, розташований в проводі від плати до цоколя (може бути в ізоляції). Запобіжник має дзвонитися (мати дуже малий опір).&lt;/p&gt;
&lt;h2 id="_3"&gt;Перевірка колби та спіралей&lt;/h2&gt;
&lt;p&gt;В лампі може вийти з ладу як сама лампа (колба), так і електронний баласт.&lt;/p&gt;
&lt;p&gt;Що циліндрична, що спіральна колба мають по 2 контакти з кожного торця. Ці контакти є закінченням спіралі, що розташована всередині колби. Кожна спіраль повинна мати опір 10-30 Ом. Причому бажано приблизно однаковий з обох сторін.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Колба лампи" src="https://lh3.googleusercontent.com/kxFm-huMfhhBDsTIhNBL2pHnfTwwBlFDUX58yTGQDDVNtxgvTjz3pcTQVBPVox5LtA9nBs6QL9ElmYsDnMIv4ataXxgtW0ZiHN88SqsyJkw7LWa_sdRwMLFwzPuBakW0Oy2dD7Olo72w5ULJ6RFeg3o-cHouU6R9nOlOS-Gp8jTecBq04EoR_Mlo72_u3ByK0Mi5xOLVrfWVFkwsME7AzOw-RoojqFXPXxuOvWWieBv1QUdjxvpB-qtIML_vqMLuoF9fcPH571XBdl57qMOPxKl82QPAJACGeoLF8_FVt4xzs0XXDRrPh0IO-2DC4eQaHxvFnlJXxnC3rDwW43W88ZWY0bcQcHp2MXkroAZoOlJO3j8zGN9K-s9mVLIk8A5W3Bj-Dn0ebLoUPFiJa7LzWqWwe3tEhA4IQiNdO8RoNyE7BWqnrzsKcRvdkcMRkeJngE93ZwYXYBF0-dNLOaHQrqOsu--_TK-Ndy0dAKKJ2DT0U9iVnrXrIFQzzyPBQtq5HpSCQpRuutWKSACDSbfcXrWLYLqzTTiheKABLjx0zQ7u9p7AFmQkMjNaC43dxbV7s8pMQ5rDeIz1HWnX5Oivi6LMJ-xjiaOF4lZxcb4dhpcHtpmiA3pfNg=w450-h714-no"&gt;&lt;/p&gt;
&lt;p&gt;Якщо опір безмежний — спіраль перегоріла і не підлягає ремонту. Це могло статися з часом "від старості", через брак під час виготовлення, або через стрибки напруги в електромережі (на які спіраль не розрахована).&lt;/p&gt;
&lt;h2 id="_4"&gt;Перевірка електронного баласту&lt;/h2&gt;
&lt;p&gt;Більшість "стандартних" недорогих ламп мають типові електричні схеми, які не містять складних компонентів і можуть бути перевірені за допомогою мультиметра.&lt;/p&gt;
&lt;p&gt;Приклад схеми:&lt;/p&gt;
&lt;p&gt;&lt;img alt="Електрична схема люмінесцентної лампи" src="https://lh3.googleusercontent.com/pfLviLDCgaGkbbmLq-VDQdAIffCh4fI5IU9fhpW_1cLT0NjId-m6N4luwjSZhRx6n5iEMEWatQG-n6m5GdgNqxTVp16ve6oYZrtRTEvyPYrCx2vYzgrki2nIgWaJ5yOpo8oTNKGtvQp3S4tYV_wp_8Z0iymi8qxP0sd-lnhtP5S5fp-onpXQY-Gz4MywSjzZ0G4cavLMO1K8qDlLkc13PS01cj0Uqi3un5f5VvAlUG5isRRRnP-viKNvp-Aerwi3BKCah1xLO12-GL1wDL_9ckWuejtKmI9YDnjM6Ni8KqEw_lPW7kImd_9Npvw2YPzB-ZqM4rRE85XqbLLC7MBLbLBWFW9Y9b8lV2sTy8I8IgSRs3Gis78Er4BO_ZlNEQ2rEDII9ISNNiVqnZ-CHrqGIvstKMSrTgFFqL0e70BR5g3mtH6yUTBLZHf5xuuquMp9KiZoce532JYGFqLOYW21cFBXaWPXWY4H6G8J3xurE18suct0oM130N8aUsawcE3BZpBTGZswveWrRhbTrUavd-fMbnUVhBciCfcZRNxo--myQci5zP-AOn5vm0tNsbYfGH3aJdynNBDHDK3li-PnyVZfuq-X0VqTg9qxM_g-G9eaJ3qfgzDTKw=w812-h526-no"&gt;&lt;/p&gt;
&lt;p&gt;Більше варіантів схем &lt;a href="http://www.pavouk.org/hw/lamp/en_index.html"&gt;можна переглянути тут&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id="_5"&gt;Контакти та з'єднання&lt;/h3&gt;
&lt;p&gt;У великих ламп, або в агресивних середовищах (сире приміщення) бувають і псуються контакти чи рвуться дроти, підгоряють контакти в вимикачах, виламуються доріжки на платі.&lt;/p&gt;
&lt;h3 id="_6"&gt;Дроселі&lt;/h3&gt;
&lt;p&gt;&lt;img alt="Дросель" src="https://lh3.googleusercontent.com/yLqEqrJI9BuM6whX8bR1S1WHvZUP7_Jmb5uf5ZwZwSY-Q7v2YXyop77_8gyDmr_p_dxOM89KAp6joQcBF576H_R3RfbjWRhpUEVIF96iYMbh8T-7wlkRJePmAHbcjU1Ig8dZ82EKKyWVw5CtyXZ9BoD-fFacU4hOU9zCzOiIsV_-v16B09B2oQ4fWQGCYX600nzEDo0Etx1laDZUY5e5vPKsRb1UZW_YyuQWnpuGqhKebkMWm-Pe4QRoulJQAjViDtNhROZw2Abh38jLpkT2A5x7exB-eIYX4_i71lmP9aq2JxSZBtdCEgZwVpK__dnOfuOhNWM2RpIMJHrCP8ToZK1u3QDkZXZgiGuJt9q6VJvMWXz3mOnaN7swqRa9buAUNGVo7f-EyIkqwVhm8MdFsFbpZFmhmqvwZeZhurav8LxYn4YXF9jhtvzfvjhAYOmYb7dMJRTkaQUfrbxlrqujc6W9rEmnUYGt5K_vaGm1xlvdfBr-2LfvvBmkPiKVPd1MOmrqINjKXtYn-hErdypwJs-jLBCuDNsgJRc8i7S0raUzd0NEkUel8aBDCh42C0Ktlxvn8HWZqIhgUWOu3bCrlruNNxLniq1fvLnF5MlVKgqgi0m8M8Lr9w=w150-h343-no"&gt;&lt;/p&gt;
&lt;p&gt;Продзвонюються. Я так розумію з ладу виходять рідко.&lt;/p&gt;
&lt;h3 id="_7"&gt;Напівпровідникові елементи&lt;/h3&gt;
&lt;p&gt;Перевірити усі діоди. Вони мають "дзвонитися" в одному напрямку і бути "закритими" у зворотному.&lt;/p&gt;
&lt;p&gt;Увага! Є один елемент (на схемі вище це DIAC), що не повинен продзвонюватися в жодному напрямку — &lt;a href="https://uk.wikipedia.org/wiki/%D0%94%D0%B8%D0%BD%D1%96%D1%81%D1%82%D0%BE%D1%80"&gt;диністор&lt;/a&gt;. Якщо він дзвониться в усіх напрямках, то точно вийшов з ладу.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Напівпровідникові діоди" src="https://lh3.googleusercontent.com/Gv-Ebl0zzj-InAxEzR6iELLFqU5cptHBSdSmHiT24emcOUMT7BYxFhGFNEe4UyeWDpflOUJLLcelScjhnI0gwOh3GRkzpSkQo_tNgqpPY2-EQ4ZIxtxX9WdkHMCtVNSFluHXSMaU6W4JjZdHWqt3bybF-rMPfSj_N2SRs3ipQPOE2cLHpLO6WLRQ1BU_q6tZQv_fYhrkhtf4zUCyKxw8eWWCXArmIci-4M8weJhx9r1fWv9-8sIp5HVT_abptfxpCNyWCsgSsa9jZUJR0Li9k0jAGcUu76ea0_3fn7_p2jqyIGpzN1QbhcOZgGPis9UHDOIOrwKWaDhwVZvjl0kesmPzj0eUL14PUBYRb_nv_31O9GdrpZOK47XFdh79n4tz2Hwx6PGQ_5X4pDHrHLuVmW87TnY8ytuxRF_LFdHPhBrYJUzhHDeq3IWgAQK99duSjNx-t76-SqH0UDcAfNTrDSpVQHvtqH4bzXH18qbRMpIwTSsqUWgJTNBFQp6lvDkV0XIVTj2n3tq5SCBTDgx-ZPS3kydzPuqZUxeuDElEloFTaGOlRXKp_FHzpCfsNDs_q8VdsFkK8wbNOl_Kqwqb3yzw5rDfUkqGSlBgCK6Cs-L1w0TGDeYazg=w350-h419-no"&gt;&lt;/p&gt;
&lt;p&gt;Перевірити транзистори. По маркуванню елемента знайти його характеристики і розпізнати яка ніжка за що відповідає, та продзвонити напівпровідникові переходи. Інколи краще випаяти транзистор, щоб інші компоненти не впливати на результати вимірів.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Транзистор" src="https://lh3.googleusercontent.com/7EJcO1dQ_9B7jlVmePteLeuf1XH7q3HdP6SXI2yGU44wQ9-uNmf5PDMt6Cx_D4Xs1hGWkeyTiqdlqAZ5_l6XVd47YH-w6dELYavQRFu8h9bzJ3AYJHwow_jSXMTZH23OpLEnSwRPNIMAYHj39l28q-U_6yAknTQs6AFXqxcdQdBidg5X_Wye0CFYES31XKJ0DHQ3jHtCBRlOZFvMCh9xW9M9FRgc3LHC7jEVXWO_dzFShyh-ScAntuTNMxK2ebzEXeMJU8L5JaLC0ivKrFdjW31eO_kDRg7BijA98uoX0M-8s2RO2-PkS9VO96rFuKlhHQEG6AvVSC2DfGjwKz6uWoAylP0igM2ydIrPMcnJtzSa-wI2u1hKCpItSbxeKzB_xLY8_9miKfhmplgkmNwbAamOn7Le_-eYuFd-L9puM84XyF8Ax5rmvqjurWM09Z-Jpkiepfq9k4BlBjsuxi_Dnj_MTOVxHbxPSCaz6BX9ftEPXVD-9N6DSc_yhiUgp8OAh0ly1LXrOz6dF5-0NgUgh0XotR7BcMt92CcenD0pW2OmaAOHySGF_T_ea5VLR58rM01_nn98Lhc9KEU7FmvLhkVkdVU4_BUDOuymvmb2kl95yc5lz1qbOw=w150-h280-no"&gt;&lt;/p&gt;
&lt;h3 id="_8"&gt;Конденсатори&lt;/h3&gt;
&lt;p&gt;Використовується щонайменше один електролітичний конденсатор (циліндрик) і кілька високовольтних (зелені чи "коричневі подушечки"). Як правило, конденсатори "пробиваються" і дають коротке замикання.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Конденсатор" src="https://lh3.googleusercontent.com/VxMjSieI-oUduIeVwirlSmu03HOJcCXnOsDTR18KfP_iM87pg1EKPpBohn8fJhoAe2XJAh4BlsNVNI3I5rjLH-VYmjnl59ZqInbcX0jpxnOKP5ujfYaGwNAyVNQwvcYrONzoHTTElGqw4rXVDCHBN_gdKf609slg3GAFRqLcV7m-aHkyt29seEFHj5HXb9vC-SI9XrJOLPiTDgvRn8yh0vybJc-NBbn_OqklJXbBy_B9OdeB5FEkbm2MmTA_gYXM-g0PbFvYO6aqznXtyS5h-tZ7I6tF8984KgLb-TqaTWzUSEX2jBRe-94TqgCBKh_ebMatY2g8R_vcJWIhtUdggU_h09kmzpBM-ELue46B0GcNeSiRuJbnFVKw5GwMLQt47Hr049DaaUbBy7nxiWw6_EFCEqZqowdLqpASTo9GxGZcj5ei6bZuRTkRFtGULB88bYD1cSGmykSAXwlpxGrGTQmRA2cy4VfpaMmJtNx8Z-2r53wiehwvQhPKsFM8s6QG2nST1GYBxKrbC64KwA9fuNqh9w3nWYchlz-3uqCVbyONi0i8wZ1l1_rCXOSL8Z2eB0vJjfMg3BIl82IBr0l9J5_UaksU-de3vODE9-IWPrm-tL6t_WGHWw=w480-h823-no"&gt;&lt;/p&gt;
&lt;p&gt;В моєму випадку з ладу вийшов саме конденсатор (стартовий), що встановлено між спіралями. Він був на 3,3 мкФ, 630 В. Я не мав такого, тому з іншої лампи, де вийшла з ладу колба, я випаяв схожий (з такого ж місця схеми), на 2,2 мкФ, 1000 В.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Увага!&lt;/strong&gt; Обов'язково звертайте увагу на макс. напругу конденсатора і не ставте конденсатори, що розраховані на меншу! Там справді відбуваються стрибки такої високої напруги.&lt;/p&gt;
&lt;h2 id="_9"&gt;Замість епілогу&lt;/h2&gt;
&lt;p&gt;Отже, навіть в домашніх умовах цілком реально повернути до життя зіпсовану лампу. Наскільки це рентабельно і цікаво — кожен вирішує собі сам. ;)&lt;/p&gt;
&lt;p&gt;Нагадую, що робота з електрикою завжди небезпечна, тому виконувати її можна лише людям з певною підготовкою!&lt;/p&gt;
&lt;p&gt;Інші цікаві сайти на цю тематику:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.pavouk.org/hw/lamp/en_index.html"&gt;http://www.pavouk.org&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.budyon.org/o-sistemah-pitaniya-lamp-dnevnogo-sveta/"&gt;http://www.budyon.org&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://luna1509.narod.ru/001/002.html"&gt;http://luna1509.narod.ru&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://dummyluck.com/page/remont_energosberegeyushih_lamp"&gt;http://dummyluck.com&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content><category term="Технічні теми"/><category term="DIY"/><category term="електрика"/><category term="лампочки"/></entry><entry><title>Як перевірити кутник (косинець)</title><link href="https://yura.stryi.com/2017-01-15/try-square-test/" rel="alternate"/><published>2017-01-15T00:00:00+02:00</published><updated>2017-01-15T00:00:00+02:00</updated><author><name>Юрій Сметана</name></author><id>tag:yura.stryi.com,2017-01-15:/2017-01-15/try-square-test/</id><summary type="html">&lt;p&gt;&lt;img alt="Кутник столярський, теслярський" src="https://lh3.googleusercontent.com/fxHoKcr_dIiSM197vvF6D88IjGr1oafZTYhoNlAL0DwdOEYRHcbx5w0uhW8Bl75CI7oHCvV9QXtKMUGvYrNdbECCkkJrMn8TrGdaUsoFuHxpIh0bJ2a3kxj0lNJiBlt1JcWdNQ0YWXBbwPONOJC2SlrQjKiQntNXlEpJ9IX_B-P_HArXmtmNR-39VNNxYfZn18Lna-NpBP11g2Cdcrp93PqJ0tYqD_tbPTIL--hiXhC1Sbo5DWCsdrVlDvVm-vlQEXvOEPsibyFTePn8YOqvNCtHENXlwy1V1GDgqKF7sRiTWboRFYDtQnb1GmFwc9Pwt1wMsc413IUipEmGoQbvrSBjutF5zR_xEqJzbU4Ya-EC6qOsre7ViWR6HgAsM-yx_v4MsXaxi1iu_6SoERFO12530zuqtYK3cREVTQyKHOOJalWNVkdqCQsWzWHwCBDRkPnmhuc73s4teCZfLcokcoIjs_eWKlkBpHjVW7hsWvVFRJMBU3oRbfEu15prJbRIQf705G4RFnvnRwvhHXSegixAIWgqUeL7Ecmcd_iDRJ4N40dqcEyVQOWpz8xRFXPrdLZuxRx3K7QzA00Uce0DaAafTFw0WGidR2joIV_6naWyiQsMZ7q7Gmroo1LlgVtaHItB6CAQO5bADyEk9EWuX8eIQWS4Ct7oLxgoYe7QtPU=w580-h289-no"&gt;&lt;/p&gt;
&lt;p&gt;Кутник (косинець) — один з найпростіших, проте дуже важливий інструмент столяра чи слюсара.&lt;/p&gt;
&lt;p&gt;Основне призначення прямокутного косинця — розмічати прямий кут між двома лініями. Відтак, від точності заданого в інструменті кута напряму буде залежати результат. Навіть незначні відхилення від 90°, на тривалих відрізках, можуть спричинити відхилення від перпендикуляру на кілька міліметрвів.&lt;/p&gt;
&lt;p&gt;Як …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;img alt="Кутник столярський, теслярський" src="https://lh3.googleusercontent.com/fxHoKcr_dIiSM197vvF6D88IjGr1oafZTYhoNlAL0DwdOEYRHcbx5w0uhW8Bl75CI7oHCvV9QXtKMUGvYrNdbECCkkJrMn8TrGdaUsoFuHxpIh0bJ2a3kxj0lNJiBlt1JcWdNQ0YWXBbwPONOJC2SlrQjKiQntNXlEpJ9IX_B-P_HArXmtmNR-39VNNxYfZn18Lna-NpBP11g2Cdcrp93PqJ0tYqD_tbPTIL--hiXhC1Sbo5DWCsdrVlDvVm-vlQEXvOEPsibyFTePn8YOqvNCtHENXlwy1V1GDgqKF7sRiTWboRFYDtQnb1GmFwc9Pwt1wMsc413IUipEmGoQbvrSBjutF5zR_xEqJzbU4Ya-EC6qOsre7ViWR6HgAsM-yx_v4MsXaxi1iu_6SoERFO12530zuqtYK3cREVTQyKHOOJalWNVkdqCQsWzWHwCBDRkPnmhuc73s4teCZfLcokcoIjs_eWKlkBpHjVW7hsWvVFRJMBU3oRbfEu15prJbRIQf705G4RFnvnRwvhHXSegixAIWgqUeL7Ecmcd_iDRJ4N40dqcEyVQOWpz8xRFXPrdLZuxRx3K7QzA00Uce0DaAafTFw0WGidR2joIV_6naWyiQsMZ7q7Gmroo1LlgVtaHItB6CAQO5bADyEk9EWuX8eIQWS4Ct7oLxgoYe7QtPU=w580-h289-no"&gt;&lt;/p&gt;
&lt;p&gt;Кутник (косинець) — один з найпростіших, проте дуже важливий інструмент столяра чи слюсара.&lt;/p&gt;
&lt;p&gt;Основне призначення прямокутного косинця — розмічати прямий кут між двома лініями. Відтак, від точності заданого в інструменті кута напряму буде залежати результат. Навіть незначні відхилення від 90°, на тривалих відрізках, можуть спричинити відхилення від перпендикуляру на кілька міліметрвів.&lt;/p&gt;
&lt;p&gt;Як перевірити косинець під час купівлі? Як виявилося, порівнювання кутників між собою з метою знайти відхилення — абсолютно безперспективна процедура. Зрозуміти який з кутників дає неправильний результат дуже важко.&lt;/p&gt;
&lt;p&gt;Перевірити кутник можна дуже просто за допомогою поверхні з рівним краєм (підійде стіл), аркуша паперу та олівця. Я перевіряв в меблевому відділі магазину інструментів. ;)&lt;/p&gt;
&lt;p&gt;Потрібно приставити основу (колодку) кутника до краю поверхні і намалювати на аркуші лінію-перпендикуляр до неї:&lt;/p&gt;
&lt;p&gt;&lt;img alt="Одна сторона кутника" src="https://lh3.googleusercontent.com/nglW2IaqGksYd5yBQBwrdsJx5VZTFGJPI4JLSzkQatddKQwd8Hj0MrDOKwchGoWicqcBAM2xVbW8pd8Fuhb8tNPewGP_FGR19fIrjLGTbINwcC5iiFB1qHTBV0ygF48t2fxWCdtzhoUrLfQRyCcxzpfv4qK7TD6ZXxZwj64Uzj2Gk44sgpblkkFGTv5pLMUEnxIV_B6QCjXXRLL4ph9ow9RW7XioYeHhx5b1xeh9qr_ENcFitiNZJWfaBeg6vUWEgJj4XNaGaW604zG3WKn6JWEP7BXkmv4beCOKUZdVKcU0B7yy2qViyB3eAPmGGXg3p87TX1L6OfNZHCblC573-SkCrk9mKFrgAaXHNJhXXFY2dKYY8UbqAjBG6_QG6IqU5Mxl5BSHKgDJ62AfODi6f87ann6o4xth6zObr5GQDCtZWzu8iGfDatZoeek4YCQNbe_aOc8Hnd5E1tqlF1gNHd0UCHTd-mf50w24MUAottqfRKE4EaIhOhzmnQDngbinK1cxzpCZo5J40CGz2cqEpDycuX0AIzKlhcPcqlWmQsp2BnputK4KQiUiSbBDJGbHfZudXm3Wj3gluEqTuCciYszVqRGSTxl-n5y82iwGWeBMcFx1-ksTgnoVysvmeQxGBFxcvhRTWjLphhpTdMnGsuwQ3Bk0AirYhJiO4GtLQz8=w689-h875-no"&gt;&lt;/p&gt;
&lt;p&gt;Потім, акуратно притримуючи аркуш (щоб не змінити його розташування), потрібно перевернути кутник на іншу сторону і співставити край кутника (перо) з лінією. Вони повинні &lt;strong&gt;співпасти&lt;/strong&gt;. Це означатиме що кутник точний.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Інша сторона кутника" src="https://lh3.googleusercontent.com/wgiXdmNNcJXNZbw4nqDjr_dTbU0eLCNl42pdYXMNhE5qAz6uhd3u-2_I8v5vUZzZsvcazsr4Yvvljtc7QRXIp02NViQSWPxnZihylHHtna04XNPh-tUpMq3bN3Z5EKNqM4tE5ndnWI029jB__odfwLiGbzZiFUTYFhJqKy8XL27P1FADQOCBZUtrEoXZ9IPp5gKZp86_Ysz_jlPFD_cGXfFJ7pw8sI-8BoVKUm9TNicxPVDoQGJFb8OnqJcFbG0LIgsWjdGO0b9znrpvHmyTNOupZOivGOAhfX6KxmNCOO9wVSFOeEfdL7P8pVcYAtBBR5DTyh1wC_VnV-Smtov7AB9-wCpe1YkT6Rhuw1fY_Msb20vWtJYHP_5VLPtf1Z2uMj4GfVxNRya5uW4-3iWrKdaJpV62NuI2_R_OlYaDL4t-xTrOuXwsOGpKMWxz2QQRkMBPkUPsslg-CZRt4EDTz8RJmd_igW0wLpgISR4-5aPfh3_F7nBn6xPXEgIh1A1ojZ93_Pw-okDdgZD8h0zVBwsVyB-ic8zopn3QPYaOJj0t0S1qwRX5JUKtxIihTLqEbWTSv9BWCVEDLfsYsVNEeF1mxvINXC3S-15j4_gzOYPPhSt5KYSN0emz_6SEcHe4bd24u4fCjHA4w7CKPuexqjbinQfZ_hfaot9X58HxkwU=w665-h895-no"&gt;&lt;/p&gt;
&lt;p&gt;Якщо лінія не є паралельною стороні кутника — інструмент неточний!&lt;/p&gt;
&lt;p&gt;&lt;img alt="Неточний кутник!!!" src="https://lh3.googleusercontent.com/P6UCG-a0ZzWJ3nNVzfWCpevN7nZwWtKf7Q9rZDM4GoRcOfb2fa0_GdJ_c50sDV21vhPYob5UjEifir6VAoA5b2WUv9Lsa21XY_VhnW9IjN9mmBixX2r26j5Cy3NRc06z0MM5bQWDsU2Hd7t-sBfifJ6rkWtv_JTyq1irrVfUHhp_pEMzHL6dqaSB4qOsowGrEkUOpD9OAAfp62qK6di3TvuhrEm2XP2nv3w9Gr5InXTvNqqhihWJUA9ynGCgcLQvNUB3VZzMPz8JCLFnHKvVUmWp1JR0DjCbh4iSj91qTFnxkFElIu3NB1t-APjW-VEKLOL6fZc3lowof_79f57bcdARYT-v9Sx9IEWSPv_3C0de287rd2UjpQ63UFRfDdXLtyJCi_c0NQorEMGaYBRo6sO72L2yrctzpW31cmfg_bRNAwNaIrrOJVr59w6Qy5eiJqcMmAgo_qcUdhplMiYZtofngUxozC9a5h4Zr3Ie8tNH7NgOKjMotCxKzhKZcSG5ykt9TECyAz7C4gNGrRjr1YXJqfu6LuWNlgC-EraiY2r7mE5L7YsQHeHjTbLAhdCaYaImX6EhfXN0viShVT6zB-SUcRRdOJx7n9huSriS80-fLlc_m76eeaaMTsqN85XulG2eEVowp_TRWzi4H5nljOZDeFB0AvKRyUzqaU8jbLA=w668-h895-no"&gt;&lt;/p&gt;
&lt;p&gt;З 3-х екземплярів (недешевого) кутника відомого виробника 2 нагло брехали.&lt;/p&gt;
&lt;p&gt;Увага! Деякі кутники ще й мають люфт. Порухайте сторони кутника, пробуючи змінити кут між ними, щоб виявити слабину з'яєдання (але не надто сильно).&lt;/p&gt;
&lt;p&gt;Загальні рекомендації, підглянуті на форумах фахівців:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;суцільні кутники, вирізані лазером зі шматка металу є точнішими, але не мають колодки (треба впирати в додаткову площину)&lt;/li&gt;
&lt;li&gt;блискучі кутники погано "читаються", краще матові, або чорні&lt;/li&gt;
&lt;li&gt;краще, коли розмітка відстаней нанесена фарбою у ямках — не так швидко стирається&lt;/li&gt;
&lt;li&gt;краще, коли розмітка є і на внутрішній і на зовнішній стороні кутника&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Не знаю чи важливо: дешевший алюмінієвий кутник був легший на 25% від дорожчого, таких самих розмірів.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.craftsmanspace.com/knowledge/steel-square.html"&gt;Джерело вступної ілюстрації&lt;/a&gt;.&lt;/p&gt;</content><category term="Технічні теми"/><category term="інструмент"/><category term="кутник"/><category term="косинець"/></entry><entry><title>RAID-контролер Adaptec 3405 в Linux</title><link href="https://yura.stryi.com/2016-12-21/adaptec-3405-raid-linux/" rel="alternate"/><published>2016-12-21T00:00:00+02:00</published><updated>2016-12-21T00:00:00+02:00</updated><author><name>Юрій Сметана</name></author><id>tag:yura.stryi.com,2016-12-21:/2016-12-21/adaptec-3405-raid-linux/</id><summary type="html">&lt;p&gt;Контролер старенький, але свою справу знає.&lt;/p&gt;
&lt;p&gt;Для Linux розробник пропонує готовий бінарник: &lt;a href="http://storage.microsemi.com/en-us/downloads/storage_manager/sm/productid=sas-3405&amp;amp;dn=adaptec+raid+3405.html"&gt;Adaptec Storage Manager v6.50.18579 for Linux x64&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Пряме посилання на сторінку завантажень: &lt;a href="http://storage.microsemi.com/en-us/speed/raid/storage_manager/asm_linux_x64_v6_50_18579_tgz.php"&gt;http://storage.microsemi.com/en-us/speed/raid/storage_manager/asm_linux_x64_v6_50_18579_tgz.php&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Пряме посилання на файл: &lt;a href="http://download.adaptec.com/raid/storage_manager/asm_linux_x64_v6_50_18579.tgz"&gt;http://download.adaptec.com/raid/storage_manager/asm_linux_x64_v6_50_18579.tgz&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Отриманий файл …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Контролер старенький, але свою справу знає.&lt;/p&gt;
&lt;p&gt;Для Linux розробник пропонує готовий бінарник: &lt;a href="http://storage.microsemi.com/en-us/downloads/storage_manager/sm/productid=sas-3405&amp;amp;dn=adaptec+raid+3405.html"&gt;Adaptec Storage Manager v6.50.18579 for Linux x64&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Пряме посилання на сторінку завантажень: &lt;a href="http://storage.microsemi.com/en-us/speed/raid/storage_manager/asm_linux_x64_v6_50_18579_tgz.php"&gt;http://storage.microsemi.com/en-us/speed/raid/storage_manager/asm_linux_x64_v6_50_18579_tgz.php&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Пряме посилання на файл: &lt;a href="http://download.adaptec.com/raid/storage_manager/asm_linux_x64_v6_50_18579.tgz"&gt;http://download.adaptec.com/raid/storage_manager/asm_linux_x64_v6_50_18579.tgz&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Отриманий файл розархівувати:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;tar -xvzf asm_linux_x64_v6_50_18579.tgz&lt;/code&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;cmdline/arcconf
manager/StorMan-6.50.x86_64
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;І покласти в затишне місце:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;mkdir /opt/arcconf&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;cp cmdline/arcconf /opt/arcconf/&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;chmod 700 /opt/arcconf/arcconf&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Встановити залежність:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;apt install libstdc++5&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Приклад виконання:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;/opt/arcconf/arcconf GETCONFIG 1&lt;/code&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;Controllers found: 1
----------------------------------------------------------------------
Controller information
----------------------------------------------------------------------
   Controller Status                        : Optimal
   Channel description                      : SAS/SATA
   Controller Model                         : Adaptec 3405
   Controller Serial Number                 : 8C163DF1D
   Physical Slot                            : 3
   Temperature                              : 34 C/ 93 F (Normal)
   Installed memory                         : 128 MB
   Copyback                                 : Disabled
   Background consistency check             : Disabled
   Automatic Failover                       : Enabled
   Global task priority                     : High
   Stayawake period                         : Disabled
   Spinup limit internal drives             : 0
   Spinup limit external drives             : 0
   Defunct disk drive count                 : 0
   Logical devices/Failed/Degraded          : 1/0/0
   NCQ status                               : Enabled
   --------------------------------------------------------
   Controller Version Information
   --------------------------------------------------------
   BIOS                                     : 5.2-0 (17342)
   Firmware                                 : 5.2-0 (17342)
   Driver                                   : 1.2-1 (41010)
   Boot Flash                               : 5.2-0 (17342)
   --------------------------------------------------------
   Controller Battery Information
   --------------------------------------------------------
   Status                                   : Optimal
   Over temperature                         : No
   Capacity remaining                       : 99 percent
   Time remaining (at current draw)         : 3 days, 1 hours, 11 minutes

----------------------------------------------------------------------
Logical device information
----------------------------------------------------------------------
Logical device number 0
   Logical device name                      : zeta-r1-3t
   RAID level                               : 1
   Status of logical device                 : Optimal
   Size                                     : 2856950 MB
   Read-cache mode                          : Enabled
   Write-cache mode                         : Enabled (write-back)
   Write-cache setting                      : Enabled (write-back) when protected by battery/ZMM
   Partitioned                              : Yes
   Protected by Hot-Spare                   : No
   Bootable                                 : Yes
   Failed stripes                           : No
   Power settings                           : Disabled
   --------------------------------------------------------
   Logical device segment information
   --------------------------------------------------------
   Segment 0                                : Present (0,10)      WD-WCC4NUUPKF
   Segment 1                                : Present (0,13)      WD-WCC4NDKYSR


----------------------------------------------------------------------
Physical Device information
----------------------------------------------------------------------
      Device #0
         Device is a Hard drive
         State                              : Online
         Supported                          : Yes
         Transfer Speed                     : SATA 3.0 Gb/s
         Reported Channel,Device(T:L)       : 0,10(10:0)
         Reported Location                  : Enclosure 0, Slot 2
         Reported ESD(T:L)                  : 2,0(0:0)
         Vendor                             : WDC
         Model                              : WD30RX-68EUZN0
         Firmware                           : 82.00A82
         Serial number                      : WD-WCC4NUUPKF
         Size                               : 2861588 MB
         Write Cache                        : Enabled (write-back)
         FRU                                : None
         S.M.A.R.T.                         : No
         S.M.A.R.T. warnings                : 0
         Power State                        : Unknown
         Supported Power States             : Full rpm,Powered off
         NCQ status                         : Enabled
      Device #1
         Device is a Hard drive
         State                              : Online
         Supported                          : Yes
         Transfer Speed                     : SATA 3.0 Gb/s
         Reported Channel,Device(T:L)       : 0,13(13:0)
         Reported Location                  : Enclosure 0, Slot 5
         Reported ESD(T:L)                  : 2,0(0:0)
         Vendor                             : WDC
         Model                              : WD3FRX-68EUZN0
         Firmware                           : 82.00A82
         Serial number                      : WD-WCC4DDKYSR
         Size                               : 2861588 MB
         Write Cache                        : Enabled (write-back)
         FRU                                : None
         S.M.A.R.T.                         : No
         S.M.A.R.T. warnings                : 0
         Power State                        : Unknown
         Supported Power States             : Full rpm,Powered off
         NCQ status                         : Enabled
      Device #2
         Device is an Enclosure services device
         Reported Channel,Device(T:L)       : 2,0(0:0)
         Enclosure ID                       : 0
         Type                               : SES2
         Vendor                             : ESG-SHV.
         Model                              : SCA HSBP M13....
         Firmware                           : 2.05
         Status of Enclosure services device
            Power supply 1 status           : Optimal
            Power supply 2 status           : Optimal
            Temperature Sensor Staus 1      : Normal
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</content><category term="Технічні теми"/><category term="Adaptec"/><category term="Linux"/><category term="Ubuntu"/></entry><entry><title>Підключення нового диска (3ТБ) в Linux</title><link href="https://yura.stryi.com/2016-12-21/new-disk-drive-3tb-linux/" rel="alternate"/><published>2016-12-21T00:00:00+02:00</published><updated>2016-12-21T00:00:00+02:00</updated><author><name>Юрій Сметана</name></author><id>tag:yura.stryi.com,2016-12-21:/2016-12-21/new-disk-drive-3tb-linux/</id><summary type="html">&lt;p&gt;Дискові пристрої, що "бачить" система: &lt;/p&gt;
&lt;p&gt;&lt;code&gt;lsblk&lt;/code&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;NAME&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="nl"&gt;MAJ&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;MIN&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;RM&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="k"&gt;SIZE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;RO&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;TYPE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;MOUNTPOINT&lt;/span&gt;
&lt;span class="n"&gt;sda&lt;/span&gt;&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;119&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="n"&gt;G&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;disk&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;
&lt;span class="err"&gt;├─&lt;/span&gt;&lt;span class="n"&gt;sda1&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;117&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="n"&gt;G&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;part&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;
&lt;span class="err"&gt;├─&lt;/span&gt;&lt;span class="n"&gt;sda2&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="n"&gt;K&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;part&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;
&lt;span class="err"&gt;└─&lt;/span&gt;&lt;span class="n"&gt;sda5&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="n"&gt;G&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;part&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;SWAP&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;sdb …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</summary><content type="html">&lt;p&gt;Дискові пристрої, що "бачить" система: &lt;/p&gt;
&lt;p&gt;&lt;code&gt;lsblk&lt;/code&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;NAME&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="nl"&gt;MAJ&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;MIN&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;RM&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="k"&gt;SIZE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;RO&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;TYPE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;MOUNTPOINT&lt;/span&gt;
&lt;span class="n"&gt;sda&lt;/span&gt;&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;119&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="n"&gt;G&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;disk&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;
&lt;span class="err"&gt;├─&lt;/span&gt;&lt;span class="n"&gt;sda1&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;117&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="n"&gt;G&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;part&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;
&lt;span class="err"&gt;├─&lt;/span&gt;&lt;span class="n"&gt;sda2&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="n"&gt;K&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;part&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;
&lt;span class="err"&gt;└─&lt;/span&gt;&lt;span class="n"&gt;sda5&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="n"&gt;G&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;part&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;SWAP&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;sdb&lt;/span&gt;&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;16&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="n"&gt;T&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;dis&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Новий диск це &lt;strong&gt;sdb&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;parted /dev/sdb&lt;/code&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;(parted) mklabel gpt
(parted) unit TB
(parted) mkpart primary 0.00TB 3.00TB
(parted) quit
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Створення файлової системи:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;mkfs.ext4 /dev/sdb1&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Тюнинг файлової системи, зменшуємо кількість резервних блоків зі стандартних 5% до 1%:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;tune2fs -m 1 /dev/sdX1&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;UUID логічного диска:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;blkid&lt;/code&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;/dev/sdb1: UUID=&amp;quot;00a4f53b-d81a-4973-abef-649e9bbd2b21&amp;quot; TYPE=&amp;quot;ext4&amp;quot; PARTLABEL=&amp;quot;primary&amp;quot; PARTUUID=&amp;quot;30360e31-2d61-4168-8429-fe2acd1ea0cf&amp;quot;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Монтування при старті системи:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;nano /etc/fstab&lt;/code&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;# /backup
UUID=00a4f53b-d81a-4973-abef-649e9bbd2b21 /backup       ext4    defaults        0       2
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Створимо точку монтування і підмонтуємо все:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;mkdir /backup&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;mount -a&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Підглянуто &lt;a href="https://joshstrange.com/ubuntu-formatting-a-3tb-drive/"&gt;тут&lt;/a&gt;.&lt;/p&gt;</content><category term="Технічні теми"/><category term="Ubuntu"/><category term="Linux"/></entry><entry><title>Встановлення NFS-сервера</title><link href="https://yura.stryi.com/2016-12-21/nfs-server-install/" rel="alternate"/><published>2016-12-21T00:00:00+02:00</published><updated>2016-12-21T00:00:00+02:00</updated><author><name>Юрій Сметана</name></author><id>tag:yura.stryi.com,2016-12-21:/2016-12-21/nfs-server-install/</id><summary type="html">&lt;p&gt;Тестувалося на Ubuntu 16.04.1 LTS.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;sudo apt install nfs-kernel-server
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Робоча директорія:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;mkdir /backup/proxmox
chown nobody:nogroup /backup/proxmox
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Мережеві диски прописуються в &lt;strong&gt;/etc/exports&lt;/strong&gt;, можна вказати мережу (192.168.252.0/24) з якої дозволено доступ:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;/backup/proxmox     192.168.252.0/24(rw,sync,no_subtree_check)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Якщо …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Тестувалося на Ubuntu 16.04.1 LTS.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;sudo apt install nfs-kernel-server
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Робоча директорія:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;mkdir /backup/proxmox
chown nobody:nogroup /backup/proxmox
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Мережеві диски прописуються в &lt;strong&gt;/etc/exports&lt;/strong&gt;, можна вказати мережу (192.168.252.0/24) з якої дозволено доступ:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;/backup/proxmox     192.168.252.0/24(rw,sync,no_subtree_check)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Якщо буде використовуватися фаєрвол важливо присвоїти статичний порт для роботи, в &lt;strong&gt;/etc/default/nfs-kernel-server&lt;/strong&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;...
#RPCMOUNTDOPTS=&amp;quot;--manage-gids&amp;quot;
RPCMOUNTDOPTS=&amp;quot;-p 2048&amp;quot;
...
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Обов'язково &lt;code&gt;reboot&lt;/code&gt;. Перезапуск сервісів не допомагав. Видно перезапускав не ті, що потрібно.&lt;/p&gt;
&lt;p&gt;Перевірка, після перевантаження має бути видно статичний порт (і стандартні 111 та 2049):&lt;/p&gt;
&lt;p&gt;&lt;code&gt;rpcinfo -p&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;   program vers proto   port  service
    100000    4   tcp    111  portmapper
    100000    3   tcp    111  portmapper
    100000    2   tcp    111  portmapper
    100000    4   udp    111  portmapper
    100000    3   udp    111  portmapper
    100000    2   udp    111  portmapper
    100005    1   udp   2048  mountd
    100005    1   tcp   2048  mountd
    100005    2   udp   2048  mountd
    100005    2   tcp   2048  mountd
    100005    3   udp   2048  mountd
    100005    3   tcp   2048  mountd
    100003    2   tcp   2049  nfs
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100227    2   tcp   2049
    100227    3   tcp   2049
    100003    2   udp   2049  nfs
    100003    3   udp   2049  nfs
    100003    4   udp   2049  nfs
    100227    2   udp   2049
    100227    3   udp   2049
    ...
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h2 id="ufw"&gt;UFW&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;ufw allow from 192.168.252.0/24 to any port 111
ufw allow from 192.168.252.0/24 to any port 2048
ufw allow from 192.168.252.0/24 to any port 2049
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;code&gt;ufw status&lt;/code&gt; :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="mf"&gt;2049&lt;/span&gt;&lt;span class="w"&gt;                       &lt;/span&gt;&lt;span class="n"&gt;ALLOW&lt;/span&gt;&lt;span class="w"&gt;       &lt;/span&gt;&lt;span class="mf"&gt;192.168.252.0&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mf"&gt;24&lt;/span&gt;
&lt;span class="mf"&gt;111&lt;/span&gt;&lt;span class="w"&gt;                        &lt;/span&gt;&lt;span class="n"&gt;ALLOW&lt;/span&gt;&lt;span class="w"&gt;       &lt;/span&gt;&lt;span class="mf"&gt;192.168.252.0&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mf"&gt;24&lt;/span&gt;
&lt;span class="mf"&gt;2048&lt;/span&gt;&lt;span class="w"&gt;                       &lt;/span&gt;&lt;span class="n"&gt;ALLOW&lt;/span&gt;&lt;span class="w"&gt;       &lt;/span&gt;&lt;span class="mf"&gt;192.168.252.0&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mf"&gt;24&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</content><category term="Технічні теми"/><category term="NFS"/><category term="Ubuntu"/></entry><entry><title>Очищення образу QEMU-KVM (звільнення місця)</title><link href="https://yura.stryi.com/2016-12-21/qemu-kvm-zero-fill-image/" rel="alternate"/><published>2016-12-21T00:00:00+02:00</published><updated>2016-12-21T00:00:00+02:00</updated><author><name>Юрій Сметана</name></author><id>tag:yura.stryi.com,2016-12-21:/2016-12-21/qemu-kvm-zero-fill-image/</id><summary type="html">&lt;p&gt;Навіть після видалення файлів їх інформація продовжує зберігатися у файловій системі (тому і існують різні відновлювачі файлів: undelete та ініші).&lt;/p&gt;
&lt;p&gt;У віртуальних машинах KVM можна помітити, що інколи розмір диску що рапортує операційна система є набагато менший від того, який займає стиснений образ системи.&lt;/p&gt;
&lt;p&gt;При копіюванні образу видалені дані теж …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Навіть після видалення файлів їх інформація продовжує зберігатися у файловій системі (тому і існують різні відновлювачі файлів: undelete та ініші).&lt;/p&gt;
&lt;p&gt;У віртуальних машинах KVM можна помітити, що інколи розмір диску що рапортує операційна система є набагато менший від того, який займає стиснений образ системи.&lt;/p&gt;
&lt;p&gt;При копіюванні образу видалені дані теж переносяться, разом з образом. І при його архівуванні ці дані теж архівуються, збільшуючи розмір архіву.&lt;/p&gt;
&lt;p&gt;Щоб очистити дані, та допомогти архіватору оптимально стиснути образ потрібно заповнити місце, яке вже не використовується, якимось шаблоном, що добре архівується, наприклад нуликами (0).&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nv"&gt;dd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="o"&gt;=/&lt;/span&gt;&lt;span class="nv"&gt;dev&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nv"&gt;zero&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;of&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;zero&lt;/span&gt;.&lt;span class="nv"&gt;small&lt;/span&gt;.&lt;span class="nv"&gt;file&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;bs&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1024&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;count&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;102400&lt;/span&gt;
&lt;span class="nv"&gt;dd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="o"&gt;=/&lt;/span&gt;&lt;span class="nv"&gt;dev&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nv"&gt;zero&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;of&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;zero&lt;/span&gt;.&lt;span class="nv"&gt;file&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;bs&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1024&lt;/span&gt;
&lt;span class="nv"&gt;rm&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;zero&lt;/span&gt;.&lt;span class="nv"&gt;small&lt;/span&gt;.&lt;span class="nv"&gt;file&lt;/span&gt;
&lt;span class="nv"&gt;sync&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;; sleep 60 ; sync&lt;/span&gt;
&lt;span class="nv"&gt;rm&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;zero&lt;/span&gt;.&lt;span class="nv"&gt;file&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Після цих операцій архівні файли образів можуть стати на 10-50% меншими, ніж були раніше&lt;/p&gt;</content><category term="Технічні теми"/><category term="QEMU"/><category term="KVM"/><category term="Proxmox"/></entry><entry><title>Що таке IP-адреса (в інтернеті), якою вона буває</title><link href="https://yura.stryi.com/2015-10-27/what-is-an-IP-address/" rel="alternate"/><published>2015-10-27T00:00:00+02:00</published><updated>2016-06-27T00:00:00+03:00</updated><author><name>Юрій Сметана</name></author><id>tag:yura.stryi.com,2015-10-27:/2015-10-27/what-is-an-IP-address/</id><summary type="html">&lt;p&gt;&lt;img alt="Всесвітня павутина" src="https://lh3.googleusercontent.com/CPP3WNyhHbk2FGp8dg7D6XGpInL63akq8Cj4xcu7qgHKlXUoXfiwm2QIn8AXdI5k_AusrsVQqlHBWNibz27cNGtC64Wkp4go0zKu1gvy3uLicSE_90ToiENer7Fw3KP8ZEkIow2JRMS9aEYCgKKMZiao9IXRFAHNI9WaIhyN18DyIXZ1rXyts1EKdp9yHQWGhDaCLBOcZMkzZG8SqDRW8l79gD268FVlOuapflNHSefdg-m1MXSDQU7NxcicBaH2SEQU1xDwNJBk36Tu1_IrkKoPpFH-HDLZnoWvuSBZJi8ynn8_mJwh320LxCWC6JN4O6Vqho_WpDV9wCNmAWrGgRcfrDZI7K1TqyuIb8c3vpgUewOg7Q9K9OVu1Kwo5udMLuq8C4IMp0fbLcMYiDDcgFXqUk2VTo3GgzfF9hdr106aJFO42esAcmd4Hn5O8gq19frGS6S3V3M02dQGl0id29kn7IMnH0pXAxCnOLdLB74Q4wqUIOOABfgbRnVJXzdeURuu_Hd1YM5P4ZGgIUPJdBa4gzTFuRVvtfhv9JRzfDUy25JOqQriW16JeHGUNYmk8wxuLcVs8GlasuEyxUipYg8fbq1rG_4N=w840-h250-no"&gt;&lt;/p&gt;
&lt;p&gt;З циклу статей «Складно про просте, чи навпаки». ;)&lt;/p&gt;
&lt;p&gt;Інтернет це комп’ютерна мережа що складається з комп’ютерів та інших пристроїв, які розкидані по цілому світу. Щоб ці пристрої могли спілкуватися між собою кожен з них отримує унікальну мережеву назву — &lt;strong&gt;IP&lt;/strong&gt;-адресу (&lt;strong&gt;I&lt;/strong&gt;nternet &lt;strong&gt;P&lt;/strong&gt;rotocol address). У увесь обмін …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;img alt="Всесвітня павутина" src="https://lh3.googleusercontent.com/CPP3WNyhHbk2FGp8dg7D6XGpInL63akq8Cj4xcu7qgHKlXUoXfiwm2QIn8AXdI5k_AusrsVQqlHBWNibz27cNGtC64Wkp4go0zKu1gvy3uLicSE_90ToiENer7Fw3KP8ZEkIow2JRMS9aEYCgKKMZiao9IXRFAHNI9WaIhyN18DyIXZ1rXyts1EKdp9yHQWGhDaCLBOcZMkzZG8SqDRW8l79gD268FVlOuapflNHSefdg-m1MXSDQU7NxcicBaH2SEQU1xDwNJBk36Tu1_IrkKoPpFH-HDLZnoWvuSBZJi8ynn8_mJwh320LxCWC6JN4O6Vqho_WpDV9wCNmAWrGgRcfrDZI7K1TqyuIb8c3vpgUewOg7Q9K9OVu1Kwo5udMLuq8C4IMp0fbLcMYiDDcgFXqUk2VTo3GgzfF9hdr106aJFO42esAcmd4Hn5O8gq19frGS6S3V3M02dQGl0id29kn7IMnH0pXAxCnOLdLB74Q4wqUIOOABfgbRnVJXzdeURuu_Hd1YM5P4ZGgIUPJdBa4gzTFuRVvtfhv9JRzfDUy25JOqQriW16JeHGUNYmk8wxuLcVs8GlasuEyxUipYg8fbq1rG_4N=w840-h250-no"&gt;&lt;/p&gt;
&lt;p&gt;З циклу статей «Складно про просте, чи навпаки». ;)&lt;/p&gt;
&lt;p&gt;Інтернет це комп’ютерна мережа що складається з комп’ютерів та інших пристроїв, які розкидані по цілому світу. Щоб ці пристрої могли спілкуватися між собою кожен з них отримує унікальну мережеву назву — &lt;strong&gt;IP&lt;/strong&gt;-адресу (&lt;strong&gt;I&lt;/strong&gt;nternet &lt;strong&gt;P&lt;/strong&gt;rotocol address). У увесь обмін інформацією відбувається між IP-адресами відправника та отримувача.&lt;/p&gt;
&lt;p&gt;&lt;img alt="IP-адреси" src="https://lh3.googleusercontent.com/t-QZYZPfB8hZpSYuOXPhfhjcaIUwoI5YgGKfbaufRO8jZk559QM_Gf6YVh_jHNAV9BXMOMCU6WYSAiSjbY1gYvT4UFFYu5w377kbT2C8-LyOTv6wKHH4r3INKN8Wo8CWCcB8QK3QSUn7sYFrA-mzdWmcQtgsrrJp_Y-cvoP_WO1zww0M8WgbkVpNjZxlXQBH9qoNrgUcYTj-PZuNfFrY3ZpAV8jOabN3TuOgFQbPSvVm9kRZyM8YQJ0xbc3jbwJgZKjx6nRGtM2G0AXxF0sChCWOvd5kSYBW-_oySSiY1E7J3UFw9-pGCpzNXPGeWshRpcOPGmzVNZyIpUxYzxTCPc3xCLL4YDdTIhBu0GA9abmeaE-hajMA42DoBkdvx9RPInlCvE6v4JFfh7xTNDW9V4SkpH9muEGNH8KRVI8dLhZuvZIv0YAbXoadVEQEsoJBmYOC3jJOH8D8EyqeB5XFKIuWhexl1rGbjlvN7dKoFRFHsM3uqBaZxvxHq9aUxqUmdI2Md4b6qkJsC6G2K2VGhbsdNR4O3B3BFxD6spg0yOm8OExxNtioKwg1romNZTQvmiK7xTtjDgAK68aiCu4lALZ6UINgd6Sz=w640-h357-no"&gt;&lt;/p&gt;
&lt;p&gt;Користувач не може присвоїти своєму комп’ютеру, що підключено до Інтернету, будь-яку IP-адресу&lt;sup id="fnref:1"&gt;&lt;a class="footnote-ref" href="#fn:1"&gt;1&lt;/a&gt;&lt;/sup&gt;. Її може призначити, видати в користування, лише провайдер Інтернет.&lt;/p&gt;
&lt;p&gt;Великим провайдерам інтернет IP-адреси видає в користування спеціальні організації, що слідкують за розподілом IP-адрес в певному регіоні світу. Ці організації співпрацюють та слідкують за тим, щоб в цілому світі жодному з провайдерів не було надано в користування такі IP-адреси які вже існують в когось іншого. Великі провайдери можуть надавати IP-адреси меншим провайдерам. А провайдери що підключають квартирних абонентів надають IP-адреси своїм користувачам.&lt;/p&gt;
&lt;h2 id="ip-"&gt;Кількість IP-адрес є скінченою&lt;/h2&gt;
&lt;p&gt;Для зручнішого читання IP адресу представляють у вигляді чотирьох десяткових чисел&lt;sup id="fnref:2"&gt;&lt;a class="footnote-ref" href="#fn:2"&gt;2&lt;/a&gt;&lt;/sup&gt;, в діапазоні від &lt;strong&gt;0&lt;/strong&gt; до &lt;strong&gt;255&lt;/strong&gt;, що розділені крапкою. Наприклад: &lt;strong&gt;130.50.30.42&lt;/strong&gt;. Її прийнято називати IP v. 4, або IPv4 (IP версії 4).&lt;/p&gt;
&lt;p&gt;Перебравши всі можливі комбінації таких чисел можна підрахувати, що максимальна кількість IP-адрес — приблизно 4,2 мільярда штук.&lt;/p&gt;
&lt;p&gt;В 70-х роках минулого століття, коли тільки виникла мережа Інтернет, ця кількість здавалася більш ніж достатньою. Сьогодні ж, коли з інтернетом працюють мільярди людей, коли навіть холодильники і лампочки можуть користуватися інтернетом, стало очевидно, що такої кількості IP-адрес не вистачає.&lt;/p&gt;
&lt;p&gt;Світові організації що займаються розподілом адрес більше не видають їх провайдерам. Вільних IPv4-адрес, офіційно, більше немає.&lt;/p&gt;
&lt;h3 id="ipv6"&gt;IPv6&lt;/h3&gt;
&lt;p&gt;В 90-х роках минулого століття розробили вдосконалену версію правил обміну інформацією в мережі — протокол IPv6 (протокол IP версії 6). Для позначення IP-адреси в IPv6 використовуються не 4 байти (числа від до 256) а 16. Тому можлива кількість адрес IPv6 зростає до &lt;strong&gt;340 трильйонів&lt;/strong&gt; штук.&lt;/p&gt;
&lt;p&gt;Проте, для використання IPv6 цей протокол мають використовувати всі учасники мережі: абонент, провайдер, інтернет-ресурс (сайт). Використання нового протоколу збільшується, але доволі повільно. І відмовитися від IPv4, на даний момент, неможливо.&lt;/p&gt;
&lt;p&gt;Протоколи IPv4 та IPv6 можуть працювати одночасно, паралельно.&lt;/p&gt;
&lt;h2 id="_1"&gt;Реальні, та нереальні адреси (білі та сірі)&lt;/h2&gt;
&lt;p&gt;Як правило, навіть у звичайній квартирі, інтернет-пристроїв є декілька: комп’ютер, телефони, планшети. Але провайдер не видає по одній адресі для кожного пристрою, вона лише одна на одного абонента.&lt;/p&gt;
&lt;p&gt;Для того щоб інтернетом могли користуватися усі домашні пристрої використовується спеціальне обладнання — роутери. Вони є посередником між інтернетом і Вашою домашньою мережею.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Уявіть собі що живете в ізольованій країні, з якої не випускають людей. І Ви не можете придбати будь-який товар за кордоном. Але є спеціальні люди, нехай дипломати, які мають таке право. Вони отримують замовлення від людей всередині країни, перетинають кордон, купують все необхідне, а після повернення роздають товар тому, хто його замовляв.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Ваш роутер отримує замовлення від усіх пристроїв домашньої мережі і завантажує інформацію з інтернету від свого імені, використовуючи одну IP-адресу що надана йому провайдером. Для світу виглядає що інтернетом користується лише один пристрій, хоча за ним насправді приховуються декілька різних.&lt;/p&gt;
&lt;p&gt;В домашній мережі пристрої впізнають одне одного теж за допомогою IP-адрес. Існують спеціальні діапазони IP-адрес які рекомендовано використовувати в домашніх та локальних мережах підприємств. Наприклад &lt;strong&gt;192.168.0.0-192.168.255.255&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Такі адреси називають &lt;strong&gt;приватними&lt;/strong&gt;, або внутрішніми, або "сірими" чи "нереальними". Бо вони доступні лише в межах Вашої внутрішньої мережі. Від їх імені не можна надіслати інформацію в Інтернет чи отримати відповідь з Інтернету.&lt;/p&gt;
&lt;p&gt;Такі, однакові, адреси можуть бути у і Вашого домашнього комп’ютера і в сусідського і на роботі. Вони використовуються для обміну інформацією лише в межах внутрішньої мережі, грубо кажучи — лише в межах Вашого приміщення (квартири, офісу).&lt;/p&gt;
&lt;p&gt;IP-адреси що є унікальними в світі, які використовують провайдери, через які можна обмінюватися інформацією в Інтернеті називають &lt;strong&gt;зовнішніми&lt;/strong&gt;, або "білими" чи "реальними".&lt;/p&gt;
&lt;p&gt;Абоненту може видаватися "реальна" адреса. Від імені якої можна виходити в інтернет. На "реальну" адресу також можна приймати інформацію (коли хтось першим підключається до Вас, а не навпаки).&lt;/p&gt;
&lt;p&gt;Якщо абоненту видається "нереальна" адреса, то з нею теж можна виходити в інтернет. Але це не прямий зв’язок з інтернетом — отримувати інформацію на "нереальну" адресу можна лише через посередника (сервер провайдера).&lt;/p&gt;
&lt;p&gt;Для звичайного користування достатньо і "нереальної" IP-адреси. В більшості випадків користувач не відчуває жодних незручностей. Але коли користувач бажає отримати доступ до своєї адреси ззовні, з Інтернету (наприклад на внутрішній ігровий сервер, на систему відеоспостереження тощо) — потрібна "реальна", зовнішня IP-адреса.&lt;/p&gt;
&lt;h2 id="ip-_1"&gt;Статична та динамічна IP-адреса&lt;/h2&gt;
&lt;p&gt;Тут все просто.&lt;/p&gt;
&lt;p&gt;Якщо адреса, що видається провайдером, незмінна, кожного разу однакова — то вона &lt;strong&gt;статична&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Якщо IP-адреса час від часу змінюється (наприклад після кожного підключення до провайдера) — то вона &lt;strong&gt;динамічна&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Коли абоненту потрібна зовнішня IP-адреса то, як правило, провайдер закріплює її за абонентом. Тому часто під словом "статична" мають на увазі "реальна" зовнішня IP-адреса.&lt;/p&gt;
&lt;p&gt;Але насправді може бути як статична зовнішня адреса, так і динамічна зовнішня. Статичність і "реальність" це дві різні характеристики IP-адреси.&lt;/p&gt;
&lt;h2 id="ip-_2"&gt;Як перевірити свою IP-адресу&lt;/h2&gt;
&lt;p&gt;Перш за все потрібно зрозуміти, що IP-адреса це характеристика мережевого підключення. Навіть на одному комп’ютері може бути декілька мережевих підключень і кожна з них може мати свою IP-адресу.&lt;/p&gt;
&lt;p&gt;Наприклад роутер має щонайменше 2 IP-адреси. Одна — видана провайдером для роботи з Інтернетом, інша — локальна адреса для роботи з домашніми пристроями. IP-адреси можна переглянути на сторінці "Статус" роутера, або, якщо до провайдера підключається лише один комп’ютер, напряму, то переглянувши стан мережевого підключення.&lt;/p&gt;
&lt;p&gt;В роутерах мережеве підключення до провайдера, як правило називають &lt;strong&gt;WAN&lt;/strong&gt; (Wide Area Network), а підключення в локальну мережу &lt;strong&gt;LAN&lt;/strong&gt; (Local Area Network). IP-адреса інтерфейсу WAN і буде адресою, яку видав провайдер.&lt;/p&gt;
&lt;p&gt;Якщо ця IP адреса з діапазону:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;10.0.0.0 - 10.255.255.255&lt;/li&gt;
&lt;li&gt;172.16.0.0 - 172.31.255.255&lt;/li&gt;
&lt;li&gt;192.168.0.0 - 192.168.255.255&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;то це приватна ("сіра") IP адреса і Ви виходите в інтернет від імені IP-адреси посередника-провайдера. Інакше — у Вас зовнішня ("реальна") IP адреса.&lt;/p&gt;
&lt;p&gt;Існують спеціальні сайти, які показують "Вашу IP-адресу" (наприклад &lt;a href="https://ipinfo.io"&gt;ipinfo.io&lt;/a&gt;). Але треба пам’ятати, що вони показують не особисто Вашу адресу, а адресу з якої Вас видно в Інтернеті, а це насправді може бути адреса посередника (сервера-роутера в провайдера).&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;Тут і надалі йдеться про IP-адреси в масштабах інтернету, не про IP-адреси локальної мережі, якими може керувати сам користувач.&amp;#160;&lt;a class="footnote-backref" href="#fnref:1" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:2"&gt;
&lt;p&gt;Невід’ємною частиною властивостей IP-налаштувань, крім IP-адреси є також і "маска" мережі (наприклад 255.255.255.0). Маска описує певну множину IP-адрес (IP-мережу), здійснює умовний поділ мережі на частини і вказує до якої з частин належить дана IP-адреса. Питання IP-маски, IP-шлюзу, IP-маршрутизації тут не розглядаються.&amp;#160;&lt;a class="footnote-backref" href="#fnref:2" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="Технічні теми"/><category term="інтернет"/><category term="IP-адреса"/><category term="TCP/IP"/></entry><entry><title>epon sla set failed</title><link href="https://yura.stryi.com/2015-08-31/epon-sla-set-failed/" rel="alternate"/><published>2015-08-31T00:00:00+03:00</published><updated>2015-08-31T00:00:00+03:00</updated><author><name>Юрій Сметана</name></author><id>tag:yura.stryi.com,2015-08-31:/2015-08-31/epon-sla-set-failed/</id><summary type="html">&lt;p&gt;От саме так почав сваритися OLT BDCOM P3310. Причому деякі ONU почали "вилітати" (стан &lt;em&gt;authenticated&lt;/em&gt;).&lt;/p&gt;
&lt;p&gt;В логах побачили багато повідомлень:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;epon sla set failed,epon_sla_if,3226!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="http://local.com.ua/forum/topic/61951-uapon-v60/page-15"&gt;Форуми&lt;/a&gt; пишуть що це пов’язано з нарізкою швидкості через SLA. Якщо ми нарізаємо швидкість через &lt;code&gt;epon sla upstream pir 30760 cir 30760&lt;/code&gt; то …&lt;/p&gt;</summary><content type="html">&lt;p&gt;От саме так почав сваритися OLT BDCOM P3310. Причому деякі ONU почали "вилітати" (стан &lt;em&gt;authenticated&lt;/em&gt;).&lt;/p&gt;
&lt;p&gt;В логах побачили багато повідомлень:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;epon sla set failed,epon_sla_if,3226!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="http://local.com.ua/forum/topic/61951-uapon-v60/page-15"&gt;Форуми&lt;/a&gt; пишуть що це пов’язано з нарізкою швидкості через SLA. Якщо ми нарізаємо швидкість через &lt;code&gt;epon sla upstream pir 30760 cir 30760&lt;/code&gt; то &lt;code&gt;CIR&lt;/code&gt; означає гарантовану швидкість, яку OLT повинен зарезервувати для всіх ONU (&lt;code&gt;PIR&lt;/code&gt; — максимальну).&lt;/p&gt;
&lt;p&gt;Ефективна пропускна здатність одного оптичного порта GEPON приблизно &lt;strong&gt;960 Мб/с&lt;/strong&gt;. Макс. кількість ONU на порті — 64. Якщо будуть задіяні всі ONU то виходить що на кожну з них не можна резервувати більше ніж 960/64=&lt;strong&gt;15Мб/с&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Якщо сума швидкостей усіх зарезервованих каналів перевищує пропускну здатність порта то OLT перестає сприймати команди для обмеження швидкості, а нові ONU взагалі може відмовлятися реєструвати.&lt;/p&gt;
&lt;p&gt;Тому на завантажених OLT є сенс встановлювати &lt;code&gt;CIR &amp;lt;= 15000&lt;/code&gt;, причому &lt;code&gt;CIR &amp;lt;= PIR&lt;/code&gt;.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nv"&gt;interface&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;EPON0&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;:&lt;span class="mi"&gt;1&lt;/span&gt;
&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;onu&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nv"&gt;configuration&lt;/span&gt;
&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;epon&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;sla&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;upstream&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;pir&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;30760&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;cir&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;15000&lt;/span&gt;
&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;epon&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;sla&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;downstream&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;pir&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;30760&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;cir&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;15000&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nv"&gt;epon&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;onu&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;port&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;ctc&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;vlan&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;mode&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;tag&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;430&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nv"&gt;epon&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;onu&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;port&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;loopback&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;detect&lt;/span&gt;
&lt;span class="o"&gt;!!&lt;/span&gt;&lt;span class="nv"&gt;onu&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nv"&gt;configuration&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;P.S.
Це все за умови що швидкість ріжеться на оптичному каналі, використовуючи SLA. Можна ще різати на "вихідному" порті Ethernet:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;epon onu port 1 ctc rate-limit 30760 ingress
epon onu port 1 ctc rate-limit 30760 egress
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</content><category term="Технічні теми"/><category term="EPON"/><category term="BDCOM"/></entry><entry><title>Помилка "corrupted" при встановленні драйвера HPLIP для принтерів HP</title><link href="https://yura.stryi.com/2015-08-31/hplip-file-corrupted-or-altered/" rel="alternate"/><published>2015-08-31T00:00:00+03:00</published><updated>2015-08-31T00:00:00+03:00</updated><author><name>Юрій Сметана</name></author><id>tag:yura.stryi.com,2015-08-31:/2015-08-31/hplip-file-corrupted-or-altered/</id><summary type="html">&lt;p&gt;&lt;img alt="HPLIP" src="https://lh3.googleusercontent.com/-DSMPJI1ZTN5lPN_a_fhJVA8ZGx1ES5kMjYIjvNaiOV6=w628-h268-no"&gt;&lt;/p&gt;
&lt;p&gt;Встановлюю принтер HP M125nw через &lt;code&gt;sudo hp-setup -i&lt;/code&gt;, нікого не чіпаю, а воно після кроку завантаження свариться:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;error: /home/username/.hplip/hplip-3.15.2-plugin.run file does not match its checksum. File may have been corrupted or altered&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Глюк, виявляється, відомий в багатьох дистрибутивах Linux (в мене Ubuntu Mate 15 …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;img alt="HPLIP" src="https://lh3.googleusercontent.com/-DSMPJI1ZTN5lPN_a_fhJVA8ZGx1ES5kMjYIjvNaiOV6=w628-h268-no"&gt;&lt;/p&gt;
&lt;p&gt;Встановлюю принтер HP M125nw через &lt;code&gt;sudo hp-setup -i&lt;/code&gt;, нікого не чіпаю, а воно після кроку завантаження свариться:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;error: /home/username/.hplip/hplip-3.15.2-plugin.run file does not match its checksum. File may have been corrupted or altered&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Глюк, виявляється, відомий в багатьох дистрибутивах Linux (в мене Ubuntu Mate 15.04). Треба зайти руцями на &lt;a href="https://www.openprinting.org/download/printdriver/auxfiles/HP/plugins/"&gt;сайт HPLIP&lt;/a&gt; і завантажити файли потрібної версії. Повинно бути 2 файли, з розширеннями &lt;strong&gt;.run&lt;/strong&gt; і &lt;strong&gt;.asc&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Їх можна покласти в домашню директорію і вже звідти запустити &lt;code&gt;hp-setup -i&lt;/code&gt;, а на кроці завантаження сказати що потрібні файли вже є на диску.&lt;/p&gt;</content><category term="Технічні теми"/><category term="HP"/><category term="принтер"/><category term="друкарка"/><category term="Linux"/><category term="Ubuntu"/><category term="Mate"/></entry><entry><title>Саморобний ремінець для Casio G-Shock</title><link href="https://yura.stryi.com/2015-04-04/DIY-strap-for-casio-g-shock/" rel="alternate"/><published>2015-04-04T00:00:00+03:00</published><updated>2015-05-07T00:00:00+03:00</updated><author><name>Юрій Сметана</name></author><id>tag:yura.stryi.com,2015-04-04:/2015-04-04/DIY-strap-for-casio-g-shock/</id><summary type="html">&lt;p&gt;Після 4-х років доволі акуратного носіння мої &lt;a href="http://yura.stryi.com/2010-12-13/casio-awg-100-1a/"&gt;G-Shock&lt;/a&gt; мають ще пристойний вигляд. Але пластиковий ремінець не витримав і дав рясні тріщини. Сочатку лише поверхневі, а потім і на усю товщину ремінця.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://lh6.googleusercontent.com/-Nw8MSoCMJ50/VR-e9XIbPhI/AAAAAAAB26Y/iosN3sBOmms/w1289-h859-no/DSC_2758.jpg"&gt;&lt;img alt="Ремінець Casio AWG-100-1A" src="https://lh3.googleusercontent.com/90_ggiJRXVxkjPxzQK8ll00ZQBIPKrRhVh3HxXz25djv=w480-h360-p-no"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Виявилося що знайти ремінець на заміну не так і просто. В годинникових магазинах немає, а ті що є цінять …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Після 4-х років доволі акуратного носіння мої &lt;a href="http://yura.stryi.com/2010-12-13/casio-awg-100-1a/"&gt;G-Shock&lt;/a&gt; мають ще пристойний вигляд. Але пластиковий ремінець не витримав і дав рясні тріщини. Сочатку лише поверхневі, а потім і на усю товщину ремінця.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://lh6.googleusercontent.com/-Nw8MSoCMJ50/VR-e9XIbPhI/AAAAAAAB26Y/iosN3sBOmms/w1289-h859-no/DSC_2758.jpg"&gt;&lt;img alt="Ремінець Casio AWG-100-1A" src="https://lh3.googleusercontent.com/90_ggiJRXVxkjPxzQK8ll00ZQBIPKrRhVh3HxXz25djv=w480-h360-p-no"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Виявилося що знайти ремінець на заміну не так і просто. В годинникових магазинах немає, а ті що є цінять у 1000-1200 грн (40 $ на сьогодні). Це при тому що на момент купівлі сам годинник обійшовся мені 1100 грн ;) (137 $ на той час) .&lt;/p&gt;
&lt;p&gt;Закордоном, на eBay, ціна ремінця 20-30 $. Якісь зовсім негуманні ціни. :(&lt;/p&gt;
&lt;p&gt;Зателефонував в &lt;a href="http://secunda.com.ua/service"&gt;сервісний центр Casio&lt;/a&gt; у Києві. Повідомили що ремінець до &lt;a href="http://yura.stryi.com/2010-12-13/casio-awg-100-1a/"&gt;моєї моделі&lt;/a&gt; можна замовити. Ціна — 270 грн (10 $). Час очікування — до 3-х місяців. Я звичайно замовив, чекаю...&lt;/p&gt;
&lt;p&gt;Але ходити без годинника на руці виявилося страшенно не зручно. Постійно заглядаю на зап’ястя а там лише волосся. ;)&lt;/p&gt;
&lt;p&gt;Взяв я шматок шкіри, лінійку, дратву з голкою і вийшло ось таке:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://lh6.googleusercontent.com/-TZ6C-ci6UeA/VR-e4rA6zVI/AAAAAAAB25o/75LTfvO9azg/w1289-h859-no/DSC_2725.jpg"&gt;&lt;img alt="Саморобний шкіряний ремінець для Casio G-Shock" src="https://lh6.googleusercontent.com/-TZ6C-ci6UeA/VR-e4rA6zVI/AAAAAAAB25o/75LTfvO9azg/w480-h360-no/DSC_2725.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Фурнітуру (металеву дужку з язичком) взяв з "рідного" ремінця. Вона знімається дуже легко.&lt;/p&gt;
&lt;p&gt;Шив не дуже акуратно, бо "для проби", та й сподіваюсь таки тимчасово.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://lh6.googleusercontent.com/-9ZX3KTeio5o/VR-e9AaN8FI/AAAAAAAB26k/6nWa9_fgl6I/w1289-h859-no/DSC_2712.jpg"&gt;&lt;img alt="Заміна ремінця на Casio G-Shock" src="https://lh6.googleusercontent.com/-9ZX3KTeio5o/VR-e9AaN8FI/AAAAAAAB26k/6nWa9_fgl6I/w480-h360-no/DSC_2712.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Ремінець з 2-х шарів, бо вушка-кріплення для ремінця дуже вузькі (16мм), а торці корпусу ширші (24мм). Вужча смужка має бути з тонкої шкіри, бо місця у "вушках" дуже мало. А ширша (основна) частина ремінця має бути такою, щоб підійти по ширині до замка з язичком.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://lh5.googleusercontent.com/yFtN7FzzDW9tyL1_w4M46KQ-eTBIhPmEVjSGiI0yFQAS=w1289-h859-no"&gt;&lt;img alt="Новий ремінець для Casio AWG-100-1A" src="https://lh5.googleusercontent.com/yFtN7FzzDW9tyL1_w4M46KQ-eTBIhPmEVjSGiI0yFQAS=w480-h360-no"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;2 тижні — політ нормальний! ;) Носиться чудово. Вузьку смужку можна зробити довшою, тоді годинник можна зміщувати "вперед-назад" відносно основного ремінця, щоб краще сидів на зап’ясті.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://lh4.googleusercontent.com/-KsCYKspwT0I/VR-e8gGL8lI/AAAAAAAB26U/I3AZJABvLrE/w1289-h859-no/DSC_2751.jpg"&gt;&lt;img alt="Саморобний ремінець для годинника на руці" src="https://lh4.googleusercontent.com/-KsCYKspwT0I/VR-e8gGL8lI/AAAAAAAB26U/I3AZJABvLrE/w480-h360-no/DSC_2751.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Єдиний значний недолік — якщо шкіряний ремінець намокне, то сохне дуже довго. А так — цілком робочий і зручний варіант. Чесно кажучи ще подумаю чи ставити назад оригінальний ремінець. ;)&lt;/p&gt;
&lt;p&gt;&lt;a href="https://lh4.googleusercontent.com/-mvwY0hIErq8/VR-e7S9FfaI/AAAAAAAB26c/a43-LDxOZiU/w1289-h859-no/DSC_2742.jpg"&gt;&lt;img alt="Casio G-Shock і Ontario RAT 1" src="https://lh4.googleusercontent.com/-mvwY0hIErq8/VR-e7S9FfaI/AAAAAAAB26c/a43-LDxOZiU/w480-h360-no/DSC_2742.jpg" title="Casio AWG-100-1A + Ontario RAT 1"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Трохи &lt;a href="https://plus.google.com/photos/103950464629760372334/albums/6133795857033598833"&gt;більше фото тут&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;P.S.
До речі, існують альтернативні ремінці для годинників такого типу, зроблені з нейлону. Власне вони і підказали ідею.&lt;/p&gt;
&lt;p&gt;Їх називають ремінці Nato, або Zulu (трохи інші за конструкцією).&lt;/p&gt;
&lt;p&gt;&lt;img alt="Ремінець типу Zulu" src="https://lh3.googleusercontent.com/-gXrmSBWY0Ms/VR-tP3SnbdI/AAAAAAAB28E/S6-ukQNRNqA/w360-h480-no/Zulu-Nato-Kakhi-strap-22mm-24mm.png" title="Zulu-Nato"&gt;&lt;/p&gt;
&lt;p&gt;Проблема лише у тім, що не для всіх годинників підійде. &lt;/p&gt;
&lt;p&gt;Для Casio G-Shock існують спеціальні адаптери для Nato/Zulu, що кріпляться до стандартних вушок годинника, але на кінцях мають ширші вушка для ремінця.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Перехідник-адаптер для Zulu, Nato для Casio G-Shock" src="https://lh4.googleusercontent.com/-vuBf11-vRCA/VR-vNsUVchI/AAAAAAAB28c/gAywDCpYKTI/w480-h360-no/Strap-Adapters-Parts-Giveaway-01.jpg&amp;quot;"&gt;&lt;/p&gt;
&lt;p&gt;Проте з ціною 10-15 $ за адаптер + 10-15 $ за ремінець економічно не вигідно. Хіба що вам потрібен саме такий тип ремінця.&lt;/p&gt;
&lt;h2 id="070514"&gt;Оновлення, 07.05.14&lt;/h2&gt;
&lt;p&gt;Прийшов оригінальний ремінець з &lt;a href="http://casio.kiev.ua/service_page.html"&gt;сервісного центру Casio&lt;/a&gt;, № запчастини &lt;strong&gt;10273059&lt;/strong&gt;. 240грн (11$). Підійшов як рідний. ;)&lt;/p&gt;
&lt;p&gt;&lt;a href="https://lh5.googleusercontent.com/-nAZtP-Dcnho/VUsudaseDRI/AAAAAAAB4DE/GkcbYxV6MtA/w637-h849-no/20150501_101110.jpg"&gt;&lt;img alt="Ремінець Casio 10273059" src="https://lh5.googleusercontent.com/-nAZtP-Dcnho/VUsudaseDRI/AAAAAAAB4DE/GkcbYxV6MtA/w360-h849-no/20150501_101110.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://lh5.googleusercontent.com/-OiVVty4pPIM/VUsuXWQkPNI/AAAAAAAB4C4/dWgroa_2ohw/w637-h849-no/20150501_101051.jpg"&gt;(&lt;img alt="Casio, ремінець №10273059" src="https://lh5.googleusercontent.com/-OiVVty4pPIM/VUsuXWQkPNI/AAAAAAAB4C4/dWgroa_2ohw/w360-h849-no/20150501_101051.jpg"&gt;&lt;/a&gt;&lt;/p&gt;</content><category term="Технічні теми"/><category term="Casio"/><category term="AWG-100-1A"/><category term="ремінець"/></entry><entry><title>Тестування IP-камер D-Link: DCS-2132L і DCS-3010</title><link href="https://yura.stryi.com/2015-03-23/D-link-DCS-2132L-DCS-3010-testing/" rel="alternate"/><published>2015-03-23T00:00:00+02:00</published><updated>2015-03-23T00:00:00+02:00</updated><author><name>Юрій Сметана</name></author><id>tag:yura.stryi.com,2015-03-23:/2015-03-23/D-link-DCS-2132L-DCS-3010-testing/</id><summary type="html">&lt;p&gt;Трапилося мені потестувати дві IP-камери. Спеціально брали 2 різні щоб порівняти.&lt;/p&gt;
&lt;p&gt;Виявлено такі переваги і недоліки:&lt;/p&gt;
&lt;h2 id="d-link-dcs-2132l"&gt;D-Link DCS-2132L&lt;/h2&gt;
&lt;p&gt;&lt;img alt="DCS-2132L" src="https://lh3.googleusercontent.com/-l1KYJev_xAI/VQ_h-Q6io7I/AAAAAAAB2ow/hTsSv5I_XyA/w260-h210-no/DCS-2132L_A1.jpg&amp;quot;"&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Загальна інформація&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ціна ~130 $.&lt;/li&gt;
&lt;li&gt;Досить нормальне зображення.&lt;/li&gt;
&lt;li&gt;Може зберігати відео на SD-карту і на мережевий диск Windows.&lt;/li&gt;
&lt;li&gt;Кут огляду ~58°.&lt;/li&gt;
&lt;li&gt;Має інфрачервону нічну підсвітку, але якщо встановлювати перед вікном (наприклад знімати вулицю …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;p&gt;Трапилося мені потестувати дві IP-камери. Спеціально брали 2 різні щоб порівняти.&lt;/p&gt;
&lt;p&gt;Виявлено такі переваги і недоліки:&lt;/p&gt;
&lt;h2 id="d-link-dcs-2132l"&gt;D-Link DCS-2132L&lt;/h2&gt;
&lt;p&gt;&lt;img alt="DCS-2132L" src="https://lh3.googleusercontent.com/-l1KYJev_xAI/VQ_h-Q6io7I/AAAAAAAB2ow/hTsSv5I_XyA/w260-h210-no/DCS-2132L_A1.jpg&amp;quot;"&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Загальна інформація&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ціна ~130 $.&lt;/li&gt;
&lt;li&gt;Досить нормальне зображення.&lt;/li&gt;
&lt;li&gt;Може зберігати відео на SD-карту і на мережевий диск Windows.&lt;/li&gt;
&lt;li&gt;Кут огляду ~58°.&lt;/li&gt;
&lt;li&gt;Має інфрачервону нічну підсвітку, але якщо встановлювати перед вікном (наприклад знімати вулицю) то відбиття від скла засліплює камеру.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Переваги:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;HD 720p.&lt;/li&gt;
&lt;li&gt;Має режим нічної зйомки. Відключає інфрачервоний фільтр (фізично відсувається). Трохи покращує зображення в умовах низького освітлення.&lt;/li&gt;
&lt;li&gt;Дуже чутливий мікрофон.&lt;/li&gt;
&lt;li&gt;Інфрачервона підсвітка.&lt;/li&gt;
&lt;li&gt;Окремий датчик руху.&lt;/li&gt;
&lt;li&gt;Вміє підключатися до онлайн-системи відеонагляду D-Link &lt;a href="http://mydlink.com"&gt;mydlink.com&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Має Wi-Fi.&lt;/li&gt;
&lt;li&gt;Налаштування звичне для D-Link, проблем не виникло.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Недоліки&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;Суттєвих недоліків під час тестування не виявив.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Онлайн-потік (HD) якийсь хитрий, треба підібрати відеопрогравач. В браузері Firefox потік MJPEG лише середнього розміру (не HD).&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="d-link-dcs-3010"&gt;D-link DCS-3010&lt;/h2&gt;
&lt;p&gt;&lt;img alt="DCS-3010" src="https://lh3.googleusercontent.com/-Op5ZjF42YZU/VQ_iYnV3TqI/AAAAAAAB2pE/ZP4oDm5HH6o/w260-h210-no/DCS-3010_A1.jpg"&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Загальна інформація&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ціна ~140 $.&lt;/li&gt;
&lt;li&gt;Хоч має ніби кращу оптичну систему, але зображення не вражає, хоч і не погане.&lt;/li&gt;
&lt;li&gt;Може зберігати відео на SD-карту і на мережевий диск Windows.&lt;/li&gt;
&lt;li&gt;Кут огляду ~57°.&lt;/li&gt;
&lt;li&gt;Може живитися по мережевому кабелю (треба додатковий блок живлення PoE).&lt;/li&gt;
&lt;li&gt;Може встановлюватися у всепогодний бокс для розташування за межами приміщення.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Переваги:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Спробую щось вигадати...&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;HD 720p.&lt;/li&gt;
&lt;li&gt;PoE (живлення по мережевому кабелю).&lt;/li&gt;
&lt;li&gt;Змінна оптика (можна [?] докуповувати окремо).&lt;/li&gt;
&lt;li&gt;MJPEG в Firefox в режимі HD.&lt;/li&gt;
&lt;li&gt;Надійне металеве кріплення-підставка.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Недоліки&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Треба чітко фокусувати об’єктив на потрібну віддаль зйомки. Це мало б бути перевагою, але фактично нічим не допомагає, бо навіть у фокусі картинка не дуже чітка.&lt;/li&gt;
&lt;li&gt;Для налаштувань і &lt;strong&gt;перегляду списку записаних файлів&lt;/strong&gt; на SD потребує Internet Explorer.&lt;/li&gt;
&lt;li&gt;Мікрофон не дуже чутливий. Та й віддінок звуку — як з металевого відра.&lt;/li&gt;
&lt;li&gt;Прошивка якась "сира", має помилки. Сама веб-морда страшна, незручна, деколи вимагає правильного порядку дій, щоб не глючити.&lt;/li&gt;
&lt;li&gt;Час у відео вставляється один (правильний), а у назві відеофайлу інший (часова смуга інша).&lt;/li&gt;
&lt;li&gt;Запис по мережі працює лише на прошивці яка має статус "&lt;strong&gt;Beta&lt;/strong&gt;" (хоч випущена рік тому).&lt;/li&gt;
&lt;li&gt;Відео в якомусь дивному форматі (нормально програється не усіма програвачами).&lt;/li&gt;
&lt;li&gt;Камера має вбудований FTP-сервер, який проте не показує жодних записаних файлів.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="_1"&gt;Висновки&lt;/h2&gt;
&lt;p&gt;Звичайно можна "побавитися" з якістю картинки, але приблизно ось так виглядає зображення на DCS-2132L (зверху ↑) і DCS-3010 (знизу ↓). Клацніть для збільшення.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://lh4.googleusercontent.com/-GNt-b9JC2Sw/VQ_xItbOIrI/AAAAAAAB2pk/Q1V0GMFtb6Q/w1280-h1440-no/DCS-2132L_vs_DCS-3010.jpg"&gt;&lt;img alt="Зображення зDCS-2132L і DCS-3010" src="https://lh4.googleusercontent.com/-GNt-b9JC2Sw/VQ_xItbOIrI/AAAAAAAB2pk/Q1V0GMFtb6Q/w320-h480-p-no/DCS-2132L_vs_DCS-3010.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;В загальному, DCS-2132L добре підходить для зйомки вулиці, де вночі недостатньо освітлення. Нічна зйомка не ідеальна, але краще ніж нічого. ІЧ підсвідка мабуть допоможе в невеликих приміщенням (кімната, коридор).  Добрий мікрофон. Інтеграція з онлайн-службами D-Link. &lt;strong&gt;DCS-2132L можу рекомендувати&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;DCS-3010 незважаючи на те, що позиціонується D-Link як камера вищого рівня, і є дорожчою, на практиці виглядає гіршою від "домашньої". DCS-3010 має глючну прошивку. Рідна знімна оптика не надає ніяких переваг, лише проблеми. Кут зору трохи менший ніж в сусіда по порівнянню. Мікрофон паршивий.&lt;/p&gt;
&lt;p&gt;Мабуть існують умови де DCS-3010 може розкрити свій потенціал: бокс для встановлення на вулиці, живлення по мережевому кабелю, далекобійна оптика, або навпаки — захоплення дуже широкого кута. Але якщо Ви не готові модернізовувати камеру і з такою прошивкою — &lt;strong&gt;DCS-3010 не рекомендую&lt;/strong&gt;.&lt;/p&gt;</content><category term="Технічні теми"/><category term="D-Link"/><category term="IP-камера"/><category term="камера"/><category term="відеоспостереження"/></entry><entry><title>Тюнинг FreeBSD для високих мережевих навантажень</title><link href="https://yura.stryi.com/2015-02-25/freebsd-network-tuning/" rel="alternate"/><published>2015-02-25T00:00:00+02:00</published><updated>2015-02-25T00:00:00+02:00</updated><author><name>Юрій Сметана</name></author><id>tag:yura.stryi.com,2015-02-25:/2015-02-25/freebsd-network-tuning/</id><summary type="html">&lt;pre&gt;
                           ,        ,
                           /(        )`
                           \ \___   / |
                           /- _  `-/  '
                          (/\/ \ \   /\
                          / /   | `    \
                          O O   ) /    |
                          `-^--'`&lt;     '
                         (_.)  _  )   /
                          `.___/`    /
                            `-----' /
                &lt;----.     __ / __   \
                &lt;----|====O)))==) \) /====
                &lt;----'    `--' `.__,' \
                            |        |
                             \       /       /\
                        ______( (_  / \______/
                      ,'  ,-----'   |
                      `--{__________)
&lt;/pre&gt;

&lt;p&gt;Тюнинг сервера FreeBSD для надійної роботи з великим трафіком. Мережеві карти Intel (em, igb).&lt;/p&gt;
&lt;h2 id="sysctl"&gt;sysctl&lt;/h2&gt;
&lt;p&gt;Вставити в &lt;code&gt;/etc/sysctl.conf&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="gh"&gt;#&lt;/span&gt; Безпека + зменшення навантаження при DDoS-атаках
net.inet.tcp.blackhole=2
net.inet.udp.blackhole=1 …&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</summary><content type="html">&lt;pre&gt;
                           ,        ,
                           /(        )`
                           \ \___   / |
                           /- _  `-/  '
                          (/\/ \ \   /\
                          / /   | `    \
                          O O   ) /    |
                          `-^--'`&lt;     '
                         (_.)  _  )   /
                          `.___/`    /
                            `-----' /
                &lt;----.     __ / __   \
                &lt;----|====O)))==) \) /====
                &lt;----'    `--' `.__,' \
                            |        |
                             \       /       /\
                        ______( (_  / \______/
                      ,'  ,-----'   |
                      `--{__________)
&lt;/pre&gt;

&lt;p&gt;Тюнинг сервера FreeBSD для надійної роботи з великим трафіком. Мережеві карти Intel (em, igb).&lt;/p&gt;
&lt;h2 id="sysctl"&gt;sysctl&lt;/h2&gt;
&lt;p&gt;Вставити в &lt;code&gt;/etc/sysctl.conf&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="gh"&gt;#&lt;/span&gt; Безпека + зменшення навантаження при DDoS-атаках
net.inet.tcp.blackhole=2
net.inet.udp.blackhole=1

net.graph.recvspace=8388608
net.graph.maxdgram=8388608

dev.em.0.rx_int_delay=200
dev.em.0.tx_int_delay=200
dev.em.0.rx_abs_int_delay=4000
dev.em.0.tx_abs_int_delay=4000
dev.em.0.rx_processing_limit=4096

dev.em.1.rx_int_delay=200
dev.em.1.tx_int_delay=200
dev.em.1.rx_abs_int_delay=4000
dev.em.1.tx_abs_int_delay=4000
dev.em.1.rx_processing_limit=4096

dev.igb.0.rx_processing_limit=4096
dev.igb.1.rx_processing_limit=4096

net.route.netisr_maxqlen=4096

kern.ipc.nmbclusters=400000
kern.ipc.maxsockbuf=83886080

net.inet.ip.intr_queue_maxlen=10240

net.inet6.ip6.auto_linklocal=0
net.inet6.mld.use_allow=0

net.inet.tcp.sendbuf_max=4194304
net.inet.tcp.recvbuf_max=4194304
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h2 id="loaderconf"&gt;loader.conf&lt;/h2&gt;
&lt;p&gt;Вставити в &lt;code&gt;/boot/loader.conf&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="gh"&gt;#&lt;/span&gt; network interfaces
hw.em.rxd=4096
hw.em.txd=4096
hw.em.max_interrupt_rate=32000

hw.igb.rxd=4096
hw.igb.txd=4096
hw.igb.max_interrupt_rate=32000

&lt;span class="gh"&gt;#&lt;/span&gt; for other protocols (IP &amp;amp; PPPoE?)
net.isr.defaultqlimit=4096

&lt;span class="gh"&gt;#&lt;/span&gt; default outgoing interface queue length
&lt;span class="gh"&gt;#&lt;/span&gt; used by lagg etc.
net.link.ifqmaxlen=10240

&lt;span class="gh"&gt;#&lt;/span&gt;netgraph queue sizes tuning, see vmstat -z|egrep &amp;#39;ITEM|NetGraph&amp;#39;
&lt;span class="gh"&gt;#&lt;/span&gt; net.graph.maxdata=65536
&lt;span class="gh"&gt;#&lt;/span&gt; net.graph.maxalloc=65536
net.graph.maxdata=2048
net.graph.maxalloc=4096
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h2 id="_1"&gt;Різне&lt;/h2&gt;
&lt;p&gt;Дуже цікава &lt;a href="https://calomel.org/freebsd_network_tuning.html"&gt;практична стаття на цю тематику&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Вищевказана конфігурація використовується на серверах з трафіком близько 1Гб/с, 1500 клієнтів PPPoE.&lt;/p&gt;</content><category term="Технічні теми"/><category term="FreeBSD"/><category term="мережа"/><category term="PPPoE"/></entry><entry><title>Помилка: 550 Subject contains invalid characters</title><link href="https://yura.stryi.com/2015-02-19/550-Subject-contains-invalid-characters/" rel="alternate"/><published>2015-02-19T00:00:00+02:00</published><updated>2015-02-19T00:00:00+02:00</updated><author><name>Юрій Сметана</name></author><id>tag:yura.stryi.com,2015-02-19:/2015-02-19/550-Subject-contains-invalid-characters/</id><summary type="html">&lt;p&gt;&lt;img alt="Помилка 550" src="http://upload.wikimedia.org/wikipedia/commons/thumb/8/87/US_550.svg/240px-US_550.svg.png"&gt;&lt;/p&gt;
&lt;p&gt;Жив-був собі один PHP-скриптик для відправлення електронних листів, що використовує PHP-функцію &lt;code&gt;mail&lt;/code&gt;. І в один прекрасний день листи приходити перестали. Виявилося що листи повертаються відправнику з помилкою &lt;strong&gt;550 Subject contains invalid characters&lt;/strong&gt; (тема містить заборонені символи).&lt;/p&gt;
&lt;p&gt;Справа в тому що стандарти вимагають щоб усі заголовки листа були у кодуванні &lt;a href="http://uk.wikipedia.org/wiki/ASCII"&gt;ASCII …&lt;/a&gt;&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;img alt="Помилка 550" src="http://upload.wikimedia.org/wikipedia/commons/thumb/8/87/US_550.svg/240px-US_550.svg.png"&gt;&lt;/p&gt;
&lt;p&gt;Жив-був собі один PHP-скриптик для відправлення електронних листів, що використовує PHP-функцію &lt;code&gt;mail&lt;/code&gt;. І в один прекрасний день листи приходити перестали. Виявилося що листи повертаються відправнику з помилкою &lt;strong&gt;550 Subject contains invalid characters&lt;/strong&gt; (тема містить заборонені символи).&lt;/p&gt;
&lt;p&gt;Справа в тому що стандарти вимагають щоб усі заголовки листа були у кодуванні &lt;a href="http://uk.wikipedia.org/wiki/ASCII"&gt;ASCII&lt;/a&gt;.  І будь-які інші символи, в тому числі кирилиця, якої немає в ASCII, вважаються помилковими. І раптово деякі поштові сервери стали "правильними" і перестали приймати пошту.&lt;/p&gt;
&lt;p&gt;На щастя, існує документ &lt;a href="https://www.ietf.org/rfc/rfc1342.txt"&gt;RFC 1342&lt;/a&gt; який регламентує використання не-ASCII у заголовках листів. Для цього потрібно вказувати заголовок у вигляді:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;=?charset?encoding?TEXT?=
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Наприклад:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;=?utf-8?B?Привіт?=
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;code&gt;encoding&lt;/code&gt; може бути &lt;code&gt;B&lt;/code&gt; або &lt;code&gt;Q&lt;/code&gt;, формат "base-64" і "quoted-printable" відповідно (теж описано в &lt;a href="https://www.ietf.org/rfc/rfc1342.txt"&gt;RFC 1342&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Таким чином, щоб листи успішно доставлялися, потрібно правильно оформляти заголовки, наприклад:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="k"&gt;to&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;example@example.com&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="k"&gt;from&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ss"&gt;&amp;quot;sender@example.com&amp;quot;&lt;/span&gt;

&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="n"&gt;subject&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;=?utf-8?B?&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;base64_encode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Тема з не-ASCII символами ó¿¡á&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;?=&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="n"&gt;sender_name&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;=?utf-8?B?&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;base64_encode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Назва відправника з не-ASCII символами ó¿¡á&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;?=&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Текст повідомлення&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;From: &amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="n"&gt;sender_name&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39; &amp;lt;&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="k"&gt;from&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;&amp;gt;\r\n&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Content-Type: text/plain; charset=utf-8&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;\r\n&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;mail&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="k"&gt;to&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="n"&gt;subject&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</content><category term="Технічні теми"/><category term="PHP"/><category term="e-mail"/><category term="пошта"/><category term="550"/><category term="UTF-8"/><category term="RFC 1342"/></entry><entry><title>Маленькі секрети маленьких ножів</title><link href="https://yura.stryi.com/2015-02-16/tiny-secrets-of-tiny-knives/" rel="alternate"/><published>2015-02-16T00:00:00+02:00</published><updated>2015-02-16T00:00:00+02:00</updated><author><name>Юрій Сметана</name></author><id>tag:yura.stryi.com,2015-02-16:/2015-02-16/tiny-secrets-of-tiny-knives/</id><summary type="html">&lt;p&gt;&lt;img alt="Wenger SAK" src="https://lh5.googleusercontent.com/-FughfPjPPL4/VOGr6ZbCfvI/AAAAAAAB1uE/ytvQyicANFM/s0/Wenger.jpg" title="Wenger"&gt;&lt;/p&gt;
&lt;p&gt;Є інструменти які приваблюють своєю естетичністю. А деякі просто приємно мати, навіть якщо вони не завжди потрібні.&lt;/p&gt;
&lt;p&gt;Зокрема, ці ознаки гармонійно переплелися у інструментах що в цілому світі стали символами якості, практичності і інженерної краси  — «швейцарських ножах»&lt;sup id="fnref:1"&gt;&lt;a class="footnote-ref" href="#fn:1"&gt;1&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;
&lt;p&gt;Найпопулярніші з них це швейцарські армійські ножі (в народі «SAK&lt;sup id="fnref:2"&gt;&lt;a class="footnote-ref" href="#fn:2"&gt;2&lt;/a&gt;&lt;/sup&gt;») які …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;img alt="Wenger SAK" src="https://lh5.googleusercontent.com/-FughfPjPPL4/VOGr6ZbCfvI/AAAAAAAB1uE/ytvQyicANFM/s0/Wenger.jpg" title="Wenger"&gt;&lt;/p&gt;
&lt;p&gt;Є інструменти які приваблюють своєю естетичністю. А деякі просто приємно мати, навіть якщо вони не завжди потрібні.&lt;/p&gt;
&lt;p&gt;Зокрема, ці ознаки гармонійно переплелися у інструментах що в цілому світі стали символами якості, практичності і інженерної краси  — «швейцарських ножах»&lt;sup id="fnref:1"&gt;&lt;a class="footnote-ref" href="#fn:1"&gt;1&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;
&lt;p&gt;Найпопулярніші з них це швейцарські армійські ножі (в народі «SAK&lt;sup id="fnref:2"&gt;&lt;a class="footnote-ref" href="#fn:2"&gt;2&lt;/a&gt;&lt;/sup&gt;») які справді випускалися для військових. Спочатку для армії Швейцарії, а потім і для багатьох інших.&lt;/p&gt;
&lt;p&gt;А згодом розпочався і комерційний збут. Завдяки функціоналу та якості матеріалів швейцарські ножі набули фанатів по цілому світу. Ніж який у використанні 15-20 років не рідкість. Зіпсувати такий інструмент можна лише спеціально. ;)&lt;/p&gt;
&lt;p&gt;Швейцарський ніж навіть входить у стандартне спорядження астронавтів Nasa.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Victorinox EDC" src="https://lh4.googleusercontent.com/-rpcCC4pXRAA/VOGtf-5fxLI/AAAAAAAB1uc/vpKnZQ4ZU6s/s0/DSC_2611.JPG" title="Victorinox Super Tinker"&gt;&lt;/p&gt;
&lt;p&gt;Захопившись цією тематикою відкрив для себе багато нового і хочу поділитися з допитливими читачами деякими цікавинками, яких раніше не знав.&lt;/p&gt;
&lt;h2 id="victorinox-"&gt;Не Victorinox-ом єдиним&lt;/h2&gt;
&lt;p&gt;Першою, і довший час єдиною, фірмою що виготовляла швейцарські ножі (з 1891 р.) для потреб армії була швейцарська фірма &lt;a href="http://www.victorinox.com/"&gt;Victorinox&lt;/a&gt;. 1908-го уряд Швейцарії залучив до постачання ще одного місцевого виробника — &lt;a href="http://wenger.ch"&gt;Wenger&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Victorinox і Wenger" src="https://lh6.googleusercontent.com/-s9hXMFTUxPE/VN-8L5GYaRI/AAAAAAAB1KA/woqxL81hczE/w574-h295-no/VictorinoxAndWenger.jpg"&gt;&lt;/p&gt;
&lt;p&gt;Емблеми обидвох виробників схожі на герб Швейцарії.&lt;/p&gt;
&lt;p&gt;Дві фірми виготовляли різні моделі ножів. Проте і той і той — швейцарський ніж. Хтось більше любить «Вікси», комусь подобаються «Венгери». Хоча вони дуже схожі.&lt;/p&gt;
&lt;p&gt;Проте, питання щодо «в кого краща відкривалка для консерв» (а вони справді різні) розпалюють суперечки не менш палкіші ніж «Nikon проти Canon». ;)&lt;/p&gt;
&lt;p&gt;Швейцарські ножі завжди виготовлялися швейцарськими фірмами і як правило у Швейцарії&lt;sup id="fnref:3"&gt;&lt;a class="footnote-ref" href="#fn:3"&gt;3&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;
&lt;p&gt;Цікаво, що у 2005 році фірма Victorinox купила свого конкурента Wenger. Проте це було конструктивне поглинання і Wenger й надалі проектують і випускають свої конструкції ножів.&lt;/p&gt;
&lt;p&gt;Ба навіть з’явилися гібриди двох різновидів швейцарців:&lt;/p&gt;
&lt;p&gt;&lt;img alt="Victorinox Delemont RangerGrip 61 0.9553.МC" src="https://lh5.googleusercontent.com/-opYb9xqL7W8/VN-6-5fZZEI/AAAAAAAB1Js/TLAh5x2xFp8/w438-h490-no/RangerGrip.jpg"&gt;&lt;/p&gt;
&lt;p&gt;Я переважно зустрічався з Victorinox, тому більше буду говорити про них.&lt;/p&gt;
&lt;h2 id="_1"&gt;Приємні дрібнички&lt;/h2&gt;
&lt;p&gt;Кожна модель ножа має певний набір інструментів. Дехто має декілька маленьких ножів, дехто купує «все в одному». Але є корисні "інструменти" якими можна збагатити свого старого друга.&lt;/p&gt;
&lt;h2 id="-"&gt;Міні-викрутка&lt;/h2&gt;
&lt;p&gt;Часом її називають викрутка для окулярів, бо її розмір підходить для ремонту оправ і дужок.  Продається окремо (~ 1,5 $, код виробу A3643). Підходить для більшості ножів.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Міні-викрутка Victorinox" src="https://lh3.googleusercontent.com/-KLRWIkRJHoA/VN_FRoSuDzI/AAAAAAAB1Lo/CClyEvByzsw/w640-h390-no/MiniSqrewdriver-2.jpg"&gt;&lt;/p&gt;
&lt;p&gt;Куди її запхати вже здогадались? Дуже просто:&lt;/p&gt;
&lt;p&gt;&lt;img alt="Міні-викрутка Victorinox" src="https://lh5.googleusercontent.com/-4V1BZr8kva4/VN_BnXVwc2I/AAAAAAAB1KU/lsVmSH9sRd4/w640-h449-no/Mini-Srewdriver.jpg"&gt;&lt;/p&gt;
&lt;p&gt;Місця не займає, їсти не просить.&lt;/p&gt;
&lt;h2 id="_2"&gt;Булавка&lt;/h2&gt;
&lt;p&gt;&lt;img alt="Булавка Victorinox" src="https://lh4.googleusercontent.com/-PtD9pQ9ms_4/VN_GYBSAm5I/AAAAAAAB1ME/_G9aaEB3b3A/s260-no/A.3645-260x260.jpg"&gt;&lt;/p&gt;
&lt;p&gt;Підходить не для всіх моделей, точніше не для всіх корпусів (накладок). Відкрийте свердлик і загляньте в торець накладки, чи є дірочка у вашій:&lt;/p&gt;
&lt;p&gt;&lt;img alt="Булавка в накладці" src="https://lh5.googleusercontent.com/-Ijozj2EdCz4/VN_DVyvVwYI/AAAAAAAB1LA/-TpxATOGS90/w640-h459-no/Needle.jpg"&gt;&lt;/p&gt;
&lt;p&gt;Вартує 0,5 $ (код A3645). Або попросіть у мами чи дружини. :) Чи в магазині де продають сорочки. Правда оригінальна булавка Victorinox трохи більша за "побутову".&lt;/p&gt;
&lt;p&gt;Можна знайти красиву, з кулястою голівкою під колір ножа. ;)&lt;/p&gt;
&lt;h2 id="_3"&gt;Зняття ізоляції&lt;/h2&gt;
&lt;p&gt;Пише інструкція: «Інструмент для зняття ізоляції». З ходу і не здогадаєшся. А це про виріз на відкривалці.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Відкривалка Victorinox" src="https://lh6.googleusercontent.com/-9jxLqREAEjc/VOBgeAFPSSI/AAAAAAAB1dk/uVIbfMrozl4/w640-h427-no/BottleOpener.jpg"&gt;&lt;/p&gt;
&lt;p&gt;Щоб легше різалося дехто загострює його ось так:&lt;/p&gt;
&lt;p&gt;&lt;img alt="Зняття ізоляції на Victorinox" src="https://lh5.googleusercontent.com/-p9pxZGcEcqg/VN_Io2TNBtI/AAAAAAAB1MQ/2eHcDaTyLHg/w640-h480-no/WireStripper.jpg"&gt;&lt;/p&gt;
&lt;h2 id="_4"&gt;Берегти як зіницю ока&lt;/h2&gt;
&lt;p&gt;Найгірше що може статися з вашим Віксом — випадково загубити його під час носіння. Очевидні варіанти запобігти цьому — різного роду чохли.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Чохол Victorinox" src="https://lh6.googleusercontent.com/-XRkNVh3NPNY/VOBuUd0ESiI/AAAAAAAB1f8/DWYJPGTXO2E/w500-h190-no/case_Victorinox.jpg"&gt;&lt;/p&gt;
&lt;p&gt;Не завжди вигідні для маленьких ножів, бо їх зручніше носити в кишенях штанів (ідеально підходять кишені для запальничок у джинсах), костюмі чи сумочці.&lt;/p&gt;
&lt;p&gt;Кільце на кінчику ножа причепили не просто так.&lt;/p&gt;
&lt;p&gt;На менших моделях ним причіпаються до ключів. Такі ножі так і називають — "ключники".&lt;/p&gt;
&lt;p&gt;На більшеньких ножах за кільце можна вчепити ланцюжок, а ланцюжок, за допомогою зручного карабіна, причепити до одягу чи спорядження.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Ланцюжок Victorinox" src="https://lh4.googleusercontent.com/-Srqd88h7lJY/VOBjwEoht1I/AAAAAAAB1eQ/s7b6oDREK0Q/w198-h478-no/chain.jpg"&gt;&lt;/p&gt;
&lt;p&gt;Бувають різної довжини і різних типів карабінів.&lt;/p&gt;
&lt;p&gt;Існують спеціальні підвіси, що одягаються на ремінь, або зачіпаються за край кишені:&lt;/p&gt;
&lt;p&gt;&lt;img alt="Підвіс на ремінь чи кишеню для Victorinox" src="https://lh6.googleusercontent.com/-hU2i0p8SI1o/VOD8Q9PmQLI/AAAAAAAB1qs/qhLK7OtlWK0/s0/pidvis_Victorinox-3.jpg" title="Підвіс на ремінь чи кишеню для Victorinox"&gt;&lt;/p&gt;
&lt;p&gt;Різновид кліпс для кишені:&lt;/p&gt;
&lt;p&gt;&lt;img alt="Кліпса для кишені" src="https://lh5.googleusercontent.com/-6SAcxuzBw0A/VOB7HHS6MQI/AAAAAAAB1hU/zdzTzgjcPig/w374-h500-no/clip_victorinox.jpg"&gt;&lt;/p&gt;
&lt;p&gt;Дехто використовує для такого кріплення товсту канцелярську скріпку.&lt;/p&gt;
&lt;p&gt;Ще бачив спеціальну пластину з дірочками, яка накручується на свердлик. А вже до неї кріпиться ланцюжок. Ніяк не знайду фото. ;( Мабуть підійде для моделей без кільця (трапляються і такі варіанти).&lt;/p&gt;
&lt;p&gt;Можна причепити улюблений ножичок міцною мотузкою. Ідеально підходить паракорд&lt;sup id="fnref:4"&gt;&lt;a class="footnote-ref" href="#fn:4"&gt;4&lt;/a&gt;&lt;/sup&gt;. Я щодня ношу саме так, навіть без карабіну, просто роблячи петлю навколо ремінних лямок штанів:&lt;/p&gt;
&lt;p&gt;&lt;img alt="Темляк з паракорду для Victorinox" src="https://lh3.googleusercontent.com/-FRdkJKoZ2fY/VOBr_iK782I/AAAAAAAB1fU/XcnfDHOhuw4/w640-h446-no/remin.jpg"&gt;&lt;/p&gt;
&lt;p&gt;Фактично це різновид темляка.&lt;/p&gt;
&lt;h2 id="_5"&gt;Темляк&lt;/h2&gt;
&lt;p&gt;Темляк — ремінь, петля, шнур на кінці ножа. Може виготовлятися зі шкіри, паракордку, звичайної мотузки.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Темляк для Victorinox" src="https://lh6.googleusercontent.com/-q56TcFkF3Lw/VOBzkqX9N5I/AAAAAAAB1hA/0qFUTcPv1QM/w670-h435-no/temliak-3.jpg"&gt;&lt;/p&gt;
&lt;p&gt;Допомагає тримати ніж у руці, запобігає його вислизанню під час користування. З темляком маленький ніж зручніше діставати з кишені чи чохла. Яскравий темляк допомагає знайти ніж серед трави тощо.&lt;/p&gt;
&lt;p&gt;Короткий ніж завдяки жорсткому темляку ніби видовжується, збільшуючи площу контакту з долонею.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Темляк для Victorinox" src="https://lh3.googleusercontent.com/-Va0_vF7h-f8/VOBxbti3qGI/AAAAAAAB1gU/wECys6Pb0r8/w670-h319-no/temliak.jpg"&gt;&lt;/p&gt;
&lt;p&gt;Темляк з петлею не дасть інструменту впасти:&lt;/p&gt;
&lt;p&gt;&lt;img alt="Темляк з петлею" src="https://lh6.googleusercontent.com/-CNfyb8DKzpQ/VOBya1M9zbI/AAAAAAAB1gg/cmtWrKg7Qjk/w333-h500-no/temliak-2.JPG"&gt;&lt;/p&gt;
&lt;h2 id="_6"&gt;Гострий як бритва&lt;/h2&gt;
&lt;p&gt;Навіть заводська заточка з легкістю шинкує аркуш паперу. Але з часом клинок тупішає. Сталь ножів Victorinox вважається м’якою, тому її легко загострити. Але робити це треба правильно.&lt;/p&gt;
&lt;p&gt;Лезо дуже легко зіпсувати, тому, якщо воно затупилося сильно, або пошкодилося (має зазубрини) — краще довіритися професійним гострильникам інструменту, якщо таких знайдете.&lt;/p&gt;
&lt;p&gt;Це окрема тема і своя наука. Просто повірте на слово що правильно загострити лезо в домашніх умовах, навіть маючи потрібні інструменти (абразивні та полірувальні камені), досить важко. А для новачка чи без інструментів (а ля "до сходів") — неможливо.&lt;/p&gt;
&lt;p&gt;Якщо ж з лезом поводитися обережно то час від часу достатньо лише підрівняти ріжучий край. Це можна робити або мусатом&lt;sup id="fnref:5"&gt;&lt;a class="footnote-ref" href="#fn:5"&gt;5&lt;/a&gt;&lt;/sup&gt; або спеціальними точильнями.&lt;/p&gt;
&lt;p&gt;Оригінальна від Victorinox (код моделі 4.3323):&lt;/p&gt;
&lt;p&gt;&lt;img alt="Точильня Victorinox" src="https://lh3.googleusercontent.com/-TFSO1lLJa6E/VOCExLAeN1I/AAAAAAAB1hw/FN62CzO5Ge4/s530-no/Victorinox_sharpener.jpg"&gt;&lt;/p&gt;
&lt;p&gt;Основна її особливість це не абразивний брусок а керамічні пластини на кінці, які розташовані під "правильним" кутом 20° (загальний кут ріжучого краю 40°, але прийнято орієнтуватись на половинний кут — від краю до середини леза, 20°).&lt;/p&gt;
&lt;p&gt;&lt;img alt="Точильня Victorinox 4.3323" src="https://lh3.googleusercontent.com/-9u6HJP9NPl4/VOGlO1Ta7JI/AAAAAAAB1r8/1EmdWVWejV4/s0/Victorinox_sharpener-3.jpg" title="Точильня Victorinox 4.3323"&gt;&lt;/p&gt;
&lt;p&gt;Пластини вирівнюють край леза та шліфують його, повертаючи гостроту.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Точильня Victorinox" src="https://lh6.googleusercontent.com/-bhS2O1rU1ho/VOCHGNOtwBI/AAAAAAAB1iI/oVs2pgJ3Gp8/w580-h372-no/Victorinox_sharpene-2.jpg"&gt;&lt;/p&gt;
&lt;p&gt;Існують спеціальні точильні зі змінними каменями (вартістю 100+ $) та їх чисельні клони (40+ $):&lt;/p&gt;
&lt;p&gt;&lt;img alt="Apex Pro" src="https://lh3.googleusercontent.com/-RZCrpSvwbJ8/VOCIcikqoOI/AAAAAAAB1iY/QUM80VbiWng/w611-h298-no/apex_sharpener.png"&gt;&lt;/p&gt;
&lt;p&gt;Про водяні японські та арканзаські точильні камені вартістю 1000+ $ дуже згадувати не будемо. ;)&lt;/p&gt;
&lt;p&gt;Існують штучні керамічні точильні камені. Кераміка є делікатним абразивом і добре підходить до фінішного заточування чи періодичного вирівнювання торця леза. Популярними є точильні з керамічними ствопцями від Lansky (20-30 $):&lt;/p&gt;
&lt;p&gt;&lt;img alt="Точильні стовпці від Lansky" src="https://lh4.googleusercontent.com/-AfhT6RqKmpY/VOGm9DU2IfI/AAAAAAAB1so/mkF_Vg_8neo/s0/Lansky-2.jpg"&gt;&lt;/p&gt;
&lt;p&gt;Стовпчики вже орієнтовані під правильним кутом, ваше завдання — тримати ніж строго вертикально і рухати ним зверху-вниз і одночасно до себе-від себе.&lt;/p&gt;
&lt;p&gt;Існують і міні-варіанти:&lt;/p&gt;
&lt;p&gt;&lt;img alt="LCKEY" src="https://lh4.googleusercontent.com/-Nu8eLnin1h8/VOGoU2EbT6I/AAAAAAAB1tA/0c4QgIwwt8s/s0/LCKEY.jpg"&gt;&lt;/p&gt;
&lt;p&gt;Не маючи можливості і бажання придбати професійні інструменти для заточування можна скористатися народними. ;) При певному тренуванні можна навчитися загострювати ножі на наждачному папері різної грубості (P200-P2000). Або пошукати на барахолках радянські абразивні бруски чи круги з дрібним зерном (10-40 нм, 3-5 $).&lt;/p&gt;
&lt;p&gt;Хочу лише звернути увагу що алмазні абразиви погано підходять для фінішного загострювання (леза Victorinox роблять з надійного, але відносно м’якого металу).&lt;/p&gt;
&lt;p&gt;Радянське минуле залишило нам у спадок ще один бюджетний матеріал для відновлення гостроти ножів — напівпровідникові діоди у керамічному корпусі, що використовувалися у лампових телевізорах: &lt;strong&gt;КЦ-109&lt;/strong&gt; та &lt;strong&gt;ВТ-18&lt;/strong&gt; ціною &lt;strong&gt;5-10 грн&lt;/strong&gt; за штуку :) :&lt;/p&gt;
&lt;p&gt;&lt;img alt="Керамічний діод ВТ-18" src="https://lh5.googleusercontent.com/-hhcuzijL4tI/VOCSMrhCwLI/AAAAAAAB1jQ/RXrMGtaCUsk/w640-h427-no/VT-18.jpg"&gt;&lt;/p&gt;
&lt;p&gt;Знавці стверджують що кераміка цих діодів не поступається фірмовим стовпцям від Lansky.  Дехто використовує для цієї ж мети керамічні корпуси старих мікросхем, та навіть корпуси комп’ютерних процесорів Pentium перших поколінь. ;)&lt;/p&gt;
&lt;h2 id="_7"&gt;Змінні накладки&lt;/h2&gt;
&lt;p&gt;Мало хто знає, що більшість моделей швейцарських ножів мають змінні накладки, які можна придбати окремо і замінити самостійно.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Змінні накладки Victorinox" src="https://lh5.googleusercontent.com/-VCofE4B3fUU/VOCWRu67AEI/AAAAAAAB1jo/X8B5BbyNOI0/w430-h296-no/Victorinox_Scales.jpg"&gt;&lt;/p&gt;
&lt;p&gt;Крім нового вигляду нові накладки можуть мати дірочку під булавку, якої не було на оригінальних.&lt;/p&gt;
&lt;h2 id="_8"&gt;Матеріал накладок&lt;/h2&gt;
&lt;p&gt;Кишенькові Victorinox мають 3 види матеріалу накладок:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;блискучі, ацетат целюлози (целлідор)&lt;/li&gt;
&lt;li&gt;матові (матовий нейлон)&lt;/li&gt;
&lt;li&gt;алюмінієві (серія Allox)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="Блискучі і матові накладки Victorinox" src="https://lh4.googleusercontent.com/-omgYrdJ9uHg/VOCbOpi8d1I/AAAAAAAB1ks/q64KoimfBJo/w670-h294-no/cellidor_vs_nyilon.jpg"&gt;&lt;/p&gt;
&lt;p&gt;Целлідорові гарно виглядають, але дуже легко дряпаються. Проте на них втиснено стильну металеву емблему Victorinox.&lt;/p&gt;
&lt;p&gt;Матові стійкі до подряпин, майже не змінюються з часом. Але логотип на них нанесено фарбою, яка згодом стирається. Моделі з матовими накладками мають назву серії «&lt;strong&gt;EcoLine&lt;/strong&gt;».&lt;/p&gt;
&lt;p&gt;Окрема лінійка «&lt;strong&gt;Alox&lt;/strong&gt;» випускається у красивих, легких алюмінієвих корпусах. Дорогі. ;(&lt;/p&gt;
&lt;p&gt;&lt;img alt="Victorinox Alox, алюмінієвий корпус" src="https://lh4.googleusercontent.com/-VmdDdxJbJhg/VOCdG2u2zSI/AAAAAAAB1l0/PkryOW9zz5I/w510-h524-no/Victorinox_Allox.jpg"&gt;&lt;/p&gt;
&lt;h2 id="_9"&gt;Ніж не іграшка для дітей?..&lt;/h2&gt;
&lt;p&gt;Для хлопчака́ ніж не іграшка, а предмет мрій і бажань. :) В дитинстві я не мав свого, напевне за це зараз і "розплачуюся". ;)&lt;/p&gt;
&lt;p&gt;Victorinox випускає спеціальні моделі &lt;strong&gt;без гострого кінчика&lt;/strong&gt; на лезі — «&lt;strong&gt;My First Victorinox&lt;/strong&gt;» (мій перший Victorinox).&lt;/p&gt;
&lt;p&gt;&lt;img alt="My Fist victorinox — мій перший Victorinox" src="https://lh3.googleusercontent.com/-FxC4gbZY4l0/VOCfTNkpveI/AAAAAAAB1mM/2psm1ApTgEQ/s500-no/MyFirstVictorinox.jpg"&gt;&lt;/p&gt;
&lt;h2 id="_10"&gt;Періодичний догляд за ножем&lt;/h2&gt;
&lt;p&gt;Ніж бажано тримати в чистоті. Це запорука безпечного і тривалого користування ним.&lt;/p&gt;
&lt;p&gt;В польових умовах, грубий бруд можна вичистити "зубочисткою" з ножа (ви ж не думали що вона справді для зубів, правда? :) ). Пилюку, сік фруктів що потрапляють усередину можна вимити у звичайній теплій воді. Занурте ніж під воду і декілька разів відкрийте-закрийте усі інструменти. &lt;strong&gt;Обережно! Мокре лезо може вислизнути з рук і поранити!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Після миття витрусіть з ножа воду, витріть зовні та покладіть сушитися (не треба фенів, сонця і духовок).&lt;/p&gt;
&lt;p&gt;Також, час від часу, треба змащувати осі інструментів. Продається спеціальне мастило Victorinox (модель 4.3301). Але підійде і звичайне "для швейних машинок", або навіть синтетичне автомобільне. Головне не маргарин. ;)&lt;/p&gt;
&lt;p&gt;&lt;img alt="Змащування Victorinox" src="https://lh3.googleusercontent.com/-RRuZBMBJP-Q/VOCiNL7DG4I/AAAAAAAB1mY/YiSZ5Jm9hTE/w346-h515-no/Victorinox_oil.png"&gt;&lt;/p&gt;
&lt;p&gt;Якщо інструменти перестали чітко фіксуватися в крайніх положеннях і зникло характерне клацання це підказка що ножа час помити і змастити.&lt;/p&gt;
&lt;h2 id="_11"&gt;Парасолька, яка зовсім не парасолька&lt;/h2&gt;
&lt;p&gt;Наостанок хочу розповісти про емблему, яка є на деяких лезах. Дехто називає її парасолькою, хоча насправді це &lt;strong&gt;арбалет&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Арбалет-парасолька-зонтик Victorinox" src="https://lh5.googleusercontent.com/-mAL-9jrhI9Q/VOCryubQN3I/AAAAAAAB1oA/F8YCUijc1tg/w640-h489-no/OfficierSuisse.JPG"&gt;&lt;/p&gt;
&lt;p&gt;З часів повстання проти Габсбургів, на чолі з &lt;a href="http://uk.wikipedia.org/wiki/%D0%92%D1%96%D0%BB%D1%8C%D0%B3%D0%B5%D0%BB%D1%8C%D0%BC_%D0%A2%D0%B5%D0%BB%D0%BB%D1%8C"&gt;Вільгельмом Теллем&lt;/a&gt;, вправним стрілком з арбалета, ця зброя стала символом Швейцарії.&lt;/p&gt;
&lt;p&gt;Такою емблемою позначаються товари асоціації швейцарських виробників «Swiss Label». Вона засвідчує якість товару, а також означає що більшість робіт були виконані безпосередньо у Швейцарії.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Swiss made" src="https://lh6.googleusercontent.com/-a0ZgpLI-Oac/VOCqUlp9m6I/AAAAAAAB1m0/EOV23kF_xlw/w214-h299-no/swissmade.jpg"&gt;&lt;/p&gt;
&lt;p&gt;Цікаво, що емблема "хрестик з арбалетом" і напис "OFFICIER SUISSE" штампувалися на лезах Victorinox з 1974 по 2005 роки.  З 2005: просто "OFFICIER SUISSE" (без арбалета).&lt;/p&gt;
&lt;p&gt;Чи означає це перенесення частини виробництва зі Швейцарії — достеменно не відомо.&lt;/p&gt;
&lt;p&gt;На лезах старого зразка ще є напис «Victorinox SWITZERLAND STAINLESS ROSTREI» (1968-2005) яке змінилося на сучасніших на «Victorinox SWISS MADE STAINLESS».&lt;/p&gt;
&lt;p&gt;Придбані у надійних продавців ножі без арбалету чи з арбалетом є швейцарськими. Фактично, відсутність арбалета лише вказує що ножа випущено після 2005 року.&lt;/p&gt;
&lt;p&gt;Чесно кажучи, потримавши хоч раз і житті "швейцарця", ви навряд чи сплутаєте його з китайською підробкою.&lt;/p&gt;
&lt;h2 id="_12"&gt;Підбір інструментів&lt;/h2&gt;
&lt;p&gt;Підшукуючи  Victorinox з оптимальним набором інструментів "під себе" можна скористатися сторінкою на сайті Victorinox  "&lt;a href="http://www.victorinox.com/ch/content/toolfinder/category/Category/100"&gt;Tool finder&lt;/a&gt;", де відфільтруються моделі з потрібним функціоналом.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Victorinox SwissChamp" src="https://lh5.googleusercontent.com/-f6g07wKO1Ao/VOCx-Gvlb5I/AAAAAAAB1pM/9ypmD88MxNM/w670-h667-no/VictorinoxSwissChamp.jpg"&gt;&lt;/p&gt;
&lt;p&gt;Проте на практиці важливими є також і вага і розмір. Моделі умовно можна поділити на рядність, по кількості рядів інструментів. Багатофункціональний чотирьохрядник у лісі може буде оптимальним, тоді як для щоденного носіння (EDC&lt;sup id="fnref:6"&gt;&lt;a class="footnote-ref" href="#fn:6"&gt;6&lt;/a&gt;&lt;/sup&gt;) ідеальними є дворядні, або навіть "ключники".&lt;/p&gt;
&lt;p&gt;&lt;img alt="Victorinox різних розмірів" src="https://lh5.googleusercontent.com/-XvPbXh-i_ck/VOGy19ysNWI/AAAAAAAB1u0/AllBUYkVAeY/s0/DSC_2664.JPG" title="Victorinox: Forester, Super Tinker, Tinker"&gt;&lt;/p&gt;
&lt;p&gt;Багато людей тішаться тоненькою моделю «SwissCard» з чудовим набором для міського жителя:&lt;/p&gt;
&lt;p&gt;&lt;img alt="Victorinox Swisscard" src="https://lh5.googleusercontent.com/-fj9M0pVULT4/VOCzLhdNpQI/AAAAAAAB1p4/QT5QJgzuZto/w347-h530-no/SwissCard.jpg"&gt;&lt;/p&gt;
&lt;h2 id="_13"&gt;Різне&lt;/h2&gt;
&lt;p&gt;Чи відомо вам що Victorinox виготовляють не лише армійські та кишенькові ножі, але й кухонні.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Кухонний набір Victorinox" src="https://lh4.googleusercontent.com/-IVfRtiqFrU4/VOGpfBYiIWI/AAAAAAAB1ts/hvghgEmYKSU/s0/VictorinoxKitchen.jpg"&gt;&lt;/p&gt;
&lt;p&gt;А також різні відкривалки, ножі для овочів тощо.&lt;/p&gt;
&lt;p&gt;Якщо Ви дочитали це до кінця то мабуть маєте багато вільного часу. ;) А можливо це ознаки «синдрому швейцарського ножа», начувайтесь! :)&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Фотографії: мої, victorinox.com, wenger.ch, x-gear.com.ua, nazya.com, tacticalstore.se, Flickr (scu09144).&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;«Швейцарський ніж», тут і далі це «ті самі швейцарські армійські ножі».&amp;#160;&lt;a class="footnote-backref" href="#fnref:1" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:2"&gt;
&lt;p&gt;SAK — Swiss Army Knife, швейцарський армійський ніж.&amp;#160;&lt;a class="footnote-backref" href="#fnref:2" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:3"&gt;
&lt;p&gt;Ходять чутки що віднедавна частину виробництво ножів перенесли з Швейцарії, чи то в Німеччину чи то ще кудись.&amp;#160;&lt;a class="footnote-backref" href="#fnref:3" title="Jump back to footnote 3 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:4"&gt;
&lt;p&gt;Паракорд — "парашутний корд", гнучкий нейлоновий трос з гладкою оболонкою і переплетеною серцевиною.&amp;#160;&lt;a class="footnote-backref" href="#fnref:4" title="Jump back to footnote 4 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:5"&gt;
&lt;p&gt;Мусат — інструмент для зняття задирок з ріжучої кромки кухонних ножів; круглий стержень з поздовжньою насічкою, вигототовлений із твердих вуглецевих сплавів, має ручку для зручності в користуванні. &lt;a href="http://uk.wikipedia.org/"&gt;Wikipedia&lt;/a&gt;.&amp;#160;&lt;a class="footnote-backref" href="#fnref:5" title="Jump back to footnote 5 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:6"&gt;
&lt;p&gt;EDC — «Everyday carry», предмети що носяться з собою щодня.&amp;#160;&lt;a class="footnote-backref" href="#fnref:6" title="Jump back to footnote 6 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="Життєпис, Технічні теми"/><category term="Victorinox"/><category term="Wenger"/><category term="EDC"/><category term="мультиінструмент"/><category term="інструмент"/><category term="ніж"/></entry><entry><title>Збільшення розміру диску для віртуальної машини Proxmox</title><link href="https://yura.stryi.com/2014-12-29/proxmox-resize-disks/" rel="alternate"/><published>2014-12-29T00:00:00+02:00</published><updated>2014-12-29T00:00:00+02:00</updated><author><name>Юрій Сметана</name></author><id>tag:yura.stryi.com,2014-12-29:/2014-12-29/proxmox-resize-disks/</id><summary type="html">&lt;p&gt;Спочатку треба збільшити розмір віртуального диску, безпосередньо в Proxmox&lt;sup id="fnref:1"&gt;&lt;a class="footnote-ref" href="#fn:1"&gt;1&lt;/a&gt;&lt;/sup&gt;. Якщо диски розташовані на LVM&lt;sup id="fnref:2"&gt;&lt;a class="footnote-ref" href="#fn:2"&gt;2&lt;/a&gt;&lt;/sup&gt; то це робиться без проблем:&lt;/p&gt;
&lt;p&gt;&lt;img alt="Збільшення диску у Proxmox" src="https://lh5.googleusercontent.com/-o_qRkYvn4eQ/VKERF5pqecI/AAAAAAAB0Ug/ci-fMbhNAoU/w709-h339-no/proxmox_resize_disk_0.png"&gt;&lt;/p&gt;
&lt;p&gt;У вікні з параметрами розширення задається число гігабайт на які збільшиться віртуальний диск.&lt;/p&gt;
&lt;p&gt;Потім, треба збільшити розмір логічного розділу. Це потрібно робити зі сторонньої системи, наприклад &lt;a href="http://gparted.org/livecd.php"&gt;GParted Live-CD&lt;/a&gt;. ISO …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Спочатку треба збільшити розмір віртуального диску, безпосередньо в Proxmox&lt;sup id="fnref:1"&gt;&lt;a class="footnote-ref" href="#fn:1"&gt;1&lt;/a&gt;&lt;/sup&gt;. Якщо диски розташовані на LVM&lt;sup id="fnref:2"&gt;&lt;a class="footnote-ref" href="#fn:2"&gt;2&lt;/a&gt;&lt;/sup&gt; то це робиться без проблем:&lt;/p&gt;
&lt;p&gt;&lt;img alt="Збільшення диску у Proxmox" src="https://lh5.googleusercontent.com/-o_qRkYvn4eQ/VKERF5pqecI/AAAAAAAB0Ug/ci-fMbhNAoU/w709-h339-no/proxmox_resize_disk_0.png"&gt;&lt;/p&gt;
&lt;p&gt;У вікні з параметрами розширення задається число гігабайт на які збільшиться віртуальний диск.&lt;/p&gt;
&lt;p&gt;Потім, треба збільшити розмір логічного розділу. Це потрібно робити зі сторонньої системи, наприклад &lt;a href="http://gparted.org/livecd.php"&gt;GParted Live-CD&lt;/a&gt;. ISO можна завантажити на сервер Proxmox і додати його в опції завантаження віртуальної системи. Тод стартанути з Live-CD і програмою GParted розширити логічний диск на усе вільне місце.&lt;/p&gt;
&lt;p&gt;&lt;img alt="GParted" src="https://lh4.googleusercontent.com/-dEHb0FGL7Cs/VKET1sfpXuI/AAAAAAAB0Uw/rlezbj7LGj8/w807-h559-no/gparted.png"&gt;&lt;/p&gt;
&lt;p&gt;Розділ Swap потрібно теж або акуратно перенести, або видалити, а потім створити знову і активувати (&lt;code&gt;mkswap /dev/sdaX&lt;/code&gt;).&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;&lt;a href="https://www.proxmox.com"&gt;Proxmox VE&lt;/a&gt; — система віртуалізації що використовує технології &lt;a href="http://www.linux-kvm.org/"&gt;KVM&lt;/a&gt; або &lt;a href="http://openvz.org/"&gt;OpenVZ&lt;/a&gt;. За допомогою систем віртуалізації на одному фізичному комп’ютері можуть працювати декілька різних операційних систем, кожна з яких буде вважати що вона працює на окремому комп’ютері.&amp;#160;&lt;a class="footnote-backref" href="#fnref:1" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:2"&gt;
&lt;p&gt;&lt;a href="http://sources.redhat.com/lvm2/"&gt;LVM&lt;/a&gt; — менеджер логічних томів. Технологія, що дозволяє об’єднувати один або декілька фізичних дисків в один логічний том. Таким чином фізична конфігурація (кількість, розмір) дисків може змінюватися без шкоди для логічної конфігурації. Крім того LVM вміє робити миттєві снепшоти (образ, стан) розділу, розширювати його тощо.&amp;#160;&lt;a class="footnote-backref" href="#fnref:2" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="Технічні теми"/><category term="Proxmox"/><category term="GParted"/><category term="LVM"/></entry><entry><title>OLT BDCOM P3310B — помилка при додаванні ip-адреси</title><link href="https://yura.stryi.com/2014-12-24/new-ip-address-on-OLT-BDCOM-P3310B/" rel="alternate"/><published>2014-12-24T00:00:00+02:00</published><updated>2014-12-24T00:00:00+02:00</updated><author><name>Юрій Сметана</name></author><id>tag:yura.stryi.com,2014-12-24:/2014-12-24/new-ip-address-on-OLT-BDCOM-P3310B/</id><summary type="html">&lt;p&gt;В OLT BDCOM P3310B, при спробі задати ip-адресу для нового VLAN (ще на етапі входу в його конфігурацію) отримуємо помилку &lt;strong&gt;"Error: Interface exceeds its threshold"&lt;/strong&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;OLT-5_config# interface vlan5
OLT-5_config# Jan  1 00:30:21 %Error: Interface exceeds its threshold.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Справа в тому, що OLT не може мати більше однієї "власної …&lt;/p&gt;</summary><content type="html">&lt;p&gt;В OLT BDCOM P3310B, при спробі задати ip-адресу для нового VLAN (ще на етапі входу в його конфігурацію) отримуємо помилку &lt;strong&gt;"Error: Interface exceeds its threshold"&lt;/strong&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;OLT-5_config# interface vlan5
OLT-5_config# Jan  1 00:30:21 %Error: Interface exceeds its threshold.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Справа в тому, що OLT не може мати більше однієї "власної"" IP-адреси. А одна адреса вже занесена заводськими налаштуваннями на VLAN1. Тому спочатку треба:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;no interface vlan 1
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;А вже потім спокійно накручувати собі IP на потрібному VLAN:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nx"&gt;vlan&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;
&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;control&lt;/span&gt;
&lt;span class="kd"&gt;interface&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;vlan5&lt;/span&gt;
&lt;span class="nx"&gt;ip&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;address&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m m-Double"&gt;192.168.0.2&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m m-Double"&gt;255.255.255.0&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</content><category term="Технічні теми"/><category term="OLT"/><category term="ONU"/><category term="GEPON"/><category term="EPON"/><category term="BDCOM"/></entry></feed>