Dengan semakin populernya mini-PC seperti Raspberry Pi, dan klon serupa, ada banyak kasus untuk digunakan dalam infrastruktur TI perusahaan, rumah pintar / pondok / garasi, dan dalam aplikasi lainnya.
Salah satu kasus yang mudah dan diinginkan adalah penggunaan RPi sebagai thin client yang terhubung melalui RDP ke sistem berbasis Windows.
Jika Anda tertarik cara mengatur tempat seperti itu berdasarkan Raspberry Pi, dan sedemikian rupa untuk "mengatur dan melupakan" - selamat datang di kucing. Ada gambar yang sudah jadi untuk yang benar-benar malas (lihat bagian 6.B).
Khususnya, dalam pengalaman saya (spesialis otomatisasi akuntansi / manajemen), saya sering harus mengatur tempat kerja yang tujuan utamanya adalah mengakses program (kebanyakan berwarna kuning), suite kantor, Internet, dan surat. Terkadang - bekerja dengan flash drive. Server, pada saat yang sama, sudah ada di perusahaan.
Pada saat yang sama, stasiun itu membutuhkan kebisingan, kekompakan, dan keandalan yang rendah. Atau, mari kita jujur, murah. Terutama jika pertanyaannya adalah tentang ritel, di mana semuanya harus "dipaku."
Pada saat yang sama, di masa lalu, banyak solusi dicoba dalam bentuk klien tipis "besi" khusus, tetapi karena sejumlah alasan mereka ternyata tidak nyaman. Di suatu tempat, tugas terkait yang spesifik diperlukan, seperti meneruskan printer ke server, yang tidak dapat mereka atasi. Di suatu tempat, meja perlahan muncul, yang membuat penggunanya gila. Di suatu tempat klien kurus hanya bekerja melalui satu tempat, dan tidak mungkin untuk memahami mengapa. Di suatu tempat beban jaringan berubah-ubah tidak berfungsi, atau parameter tidak ditransfer melalui DHCP.
Oleh karena itu, entah bagaimana dengan cara alami, semuanya sampai pada kesimpulan bahwa lebih mudah untuk membeli nettop sampah dan mengenakannya set minimal perangkat lunak daripada menebak permainan dengan besi yang tidak jelas, ditambah dengan biaya Anda sendiri, karena di mana dan apa yang tidak bekerja tidak diketahui sebelumnya. , tetapi diketahui pasti bahwa semuanya seharusnya baik-baik saja, dan tidak memakan banyak waktu.
Artikel itu agak terlambat dengan relevansinya. Jika Anda kembali ke program kuning yang sama, maka dalam beberapa tahun terakhir platform telah berkembang, ia memiliki klien tipis sendiri, dan relevansi penerapannya dalam mode desktop jarak jauh telah menurun.
Tetapi ada sejumlah tugas lain di mana workstation yang tenang dan andal yang terhubung melalui RDP akan sesuai. Dan dalam beberapa tahun terakhir, biaya PC mini telah melonjak sejauh ini, dan komputer standar dan nettop, telah menjadi lebih menguntungkan (biaya perangkat keras, satu jam kerja spesialis, ditambah lisensi CAL / TCAL untuk Windows Server) untuk membangun solusi seperti itu.
Pernyataan masalah
Jadi, berdasarkan Raspberry Pi kita
perlu menggunakan klien RDP yang tipis, "memakukan" ke server tertentu, plus menyediakan koneksi ulang jika terjadi kegagalan.
Interaksi pengguna dengan perangkat itu sendiri harus dikecualikan. Dengan demikian, tidak ada perintah desktop dan konsol lokal. Kata sandi dimasukkan hanya untuk sesi RDP.
Sebagai bonus, - atur USB-drive yang dapat dipasang secara otomatis dan dilepas.
Diberikan:- Raspberry Pi 3 Model B 1Gb murni, atau 4 Model B 1 Gb
- 5v 2A adaptor daya,
- Kabel HDMI
- adaptor dengan HDMI ke monitor (jika monitor tidak memiliki port HDMI built-in),
- Kabel Ethernet (atau keberadaan jaringan WiFi),
- Kartu memori MicroSD dengan 8 GB atau lebih (4 GB sudah cukup objektif, tetapi menurut saya Anda dapat membeli kartu 4 GB hanya di museum).
- monitor, keyboard, mouse untuk Raspberry.
Pada saat instalasi - komputer (laptop) dengan Windows atau Linux, adaptor kartu microSD untuk itu.
Diasumsikan bahwa pembaca memiliki keterampilan dasar mengelola sistem Linux, dan pertanyaan "membuat dan mengedit file, menyalin teks dari artikel ini ke dalamnya" atau "terhubung melalui SSH" tidak akan menyebabkan kesulitan. Namun, kadang-kadang saya membiarkan diri saya melakukan perjalanan yang lebih dalam, bagi mereka yang mungkin tidak pernah bertemu secara khusus dengan Raspbian.
Logika umum: mengkonfigurasi sistem dasar, menginstal klien RDP, mengkonfigurasi login otomatis, menguji, memperbaiki masalah.
Ini juga akan menjelaskan cara mengkloning perakitan jadi ke Raspberry lain.
Tata letak perangkat lunak itu sendiri tidak rumit, lahir dalam satu atau lain bentuk sekitar 9 tahun yang lalu - seperti yang saya ingat sekarang, saya melakukannya di bawah Debian Etch. Sejak itu, itu telah sedikit berubah dari versi perangkat lunak dan perangkat keras ke versi, dan sekarang saatnya untuk port ke Raspberry.
Konsumsi waktu yang direncanakan sekitar 30 menit.
1. Menyiapkan sistem dasar
1.1 Unduh gambar sistem
Kami akan memilih Raspbian sebagai sistem.
Pada saat penulisan,
ini dapat dilakukan di sini . Versi saat ini adalah Buster.
Pilih Gambar Minimal Berdasarkan Debian Buster.

