เดจเดฟเดฐเดตเดงเดฟ เดŽเตฝเดŸเดฟเด‡ เดฎเต‹เดกเดฎเตเด•เดณเดฟเตฝ เด’เดฐเต‡เดธเดฎเดฏเด‚ เดธเตเดชเต€เดกเต เดŸเต†เดธเตเดฑเตเดฑเต

เด•เตเดตเดพเดฑเดจเตเดฑเตˆเตป เดธเดฎเดฏเดคเตเดคเต, เดจเดฟเดฐเดตเดงเดฟ เดธเต†เดฒเตเดฒเตเดฒเดพเตผ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผเดฎเดพเตผเด•เตเด•เดพเดฏเดฟ เดŽเตฝเดŸเดฟเด‡ เดฎเต‹เดกเดฎเตเด•เดณเตเดŸเต† เดตเต‡เด—เดค เด…เดณเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด’เดฐเต เด‰เดชเด•เดฐเดฃเดคเตเดคเดฟเดจเตเดฑเต† เดตเดฟเด•เดธเดจเดคเตเดคเดฟเตฝ เดชเด™เตเด•เต†เดŸเตเด•เตเด•เดพเตป เดžเดพเตป เดตเดพเด—เตเดฆเดพเดจเด‚ เดšเต†เดฏเตเดคเต.

เดจเดฟเดฐเดตเดงเดฟ เดŽเตฝเดŸเดฟเด‡ เดฎเต‹เดกเดฎเตเด•เดณเดฟเตฝ เด’เดฐเต‡เดธเดฎเดฏเด‚ เดธเตเดชเต€เดกเต เดŸเต†เดธเตเดฑเตเดฑเต

เด’เดฐเต เดŽเตฝเดŸเดฟเด‡ เด•เดฃเด•เตเดทเตป เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด‰เดชเด•เดฐเดฃเด™เตเด™เตพ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เตพ เดเดคเต เดธเต†เดฒเตเดฒเตเดฒเดพเตผ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฑเดพเดฃเต เดคเดจเดฟเด•เตเด•เต เดเดฑเตเดฑเดตเตเด‚ เด…เดจเตเดฏเต‹เดœเตเดฏเดฎเต†เดจเตเดจเต เดฎเดจเดธเดฟเดฒเดพเด•เตเด•เดพเตป เดตเดฟเดตเดฟเดง เดญเต‚เดฎเดฟเดถเดพเดธเตเดคเตเดฐเดชเดฐเดฎเดพเดฏ เดธเตเดฅเดฒเด™เตเด™เดณเดฟเดฒเต† เดตเดฟเดตเดฟเดง เดŸเต†เดฒเดฟเด•เต‹เด‚ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผเดฎเดพเดฐเตเดŸเต† เดตเต‡เด—เดค เดตเดฟเดฒเดฏเดฟเดฐเตเดคเตเดคเดพเตป เด‰เดชเดญเต‹เด•เตเดคเดพเดตเต เด†เด—เตเดฐเดนเดฟเดšเตเดšเต, เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดตเต€เดกเดฟเดฏเต‹ เดชเตเดฐเด•เตเดทเต‡เดชเดฃเดคเตเดคเดฟเดจเดพเดฏเดฟ. เด…เดคเต‡ เดธเดฎเดฏเด‚, เดตเดฟเดฒเด•เต‚เดŸเดฟเดฏ เด‰เดชเด•เดฐเดฃเด™เตเด™เดณเดฟเดฒเตเดฒเดพเดคเต†, เดชเตเดฐเดถเตเดจเด‚ เด•เดดเดฟเดฏเตเดจเตเดจเดคเตเดฐ เดฒเดณเดฟเดคเดตเตเด‚ เดตเดฟเดฒเด•เตเดฑเดžเตเดžเดคเตเด‚ เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต.

เดšเตเดฎเดคเดฒ เดเดฑเตเดฑเดตเตเด‚ เดฒเดณเดฟเดคเดตเตเด‚ เดตเดฟเดœเตเดžเดพเดจ-เดคเต€เดตเตเดฐเดตเตเดฎเดฒเตเดฒเต†เดจเตเดจเต เดžเดพเตป เด‰เดŸเตป เดชเดฑเดฏเตเด‚; เดžเดพเตป เดจเต‡เดฐเดฟเดŸเตเดŸ เดชเตเดฐเดถเตเดจเด™เตเด™เตพ เดŽเดจเตเดคเดพเดฃเต†เดจเตเดจเตเด‚ เด…เดต เดŽเด™เตเด™เดจเต† เดชเดฐเดฟเดนเดฐเดฟเดšเตเดšเตเดตเต†เดจเตเดจเตเด‚ เดžเดพเตป เดจเดฟเด™เตเด™เดณเต‹เดŸเต เดชเดฑเดฏเตเด‚. เด…เดคเดฟเดจเดพเตฝ, เดจเดฎเตเด•เตเด•เต เดชเต‹เด•เดพเด‚.

เด…เดญเดฟเดชเดพเดฏเดชเตเดชเต†เดŸเตเด•

เด’เดฐเต เดŽเตฝเดŸเดฟเด‡ เด•เดฃเด•เตเดทเดจเตเดฑเต† เดตเต‡เด—เดค เด…เดณเด•เตเด•เตเดจเตเดจเดคเต เดตเดณเดฐเต† เดธเด™เตเด•เต€เตผเดฃเตเดฃเดฎเดพเดฏ เด•เดพเดฐเตเดฏเดฎเดพเดฃเต: เดจเดฟเด™เตเด™เตพ เดถเดฐเดฟเดฏเดพเดฏ เด‰เดชเด•เดฐเดฃเด™เตเด™เดณเตเด‚ เด…เดณเด•เตเด•เตฝ เดธเดพเด™เตเด•เต‡เดคเดฟเด•เดคเดฏเตเด‚ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต, เด•เต‚เดŸเดพเดคเต† เดธเต†เดฒเตเดฒเตเดฒเดพเตผ เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เดฟเดจเตเดฑเต† เดŸเต‹เดชเตเดชเต‹เดณเดœเดฟเดฏเต†เดฏเตเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดจเดคเตเดคเต†เดฏเตเด‚ เด•เตเดฑเดฟเดšเตเดšเต เดจเดฒเตเดฒ เดงเดพเดฐเดฃเดฏเตเด‚ เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเดฟเด•เตเด•เดฃเด‚. เด•เต‚เดŸเดพเดคเต†, เดตเต‡เด—เดคเดฏเต† เดจเดฟเดฐเดตเดงเดฟ เด˜เดŸเด•เด™เตเด™เดณเดพเตฝ เดธเตเดตเดพเดงเต€เดจเดฟเด•เตเด•เดพเด‚: เด’เดฐเต เดธเต†เดฒเตเดฒเดฟเดฒเต† เดตเดฐเดฟเด•เตเด•เดพเดฐเตเดŸเต† เดŽเดฃเตเดฃเด‚, เด•เดพเดฒเดพเดตเดธเตเดฅ, เดธเต†เดฒเตเดฒเดฟเตฝ เดจเดฟเดจเตเดจเต เดธเต†เดฒเตเดฒเดฟเดฒเต‡เด•เตเด•เต เดชเต‹เดฒเตเด‚ เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เดŸเต‹เดชเตเดชเต‹เดณเดœเดฟ เด•เดพเดฐเดฃเด‚ เดตเต‡เด—เดค เด—เดฃเตเดฏเดฎเดพเดฏเดฟ เดตเตเดฏเดคเตเดฏเดพเดธเดชเตเดชเต†เดŸเดพเด‚. เดชเตŠเดคเตเดตเต‡, เด‡เดคเต เดงเดพเดฐเดพเดณเด‚ เด…เดœเตเดžเดพเดคเดฐเตเดŸเต† เด’เดฐเต เดชเตเดฐเดถเตเดจเดฎเดพเดฃเต, เด’เดฐเต เดŸเต†เดฒเดฟเด•เต‹เด‚ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผเด•เตเด•เต เดฎเดพเดคเตเดฐเดฎเต‡ เด‡เดคเต เดถเดฐเดฟเดฏเดพเดฏเดฟ เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเต‚.

เดคเตเดŸเด•เตเด•เดคเตเดคเดฟเตฝ, เด‰เดชเดญเต‹เด•เตเดคเดพเดตเต เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผเดฎเดพเดฐเตเดŸเต† เดซเต‹เดฃเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด•เตŠเดฑเดฟเดฏเตผ เด“เดŸเดฟเด•เตเด•เดพเดจเตเด‚ เดซเต‹เดฃเดฟเตฝ เดจเต‡เดฐเดฟเดŸเตเดŸเต เด…เดณเดตเตเด•เตพ เดŽเดŸเตเด•เตเด•เดพเดจเตเด‚ เดคเตเดŸเตผเดจเตเดจเต เด’เดฐเต เดจเต‹เดŸเตเดŸเตเดฌเตเด•เตเด•เดฟเตฝ เดตเต‡เด—เดค เด…เดณเด•เตเด•เตฝ เดซเดฒเด™เตเด™เตพ เดŽเดดเตเดคเดพเดจเตเด‚ เด†เด—เตเดฐเดนเดฟเดšเตเดšเต. lte เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เตเด•เดณเตเดŸเต† เดตเต‡เด—เดค เด…เดณเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดŽเดจเตเดฑเต† เดชเดฐเดฟเดนเดพเดฐเด‚, เด…เดจเตเดฏเต‹เดœเตเดฏเดฎเดฒเตเดฒเต†เด™เตเด•เดฟเดฒเตเด‚, เดชเตเดฐเดถเตเดจเด‚ เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เตเดจเตเดจเต.

เดธเดฎเดฏเด•เตเด•เตเดฑเดตเต เด•เดพเดฐเดฃเด‚, เดžเดพเตป เดคเต€เดฐเตเดฎเดพเดจเด™เตเด™เตพ เดŽเดŸเตเดคเตเดคเดคเต เดธเต—เด•เดฐเตเดฏเดคเตเดคเดฟเดจเต‹ เดชเตเดฐเดพเดฏเต‹เด—เดฟเด•เดคเดฏเตโ€Œเด•เตเด•เต‹ เด…เดจเตเด•เต‚เดฒเดฎเดฒเตเดฒ, เดฎเดฑเดฟเดšเตเดšเต เดตเดฟเด•เดธเดจเดคเตเดคเดฟเดจเตเดฑเต† เดตเต‡เด—เดคเดฏเตเด•เตเด•เต เด…เดจเตเด•เต‚เดฒเดฎเดพเดฃเต. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดธเต†เตผเดตเดฑเตเด‚ เด“เดฐเต‹ เด•เตเดฒเดฏเดจเตเดฑเตเด‚ เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดธเดฎเดฏเด‚ เดฒเดพเดญเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, เด•เต‚เดŸเตเดคเตฝ เดชเตเดฐเดพเดฏเต‹เด—เดฟเด•เดฎเดพเดฏ VPN-เดจเต เดชเด•เดฐเด‚ เดฑเดฟเดฎเต‹เดŸเตเดŸเต เด†เด•เตโ€Œเดธเดธเดฟเดจเดพเดฏเดฟ เดฑเดฟเดตเต‡เดดเตเดธเต ssh เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต.

เดธเดพเด™เตเด•เต‡เดคเดฟเด• เดšเตเดฎเดคเดฒ

เดฒเต‡เด–เดจเดคเตเดคเดฟเตฝ เดชเดฑเดžเตเดžเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเตเดชเต‹เดฒเต† เดธเดพเด™เตเด•เต‡เดคเดฟเด• เดธเดตเดฟเดถเต‡เดทเดคเด•เดณเดฟเดฒเตเดฒเดพเดคเต†: เดŽเดจเตเดคเตเด•เตŠเดฃเตเดŸเต เด•เตเดฒเดฏเดจเตเดฑเต เด…เดคเต เด†เดตเดถเตเดฏเดฎเดฟเดฒเตเดฒ: เดธเดพเด™เตเด•เต‡เดคเดฟเด• เดธเดตเดฟเดถเต‡เดทเดคเด•เดณเดฟเดฒเตเดฒเดพเดคเต† เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดฐเตเดคเต! เด’เดฐเดฟเด•เตเด•เดฒเตเดฎเดฟเดฒเตเดฒ, เดŽเดตเดฟเดŸเต†เดฏเตเด‚!

เดธเดพเด™เตเด•เต‡เดคเดฟเด• เดšเตเดฎเดคเดฒ เดตเดณเดฐเต† เดฒเดณเดฟเดคเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเต, เด…เดจเตเดคเดฟเดฎ เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเดฟเดจเตเดฑเต† เดงเดพเดฐเดฃเดฏเตเด•เตเด•เดพเดฏเดฟ เดžเดพเตป เด‡เดคเต เด…เตฝเดชเตเดชเด‚ เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเด•เตเด•เตเด‚. เดธเดพเด™เตเด•เต‡เดคเดฟเด• เดชเดฐเดฟเดนเดพเดฐเด™เตเด™เดณเตเดŸเต†เดฏเตเด‚ เด‰เดชเด•เดฐเดฃเด™เตเด™เดณเตเดŸเต†เดฏเตเด‚ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดชเตเดชเต เด‰เดชเดญเต‹เด•เตเดคเดพเดตเต เดจเดฟเตผเดฆเตเดฆเต‡เดถเดฟเดšเตเดšเต. เด…เดคเดฟเดจเดพเตฝ, เดธเดพเด™เตเด•เต‡เดคเดฟเด• เดธเดตเดฟเดถเต‡เดทเดคเด•เตพ เดคเดจเตเดจเต†, เดŽเดฒเตเดฒเดพ เด…เด‚เด—เต€เด•เดพเดฐเด™เตเด™เตพเด•เตเด•เตเด‚ เดถเต‡เดทเด‚:

เด’เดฐเตŠเดฑเตเดฑ เดฌเต‹เตผเดกเต เด•เดฎเตเดชเตเดฏเต‚เดŸเตเดŸเดฑเดฟเดจเต† เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟ เดตเดฟเด‚2 H เดฎเต‹เดกเด‚ เดตเดดเดฟเดฏเตเดณเตเดณ lte เด•เดฃเด•เตเดทเดจเตเด•เตพเด•เตเด•เดพเดฏเดฟ เด’เดฐเต เดธเตเดชเต€เดกเต เดŸเต†เดธเตเดฑเตเดฑเตผ เด‰เดฃเตเดŸเดพเด•เตเด•เตเด•uawei e3372h - 153 เดจเดฟเดฐเดตเดงเดฟ เดŸเต†เดฒเดฟเด•เต‹เด‚ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผเดฎเดพเตผ (เด’เดจเตเดจเต เดฎเตเดคเตฝ n เดตเดฐเต†). UART เดตเดดเดฟ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต GPS เดฑเดฟเดธเต€เดตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต เด•เต‹เตผเดกเดฟเดจเต‡เดฑเตเดฑเตเด•เตพ เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเด‚ เด†เดตเดถเตเดฏเดฎเดพเดฃเต. เดธเต‡เดตเดจเด‚ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดตเต‡เด—เดค เด…เดณเด•เตเด•เตเด• www.speedtest.net เด…เดต เด’เดฐเต เดฎเต‡เดถเดฏเดฟเตฝ เดตเดฏเตเด•เตเด•เตเด•:

เดจเดฟเดฐเดตเดงเดฟ เดŽเตฝเดŸเดฟเด‡ เดฎเต‹เดกเดฎเตเด•เดณเดฟเตฝ เด’เดฐเต‡เดธเดฎเดฏเด‚ เดธเตเดชเต€เดกเต เดŸเต†เดธเตเดฑเตเดฑเต

csv เดซเต‹เตผเดฎเดพเดฑเตเดฑเดฟเดฒเตเดณเตเดณ เดชเดŸเตเดŸเดฟเด•. เดคเตเดŸเตผเดจเตเดจเต เด“เดฐเต‹ 6 เดฎเดฃเดฟเด•เตเด•เต‚เดฑเดฟเดฒเตเด‚ เด‡-เดฎเต†เดฏเดฟเตฝ เดตเดดเดฟ เดˆ เด…เดŸเดฏเดพเดณเด‚ เด…เดฏเดฏเตเด•เตเด•เตเด•. เดชเดฟเดถเด•เตเด•เดณเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, GPIO-เดฏเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ LED เดฌเตเดฒเดฟเด™เตเด•เต เดšเต†เดฏเตเดฏเตเด•.

เดจเดฟเดฐเดตเดงเดฟ เด…เด‚เด—เต€เด•เดพเดฐเด™เตเด™เตพเด•เตเด•เต เดถเต‡เดทเด‚ เดžเดพเตป เดธเดพเด™เตเด•เต‡เดคเดฟเด• เดธเดตเดฟเดถเต‡เดทเดคเด•เตพ เดธเตŒเดœเดจเตเดฏ เดฐเต‚เดชเดคเตเดคเดฟเตฝ เดตเดฟเดตเดฐเดฟเดšเตเดšเต. เดŽเดจเตเดจเดพเตฝ เดšเตเดฎเดคเดฒเดฏเตเดŸเต† เด…เตผเดคเตเดฅเด‚ เด‡เดคเดฟเดจเด•เด‚ เดฆเตƒเดถเตเดฏเดฎเดพเดฃเต. เดŽเดฒเตเดฒเดพเดฑเตเดฑเดฟเดจเตเด‚ เด’เดฐเดพเดดเตเดš เดธเดฎเดฏเด‚ เดจเตฝเด•เดฟ. เดŽเดจเตเดจเดพเตฝ เดตเดพเดธเตเดคเดตเดคเตเดคเดฟเตฝ เด…เดคเต เดฎเต‚เดจเตเดจเดพเดดเตเดš เดจเต€เดฃเตเดŸเตเดจเดฟเดจเตเดจเต. เดŽเดจเตเดฑเต† เดชเตเดฐเดงเดพเดจ เดœเต‹เดฒเดฟเด•เตเด•เต เดถเต‡เดทเดตเตเด‚ เดตเดพเดฐเดพเดจเตเดคเตเดฏเด™เตเด™เดณเดฟเดฒเตเด‚ เดฎเดพเดคเตเดฐเดฎเดพเดฃเต เดžเดพเตป เด‡เดคเต เดšเต†เดฏเตเดคเดคเต†เดจเตเดจ เดตเดธเตเดคเตเดค เด‡เดคเต เด•เดฃเด•เตเด•เดฟเดฒเต†เดŸเตเด•เตเด•เตเดจเตเดจเต.

