เชธเชเชธเชฐเซเชเชจเชฟเชทเซเชง เชฆเชฐเชฎเชฟเชฏเชพเชจ, เชฎเชจเซ เชเซเชเชฒเชพเช เชธเซเชฒเซเชฏเซเชฒเชฐ เชเชชเชฐเซเชเชฐเซ เชฎเชพเชเซ LTE เชฎเซเชกเซเชฎเชจเซ เชเชกเชช เชฎเชพเชชเชตเชพ เชฎเชพเชเซเชจเชพ เชเชชเชเชฐเชฃเชจเชพ เชตเชฟเชเชพเชธเชฎเชพเช เชญเชพเช เชฒเซเชตเชพเชจเซ เชเชซเชฐ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชนเชคเซ.
เชเซเชฐเชพเชนเช เชตเชฟเชตเชฟเชง เชญเซเชเซเชฒเชฟเช เชธเซเชฅเชพเชจเซ เชชเชฐ เชตเชฟเชตเชฟเชง เชเซเชฒเชฟเชเซเชฎ เชเชชเชฐเซเชเชฐเซเชจเซ เชเชกเชชเชจเซเช เชฎเซเชฒเซเชฏเชพเชเชเชจ เชเชฐเชตเชพ เชฎเชพเชเชเชคเซ เชนเชคเซ เชเซเชฅเซ เชคเซ เชธเชฎเชเชตเชพเชฎเชพเช เชธเชเซเชทเชฎ เชฌเชจเซ เชเซ LTE เชเชจเซเชเซเชถเชจเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชธเชพเชงเชจเชธเชพเชฎเชเซเชฐเซ เชเชจเซเชธเซเชเซเชฒ เชเชฐเชคเซ เชตเชเชคเซ เชคเซเชจเชพ เชฎเชพเชเซ เชเชฏเซ เชธเซเชฒเซเชฏเซเชฒเชฐ เชเชชเชฐเซเชเชฐ เชธเซเชฅเซ เชตเชงเซ เชถเซเชฐเซเชทเซเช เชเซ, เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชตเชฟเชกเชฟเชฏเซ เชฌเซเชฐเซเชกเชเชพเชธเซเช เชฎเชพเชเซ. เชคเซ เช เชธเชฎเชฏเซ, เชเชฐเซเชเชพเชณ เชธเชพเชงเชจเซ เชตเชฟเชจเชพ, เชธเชฎเชธเซเชฏเชพเชจเซ เชถเชเซเชฏ เชคเซเชเชฒเซ เชธเชฐเชณ เช เชจเซ เชธเชธเซเชคเซ เชฐเซเชคเซ เชนเชฒ เชเชฐเชตเชพเชจเซ เชนเชคเซ.
เชนเซเช เชคเชฐเชค เช เชเชนเซเชถ เชเซ เชเชพเชฐเซเชฏ เชธเซเชฅเซ เชธเชฐเชณ เช
เชจเซ เชธเซเชฅเซ เชตเชงเซ เชเซเชเชพเชจ-เชธเชเชจ เชจเชฅเซ; เชนเซเช เชคเชฎเชจเซ เชเชนเซเชถ เชเซ เชฎเชจเซ เชเช เชธเชฎเชธเซเชฏเชพเช เชเชตเซ เช
เชจเซ เชฎเซเช เชคเซเชจเซ เชเซเชตเซ เชฐเซเชคเซ เชนเชฒ เชเชฐเซ. เชคเซ, เชเชพเชฒเซ เชเชเช.
เชจเซเชเชงเชฃเซ
LTE เชเชจเซเชเซเชถเชจเชจเซ เชเชกเชชเชจเซ เชฎเชพเชชเชตเซ เช เชเซเชฌ เช เชเชเชฟเชฒ เชฌเชพเชฌเชค เชเซ: เชคเชฎเชพเชฐเซ เชฏเซเชเซเชฏ เชธเชพเชงเชจเซ เช เชจเซ เชฎเชพเชชเชจ เชคเชเชจเซเช เชชเชธเชเชฆ เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ, เช เชจเซ เชธเซเชฒเซเชฏเซเชฒเชฐ เชจเซเชเชตเชฐเซเชเชจเซ เชเซเชชเซเชฒเซเชเซ เช เชจเซ เชเชชเชฐเซเชถเชจเชจเซ เชชเชฃ เชธเชพเชฐเซ เชธเชฎเช เชนเซเชตเซ เชเซเชเช. เชเชชเชฐเชพเชเชค, เชเชกเชช เชเชฃเชพ เชชเชฐเชฟเชฌเชณเซเชฅเซ เชชเซเชฐเชญเชพเชตเชฟเชค เชฅเช เชถเชเซ เชเซ: เชธเซเชฒ เชชเชฐ เชธเชฌเซเชธเซเชเซเชฐเชพเชเชฌเชฐเซเชธเชจเซ เชธเชเชเซเชฏเชพ, เชนเชตเชพเชฎเชพเชจ เชชเชฐเชฟเชธเซเชฅเชฟเชคเชฟเช, เชเช เชธเซเชฒเชฅเซ เชธเซเชฒ เชธเซเชงเซ เชชเชฃ เชจเซเชเชตเชฐเซเช เชเซเชชเซเชฒเซเชเซเชจเซ เชเชพเชฐเชฃเซ เชเชกเชช เชจเชพเชเชเซเชฏ เชฐเซเชคเซ เชฌเชฆเชฒเชพเช เชถเชเซ เชเซ. เชธเชพเชฎเชพเชจเซเชฏ เชฐเซเชคเซ, เช เชฎเซเชเซ เชธเชเชเซเชฏเชพเชฎเชพเช เช เชเชพเชฃเซเชฏเชพเชเชจเซ เชธเชฎเชธเซเชฏเชพ เชเซ, เช เชจเซ เชฎเชพเชคเซเชฐ เชเซเชฒเชฟเชเซเชฎ เชเชชเชฐเซเชเชฐ เช เชคเซเชจเซ เชฏเซเชเซเชฏ เชฐเซเชคเซ เชนเชฒ เชเชฐเซ เชถเชเซ เชเซ.
เชถเชฐเซเชเชคเชฎเชพเช, เชเซเชฐเชพเชนเช เชฎเชพเชคเซเชฐ เชเชชเชฐเซเชเชฐเซเชธเชจเชพ เชซเซเชจ เชตเชกเซ เชเซเชฐเชฟเชฏเชฐ เชเชฒเชพเชตเชตเชพ เชฎเชพเชเชเชคเซ เชนเชคเซ, เชซเซเชจ เชชเชฐ เชธเซเชงเซ เชฎเชพเชช เชฒเซเชคเซ เชนเชคเซ เช เชจเซ เชชเชเซ เชธเซเชชเซเชก เชฎเชพเชชเชจเชจเชพ เชชเชฐเชฟเชฃเชพเชฎเซ เชจเซเชเชฌเซเชเชฎเชพเช เชฒเชเชตเชพ เชฎเชพเชเชเชคเซ เชนเชคเซ. lte เชจเซเชเชตเชฐเซเชเซเชธเชจเซ เชเชกเชชเชจเซ เชฎเชพเชชเชตเชพ เชฎเชพเชเซเชจเซ เชฎเชพเชฐเซ เชเชเซเชฒ, เชเชฆเชฐเซเชถ เชจ เชนเซเชตเชพ เชเชคเชพเช, เชธเชฎเชธเซเชฏเชพเชจเซเช เชจเชฟเชฐเชพเชเชฐเชฃ เชเชฐเซ เชเซ.
เชธเชฎเชฏเชจเชพ เช เชญเชพเชตเซ เชฎเซเช เชธเชเชตเชกเชคเชพ เชเซ เชตเซเชฏเชตเชนเชพเชฐเชฟเชเชคเชพเชจเซ เชคเชฐเชซเซเชฃเชฎเชพเช เชจเชนเซเช เชชเชฃ เชตเชฟเชเชพเชธเชจเซ เชเชกเชชเชจเซ เชคเชฐเชซเซเชฃเชฎเชพเช เชจเชฟเชฐเซเชฃเชฏเซ เชฒเซเชงเชพ. เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชฐเชฟเชตเชฐเซเชธ ssh เชจเซ เชเชชเชฏเซเช เชฐเชฟเชฎเซเช เชเชเซเชธเซเชธ เชฎเชพเชเซ เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเซ เชนเชคเซ, เชตเชงเซ เชตเซเชฏเชตเชนเชพเชฐเซ VPN เชจเซ เชฌเชฆเชฒเซ, เชธเชฐเซเชตเชฐ เช เชจเซ เชฆเชฐเซเช เชตเซเชฏเชเซเชคเชฟเชเชค เชเซเชฒเชพเชฏเชเชเชจเซ เชธเซเช เชเชฐเชตเชพ เชฎเชพเชเซ เชธเชฎเชฏ เชฌเชเชพเชตเชตเชพ เชฎเชพเชเซ.
เชคเชเชจเซเชเซ เชเชพเชฐเซเชฏ
เชฒเซเชเชฎเชพเช เชเชฃเชพเชตเซเชฏเชพ เชฎเซเชเชฌ
เชคเชเชจเซเชเซ เชเชพเชฐเซเชฏ เชเชเชฆเชฎ เชธเชฐเชณ เชนเชคเซเช, เชนเซเช เช เชเชคเชฟเชฎ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเชจเซ เชธเชฎเช เชฎเชพเชเซ เชคเซเชจเซ เชฅเซเชกเซเช เชตเชฟเชธเซเชคเซเชค เชเชฐเซเชถ. เชคเชเชจเซเชเซ เชเชเซเชฒเซ เช เชจเซ เชธเชพเชงเชจเซเชจเซ เชชเชธเชเชฆเชเซ เชเซเชฐเชพเชนเช เชฆเซเชตเชพเชฐเชพ เชจเชเซเชเซ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชนเชคเซ. เชคเซเชฅเซ, เชคเชเชจเซเชเซ เชธเซเชชเชทเซเชเซเชเชฐเชฃ เชชเซเชคเซ, เชฌเชงเซ เชฎเชเชเซเชฐเซเช เชชเชเซ:
เชธเชฟเชเชเชฒ เชฌเซเชฐเซเชก เชเชฎเซเชชเซเชฏเซเชเชฐ เชชเชฐ เชเชงเชพเชฐเชฟเชค vim2 H เชฎเซเชกเซเชฎ เชฆเซเชตเชพเชฐเชพ lte เชเชจเซเชเซเชถเชจ เชฎเชพเชเซ เชธเซเชชเซเชก เชเซเชธเซเชเชฐ เชฌเชจเชพเชตเซuawei e3372h - 153 เชเชฃเชพ เชเซเชฒเชฟเชเซเชฎ เชเชชเชฐเซเชเชฐเซ (เชเช เชฅเซ เชเชจ เชธเซเชงเซ). UART เชฆเซเชตเชพเชฐเชพ เชเชจเซเชเซเชเซเชก GPS เชฐเซเชธเซเชตเชฐ เชชเชพเชธเซเชฅเซ เชเซเชเชฐเซเชกเชฟเชจเซเชเซเชธ เชฎเซเชณเชตเชตเซเช เชชเชฃ เชเชฐเซเชฐเซ เชเซ. เชธเซเชตเชพเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชเชคเชฟ เชฎเชพเชชเชจ เชเชฐเซ
www.speedtest.net เช เชจเซ เชคเซเชฎเชจเซ เชเซเชทเซเชเชเชฎเชพเช เชฎเซเชเซ เชเซเชฎ เชเซ:
csv เชซเซเชฐเซเชฎเซเชเชฎเชพเช เชเซเชทเซเชเช. เชชเชเซ เชฆเชฐ 6 เชเชฒเชพเชเซ เช-เชฎเซเชฒ เชฆเซเชตเชพเชฐเชพ เช เชธเชพเชเชจ เชฎเซเชเชฒเซ. เชญเซเชฒเซเชจเชพ เชเชฟเชธเซเชธเชพเชฎเชพเช, GPIO เชธเชพเชฅเซ เชเซเชกเชพเชฏเซเชฒ LEDเชจเซ เชเชฌเชเชพเชตเซ.
เชฎเซเช เชเชฃเซ เชฎเชเชเซเชฐเซเช เชชเชเซ, เชฎเชซเชค เชธเซเชตเชฐเซเชชเชฎเชพเช เชคเชเชจเซเชเซ เชฒเชพเชเซเชทเชฃเชฟเชเชคเชพเชเชจเซเช เชตเชฐเซเชฃเชจ เชเชฐเซเชฏเซเช. เชชเชฐเชเชคเซ เชเชพเชฐเซเชฏเชจเซ เช เชฐเซเชฅ เชชเชนเซเชฒเซเชฅเซ เช เชฆเซเชเชพเชฏ เชเซ. เชฆเชฐเซเช เชตเชธเซเชคเซ เชฎเชพเชเซ เชเช เช เช เชตเชพเชกเชฟเชฏเซเช เชเชชเชตเชพเชฎเชพเช เชเชตเซเชฏเซเช เชนเชคเซเช. เชชเชฐเชเชคเซ เชตเชพเชธเซเชคเชตเชฎเชพเช เชคเซ เชคเซเชฐเชฃ เช เช เชตเชพเชกเชฟเชฏเชพ เชธเซเชงเซ เชเชพเชฒเซเชฏเซเช. เช เช เชนเชเซเชเชคเชจเซ เชงเซเชฏเชพเชจเชฎเชพเช เชฒเช เชฐเชนเซเชฏเซเช เชเซ เชเซ เชฎเซเช เช เชฎเชพเชฐเชพ เชฎเซเชเซเชฏ เชเชพเชฎ เชชเชเซ เช เชจเซ เชธเชชเซเชคเชพเชนเชจเชพ เช เชเชคเซ เช เชเชฐเซเชฏเซเช.
เช เชนเซเช เชนเซเช เชซเชฐเซ เชเชเชตเชพเชฐ เช เชนเชเซเชเชค เชคเชฐเชซ เชงเซเชฏเชพเชจ เชฆเซเชฐเชตเชพ เชฎเชพเชเชเซ เชเซเช เชเซ เชเซเชฐเชพเชนเช เชเชกเชช เชฎเชพเชชเชจ เชธเซเชตเชพ เช เชจเซ เชนเชพเชฐเซเชกเชตเซเชฐเชจเชพ เชเชชเชฏเซเช เชชเชฐ เช เชเชพเชเชฅเซ เชธเชเชฎเชค เชฅเชฏเชพ เชนเชคเชพ, เชเซเชฃเซ เชฎเชพเชฐเซ เชเซเชทเชฎเชคเชพเชเชจเซ เชฎเซเชเชพ เชชเซเชฐเชฎเชพเชฃเชฎเชพเช เชฎเชฐเซเชฏเชพเชฆเชฟเชค เชเชฐเซ เชนเชคเซ. เชฌเชเซเช เชชเชฃ เชธเซเชฎเชฟเชค เชนเชคเซเช เชเชเชฒเซ เชเชพเชธ เชเชเช เชเชฐเซเชฆเซ เชจ เชฅเช. เชคเซเชฅเซ เช เชฎเชพเชฐเซ เช เชจเชฟเชฏเชฎเซ เชฆเซเชตเชพเชฐเชพ เชฐเชฎเชตเชพเชจเซเช เชนเชคเซเช.
เชเชฐเซเชเชฟเชเซเชเซเชเชฐ เช เชจเซ เชตเชฟเชเชพเชธ
เชฏเซเชเชจเชพ เชธเชฐเชณ เช เชจเซ เชธเซเชชเชทเซเช เชเซ. เชคเซเชฅเซ, เชนเซเช เชคเซเชจเซ เชเซเช เชตเชฟเชถเซเชท เชเชฟเชชเซเชชเชฃเซเช เชตเชฟเชจเชพ เชเซเชกเซเชถ.
เชฎเชจเซ เช เชญเชพเชทเชพเชฎเชพเช เชตเชฟเชเชพเชธ เชเชฐเชตเชพเชจเซ เชฌเชฟเชฒเชเซเชฒ เช
เชจเซเชญเชต เชจ เชนเซเชตเชพ เชเชคเชพเช, เชฎเซเช เชธเชฎเชเซเชฐ เชชเซเชฐเซเชเซเชเซเชเชจเซ เช
เชเชเชฐเชฎเชพเช เช
เชฎเชฒเชฎเชพเช เชฎเซเชเชตเชพเชจเซเช เชจเชเซเชเซ เชเชฐเซเชฏเซเช. เชฎเซเช เชคเซเชจเซ เชชเชธเชเชฆ เชเชฐเซเชฏเซเช เชเชพเชฐเชฃ เชเซ เชคเซเชฏเชพเช เชคเซเชฏเชพเชฐ เชเชฆเชพเชนเชฐเชฃเซ เช
เชจเซ เชเชเซเชฒเซเชจเซ เชธเชฎเซเชน เชเซ เชเซ เชตเชฟเชเชพเชธเชจเซ เชเชกเชชเซ เชฌเชจเชพเชตเซ เชถเชเซ เชเซ. เชคเซเชฅเซ, เชนเซเช เชคเชฎเชพเชฎ เชตเซเชฏเชพเชตเชธเชพเชฏเชฟเช เชชเซเชฐเซเชเซเชฐเชพเชฎเชฐเซเชจเซ เชชเชพเชฏเชฅเซเชจเชฎเชพเช เชตเชฟเชเชพเชธ เชเชฐเชตเชพเชจเชพ เชฎเชพเชฐเชพ เชชเซเชฐเชฅเชฎ เช
เชจเซเชญเชตเชจเซ เชจเชฟเชเชฆเชพ เชจ เชเชฐเชตเชพ เชเชนเซเช เชเซเช, เช
เชจเซ เชฎเชพเชฐเซ เชเซเชถเชณเชคเชพ เชธเซเชงเชพเชฐเชตเชพ เชฎเชพเชเซ เชฐเชเชจเชพเชคเซเชฎเช เชเซเชเชพ เชธเชพเชเชญเชณเซเชจเซ เชนเซเช เชนเชเชฎเซเชถเชพ เชเซเชถ เชเซเช.
เช เชชเซเชฐเชเซเชฐเชฟเชฏเชพเชฎเชพเช เชชเชฃ เชฎเซเช เชถเซเชงเซเชฏเซเช เชเซ เชชเชพเชฏเชฅเซเชจเชจเชพเช เชฌเซ เชตเชฐเซเชเชจ 2 เช เชจเซ 3 เชเซ, เชชเชฐเชฟเชฃเชพเชฎเซ เชนเซเช เชคเซเชฐเซเชเชพ เชชเชฐ เชธเซเชฅเชพเชฏเซ เชฅเชฏเซ.
เชนเชพเชฐเซเชกเชตเซเชฐ เชจเซเชกเซเชธ
เชธเชฟเชเชเชฒ-เชชเซเชฒเซเช vim2
เชฎเชจเซ เชฎเชพเชฐเชพ เชฎเซเชเซเชฏ เชฎเชถเซเชจ เชคเชฐเซเชเซ เชธเชฟเชเชเชฒ-เชฌเซเชฐเซเชก เชเชฎเซเชชเซเชฏเซเชเชฐ เชเชชเชตเชพเชฎเชพเช เชเชตเซเชฏเซเช เชนเชคเซเช
เชธเซเชฎเชพเชฐเซเช เชนเซเชฎ เช
เชจเซ SMART-TV เชฎเชพเชเซ เชเช เชเชคเซเชคเชฎ, เชถเชเซเชคเชฟเชถเชพเชณเซ เชฎเซเชกเชฟเชฏเชพ เชชเซเชฐเซเชธเซเชธเชฐ, เชชเชฐเชเชคเซ เช เชเชพเชฐเซเชฏ เชฎเชพเชเซ เช
เชคเซเชฏเชเชค เช
เชฏเซเชเซเชฏ, เช
เชฅเชตเชพ, เชเชพเชฒเซ เชเชนเซเช, เชเชฐเชพเชฌ เชฐเซเชคเซ เชฏเซเชเซเชฏ. เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชคเซเชจเซเช เชฎเซเชเซเชฏ เชเชเชธ เชเชจเซเชกเซเชฐเซเชเชก เชเซ, เช
เชจเซ เชฒเชฟเชจเชเซเชธ เช เชธเซเชเชจเซเชกเชฐเซ เชเชเชธ เชเซ, เช
เชจเซ เชคเซ เชฎเซเชเชฌ เชเซเช เชชเชฃ เชฒเชฟเชจเชเซเชธ เชนเซเช เชณเชจเชพ เชคเชฎเชพเชฎ เชจเซเชกเซเชธ เช
เชจเซ เชกเซเชฐเชพเชเชตเชฐเซเชจเซ เชเชเซเช-เชเซเชฃเชตเชคเซเชคเชพเชจเซ เชเชพเชฎเชเซเชฐเซเชจเซ เชฌเชพเชเชฏเชงเชฐเซ เชเชชเชคเซเช เชจเชฅเซ. เช
เชจเซ เชนเซเช เชฎเชพเชจเซเช เชเซเช เชเซ เชเซเชเชฒเซเช เชธเชฎเชธเซเชฏเชพเช เช เชชเซเชฒเซเชเชซเซเชฐเซเชฎเชจเชพ เชฏเซเชเชธเชฌเซ เชกเซเชฐเชพเชเชตเชฐเซ เชธเชพเชฅเซ เชธเชเชฌเชเชงเชฟเชค เชนเชคเซ, เชคเซเชฅเซ เชฎเซเชกเซเชฎเซเชธ เช เชฌเซเชฐเซเชก เชชเชฐ เช
เชชเซเชเซเชทเชพ เชฎเซเชเชฌ เชเชพเชฎ เชเชฐเชคเชพ เชจเชฅเซ. เชคเซ เชเซเชฌ เช เชจเชฌเชณเชพ เช
เชจเซ เชเซเชเชพเชเชตเชพเชฏเชพ เชฆเชธเซเชคเชพเชตเซเชเซ เชชเชฃ เชงเชฐเชพเชตเซ เชเซ, เชคเซเชฅเซ เชฆเชฐเซเช เชเชชเชฐเซเชถเชจเชฎเชพเช เชกเซเชเซเชธ เชเซเชฆเชตเชพเชฎเชพเช เชเชฃเซ เชธเชฎเชฏ เชฒเชพเชเซเชฏเซ เชนเชคเซ. GPIO เชธเชพเชฅเซ เชธเชพเชฎเชพเชจเซเชฏ เชเชพเชฎ เชชเชฃ เชเชฃเซเช เชฒเซเชนเซ เชฒเซ เชเซ. เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชฎเชจเซ LED เชธเซเช เชเชฐเชตเชพเชฎเชพเช เชเชฃเชพ เชเชฒเชพเชเซ เชฒเชพเชเซเชฏเชพ. เชชเชฐเชเชคเซ, เชเชฆเซเชฆเซเชถเซเชฏ เชฌเชจเชตเชพ เชฎเชพเชเซ, เชคเซ เชฎเซเชณเชญเซเชค เชฐเซเชคเซ เชฎเชนเชคเซเชตเชจเซเช เชจเชฅเซ เชเซ เชคเซ เชเชฏเชพ เชชเซเชฐเชเชพเชฐเชจเซเช เชธเชฟเชเชเชฒ-เชฌเซเชฐเซเชก เชเซ, เชฎเซเชเซเชฏ เชตเชธเซเชคเซ เช เชนเชคเซ เชเซ เชคเซ เชเชพเชฎ เชเชฐเซ เชเซ เช
เชจเซ เชคเซเชฏเชพเช เชฏเซเชเชธเชฌเซ เชชเซเชฐเซเช เชนเชคเชพ.
เชชเซเชฐเชฅเชฎ, เชฎเชพเชฐเซ เช เชฌเซเชฐเซเชก เชชเชฐ Linux เชเชจเซเชธเซเชเซเชฒ เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ. เชเซเชฐเชฎเชฎเชพเช เชฆเชฐเซเช เชฎเชพเชเซ เชฆเชธเซเชคเชพเชตเซเชเซเชเชฐเชฃเชจเซ เชเชเชเชฒเซ เชเชธเซเชเซ เชจ เชเชฐเชตเชพ เชฎเชพเชเซ, เช เชจเซ เชคเซ เชชเชฃ เชเซเช เช เชธเชฟเชเชเชฒ-เชฌเซเชฐเซเชก เชธเชฟเชธเซเชเชฎ เชธเชพเชฅเซ เชตเซเชฏเชตเชนเชพเชฐ เชเชฐเชถเซ, เชนเซเช เช เชชเซเชฐเชเชฐเชฃ เชฒเชเซ เชฐเชนเซเชฏเซ เชเซเช.
Linux เชเชจเซเชธเซเชเซเชฒ เชเชฐเชตเชพ เชฎเชพเชเซ เชฌเซ เชตเชฟเชเชฒเซเชชเซ เชเซ: เชฌเชพเชนเซเชฏ SD เชเชพเชฐเซเชก เชชเชฐ เช เชฅเชตเชพ เชเชเชคเชฐเชฟเช MMC เชชเชฐ. เชฎเซเช เชคเซเชจเซ เชเชพเชฐเซเชก เชธเชพเชฅเซ เชเซเชตเซ เชฐเซเชคเซ เชเชพเชฎ เชเชฐเชตเซเช เชคเซ เชถเซเชงเชตเชพเชจเซ เชชเซเชฐเชฏเชพเชธ เชเชฐเชตเชพเชฎเชพเช เชเช เชธเชพเชเช เชตเชฟเชคเชพเชตเซ, เชคเซเชฅเซ เชฎเซเช เชคเซเชจเซ MMC เชชเชฐ เชเชจเซเชธเซเชเซเชฒ เชเชฐเชตเชพเชจเซเช เชจเชเซเชเซ เชเชฐเซเชฏเซเช, เชเซ เชเซ เชเซเช เชถเชเชเชพ เชตเชฟเชจเชพ เชฌเชพเชนเซเชฏ เชเชพเชฐเซเชก เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเชตเซเช เชตเชงเซ เชธเชฐเชณ เชนเชถเซ.
เชซเชฐเซเชฎเชตเซเชฐ เชตเชฟเชถเซ
- เชเซเชฒ เชชเชฟเชจ GND: <โ> VIMs เชจเชพ GPIO เชจเซ เชชเชฟเชจ17
- เชเซเชฒ เชชเชฟเชจ TXD: <โ> VIMs เชจเชพ GPIO (Linux_Rx) เชจเซ เชชเชฟเชจ18
- เชเซเชฒ เชชเชฟเชจ RXD: <โ> VIMs เชจเชพ GPIO (Linux_Tx) เชจเซ เชชเชฟเชจ19
- เชเซเชฒ เชชเชฟเชจ VCC: <โ> VIMs เชจเชพ GPIO เชจเซ เชชเชฟเชจ20
เชคเซ เชชเชเซ, เชฎเซเช เชซเชฐเซเชฎเชตเซเชฐ เชกเชพเชเชจเชฒเซเชก เชเชฐเซเชฏเซเช
เช เชซเชฐเซเชฎเชตเซเชฐ เช
เชชเชฒเซเชก เชเชฐเชตเชพ เชฎเชพเชเซ, เชฎเชจเซ เชเชชเชฏเซเชเชฟเชคเชพเชเชจเซ เชเชฐเซเชฐ เชเซ. เช เชตเชฟเชถเซ เชตเชงเซ เชตเชฟเชเชคเซ
git clone https://github.com/khadas/utils
cd /path/to/utils
sudo ./INSTALL
Aaand... เชเชเช เชเชพเชฎ เชเชฐเชคเซเช เชจเชฅเซ. เชฎเซเช เชเชจเซเชธเซเชเซเชฒเซเชถเชจ เชธเซเชเซเชฐเชฟเชชเซเชเซเชธเชจเซ เชธเชเชชเชพเชฆเชฟเชค เชเชฐเชตเชพเชฎเชพเช เชฅเซเชกเชพ เชเชฒเชพเชเซ เชเชพเชณเซเชฏเชพ เชเซเชฅเซ เชฌเชงเซเช เชฎเชพเชฐเชพ เชฎเชพเชเซ เชฏเซเชเซเชฏ เชฐเซเชคเซ เชเชจเซเชธเซเชเซเชฒ เชฅเช เชถเชเซ. เชฎเชจเซ เชฏเชพเชฆ เชจเชฅเซ เชเซ เชฎเซเช เชคเซเชฏเชพเช เชถเซเช เชเชฐเซเชฏเซเช, เชชเชฃ เชคเซเชฏเชพเช เชเซเชกเชพเช เชธเชพเชฅเซเชจเซเช เชธเชฐเซเชเชธ เชชเชฃ เชนเชคเซเช. เชคเซเชฅเซ เชธเชพเชตเชเซเชค เชฐเชนเซ. เชชเชฐเชเชคเซ เช เชเชชเชฏเซเชเชฟเชคเชพเช เชตเชฟเชจเชพ vim2 เชจเซ เชตเชงเซ เชคเซเชฐเชพเชธ เชเชชเชตเชพเชจเซ เชเซเช เช เชฐเซเชฅ เชจเชฅเซ. เชคเซเชจเซ เชธเชพเชฅเซ เชฌเชฟเชฒเชเซเชฒ เชเชกเชฌเชก เชจ เชเชฐเชตเซ เชคเซ เชตเชงเซ เชธเชพเชฐเซเช เชเซ!
เชจเชฐเชเชจเชพ เชธเชพเชค เชตเชฐเซเชคเซเชณเซ, เชธเซเชเซเชฐเชฟเชชเซเช เชเซเช เชตเชฃเซ เช
เชจเซ เชเชจเซเชธเซเชเซเชฒเซเชถเชจ เชชเชเซ, เชฎเชจเซ เชเชพเชฐเซเชฏเชเชพเชฐเซ เชเชชเชฏเซเชเชฟเชคเชพเชเชจเซเช เชชเซเชเซเช เชชเซเชฐเชพเชชเซเชค เชฅเชฏเซเช. เชฎเซเช เชฌเซเชฐเซเชกเชจเซ เชฎเชพเชฐเชพ Linux เชเซเชฎเซเชชเซเชฏเซเชเชฐ เชธเชพเชฅเซ 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 เชฎเชพเชเซ เชชเชพเชธเชตเชฐเซเชก เช เชเซเชทเชฎ เชเชฐเซเช เชเซเช (เชนเชพ, เชธเซเชฐเชเซเชทเชฟเชค เชจเชฅเซ, เชชเชฐเชเชคเซ เช เชจเซเชเซเชณ).
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
เช เชฎเซเชกเซเชฎ เชฎเชพเชฐเชพ เชฎเชพเชเซ เชฒเซเชนเซเชจเซ เชจเซเชเชงเชชเชพเชคเซเชฐ เชธเซเชคเซเชฐเซเชค เชนเชคเซ, เช เชจเซ เชนเชเซเชเชคเชฎเชพเช, เชคเซ เชธเชฎเชเซเชฐ เชชเซเชฐเซเชเซเชเซเชเชจเซ เช เชกเชเชฃ เชฌเชจเซ เชเชฏเซเช เชนเชคเซเช. เชธเชพเชฎเชพเชจเซเชฏ เชฐเซเชคเซ, เช เชเชชเชเชฐเชฃเซ เชฎเชพเชเซเชจเซเช เชจเชพเชฎ "เชฎเซเชกเซเชฎ" เชเชพเชฎเชจเชพ เชธเชพเชฐเชจเซ เชฌเชฟเชฒเชเซเชฒ เชชเซเชฐเชคเชฟเชฌเชฟเชเชฌเชฟเชค เชเชฐเชคเซเช เชจเชฅเซ: เช เชเช เชถเชเซเชคเชฟเชถเชพเชณเซ เชธเชเชฏเซเชเชจ เชเซ, เชนเชพเชฐเซเชกเชตเซเชฐเชจเชพ เช เชญเชพเชเชฎเชพเช เชเช เชธเชเชฏเซเชเซเชค เชเชชเชเชฐเชฃ เชเซ เชเซ เชกเซเชฐเชพเชเชตเชฐเซเชจเซ เชเชจเซเชธเซเชเซเชฒ เชเชฐเชตเชพ เชฎเชพเชเซ CD-ROM เชนเซเชตเชพเชจเซ เชกเซเชณ เชเชฐเซ เชเซ, เช เชจเซ เชชเชเซ เชจเซเชเชตเชฐเซเช เชเชพเชฐเซเชก เชฎเซเชก เชชเชฐ เชธเซเชตเชฟเช เชเชฐเซ เชเซ.
เชเชฐเซเชเชฟเชเซเชเซเชเชฐเชฒเซ, Linux เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเชจเชพ เชฆเซเชทเซเชเชฟเชเซเชฃเชฅเซ, เชฌเชงเซ เชธเซเชเชฟเชเชเซเชธ เชชเชเซ, เชคเซ เชเชจเชพ เชเซเชตเซเช เชฒเชพเชเซ เชเซ: เชฎเซเชกเซเชฎเชจเซ เชเชจเซเชเซเช เชเชฐเซเชฏเชพ เชชเชเซ, เชฎเชพเชฐเซ เชชเชพเชธเซ eth* เชจเซเชเชตเชฐเซเช เชเชจเซเชเชฐเชซเซเชธ เชเซ, เชเซ dhcp เชฆเซเชตเชพเชฐเชพ IP เชธเชฐเชจเชพเชฎเซเช 192.168.8.100 เช เชจเซ เชกเชฟเชซเซเชฒเซเช เชเซเชเชตเซ เชฎเซเชณเชตเซ เชเซ. 192.168.8.1 เชเซ.
เช เชจเซ เชธเซเชฅเซ เชฎเชนเชคเซเชตเชชเซเชฐเซเชฃ เชเซเชทเชฃ! เช เชฎเซเชกเซเชฎ เชฎเซเชกเชฒ เชฎเซเชกเซเชฎ เชฎเซเชกเชฎเชพเช เชเชพเชฎ เชเชฐเซ เชถเชเชคเซเช เชจเชฅเซ, เชเซ AT เชเชฆเซเชถเซ เชฆเซเชตเชพเชฐเชพ เชจเชฟเชฏเชเชคเซเชฐเชฟเชค เชฅเชพเชฏ เชเซ. เชฌเชงเซเช เชเชฃเซเช เชธเชฐเชณ เชนเชถเซ, เชฆเชฐเซเช เชฎเซเชกเซเชฎ เชฎเชพเชเซ PPP เชเชจเซเชเซเชถเชจเซเชธ เชฌเชจเชพเชตเซ เช เชจเซ เชชเชเซ เชคเซเชฎเชจเซ เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเซ. เชชเชฐเชเชคเซ เชฎเชพเชฐเชพ เชเชฟเชธเซเชธเชพเชฎเชพเช, "เชชเซเชคเซ" (เชตเชงเซ เชธเซเชชเชทเซเช เชฐเซเชคเซ, udev เชจเชฟเชฏเชฎเซ เช เชจเซเชธเชพเชฐ Linux เชกเชพเชเชตเชฐ), eth เชเชจเซเชเชฐเชซเซเชธ เชฌเชจเชพเชตเซ เชเซ เช เชจเซ dhcp เชฆเซเชตเชพเชฐเชพ เชคเซเชจเซ IP เชธเชฐเชจเชพเชฎเซเช เชธเซเชเชชเซ เชเซ.
เชตเชงเซ เชฎเซเชเชเชตเชฃ เชเชพเชณเชตเชพ เชฎเชพเชเซ, เชนเซเช "เชฎเซเชกเซเชฎ" เชถเชฌเซเชฆ เชญเซเชฒเซ เชเชตเชพ เช
เชจเซ เชจเซเชเชตเชฐเซเช เชเชพเชฐเซเชก เช
เชจเซ เชเซเชเชตเซ เชเชนเซเชตเชพเชจเซเช เชธเซเชเชจ เชเชฐเซเช เชเซเช, เชเชพเชฐเชฃ เชเซ เชธเชพเชฐเชฎเชพเช, เชคเซ เชจเชตเชพ เชจเซเชเชตเชฐเซเช เชเชพเชฐเซเชกเชจเซ เชเซเชเชตเซ เชธเชพเชฅเซ เชเซเชกเชตเชพ เชเซเชตเซเช เชเซ.
เชเซเชฏเชพเชฐเซ เชเช เชฎเซเชกเซเชฎ เชนเซเชฏ, เชคเซเชฏเชพเชฐเซ เช เชเซเช เชเชพเชธ เชธเชฎเชธเซเชฏเชพเชเชจเซเช เชเชพเชฐเชฃ เชจเชฅเซ, เชชเชฐเชเชคเซ เชเซเชฏเชพเชฐเซ เชเช เชเชฐเชคเชพเช เชตเชงเซ เชนเซเชฏ เชเซ, เชเชเชฒเซ เชเซ n-เชชเซเชธ, เชคเซเชฏเชพเชฐเซ เชจเซเชเซเชจเซเช เชจเซเชเชตเชฐเซเช เชเชฟเชคเซเชฐ เชเชญเซเช เชฅเชพเชฏ เชเซ.
เชเชเชฒเซ เชเซ, n เชจเซเชเชตเชฐเซเช เชเชพเชฐเซเชกเซเชธ, เชธเชฎเชพเชจ IP เชธเชฐเชจเชพเชฎเชพ เชธเชพเชฅเซ, เชฆเชฐเซเช เชธเชฎเชพเชจ เชกเชฟเชซเซเชฒเซเช เชเซเชเชตเซ เชธเชพเชฅเซ. เชชเชฐเชเชคเซ เชนเชเซเชเชคเชฎเชพเช, เชคเซเชฎเชพเชเชจเชพ เชฆเชฐเซเช เชคเซเชจเชพ เชชเซเชคเชพเชจเชพ เชเชชเชฐเซเชเชฐ เชธเชพเชฅเซ เชเซเชกเชพเชฏเซเชฒเชพ เชเซ.
เชถเชฐเซเชเชคเชฎเชพเช, เชฎเชพเชฐเซ เชชเชพเชธเซ เชเช เชธเชฐเชณ เชเชเซเชฒ เชนเชคเซ: ifconfig เช เชฅเชตเชพ ip เชเชฎเชพเชจเซเชกเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ, เชฌเชงเชพ เชเชจเซเชเชฐเชซเซเชธเชจเซ เชฌเชเชง เชเชฐเซ เช เชจเซ เชฌเชฆเชฒเชพเชฎเชพเช เชเชเชจเซ เชเชพเชฒเซ เชเชฐเซ เช เชจเซ เชคเซเชจเซเช เชชเชฐเซเชเซเชทเชฃ เชเชฐเซ. เชธเซเชฒเซเชฏเซเชถเชจ เชฆเชฐเซเช เชฎเชพเชเซ เชธเชพเชฐเซเช เชนเชคเซเช, เชธเชฟเชตเชพเชฏ เชเซ เชธเซเชตเชฟเชเชฟเชเช เชเซเชทเชฃเซ เชฆเชฐเชฎเชฟเชฏเชพเชจ เชนเซเช เชเชชเชเชฐเชฃ เชธเชพเชฅเซ เชเชจเซเชเซเช เชเชฐเชตเชพเชฎเชพเช เชธเชเซเชทเชฎ เชจ เชนเชคเซ. เช เชจเซ เชธเซเชตเชฟเชเชฟเชเช เชตเชพเชฐเชเชตเชพเชฐ เช เชจเซ เชเชกเชชเซ เชนเซเชตเชพเชฅเซ, เชฎเชจเซ เชเชฐเซเชเชฐ เชเชจเซเชเซเช เชเชฐเชตเชพเชจเซ เชเซเช เชคเช เชจเชนเซเชคเซ.
เชคเซเชฅเซ, เชฎเซเช เชฎเซเชกเซเชฎเชจเชพ IP เชธเชฐเชจเชพเชฎเชพเชเชจเซ เชฎเซเชจเซเชฏเซเช เชฒเซ เชฌเชฆเชฒเชตเชพ เช เชจเซ เชชเชเซ เชฐเซเชเซเชเช เชธเซเชเชฟเชเชเซเชธเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชเซเชฐเชพเชซเชฟเช เชเชฒเชพเชตเชตเชพเชจเซ เชฎเชพเชฐเซเช เชชเชธเชเชฆ เชเชฐเซเชฏเซ.
เชฎเซเชกเซเชฎเซเชธ เชธเชพเชฅเซเชจเซ เชฎเชพเชฐเซ เชธเชฎเชธเซเชฏเชพเชเชจเซ เช เช
เชเชค เชจ เชนเชคเซ: เชชเชพเชตเชฐ เชธเชฎเชธเซเชฏเชพเชเชจเชพ เชเชฟเชธเซเชธเชพเชฎเชพเช, เชคเซเช เชชเชกเซ เชเชฏเชพ, เช
เชจเซ เชฏเซเชเชธเชฌเซ เชนเชฌเชจเซ เชธเชพเชฐเซ เชธเซเชฅเชฟเชฐ เชตเซเช เชชเซเชฐเชตเช เซ เชเชฐเซเชฐเซ เชนเชคเซ. เชฎเซเช เชชเชพเชตเชฐเชจเซ เชธเซเชงเชพ เชนเชฌ เชชเชฐ เชธเชเชค เชธเซเชฒเซเชกเชฐ เชเชฐเซเชจเซ เช เชธเชฎเชธเซเชฏเชพ เชนเชฒ เชเชฐเซ. เชฌเซเชเซ เชธเชฎเชธเซเชฏเชพ เชเซเชจเซ เชฎเชจเซ เชธเชพเชฎเชจเซ เชเชฐเชตเซ เชชเชกเซเชฏเซ เช
เชจเซ เชเซเชฃเซ เชธเชฎเชเซเชฐ เชชเซเชฐเซเชเซเชเซเชเชจเซ เชฌเชฐเชฌเชพเชฆ เชเชฐเซเชฏเซ: เชเชชเชเชฐเชฃเชจเชพ เชฐเซเชฌเซเช เช
เชฅเชตเชพ เชเซเชฒเซเชก เชธเซเชเชพเชฐเซเช เชชเชเซ, เชฌเชงเชพ เชฎเซเชกเซเชฎเซเชธ เชถเซเชงเชพเชฏเชพ เชจ เชนเชคเชพ เช
เชจเซ เชนเชเชฎเซเชถเชพ เชจเชนเซเช, เช
เชจเซ เชนเซเช เชจเชเซเชเซ เชเชฐเซ เชถเชเซเชฏเซ เชจเชนเซเช เชเซ เชเชตเซเช เชถเชพ เชฎเชพเชเซ เชฅเชฏเซเช เช
เชจเซ เชเชฏเชพ เช
เชฒเซเชเซเชฐเชฟเชงเชฎ เชฆเซเชตเชพเชฐเชพ. เชชเชฐเชเชคเซ เชชเซเชฐเชฅเชฎ เชตเชธเซเชคเซเช เชชเซเชฐเชฅเชฎ.
เชฎเซเชกเซเชฎ เชฏเซเชเซเชฏ เชฐเซเชคเซ เชเชพเชฎ เชเชฐเซ เชคเซ เชฎเชพเชเซ, เชฎเซเช usb-modeswitch เชชเซเชเซเช เชเชจเซเชธเซเชเซเชฒ เชเชฐเซเชฏเซเช เชเซ.
sudo apt update
sudo apt install -y usb-modeswitch
เชเซ เชชเชเซ, เชเชจเซเชเซเช เชเชฐเซเชฏเชพ เชชเชเซ, เชฎเซเชกเซเชฎ เชฏเซเชเซเชฏ เชฐเซเชคเซ เชถเซเชงเซ เชเชพเชขเชตเชพเชฎเชพเช เชเชตเชถเซ เช
เชจเซ udev เชธเชฌเชธเชฟเชธเซเชเชฎ เชฆเซเชตเชพเชฐเชพ เชเซเช เชตเชตเชพเชฎเชพเช เชเชตเชถเซ. เชนเซเช เชซเชเซเชค เชฎเซเชกเซเชฎเชจเซ เชเชจเซเชเซเช เชเชฐเซเชจเซ เช
เชจเซ เชจเซเชเชตเชฐเซเช เชฆเซเชเชพเชฏ เชเซ เชคเซเชจเซ เชเชพเชคเชฐเซ เชเชฐเซเชจเซ เชคเชชเชพเชธ เชเชฐเซเช เชเซเช.
เชฌเซเชเซ เชธเชฎเชธเซเชฏเชพ เชเซ เชเซ เชนเซเช เชนเชฒ เชเชฐเซ เชถเชเซเชฏเซ เชจเชฅเซ: เช เชฎเซเชกเซเชฎเชฎเชพเชเชฅเซ เชเชชเชฃเซ เชเซ เชเชชเชฐเซเชเชฐ เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเซ เชฐเชนเซเชฏเชพ เชเซเช เชคเซเชจเซเช เชจเชพเชฎ เชนเซเช เชเซเชตเซ เชฐเซเชคเซ เชฎเซเชณเชตเซ เชถเชเซเช? เชเชชเชฐเซเชเชฐเชจเซเช เชจเชพเชฎ เชฎเซเชกเซเชฎ เชตเซเชฌ เชเชจเซเชเชฐเชซเซเชธเชฎเชพเช 192.168.8.1 เชชเชฐ เชธเชฎเชพเชฏเซเชฒ เชเซ. เช เชเช เชกเชพเชฏเชจเซเชฎเชฟเช เชตเซเชฌ เชชเซเช เชเซ เชเซ Ajax เชตเชฟเชจเชเชคเซเช เชฆเซเชตเชพเชฐเชพ เชกเซเชเชพ เชฎเซเชณเชตเซ เชเซ, เชคเซเชฅเซ เชซเชเซเชค เชชเซเชทเซเช เชจเซ เชตเซเชเซเช เชเชฐเชตเซเช เช
เชจเซ เชจเชพเชฎเชจเซเช เชชเชฆเชเซเชเซเชฆเชจ เชเชพเชฎ เชเชฐเชถเซ เชจเชนเซเช. เชคเซเชฅเซ เชฎเซเช เชตเซเชฌ เชชเซเช เชตเชเซเชฐเซ เชเซเชตเซ เชฐเซเชคเซ เชตเชฟเชเชธเชพเชตเชตเซเช เชคเซ เชเซเชตเชพเชจเซเช เชถเชฐเซ เชเชฐเซเชฏเซเช, เช
เชจเซ เชธเชฎเชเชพเชฏเซเช เชเซ เชนเซเช เชเซเช เชชเซเชฐเชเชพเชฐเชจเซ เชฌเชเชตเชพเชธ เชเชฐเซ เชฐเชนเซเชฏเซ เชเซเช. เชชเชฐเชฟเชฃเชพเชฎเซ, เชคเซ เชฅเซเชเชเซเชฏเซ, เช
เชจเซ เชเชชเชฐเซเชเชฐเซ เชธเซเชชเซเชกเชเซเชธเซเช API เชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชชเซเชฐเชพเชชเซเชค เชเชฐเชตเชพเชจเซเช เชถเชฐเซ เชเชฐเซเชฏเซเช.
เชเซ เชฎเซเชกเซเชฎเชจเซ AT เชเชฆเซเชถเซ เชฆเซเชตเชพเชฐเชพ เชเชเซเชธเซเชธ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชคเซ เชเชฃเซเช เชธเชฐเชณ เชนเชถเซ. เชคเซเชจเซ เชชเซเชจเชเชฐเซเชชเชฐเซเชเชพเชเชเชฟเชค เชเชฐเชตเซเช, ppp เชเชจเซเชเซเชถเชจ เชฌเชจเชพเชตเชตเซเช, IP เชธเซเชเชชเชตเซเช, เชเซเชฒเชฟเชเซเชฎ เชเชชเชฐเซเชเชฐ เชฎเซเชณเชตเชตเซเช เชตเชเซเชฐเซ เชถเชเซเชฏ เชฌเชจเชถเซ. เชชเชฐเชเชคเซ เช เชซเชธเซเชธ, เชฎเชจเซ เชเซ เชเชชเชตเชพเชฎเชพเช เชเชตเซเชฏเซเช เชเซ เชคเซเชจเซ เชธเชพเชฅเซ เชนเซเช เชเชพเชฎ เชเชฐเซ เชฐเชนเซเชฏเซ เชเซเช.
เชเซเชชเซเชเชธ
เชฎเชจเซ เชเชชเชตเชพเชฎเชพเช เชเชตเซเชฒ 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
เช เชเชฆเซเชถ เชฆเซเชเซเชคเซ เชฐเซเชคเซ เชซเซเชฒเชพเชฏ เชชเชฐเชจเชพ เชฆเซเชตเชเซเชฐเซเชจเซ เชธเชเชชเชพเชฆเชฟเชค เชเชฐเซ เชเซ, เชเซ เชเซเชฌ เช เชจเซเชเซเชณ เชเซ.
เช เชเชชเชฐเซเชถเชจเชจเซ เชธเชซเชณเชคเชพ เชชเชเซ, เชฐเซเชฌเซเช เชเชฐเซ เช เชจเซ GPS เชกเชฟเชฎเชจ เชเชจเซเชธเซเชเซเชฒ เชเชฐเซ.
khadas@Khadas:~$ sudo reboot
เชเซเชชเซเชเชธ เชกเชฟเชฎเชจ เชเชจเซเชธเซเชเซเชฒ เชเชฐเซ เชฐเชนเซเชฏเซเช เชเซ. เชนเซเช เชฌเชงเซเช เชเชจเซเชธเซเชเซเชฒ เชเชฐเซเช เชเซเช เช เชจเซ เชตเชงเซ เชเซเช เชตเชฃเซ เชฎเชพเชเซ เชคเซเชจเซ เชคเชฐเชค เช เชเชพเชชเซ เชจเชพเชเซเช เชเซเช.
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
เชนเซเช เชเช UART เชเชจเซเชธเซเชเซเชฒ เชเชฐเซ เชฐเชนเซเชฏเซ เชเซเช เชเซเชจเชพ เชชเชฐ GPS เช เชเชเซ เชเชถเซ.
DEVICES="/dev/ttyS4"
เช เชจเซ เชชเชเซ เช เชฎเซ เชฌเชงเซเช เชเชพเชฒเซ เชเชฐเซเช เชเซเช เช เชจเซ เชถเชฐเซ เชเชฐเซเช เชเซเช.
/* GPS daemon enable/start */
sudo systemctl enable gpsd.socket
sudo systemctl start gpsd.socket
เชคเซ เชชเชเซ, เชนเซเช เชเซเชชเซเชเชธเชจเซ เชเชจเซเชเซเช เชเชฐเซเช เชเซเช.
เชเซเชชเซเชเชธ เชตเชพเชฏเชฐ เชฎเชพเชฐเชพ เชนเชพเชฅเชฎเชพเช เชเซ, UART เชกเซเชฌเชเชฐ เชตเชพเชฏเชฐ เชฎเชพเชฐเซ เชเชเชเชณเซเช เชจเซเชเซ เชฆเซเชเชพเชฏ เชเซ.
เชนเซเช เชเซเชชเซเชเชธเชฎเซเชจ เชชเซเชฐเซเชเซเชฐเชพเชฎเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชเซเชชเซเชเชธ เชเชชเชฐเซเชถเชจเชจเซ เชฐเซเชฌเซเช เชเชฐเซเช เชเซเช เช เชจเซ เชคเชชเชพเชธเซเช เชเซเช.
เชคเชฎเซ เช เชธเซเชเซเชฐเซเชจเชถเซเชเชฎเชพเช เชเชชเชเซเชฐเชนเซ เชเซเช เชถเชเชคเชพ เชจเชฅเซ, เชชเชฐเชเชคเซ เชคเชฎเซ 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 เชฆเซเชตเชพเชฐเชพ เชธเซเชงเชพ GPS เชฎเชพเชเชฅเซ เชกเซเชเชพ เชชเซเชฐเชพเชชเซเชค เชเชฐเชตเชพเชจเซเช เชถเชเซเชฏ เชฌเชจเชถเซ, เชคเซเชจเซ เช เชฒเช เชฅเซเชฐเซเชกเชฎเชพเช เชชเชพเชฐเซเชธ เชเชฐเซ เช เชจเซ เชคเซเชจเซ เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเซ. เชชเชฐเชเชคเซ เชคเซเชฏเชพเช เชฌเชฟเชฒเชเซเชฒ เชธเชฎเชฏ เชจ เชนเชคเซ, เชคเซเชฅเซ เชจเชฟเชฐเซเชฆเชฏเชคเชพเชฅเซ เชจเซเช เชเซเชก. เช เชจเซ เชนเชพ, เชฎเชจเซ เชถเชฐเชฎ เชจเชฅเซ เชเชตเชคเซ.
เชเชฒเชเชกเซ
LED เชจเซ เชเชจเซเชเซเช เชเชฐเชตเซเช เชคเซ เช เชธเชฎเชฏเซ เชธเชฐเชณ เช เชจเซ เชฎเซเชถเซเชเซเชฒ เชนเชคเซเช. เชฎเซเชเซเชฏ เชฎเซเชถเซเชเซเชฒเซ เช เชเซ เชเซ เชธเชฟเชธเซเชเชฎเชฎเชพเช เชชเชฟเชจ เชจเชเชฌเชฐ เชฌเซเชฐเซเชก เชชเชฐเชจเชพ เชชเชฟเชจ เชจเชเชฌเชฐเชจเซ เช เชจเซเชฐเซเชช เชจเชฅเซ เช เชจเซ เชเชพเชฐเชฃ เชเซ เชฆเชธเซเชคเชพเชตเซเชเซเชเชฐเชฃ เชกเชพเชฌเชพ เชนเชพเชฅเชฅเซ เชฒเชเชพเชฏเซเชฒเซเช เชเซ. 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 เชธเซเชตเชพเชจเซ เชชเซเชคเชพเชจเซ python-API เชเซ, เชคเชฎเซ เชเซเช เชถเชเซ เชเซ
เชธเชพเชฐเซ เชตเชพเชค เช เชเซ เชเซ เชคเซเชฏเชพเช เชธเซเชฐเซเชธ เชเซเชกเซเชธ เชชเชฃ เชเซ เชเซ เชเซเช เชถเชเชพเชฏ เชเซ. เช 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 เชเชชเชฏเซเชเชฟเชคเชพเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชฎเชพเชฐเชพ เชธเชฐเซเชตเชฐเชจเซ เชเชกเชชเชจเซ เชฎเชพเชชเซเชถ. เชชเชฐเชเชคเซ เช
เชฎเซ เชคเชเชจเซเชเซ เชฒเชพเชเซเชทเชฃเชฟเชเชคเชพเชเชจเซ เชตเชณเชเซ เชฐเชนเซเช เชเซเช.
เชฎเซเชเชฒ เช เชจเซ เชญเซเชฒเซ เชฎเซเชเชฒเซ เชฐเชนเซเชฏเชพ เชเซเช
เชฎเซเชเชฒ เชฎเซเชเชฒเชตเชพ เชฎเชพเชเซ, เชฎเซเช เชเชฃเชพ เชกเชเชจ เชตเชฟเชตเชฟเชง เชตเชฟเชเชฒเซเชชเซ เช
เชเชฎเชพเชตเซเชฏเชพ, เชชเชฐเชเชคเซ เช
เชเชคเซ เชฎเซเช เชจเซเชเซเชจเชพ เชชเชฐ เชธเซเชฅเชพเชฏเซ เชฅเชฏเชพ. เชฎเซเช เชฏเชพเชจเซเชกเซเชเซเชท เชชเชฐ เชฎเซเชเชฒเชฌเซเชเซเชธ เชฐเชเซเชธเซเชเชฐ เชเชฐเซเชฏเซเช เช
เชจเซ เชชเชเซ เชฒเซเชงเซเช
เชฒเซเชเซเชธ เชถเซเชกเซเชฏเซเชฒเชฐ เช เชจเซเชธเชพเชฐ เชฎเซเชเชฒเชตเชพเชฎเชพเช เชเชตเซเชฏเชพ เชนเชคเชพ, เชเซ เชคเซเชฏเชพเช เชเซเชกเชพเชฃ เชเซ, เชฆเชฐ 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
เชญเซเชฒเซ เชชเชฃ เชถเชฐเซเชเชคเชฎเชพเช เชฎเซเชเชฒเชตเชพเชฎเชพเช เชเชตเซ เชนเชคเซ. เชถเชฐเซ เชเชฐเชตเชพ เชฎเชพเชเซ, เชคเซเช เชธเซเชเชฟเชฎเชพเช เชธเชเชเชฟเชค เชฅเชฏเชพ เชนเชคเชพ, เช เชจเซ เชชเชเซ เชเซ เชเซเช เชเชจเซเชเซเชถเชจ เชนเซเชฏ เชคเซ เชถเซเชกเซเชฏเซเชฒเชฐเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชชเชฃ เชฎเซเชเชฒเชตเชพเชฎเชพเช เชเชตเซเชฏเชพ เชนเชคเชพ. เชเซ เชเซ, เชชเชเซ เช เชนเชเซเชเชค เชธเชพเชฅเซ เชธเชฎเชธเซเชฏเชพเช เชเชญเซ เชฅเช เชเซ เชฏเชพเชจเซเชกเซเชเซเชธเชฎเชพเช เชฆเชฐเชฐเซเช เชฎเซเชเชฒเชตเชพเชฎเชพเช เชเชตเชคเชพ เชธเชเชฆเซเชถเชพเชเชจเซ เชธเชเชเซเชฏเชพ เชชเชฐ เชฎเชฐเซเชฏเชพเชฆเชพ เชเซ (เช เชชเซเชกเชพ, เชเชฆเชพเชธเซ เช เชจเซ เช เชชเชฎเชพเชจ เชเซ). เชชเซเชฐเชคเชฟ เชฎเชฟเชจเชฟเช เชชเชฃ เชฎเซเชเซ เชธเชเชเซเชฏเชพเชฎเชพเช เชญเซเชฒเซ เชนเซเช เชถเชเซ เชเซ, เชคเซเชฅเซ เช เชฎเชพเชฐเซ เชฎเซเชเชฒ เชฆเซเชตเชพเชฐเชพ เชญเซเชฒเซ เชฎเซเชเชฒเชตเชพเชจเซเช เชเซเชกเซ เชฆเซเชตเซเช เชชเชกเซเชฏเซเช. เชคเซเชฅเซ เชฏเชพเชจเซเชกเซเชเซเชธ เชธเซเชตเชพเช เชฆเซเชตเชพเชฐเชพ เชเชชเชฎเซเชณเซ เชเชตเซ เชธเชฎเชธเซเชฏเชพ เชตเชฟเชถเซ เชฎเชพเชนเชฟเชคเซ เชฎเซเชเชฒเชคเซ เชตเชเชคเซ เชงเซเชฏเชพเชจเชฎเชพเช เชฐเชพเชเซ.
เชชเซเชฐเชคเชฟเชธเชพเชฆ เชธเชฐเซเชตเชฐ
เชนเชพเชฐเซเชกเชตเซเชฐเชจเชพ เชฆเซเชฐเชธเซเชฅ เชญเชพเชเชจเซ เชเชเซเชธเซเชธ เชฎเซเชณเชตเชตเชพ เช เชจเซ เชคเซเชจเซ เชเชธเซเชเชฎเชพเชเช เช เชจเซ เชชเซเชจเชเชฐเซเชชเชฐเซเชเชพเชเชเชฟเชค เชเชฐเชตเชพ เชฎเชพเชเซ เชธเชเซเชทเชฎ เชฅเชตเชพ เชฎเชพเชเซ, เชฎเชจเซ เชเช เชฌเชพเชนเซเชฏ เชธเชฐเซเชตเชฐเชจเซ เชเชฐเซเชฐ เชเซ. เชธเชพเชฎเชพเชจเซเชฏ เชฐเซเชคเซ, เชตเชพเชเชฌเซ เชฌเชจเชตเชพ เชฎเชพเชเซ, เชธเชฐเซเชตเชฐ เชชเชฐ เชคเชฎเชพเชฎ เชกเซเชเชพ เชฎเซเชเชฒเชตเชพ เช เชจเซ เชตเซเชฌ เชเชจเซเชเชฐเชซเซเชธเชฎเชพเช เชคเชฎเชพเชฎ เชธเซเชเชฆเชฐ เชเซเชฐเชพเชซ เชฌเชจเชพเชตเชตเชพ เชฏเซเชเซเชฏ เชฐเชนเซเชถเซ. เชชเชฐเชเชคเซ เชฌเชงเชพ เชเช เช เชธเชฎเชฏเซ เชจเชนเซเช.
VPS เชฎเชพเชเซ เชฎเซเช เชชเชธเชเชฆ เชเชฐเซเชฏเซเช
เชนเชพเชฐเซเชกเชตเซเชฐ เชธเชพเชฅเซ เชธเชเชเชพเชฐเชจเซ เชชเชฆเซเชงเชคเชฟ เชคเชฐเซเชเซ, 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()
เชถเซเชกเซเชฏเซเชฒเชฐ เชเชเชฆเชฎ เชธเชฐเชณ เชเซ: เชคเซ เชเซเชตเชพ เชฎเชพเชเซ เชฒเชพเชเซ เชเซ เชเซ เชถเซเช เชธเชเชฆเซเชถเชพ เชฎเซเชเชฒเชตเชพเชจเซ เชธเชฎเชฏ เชเชตเซ เชเชฏเซ เชเซ เช เชจเซ เชตเชฐเซเชคเชฎเชพเชจ เชญเซเชฒเชจเซ เชธเซเชฅเชฟเชคเชฟ เชถเซเช เชเซ. เชเซ เชเซเช เชญเซเชฒ เชซเซเชฒเซเช เชนเซเชฏ, เชคเซ เช เชฎเซ เชเชฒเชเชกเซเชจเซ เชเชฌเชเชพเชตเซเช เชเซเช.
#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 เชเชจเซเชเซเชถเชจ เชเชพเชณเชตเชตเชพเชจเซเช เชเซ. เชฆเชฐเซเช เชชเชฐเซเชเซเชทเชฃเชฎเชพเช เชกเชฟเชซเซเชฒเซเช เชเซเชเชตเซ เช เชจเซ DNS เชธเชฐเซเชตเชฐเชจเซ เชซเชฐเซเชฅเซ เชเซเช เชตเชตเชพเชจเซ เชธเชฎเชพเชตเซเชถ เชฅเชพเชฏ เชเซ. เชเซเชเชชเชฃ เชฐเซเชคเซ เชเซเช เชตเชพเชเชเชคเซเช เชจ เชนเซเชตเชพเชฅเซ, เชเชพเชฃเซ เชเซ เชเซเชฐเซเชจ เชฒเชพเชเชกเชพเชจเซ เชฐเซเชฒ เชชเชฐ เชธเชตเชพเชฐเซ เชเชฐเชคเซ เชจเชฅเซ. เชเซ เชเซเช เชเชธเซเชเชฐ เชเชเชกเชพ เชถเซเชงเซ เชเซ เชคเซเชจเซ เชฅเซเชกเซ เชเซเชจเซเชกเซ เชฎเชณเซ เชเซ.
เช เชเชฐเชตเชพ เชฎเชพเชเซ, เชนเซเช เชเช เช เชฒเช เชฐเซเชเซเชเช เชเซเชฌเชฒ เชฌเชจเชพเชตเซเช เชเซเช -เชธเซเช-เชฎเชพเชฐเซเช 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()
#ะธ ะดะฐะปะตะต ัะตััะธััะตะผ ัะบะพัะพััั ะธ ัะพั
ัะฐะฝัะตะผ ะปะพะณะธ.
เชฐเชฟเชตเชฐเซเชธ เชเชธเชเชธเชเช เชธเซเช เชเชฐเชตเชพเชจเชพ เชเชพเชฐเซเชฏเชจเซ เชเชฒเซเชฒเซเช เชเชฐเชตเซ เชคเซ เชฏเซเชเซเชฏ เชเซ.
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 เชเชชเชฐเซเชเชฐ เชธเชพเชฅเซ เชนเชคเซ, เชเซ เชฎเซเช เชเชฃเชพ เชฆเชฟเชตเชธเซ เชธเซเชงเซ เชเชฒเชพเชตเซเชฏเซ.
เช
เชนเซเช เชฎเซเช เชเชคเชฟเชถเซเชฒ เชฎเชพเชชเชจ เชธเชฐเซเชตเชฐเชจเซ เชเชชเชฏเซเช เชเชฐเซเชฏเซ. เชเชกเชช เชฎเชพเชชเชจ เชเชพเชฐเซเชฏ เชเชฐเซ เชเซ, เชชเชฐเชเชคเซ เชเซเชฌ เชตเชงเชเช เชฅเชพเชฏ เชเซ, เชชเชฐเชเชคเซ เชเซเชเชฒเชพเช เชธเชฐเซเชฐเชพเชถ เชฎเซเชฒเซเชฏ เชนเชเซ เชชเชฃ เชฆเซเชถเซเชฏเชฎเชพเชจ เชเซ, เช
เชจเซ เช เชกเซเชเชพเชจเซ เชซเชฟเชฒเซเชเชฐ เชเชฐเซเชจเซ เชฎเซเชณเชตเซ เชถเชเชพเชฏ เชเซ, เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชฎเซเชตเชฟเชเช เชเชตเชฐเซเช เชธเชพเชฅเซ.
เชฌเชพเชฆเชฎเชพเช เชฎเซเช เช เชจเซเชฏ เชเซเชฒเชฟเชเซเชฎ เชเชชเชฐเซเชเชฐเซ เชฎเชพเชเซ เชธเชเชเซเชฏเชพเชฌเชเชง เชเซเชฐเชพเชซ เชฌเชจเชพเชตเซเชฏเชพ. เช เชเชฟเชธเซเชธเชพเชฎเชพเช, เชคเซเชฏเชพเช เชชเชนเซเชฒเซเชฅเซ เช เชเช เชชเชฐเซเชเซเชทเชฃ เชธเชฐเซเชตเชฐ เชนเชคเซเช, เช เชจเซ เชชเชฐเชฟเชฃเชพเชฎเซ เชชเชฃ เชเซเชฌ เช เชฐเชธเชชเซเชฐเชฆ เชนเชคเชพ.
เชเซเชฎ เชคเชฎเซ เชเซเช เชถเชเซ เชเซ, เช เชกเซเชเชพเชจเชพ เชธเชเชถเซเชงเชจ เช
เชจเซ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชฎเชพเชเซ เชตเชฟเชทเชฏ เชเซเชฌ เช เชตเซเชฏเชพเชชเช เชเซ, เช
เชจเซ เชธเซเชชเชทเซเชเชชเชฃเซ เชเชพเชฎเชจเชพ เชฅเซเชกเชพ เช
เช เชตเชพเชกเชฟเชฏเชพ เชธเซเชงเซ เชเชพเชฒเชคเซ เชจเชฅเซ. เชชเชฃโฆ
เชเชพเชฐเซเชฏเชจเซเช เชชเชฐเชฟเชฃเชพเชฎ
เชฎเชพเชฐเชพ เชจเชฟเชฏเชเชคเซเชฐเชฃ เชฌเชนเชพเชฐเชจเชพ เชธเชเชเซเชเซเชจเซ เชเชพเชฐเชฃเซ เชเชพเชฎ เช เชเชพเชจเช เชชเซเชฐเซเชฃ เชฅเชฏเซเช. เช เชชเซเชฐเซเชเซเชเซเชเชจเซ เชจเชฌเชณเชพเชเชเชฎเชพเชเชจเซ เชเช, เชฎเชพเชฐเชพ เชตเซเชฏเชเซเชคเชฟเชฒเชเซเชทเซ เช เชญเชฟเชชเซเชฐเชพเชฏเชฎเชพเช, เชฎเซเชกเซเชฎ เชนเชคเซ, เชเซ เชเชฐเซเชเชฐ เช เชจเซเชฏ เชฎเซเชกเซเชฎ เชธเชพเชฅเซ เชตเชพเชฐเชพเชซเชฐเชคเซ เชเชพเชฎ เชเชฐเชตเชพ เชฎเชพเชเชเชคเชพ เชจ เชนเชคเชพ, เช เชจเซ เชเซเชฏเชพเชฐเซ เชชเชฃ เชคเซ เชฒเซเชก เชฅเชพเชฏ เชคเซเชฏเชพเชฐเซ เชเชตเซ เชฏเซเชเซเชคเชฟเช เชเชฐเซ เชนเชคเซ. เช เชนเซเชคเซเช เชฎเชพเชเซ, เช เชจเซเชฏ เชฎเซเชกเซเชฎ เชฎเซเชกเชฒเซเชธเชจเซ เชตเชฟเชถเชพเชณ เชธเชเชเซเชฏเชพ เชเซ; เชธเชพเชฎเชพเชจเซเชฏ เชฐเซเชคเซ เชคเซเช เชชเชนเซเชฒเซเชฅเซ เช Mini PCI-e เชซเซเชฐเซเชฎเซเชเชฎเชพเช เชนเซเชฏ เชเซ เช เชจเซ เชเชชเชเชฐเชฃเชจเซ เช เชเชฆเชฐ เชเชจเซเชธเซเชเซเชฒ เชเชฐเซเชฒเชพ เชนเซเชฏ เชเซ เช เชจเซ เชเซเช เชตเชตเชพ เชฎเชพเชเซ เชเซเชฌ เชธเชฐเชณ เชนเซเชฏ เชเซ. เชชเชฐเชเชคเซ เชคเซ เชธเชเชชเซเชฐเซเชฃเชชเชฃเซ เช เชฒเช เชตเชพเชฐเซเชคเชพ เชเซ. เช เชชเซเชฐเซเชเซเชเซเช เชฐเชธเชชเซเชฐเชฆ เชนเชคเซ เช เชจเซ เชฎเชจเซ เชเซเชฌ เชเชจเชเชฆ เชฅเชฏเซ เชเซ เชนเซเช เชคเซเชฎเชพเช เชญเชพเช เชฒเซเชตเชพ เชธเชเซเชทเชฎ เชนเชคเซ.
เชธเซเชฐเซเชธ: www.habr.com