Jawaban:
Saya menemukannya sendiri.
Pertama-tama pastikan Anda telah memuat modul kernel evdev di kedua mesin.
Di mesin jarak jauh yang Anda jalankan:
$ cat /dev/input/by-path/platform-i8042-serio-0-event-kbd | nc <IP> 4444
Dan pada klien:
$ nc -l -p 4444 > /dev/input/by-path/platform-i8042-serio-0-event-kbd
(Catatan: Jika Anda menggunakan netcat dari netcat-openbsd, misalnya di Ubuntu atau Fedora, jangan gunakan '-p')
Ini berfungsi dengan baik tidak peduli apakah saya di TTY atau di X.org. Dan itu berjalan tanpa penundaan!
Sayangnya semua tombol diketik di mesin jarak jauh juga. Apakah ada cara untuk menonaktifkannya sementara saat nc berjalan? Saya berpikir tentang menjalankan beberapa seperti menjalankan "kucing -" pada mesin jarak jauh tetapi Ctrl-C akan membuatnya berakhir tentu saja.
Synergy akan membagikan keyboard melalui jaringan antara beberapa mesin. Jika tidak langsung melakukan apa yang Anda inginkan, saya yakin ada kode di sana yang akan memudahkan Anda mengaturnya.
Lihatlah Synergy .
Synergy adalah Perangkat Lunak Bebas dan Sumber Terbuka yang memungkinkan Anda berbagi mouse dan keyboard dengan mudah di antara beberapa komputer, di mana setiap komputer memiliki tampilan sendiri. Tidak diperlukan perangkat keras khusus, yang Anda butuhkan hanyalah jaringan area lokal. Synergy didukung pada Windows, Mac OS X dan Linux. Mengarahkan mouse dan keyboard semudah memindahkan mouse dari tepi layar Anda.
Saran di atas untuk menggunakan nc (netcat) tidak berfungsi untuk saya.
Saya dapat membuka aliran input menggunakan perintah ini:
nc -l -p 4444 > /dev/input/by-path/platform-i8042-serio-0-event-kbd
Saya mendapat izin ditolak, bahkan jika saya melakukannya sebagai sudo. Mesin target memiliki instalasi linux yang sangat lama di atasnya, jadi mungkin / dev / input file perangkat hanya-baca saat itu.
Saya bisa menyelesaikan masalah ini menggunakan x2x, dan hasilnya sangat user-friendly.
Anda perlu melakukan "xhost +" pada mesin target, dan juga menggunakan gdmsetup untuk mengaktifkan koneksi jarak jauh (ini menghapus flag -nolisten untuk X saat berikutnya gdm meluncurkan sesi X).
Setelah itu, xserver Anda terbuka lebar untuk koneksi jarak jauh, dan x2x dapat menghubungkannya dari mesin sumber (keyboard)
x2x -to 192.168.1.3:0
Yang keren tentang x2x adalah ia memberi Anda sedikit jendela kontrol pada mesin sumber, dan acara keyboard hanya dikirim ke target ketika jendela itu difokuskan. Ini adalah cara yang sangat praktis untuk melakukannya (saya mengetik jawaban ini dari mesin sumber sekarang, dan tidak ada tombol yang tersesat yang mencapai mesin target, karena saya memiliki jendela kontrol yang tidak fokus). Juga, mengklik di bagian tengah jendela kontrol mulai meneruskan aktivitas mouse juga, dan mengklik 2 tombol mengakhiri pengiriman acara mouse. Juga, ketika Anda mengaktifkan penerusan mouse dengan klik di jendela kontrol, SEMUA kejadian keyboard dikirim ke target, dan tidak ada ke sumbernya. Dengan demikian, ALT-TAB dikirim ke target tanpa mendefokus jendela kontrol pada mesin sumber.
Saya memiliki virtual desktop yang diaktifkan pada mesin sumber, jadi saya hanya menempelkan jendela kontrol x2x pada desktop yang jauh dan hanya pergi ke sana ketika saya perlu mengendalikan mesin target.
Versi solusi ini ada di level X, di mana jawaban di atas ada di level perangkat linux. Tentu saja, ini tidak akan berfungsi sama sekali jika Anda tidak menjalankan X pada target dan sumbernya.
nc -l 4444
, tanpa-p
. Menurutman nc
,-p
secara eksplisit dilarang dalam kombinasi dengan-l
. Kalau tidak, ini adalah solusi yang fantastis dan hanya apa yang saya butuhkan :)