เดธเตเดชเต€เดกเต เดฎเต†เดทเตผเดฎเต†เดจเตเดฑเต เดธเต‡เดตเดจเดคเตเดคเดฟเดจเตเดฑเต†เดฏเตเด‚ เดนเดพเตผเดกเตโ€Œเดตเต†เดฏเดฑเดฟเดจเตเดฑเต†เดฏเตเด‚ เด‰เดชเดฏเต‹เด—เดคเตเดคเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เด‰เดชเดญเต‹เด•เตเดคเดพเดตเต เดฎเตเตปเด•เต‚เดŸเตเดŸเดฟ เดธเดฎเตเดฎเดคเดฟเดšเตเดšเตเดตเต†เดจเตเดจ เดตเดธเตเดคเตเดคเดฏเดฟเดฒเต‡เด•เตเด•เต เดตเต€เดฃเตเดŸเตเด‚ เดถเตเดฐเดฆเตเดง เด†เด•เตผเดทเดฟเด•เตเด•เดพเตป เดžเดพเตป เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเต, เด‡เดคเต เดŽเดจเตเดฑเต† เด•เดดเดฟเดตเตเด•เดณเต† เดตเดณเดฐเต†เดฏเดงเดฟเด•เด‚ เดชเดฐเดฟเดฎเดฟเดคเดชเตเดชเต†เดŸเตเดคเตเดคเดฟ. เดฌเดœเดฑเตเดฑเตเด‚ เดชเดฐเดฟเดฎเดฟเดคเดฎเดพเดฏเดคเดฟเดจเดพเตฝ เดชเตเดฐเดคเตเดฏเต‡เด•เดฟเดšเตเดšเตŠเดจเตเดจเตเด‚ เดตเดพเด™เตเด™เดฟเดฏเดฟเดฒเตเดฒ. เด…เดคเดฟเดจเดพเตฝ เดžเด™เตเด™เตพเด•เตเด•เต เดˆ เดจเดฟเดฏเดฎเด™เตเด™เตพ เด…เดจเตเดธเดฐเดฟเดšเตเดšเต เด•เดณเดฟเด•เตเด•เต‡เดฃเตเดŸเดฟ เดตเดจเตเดจเต.

เดตเดพเดธเตเดคเตเดตเดฟเดฆเตเดฏเดฏเตเด‚ เดตเดฟเด•เดธเดจเดตเตเด‚

เดธเตเด•เต€เด‚ เดฒเดณเดฟเดคเดตเตเด‚ เดตเตเดฏเด•เตเดคเดตเตเดฎเดพเดฃเต. เด…เดคเดฟเดจเดพเตฝ, เดชเตเดฐเดคเตเดฏเต‡เด• เด…เดญเดฟเดชเตเดฐเดพเดฏเด™เตเด™เดณเตŠเดจเตเดจเตเดฎเดฟเดฒเตเดฒเดพเดคเต† เดžเดพเตป เด‡เดคเต เด‰เดชเต‡เด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเต.

เดจเดฟเดฐเดตเดงเดฟ เดŽเตฝเดŸเดฟเด‡ เดฎเต‹เดกเดฎเตเด•เดณเดฟเตฝ เด’เดฐเต‡เดธเดฎเดฏเด‚ เดธเตเดชเต€เดกเต เดŸเต†เดธเตเดฑเตเดฑเต

เดˆ เดญเดพเดทเดฏเดฟเตฝ เดตเดฟเด•เดธเดฟเดšเตเดš เด’เดฐเต เด…เดจเตเดญเดตเดตเตเด‚ เด‡เดฒเตเดฒเดพเดคเดฟเดฐเตเดจเตเดจเดฟเดŸเตเดŸเตเด‚, เดฎเตเดดเตเดตเตป เดชเดฆเตเดงเดคเดฟเดฏเตเด‚ เดชเตˆเดคเตเดคเดฃเดฟเตฝ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดพเตป เดžเดพเตป เดคเต€เดฐเตเดฎเดพเดจเดฟเดšเตเดšเต. เดตเดฟเด•เดธเดจเด‚ เดตเต‡เด—เดคเตเดคเดฟเดฒเดพเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเดจเตเดจ เด’เดฐเต เด•เต‚เดŸเตเดŸเด‚ เดฑเต†เดกเดฟเดฎเต†เดฏเตเดกเต เด‰เดฆเดพเดนเดฐเดฃเด™เตเด™เดณเตเด‚ เดชเดฐเดฟเดนเดพเดฐเด™เตเด™เดณเตเด‚ เด‰เดณเตเดณเดคเดฟเดจเดพเตฝ เดžเดพเตป เด…เดคเต เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดคเตเดคเต. เด…เดคเดฟเดจเดพเตฝ, เดชเตˆเดคเตเดคเดฃเดฟเตฝ เดตเดฟเด•เดธเดฟเดšเตเดšเดคเดฟเดจเตเดฑเต† เด†เดฆเตเดฏ เด…เดจเตเดญเดตเดคเตเดคเต† เดถเด•เดพเดฐเดฟเด•เตเด•เดฐเตเดคเต†เดจเตเดจเต เดŽเดฒเตเดฒเดพ เดชเตเดฐเตŠเดซเดทเดฃเตฝ เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเตผเดฎเดพเดฐเต‹เดŸเตเด‚ เดžเดพเตป เด†เดตเดถเตเดฏเดชเตเดชเต†เดŸเตเดจเตเดจเต, เดŽเดจเตเดฑเต† เด•เดดเดฟเดตเตเด•เตพ เดฎเต†เดšเตเดšเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเดคเดฟเดจเต เด•เตเดฐเดฟเดฏเดพเดคเตเดฎเด•เดฎเดพเดฏ เดตเดฟเดฎเตผเดถเดจเด™เตเด™เตพ เด•เต‡เตพเด•เตเด•เตเดจเตเดจเดคเดฟเตฝ เดŽเดจเดฟเด•เตเด•เต เดŽเดชเตเดชเต‹เดดเตเด‚ เดธเดจเตเดคเต‹เดทเดฎเตเดฃเตเดŸเต.

เดˆ เดชเตเดฐเด•เตเดฐเดฟเดฏเดฏเดฟเตฝ เดชเตˆเดคเตเดคเดฃเดฟเดจเต 2, 3 เดŽเดจเตเดจเต€ เดฐเดฃเตเดŸเต เดชเดคเดฟเดชเตเดชเตเด•เตพ เด‰เดฃเตเดŸเต†เดจเตเดจเต เดžเดพเตป เด•เดฃเตเดŸเต†เดคเตเดคเดฟ, เด…เดคเดฟเดจเตเดฑเต† เดซเดฒเดฎเดพเดฏเดฟ เดžเดพเตป เดฎเต‚เดจเตเดจเดพเดฎเดคเตเดคเต‡เดคเดฟเตฝ เดธเตเดฅเดฟเดฐเดคเดพเดฎเดธเดฎเดพเด•เตเด•เดฟ.

เดนเดพเตผเดกเตเดตเต†เดฏเตผ เดจเต‹เดกเตเด•เตพ

เดธเดฟเด‚เด—เดฟเตพ เดชเตเดฒเต‡เดฑเตเดฑเต vim2

เดŽเดจเตเดฑเต† เดชเตเดฐเดงเดพเดจ เดฎเต†เดทเต€เดจเดพเดฏเดฟ เดŽเดจเดฟเด•เตเด•เต เด’เดฐเต เด’เดฑเตเดฑ เดฌเต‹เตผเดกเต เด•เดฎเตเดชเตเดฏเต‚เดŸเตเดŸเตผ เดคเดจเตเดจเต เดตเดฟเด‚2

เดจเดฟเดฐเดตเดงเดฟ เดŽเตฝเดŸเดฟเด‡ เดฎเต‹เดกเดฎเตเด•เดณเดฟเตฝ เด’เดฐเต‡เดธเดฎเดฏเด‚ เดธเตเดชเต€เดกเต เดŸเต†เดธเตเดฑเตเดฑเต

เด’เดฐเต เดธเตเดฎเดพเตผเดŸเตเดŸเต เดนเต‹เด‚, เดธเตเดฎเดพเตผเดŸเตเดŸเต-เดŸเดฟเดตเดฟ เดŽเดจเตเดจเดฟเดตเดฏเตโ€Œเด•เตเด•เดพเดฏเตเดณเตเดณ เดฎเดฟเด•เดšเตเดšเดคเตเด‚ เดถเด•เตเดคเดตเตเดฎเดพเดฏ เดฎเต€เดกเดฟเดฏ เดชเตเดฐเต‹เดธเดธเตเดธเตผ, เดŽเดจเตเดจเดพเตฝ เดˆ เดŸเดพเดธเตโ€Œเด•เตเด•เดฟเดจเต เด…เด™เตเด™เต‡เดฏเดฑเตเดฑเด‚ เด…เดจเตเดฏเต‹เดœเตเดฏเดฎเดฒเตเดฒ, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เดฎเต‹เดถเดฎเดพเดฏเดฟ เด…เดจเตเดฏเต‹เดœเตเดฏเดฎเต†เดจเตเดจเต เดชเดฑเดฏเดพเด‚. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เด…เดคเดฟเดจเตเดฑเต† เดชเตเดฐเดงเดพเดจ OS Android เด†เดฃเต, เด•เต‚เดŸเดพเดคเต† Linux เด’เดฐเต เดฆเตเดตเดฟเดคเต€เดฏ OS เด†เดฃเต, เด…เดคเดจเตเดธเดฐเดฟเดšเตเดšเต Linux-เดจเต เด•เต€เดดเดฟเดฒเตเดณเตเดณ เดŽเดฒเตเดฒเดพ เดจเต‹เดกเตเด•เดณเตเดŸเต†เดฏเตเด‚ เดกเตเดฐเตˆเดตเดฑเตเด•เดณเตเดŸเต†เดฏเตเด‚ เด‰เดฏเตผเดจเตเดจ เดจเดฟเดฒเดตเดพเดฐเดฎเตเดณเตเดณ เดชเตเดฐเดตเตผเดคเตเดคเดจเดคเตเดคเดฟเดจเต เด†เดฐเตเด‚ เด‰เดฑเดชเตเดชเตเดจเตฝเด•เตเดจเตเดจเดฟเดฒเตเดฒ. เดšเดฟเดฒ เดชเตเดฐเดถเตเดจเด™เตเด™เตพ เดˆ เดชเตเดฒเดพเดฑเตเดฑเตโ€Œเดซเต‹เดฎเดฟเดจเตเดฑเต† เดฏเตเดŽเดธเตเดฌเดฟ เดกเตเดฐเตˆเดตเดฑเตเด•เดณเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดชเตเดชเต†เดŸเตเดŸเดคเดพเดฃเต†เดจเตเดจเต เดžเดพเตป เด…เดจเตเดฎเดพเดจเดฟเด•เตเด•เตเดจเตเดจเต, เด…เดคเดฟเดจเดพเตฝ เดˆ เดฌเต‹เตผเดกเดฟเตฝ เดฎเต‹เดกเดฎเตเด•เตพ เดชเตเดฐเดคเต€เด•เตเดทเดฟเดšเตเดšเดคเตเดชเต‹เดฒเต† เดชเตเดฐเดตเตผเดคเตเดคเดฟเดšเตเดšเดฟเดฒเตเดฒ. เด‡เดคเดฟเดจเต เดตเดณเดฐเต† เดฎเต‹เดถเดฎเดพเดฏเดคเตเด‚ เดšเดฟเดคเดฑเดฟเด•เตเด•เดฟเดŸเด•เตเด•เตเดจเตเดจเดคเตเดฎเดพเดฏ เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเดจเตเด‚ เด‰เดฃเตเดŸเต, เด…เดคเดฟเดจเดพเตฝ เด“เดฐเต‹ เด“เดชเตเดชเดฑเต‡เดทเดจเตเด‚ เดกเต‹เด•เตเด•เตเด•เดณเดฟเดฒเต‚เดŸเต† เด•เตเดดเดฟเด•เตเด•เดพเตป เดตเดณเดฐเต†เดฏเดงเดฟเด•เด‚ เดธเดฎเดฏเดฎเต†เดŸเตเดคเตเดคเต. GPIO เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเตเดณเตเดณ เดธเดพเดงเดพเดฐเดฃ เดœเต‹เดฒเดฟ เดชเต‹เดฒเตเด‚ เดงเดพเดฐเดพเดณเด‚ เดฐเด•เตเดคเด‚ เดŽเดŸเตเดคเตเดคเต. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, LED เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เดพเตป เดŽเดจเดฟเด•เตเด•เต เดจเดฟเดฐเดตเดงเดฟ เดฎเดฃเดฟเด•เตเด•เต‚เดฑเตเด•เตพ เดŽเดŸเตเดคเตเดคเต. เดชเด•เตเดทเต‡, เดตเดธเตเดคเตเดจเดฟเดทเตเด เดฎเดพเดฏเดฟ เดชเดฑเดžเตเดžเดพเตฝ, เด…เดคเต เดเดคเต เดคเดฐเดคเตเดคเดฟเดฒเตเดณเตเดณ เดธเดฟเด‚เด—เดฟเตพ เดฌเต‹เตผเดกเดพเดฃเต†เดจเตเดจเดคเต เด…เดŸเดฟเดธเตเดฅเดพเดจเดชเดฐเดฎเดพเดฏเดฟ เดชเตเดฐเดงเดพเดจเดฎเดฒเตเดฒ, เดชเตเดฐเดงเดพเดจ เด•เดพเดฐเตเดฏเด‚ เด…เดคเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดฏเตเดŽเดธเตเดฌเดฟ เดชเต‹เตผเดŸเตเดŸเตเด•เตพ เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเตเดจเตเดจเต เดŽเดจเตเดจเดคเดพเดฃเต.

เด†เดฆเตเดฏเด‚, เดŽเดจเดฟเด•เตเด•เต เดˆ เดฌเต‹เตผเดกเดฟเตฝ Linux เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเดฃเด‚. เดŽเดฒเตเดฒเดพเดตเตผเด•เตเด•เตเดฎเดพเดฏเดฟ เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเดจเตเดฑเต† เดตเดจเตเดฏเดค เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เดพเดคเดฟเดฐเดฟเด•เตเด•เดพเดจเตเด‚ เดˆ เดธเดฟเด‚เด—เดฟเตพ เดฌเต‹เตผเดกเต เดธเด‚เดตเดฟเดงเดพเดจเด‚ เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเดตเตผเด•เตเด•เตเด‚ เดตเต‡เดฃเตเดŸเดฟ, เดžเดพเตป เดˆ เด…เดงเตเดฏเดพเดฏเด‚ เดŽเดดเตเดคเตเดจเตเดจเต.

Linux เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเดพเตป เดฐเดฃเตเดŸเต เด“เดชเตเดทเดจเตเด•เดณเตเดฃเตเดŸเต: เด’เดฐเต เดฌเดพเดนเตเดฏ SD เด•เดพเตผเดกเดฟเตฝ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด’เดฐเต เด†เดจเตเดคเดฐเดฟเด• MMC. เด•เดพเตผเดกเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด‡เดคเต เดŽเด™เตเด™เดจเต† เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเดฎเต†เดจเตเดจเต เดฎเดจเดธเดฟเดฒเดพเด•เตเด•เดพเตป เดžเดพเตป เด’เดฐเต เดธเดพเดฏเดพเดนเตเดจเด‚ เดšเต†เดฒเดตเดดเดฟเดšเตเดšเต, เด…เดคเดฟเดจเดพเตฝ เด‡เดคเต เดŽเด‚เดŽเด‚เดธเดฟเดฏเดฟเตฝ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเดพเตป เดžเดพเตป เดคเต€เดฐเตเดฎเดพเดจเดฟเดšเตเดšเต, เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚ เด’เดฐเต เดฌเดพเดนเตเดฏ เด•เดพเตผเดกเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดคเต เดตเดณเดฐเต† เดŽเดณเตเดชเตเดชเดฎเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚.

เดซเต‡เด‚เดตเต†เดฏเดฑเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดตเด•เตเดฐเดฎเดพเดฏเดฟ เด‡เดตเดฟเดŸเต† เดชเดฑเดžเตเดžเต. เดžเดพเตป เดตเดฟเดšเดฟเดคเตเดฐเดฎเดพเดฏเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดฑเดทเตเดฏเตป เดญเดพเดทเดฏเดฟเดฒเต‡เด•เตเด•เต เดตเดฟเดตเตผเดคเตเดคเดจเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เดฌเต‹เตผเดกเต เดซเตเดฒเดพเดทเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เดŽเดจเดฟเด•เตเด•เต เดนเดพเตผเดกเตโ€Œเดตเต†เดฏเตผ UART เด•เดฃเด•เตเดฑเตเดฑเตเดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต. เด…เดคเต เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดšเตเดšเต เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดฐเต€เดคเดฟเดฏเดฟเตฝ.

  • เดŸเต‚เตพ เดชเดฟเตป GND: <โ€”> VIM-เด•เดณเตเดŸเต† GPIO-เดฏเตเดŸเต† เดชเดฟเตป17
  • เดŸเต‚เตพ เดชเดฟเตป TXD: <โ€”> VIM เด•เดณเตเดŸเต† GPIO เดฏเตเดŸเต† Pin18 (Linux_Rx)
  • เดŸเต‚เตพ เดชเดฟเตป RXD: <โ€”> VIM เด•เดณเตเดŸเต† GPIO เดฏเตเดŸเต† Pin19 (Linux_Tx)
  • เดŸเต‚เตพ เดชเดฟเตป VCC: <โ€”> VIM-เด•เดณเตเดŸเต† GPIO-เดฏเตเดŸเต† เดชเดฟเตป20

เดจเดฟเดฐเดตเดงเดฟ เดŽเตฝเดŸเดฟเด‡ เดฎเต‹เดกเดฎเตเด•เดณเดฟเตฝ เด’เดฐเต‡เดธเดฎเดฏเด‚ เดธเตเดชเต€เดกเต เดŸเต†เดธเตเดฑเตเดฑเต

เด…เดคเดฟเดจเตเดถเต‡เดทเด‚, เดžเดพเตป เดซเต‡เด‚เดตเต†เดฏเตผ เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดคเต เด‡เดตเดฟเดŸเต† เดจเดฟเดจเตเดจเต. เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเดŸ เดซเต‡เด‚เดตเต†เดฏเตผ เดชเดคเดฟเดชเตเดชเต VIM1_Ubuntu-server-bionic_Linux-4.9_arm64_EMMC_V20191231.

เดˆ เดซเต‡เด‚เดตเต†เดฏเตผ เด…เดชเตโ€Œเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เดŽเดจเดฟเด•เตเด•เต เดฏเต‚เดŸเตเดŸเดฟเดฒเดฟเดฑเตเดฑเดฟเด•เตพ เด†เดตเดถเตเดฏเดฎเดพเดฃเต. เด‡เดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เด•เต‚เดŸเตเดคเตฝ เดตเดฟเดถเดฆเดพเด‚เดถเด™เตเด™เตพ เด‡เดตเดฟเดŸเต†. เดตเดฟเตปเดกเต‹เดธเดฟเดจเต เด•เต€เดดเดฟเตฝ เด‡เดคเต เดฎเดฟเดจเตเดจเดพเตป เดžเดพเตป เดถเตเดฐเดฎเดฟเดšเตเดšเดฟเดŸเตเดŸเดฟเดฒเตเดฒ, เดชเด•เตเดทเต‡ เดฒเดฟเดจเด•เตเดธเดฟเดจเต เด•เต€เดดเดฟเดฒเตเดณเตเดณ เดซเต‡เด‚เดตเต†เดฏเดฑเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดŽเดจเดฟเด•เตเด•เต เด•เตเดฑเดšเตเดšเต เดตเดพเด•เตเด•เตเด•เตพ เดชเดฑเดฏเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต. เด†เดฆเตเดฏเด‚, เดจเดฟเตผเดฆเตเดฆเต‡เดถเด™เตเด™เตพเด•เตเด•เดจเตเดธเดฐเดฟเดšเตเดšเต เดžเดพเตป เดฏเต‚เดŸเตเดŸเดฟเดฒเดฟเดฑเตเดฑเดฟเด•เตพ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเด‚.