Unduh arsip ZIP untuk mendapatkan satu-satunya file .img.

1.2 Menuliskannya ke kartu flash
a) Di bawah WindowsUnduh program
Rufus dari
situs resmi . Versi portabel sudah cukup.
Jalankan program, pilih SD-card dan gambar ditarik keluar dari arsip di paragraf 1.1.

Tekan tombol "MULAI", konfirmasikan penghancuran data pada kartu SD, tunggu prosesnya selesai (sekitar 5 menit).
Keluarkan kartu dengan aman.
b) di LinuxJalankan perintah:
# dd if=2019-09-26-raspbian-buster-lite.img of=/dev/< SD-> bs=4M
Tunggu selesainya proses, tarik keluar kartu.
1.3 Menyebarkan sistem ke RPI
Kami mengatur ulang kartu ke perangkat target. Kami menghubungkan mini-PC dengan monitor, keyboard, mouse, dan menerapkan daya ke sana.
Setelah beberapa waktu, tanpa mengajukan pertanyaan tambahan, mini-PC akan reboot ke sistem yang baru digunakan, dan akan mengundang Anda untuk memasukkan login dan kata sandi Anda.
Secara default, ini
pi: raspberry.
1.4 Masuk dan ubah kata sandi Anda
# passwd pi
atau
$ sudo passwd pi
(Saya sengaja menjalankan passwd untuk pi pengguna sebagai root sehingga Raspbian tidak mengganggu kami dengan persyaratan keamanan untuk kata sandi, tetapi menerimanya dan menerimanya)
Anda tidak dapat langsung masuk sebagai root kecuali Anda secara eksplisit mengatur kata sandi untuk itu. Secara umum, ini tidak buruk. Maka semua perintah yang harus dijalankan di bawah superuser harus dieksekusi dari pengguna pi dengan perintah awalan sudo. Seperti di Ubuntu.
Misalnya (
lelucon terkenal, jangan lari! )
$ sudo rm -rf --no-preserve-root
Namun, karena saya malas secara patologis, kemudian, masuk ke Raspbian, atau di Ubuntu yang sama, saya mengetik:
$ sudo bash
Dan saya mendapatkan undangan #, sudah dengan hak tinggi. Jadi saya bekerja.
Sebenarnya, melakukan itu tidak baik, tetapi pada tahap pengaturan awal sistem ini menghemat banyak waktu.
Selanjutnya, jika perintah di atas didahului oleh #, maka mereka harus dieksekusi di bawah superuser. Jika dengan $, maka di bawah pengguna (biasanya ditunjukkan di atas di mana).
2. Menginstal perangkat lunak yang diperlukan "minimal", menguji koneksi
2.1 Mengkonfigurasi Jaringan
Untuk melakukan ini, jalankan utilitas administratif dengan menjalankan perintah:
# raspi-config

