Saya memiliki akses SSH, dan saya telah menginstal Xming, bersama dengan font Xming. Saya telah mengkonfigurasi Putty untuk meneruskan x11 dan menyuruhnya meletakkan desktop di localhost: 0, sesuai dengan instruksi di sini .
Namun, setelah saya masuk, dan startx
, saya tidak mendapatkan apa-apa. Atau lebih tepatnya, ia menjalankan banyak pesan yang tampaknya mengatakan semuanya berfungsi, tetapi saya mendapatkan kursor di jendela konsol saya yang bertindak seperti sedang menunggu. Dan itu saja.
Apa yang saya lewatkan? Apakah saya perlu membuka sesuatu untuk melihat desktop?
Saya ingin meneruskan desktop saya ke PC kerja saya, sehingga saya dapat bermain dengan RasPi saat makan siang tanpa secara fisik mencolokkan perangkat kerasnya. Tolong bantu.
EDIT:
Cuplikan layar tentang apa yang terjadi dengan Xming yang berjalan, dan saya SSH masuk dan memanggil startx
:
EDIT 2:
Jawaban ini mengatakan startx
tidak perlu, karena ia memulai server RasPi X, dan saya menggunakan server Xming pada Windows. Dalam hal itu, bagaimana saya bisa sampai ke desktop / GUI di Xming dari Windows? Karena, bahkan dengan menjalankan Xming, dan SSH diaktifkan, saya tidak mendapatkan apa pun kecuali prompt konsol normal. Mungkin saya salah melakukannya. Apa yang saya inginkan adalah RasUI GUI saya yang normal dan berjalan di jendela pada PC Windows jarak jauh saya. Saya tidak ingin menggunakan VNC. Saya meneruskan melalui Internet. Bagaimana saya sampai di sana?
Jawaban:
Jika Anda mulai Xming di komputer Windows Anda, maka Anda sudah memiliki server X yang berjalan. Anda tidak harus memulai server X menggunakan Raspberry Pi Anda
startx
. Aplikasi X Anda akan berjalan pada Raspberry Pi tetapi aplikasi tersebut akan menarik ke server Xming X Windows.Dokumentasi yang Anda tautkan , menyatakan bahwa Anda harus menjalankan X server pada Windows, dan tidak menyebutkan bahwa Anda harus memulai X server di Linux. Dalam kalimat terakhir dari dokumentasi:
"Aplikasi X" merujuk bukan ke server X (yang harus dimulai oleh
startx
) tetapi aplikasi seperti xclock, xeyes, dan sebagainya.Satu aplikasi X khusus adalah sesi yang akan memulai manajer sesi standar LXDE (setidaknya pada Raspbian saya). Memulai aplikasi ini di konsol akan memberi Anda "GUI lengkap" yang Anda cari:
Secara pribadi saya merasa tidak berguna untuk memulai
lxsession
, memulai aplikasi X pada konsol jauh lebih mudah bagi saya.sumber
Menggunakan Cygwin / X
Jika Anda tidak terikat dengan Xming, Anda bisa menggunakan Cygwin / X untuk menjalankan server X di Windows.
Mempersiapkan Raspberry Pi
Cobalah untuk membuat koneksi SSH biasa dari Windows ke Raspberry Pi menggunakan PowerShell:
Mengingat Raspbian Buster termasuk
X11Forwarding yes
dalam/etc/ssh/sshd_config
, Raspberry Pi Anda juga harus dapat meneruskan output visual aplikasi X11 ke server X pada Windows.Langkah selanjutnya menunjukkan cara menginstal X server itu.
Instal Cygwin / X di Windows
Cygwin / X menyediakan server X untuk Windows yang menampilkan aplikasi GUI yang berjalan pada Raspberry Pi.
Unduh dan jalankan
setup-x86_64.exe
dari situs web Cygwin .Untuk "Direktori Paket Lokal" Cygwin, Anda dapat menggunakannya
C:\Users\me\AppData\Roaming\Cygwin
.Pilih server di dekat Anda untuk mengunduh paket.
Setel "Lihat" menjadi "Penuh" dan cari
xinit
.Di kolom "Baru", gunakan menu tarik-turun untuk mengubah nilai dari "Lewati" ke
xinit
versi terbaru:openssh
dengan cara yang sama.Sambungkan ke Raspberry Pi dari Windows
Cygwin-X → XWin Server
. Ini tidak akan membuka jendela apa pun, tetapi Anda akan melihat dua ikon baru di baki sistem Anda:Mulai terminal Cygwin:
Cygwin → Cygwin64 Terminal
Setel
DISPLAY
variabel lingkungan ke tempat server X pada Windows berjalan:export DISPLAY=:0.0
Terhubung ke Raspberry Pi Anda dengan penerusan X11:
ssh -Y pi@raspberrypi
Di dalam sesi SSH, Anda sekarang dapat memulai aplikasi X pada Raspberry Pi seperti Thonny :
Atau, seperti yang pengguna1297 sebutkan dalam komentar pertanyaan, Anda dapat berlari
x-session-manager
untuk meniru pengalaman yang Anda dapatkan saat menghubungkan ke Raspberry Pi melalui HDMI pada monitor eksternal:Jika Anda ingin memulai aplikasi secara langsung tanpa terlebih dahulu mengetikkan namanya di shell, gunakan ini:
Di macOS
XQuartz menyediakan server X untuk macOS.
Instal XQuartz, logout dan kembali (untuk membuat nilai
DISPLAY
efektif baru), kemudian jalankan aplikasi dengan SSH dari Bash:sumber
Jika Anda sudah menjalankan server X pada Windows (seperti halnya Anda menggunakan Xming), maka sisi Windows sebagian besar sudah selesai (tetapi lihat di bawah untuk beberapa detail penting). Bit kunci yang tersisa adalah memberi tahu aplikasi X11 pada pi untuk mengirim data X11 mereka ke PC Windows Anda.
Ini dilakukan melalui
DISPLAY
variabel lingkungan. Biasanya, jika server X dan aplikasi berjalan di komputer yang sama, DISPLAY hanya akan menentukan nomor server (misalnya:0
jika Anda hanya menjalankan satu server X) atau mungkin server dan layar (mis:0.0
.). Karena tidak ada alamat IP, ini memberi tahu pustaka X aplikasi bahwa server tersebut adalah lokal dan koneksi akan dibuat sesuai (mungkin melalui beberapa jenis transportasi memori bersama).Untuk memberi tahu aplikasi agar mengirim data X11 ke node jarak jauh, sertakan alamat IP dalam
DISPLAY
variabel. Sebagai contohexport DISPLAY=192.168.1.10:0
,. Ini akan memberi tahu semua aplikasi X11 bahwa mereka perlu membuka koneksi TCP ke X server # 0 pada node 192.168.1.10. Nama host DNS baik-baik saja di sini, jika Anda mendapatkannya di jaringan Anda.Dua potensi masalah
Seperti yang saya tulis di paragraf pertama, menjalankan Xming mungkin tidak cukup. Mungkin diperlukan konfigurasi tambahan.
Yang pertama adalah bahwa server X11 Anda harus dikonfigurasi untuk menerima koneksi dari node jarak jauh melalui TCP. Banyak server X yang didistribusikan hari ini (saya tidak tahu tentang Xming) hanya menerima koneksi dari aplikasi yang berjalan secara lokal kecuali jika Anda mengkonfigurasinya secara eksplisit. Ini adalah fitur keamanan, karena setiap soket terbuka adalah vektor potensial untuk serangan.
Yang kedua adalah bahwa server X11 Anda memelihara database host / pengguna yang diizinkan untuk terhubung. Anda perlu memasukkan alamat IP Raspberry Pi Anda ke daftar putih. Anda dapat melakukan ini dengan menjalankan
xhost
perintah dari Xming di Windows, misalnya, dari konsol yang berjalan di xterm. Anda juga dapat mengetikxhost +
untuk menonaktifkan pemeriksaan keamanan ini, tetapi itu berbahaya karena akan memungkinkan aplikasi apa pun dari mana saja di dunia untuk membuka koneksi ke layar Anda. Jika Anda berada di belakang firewall pada LAN di mana Anda mempercayai semua orang (misalnya rumah Anda sendiri), itu pendekatan yang paling mudah, tetapi luangkan waktu untuk mengonfigurasi dengan benarxhost
jika Anda tidak.Alternatif:
ssh -Y
Menggunakan pendekatan di atas, aplikasi X11 Anda akan mencoba membuka koneksi TCP ke server X Anda. Koneksi ini tidak aman. Seseorang pada paket pengintaian LAN Anda dapat mencegatnya.
Untuk mengatasi masalah ini, alih-alih mengatur variabel DISPLAY pada Raspberry pi, gunakan
-Y
parameter saat menghubungkannya (misslogin -Y hostname
.). Parameter -Y (seperti -X) akan membuat terowongan antara node untuk membawa lalu lintas X11. Ini akan menjaga lalu lintas X11 terenkripsi dan aman. Itu juga akan menetapkan variabel lingkungan DISPLAY sendiri sehingga aplikasi akan menggunakan terowongan. Ini juga dapat menghilangkan kebutuhan untuk mengacaukanxhost
karena (sejauh menyangkut server X Anda) koneksi berasal secara lokal (dari sisi yang berasal dari terowongan SSH).sumber