git clone https://github.com/khadas/utils
cd /path/to/utils
sudo ./INSTALL

เด†เดฃเตเดŸเต... เด’เดจเตเดจเตเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ. เด‡เตปเดธเตเดฑเตเดฑเดพเดณเต‡เดทเตป เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเตเด•เตพ เดŽเดกเดฟเดฑเตเดฑเตเดšเต†เดฏเตเดฏเดพเตป เดžเดพเตป เด•เตเดฑเดšเตเดšเต เดฎเดฃเดฟเด•เตเด•เต‚เตผ เดšเต†เดฒเดตเดดเดฟเดšเตเดšเต, เด…เด™เตเด™เดจเต† เดŽเดฒเตเดฒเดพเด‚ เดŽเดจเดฟเด•เตเด•เต เดถเดฐเดฟเดฏเดพเดฏเดฟ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเด‚. เดžเดพเตป เด…เดตเดฟเดŸเต† เดŽเดจเตเดคเดพเดฃเต เดšเต†เดฏเตเดคเดคเต†เดจเตเดจเต เดŽเดจเดฟเด•เตเด•เต เด“เตผเดฎเดฏเดฟเดฒเตเดฒ, เดชเด•เตเดทเต‡ เด•เตเดคเดฟเดฐเด•เดณเตเดฎเดพเดฏเดฟ เด† เดธเตผเด•เตเด•เดธเตเด‚ เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเตเดจเตเดจเต. เด…เดคเตเด•เตŠเดฃเตเดŸเต เดธเต‚เด•เตเดทเดฟเด•เตเด•เตเด•. เดŽเดจเตเดจเดพเตฝ เดˆ เดฏเต‚เดŸเตเดŸเดฟเดฒเดฟเดฑเตเดฑเดฟเด•เตพ เด‡เดฒเตเดฒเดพเดคเต† vim2 เด•เต‚เดŸเตเดคเตฝ เดชเต€เดกเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเตฝ เด…เตผเดคเตเดฅเดฎเดฟเดฒเตเดฒ. เด…เดตเดจเตเดฎเดพเดฏเดฟ เด’เดฐเดฟเด•เตเด•เดฒเตเด‚ เด•เตเดดเดชเตเดชเดฎเตเดฃเตเดŸเดพเด•เตเด•เดพเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดพเดฃเต เดจเดฒเตเดฒเดคเต!

เดจเดฐเด•เดคเตเดคเดฟเดจเตเดฑเต† เดเดดเต เดธเตผเด•เตเด•เดฟเดณเตเด•เตพ, เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป, เด‡เตปเดธเตเดฑเตเดฑเดพเดณเต‡เดทเตป เดŽเดจเตเดจเดฟเดตเดฏเตเด•เตเด•เต เดถเต‡เดทเด‚, เดŽเดจเดฟเด•เตเด•เต เดตเตผเด•เตเด•เดฟเด‚เด—เต เดฏเต‚เดŸเตเดŸเดฟเดฒเดฟเดฑเตเดฑเดฟเด•เดณเตเดŸเต† เด’เดฐเต เดชเดพเด•เตเด•เต‡เดœเต เดฒเดญเดฟเดšเตเดšเต. เดžเดพเตป เดŽเดจเตเดฑเต† เดฒเดฟเดจเด•เตเดธเต เด•เดฎเตเดชเตเดฏเต‚เดŸเตเดŸเดฑเดฟเดฒเต‡เด•เตเด•เต USB เดตเดดเดฟ เดฌเต‹เตผเดกเต เด•เดฃเด•เตโ€Œเดฑเตเดฑเต เดšเต†เดฏเตโ€Œเดคเต, เด•เต‚เดŸเดพเดคเต† เดฎเตเด•เดณเดฟเดฒเตเดณเตเดณ เดกเดฏเด—เตเดฐเด‚ เด…เดจเตเดธเดฐเดฟเดšเตเดšเต UART เด•เดฃเด•เตเดฑเตเดฑเตเดšเต†เดฏเตโ€Œเดคเต.
เดนเดพเตผเดกเตโ€Œเดตเต†เดฏเดฑเตเด‚ เดธเต‹เดซเตเดฑเตเดฑเตโ€Œเดตเต†เดฏเตผ เดชเดฟเดถเด•เต เดจเดฟเดฏเดจเตเดคเตเดฐเดฃเดตเตเดฎเดฟเดฒเตเดฒเดพเดคเต† 115200 เดตเต‡เด—เดคเดฏเดฟเตฝ เดžเดพเตป เดŽเดจเตเดฑเต† เดชเตเดฐเดฟเดฏเดชเตเดชเต†เดŸเตเดŸ เดฎเดฟเดจเดฟเด•เต‹เด‚ เดŸเต†เตผเดฎเดฟเดจเตฝ เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเด•เดฏเดพเดฃเต. เดชเดฟเดจเตเดจเต† เดจเดฎเตเด•เตเด•เต เดคเตเดŸเด™เตเด™เดพเด‚.

เดจเดฟเดฐเดตเดงเดฟ เดŽเตฝเดŸเดฟเด‡ เดฎเต‹เดกเดฎเตเด•เดณเดฟเตฝ เด’เดฐเต‡เดธเดฎเดฏเด‚ เดธเตเดชเต€เดกเต เดŸเต†เดธเตเดฑเตเดฑเต

UART เดŸเต†เตผเดฎเดฟเดจเดฒเดฟเตฝ VIM2 เดฒเต‹เดกเตเดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เตพ, เดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เดจเดฟเตผเดคเตเดคเดพเตป เดžเดพเตป เดธเตโ€Œเดชเต†เดฏเตโ€Œเดธเตโ€Œเดฌเดพเตผ เดชเต‹เดฒเตเดณเตเดณ เด’เดฐเต เด•เต€ เด…เดฎเตผเดคเตเดคเตเดจเตเดจเต. เดฒเตˆเตป เดชเตเดฐเดคเตเดฏเด•เตเดทเดชเตเดชเต†เดŸเตเดŸเดคเดฟเดจเต เดถเต‡เดทเด‚

kvim2# 

เดžเดพเตป เด•เดฎเดพเตปเดกเต เดจเตฝเด•เตเดจเตเดจเต:

kvim2# run update

เดžเด™เตเด™เตพ เดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเดจเตเดจ เดนเต‹เดธเตเดฑเตเดฑเดฟเตฝ, เดžเดพเตป เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต:

burn-tool -v aml -b VIM2 -i  VIM2_Ubuntu-server-bionic_Linux-4.9_arm64_EMMC_V20191231.img

เด…เดคเตเดฐเดฏเต‡ เด‰เดณเตเดณเต‚. เดžเดพเตป เดชเดฐเดฟเดถเต‹เดงเดฟเดšเตเดšเต, เดฌเต‹เตผเดกเดฟเตฝ เดฒเดฟเดจเด•เตเดธเต เด‰เดฃเตเดŸเต. เดฒเต‹เด—เดฟเตป/เดชเดพเดธเตโ€Œเดตเต‡เดกเต khadas:khadas.

เด…เดคเดฟเดจเตเดถเต‡เดทเด‚, เดšเดฟเดฒ เดšเต†เดฑเดฟเดฏ เดชเตเดฐเดพเดฐเด‚เดญ เด•เตเดฐเดฎเต€เด•เดฐเดฃเด™เตเด™เตพ. เด•เต‚เดŸเตเดคเตฝ เดœเต‹เดฒเดฟเด•เตพเด•เตเด•เดพเดฏเดฟ, เดžเดพเตป เดธเตเดกเต‹เดฏเตเดŸเต† เดชเดพเดธเตโ€Œเดตเต‡เดกเต เดชเตเดฐเดตเตผเดคเตเดคเดจเดฐเดนเดฟเดคเดฎเดพเด•เตเด•เตเดจเตเดจเต (เด…เดคเต†, เดธเตเดฐเด•เตเดทเดฟเดคเดฎเดฒเตเดฒ, เดŽเดจเตเดจเดพเตฝ เดธเต—เด•เดฐเตเดฏเดชเตเดฐเดฆเดฎเดพเดฃเต).

sudo visudo

เดžเดพเตป เดซเต‹เดฎเดฟเดฒเต‡เด•เตเด•เต เดฒเตˆเตป เดŽเดกเดฟเดฑเตเดฑเต เดšเต†เดฏเตเดคเต เดธเต‡เดตเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต

# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) NOPASSWD: ALL

เด…เดชเตเดชเต‹เตพ เดžเดพเตป เดจเดฟเดฒเดตเดฟเดฒเต† เดฒเตŠเด•เตเด•เต‡เตฝ เดฎเดพเดฑเตเดฑเตเดจเตเดจเต, เด…เด™เตเด™เดจเต† เดธเดฎเดฏเด‚ เดฎเต‹เดธเตเด•เต‹เดฏเดฟเดฒเดพเดฃเต, เด…เดฒเตเดฒเดพเดคเตเดคเดชเด•เตเดทเด‚ เด…เดคเต เด—เตเดฐเต€เตปเดตเดฟเดšเตเดšเดฟเดฒเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚.

sudo timedatectl set-timezone Europe/Moscow

เด…เดฅเดตเดพ

ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime

เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดฌเตเดฆเตเดงเดฟเดฎเตเดŸเตเดŸเต เดคเต‹เดจเตเดจเตเดจเตเดจเตเดตเต†เด™เตเด•เดฟเตฝ, เดˆ เดฌเต‹เตผเดกเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดฐเตเดคเต; เดฑเดพเดธเตโ€Œเดฌเต†เดฑเดฟ เดชเตˆเดฏเดพเดฃเต เดจเดฒเตเดฒเดคเต. เดธเดคเตเดฏเดธเดจเตเดงเดฎเดพเดฏเดฟ.

เดฎเต‹เดกเด‚ Huawei e3372h - 153

เดˆ เดฎเต‹เดกเด‚ เดŽเดจเดฟเด•เตเด•เต เดฐเด•เตเดคเดคเตเดคเดฟเดจเตเดฑเต† เด’เดฐเต เดชเตเดฐเดงเดพเดจ เด‰เดฑเดตเดฟเดŸเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเต, เดตเดพเดธเตเดคเดตเดคเตเดคเดฟเตฝ, เด‡เดคเต เดฎเตเดดเตเดตเตป เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเดฟเดจเตเดฑเต†เดฏเตเด‚ เดคเดŸเดธเตเดธเดฎเดพเดฏเดฟ เดฎเดพเดฑเดฟ. เดชเตŠเดคเตเดตเต‡, เดˆ เด‰เดชเด•เดฐเดฃเด™เตเด™เตพเด•เตเด•เตเดณเตเดณ "เดฎเต‹เดกเด‚" เดŽเดจเตเดจ เดชเต‡เดฐเต เดœเต‹เดฒเดฟเดฏเตเดŸเต† เดธเดคเตเดคเดฏเต† เดชเตเดฐเดคเดฟเดซเดฒเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ: เด‡เดคเตŠเดฐเต เดถเด•เตเดคเดฎเดพเดฏ เดธเด‚เดฏเต‹เดœเดจเดฎเดพเดฃเต, เดˆ เดนเดพเตผเดกเตโ€Œเดตเต†เดฏเดฑเดฟเดจเต เดกเตเดฐเตˆเดตเดฑเตเด•เตพ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ เด’เดฐเต เดธเดฟเดกเดฟ-เดฑเต‹เด‚ เด†เดฃเต†เดจเตเดจเต เดจเดŸเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดธเด‚เดฏเต‹เดœเดฟเดค เด‰เดชเด•เดฐเดฃเด‚ เด‰เดฃเตเดŸเต, เดคเตเดŸเตผเดจเตเดจเต เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เด•เดพเตผเดกเต เดฎเต‹เดกเดฟเดฒเต‡เด•เตเด•เต เดฎเดพเดฑเตเดจเตเดจเต.

เดตเดพเดธเตเดคเตเดตเดฟเดฆเตเดฏเดพเดชเดฐเดฎเดพเดฏเดฟ, เด’เดฐเต เดฒเดฟเดจเด•เตเดธเต เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเดฟเดจเตเดฑเต† เด•เดพเดดเตเดšเดชเตเดชเดพเดŸเดฟเตฝ, เดŽเดฒเตเดฒเดพ เด•เตเดฐเดฎเต€เด•เดฐเดฃเด™เตเด™เตพเด•เตเด•เตเด‚ เดถเต‡เดทเด‚, เด‡เดคเต เด‡เดคเตเดชเต‹เดฒเต† เด•เดพเดฃเดชเตเดชเต†เดŸเตเดจเตเดจเต: เดฎเต‹เดกเด‚ เด•เดฃเด•เตเดฑเตเดฑเตเดšเต†เดฏเตโ€Œเดคเดคเดฟเดจเต เดถเต‡เดทเด‚, เดŽเดจเดฟเด•เตเด•เต เด’เดฐเต eth* เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เด‡เดจเตเดฑเตผเดซเต‡เดธเต เด‰เดฃเตเดŸเต, เด…เดคเต dhcp เดตเดดเดฟ 192.168.8.100 IP เดตเดฟเดฒเดพเดธเดตเตเด‚ เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟ เด—เต‡เดฑเตเดฑเตโ€Œเดตเต‡เดฏเตเด‚ เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต. 192.168.8.1 เด†เดฃเต.

เด’เดชเตเดชเด‚ เดเดฑเตเดฑเดตเตเด‚ เดชเตเดฐเดงเดพเดจเดชเตเดชเต†เดŸเตเดŸ เดจเดฟเดฎเดฟเดทเดตเตเด‚! AT เด•เดฎเดพเตปเดกเตเด•เดณเดพเตฝ เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดจเตเดจ เดฎเต‹เดกเด‚ เดฎเต‹เดกเดฟเตฝ เดˆ เดฎเต‹เดกเด‚ เดฎเต‹เดกเดฒเดฟเดจเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเดฟเดฒเตเดฒ. เดŽเดฒเตเดฒเดพเด‚ เดตเดณเดฐเต† เดฒเดณเดฟเดคเดฎเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚, เด“เดฐเต‹ เดฎเต‹เดกเดฎเดฟเดจเตเด‚ PPP เด•เดฃเด•เตเดทเดจเตเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด•, เดคเตเดŸเตผเดจเตเดจเต เด…เดต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเด•. เดŽเดจเตเดจเดพเตฝ เดŽเดจเตเดฑเต† เด•เดพเดฐเตเดฏเดคเตเดคเดฟเตฝ, "เดธเตเดตเดฏเด‚" (เด•เต‚เดŸเตเดคเตฝ เด•เตƒเดคเตเดฏเดฎเดพเดฏเดฟ เดชเดฑเดžเตเดžเดพเตฝ, udev เดจเดฟเดฏเดฎเด™เตเด™เตพเด•เตเด•เดจเตเดธเตƒเดคเดฎเดพเดฏเดฟ เด’เดฐเต เดฒเดฟเดจเด•เตเดธเต เดกเตˆเดตเตผ), เด’เดฐเต eth เด‡เดจเตเดฑเตผเดซเต‡เดธเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด•เดฏเตเด‚ dhcp เดตเดดเดฟ เด…เดคเดฟเดจเต เด’เดฐเต IP เดตเดฟเดฒเดพเดธเด‚ เดจเตฝเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต.

เด•เต‚เดŸเตเดคเตฝ เด†เดถเดฏเด•เตเด•เตเดดเดชเตเดชเด‚ เด’เดดเดฟเดตเดพเด•เตเด•เดพเตป, "เดฎเต‹เดกเด‚" เดŽเดจเตเดจ เดตเดพเด•เตเด•เต เดฎเดฑเดจเตเดจเต เดจเต†เดฑเตเดฑเตเดตเตผเด•เตเด•เต เด•เดพเตผเดกเตเด‚ เด—เต‡เดฑเตเดฑเตเดตเต‡เดฏเตเด‚ เดชเดฑเดฏเดพเตป เดžเดพเตป เดจเดฟเตผเดฆเตเดฆเต‡เดถเดฟเด•เตเด•เตเดจเตเดจเต, เด•เดพเดฐเดฃเด‚ เดธเดพเดฐเดพเด‚เดถเดคเตเดคเดฟเตฝ, เด’เดฐเต เดชเตเดคเดฟเดฏ เดจเต†เดฑเตเดฑเตเดตเตผเด•เตเด•เต เด•เดพเตผเดกเต เด’เดฐเต เด—เต‡เดฑเตเดฑเตเดตเต‡เดฏเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเต เดชเต‹เดฒเต†เดฏเดพเดฃเต.
เด’เดฐเต เดฎเต‹เดกเด‚ เด‰เดณเตเดณเดชเตเดชเต‹เตพ, เด‡เดคเต เดชเตเดฐเดคเตเดฏเต‡เด• เดชเตเดฐเดถเตเดจเด™เตเด™เดณเตŠเดจเตเดจเตเด‚ เด‰เดฃเตเดŸเดพเด•เตเด•เดฟเดฒเตเดฒ, เดŽเดจเตเดจเดพเตฝ เด’เดจเตเดจเดฟเตฝ เด•เต‚เดŸเตเดคเตฝ เด‰เดณเตเดณเดชเตเดชเต‹เตพ, เด…เดคเดพเดฏเดคเต n-เดชเต€เดธเต, เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เดšเดฟเดคเตเดฐเด‚ เด‰เดฏเตผเดจเตเดจเตเดตเดฐเตเดจเตเดจเต.

เดจเดฟเดฐเดตเดงเดฟ เดŽเตฝเดŸเดฟเด‡ เดฎเต‹เดกเดฎเตเด•เดณเดฟเตฝ เด’เดฐเต‡เดธเดฎเดฏเด‚ เดธเตเดชเต€เดกเต เดŸเต†เดธเตเดฑเตเดฑเต

เด…เดคเดพเดฏเดคเต, n เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เด•เดพเตผเดกเตเด•เตพ, เด’เดฐเต‡ เดเดชเดฟ เดตเดฟเดฒเดพเดธเด‚, เด“เดฐเต‹เดจเตเดจเดฟเดจเตเด‚ เด’เดฐเต‡ เดกเดฟเดซเต‹เตพเดŸเตเดŸเต เด—เต‡เดฑเตเดฑเตโ€Œเดตเต‡. เดŽเดจเตเดจเดพเตฝ เดตเดพเดธเตเดคเดตเดคเตเดคเดฟเตฝ, เด…เดต เด“เดฐเต‹เดจเตเดจเตเด‚ เดธเตเดตเดจเตเดคเด‚ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฑเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต.