(Navigasi dilakukan dengan panah, tabulasi, Enter - choice, ESC - return)
Buka
Opsi Jaringan .
Tetapkan nama komputer (titik
N1 Hostname ), misalnya
TERM1 .
Jika komputer terhubung ke jaringan dengan kabel Ethernet dan menerima alamat DHCP, maka tidak ada lagi yang perlu dilakukan.
Jika Anda perlu mengkonfigurasi jaringan WiFi, maka lakukan (titik
N2 Wi-Fi ). Pilih negara Anda.
Nama jaringan harus dimasukkan secara manual, tidak ada ikhtisar yang disediakan. Kami menentukan
kata sandi .
Kemudian
Selesai -> Selesai .
Reboot berdasarkan permintaan, atau dengan perintah:
# reboot
Setelah masuk kembali, pastikan Anda memiliki akses Internet.
# ping 8.8.8.8
2.2 Sistem pembaruan
Perbarui informasi tentang paket yang tersedia.
# apt-get update
Sekarang perbarui sistem (Opsional, tetapi sangat diinginkan. Dapat dilakukan nanti.)
# apt-get upgrade
Tahap ini bisa memakan waktu lama (saya punya sekitar 15 menit), karena RPi bootloader biner diperbarui, yang membongkar banyak file kecil ke kartu SD.
Harap dicatat bahwa segera setelah unduhan selesai dan pembongkaran dimulai, beberapa paket jahat akan meminta Anda untuk menekan "q", menghentikan proses. Anda harus mengklik sebelum Anda terganggu oleh hal-hal lain untuk menunggu.
Di akhir pembaruan, Anda harus reboot
# reboot
2.3 Pasang lokal dan tata letak Rusia
Lagi dalam utilitas administrasi:
# raspi-config
Ikuti
Opsi Pelokalan , di sana:
- Ubah Lokal , hapus * dari en-GB.UTF-8 dan instal berlawanan ru-RU.UTF-8 . Kami mengkonfirmasi, dan di jendela berikutnya kami memilihnya sebagai yang utama.
- Ubah Zona Waktu , dan pilih zona waktu negara dan kota Anda.
- Ubah Tata Letak Keyboard , ada Generik 105-key (Intl) PC → Lainnya → Rusia → Rusia → Control + Shift (atau Alt + Shift, jika diinginkan, untuk beralih tata letak) → Tidak ada switcher sementara → Alt Kanan (AltGr) → Tidak ada tombol penulisan .
Konfirmasikan dan keluar -
Selesai →
Selesai .
Kami meninggalkan utilitas administrasi, jalankan perintah:
# dpkg-reconfigure console-setup
pilih
UTF-8 →
Tebak set karakter optimal →
Biarkan sistem memilih ... (bawah) →
8x16 .
Font kemudian menjadi lebih tipis secara visual, tetapi yang utama adalah mereka sekarang mendukung alfabet Cyrillic.
Kami reboot, masuk, menguji tata letak bahasa Inggris, beralih dan tata letak Rusia.
2.4 Ditentukan dengan perangkat lunak tambahan dan editor
Untuk bekerja dengan file, menavigasi struktur folder dan mengedit file, saya sangat suka
Midnight Commander , oleh karena itu:
# apt-get install mc
Saya meluncurkannya di bawah hak root, dan pertama kali saya menggunakan editor (tombol F4 pada beberapa file) saya memilih
mcedit (poin 2).
Tentu saja, Anda dapat mengedit file menggunakan alat pilihan Anda. Misalnya, menggunakan nano, atau bahkan VIM.
2.5 Pasang server ssh
# apt-get install ssh
Mengedit / etc / ssh / sshd_config. Batalkan komentar pada baris:
ListenAddress 0.0.0.0
Buka kunci muat otomatis
# systemctl enable ssh.service
Mulai ulang layanan
# systemctl restart ssh.service
Kami menemukan alamat IP dengan perintah
# ifconfig
Dan sekarang kita dapat terhubung ke perangkat dari jarak jauh dari komputer sumber melalui SSH (di bawah Windows saya pribadi suka
PuTTY SSH client) untuk mengkonfigurasi dari workstation yang nyaman dan dapat menyalin dan menempelkan teks dari artikel ini ke konfigurasi. Saya mengingatkan Anda bahwa login adalah
pi , bukan root.

Tindakan lebih lanjut saya sarankan melakukan persis melalui SSH, kecuali dinyatakan sebaliknya.
2.6 Memindahkan partisi yang mudah menguap ke disk virtual
Misalnya,
/ tmp dan
/ var / log , untuk:
- sistem tidak mempertajam kartu SD,
- ada sedikit kemungkinan bahwa sistem file root akan berantakan selama pemadaman listrik,
- sehingga di masa depan yang jauh, log tidak memblokir ruang kosong di peta.
Untuk melakukan ini, tambahkan baris ke
/ etc / fstab :
tmpfs /var/log tmpfs defaults,noatime,nosuid,mode=0755,size=100m 0 0 tmpfs /tmp tmpfs defaults,noatime,nosuid,size=100m 0 0
Jangan lupa untuk membuat satu baris di akhir file.
Di sini, bagian
/ var / log dan
/ tmp masing -masing dialokasikan 100 mb memori (hanya akan digunakan saat penuh). Gigabyte Pi, yang hanya digunakan untuk RDP, pengeluaran ini tidak akan menghalangi apa pun.
Reboot sistem, dan kemudian jalankan perintah:
# df
dan pastikan partisi sudah dipasang di tmpfs (3 dan 4 kolom mungkin berbeda):
tmpfs 102400 8 102392 1% /tmp tmpfs 102400 224 102176 1% /var/log
2.7 Kami akan mendapatkan pengguna di bawah siapa kami akan, kemudian, secara otomatis meluncurkan shell grafis
Jalankan perintah:
# adduser user
Tetapkan kata sandi yang sewenang-wenang. Segala macam nama dan telepon dapat dilewati. Konfirmasi
2.8 Instal X-server dalam versi minimal
Jalankan perintah:
# apt-get install xserver-xorg xinit xterm x11-xserver-utils
Ini mungkin memakan waktu sekitar 5 menit.
Sekarang Anda harus
duduk di terminal fisik (dalam arti monitor, keyboard dan mouse yang terhubung langsung ke Pi), masuk sebagai pengguna pengguna dan jalankan perintah:
$ startx
Gambar berikut ini akan muncul di layar, yang berarti x-server telah berhasil diinstal, dan Anda dapat melanjutkan.

