Linux: Bagikan keyboard melalui jaringan


12

Seperti judulnya, saya ingin menggunakan keyboard jarak jauh secara lokal. Keyboard jarak jauh harus dapat digunakan dalam TTY dan, jika mungkin, di X-Server juga. Apakah ada driver (modul kernel) yang meniru keyboard "palsu" dengan transparansi jaringan?

Jawaban:


16

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.


2
Saya lebih beruntung dengan nc -l 4444, tanpa -p. Menurut man nc, -psecara eksplisit dilarang dalam kombinasi dengan -l. Kalau tidak, ini adalah solusi yang fantastis dan hanya apa yang saya butuhkan :)
Magnus Hoff

1
Saya sangat menyarankan Anda untuk menggunakannya melalui koneksi aman atau lokal (meskipun itu juga tidak benar-benar aman). Ada snetcat, ('secure netcat') yang dapat berfungsi jika Anda mengimpor sertifikat (buka, google it :-). Selain itu, harap terima solusi Anda, pertanyaan ini masih 'terbuka'.
pruzinat

itu akan lebih besar jika mendukung copy paste !!
Chenming Zhang

Solusi luar biasa! Saya terkesan Anda berhasil memecahkan ini. Apakah Anda menemukan solusi untuk menonaktifkan output di satu mesin saat menjalankan yang lain?
Cestarian

7

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.


Sinergi + adalah 'garpu' sinergi yang masih dipertahankan untuk perbaikan bug. Selain itu, sinergi cepat tersedia di beberapa repositori paket Debian dan menyediakan pembungkus GUI untuk sinergi.
Josiah

3
Sebenarnya Synergy tergantung pada X-Server. Saya butuh solusi yang bekerja di TTY. Jika saya tahu cara meniru penekanan tombol dalam TTY, saya akan mencoba untuk menulis aplikasi kecil sendiri. Sayangnya saya tidak dapat menemukan sesuatu yang berharga di Google. Mungkin seseorang bisa memberi saya beberapa petunjuk?
timn

5

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.

Sinergi


0

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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.