เดคเตเดŸเด•เตเด•เดคเตเดคเดฟเตฝ, เดŽเดจเดฟเด•เตเด•เต เด’เดฐเต เดฒเดณเดฟเดคเดฎเดพเดฏ เดชเดฐเดฟเดนเดพเดฐเด‚ เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเตเดจเตเดจเต: ifconfig เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ ip เด•เดฎเดพเตปเดกเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต, เดŽเดฒเตเดฒเดพ เด‡เดจเตเดฑเตผเดซเต‡เดธเตเด•เดณเตเด‚ เด“เดซเดพเด•เตเด•เดฟ เด’เดฐเต†เดฃเตเดฃเด‚ เด“เดฃเดพเด•เตเด•เดฟ เดชเดฐเต€เด•เตเดทเดฟเด•เตเด•เตเด•. เดธเตเดตเดฟเดšเตเดšเดฟเด‚เด—เต เดจเดฟเดฎเดฟเดทเด™เตเด™เดณเดฟเตฝ เดŽเดจเดฟเด•เตเด•เต เด‰เดชเด•เดฐเดฃเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เด•เดฃเด•เตเดฑเตเดฑเตเดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดžเตเดžเดฟเดฒเตเดฒ เดŽเดจเตเดจเดคเตŠเดดเดฟเดšเตเดšเดพเตฝ, เดชเดฐเดฟเดนเดพเดฐเด‚ เดŽเดฒเตเดฒเดพเดตเตผเด•เตเด•เตเด‚ เดจเดฒเตเดฒเดคเดพเดฃเต. เดธเตเดตเดฟเดšเตเดšเดฟเด‚เด—เต เด‡เดŸเดฏเตเด•เตเด•เดฟเดŸเต†เดฏเตเดณเตเดณเดคเตเด‚ เดตเต‡เด—เดคเดฏเตเดณเตเดณเดคเตเดฎเดพเดฏเดคเดฟเดจเดพเตฝ, เดŽเดจเดฟเด•เตเด•เต เด•เดฃเด•เตเดฑเตเดฑเตเดšเต†เดฏเตเดฏเดพเตป เด…เดตเดธเดฐเดฎเดฟเดฒเตเดฒเดพเดฏเดฟเดฐเตเดจเตเดจเต.

เด…เดคเดฟเดจเดพเตฝ, เดฎเต‹เดกเดฎเตเด•เดณเตเดŸเต† เดเดชเดฟ เดตเดฟเดฒเดพเดธเด™เตเด™เตพ เดธเตเดตเดฎเต‡เดงเดฏเดพ เดฎเดพเดฑเตเดฑเตเดจเตเดจเดคเดฟเดจเตเด‚ เดฑเต‚เดŸเตเดŸเดฟเด‚เด—เต เด•เตเดฐเดฎเต€เด•เดฐเดฃเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดŸเตเดฐเดพเดซเดฟเด•เตเด•เต เดกเตเดฐเตˆเดตเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดฎเตเดณเตเดณ เดชเดพเดค เดžเดพเตป เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดคเตเดคเต.

เดจเดฟเดฐเดตเดงเดฟ เดŽเตฝเดŸเดฟเด‡ เดฎเต‹เดกเดฎเตเด•เดณเดฟเตฝ เด’เดฐเต‡เดธเดฎเดฏเด‚ เดธเตเดชเต€เดกเต เดŸเต†เดธเตเดฑเตเดฑเต

เดฎเต‹เดกเดฎเตเด•เดณเตเดฎเดพเดฏเตเดณเตเดณ เดŽเดจเตเดฑเต† เดชเตเดฐเดถเตโ€Œเดจเด™เตเด™เตพ เด‡เดคเต เด…เดตเดธเดพเดจเดฟเดšเตเดšเดฟเดฒเตเดฒ: เดตเตˆเดฆเตเดฏเตเดคเดฟ เดชเตเดฐเดถเตโ€Œเดจเด™เตเด™เดณเตเดŸเต† เด•เดพเดฐเตเดฏเดคเตเดคเดฟเตฝ, เด…เดต เดตเต€เดฃเต, เดฏเตเดŽเดธเตเดฌเดฟ เดนเดฌเดฟเดฒเต‡เด•เตเด•เต เดจเดฒเตเดฒ เดธเตเดฅเดฟเดฐเดคเดฏเตเดณเตเดณ เดชเดตเตผ เดธเดชเตเดฒเตˆ เด†เดตเดถเตเดฏเดฎเดพเดฃเต. เดชเดตเตผ เดจเต‡เดฐเดฟเดŸเตเดŸเต เดนเดฌเดฟเดฒเต‡เด•เตเด•เต เดธเต‹เตพเดกเดฑเดฟเด‚เด—เต เดšเต†เดฏเตเดคเตเด•เตŠเดฃเตเดŸเต เดžเดพเตป เดˆ เดชเตเดฐเดถเตเดจเด‚ เดชเดฐเดฟเดนเดฐเดฟเดšเตเดšเต. เดžเดพเตป เดจเต‡เดฐเดฟเดŸเตเดŸเดคเตเด‚ เดฎเตเดดเตเดตเตป เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเตเด‚ เดจเดถเดฟเดชเตเดชเดฟเดšเตเดšเดคเตเดฎเดพเดฏ เดฎเดฑเตเดฑเตŠเดฐเต เดชเตเดฐเดถเตเดจเด‚: เด‰เดชเด•เดฐเดฃเดคเตเดคเดฟเดจเตเดฑเต† เดฑเต€เดฌเต‚เดŸเตเดŸเต เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดคเดฃเตเดคเตเดค เด†เดฐเด‚เดญเดคเตเดคเดฟเดจเต เดถเต‡เดทเด‚, เดŽเดฒเตเดฒเดพ เดฎเต‹เดกเดฎเตเด•เดณเตเด‚ เด•เดฃเตเดŸเต†เดคเตเดคเดฟเดฏเดฟเดฒเตเดฒ, เดŽเดฒเตเดฒเดพเดฏเตโ€Œเดชเตเดชเต‹เดดเตเด‚ เด…เดฒเตเดฒ, เดŽเดจเตเดคเตเด•เตŠเดฃเตเดŸเดพเดฃเต เด‡เดคเต เดธเด‚เดญเดตเดฟเดšเตเดšเดคเต†เดจเตเดจเตเด‚ เดเดคเต เด…เตฝเด—เต‹เดฐเดฟเดคเด‚ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเดพเดฃเต†เดจเตเดจเตเด‚ เดŽเดจเดฟเด•เตเด•เต เดจเดฟเตผเดฃเตเดฃเดฏเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดžเตเดžเดฟเดฒเตเดฒ. เดŽเดจเตเดจเดพเตฝ เด†เดฆเตเดฏเด‚ เด•เดพเดฐเตเดฏเด™เตเด™เตพ เด†เดฆเตเดฏเด‚.

เดฎเต‹เดกเด‚ เดถเดฐเดฟเดฏเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, เดžเดพเตป usb-modeswitch เดชเดพเด•เตเด•เต‡เดœเต เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดคเต.

sudo apt update
sudo apt install -y usb-modeswitch

เด…เดคเดฟเดจเตเดถเต‡เดทเด‚, เด•เดฃเด•เตเดฑเตเดฑเตเดšเต†เดฏเตโ€Œเดคเดคเดฟเดจเตเดถเต‡เดทเด‚, เดฎเต‹เดกเด‚ เดถเดฐเดฟเดฏเดพเดฏเดฟ เด•เดฃเตเดŸเต†เดคเตเดคเตเด•เดฏเตเด‚ udev เดธเดฌเตเดธเดฟเดธเตเดฑเตเดฑเด‚ เด•เตเดฐเดฎเต€เด•เดฐเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเด‚. เดฎเต‹เดกเด‚ เด•เดฃเด•เตโ€Œเดฑเตเดฑเต เดšเต†เดฏเตโ€Œเดคเต เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เดฆเตƒเดถเตเดฏเดฎเดพเดฃเต†เดจเตเดจเต เด‰เดฑเดชเตเดชเดพเด•เตเด•เดฟเด•เตเด•เตŠเดฃเตเดŸเต เดžเดพเตป เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเดจเตเดจเต.
เดŽเดจเดฟเด•เตเด•เต เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเดพเดคเตเดค เดฎเดฑเตเดฑเตŠเดฐเต เดชเตเดฐเดถเตเดจเด‚: เดˆ เดฎเต‹เดกเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดžเด™เตเด™เตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฑเตเดŸเต† เดชเต‡เดฐเต เดŽเดจเดฟเด•เตเด•เต เดŽเด™เตเด™เดจเต† เดฒเดญเดฟเด•เตเด•เตเด‚? เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฑเตเดŸเต† เดชเต‡เดฐเต เดฎเต‹เดกเด‚ เดตเต†เดฌเต เด‡เดจเตเดฑเตผเดซเต‡เดธเดฟเตฝ 192.168.8.1-เตฝ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เด…เดœเดพเด•เตเดธเต เด…เดญเตเดฏเตผเดคเตเดฅเดจเด•เดณเดฟเดฒเต‚เดŸเต† เดกเดพเดฑเตเดฑ เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดกเตˆเดจเดพเดฎเดฟเด•เต เดตเต†เดฌเต เดชเต‡เดœเดพเดฃเดฟเดคเต, เด…เดคเดฟเดจเดพเตฝ เดชเต‡เดœเต เดตเต†เดœเดฟเดฑเตเดฑเตเดšเต†เดฏเตเดฏเตเดจเตเดจเดคเตเด‚ เดชเต‡เดฐเต เดชเดพเดดเตโ€Œเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเตเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดฟเดฒเตเดฒ. เด…เด™เตเด™เดจเต† เด’เดฐเต เดตเต†เดฌเต เดชเต‡เดœเต เดŽเด™เตเด™เดจเต† เดกเต†เดตเดฒเดชเตเดชเต เดšเต†เดฏเตเดฏเดพเดฎเต†เดจเตเดจเตเด‚ เดฎเดฑเตเดฑเตเด‚ เดจเต‹เด•เตเด•เดพเตป เดคเตเดŸเด™เตเด™เดฟ, เดžเดพเตป เด’เดฐเตเดคเดฐเด‚ เดตเดฟเดกเตเดขเดฟเดคเตเดคเดฎเดพเดฃเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต†เดจเตเดจเต เดฎเดจเดธเตเดธเดฟเดฒเดพเดฏเดฟ. เดคเตฝเดซเดฒเดฎเดพเดฏเดฟ, เด…เดตเตป เดคเตเดชเตเดชเดฟ, เดธเตเดชเต€เดกเตเดŸเต†เดธเตเดฑเตเดฑเต API เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เดพเตป เดคเตเดŸเด™เตเด™เดฟ.

AT เด•เดฎเดพเตปเดกเตเด•เตพ เดตเดดเดฟ เดฎเต‹เดกเด‚ เด†เด•เตเดธเดธเต เด‰เดฃเตเดŸเต†เด™เตเด•เดฟเตฝ เดตเดณเดฐเต† เดŽเดณเตเดชเตเดชเดฎเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚. เด‡เดคเต เดตเต€เดฃเตเดŸเตเด‚ เด•เตเดฐเดฎเต€เด•เดฐเดฟเด•เตเด•เดพเดจเตเด‚ เด’เดฐเต เดชเดฟเดชเดฟเดชเดฟ เด•เดฃเด•เตเดทเตป เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเดจเตเด‚ เด’เดฐเต เดเดชเดฟ เดจเตฝเด•เดพเดจเตเด‚ เดŸเต†เดฒเดฟเด•เต‹เด‚ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เดจเต‡เดŸเดพเดจเตเด‚ เด•เดดเดฟเดฏเตเด‚. เดชเด•เตเดทเต‡, เด…เดฏเตเดฏเต‹, เดŽเดจเดฟเด•เตเด•เต เดฒเดญเดฟเดšเตเดšเดคเดฟเตฝ เดžเดพเตป เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต.

เดœเดฟเดชเดฟเดŽเดธเต

เดŽเดจเดฟเด•เตเด•เต เดจเตฝเด•เดฟเดฏ GPS เดฑเดฟเดธเต€เดตเดฑเดฟเดจเต UART เด‡เดจเตเดฑเตผเดซเต‡เดธเตเด‚ เดชเดตเดฑเตเด‚ เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเตเดจเตเดจเต. เด‡เดคเต เดฎเดฟเด•เดšเตเดš เดชเดฐเดฟเดนเดพเดฐเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเดฟเดฒเตเดฒ, เดชเด•เตเดทเต‡ เด…เดคเต เด‡เดชเตเดชเต‹เดดเตเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดตเตเด‚ เดฒเดณเดฟเดคเดตเตเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเต. เดฑเดฟเดธเต€เดตเตผ เด‡เดคเตเดชเต‹เดฒเต† เดจเต‹เด•เตเด•เดฟ.

เดจเดฟเดฐเดตเดงเดฟ เดŽเตฝเดŸเดฟเด‡ เดฎเต‹เดกเดฎเตเด•เดณเดฟเตฝ เด’เดฐเต‡เดธเดฎเดฏเด‚ เดธเตเดชเต€เดกเต เดŸเต†เดธเตเดฑเตเดฑเต

เดธเดคเตเดฏเด‚ เดชเดฑเดžเตเดžเดพเตฝ, เด‡เดคเต เด’เดฐเต เดœเดฟเดชเดฟเดŽเดธเต เดฑเดฟเดธเต€เดตเดฑเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดคเต เด‡เดคเดพเดฆเตเดฏเดฎเดพเดฃเต, เดชเด•เตเดทเต‡ เดžเดพเตป เดชเตเดฐเดคเต€เด•เตเดทเดฟเดšเตเดšเดคเตเดชเต‹เดฒเต†, เดŽเดฒเตเดฒเดพเด‚ เดตเดณเดฐเต†เด•เตเด•เดพเดฒเด‚ เดฎเตเดฎเตเดชเต เดžเด™เตเด™เตพเด•เตเด•เดพเดฏเดฟ เดšเดฟเดจเตเดคเดฟเดšเตเดšเต. เด…เดคเดฟเดจเดพเตฝ เดžเด™เตเด™เตพ เดฑเต†เดกเดฟเดฎเต†เดฏเตเดกเต เดชเดฐเดฟเดนเดพเดฐเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต.

เด†เดฆเตเดฏเด‚, GPS เด•เดฃเด•เตเดฑเตเดฑเตเดšเต†เดฏเตเดฏเดพเตป เดžเดพเตป uart_AO_B (UART_RX_AO_B, UART_TX_AO_B) เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เตเดจเตเดจเต.

khadas@Khadas:~$ sudo fdtput -t s /dtb.img /serial@c81004e0 status okay

เด…เดคเดฟเดจเตเดถเต‡เดทเด‚, เดžเดพเตป เด“เดชเตเดชเดฑเต‡เดทเดจเตเดฑเต† เดตเดฟเดœเดฏเด‚ เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเดจเตเดจเต.

khadas@Khadas:~$ fdtget /dtb.img /serial@c81004e0 status
okay

เดˆ เด•เดฎเดพเตปเดกเต devtree เด“เตบ เดฆเดฟ เดซเตเดฒเตˆ เดŽเดกเดฟเดฑเตเดฑเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต, เด…เดคเต เดตเดณเดฐเต† เดธเต—เด•เดฐเตเดฏเดชเตเดฐเดฆเดฎเดพเดฃเต.

เดˆ เดชเตเดฐเดตเตผเดคเตเดคเดจเดคเตเดคเดฟเดจเตเดฑเต† เดตเดฟเดœเดฏเดคเตเดคเดฟเดจเต เดถเต‡เดทเด‚, GPS เดกเต†เดฎเตบ เดฑเต€เดฌเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดคเต เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเด•.

khadas@Khadas:~$ sudo reboot

GPS เดกเต†เดฎเตบ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เดžเดพเตป เดŽเดฒเตเดฒเดพเด‚ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เด•เต‚เดŸเตเดคเตฝ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเดพเดฏเดฟ เด‰เดŸเดจเดŸเดฟ เด…เดคเต เดฎเตเดฑเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต.

sudo apt install gpsd gpsd-clients -y
sudo killall gpsd
 
/* GPS daemon stop/disable */
sudo systemctl stop gpsd.socket
sudo systemctl disable gpsd.socket

เด•เตเดฐเดฎเต€เด•เดฐเดฃ เดซเดฏเตฝ เดŽเดกเดฟเดฑเตเดฑเตเดšเต†เดฏเตเดฏเตเดจเตเดจเต.

sudo vim /etc/default/gpsd

เดžเดพเตป GPS เดนเดพเด‚เด—เต เดšเต†เดฏเตเดฏเตเดจเตเดจ UART เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเด•เดฏเดพเดฃเต.

DEVICES="/dev/ttyS4"

เดŽเดจเตเดจเดฟเดŸเตเดŸเต เดžเด™เตเด™เตพ เดŽเดฒเตเดฒเดพเด‚ เด“เดฃเดพเด•เตเด•เดฟ เด†เดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเต.

/* GPS daemon enable/start */
sudo systemctl enable gpsd.socket
sudo systemctl start gpsd.socket

เด…เดคเดฟเดจเตเดถเต‡เดทเด‚, เดžเดพเตป เดœเดฟเดชเดฟเดŽเดธเต เดฌเดจเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต.

เดจเดฟเดฐเดตเดงเดฟ เดŽเตฝเดŸเดฟเด‡ เดฎเต‹เดกเดฎเตเด•เดณเดฟเตฝ เด’เดฐเต‡เดธเดฎเดฏเด‚ เดธเตเดชเต€เดกเต เดŸเต†เดธเตเดฑเตเดฑเต

GPS เดตเดฏเตผ เดŽเดจเตเดฑเต† เด•เตˆเดฏเดฟเดฒเดพเดฃเต, UART เดกเต€เดฌเด—เตเด—เตผ เดตเดฏเดฑเตเด•เตพ เดŽเดจเตเดฑเต† เดตเดฟเดฐเดฒเตเด•เตพเด•เตเด•เต เด•เต€เดดเดฟเตฝ เดฆเตƒเดถเตเดฏเดฎเดพเดฃเต.

เดžเดพเตป gpsmon เดชเตเดฐเต‹เด—เตเดฐเดพเด‚ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต GPS เดชเตเดฐเดตเตผเดคเตเดคเดจเด‚ เดฑเต€เดฌเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต.

เดจเดฟเดฐเดตเดงเดฟ เดŽเตฝเดŸเดฟเด‡ เดฎเต‹เดกเดฎเตเด•เดณเดฟเตฝ เด’เดฐเต‡เดธเดฎเดฏเด‚ เดธเตเดชเต€เดกเต เดŸเต†เดธเตเดฑเตเดฑเต

เดˆ เดธเตเด•เตเดฐเต€เตปเดทเต‹เดŸเตเดŸเดฟเตฝ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‰เดชเด—เตเดฐเดนเด™เตเด™เตพ เด•เดพเดฃเดพเตป เด•เดดเดฟเดฏเดฟเดฒเตเดฒ, เดŽเดจเตเดจเดพเตฝ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดœเดฟเดชเดฟเดŽเดธเต เดฑเดฟเดธเต€เดตเดฑเตเดฎเดพเดฏเตเดณเตเดณ เด†เดถเดฏเดตเดฟเดจเดฟเดฎเดฏเด‚ เด•เดพเดฃเดพเตป เด•เดดเดฟเดฏเตเด‚, เด‡เดคเดฟเดจเตผเดคเตเดฅเด‚ เดŽเดฒเตเดฒเดพเด‚ เดถเดฐเดฟเดฏเดพเดฃเต†เดจเตเดจเดพเดฃเต.