Kami mengarahkan kursor ke atas (itu penting, karena tidak ada jendela yang membentuk bingkai dan judul jendela, dan jendela itu tidak akan menerima teks tanpa fokus eksplisit) dan ketik
$ exit
untuk kembali.
2.9 Instal perangkat lunak untuk bekerja dengan desktop jarak jauh
Saya pribadi suka
rdesktop . Ini, tentu saja, bukan tanpa nuansa (lihat bagian "Ekstraksi Rake"). Ada beberapa alternatif seperti
xfreerdp ,
remmina , dll., Meskipun mereka juga mengeluhkannya.
Saya akan memberikan contoh untuk yang pertama.
# apt-get install rdesktop
Buat skrip yang menjalankan rdesktop di layar penuh. Di direktori
/ home / pengguna, buat file
runrdp (lebih disukai sebagai pengguna):
Jika Anda telah memilih klien RDP lain, maka tulis baris perintah untuk itu di sini, atau gunakan massa parameter tambahan yang dimiliki rdesktop. Anda bahkan dapat membuat hardcode kata sandi untuk masuk secara otomatis.
Anda harus meletakkan hak untuk berjalan di skrip ini, dan jika Anda membuatnya sebagai root, maka pemiliknya adalah pengguna.
# chmod 755 /home/user/runrdp # chown user:user /home/user/runrdp
Sekarang, mari kita pergi ke konsol fisik di bawah pengguna, mulai startx, di terminal grafik yang terbuka (lihat gambar di atas), ketik:
$ ./runrdp
Jendela untuk menghubungkan ke desktop jarak jauh akan muncul di layar.

