
pengantar
Perangkat ini berfungsi untuk akses jarak jauh ke server Linux melalui port serial dan memungkinkan Anda untuk meninggalkan monitor dan keyboard lokal. Mengapa diperlukan jika ada SSH dan VNC? Anda perlu mengingat sejumlah masalah yang terkait dengan manajemen pada tahap boot sistem dan manajemen daya:- , recovery mode, memtest. S , fsck .
- . initramfs dropbear . SSH. , , , .
- . , Wake-on-LAN (WOL), , , «» , .
- UPS, .
- Sayangnya, peralatan server rumah saya tidak bersifat industri dan tidak memiliki tingkat keandalan yang tinggi. Hal yang sama berlaku untuk perangkat lunak, seringkali modul kernel "mentah" berfungsi. Akibatnya, lebih dari sekali server "hang" tanpa menanggapi baik melalui jaringan atau menekan tombol keyboard. Saya harus menggunakan reset perangkat keras dengan menahan tombol power selama lebih dari 3 detik.
Tidak ada masalah seperti itu pada peralatan industri, misalnya, solusi HP iLO memungkinkan Anda menginstal dari jarak jauh setidaknya satu sistem, belum lagi hal-hal seperti manajemen daya dan diagnostik sistem. Omong-omong, mereka memiliki produk untuk rumah / usaha kecil dengan solusi ini. Tetapi kebetulan bahwa sistem itu dibangun atas dasar motherboard miniITX konvensional tanpa kemampuan seperti itu.Ada kebutuhan untuk perangkat yang memungkinkan:- Tersedia melalui jaringan
- Berinteraksi dengan bootloader dan OS server, setidaknya dalam mode teks
- Zhelezno berinteraksi dengan tombol daya dan dapat menutup kontak tombol ini selama lebih dari 3 detik untuk mematikan paksa
- Ubah pengaturan BIOS (EFI) (belum diputuskan, hanya tersedia untuk beberapa motherboard)
Ini adalah fakta yang diketahui bahwa terminal teks yang digunakan sebelumnya terhubung ke port serial mesin. Secara historis ada dukungan terminal Linux dan bootloader grub. Pada motherboard modern, port ini tidak dalam bentuk biasa dari konektor DB-9 eksternal, tetapi hampir selalu dialihkan ke konektor 10-pin internal.Dengan munculnya ESP8266 sen, pada dasarnya jembatan antara Wi-Fi dan UART, muncul ide untuk mengimplementasikan terminal jaringan yang didasarkan padanya, dengan fungsi manajemen daya, muncul.Selain ESP8266, ada opsi yang berbeda.OpenWRT . UART'a MAX232 ( USB — RS232 ), GPIO, , . , , .
, ./., . .
.
Diagram sirkuit
Elemen utama - ESP8266 (ESP-03), memiliki Wi-Fi untuk komunikasi dengan dunia luar, UART untuk komunikasi dengan server, dan beberapa GPIO di mana indikator status dan LED relai digantung untuk menutup tombol daya. Ada beberapa GPIO gratis yang dapat digunakan untuk menghubungkan I2C, 1-Wire, dan sensor dan perangkat lainnya.Chip MAX232 yang populer digunakan untuk mengubah UART dari ESP8266 ke RS-232. MAX232 ditenagai oleh 5V, sedangkan ESP8266 melalui konverter LM1117 5-3.3V, untuk berjaga-jaga, pembagi tegangan yang mengarah 5V dari output MAX232 ke 3.3V digunakan pada jalur RX dari ESP8266. Output MAX232 dibagi menjadi dua konektor, satu untuk menghubungkan ke DB-9 dan yang kedua IDC-10 untuk menghubungkan langsung ke kontak pada motherboard dengan loop langsung. Relai digunakan untuk menutup kontak tombol daya PC dan terhubung secara paralel dengan tombol pada case. Ngomong-ngomong, untuk menghubungkan tombol power dari case unit sistem, Anda bisa menyediakan konektor di papan, saya sudah menerapkannya melalui double untuk 2,54 pin pada konektor motherboard. Secara umum, keputusan menggunakan relay kontroversial. Cukup banyak transistor. Dalam tata letak, saya meletakkan optocoupler 817, tidak berfungsi,tindakan radikal diambil dan relay dihidupkan ... itu berhasil. Biarlah, itu kemudian berguna untuk menutup / membuka sirkuit 220V, selain itu, klik terdengar - ini berguna untuk diagnostik. P6 - konektor untuk pemrograman mudah melalui adaptor Cina untuk arduino FTDI. Dalam mode pemrograman, jumper diaktifkan oleh JP1. Perangkat ini diaktifkan melalui konektor P4 langsung dari tegangan siaga catu daya atau dari port USB. Konektor P1 digunakan untuk menghubungkan antena eksternal.Perangkat ini diaktifkan melalui konektor P4 langsung dari tegangan siaga catu daya atau dari port USB. Konektor P1 digunakan untuk menghubungkan antena eksternal.Perangkat ini diaktifkan melalui konektor P4 langsung dari tegangan siaga catu daya atau dari port USB. Konektor P1 digunakan untuk menghubungkan antena eksternal.Jalur pengembangan yang memungkinkan Papan sirkuit tercetak
Lapisan tunggal, tetapi 5 pelompat utuh keluar.
Canggung dibuat di rumah
P6.
Firmware
Yang paling sederhana terdiri dari satu server TELNET - sebenarnya untuk pertukaran. Segala sesuatu yang muncul di UART dilemparkan ke semua klien TELNET, semua yang berasal dari klien dibuang ke UART. Perintah AT juga diaktifkan untuk mengontrol tombol daya dan mengkonfigurasi parameter port dan Wi-Fi. Meskipun sejujurnya, ini jauh dari server RFC 854, perintahnya tidak didukung, saya memanggil TELNET karena port 23, pertukaran teks langsung, dan klien TELNET hebat untuk interaksi (diuji pada klien ConnectBot dan Linux Android, utilitas telnet bekerja dengan benar dengan variabel ekspor environment TERM = VT100, parameter -8 dan transisi selanjutnya ke mode karakter ^] karakter mode).Fitur yang patut diperhatikan, ESP8266 dapat berfungsi baik sebagai titik akses dan sebagai klien jaringan nirkabel pada saat yang sama. Ini sangat penting untuk toleransi kesalahan - ini memungkinkan Anda untuk terhubung ke terminal jika terjadi kegagalan peralatan jaringan.Firmware aslinya ditulis dalam bahasa Sming . Kelebihan utama dari Sming adalah Anda tidak perlu memahami SDK ESP8266 Cina, untuk semua kebutuhan sudah ada bungkus yang dapat dicerna, apakah itu server WEB, memperbarui firmware melalui udara atau bekerja dengan GPIO. Tetapi ketika menggunakan pembungkus server TCP untuk mengimplementasikan TELNET ketika mentransfer volume besar, koneksi terputus, dan ESP8266 digantung. Ada upaya untuk beroperasi langsung dengan API lwip ...Tetapi pada titik ini saya menemukan proyek ESP8266-transparan-jembatan. Diputuskan hanya untuk bercabang untuk pelaksanaan perintah untuk mengontrol tombol daya, segala sesuatu yang lain telah dilakukan oleh pembuatnya. Bala menambahkan perintah AT+++AT PWBTN <duration: SHORT | LONG | HARDRESET>
Ada kekurangan dalam firmware. Jika sejumlah besar informasi dikeluarkan ke terminal pada suatu waktu, maka beberapa data mungkin hilang. Namun, ESP8266 bukan Moxa NPort dan kemampuannya terbatas. Sebagai contoh, jika kita membuat dmesg, maka kita hanya akan melihat sebagian dari data, jadi kita harus menggunakan grep lebih sering dan lebih jarang dan menghindari tampilan panjang di layar. Secara umum, ada baiknya mencoba meningkatkan buffer transfer dalam firmware, sekarang hanya 1024 byte, sampai tangan Anda mencapai, membuatnya menjadi 32768 dan mungkin menjadi nyaman untuk bekerja dengan utilitas seperti htop.Konfigurasi mesin Linux
Di / etc / default / grub harus seperti:GRUB_CMDLINE_LINUX="console=ttyS0,115200n8"
GRUB_TERMINAL=serial
GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
Untuk menampilkan menu bootloader dan mem-boot pesan ke port serial. Dalam hal ini, yang pertama dengan laju bit 115200. Setelah mengedit, jalankan perintah update-grub. Pada prinsipnya, ini dapat dibatasi, tetapi untuk berjaga-jaga, Anda masih dapat membuka terminal pada port serial, untuk ini buat /etc/init/ttyS0.conf dengan konten berikut:
start on stopped rc or RUNLEVEL=[2345]
stop on runlevel [!2345]
respawn
exec /sbin/getty -L 115200 ttyS0 vt102
Menghubungkan ke serverSeperti yang telah disebutkan, daya diambil langsung dari tegangan siaga catu daya atau dari port USB, output relai dihubungkan secara paralel dengan tombol daya, bantalan RS-232 dihubungkan dengan kabel langsung ke konektor IDC-10. Ada nuansa menempatkan perangkat di dalam case server, Anda harus mengeluarkan antena yang terhubung ke konektor u.fl perangkat untuk case Wi-Fi. Tentu saja, ini tidak dapat dilakukan jika kasingnya relatif transparan, misalnya, terbuat dari kayu.
Perhitungan biaya
$ 3 untuk ESP8266, $ 1 untuk 10 buah MAX232, sisanya biasanya di pertanian.Peragaan video
Sumber besi dan perangkat lunak di sini .