เดชเตˆเดคเตเดคเดฃเดฟเตฝ, เดˆ เดกเต†เดฎเดฃเดฟเดจเตŠเดชเตเดชเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเตป เดžเดพเตป เดจเดฟเดฐเดตเดงเดฟ เด“เดชเตเดทเดจเตเด•เตพ เดชเดฐเต€เด•เตเดทเดฟเดšเตเดšเต, เดชเด•เตเดทเต‡ เดชเตˆเดคเตเดคเตบ 3 เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดถเดฐเดฟเดฏเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เด’เดจเตเดจเดฟเตฝ เดžเดพเตป เดธเตเดฅเดฟเดฐเดคเดพเดฎเดธเดฎเดพเด•เตเด•เดฟ.

เด†เดตเดถเตเดฏเดฎเดพเดฏ เดฒเตˆเดฌเตเดฐเดฑเดฟ เดžเดพเตป เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเดจเตเดจเต.

sudo -H pip3 install gps3 

เดžเดพเตป เดตเตผเด•เตเด•เต เด•เต‹เดกเต เดถเดฟเตฝเดชเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดคเต.

from gps3.agps3threaded import AGPS3mechanism
...

def getPositionData(agps_thread):
	counter = 0;
	while True:
		longitude = agps_thread.data_stream.lon
		latitude = agps_thread.data_stream.lat
		if latitude != 'n/a' and longitude != 'n/a':
			return '{}' .format(longitude), '{}' .format(latitude)
		counter = counter + 1
		print ("Wait gps counter = %d" % counter)
		if counter == 10:
			ErrorMessage("ะžัˆะธะฑะบะฐ GPS ะฟั€ะธะตะผะฝะธะบะฐ!!!")
			return "NA", "NA"
		time.sleep(1.0)
...
f __name__ == '__main__':
...
	#gps
	agps_thread = AGPS3mechanism()  # Instantiate AGPS3 Mechanisms
	agps_thread.stream_data()  # From localhost (), or other hosts, by example, (host='gps.ddns.net')
	agps_thread.run_thread()  # Throttle time to sleep after an empty lookup, default '()' 0.2 two tenths of a second

เดŽเดจเดฟเด•เตเด•เต เด•เต‹เตผเดกเดฟเดจเต‡เดฑเตเดฑเตเด•เตพ เดฒเดญเดฟเด•เตเด•เดฃเดฎเต†เด™เตเด•เดฟเตฝ, เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เด•เต‹เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเดพเดฃเต เด‡เดคเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต:

longitude, latitude = getPositionData(agps_thread)

1-10 เดธเต†เด•เตเด•เตปเดกเดฟเดจเตเดณเตเดณเดฟเตฝ เดŽเดจเดฟเด•เตเด•เต เด•เต‹เตผเดกเดฟเดจเต‡เดฑเตเดฑเต เดฒเดญเดฟเด•เตเด•เตเด‚ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด‡เดฒเตเดฒ. เด…เดคเต†, เด•เต‹เตผเดกเดฟเดจเต‡เดฑเตเดฑเตเด•เตพ เดฒเดญเดฟเด•เตเด•เดพเตป เดŽเดจเดฟเด•เตเด•เต เดชเดคเตเดคเต เดถเตเดฐเดฎเด™เตเด™เตพ เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเตเดจเตเดจเต. เด’เดชเตเดฑเตเดฑเดฟเดฎเตฝ เด…เดฒเตเดฒ, เดตเดณเดžเตเดžเดคเตเด‚ เดตเด•เตเดฐเดตเตเดฎเดพเดฃเต, เดชเด•เตเดทเต‡ เด‡เดคเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต. GPS เดจเต เดฎเต‹เดถเด‚ เดธเตเดตเต€เด•เดฐเดฃเด‚ เดฒเดญเดฟเด•เตเด•เตเดฎเต†เดจเตเดจเดคเดฟเดจเดพเดฒเตเด‚ เดŽเดฒเตเดฒเดพเดฏเตเดชเตเดชเต‹เดดเตเด‚ เดกเดพเดฑเตเดฑ เดฒเดญเดฟเด•เตเด•เดพเดคเตเดคเดคเดฟเดจเดพเดฒเตเด‚ เดžเดพเตป เด‡เดคเต เดšเต†เดฏเตเดฏเดพเตป เดคเต€เดฐเตเดฎเดพเดจเดฟเดšเตเดšเต. เดกเดพเดฑเตเดฑ เดฒเดญเดฟเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เตพ เด•เดพเดคเตเดคเดฟเดฐเดฟเด•เตเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เดจเดฟเด™เตเด™เตพ เด’เดฐเต เดตเดฟเดฆเต‚เดฐ เดฎเตเดฑเดฟเดฏเดฟเตฝ เดœเต‹เดฒเดฟ เดšเต†เดฏเตเดฏเตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เดˆ เดธเตเดฅเดฒเดคเตเดคเต เดชเตเดฐเต‹เด—เตเดฐเดพเด‚ เดฎเดฐเดตเดฟเดชเตเดชเดฟเด•เตเด•เตเด‚. เด…เดคเดฟเดจเดพเตฝ, เดžเดพเตป เดˆ เด…เดธเดพเดงเดพเดฐเดฃเดฎเดพเดฏ เด“เดชเตเดทเตป เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดฟ.

เดคเดคเตเดตเดคเตเดคเดฟเตฝ, เด•เต‚เดŸเตเดคเตฝ เดธเดฎเดฏเดฎเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, UART เดตเดดเดฟ เดœเดฟเดชเดฟเดŽเดธเดฟเตฝ เดจเดฟเดจเตเดจเต เดจเต‡เดฐเดฟเดŸเตเดŸเต เดกเดพเดฑเตเดฑ เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เดพเดจเตเด‚ เดชเตเดฐเดคเตเดฏเต‡เด• เดคเตเดฐเต†เดกเดฟเตฝ เดชเดพเดดเตเดธเต เดšเต†เดฏเตเดฏเดพเดจเตเด‚ เด…เดคเตเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเดจเตเด‚ เดธเดพเดงเดฟเด•เตเด•เตเด‚. เดŽเดจเตเดจเดพเตฝ เดธเดฎเดฏเดฎเดฟเดฒเตเดฒ, เด…เดคเดฟเดจเดพเตฝ เด•เตเดฐเต‚เดฐเดฎเดพเดฏ เดตเตƒเดคเตเดคเดฟเด•เต†เดŸเตเดŸ เด•เต‹เดกเต. เด…เดคเต†, เดŽเดจเดฟเด•เตเด•เต เดจเดพเดฃเดฎเดฟเดฒเตเดฒ.

เดŽเตฝเด‡เดกเดฟ

เดŽเตฝเด‡เดกเดฟ เด•เดฃเด•เตเดฑเตเดฑเตเดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เด’เดฐเต‡ เดธเดฎเดฏเด‚ เดฒเดณเดฟเดคเดตเตเด‚ เดฌเตเดฆเตเดงเดฟเดฎเตเดŸเตเดŸเตเดณเตเดณเดคเตเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเต. เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเดฒเต† เดชเดฟเตป เดจเดฎเตเดชเตผ เดฌเต‹เตผเดกเดฟเดฒเต† เดชเดฟเตป เดจเดฎเตเดชเดฑเตเดฎเดพเดฏเดฟ เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเดพเดคเตเดคเดคเตเด‚ เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเตป เด‡เดŸเดคเตเดตเดถเดคเตเดคเต เดŽเดดเตเดคเดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเตเดฎเดพเดฃเต เดชเตเดฐเดงเดพเดจ เดฌเตเดฆเตเดงเดฟเดฎเตเดŸเตเดŸเต. OS-เดฒเต† เดนเดพเตผเดกเตโ€Œเดตเต†เดฏเตผ เดชเดฟเตป เดจเดฎเตเดชเดฑเตเด‚ เดชเดฟเตป เดจเดฎเตเดชเดฑเตเด‚ เดคเดพเดฐเดคเดฎเตเดฏเด‚ เดšเต†เดฏเตเดฏเดพเตป, เดจเดฟเด™เตเด™เตพ เด•เดฎเดพเตปเดกเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต:

gpio readall

เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเดฒเตเด‚ เดฌเต‹เตผเดกเดฟเดฒเตเด‚ เดชเดฟเตป เด•เดคเตเดคเดฟเดŸเดชเดพเดŸเตเด•เดณเตเดŸเต† เด’เดฐเต เดชเดŸเตเดŸเดฟเด• เดชเตเดฐเดฆเตผเดถเดฟเดชเตเดชเดฟเด•เตเด•เตเด‚. เด…เดคเดฟเดจเตเดถเต‡เดทเด‚ เดŽเดจเดฟเด•เตเด•เต เด‡เดคเดฟเดจเด•เด‚ เดคเดจเตเดจเต† OS-เตฝ เดคเดจเตเดจเต† เดชเดฟเตป เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚. เดŽเดจเตเดฑเต† เด•เดพเดฐเตเดฏเดคเตเดคเดฟเตฝ เดŽเตฝเด‡เดกเดฟ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต GPIOH_5.

เดจเดฟเดฐเดตเดงเดฟ เดŽเตฝเดŸเดฟเด‡ เดฎเต‹เดกเดฎเตเด•เดณเดฟเตฝ เด’เดฐเต‡เดธเดฎเดฏเด‚ เดธเตเดชเต€เดกเต เดŸเต†เดธเตเดฑเตเดฑเต

เดžเดพเตป GPIO เดชเดฟเตป เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดฎเต‹เดกเดฟเดฒเต‡เด•เตเด•เต เดฎเดพเดฑเตเดฑเตเดจเตเดจเต.

gpio -g mode 421 out

เดžเดพเตป เดชเต‚เดœเตเดฏเด‚ เดŽเดดเตเดคเตเดจเตเดจเต.

gpio -g write 421 0

เดžเดพเตป เด’เดจเตเดจเต เดŽเดดเตเดคเตเดจเตเดจเต.

gpio -g write 421 1

เดจเดฟเดฐเดตเดงเดฟ เดŽเตฝเดŸเดฟเด‡ เดฎเต‹เดกเดฎเตเด•เดณเดฟเตฝ เด’เดฐเต‡เดธเดฎเดฏเด‚ เดธเตเดชเต€เดกเต เดŸเต†เดธเตเดฑเตเดฑเต
"1" เดŽเดจเตเดจเต†เดดเตเดคเดฟเดฏ เดถเต‡เดทเด‚ เดŽเดฒเตเดฒเดพเด‚ เด•เดคเตเดคเดฟเดšเตเดšเต

#gpio subsistem
def gpio_init():
	os.system("gpio -g mode 421 out")
	os.system("gpio -g write 421 1")

def gpio_set(val):
	os.system("gpio -g write 421 %d" % val)
	
def error_blink():
	gpio_set(0)
	time.sleep(0.1)
	gpio_set(1)
	time.sleep(0.1)
	gpio_set(0)
	time.sleep(0.1)
	gpio_set(1)
	time.sleep(0.1)
	gpio_set(0)
	time.sleep(1.0)
	gpio_set(1)

def good_blink():
	gpio_set(1)

เด‡เดชเตเดชเต‹เตพ, เดชเดฟเดถเด•เตเด•เดณเตเดŸเต† เด•เดพเดฐเตเดฏเดคเตเดคเดฟเตฝ, เดžเดพเตป error_blink() เดŽเดจเตเดจเต เดตเดฟเดณเดฟเด•เตเด•เตเดจเตเดจเต, LED เดฎเดจเต‹เดนเดฐเดฎเดพเดฏเดฟ เดฎเดฟเดจเตเดจเดฟเดฎเดฑเดฏเตเด‚.

เดธเต‹เดซเตเดฑเตเดฑเตเดตเต†เดฏเตผ เดจเต‹เดกเตเด•เตพ

เดธเตเดชเต€เดกเต เดŸเต†เดธเตเดฑเตเดฑเต API

speedtest.net เดธเต‡เดตเดจเดคเตเดคเดฟเดจเต เด…เดคเดฟเดจเตเดฑเต‡เดคเดพเดฏ เดชเตˆเดคเตเดคเตบ-เดŽเดชเดฟเด เด‰เดฃเตเดŸเต†เดจเตเดจเดคเต เดตเดฒเดฟเดฏ เดธเดจเตเดคเต‹เดทเดฎเดพเดฃเต, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดจเต‹เด•เตเด•เดพเด‚ เดธเดพเดฎเต‚เดนเดฟเด•เด‚.

เด•เดพเดฃเดพเดตเตเดจเตเดจ เดธเต‹เดดเตเดธเต เด•เต‹เดกเตเด•เตพ เด‰เดฃเตเดŸเต เดŽเดจเตเดจเดคเดพเดฃเต เดจเดฒเตเดฒ เด•เดพเดฐเตเดฏเด‚. เดˆ API เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดŽเด™เตเด™เดจเต† เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเด‚ (เดฒเดณเดฟเดคเดฎเดพเดฏ เด‰เดฆเดพเดนเดฐเดฃเด™เตเด™เตพ) เด‡เดคเดฟเตฝ เด•เดพเดฃเดพเด‚ เดชเตเดฐเดธเด•เตเดคเดฎเดพเดฏ เดตเดฟเดญเดพเด—เด‚.

เดคเดพเดดเต† เดชเดฑเดฏเตเดจเตเดจ เด•เดฎเดพเตปเดกเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดžเดพเตป เดชเตˆเดคเตเดคเตบ เดฒเตˆเดฌเตเดฐเดฑเดฟ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเดจเตเดจเต.

sudo -H pip3 install speedtest-cli

เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดธเต‹เดซเตโ€Œเดฑเตเดฑเตโ€Œเดตเต†เดฏเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต เดจเต‡เดฐเดฟเดŸเตเดŸเต เด‰เดฌเตเดฃเตเดŸเตเดตเดฟเตฝ เด’เดฐเต เดธเตเดชเต€เดกเต เดŸเต†เดธเตเดฑเตเดฑเตผ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเดพเด‚. เด‡เดคเต เด…เดคเต‡ เดชเตˆเดคเตเดคเตบ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเดพเดฃเต, เดชเดฟเดจเตเดจเต€เดŸเต เด•เตบเดธเต‹เดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดจเต‡เดฐเดฟเดŸเตเดŸเต เดฒเต‹เดžเตเดšเต เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚.

sudo apt install speedtest-cli -y

เดจเดฟเด™เตเด™เดณเตเดŸเต† เด‡เดจเตเดฑเตผเดจเต†เดฑเตเดฑเต เดตเต‡เด—เดค เด…เดณเด•เตเด•เตเด•.

speedtest-cli
Retrieving speedtest.net configuration...
Testing from B***** (*.*.*.*)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by MTS (Moscow) [0.12 km]: 11.8 ms
Testing download speed................................................................................
Download: 7.10 Mbit/s
Testing upload speed......................................................................................................
Upload: 3.86 Mbit/s

เดคเตฝเดซเดฒเดฎเดพเดฏเดฟ, เดžเดพเตป เดšเต†เดฏเตเดคเดคเตเดชเต‹เดฒเต†. เดˆ เดธเตเดชเต€เดกเต เดŸเต†เดธเตเดฑเตเดฑเดฟเดจเตเดฑเต† เดธเต‹เดดเตเดธเต เด•เต‹เดกเตเด•เตพ เดŽเดจเตเดฑเต† เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเดฟเดฒเต‡เด•เตเด•เต เด•เต‚เดŸเตเดคเตฝ เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏเดฟ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดพเตป เดŽเดจเดฟเด•เตเด•เต เด…เดตเดฏเดฟเตฝ เดชเตเดฐเดตเต‡เดถเดฟเด•เตเด•เต‡เดฃเตเดŸเดฟ เดตเดจเตเดจเต. เดŸเต†เดฒเดฟเด•เต‹เด‚ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฑเตเดŸเต† เดชเต‡เดฐเต เดชเตเดฒเต‡เดฑเตเดฑเดฟเดฒเต‡เด•เตเด•เต เดฎเดพเดฑเตเดฑเดฟ เดธเตเดฅเดพเดชเดฟเด•เตเด•เตเด• เดŽเดจเตเดจเดคเดพเดฃเต เดเดฑเตเดฑเดตเตเด‚ เดชเตเดฐเดงเดพเดจเดชเตเดชเต†เดŸเตเดŸ เดœเต‹เดฒเดฟเด•เดณเดฟเดฒเตŠเดจเตเดจเต.

import speedtest
from datetime import datetime
...
#ะฃะบะฐะทั‹ะฒะฐะตะผ ะบะพะฝะบั€ะตั‚ะฝั‹ะน ัะตั€ะฒะตั€ ะดะปั ั‚ะตัั‚ะฐ
#6053) MaximaTelecom (Moscow, Russian Federation)
servers = ["6053"]
# If you want to use a single threaded test
threads = None
s = speedtest.Speedtest()
#ะฟะพะปัƒั‡ะฐะตะผ ะธะผั ะพะฟะตั€ะฐั‚ะพั€ะฐ ัะพั‚ะพะฒะพะน ัะฒัะทะธ
opos = '%(isp)s' % s.config['client']
s.get_servers(servers)
#ะฟะพะปัƒั‡ะฐะตะผ ั‚ะตะบัั‚ะพะฒัƒัŽ ัั‚ั€ะพะบัƒ ั ะฟะฐั€ะฐะผะตั‚ั€ะฐะผะธ ัะตั€ะฒะตั€ะฐ
testserver = '%(sponsor)s (%(name)s) [%(d)0.2f km]: %(latency)s ms' % s.results.server
#ั‚ะตัั‚ ะทะฐะณั€ัƒะทะบะธ
s.download(threads=threads)
#ั‚ะตัั‚ ะฒั‹ะณั€ัƒะทะบะธ
s.upload(threads=threads)
#ะฟะพะปัƒั‡ะฐะตะผ ั€ะตะทัƒะปัŒั‚ะฐั‚ั‹
s.results.share()

#ะŸะพัะปะต ั‡ะตะณะพ ั„ะพั€ะผะธั€ัƒะตั‚ัั ัั‚ั€ะพะบะฐ ะดะปั ะทะฐะฟะธัะธ ะฒ csv-ั„ะฐะนะป.
#ะฟะพะปัƒั‡ะฐะตะผ ะฟะพะทะธั†ะธัŽ GPS
longitude, latitude = getPositionData(agps_thread)
#ะฒั€ะตะผั ะธ ะดะฐั‚ะฐ
curdata = datetime.now().strftime('%d.%m.%Y')
curtime = datetime.now().strftime('%H:%M:%S')
delimiter = ';'
result_string = opos + delimiter + str(curpos) + delimiter + 
	curdata + delimiter + curtime + delimiter + longitude + ', ' + latitude + delimiter + 
	str(s.results.download/1000.0/1000.0) + delimiter + str(s.results.upload / 1000.0 / 1000.0) + 
	delimiter + str(s.results.ping) + delimiter + testserver + "n"