Jika:
a) konsol menampilkan sesuatu tentang kesalahan CredSSP,
b) mode layar penuh dalam FullHD meninggalkan tepi gelap (seperti pada gambar-foto No. 4 dalam artikel ini, meskipun ada mode konsol, tetapi Anda dapat melihat ujungnya)
kemudian lihat bagian Ekstraksi Rake.
Dan jika semuanya OK, maka batalkan login sistem (Esc, atau item menu "Nonaktifkan"), drop out ke terminal x, ketik keluar, kembali ke konsol.
3. Otomatisasi sesi pengangkatan
Jika semua langkah sebelumnya berhasil, maka inilah saatnya menyatukan semuanya.
Untuk melakukan ini, kita akan membuatnya sehingga ketika sistem dimulai, pengguna secara otomatis login ke terminal, memulai server X dan terhubung ke RDP di bawahnya. Dengan demikian, kata sandi hanya akan diminta untuk sesi RDP, yang akan menyelamatkan pikiran pengguna yang belum matang dari keterampilan menjinakkan Linux yang tidak perlu.
3.1 RDP tak terbatas
Mari kita membuat skrip yang, ketika memulai x-server, akan tanpa henti mencoba membuka sesi RDP.
Untuk melakukan ini, di direktori
/ rumah / pengguna membuat file autorun di awal sesi-X
.xinitrc , konten berikut:
setxkbmap -option terminate:ctrl_alt_bksp
3,2 Infinite X server
Kami akan memperbaiki skrip yang menentukan mulai otomatis dari program dan pengaturan profil selama login konsol sehingga sesi-x dimulai secara otomatis, tetapi hanya ketika pengguna masuk ke terminal 1.
Terima kasih kepada gecube untuk mengingatkan saya untuk menonaktifkan screensaver. Secara default, ini adalah layar hitam, yang, bagi kebanyakan monitor modern, agak berbahaya.
Mari kita edit / home / pengguna / profil ,
tambahkan baris berikut di sana:
… if [ -z "$DISPLAY" ] && [ $(tty) = "/dev/tty1" ]; then startx clear echo " 5 " sleep 5 exit fi
3.3. Sedang menguji banyak
Kami reboot Pi, duduk di terminal, masuk sebagai pengguna. Kami mendapatkan jendela awal sesi di layar, seperti pada gambar di atas.
Kami mencoba menolak untuk memasukkan kata sandi (esc, atau tergantung pada versi Windows) - kami mendapatkan jendela yang sama untuk awal sesi (mis. Skrip kami dari 3.1 selalu terhubung kembali).
Kami menunggu sekitar satu menit (tergantung pada server) tanpa menyentuh keyboard dan mouse - jendela untuk memulai sesi harus segera dimatikan (sesi RDP pada tahap entri kata sandi tanpa aktivitas berakhir dalam batas waktu). Itu, tentu saja, karena klausa 3.1, akan terhubung kembali.
Sekarang tekan
Ctrl + Alt + BkSp . Sesi X harus dihentikan, sebuah tulisan tentang menunggu 5 detik akan ditampilkan, setelah itu sesi konsol juga akan berakhir. Layar akan meminta Anda untuk memasuki terminal dengan nama pengguna dan kata sandi.
Jika semuanya begitu - sangat baik.
Kami hanya perlu login otomatis ke terminal.
3.4 Autologin berulang oranye yang sangat lezat di tty1
Untuk melakukan ini, dari root, buat file
/etc/systemd/system/getty@tty1.service.d/autologin.conf dengan konten berikut:
[Service] ExecStart= ExecStart=-/sbin/agetty --autologin user --noclear %I 38400 linux
Lalu:
#systemctl enable getty@tty1.service
Kami reboot, pastikan bahwa konsol fisik secara otomatis login sebagai pengguna, X server dimulai dan sesi RDP terbuka, dan kemudian semuanya seperti pada 3.3.
Tekan Ctrl + Alt + BkSp, tunggu koneksi ulang.
Kami memasuki sistem, uji switching, pekerjaan tata letak. Jika ada sesuatu yang salah, lihat bagian 4.
Ini menyelesaikan pengaturan.Pengguna harus diinstruksikan bahwa jika terjadi kesalahan (layar menjadi kosong, sesuatu membeku, dll.), Mereka pertama-tama menekan Ctrl + Alt + BkSp dan menunggu reaksi.
Lihat juga bagian 5 tentang pemasangan otomatis USB.
4. Ekstraksi penggaruk
Karena ini adalah OpenSource, ekstraksi rake adalah proses putus asa dan berkelanjutan. Saya akan mencoba untuk menguraikan kemungkinan utama menyapu, tetapi siapa yang tahu apa yang menunggu kita. Saya, secara pribadi, tidak pernah beruntung, dan tidak ada satu instruksi pun yang bekerja untuk saya tanpa perlu pencarian tambahan.
4.1 Masalah dengan penggunaan resolusi layar yang tidak lengkap
Gejala: Dalam hal beberapa peralatan (adaptor HDMI-DSUB, beberapa monitor) raspbian tidak menggunakan semua resolusi yang tersedia dari monitor Full-HD. Bidang gelap tetap berada di antara informasi yang relevan dan tepi fisik layar.
Diatasi sebagai berikut:
Edit /
boot / config.txt , cari baris
# disable_overscan = 1
dan batalkan komentar itu.
Mulai ulang.
Sekarang bidang gelap dari tepi layar harus dihilangkan dalam mode konsol dan grafis.
4.2 Masalah dengan kursor mouse saat menghubungkan rdesktop ke server RDP modern
Ini terutama menyangkut Windows 2012, 2016, Windows 10, di mana tema kursor disertakan.
Gejala: kursor menghilang, tidak dapat ditarik dengan baik, setelah beralih ke non-standar (jam pasir, simbol I, panah pelebaran jendela, dll.) Lupa untuk beralih ke panah biasa.
Solusi: Sebagai pengguna server yang Anda sambungkan, buka properti mouse melalui panel kontrol, setel ulang tema menjadi "Tidak" dan matikan bayangan di bawah penunjuk.