#ั‚ัƒั‚ ะธะดะตั‚ ะทะฐะฟะธััŒ ะฒ ั„ะฐะนะป ะปะพะณะพะฒ

เด‡เดตเดฟเดŸเต†เดฏเตเด‚, เดŽเดฒเตเดฒเดพเด‚ เดตเดณเดฐเต† เดฒเดณเดฟเดคเดฎเดฒเตเดฒเต†เดจเตเดจเต เดคเต‹เดจเตเดจเตเดจเตเดจเต, เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚ เด‡เดคเต เดตเดณเดฐเต† เดฒเดณเดฟเดคเดฎเดพเดฃเต†เดจเตเดจเต เดคเต‹เดจเตเดจเตเดจเตเดจเต. เดคเตเดŸเด•เตเด•เดคเตเดคเดฟเตฝ, เดธเต†เตผเดตเดฑเตเด•เตพ เดชเดฐเดพเดฎเต€เดฑเตเดฑเตผ เดคเตเดฒเตเดฏเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเต [], เด…เดตเตผ เดชเดฑเดฏเตเดจเตเดจเต, เดฎเดฟเด•เดšเตเดš เดธเต†เตผเดตเตผ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตเด•. เดคเตฝเดซเดฒเดฎเดพเดฏเดฟ, เดŽเดจเดฟเด•เตเด•เต เด•เตเดฐเดฎเดฐเดนเดฟเดคเดฎเดพเดฏ เดธเต†เตผเดตเดฑเตเด•เตพ เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเตเดจเตเดจเต, เดจเดฟเด™เตเด™เตพ เดŠเดนเดฟเด•เตเด•เตเดจเตเดจเดคเตเดชเต‹เดฒเต†, เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เดตเต‡เด—เดค. เด‡เดคเตŠเดฐเต เดธเด™เตเด•เต€เตผเดฃเตเดฃเดฎเดพเดฏ เดตเดฟเดทเดฏเดฎเดพเดฃเต, เด’เดฐเต เดจเดฟเดถเตเดšเดฟเดค เดธเต†เตผเดตเตผ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดฟเด•เต เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดกเตˆเดจเดพเดฎเดฟเด•เต, เด—เดตเต‡เดทเดฃเด‚ เด†เดตเดถเตเดฏเดฎเดพเดฃเต. เดŽเดจเตเดจเดพเตฝ เด’เดฐเต เดŸเต†เดธเตเดฑเตเดฑเต เดธเต†เตผเดตเดฑเตเด‚ เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดฟเด•เตเด•เดฒเดฟ เดซเดฟเด•เตเดธเดกเต เดธเต†เตผเดตเดฑเตเด‚ เดกเตˆเดจเดพเดฎเดฟเด•เต เด†เดฏเดฟ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตเดฎเตเดชเต‹เตพ เดฌเต€เดฒเตˆเตป เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผเด•เตเด•เตเดณเตเดณ เดธเตเดชเต€เดกเต เดฎเต†เดทเตผเดฎเต†เดจเตเดฑเต เด—เตเดฐเดพเดซเตเด•เดณเตเดŸเต† เด’เดฐเต เด‰เดฆเดพเดนเดฐเดฃเด‚ เด‡เดคเดพ.

เดจเดฟเดฐเดตเดงเดฟ เดŽเตฝเดŸเดฟเด‡ เดฎเต‹เดกเดฎเตเด•เดณเดฟเตฝ เด’เดฐเต‡เดธเดฎเดฏเด‚ เดธเตเดชเต€เดกเต เดŸเต†เดธเตเดฑเตเดฑเต
เด’เดฐเต เดกเตˆเดจเดพเดฎเดฟเด•เต เดธเต†เตผเดตเตผ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตเดฎเตเดชเต‹เตพ เดตเต‡เด—เดค เด…เดณเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดฑเต† เดซเดฒเด‚.

เดจเดฟเดฐเดตเดงเดฟ เดŽเตฝเดŸเดฟเด‡ เดฎเต‹เดกเดฎเตเด•เดณเดฟเตฝ เด’เดฐเต‡เดธเดฎเดฏเด‚ เดธเตเดชเต€เดกเต เดŸเต†เดธเตเดฑเตเดฑเต
เดธเตเดชเต€เดกเต เดŸเต†เดธเตเดฑเตเดฑเดฟเด‚เด—เดฟเดจเตเดฑเต† เดซเดฒเด‚, เด’เดฐเต เด•เตผเดถเดจเดฎเดพเดฏเดฟ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดคเตเดค เด’เดฐเต เดธเต†เตผเดตเตผ.

เดŸเต†เดธเตเดฑเตเดฑเดฟเด‚เด—เต เดธเดฎเดฏเดคเตเดคเต, เดฐเดฃเตเดŸเต เดธเตเดฅเดฒเด™เตเด™เดณเดฟเดฒเตเด‚ "เดฐเต‹เดฎเด™เตเด™เตพ" เด‰เดฃเตเดŸเต, เด…เดคเต เด—เดฃเดฟเดคเดถเดพเดธเตเดคเตเดฐ เดฐเต€เดคเดฟเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดจเต€เด•เตเด•เด‚ เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต. เดŽเดจเตเดจเดพเตฝ เด’เดฐเต เดจเดฟเดถเตเดšเดฟเดค เดธเต†เตผเดตเดฑเดฟเตฝ เด‡เดคเต เด…เตฝเดชเตเดชเด‚ เด•เตเดฑเดตเตเด‚ เด†เด‚เดชเตเดฒเดฟเดฑเตเดฑเตเดฏเต‚เดกเต เด•เต‚เดŸเตเดคเตฝ เดธเตเดฅเดฟเดฐเดคเดฏเตเดณเตเดณเดคเตเดฎเดพเดฃเต.
เดชเตŠเดคเตเดตเต‡, เด‡เดคเตŠเดฐเต เดตเดฒเดฟเดฏ เด—เดตเต‡เดทเดฃ เดธเตเดฅเดฒเดฎเดพเดฃเต. เด•เต‚เดŸเดพเดคเต† iperf เดฏเต‚เดŸเตเดŸเดฟเดฒเดฟเดฑเตเดฑเดฟ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดžเดพเตป เดŽเดจเตเดฑเต† เดธเต†เตผเดตเดฑเดฟเดจเตเดฑเต† เดตเต‡เด—เดค เด…เดณเด•เตเด•เตเด‚. เดŽเดจเตเดจเดพเตฝ เดžเด™เตเด™เตพ เดธเดพเด™เตเด•เต‡เดคเดฟเด• เดธเดตเดฟเดถเต‡เดทเดคเด•เดณเดฟเตฝ เด‰เดฑเดšเตเดšเตเดจเดฟเตฝเด•เตเด•เตเดจเตเดจเต.

เดฎเต†เดฏเดฟเดฒเตเด•เดณเตเด‚ เดชเดฟเดถเด•เตเด•เดณเตเด‚ เด…เดฏเดฏเตเด•เตเด•เตเดจเตเดจเต

เดฎเต†เดฏเดฟเตฝ เด…เดฏเดฏเตโ€Œเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, เดžเดพเตป เดจเดฟเดฐเดตเดงเดฟ เดกเดธเตป เดตเตเดฏเดคเตเดฏเดธเตเดค เด“เดชเตเดทเดจเตเด•เตพ เดชเดฐเต€เด•เตเดทเดฟเดšเตเดšเต, เดชเด•เตเดทเต‡ เด…เดตเดธเดพเดจเด‚ เดžเดพเตป เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจเดคเดฟเตฝ เดธเตเดฅเดฟเดฐเดคเดพเดฎเดธเดฎเดพเด•เตเด•เดฟ. เดžเดพเตป Yandex-เตฝ เด’เดฐเต เดฎเต†เดฏเดฟเตฝเดฌเต‹เด•เตเดธเต เดฐเดœเดฟเดธเตเดฑเตเดฑเตผ เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดคเตเดŸเตผเดจเตเดจเต เดŽเดŸเตเดคเตเดคเต เดฎเต†เดฏเดฟเตฝ เด…เดฏเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด’เดฐเต เด‰เดฆเดพเดนเดฐเดฃเดฎเดพเดฃเดฟเดคเต. เดžเดพเตป เด…เดคเต เดชเดฐเดฟเดถเต‹เดงเดฟเดšเตเดšเต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเตฝ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดฟ. เดˆ เด‰เดฆเดพเดนเดฐเดฃเด‚ เดœเดฟเดฎเต†เดฏเดฟเดฒเดฟเตฝ เดจเดฟเดจเตเดจเต เด…เดฏเดฏเตเด•เตเด•เตเดจเตเดจเดคเต เด‰เตพเดชเตเดชเต†เดŸเต† เดตเดฟเดตเดฟเดง เด“เดชเตเดทเดจเตเด•เตพ เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเดจเตเดจเต. เดŽเดจเตเดฑเต† เดฎเต†เดฏเดฟเตฝ เดธเต†เตผเดตเตผ เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเตฝ เดžเดพเตป เดตเดฟเดทเดฎเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเดฟเดฒเตเดฒ, เด…เดคเดฟเดจเต เดธเดฎเดฏเดฎเดฟเดฒเตเดฒเดพเดฏเดฟเดฐเตเดจเตเดจเต, เดชเด•เตเดทเต‡ เดชเดฟเดจเตเดจเต€เดŸเต เด…เดคเต เดตเตเดฏเตผเดคเตเดฅเดฎเดพเดฏเดฟ.

เดทเต†เดกเตเดฏเต‚เดณเตผ เด…เดจเตเดธเดฐเดฟเดšเตเดšเต เดฒเต‹เด—เตเด•เตพ เด…เดฏเดšเตเดšเต, เด’เดฐเต เด•เดฃเด•เตเดทเตป เด‰เดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เด“เดฐเต‹ 6 เดฎเดฃเดฟเด•เตเด•เต‚เดฑเดฟเดฒเตเด‚: 00 เดฎเดฃเดฟเด•เตเด•เต, 06 เดฎเดฃเดฟเด•เตเด•เต, 12 เดฎเดฃเดฟเด•เตเด•เต, 18 เดฎเดฃเดฟเด•เตเด•เต. เด‡เดชเตเดฐเด•เดพเดฐเด‚ เด…เดฏเดšเตเดšเต.

from send_email import *
...
message_log = "ะ›ะพะณะธ ั‚ะตัั‚ะธั€ะพะฒะฐะฝะธั ะฟะปะฐั‚ั‹ โ„–1"
EmailForSend = ["[email protected]", "[email protected]"]
files = ["/home/khadas/modems_speedtest/csv"]
...
def sendLogs():
	global EmailForSend
	curdata = datetime.now().strftime('%d.%m.%Y')
	ัurtime = datetime.now().strftime('%H:%M:%S')
	try:
		for addr_to in EmailForSend:
			send_email(addr_to, message_log, "ะ›ะพะณะธ ะทะฐ " + curdata + " " + ัurtime, files)
	except:
		print("Network problem for send mail")
		return False
	return True

เดชเดฟเดถเด•เตเด•เดณเตเด‚ เดคเตเดŸเด•เตเด•เดคเตเดคเดฟเตฝ เด…เดฏเดšเตเดšเต. เด†เดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, เด…เดต เดฒเดฟเดธเตเดฑเตเดฑเดฟเตฝ เดถเต‡เด–เดฐเดฟเดšเตเดšเต, เดคเตเดŸเตผเดจเตเดจเต เด’เดฐเต เด•เดฃเด•เตเดทเตป เด‰เดฃเตเดŸเต†เด™เตเด•เดฟเตฝ เดทเต†เดกเตเดฏเต‚เดณเตผ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด…เดฏเดšเตเดšเต. เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เดชเตเดฐเดคเดฟเดฆเดฟเดจเด‚ เด…เดฏเดฏเตโ€Œเด•เตเด•เตเดจเตเดจ เดธเดจเตเดฆเต‡เดถเด™เตเด™เดณเตเดŸเต† เดŽเดฃเตเดฃเดคเตเดคเดฟเตฝ เดฏเดพเตปเดกเต†เด•เตโ€Œเดธเดฟเดจเต เดชเดฐเดฟเดงเดฟเดฏเตเดฃเตเดŸเต†เดจเตเดจ เดตเดธเตเดคเตเดคเดฏเดฟเตฝ เดชเตเดฐเดถเตเดจเด™เตเด™เตพ เด‰เดŸเดฒเต†เดŸเตเดคเตเดคเต (เด‡เดคเต เดตเต‡เดฆเดจเดฏเตเด‚ เดธเด™เตเด•เดŸเดตเตเด‚ เด…เดชเดฎเดพเดจเดตเตเดฎเดพเดฃเต). เด’เดฐเต เดฎเดฟเดจเดฟเดฑเตเดฑเดฟเตฝ เดชเต‹เดฒเตเด‚ เดงเดพเดฐเดพเดณเด‚ เดชเดฟเดถเด•เตเด•เตพ เด‰เดฃเตเดŸเดพเด•เดพเดจเดฟเดŸเดฏเตเดณเตเดณเดคเดฟเดจเดพเตฝ, เดฎเต†เดฏเดฟเตฝ เดตเดดเดฟ เดชเดฟเดถเด•เตเด•เตพ เด…เดฏเดฏเตเด•เตเด•เตเดจเตเดจเดคเต เดžเด™เตเด™เตพ เด‰เดชเต‡เด•เตเดทเดฟเด•เตเด•เต‡เดฃเตเดŸเดฟเดตเดจเตเดจเต. เด…เดคเดฟเดจเดพเตฝ Yandex เดธเต‡เดตเดจเด™เตเด™เดณเดฟเดฒเต‚เดŸเต† เด…เดคเตเดคเดฐเดฎเตŠเดฐเต เดชเตเดฐเดถเตเดจเดคเตเดคเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดตเดฟเดตเดฐเด™เตเด™เตพ เดธเตเดตเดฏเดฎเต‡เดต เด…เดฏเดฏเตเด•เตเด•เตเดฎเตเดชเต‹เตพ เด“เตผเดฎเตเดฎเดฟเด•เตเด•เตเด•.

เดซเต€เดกเตเดฌเดพเด•เตเด•เต เดธเต†เตผเดตเตผ

เด’เดฐเต เดตเดฟเดฆเต‚เดฐ เดนเดพเตผเดกเตโ€Œเดตเต†เดฏเดฑเดฟเดฒเต‡เด•เตเด•เต เด†เด•เตโ€Œเดธเดธเต เดฒเดญเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚ เด…เดคเต เด‡เดทเตโ€ŒเดŸเดพเดจเตเดธเตƒเดคเดฎเดพเด•เตเด•เดพเดจเตเด‚ เดชเตเดจเดƒเด•เตเดฐเดฎเต€เด•เดฐเดฟเด•เตเด•เดพเดจเตเด‚ เด•เดดเดฟเดฏเตเดจเตเดจเดคเดฟเดจเต, เดŽเดจเดฟเด•เตเด•เต เด’เดฐเต เดฌเดพเดนเตเดฏ เดธเต†เตผเดตเตผ เด†เดตเดถเตเดฏเดฎเดพเดฃเต. เดชเตŠเดคเตเดตเดพเดฏเดฟ เดชเดฑเดžเตเดžเดพเตฝ, เดŽเดฒเตเดฒเดพ เดกเดพเดฑเตเดฑเดฏเตเด‚ เดธเต†เตผเดตเดฑเดฟเดฒเต‡เด•เตเด•เต เด…เดฏเดšเตเดšเต เดตเต†เดฌเต เด‡เดจเตเดฑเตผเดซเต‡เดธเดฟเดฒเต† เดŽเดฒเตเดฒเดพ เดฎเดจเต‹เดนเดฐเดฎเดพเดฏ เด—เตเดฐเดพเดซเตเด•เดณเตเด‚ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเดจเตเดจเดคเต เดถเดฐเดฟเดฏเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚. เดŽเดจเตเดจเดพเตฝ เดŽเดฒเตเดฒเดพเด‚ เด’เดฑเตเดฑเดฏเดŸเดฟเด•เตเด•เต เด…เดฒเตเดฒ.

VPS-เดจเดพเดฏเดฟ เดžเดพเตป เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดคเตเดคเต ruvds.com. เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดเดฑเตเดฑเดตเตเด‚ เดฒเดณเดฟเดคเดฎเดพเดฏ เดธเต†เตผเดตเตผ เดŽเดŸเตเด•เตเด•เดพเด‚. เดชเตŠเดคเตเดตเต‡, เดŽเดจเตเดฑเต† เด†เดตเดถเตเดฏเด™เตเด™เตพเด•เตเด•เต เด‡เดคเต เดฎเดคเดฟเดฏเดพเด•เตเด‚. เดชเด•เตเดทเต‡, เดธเต†เตผเดตเดฑเดฟเดจเดพเดฏเดฟ เดŽเดจเตเดฑเต† เดธเตเดตเดจเตเดคเด‚ เดชเต‹เด•เตเด•เดฑเตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต เดชเดฃเด‚ เดจเตฝเด•เดพเดคเตเดคเดคเดฟเดจเดพเตฝ, เด’เดฐเต เดตเต†เดฌเต เด‡เดจเตเดฑเตผเดซเต‡เดธเต, เดžเด™เตเด™เดณเตเดŸเต† เดธเตเดตเดจเตเดคเด‚ เดŽเดธเตเดŽเด‚เดŸเดฟเดชเดฟ เดธเต†เตผเดตเตผ, เดตเดฟเดชเดฟเดŽเตป เดฎเตเดคเดฒเดพเดฏเดต เดตเดฟเดจเตเดฏเดธเดฟเดšเตเดšเดพเตฝ เดฎเดคเดฟเดฏเดพเด•เตเด‚ เดŽเดจเตเดจเดคเดฟเดจเดพเตฝ, เด’เดฐเต เดšเต†เดฑเดฟเดฏ เด•เดฐเตเดคเตฝ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด…เดคเต เดŽเดŸเตเด•เตเด•เดพเตป เดžเดพเตป เดคเต€เดฐเตเดฎเดพเดจเดฟเดšเตเดšเต. เด•เต‚เดŸเดพเดคเต†, เด’เดฐเต เดŸเต†เดฒเดฟเด—เตเดฐเดพเด‚ เดฌเต‹เดŸเตเดŸเต เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เดพเดจเตเด‚ เด…เดคเต เดฌเตเดฒเต‹เด•เตเด•เต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเตฝ เดชเตเดฐเดถเตโ€Œเดจเด™เตเด™เดณเตเดฃเตเดŸเดพเด•เดพเดคเดฟเดฐเดฟเด•เตเด•เดพเดจเตเด‚ เด•เดดเดฟเดฏเตเด‚. เด…เดคเดฟเดจเดพเตฝ, เดžเดพเตป เด†เด‚เดธเตเดฑเตเดฑเตผเดกเดพเดฎเตเด‚ เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เดณเตเด‚ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดคเตเดคเต.

เดจเดฟเดฐเดตเดงเดฟ เดŽเตฝเดŸเดฟเด‡ เดฎเต‹เดกเดฎเตเด•เดณเดฟเตฝ เด’เดฐเต‡เดธเดฎเดฏเด‚ เดธเตเดชเต€เดกเต เดŸเต†เดธเตเดฑเตเดฑเต

เดนเดพเตผเดกเตโ€Œเดตเต†เดฏเดฑเตเดฎเดพเดฏเตเดณเตเดณ เด†เดถเดฏเดตเดฟเดจเดฟเดฎเดฏ เดฐเต€เดคเดฟ เดŽเดจเตเดจ เดจเดฟเดฒเดฏเดฟเตฝ, vim2 เด’เดฐเต เดฑเดฟเดตเต‡เดดเตเดธเต ssh เด•เดฃเด•เตเดทเตป เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดคเตเดคเต, เดชเตเดฐเดพเด•เตเดŸเต€เดธเต เด•เดพเดฃเดฟเด•เตเด•เตเดจเตเดจเดคเต เดชเต‹เดฒเต†, เด…เดคเต เดฎเดฟเด•เดšเตเดšเดคเดฒเตเดฒ. เด•เดฃเด•เตเดทเตป เดจเดทเตโ€ŒเดŸเดชเตเดชเต†เดŸเตเดŸเดพเตฝ, เดธเต†เตผเดตเตผ เดชเต‹เตผเดŸเตเดŸเต เดชเดฟเดŸเดฟเด•เตเด•เตเดจเตเดจเต, เด•เตเดฑเดšเตเดšเต เดธเดฎเดฏเดคเตเดคเต‡เด•เตเด•เต เด…เดคเดฟเดฒเต‚เดŸเต† เด•เดฃเด•เตเดฑเตเดฑเตเดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เด…เดธเดพเดงเตเดฏเดฎเดพเดฃเต. เด…เดคเดฟเดจเดพเตฝ, เดฎเดฑเตเดฑเต เด†เดถเดฏเดตเดฟเดจเดฟเดฎเดฏ เดฐเต€เดคเดฟเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเดพเดฃเต เดจเดฒเตเดฒเดคเต, เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต VPN. เดญเดพเดตเดฟเดฏเดฟเตฝ เดžเดพเตป VPN-เดฒเต‡เด•เตเด•เต เดฎเดพเดฑเดพเตป เด†เด—เตเดฐเดนเดฟเดšเตเดšเต, เดชเด•เตเดทเต‡ เดธเดฎเดฏเดฎเดฟเดฒเตเดฒ.

เด’เดฐเต เดซเดฏเตผเดตเดพเตพ เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเด•, เด…เดตเด•เดพเดถเด™เตเด™เตพ เดชเดฐเดฟเดฎเดฟเดคเดชเตเดชเต†เดŸเตเดคเตเดคเตเด•, เดฑเต‚เดŸเตเดŸเต ssh เด•เดฃเด•เตเดทเดจเตเด•เตพ เดชเตเดฐเดตเตผเดคเตเดคเดจเดฐเดนเดฟเดคเดฎเดพเด•เตเด•เตเด•, เด’เดฐเต VPS เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดฑเต† เดฎเดฑเตเดฑเต เดธเดคเตเดฏเด™เตเด™เตพ เดŽเดจเตเดจเดฟเดตเดฏเตเดŸเต† เดตเดฟเดถเดฆเดพเด‚เดถเด™เตเด™เดณเดฟเดฒเต‡เด•เตเด•เต เดžเดพเตป เดชเต‹เด•เตเดจเตเดจเดฟเดฒเตเดฒ. เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เดคเดฟเดจเด•เด‚ เดŽเดฒเตเดฒเดพเด‚ เด…เดฑเดฟเดฏเดพเดฎเต†เดจเตเดจเต เดตเดฟเดถเตเดตเดธเดฟเด•เตเด•เดพเตป เดžเดพเตป เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเต. เด’เดฐเต เดตเดฟเดฆเต‚เดฐ เด•เดฃเด•เตเดทเดจเดพเดฏเดฟ, เดžเดพเตป เดธเต†เตผเดตเดฑเดฟเตฝ เด’เดฐเต เดชเตเดคเดฟเดฏ เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเดฟเดจเต† เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต.

adduser vimssh

เดžเด™เตเด™เดณเตเดŸเต† เดนเดพเตผเดกเตโ€Œเดตเต†เดฏเดฑเดฟเตฝ เดžเดพเตป ssh เด•เดฃเด•เตเดทเตป เด•เต€เด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต.

ssh-keygen

เดžเดพเตป เด…เดต เดžเด™เตเด™เดณเตเดŸเต† เดธเต†เตผเดตเดฑเดฟเดฒเต‡เด•เตเด•เต เดชเด•เตผเดคเตเดคเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต.

ssh-copy-id [email protected]

เดžเด™เตเด™เดณเตเดŸเต† เดนเดพเตผเดกเตโ€Œเดตเต†เดฏเดฑเดฟเตฝ, เด“เดฐเต‹ เดฌเต‚เดŸเตเดŸเดฟเดฒเตเด‚ เดžเดพเตป เด’เดฐเต เด“เดŸเตเดŸเต‹เดฎเดพเดฑเตเดฑเดฟเด•เต เดฑเดฟเดตเต‡เดดเตเดธเต ssh เด•เดฃเด•เตเดทเตป เด‰เดฃเตเดŸเดพเด•เตเด•เตเดจเตเดจเต.

[Unit] Description=Auto Reverse SSH
Requires=systemd-networkd-wait-online.service
After=systemd-networkd-wait-online.service
[Service] User=khadas
ExecStart=/usr/bin/ssh -NT -o ExitOnForwardFailure=yes -o ServerAliveInterval=60 -CD 8080 -R 8083:localhost:22 [email protected]
RestartSec=5
Restart=always
[Install] WantedBy=multi-user.target

เดชเต‹เตผเดŸเตเดŸเต 8083 เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เตเด•: เดฑเดฟเดตเต‡เดดเตเดธเต ssh เดตเดดเดฟ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เดžเดพเตป เดเดคเต เดชเต‹เตผเดŸเตเดŸเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดฎเต†เดจเตเดจเต เด‡เดคเต เดจเดฟเตผเดฃเตเดฃเดฏเดฟเด•เตเด•เตเดจเตเดจเต. เด‡เดคเต เดธเตเดฑเตเดฑเดพเตผเดŸเตเดŸเดชเตเดชเดฟเดฒเต‡เด•เตเด•เต เดšเต‡เตผเดคเตเดคเต เด†เดฐเด‚เดญเดฟเด•เตเด•เตเด•.

sudo systemctl enable autossh.service
sudo systemctl start autossh.service

เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดธเต เดชเต‹เดฒเตเด‚ เด•เดพเดฃเดพเตป เด•เดดเดฟเดฏเตเด‚:

sudo systemctl status autossh.service

เด‡เดชเตเดชเต‹เตพ, เดžเด™เตเด™เดณเตเดŸเต† VPS เดธเต†เตผเดตเดฑเดฟเตฝ, เดžเด™เตเด™เตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ:

ssh -p 8083 khadas@localhost

เด…เดชเตเดชเต‹เตพ เดžเดพเตป เดŽเดจเตเดฑเต† เดชเดฐเต€เด•เตเดทเดฃ เดนเดพเตผเดกเตโ€Œเดตเต†เดฏเดฑเดฟเดฒเต‡เด•เตเด•เต เดŽเดคเตเดคเตเดจเตเดจเต. เดนเดพเตผเดกเตโ€Œเดตเต†เดฏเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต เดŽเดจเดฟเด•เตเด•เต เดฒเต‹เด—เตเด•เดณเตเด‚ เดเดคเต เดกเดพเดฑเตเดฑเดฏเตเด‚ ssh เดตเดดเดฟ เดŽเดจเตเดฑเต† เดธเต†เตผเดตเดฑเดฟเดฒเต‡เด•เตเด•เต เด…เดฏเดฏเตเด•เตเด•เดพเดจเตเด‚ เด•เดดเดฟเดฏเตเด‚, เด…เดคเต เดตเดณเดฐเต† เดธเต—เด•เดฐเตเดฏเดชเตเดฐเดฆเดฎเดพเดฃเต.

เดŽเดฒเตเดฒเดพเด‚ เด’เดจเตเดจเดฟเดšเตเดšเต เด‡เดŸเตเดŸเต

เดจเดฟเดฐเดตเดงเดฟ เดŽเตฝเดŸเดฟเด‡ เดฎเต‹เดกเดฎเตเด•เดณเดฟเตฝ เด’เดฐเต‡เดธเดฎเดฏเด‚ เดธเตเดชเต€เดกเต เดŸเต†เดธเตเดฑเตเดฑเต
เดธเตเดตเดฟเดšเตเดšเตเดšเต†เดฏเตเดฏเตเดจเตเดจเต, เดจเดฎเตเด•เตเด•เต เดตเดฟเด•เดธเดจเดตเตเด‚ เดกเต€เดฌเด—เตเด—เดฟเด‚เด—เตเด‚ เด†เดฐเด‚เดญเดฟเด•เตเด•เดพเด‚

เด“, เดถเดฐเดฟ, เด…เดคเตเดฐเดฎเดพเดคเตเดฐเด‚, เดžเดพเตป เดŽเดฒเตเดฒเดพ เดจเต‹เดกเตเด•เดณเตเด‚ เดตเดฟเดตเดฐเดฟเดšเตเดšเต. เด‡เดชเตเดชเต‹เตพ เดŽเดฒเตเดฒเดพเด‚ เด’เดฐเตเดฎเดฟเดšเตเดšเต เดšเต‡เตผเด•เตเด•เดพเดจเตเดณเตเดณ เดธเดฎเดฏเดฎเดพเดฃเต. เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เต‹เดกเต เด•เดพเดฃเดพเด‚ เด‡เดตเดฟเดŸเต† เด‡เดคเดพ.

เด•เต‹เดกเดฟเดจเตŠเดชเตเดชเด‚ เด’เดฐเต เดชเตเดฐเดงเดพเดจ เด•เดพเดฐเตเดฏเด‚: เดˆ เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต เด‡เดคเตเดชเต‹เดฒเต† เด†เดฐเด‚เดญเดฟเด•เตเด•เดฃเดฎเต†เดจเตเดจเดฟเดฒเตเดฒ, เด•เดพเดฐเดฃเด‚ เด‡เดคเต เด’เดฐเต เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเดŸ เดตเดพเดธเตเดคเตเดตเดฟเดฆเตเดฏเดฏเตเดŸเต† เด’เดฐเต เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเดŸ เดŸเดพเดธเตโ€Œเด•เตเด•เดฟเดจเต เด…เดจเตเดฏเต‹เดœเตเดฏเดฎเดพเดฏเดคเดพเดฃเต. เดžเดพเตป เดธเต‹เดดเตโ€Œเดธเต เด•เต‹เดกเต เดจเตฝเด•เตเดจเตเดจเตเดฃเตเดŸเต†เด™เตเด•เดฟเดฒเตเด‚, เดžเดพเตป เด‡เดชเตเดชเต‹เดดเตเด‚ เด‡เดตเดฟเดŸเต† เดเดฑเตเดฑเดตเตเด‚ เดตเดฟเดฒเดชเตเดชเต†เดŸเตเดŸ เด•เดพเดฐเตเดฏเด™เตเด™เตพ เดตเดฟเดถเดฆเต€เด•เดฐเดฟเด•เตเด•เตเด‚, เดตเดพเดšเด•เดคเตเดคเดฟเตฝ เดคเดจเตเดจเต†, เด…เดฒเตเดฒเดพเดคเตเดคเดชเด•เตเดทเด‚ เด…เดคเต เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏเตเด‚ เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด•เดพเตป เด•เดดเดฟเดฏเดฟเดฒเตเดฒ.

เดคเตเดŸเด•เตเด•เดคเตเดคเดฟเตฝ, เดžเดพเตป gps, gpio เดŽเดจเตเดจเดฟเดต เด†เดฐเด‚เดญเดฟเด•เตเด•เตเด•เดฏเตเด‚ เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• เดทเต†เดกเตเดฏเต‚เดณเตผ เดคเตเดฐเต†เดกเต เดธเดฎเดพเดฐเด‚เดญเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต.

#ะทะฐะฟัƒัะบ ะฟะพั‚ะพะบะฐ ะฟะปะฐะฝะธั€ะพะฒั‰ะธะบะฐ
pShedulerThread = threading.Thread(target=ShedulerThread, args=(1,))
pShedulerThread.start()

เดทเต†เดกเตเดฏเต‚เดณเตผ เดตเดณเดฐเต† เดฒเดณเดฟเดคเดฎเดพเดฃเต: เดธเดจเตเดฆเต‡เดถเด™เตเด™เตพ เด…เดฏเดฏเตโ€Œเด•เตเด•เดพเดจเตเดณเตเดณ เดธเดฎเดฏเดฎเดพเดฏเต‹ เดŽเดจเตเดจเตเด‚ เดจเดฟเดฒเดตเดฟเดฒเต† เดชเดฟเดถเด•เต เดจเดฟเดฒ เดŽเดจเตเดคเดพเดฃเต†เดจเตเดจเตเด‚ เดจเต‹เด•เตเด•เตเดจเตเดจเต. เด’เดฐเต เดชเดฟเดถเด•เต เดซเตเดฒเดพเด—เต เด‰เดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เดžเด™เตเด™เตพ LED เดฎเดฟเดจเตเดจเตเดจเตเดจเต.

#sheduler
def ShedulerThread(name):
	global ready_to_send
	while True:
		d = datetime.today()
		time_x = d.strftime('%H:%M')
		if time_x in time_send_csv:
			ready_to_send = True
		if error_status:
			error_blink()
		else:
			good_blink()
		time.sleep(1)

เดˆ เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเดฟเดจเตเดฑเต† เดเดฑเตเดฑเดตเตเด‚ เดฌเตเดฆเตเดงเดฟเดฎเตเดŸเตเดŸเตเดณเตเดณ เดญเดพเด—เด‚ เด“เดฐเต‹ เดŸเต†เดธเตเดฑเตเดฑเดฟเดจเตเด‚ เดฑเดฟเดตเต‡เดดเตเดธเต ssh เด•เดฃเด•เตเดทเตป เดจเดฟเดฒเดจเดฟเตผเดคเตเดคเตเด• เดŽเดจเตเดจเดคเดพเดฃเต. เด“เดฐเต‹ เดŸเต†เดธเตเดฑเตเดฑเดฟเดฒเตเด‚ เดกเดฟเดซเต‹เตพเดŸเตเดŸเต เด—เต‡เดฑเตเดฑเตโ€Œเดตเต‡เดฏเตเด‚ เดกเดฟเดŽเตปเดŽเดธเต เดธเต†เตผเดตเดฑเตเด‚ เดตเต€เดฃเตเดŸเตเด‚ เด•เตเดฐเดฎเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต เด‰เตพเดชเตเดชเต†เดŸเตเดจเตเดจเต. เดŽเดจเตเดคเดพเดฏเดพเดฒเตเด‚ เด†เดฐเตเด‚ เดตเดพเดฏเดฟเด•เตเด•เดพเดคเตเดคเดคเดฟเดจเดพเตฝ, เดฎเดฐเด‚ เดชเดพเดณเดคเตเดคเดฟเตฝ เดตเดฃเตเดŸเดฟ เด•เดฏเดฑเดฟเดฒเตเดฒเต†เดจเตเดจเต เด…เดฑเดฟเดฏเตเด•. เดˆเดธเตเดฑเตเดฑเตผ เดฎเตเดŸเตเดŸ เด•เดฃเตเดŸเต†เดคเตเดคเตเดจเตเดจเดฏเดพเตพเด•เตเด•เต เด•เตเดฑเดšเตเดšเต เดฎเดฟเด เดพเดฏเดฟ เดฒเดญเดฟเด•เตเด•เตเด‚.

เด‡เดคเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เดžเดพเตป เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• เดฑเต‚เดŸเตเดŸเดฟเด‚เด—เต เดŸเต‡เดฌเดฟเตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต -เดธเต†เดฑเตเดฑเต-เดฎเดพเตผเด•เตเด•เต 0x2 เด•เต‚เดŸเดพเดคเต† เดŸเตเดฐเดพเดซเดฟเด•เต เดฑเต€เดกเดฏเดฑเด•เตเดŸเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด’เดฐเต เดจเดฟเดฏเดฎเดตเตเด‚.

def InitRouteForSSH():
	cmd_run("sudo iptables -t mangle -A OUTPUT -p tcp -m tcp --dport 22 -j MARK --set-mark 0x2")
	cmd_run("sudo ip rule add fwmark 0x2/0x2 lookup 102")

เด‡เดคเต เดŽเด™เตเด™เดจเต† เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต เดŽเดจเตเดจเดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เต‚เดŸเตเดคเดฒเดฑเดฟเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚ เดˆ เดฒเต‡เด–เดจเดคเตเดคเดฟเตฝ เดตเดพเดฏเดฟเด•เตเด•เตเด•.

เด…เดคเดฟเดจเตเดถเต‡เดทเด‚ เดžเดพเตป เด…เดจเดจเตเดคเดฎเดพเดฏ เดฒเต‚เดชเตเดชเดฟเดฒเต‡เด•เตเด•เต เดชเต‹เด•เตเดจเตเดจเต, เด…เดตเดฟเดŸเต† เด“เดฐเต‹ เดคเดตเดฃเดฏเตเด‚ เดจเดฎเตเด•เตเด•เต เด•เดฃเด•เตเดฑเตเดฑเตเดšเต†เดฏเตโ€Œเดค เดฎเต‹เดกเดฎเตเด•เดณเตเดŸเต† เด’เดฐเต เดฒเดฟเดธเตเดฑเตเดฑเต เดฒเดญเดฟเด•เตเด•เตเด‚ (เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดชเต†เดŸเตเดŸเต†เดจเตเดจเต เดฎเดพเดฑเดฟเดฏเดฟเดŸเตเดŸเตเดฃเตเดŸเต‹ เดŽเดจเตเดจเต เด•เดฃเตเดŸเต†เดคเตเดคเดพเตป).

network_list = getNetworklist()

เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เด‡เดจเตเดฑเตผเดซเต‡เดธเตเด•เดณเตเดŸเต† เด’เดฐเต เดฒเดฟเดธเตเดฑเตเดฑเต เดฒเดญเดฟเด•เตเด•เตเดจเตเดจเดคเต เดตเดณเดฐเต† เดฒเดณเดฟเดคเดฎเดพเดฃเต.

def getNetworklist():
	full_networklist = os.listdir('/sys/class/net/')
	network_list = [x for x in full_networklist if "eth" in x and x != "eth0"]
	return network_list

เดฒเดฟเดธเตเดฑเตเดฑเต เดฒเดญเดฟเดšเตเดš เดถเต‡เดทเด‚, เดฎเต‹เดกเด‚ เดธเด‚เดฌเดจเตเดงเดฟเดšเตเดš เด…เดงเตเดฏเดพเดฏเดคเตเดคเดฟเดฒเต† เดšเดฟเดคเตเดฐเดคเตเดคเดฟเตฝ เด•เดพเดฃเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเตเดชเต‹เดฒเต†, เดŽเดฒเตเดฒเดพ เด‡เดจเตเดฑเตผเดซเต‡เดธเตเด•เดณเดฟเดฒเต‡เด•เตเด•เตเด‚ เดžเดพเตป IP เดตเดฟเดฒเดพเดธเด™เตเด™เตพ เดธเดœเตเดœเดฎเดพเด•เตเด•เดฟ.