Kursor harus patuh.
4.3. Masalah enkode dengan rdesktop
Gejala: dalam beberapa kasus, melalui koneksi RDP, karakter khusus salah ketik pada sistem jarak jauh: tildes, garis miring, tanda kutip, titik, tongkat vertikal. Terutama mulai membuat marah poin, karena mereka sering mengetik.
Solusi:
Di
/ usr / share / rdesktop / keymaps buat file
mentah dan isi dengan konten berikut:
include common map 0x419 grave 0x29 asciicircum 0x07 shift backslash 0x2b bar 0x2b shift apostrophe 0x28 greater 0x34 shift less 0x33 shift
Tambahkan argumen
mentah -k ke prompt perintah rdesktop di skrip
/ home / user / runrdp . Sebagai contoh:
rdesktop 10.0.0.1 -u user -k raw
Mulai ulang sesi di terminal dengan Ctrl + Alt + BkSp atau secara umum restart Pi.
Masukkan RDP, uji semua karakter khusus, termasuk dengan Shift pada garis angka keyboard dan tombol samping ke kiri dan kanan bagian surat, dengan Shift dan tanpa (tanda kutip, titik dua, tanda baca, stik, dll.). Semuanya harus bekerja.
4.4. Ketika Anda mencoba memulai rdesktop, sesi tidak terbuka, kesalahan CredSSP ditampilkan di konsol
CredSSP: Initialize failed, do you have correct kerberos tgt initialized ? Failed to connect, CredSSP required by server.
Sistem target memerlukan algoritma otentikasi klien modern, yang biasanya tidak dapat dilakukan rdesktop.
Opsi Solusi:
- Nonaktifkan otentikasi server dengan menurunkan pengaturan keamanan. Pada dasarnya, di lingkungan di mana Pi mencoba menggunakan RDP sebagai klien, ini seharusnya tidak terlalu menjadi masalah keamanan.
- Gunakan klien lain, misalnya freerdp, remmina, menggantikan konten skrip runrdp dengan baris peluncuran klien ini.
- Instal dan konfigurasikan klien kerberos, tapi bagaimanapun semuanya rumit di sana. Jika Anda ingin mencoba, mulailah dari sini .
4.5. Menghidupkan dan mematikan perangkat
Raspberry Pi tidak memiliki tombol mematikan. Ini buruk. Ternyata tidak ada cara yang efektif untuk menyalakan dan mematikannya. Banyak yang telah ditulis tentang ini, saya akan mencoba untuk meringkas secara singkat:
- Di satu sisi, kita tidak bisa mematikan perangkat sama sekali, hanya mematikan monitor. Sebenarnya, di mana saya meletakkan RPi, semuanya sudah selesai. Secara umum, perangkat hampir tidak panas, tidak mengkonsumsi listrik, tidak membuat suara. Monitor, sebelum pergi, pengguna akan mati.
- Anda dapat mengkonfigurasi night off dengan Cron, tetapi kemudian untuk menghidupkan RPi di pagi hari, pengguna harus menyulap kabel, atau catu daya.
- Anda dapat mengatasi masalah ini dengan membeli kabel suplai USB dengan tombol terbuka (untuk mengaktifkan RPi, Anda hanya perlu membuka rangkaian sebentar dengan tombol). 120 rubel menyenangkan. Tapi di sini, pengguna akan memiliki fungsi shutdown otomatis dengan cara yang sama seperti perangkat akan crash. Karena kami telah memindahkan partisi yang mudah menguap ke tmpfs, kemungkinan tidak akan ada masalah, tetapi masih tidak ada yang aman bahwa pengguna tidak akan masuk di pagi hari karena runtuhnya rootfs. Itu tidak berhasil, sehingga untuk mengatakan, solusi "dipaku".
- Ada solusi dengan tombol tambahan yang termasuk dalam port GPIO dan menyalakan / mematikan perangkat dengan lembut (dengan cara yang benar). Tapi pertanian kolektif ke gedung - itu menghabiskan berjam-jam dan meningkatkan biaya produksi.
- Namun, untuk RPi bahkan ada case dengan tombol built-in (Cina punya segalanya). Tapi saya pribadi belum mencobanya.
- Saya berpikir untuk menyalakan perangkat melalui pemutus kabel USB, dan mematikannya dengan hot key (seperti Ctrl + Alt + Shift + P), yang dipantau oleh layanan sistem, tetapi tidak mungkin untuk bekerja melalui solusi ini.
4.6 Beberapa koneksi ulang ke server RDP
Dalam skema saat ini, perangkat klien akan terhubung ke server menggunakan protokol RDP, menampilkan jendela login dan input kata sandi, dan jika pengguna tidak memasukkan apa pun, maka setelah beberapa waktu sesi akan diatur ulang dan klien RDP akan mulai lagi, dan begitu juga dengan infinitum iklan.
Dalam komentar tersebut, pengguna Mnemonik mengatakan bahwa dengan beberapa koneksi ulang permanen, Windows Server kehabisan memori, dan memberikan contoh bagaimana menyelesaikan masalah.
Saya akan membawa milik saya. Kami akan memodifikasi skrip .xinitrc sehingga setelah proses rdesktop berikutnya selesai, dialog modal muncul di layar yang mencegahnya tidak dimulai kembali sebelum mengklik OK.
Untuk melakukan ini, Anda dapat menggunakan xmessage biasa yang termasuk dalam paket xorg, tetapi windows yang dibuatnya sangat jelek sehingga monitor saya retak. Selain itu, aplikasi ini tidak ramah dengan bahasa Rusia, dan menyalakannya adalah tugas lain.
Saya terkesan dengan gxmessage, tanpa kekurangan ini, tetapi ia menarik GTK dan 25 megabita dependensi lainnya, yang juga tidak saya sukai. Baiklah, mari kita pilih kejahatan yang lebih rendah:
apt-get install gxmessage
Ubah skrip .xinitrc:
setxkbmap -option terminate:ctrl_alt_bksp
Sekarang, di antara upaya rdesktop untuk terhubung ke server, pesan yang sesuai akan ditampilkan di layar kita, dan tidak akan ada "pemboman" server yang konstan.
Setelah menyelesaikan skrip dengan mudah, Anda dapat memeriksa ulang ketersediaan jaringan server dan menampilkan pesan tentang menghubungkan kembali karena kurangnya komunikasi.
4.7 Mengkonfigurasi NTP
Terima kasih kepada gecube untuk mengingatkan saya tentang momen ini. Secara teoritis, waktu pada perangkat dapat "melayang" dari waktu ke waktu, yang dapat menyebabkan kesulitan dengan otentikasi, dan mungkin masalah lainnya.
Untuk memperbaiki masalah kecil ini, Anda harus menginstal program ntpdate dan mendaftar di cron tugas untuk memperbarui waktu setiap jam (perangkat akan membutuhkan akses Internet):
# apt-get install ntpdate # echo "0 * * * * root ntpdate pool.ntp.org" > /etc/cron.d/ntp
Jika Anda memiliki server NTP lokal di jaringan Anda, ganti nama host dengan milik Anda.
5 Opsional: menghubungkan, memutuskan koneksi dan meneruskan perangkat USB
Sebenarnya, bagian ini mencakup dua tahap penting. Pertama, mengelola perangkat USB untuk memastikan pemasangan otomatis dan setidaknya pelepasan yang dikontrol pengguna. Dan kedua, teruskan perangkat yang terhubung ke terminal sehingga mereka dapat diakses melalui jaringan.
5.1. Pengaturan Otomatis
Perangkat USB plug-in dengan sistem file akan dipasang di subdirektori dari direktori / media. Kami kemudian akan meneruskan direktori yang sama ke rdesktop.
Kami akan membutuhkan paket pmount.
# apt-get install pmount.
Kita juga perlu membuat aturan untuk udev yang akan menangkap perangkat yang terhubung dan memasangnya.Di /etc/udev/rules.d buat file 80-usbstick.rules dengan konten berikut: ACTION=="add", KERNEL=="sd[az][0-9]", TAG+="systemd", ENV{SYSTEMD_WANTS}="usbstick-handler@%k"
Sekarang buat layanan untuk systemd.Di / lib / systemd / system, buat file usbstick-handler @ .service dengan konten berikut: [Unit] Description=Mount USB sticks BindsTo=dev-%i.device After=dev-%i.device [Service] Type=oneshot RemainAfterExit=yes ExecStart=/usr/bin/pmount --umask 000 --noatime -w --sync /dev/%i /media/%i ExecStop=/usr/bin/pumount /dev/%i
Di / usr / local / bin, buat file unmount-devices dengan konten berikut:
Beri dia hak untuk lari. #chmod 755 unmount-devices
Tambahkan pengguna pengguna ke grup plugdev sehingga ia dapat menggunakan skrip ini (pumount memungkinkan anggota grup ini untuk memasang dan melepas perangkat) # adduser user plugdev
Mulai ulang. Jika semuanya dilakukan dengan benar, maka ketika memasukkan flash drive ke port USB mini-PC, setelah beberapa detik, folder sda1, dll., Akan muncul di direktori / media, di mana flash drive akan dipasang untuk membaca dan menulis.Perangkat dipasang dengan flag –sync, oleh karena itu, secara teori, jika Anda menarik perangkat ketika operasi penulisan selesai, seharusnya tidak ada masalah dengan keamanan data, namun, flag ekstraksi yang tidak aman akan tetap ada di perangkat.Kami akan menguji titik ini (masukkan USB flash drive, lepaskan USB flash drive, kemudian masukkan perangkat ke PC Windows dan perbaiki kesalahan yang mungkin terjadi).Sekarang masukkan perangkat ke Pi lagi, pastikan folder / media / sda1 muncul lagi.Jalankan unmount-perangkat dari bawah pengguna pengguna. sda1 dari / media harus hilang, dan perangkat harus dilepas dengan aman, dan tidak memberikan kesalahan saat dimasukkan ke PC Windows.5.2 Teruskan direktori / media oleh RDP dan sediakan perangkat pemasangan otomatis
Di / home / user / runrdp kami menambahkan argumen tambahan ke baris perintah rdesktop: rdesktop …... -r disk:USB=/media/
Sekarang edit /home/user/.profile , tambahkan panggilan ke unmount-devices. ... if [ -z "$DISPLAY" ] && [ $(tty) = "/dev/tty1" ]; then startx clear unmount-devices echo " 5 " sleep 5 exit fi
Mulai ulang.Sekarang, jika kita bekerja dalam sesi RDP, dan kita perlu menghubungkan disk USB ke Pi, kita cukup memasukkannya dan pergi ke komputer saya, di mana kita melihat kira-kira gambar berikut.
Kita dapat dengan bebas menggunakan perangkat ini, mereka akan muncul sebagai folder (sda1-xx, sdb1-xx, dll.)Jika kita perlu menghapus perangkat, cukup tekan Ctrl + Alt + BkSp. Sesi akan terputus (dengan demikian, setiap penyalinan ke perangkat harus terputus, bahkan jika itu dilakukan), konsol akan menampilkan pelepasan perangkat (saat ini mereka semua dihapus dengan aman) dan pesan menunggu 5 detik sebelum menyambung kembali ke RDP.Kemudian, setelah menyambung kembali, Anda dapat memasukkan kata sandi dan terus bekerja dari titik yang sama, tetapi perangkat yang terhubung sebelumnya akan dilepas. Pada titik ini, mereka dapat dihilangkan secara fisik.Ini menyelesaikan langkah konfigurasi.6. Mengkloning sistem ke Rpi lain
6.A Jika dikonfigurasi secara independen
Jika semua rake dilepas, perangkat berfungsi dengan baik, maka Anda dapat memperpanjang perakitan ke perangkat lain. Jika mereka dari jenis yang sama, maka tidak perlu mengulangi proses dari awal.Masukkan kartu SD (saya menemukan 16 gigabyte) ke dalam kartu adaptor, dan memasukkannya ke port USB Raspberry.Jika Anda telah mengkonfigurasi pemasangan otomatis dari bagian terakhir, jalankan skrip
sehingga dia melepas mount kartu SD yang baru terhubung, yang, tentu saja, segera dipasang di / media / sdxx.Sekarang jalankan perintah lsblk dan lihat daftar perangkat: sda 8:0 1 14.6G 0 disk └─sda1 8:1 1 14.6G 0 part mmcblk0 179:0 0 7.4G 0 disk ├─mmcblk0p1 179:1 0 256M 0 part /boot └─mmcblk0p2 179:2 0 7.2G 0 part /
sda jelas kartu baru kami, dan mmcblk0 adalah kartu sistem.Jalankan: dd if=/dev/mmcblk0 of=/dev/sda bs=4M
dan tunggu hasilnya, yang diperkirakan sekitar setengah jam (untuk kartu 8GB).Setelah itu, masukkan ke Raspberry lain, ubah nama host, nama pengguna dalam skrip runrdp, dan ulangi seperlunya.6.B Unduh gambar yang sudah jadi
Jika, tentu saja, Anda mempercayai saya, Anda dapat menggunakan gambar yang disiapkan oleh saya dengan sedikit mengkonfigurasi ulang. Bookmark, alat telemetri, dll. - Saya tidak menambahkan, ini bukan Windows 10, tapi saya bukan Microsoft, dan saya juga tidak percaya pada prospek ekonomi dari penambangan bitcoin tersembunyi di RPi.Gambar dikompilasi sesuai dengan instruksi, dan dipadatkan untuk digunakan pada kartu SD dengan ukuran minimum 2 GB Cina (tidak jujur) (1977614336 bytes). Selain itu, bagian yang terisi dari gambar umumnya menempati byte pertama 1966080000, yang harus pas bahkan di kartu SD Cina yang paling.Untuk melakukan ini:1) Unduh arsip di tautan (MD5: 0B5033A9CA12BA8299340BC482111998) dan unzip file gambar.2) Salin ke kartu SD, menggunakan, dengan analogi, instruksi dari paragraf 1.2.3) Boot sistem, tunggu layar grafis muncul dan tekan Ctrl + Alt + F2 untuk pergi ke konsol.Masuk sebagai pengguna pi, kata sandi 111. Jalankan: $ sudo bash
4) Ikuti langkah 1.4, 2.1, pastikan Internet berfungsi (perintah ping, misalnya).5) Jalankan raspi-config, buka Opsi Lanjutan, pilih Perluas Filesystem (untuk memperluas gambar sistem ke semua ruang yang tersedia pada kartu SD)6) Edit / home / user / runrdp, ganti nama host server dengan nama atau IP alamat server Anda, dan nama pengguna "pengguna" ke nama pengguna yang harus terhubung oleh operator ke server.7) Nyalakan kembali dan periksa operasi.Kesimpulan
Sekian, terima kasih atas perhatiannya. Semoga informasi ini bermanfaat bagi seseorang.Sayangnya, mencakup semuanya dalam satu artikel sangat sulit. Jika ada umpan balik positif, saya akan menulis bagaimana nyamannya untuk meneruskan printer dari unit ini.PS 12/11/2019. Terima kasih kepada kolega (gecube, Mnemonik, mkovalevskyi, SannX) untuk tips dan suntingannya. Melakukan perubahan:- menambahkan perintah shutdown screensaver;
- menambahkan konfigurasi NTP;
- mengenai konsumsi memori pada server dengan beberapa koneksi yang tidak lengkap dari klien RDP - menambahkan kotak pesan ke skrip dengan jeda.
Selain itu, saya baru saja menguji kartu yang dikeluarkan dari RPi3 dengan memasukkannya ke dalam RPi4 Model B 1Gb yang baru dibongkar. Semuanya berfungsi dengan baik tanpa perbaikan. Dengan demikian, instruksi ini juga cocok untuk RPi 4, dan mungkin cocok untuk modifikasi lainnya.Untuk kegembiraan seperti itu, saya menambahkan gambar yang dapat diunduh (lihat bagian 6.B), yang dapat Anda unduh dan tiru tanpa mengikuti seluruh instruksi.