SetIpAllNetwork(network_list)

def SetIpAllNetwork(network_list):
	for iface in network_list:
		lastip = "%d" % (3 + network_list.index(iface))
		cmd_run ("sudo ifconfig " + iface + " 192.168.8." + lastip +" up")

เด…เดชเตเดชเต‹เตพ เดžเดพเตป เด“เดฐเต‹ เด‡เดจเตเดฑเตผเดซเต‡เดธเตเด•เดณเดฟเดฒเต‚เดŸเต†เดฏเตเด‚ เด’เดฐเต เดฒเต‚เดชเตเดชเดฟเดฒเต‚เดŸเต† เด•เดŸเดจเตเดจเตเดชเต‹เด•เตเดจเตเดจเต. เดžเดพเตป เด“เดฐเต‹ เด‡เดจเตเดฑเตผเดซเต‡เดธเตเด‚ เด•เต‹เตบเดซเดฟเด—เตผ เดšเต†เดฏเตเดฏเตเดจเตเดจเต.

	for iface in network_list:
		ConfigNetwork(iface)

def ConfigNetwork(iface):
#ัะฑั€ะฐัั‹ะฒะฐะตะผ ะฒัะต ะฝะฐัั‚ั€ะพะนะบะธ
		cmd_run("sudo ip route flush all")
#ะะฐะทะฝะฐั‡ะฐะตะผ ัˆะปัŽะท ะฟะพ ัƒะผะพะปั‡ะฐะฝะธัŽ
		cmd_run("sudo route add default gw 192.168.8.1 " + iface)
#ะทะฐะดะฐะตะผ dns-ัะตั€ะฒะตั€ (ัั‚ะพ ะฝัƒะถะฝะพ ะดะปั ั€ะฐะฑะพั‚ั‹ speedtest)
		cmd_run ("sudo bash -c 'echo nameserver 8.8.8.8 > /etc/resolv.conf'")

เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดคเดฏเตเด•เตเด•เดพเดฏเดฟ เดžเดพเตป เด‡เดจเตเดฑเตผเดซเต‡เดธเต เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเดจเตเดจเต, เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เด‡เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เดžเดพเตป เดชเดฟเดถเด•เตเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต. เด’เดฐเต เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เด‰เดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเดจเตเดณเตเดณ เดธเดฎเดฏเดฎเดพเดฃเดฟเดคเต!

เด‡เดตเดฟเดŸเต† เดžเดพเตป เดˆ เด‡เดจเตเดฑเตผเดซเต‡เดธเดฟเดฒเต‡เด•เตเด•เต ssh เดฑเต‚เดŸเตเดŸเดฟเด‚เด—เต เด•เต‹เตบเดซเดฟเด—เตผ เดšเต†เดฏเตเดฏเตเดจเตเดจเต (เด…เดคเต เดšเต†เดฏเตเดคเดฟเดŸเตเดŸเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ), เดธเดฎเดฏเดฎเดพเดฏเดพเตฝ เดธเต†เตผเดตเดฑเดฟเดฒเต‡เด•เตเด•เต เดชเดฟเดถเด•เตเด•เตพ เด…เดฏเดฏเตเด•เตเด•เตเด•, เดฒเต‹เด—เตเด•เตพ เด…เดฏเดฏเตเด•เตเด•เตเด•, เด’เดŸเตเดตเดฟเตฝ เด’เดฐเต เดธเตเดชเต€เดกเต เดŸเต†เดธเตเดฑเตเดฑเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดšเตเดšเต เดฒเต‹เด—เตเด•เตพ เด’เดฐเต csv เดซเดฏเดฒเดฟเดฒเต‡เด•เตเด•เต เดธเด‚เดฐเด•เตเดทเดฟเด•เตเด•เตเด•.

if not NetworkAvalible():
....
#ะ—ะดะตััŒ ะผั‹ ั„ะพั€ะผะธั€ัƒะตะผ ะพัˆะธะฑะบะธ
....
else: #ะ•ัั‚ัŒ ัะตั‚ัŒ, ัƒั€ะฐ, ั€ะฐะฑะพั‚ะฐะตะผ!
#ะ•ัะปะธ ัƒ ะฝะฐั ะฟั€ะพะฑะปะตะผะฝั‹ะน ะธะฝั‚ะตั€ั„ะตะนั, ะฝะฐ ะบะพั‚ะพั€ะพะผ ssh, ั‚ะพ ะผะตะฝัะตะผ ะตะณะพ
  if (sshint == lastbanint or sshint =="free"):
    print("********** Setup SSH ********************")
    if sshint !="free":
      ัmd_run("sudo ip route del default via 192.168.8.1 dev " + sshint +" table 102")
    SetupReverseSSH(iface)
    sshint = iface
#ั€ะฐะท ัะตั‚ะบะฐ ั€ะฐะฑะพั‚ะฐะตั‚, ั‚ะพ ะดะฐะฒะฐะน ัั€ะพั‡ะฝะพ ะฒัะต ะพั‚ะฟั€ะฐะฒะธะผ!!!
    if ready_to_send:
      print ("**** Ready to send!!!")
        if sendLogs():
          ready_to_send = False
        if error_status:
          SendErrors()
#ะธ ะดะฐะปะตะต ั‚ะตัั‚ะธั€ัƒะตะผ ัะบะพั€ะพัั‚ัŒ ะธ ัะพั…ั€ะฐะฝัะตะผ ะปะพะณะธ. 

เดฑเดฟเดตเต‡เดดเตเดธเต ssh เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดฑเต† เดชเตเดฐเดตเตผเดคเตเดคเดจเด‚ เดŽเดŸเตเดคเตเดคเตเดชเดฑเดฏเต‡เดฃเตเดŸเดคเดพเดฃเต.

def SetupReverseSSH(iface):
	cmd_run("sudo systemctl stop autossh.service")
	cmd_run("sudo ip route add default via 192.168.8.1 dev " + iface +" table 102")
	cmd_run("sudo systemctl start autossh.service")

เดคเต€เตผเดšเตเดšเดฏเดพเดฏเตเด‚, เดจเดฟเด™เตเด™เตพ เดˆ เดธเต—เดจเตเดฆเดฐเตเดฏเดฎเต†เดฒเตเดฒเดพเด‚ เดธเตเดฑเตเดฑเดพเตผเดŸเตเดŸเดชเตเดชเดฟเดฒเต‡เด•เตเด•เต เดšเต‡เตผเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต. เด‡เดคเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เดžเดพเตป เด’เดฐเต เดซเดฏเตฝ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต:

sudo vim /etc/systemd/system/modems_speedtest.service

เดžเดพเตป เด…เดคเดฟเตฝ เดŽเดดเตเดคเตเดจเตเดจเต:

[Unit] Description=Modem Speed Test
Requires=systemd-networkd-wait-online.service
After=systemd-networkd-wait-online.service
[Service] User=khadas
ExecStart=/usr/bin/python3.6 /home/khadas/modems_speedtest/networks.py
RestartSec=5
Restart=always
[Install] WantedBy=multi-user.target

เดžเดพเตป เด“เดŸเตเดŸเต‹เดฒเต‹เดกเดฟเด‚เด—เต เด“เดฃเดพเด•เตเด•เดฟ เด†เดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเต!

sudo systemctl enable modems_speedtest.service
sudo systemctl start modems_speedtest.service

เด•เดฎเดพเตปเดกเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดŽเดจเตเดคเดพเดฃเต เดธเด‚เดญเดตเดฟเด•เตเด•เตเดจเตเดจเดคเต†เดจเตเดจเต เด‡เดชเตเดชเต‹เตพ เดŽเดจเดฟเด•เตเด•เต เดฒเต‹เด—เตเด•เตพ เด•เดพเดฃเดพเตป เด•เดดเดฟเดฏเตเด‚:

journalctl -u modems_speedtest.service --no-pager -f

เดซเดฒเด™เตเด™เตพ

เดถเดฐเดฟ, เด‡เดชเตเดชเต‹เตพ เดเดฑเตเดฑเดตเตเด‚ เดชเตเดฐเดงเดพเดจเดชเตเดชเต†เดŸเตเดŸ เด•เดพเดฐเตเดฏเด‚, เด…เดคเดฟเดจเตเดฑเต† เดซเดฒเดฎเดพเดฏเดฟ เดŽเดจเตเดคเดพเดฃเต เดธเด‚เดญเดตเดฟเดšเตเดšเดคเต? เดตเดฟเด•เดธเดจเดคเตเดคเดฟเดฒเตเด‚ เดกเต€เดฌเด—เตเด—เดฟเด‚เด—เต เดชเตเดฐเด•เตเดฐเดฟเดฏเดฏเดฟเดฒเตเด‚ เดŽเดจเดฟเด•เตเด•เต เด•เตเดฏเดพเดชเตโ€Œเดšเตผ เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดžเตเดž เด•เตเดฑเดšเตเดšเต เด—เตเดฐเดพเดซเตเด•เตพ เด‡เดคเดพ. เด—เตเดฐเดพเดซเตเด•เตพ เดคเดพเดดเต†เดชเตเดชเดฑเดฏเตเดจเตเดจ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต gnuplot เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเดพเดฃเต เดจเดฟเตผเดฎเตเดฎเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต.

#! /usr/bin/gnuplot -persist
set terminal postscript eps enhanced color solid
set output "Rostelecom.ps"
 
#set terminal png size 1024, 768
#set output "Rostelecom.png"
 
set datafile separator ';'
set grid xtics ytics
set xdata time
set ylabel "Speed Mb/s"
set xlabel 'Time'
set timefmt '%d.%m.%Y;%H:%M:%S'
set title "Rostelecom Speed"

plot "Rostelecom.csv" using 3:6 with lines title "Download", '' using 3:7 with lines title "Upload"
 
set title "Rostelecom 2 Ping"
set ylabel "Ping ms"
plot "Rostelecom.csv" using 3:8 with lines title "Ping"

เด†เดฆเตเดฏ เด…เดจเตเดญเดตเด‚ เดŸเต†เดฒเดฟ 2 เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเดพเดฃเต, เด…เดคเต เดžเดพเตป เดจเดฟเดฐเดตเดงเดฟ เดฆเดฟเดตเดธเด™เตเด™เตพ เดจเดŸเดคเตเดคเดฟ.

เดจเดฟเดฐเดตเดงเดฟ เดŽเตฝเดŸเดฟเด‡ เดฎเต‹เดกเดฎเตเด•เดณเดฟเตฝ เด’เดฐเต‡เดธเดฎเดฏเด‚ เดธเตเดชเต€เดกเต เดŸเต†เดธเตเดฑเตเดฑเต

เด‡เดตเดฟเดŸเต† เดžเดพเตป เด’เดฐเต เดกเตˆเดจเดพเดฎเดฟเด•เต เดฎเต†เดทเดฑเดฟเด‚เด—เต เดธเต†เตผเดตเตผ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต. เดธเตเดชเต€เดกเต เด…เดณเดตเตเด•เตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต, เดชเด•เตเดทเต‡ เดตเดณเดฐเต†เดฏเดงเดฟเด•เด‚ เดšเดพเดžเตเดšเดพเดŸเตเดจเตเดจเต, เดชเด•เตเดทเต‡ เดšเดฟเดฒ เดถเดฐเดพเดถเดฐเดฟ เดฎเต‚เดฒเตเดฏเด™เตเด™เตพ เด‡เดชเตเดชเต‹เดดเตเด‚ เดฆเตƒเดถเตเดฏเดฎเดพเดฃเต, เด•เต‚เดŸเดพเดคเต† เดกเดพเดฑเตเดฑ เดซเดฟเตฝเดŸเตเดŸเตผ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดฒเต‚เดŸเต† เด‡เดคเต เดจเต‡เดŸเดพเดจเดพเด•เตเด‚, เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดšเดฒเดฟเด•เตเด•เตเดจเตเดจ เดถเดฐเดพเดถเดฐเดฟ.

เดชเดฟเดจเตเดจเต€เดŸเต เดฎเดฑเตเดฑเต เดŸเต†เดฒเดฟเด•เต‹เด‚ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผเดฎเดพเตผเด•เตเด•เดพเดฏเดฟ เดžเดพเตป เดจเดฟเดฐเดตเดงเดฟ เด—เตเดฐเดพเดซเตเด•เตพ เดจเดฟเตผเดฎเตเดฎเดฟเดšเตเดšเต. เดˆ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเตฝ, เด‡เดคเดฟเดจเด•เด‚ เด’เดฐเต เดŸเต†เดธเตเดฑเตเดฑเดฟเด‚เด—เต เดธเต†เตผเดตเตผ เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเตเดจเตเดจเต, เด•เต‚เดŸเดพเดคเต† เดซเดฒเด™เตเด™เดณเตเด‚ เดตเดณเดฐเต† เดฐเดธเด•เดฐเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเต.

เดจเดฟเดฐเดตเดงเดฟ เดŽเตฝเดŸเดฟเด‡ เดฎเต‹เดกเดฎเตเด•เดณเดฟเตฝ เด’เดฐเต‡เดธเดฎเดฏเด‚ เดธเตเดชเต€เดกเต เดŸเต†เดธเตเดฑเตเดฑเต

เดจเดฟเดฐเดตเดงเดฟ เดŽเตฝเดŸเดฟเด‡ เดฎเต‹เดกเดฎเตเด•เดณเดฟเตฝ เด’เดฐเต‡เดธเดฎเดฏเด‚ เดธเตเดชเต€เดกเต เดŸเต†เดธเตเดฑเตเดฑเต

เดจเดฟเดฐเดตเดงเดฟ เดŽเตฝเดŸเดฟเด‡ เดฎเต‹เดกเดฎเตเด•เดณเดฟเตฝ เด’เดฐเต‡เดธเดฎเดฏเด‚ เดธเตเดชเต€เดกเต เดŸเต†เดธเตเดฑเตเดฑเต

เดจเดฟเดฐเดตเดงเดฟ เดŽเตฝเดŸเดฟเด‡ เดฎเต‹เดกเดฎเตเด•เดณเดฟเตฝ เด’เดฐเต‡เดธเดฎเดฏเด‚ เดธเตเดชเต€เดกเต เดŸเต†เดธเตเดฑเตเดฑเต

เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เดพเดฃเดพเดจเดพเด•เตเดจเตเดจเดคเตเดชเต‹เดฒเต†, เดˆ เดกเดพเดฑเตเดฑเดฏเตเดŸเต† เด—เดตเต‡เดทเดฃเดคเตเดคเดฟเดจเตเด‚ เดชเตเดฐเต‹เดธเดธเตเดธเดฟเด‚เด—เดฟเดจเตเด‚ เดตเดฟเดทเดฏเด‚ เดตเดณเดฐเต† เดตเดฟเดชเตเดฒเดฎเดพเดฃเต, เดฎเดพเดคเตเดฐเดฎเดฒเตเดฒ เดฐเดฃเตเดŸเดพเดดเตเดšเดคเตเดคเต† เดœเต‹เดฒเดฟเด•เตเด•เต เด‡เดคเต เดจเดฟเดฒเดจเดฟเตฝเด•เตเด•เดฟเดฒเตเดฒ. เดชเด•เตเดทเต‡โ€ฆ

เดœเต‹เดฒเดฟเดฏเตเดŸเต† เดซเดฒเด‚

เดŽเดจเตเดฑเต† เดจเดฟเดฏเดจเตเดคเตเดฐเดฃเดคเตเดคเดฟเดจเดชเตเดชเตเดฑเดฎเตเดณเตเดณ เดธเดพเดนเดšเดฐเตเดฏเด™เตเด™เตพ เด•เดพเดฐเดฃเด‚ เดœเต‹เดฒเดฟ เดชเต†เดŸเตเดŸเต†เดจเตเดจเต เดชเต‚เตผเดคเตเดคเดฟเดฏเดพเดฏเดฟ. เดˆ เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเดฟเดจเตเดฑเต† เดฌเดฒเดนเต€เดจเดคเด•เดณเดฟเดฒเตŠเดจเตเดจเต, เดŽเดจเตเดฑเต† เด†เดคเตเดฎเดจเดฟเดทเตเด เดฎเดพเดฏ เด…เดญเดฟเดชเตเดฐเดพเดฏเดคเตเดคเดฟเตฝ, เดฎเดฑเตเดฑเต เดฎเต‹เดกเดฎเตเด•เดณเตเดฎเดพเดฏเดฟ เด’เดฐเต‡เดธเดฎเดฏเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเตป เดถเดฐเดฟเด•เตเด•เตเด‚ เด†เด—เตเดฐเดนเดฟเด•เตเด•เดพเดคเตเดค เดฎเต‹เดกเด‚ เด†เดฏเดฟเดฐเตเดจเตเดจเต, เด“เดฐเต‹ เดคเดตเดฃ เดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เตพ เด…เดคเตเดคเดฐเด‚ เดคเดจเตเดคเตเดฐเด™เตเด™เตพ เด‰เดฃเตเดŸเดพเด•เตเด•เดฟ. เดˆ เด†เดตเดถเตเดฏเด™เตเด™เตพเด•เตเด•เดพเดฏเดฟ, เดฎเดฑเตเดฑเต เดจเดฟเดฐเดตเดงเดฟ เดฎเต‹เดกเด‚ เดฎเต‹เดกเดฒเตเด•เตพ เด‰เดฃเตเดŸเต; เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เด…เดต เด‡เดคเดฟเดจเด•เด‚ เดคเดจเตเดจเต† เดฎเดฟเดจเดฟ เดชเดฟเดธเดฟเด-เด‡ เดซเต‹เตผเดฎเดพเดฑเตเดฑเดฟเดฒเดพเดฃเต, เด•เต‚เดŸเดพเดคเต† เด‰เดชเด•เดฐเดฃเดคเตเดคเดฟเดจเตเดณเตเดณเดฟเตฝ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เด•เต‹เตบเดซเดฟเด—เตผ เดšเต†เดฏเตเดฏเดพเตป เดตเดณเดฐเต† เดŽเดณเตเดชเตเดชเดฎเดพเดฃเต. เดŽเดจเตเดจเดพเตฝ เด…เดคเต เดคเดฟเด•เดšเตเดšเตเด‚ เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฏ เด’เดฐเต เด•เดฅเดฏเดพเดฃเต. เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต เดฐเดธเด•เดฐเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเต, เด…เดคเดฟเตฝ เดชเด™เตเด•เต†เดŸเตเด•เตเด•เดพเตป เด•เดดเดฟเดžเตเดžเดคเดฟเตฝ เดžเดพเตป เดตเดณเดฐเต† เดธเดจเตเดคเต‹เดทเดฟเดšเตเดšเต.

เดจเดฟเดฐเดตเดงเดฟ เดŽเตฝเดŸเดฟเด‡ เดฎเต‹เดกเดฎเตเด•เดณเดฟเตฝ เด’เดฐเต‡เดธเดฎเดฏเด‚ เดธเตเดชเต€เดกเต เดŸเต†เดธเตเดฑเตเดฑเต

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•