مع تزايد شعبية أجهزة الكمبيوتر المصغرة مثل Raspberry Pi ، والنسخ المماثلة ، كان هناك الكثير من الحالات لاستخدامها في البنية التحتية لتكنولوجيا المعلومات في الشركة ، والمنزل الذكي / الكوخ / المرآب ، وفي تطبيقات أخرى.
إحدى الحالات المريحة والمرغوبة هي استخدام RPi كعميل رفيع يتصل عبر الأنظمة التي تستند إلى Windows عبر RDP.
إذا كنت مهتمًا بكيفية إعداد مثل هذا المكان على أساس Raspberry Pi ، وبهذه الطريقة "الإعداد والنسيان" - مرحبًا بك في القطة. هناك صورة جاهزة للكسول بالكامل (انظر القسم 6.B).
على وجه التحديد ، في تجربتي (أخصائي أتمتة المحاسبة / الإدارة) ، غالبًا ما كان علي تنظيم أماكن العمل التي كان هدفها الوحيد الوصول إلى برنامج (معظمه أصفر) ، ومجموعة مكاتب ، والإنترنت ، والبريد. في بعض الأحيان - العمل مع محركات أقراص فلاش. الخادم ، في الوقت نفسه ، كان بالفعل في المؤسسة.
في الوقت نفسه ، كانت المحطة تتطلب ضوضاء منخفضة ، وضغط ، وموثوقية. أو ، دعونا نكون صادقين ، بثمن بخس. خاصةً إذا كان السؤال حول البيع بالتجزئة ، حيث يجب أن يكون كل شيء "مسمرًا".
في الوقت نفسه ، في الماضي ، جربت العديد من الحلول في شكل عملاء رفيعين متخصصين من "الحديد" ، لكن لعدد من الأسباب تبين أنهم غير مرتاحين. في مكان ما ، كانت هناك حاجة لمهام محددة ذات صلة ، مثل إعادة توجيه الطابعات إلى الخادم ، والتي لم يتمكنوا من التعامل معها. في مكان ما ، ظهرت الجداول ببطء ، مما دفع المستخدمين إلى الجنون. في مكان ما ، كان العملاء النحيفون يعملون ببساطة في مكان واحد ، وكان من المستحيل فهم السبب. في مكان ما لم ينجح تحميل الشبكة المتقلبة ، أو لم يتم نقل المعلمات عبر DHCP.
لذلك ، بطريقة طبيعية ، توصل كل شيء إلى نتيجة مفادها أنه من الأسهل شراء صاف غير المرغوب فيه ووضعه على الحد الأدنى من البرامج بدلاً من تخمين لعبة بالحديد الغامض ، بالإضافة إلى نفقتك الخاصة ، لأن مكان وما لا يعمل غير معروف مسبقًا ، ولكن من المعروف أن كل شيء كان يجب أن يكون على ما يرام ، ولا يستغرق الكثير من الوقت.
كانت المقالة متأخرة قليلاً مع أهميتها. إذا عدت إلى البرنامج الأصفر نفسه ، فقد تطورت المنصة في السنوات الأخيرة ، ولديها عميل رفيع ، وانخفضت أهمية نشرها في وضع سطح المكتب البعيد.
ولكن هناك عددًا من المهام الأخرى حيث تكون محطة العمل الهادئة والموثوقة المتصلة عبر RDP مناسبة. وفي السنوات الأخيرة ، قفزت تكلفة أجهزة الكمبيوتر المصغرة حتى الآن ، وتكلفة أجهزة الكمبيوتر والشبكات القياسية ، فقد أصبحت أكثر ربحية (تكلفة الأجهزة ، ساعة من العمل المتخصص ، بالإضافة إلى تراخيص CAL / TCAL لنظام Windows Server) لبناء مثل هذه الحلول فقط.
بيان المشكلة
لذلك ، نحن
بحاجة إلى نشر عميل RDP رفيع يستند إلى Raspberry Pi ، "مسمار" إلى خادم معين ، بالإضافة إلى توفير إعادة الاتصال في حالة الفشل.
يجب استبعاد أي تفاعل المستخدم مع الجهاز نفسه. وفقًا لذلك ، لا توجد أوامر سطح مكتب ووحدة تحكم محلية. يتم إدخال كلمة المرور فقط لجلسة RDP.
على سبيل المكافأة ، - تنظيم محركات USB للتركيب التلقائي و probros القابلة للإزالة.
معين:- Raspberry Pi 3 Model B 1GB، or 4 Model B 1 Gb
- 5v 2a محول الطاقة ،
- كابل HDMI
- محول مع HDMI إلى الشاشة (إذا لم يكن للشاشة منفذ HDMI مدمج) ،
- كابل إيثرنت (أو وجود شبكة WiFi) ،
- بطاقة ذاكرة MicroSD بسعة 8 غيغابايت أو أكثر (4 غيغابايت بشكل موضوعي بما فيه الكفاية ، لكن يبدو لي أنه يمكنك شراء بطاقة 4 غيغابايت فقط في المتحف).
- الشاشة ولوحة المفاتيح والماوس لتوت العليق.
في وقت التثبيت - كمبيوتر (كمبيوتر محمول) مع Windows أو Linux ، محول بطاقة microSD إليه.
من المفترض أن يكون للقارئ المهارة الأساسية لإدارة أنظمة Linux ، وأن السؤال "إنشاء وتحرير ملف ، نسخ ولصق النص من هذه المقالة فيه" أو "الاتصال عبر SSH" لن يسبب أي صعوبات. ومع ذلك ، أحيانًا أسمح لنفسي برحلة أعمق ، لأولئك الذين ربما لم يصادفوا مع Raspbian على وجه التحديد.
المنطق العام: تكوين النظام الأساسي ، تثبيت عميل RDP ، تكوين تسجيل الدخول التلقائي ، اختبار ، إصلاح المشاكل.
سيصف أيضًا كيفية استنساخ تجميع نهائي إلى توت العليق آخر.
تخطيط البرنامج نفسه غير معقد ، فقد وُلد في شكل أو آخر قبل حوالي 9 سنوات - كما أتذكر الآن ، لقد قمت بذلك تحت Debian Etch. منذ ذلك الحين ، تغيرت قليلاً من إصدارات البرامج والأجهزة إلى الإصدارات ، والآن حان الوقت لنقلها إلى Raspberry.
استهلاك الوقت المخطط له حوالي 30 دقيقة.
1. إعداد النظام الأساسي
1.1 قم بتنزيل صورة النظام
سوف نختار Raspbian كنظام.
في وقت كتابة
هذا التقرير ،
يمكن القيام بذلك هنا . الإصدار الحالي هو المغفل.
حدد الحد الأدنى للصورة استنادًا إلى Debian Buster.

قم بتنزيل أرشيف ZIP للحصول على ملف .img الوحيد.

1.2 اكتبها على بطاقة فلاش
أ) تحت ويندوزقم بتنزيل برنامج
Rufus من
الموقع الرسمي . نسخة محمولة كافية.
قم بتشغيل البرنامج ، وحدد بطاقة SD والصورة التي تم سحبها من الأرشيف في الفقرة 1.1.

اضغط على زر "بدء" ، وتأكيد تدمير البيانات الموجودة على بطاقة SD ، انتظر حتى تكتمل العملية (حوالي 5 دقائق).
قم بإزالة البطاقة بأمان.
ب) تحت لينكسقم بتشغيل الأمر:
# dd if=2019-09-26-raspbian-buster-lite.img of=/dev/< SD-> bs=4M
انتظر انتهاء العملية ، اسحب البطاقة.
1.3 نشر النظام على RPI
نعيد ترتيب البطاقة على الجهاز المستهدف. نقوم بتوصيل الكمبيوتر المصغر بالشاشة ولوحة المفاتيح والماوس ونطبق الطاقة عليه.
بعد مرور بعض الوقت ، دون طرح أسئلة إضافية ، سيتم إعادة تشغيل الكمبيوتر المصغر في النظام الذي تم نشره حديثًا ، وسيدعوك إلى إدخال معلومات تسجيل الدخول وكلمة المرور الخاصة بك.
بشكل افتراضي ، هذا هو
pi: التوت.
1.4 تسجيل الدخول وتغيير كلمة المرور الخاصة بك
# passwd pi
أو
$ sudo passwd pi
(أقوم بتشغيل كلمة مرور عن قصد للمستخدم pi كجذر ، بحيث لا يزعجنا Raspbian بمتطلبات الأمان الخاصة بكلمة المرور ، لكن يقبلها ويقبلها)
لا يمكنك تسجيل الدخول مباشرة كجذر ما لم تقم بتعيين كلمة مرور بشكل صريح لها. بشكل عام ، هذا ليس سيئا. ثم يجب تنفيذ جميع الأوامر التي يجب تنفيذها تحت المستخدم الخارق من المستخدم pi باستخدام أمر sudo prefix. كما هو الحال في أوبونتو.
على سبيل المثال (
نكتة مشهورة ، لا تعمل! )
$ sudo rm -rf --no-preserve-root
ومع ذلك ، بما أنني كسول من الناحية المرضية ، فأنا أقوم بتسجيل الدخول إلى Raspbian أو على نفس Ubuntu ، اكتب:
$ sudo bash
وأحصل على دعوة # ، بالفعل مع حقوق مرتفعة. لذلك أنا أعمل.
بالمعنى الدقيق للكلمة ، القيام بذلك ليس جيدًا ، ولكن في مرحلة الإعداد الأولي للنظام ، فإنه يوفر الكثير من الوقت.
فيما يلي ، إذا كانت الأوامر المذكورة أعلاه مسبوقة بـ # ، فيجب تنفيذها بموجب المستخدم الخارق. إذا كان مع $ ، ثم تحت المستخدم (عادة ما يشار إليه أعلاه والتي بموجبها).
2. تثبيت البرنامج اللازم "على الأقل" ، واختبار الاتصال
2.1 تكوين الشبكة
للقيام بذلك ، قم بتشغيل الأداة المساعدة الإدارية عن طريق تشغيل الأمر:
# raspi-config

(يتم التنقل بواسطة الأسهم ، الجدولة ، الإدخال - الاختيار ، ESC - العائد)
انتقل إلى
خيارات الشبكة .
عيّن اسم الكمبيوتر (نقطة
اسم المضيف N1 ) ، على سبيل المثال
TERM1 .
إذا كان الكمبيوتر متصلاً بالشبكة باستخدام كبل Ethernet ويتلقى عنوان DHCP ، فلا يلزم القيام بأي شيء آخر.
إذا كنت بحاجة إلى تكوين شبكة WiFi ، فقم بذلك (نقطة
N2 Wi-Fi ). اختر بلدك يجب إدخال
اسم الشبكة يدويًا ؛ لا يتم تقديم نظرة عامة. نحدد
كلمة المرورثم
إنهاء -> إنهاء .
إعادة التشغيل عند الطلب ، أو باستخدام الأمر:
# reboot
بعد إعادة تسجيل الدخول ، تأكد من أن لديك إمكانية الوصول إلى الإنترنت.
# ping 8.8.8.8
2.2 تحديث النظام
تحديث المعلومات على الحزم المتاحة.
# apt-get update
الآن قم بتحديث النظام (اختياري ، ولكن مرغوب فيه للغاية. يمكن القيام به لاحقًا.)
# apt-get upgrade
قد تستغرق هذه المرحلة وقتًا طويلاً (لدي حوالي 15 دقيقة) ، لأنه يتم تحديث أداة تحميل الإقلاع الثنائية RPi ، التي تقوم بفك العديد من الملفات الصغيرة على بطاقة SD.
يرجى ملاحظة أنه بعد اكتمال التنزيل فورًا تقريبًا وتبدأ عملية التفريغ ، سيطلب منك بعض الحزمة سيئة الضغط على "q" ، لإيقاف العملية. ستحتاج إلى النقر قبل أن تشتت انتباهك أشياء أخرى للانتظار.
في نهاية التحديث ، يجب إعادة التشغيل
# reboot
2.3 تثبيت اللغة الروسية والتخطيط
مرة أخرى في الأداة الإدارية:
# raspi-config
اتبع
خيارات التوطين ، هناك:
- غير الإعدادات المحلية ، وقم بإزالة * من en-GB.UTF-8 وتثبيتها مقابل ru-RU.UTF-8 . نؤكد ، وفي النافذة التالية نختارها كإطار رئيسي.
- تغيير المنطقة الزمنية ، وحدد بلدك والمنطقة الزمنية المدينة.
- تغيير تخطيط لوحة المفاتيح ، هناك عام 105 مفتاح (Intl) PC → أخرى → الروسية → الروسية → Control + Shift (أو Alt + Shift ، إذا رغبت في ذلك ، للتبديل تخطيطات) → لا يوجد مبدل مؤقت → Alt الأيمن (AltGr) → لا يوجد مفتاح تكوين .
تأكيد والخروج -
إنهاء →
إنهاء .
تركنا الأداة المساعدة للإدارة ، قم بتشغيل الأمر:
# dpkg-reconfigure console-setup
حدد
UTF-8 →
تخمين مجموعة الأحرف المثلى →
دع النظام يحدد ... (أسفل) →
8x16 .
يجب أن تصبح الخطوط أرق بصريًا ، لكن الشيء الرئيسي هو أنها تدعم الآن الأبجدية السيريلية.
نحن إعادة تشغيل ، تسجيل الدخول ، اختبار تخطيط اللغة الإنجليزية ، التبديل والتخطيط الروسي.
2.4 مصمم مع برنامج إضافي ومحرر
بالنسبة للعمل مع الملفات ، والتنقل في بنية المجلد وتحرير الملفات ، فإنني حقًا أحب
Midnight Commander ، وبالتالي:
# apt-get install mc
أقوم بتشغيله بموجب حقوق الجذر ، وأول مرة أستخدم فيها المحرر (المفتاح F4 في بعض الملفات) أقوم باختيار
mcedit (النقطة 2).
بالطبع ، يمكنك تحرير الملفات باستخدام الأدوات التي تختارها. على سبيل المثال ، باستخدام نانو ، أو حتى VIM.
2.5 تثبيت خادم سه
# apt-get install ssh
التحرير / etc / ssh / sshd_config. uncomment الخط:
ListenAddress 0.0.0.0
فتح التحميل التلقائي
# systemctl enable ssh.service
أعد تشغيل الخدمة
# systemctl restart ssh.service
نكتشف عنوان IP باستخدام الأمر
# ifconfig
والآن يمكننا الاتصال بالجهاز عن بعد من الكمبيوتر المصدر عبر SSH (تحت Windows أنا شخصياً أحب عميل
PuTTY SSH) للتكوين من محطة عمل مريحة وتكون قادرًا على نسخ النصوص من هذه المقالة ولصقها في التكوينات. أذكرك أن تسجيل الدخول هو
pi ، وليس الجذر.

إجراءات أخرى أوصي بها من خلال SSH بالضبط ، ما لم يرد خلاف ذلك.
2.6 انقل الأجزاء المتقلبة إلى الأقراص الافتراضية
على سبيل المثال ،
/ tmp و
/ var / log ، من أجل:
- النظام لم يشحذ بطاقة SD ،
- كانت هناك فرصة أقل لأن نظام الملفات الجذر سوف ينهار أثناء انقطاع التيار الكهربائي ،
- بحيث في المستقبل البعيد ، لا تسد السجلات المساحة الحرة على الخريطة.
للقيام بذلك ، أضف سطور إلى
/ 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
لا تنسَ أن تضع فاصل أسطر في نهاية الملف.
هنا ، يتم تخصيص أقسام
/ var / log و
/ tmp 100 ميغابايت من الذاكرة لكل منهما (سيتم استخدامه فقط لأنه ممتلئ). غيغابايت بي ، والتي تستخدم فقط من أجل RDP ، هذه النفقات لن تعيق أي شيء.
أعد تشغيل النظام ، ثم قم بتشغيل الأمر:
# df
وتأكد من تركيب الأقسام على tmpfs (قد تختلف الأعمدة 3 و 4):
tmpfs 102400 8 102392 1% /tmp tmpfs 102400 224 102176 1% /var/log
2.7 سوف نحصل على المستخدم الذي سنقوم في ظله لاحقًا بتشغيل الأداة الرسومية تلقائيًا
قم بتشغيل الأمر:
# adduser user
تعيين كلمة مرور تعسفية. يمكن تخطي جميع أنواع الأسماء والهواتف. تأكيد.
2.8 تثبيت خادم X في إصدار الحد الأدنى
قم بتشغيل الأمر:
# apt-get install xserver-xorg xinit xterm x11-xserver-utils
قد يستغرق هذا حوالي 5 دقائق.
أنت الآن بحاجة
إلى الجلوس في المحطة المادية (بمعنى الشاشة ولوحة المفاتيح والماوس المتصلة مباشرة بـ Pi) ، قم بتسجيل الدخول كمستخدم مستخدم وقم بتشغيل الأمر:
$ startx
يجب أن تظهر الصورة التالية على الشاشة ، مما يعني أنه تم تثبيت خادم x بنجاح ، ويمكنك المتابعة.

نحوم فوق المؤشر (من المهم ، نظرًا لعدم وجود نافذة تشكل إطارًا وعنوانًا للنافذة ، ولن تتلقى النافذة ببساطة نصًا بدون تركيز واضح) واكتب
$ exit
ليعود.
2.9 تثبيت البرنامج للعمل مع سطح المكتب البعيد
أنا شخصيا أحب
rdesktop . بالطبع ، لا يخلو من الفروق الدقيقة (انظر قسم "استخراج الخليع"). هناك بدائل مثل
xfreerdp ،
remmina ، وما إلى ذلك ، على الرغم من أنها تشكو منها أيضًا.
سأقدم مثالا على الأول.
# apt-get install rdesktop
إنشاء برنامج نصي يعمل rdesktop في وضع ملء الشاشة. في الدليل
/ المنزل / المستخدم ، قم بإنشاء ملف
runrdp (يفضل أن يكون المستخدم):
إذا اخترت عميل RDP آخر ، فاكتب سطر الأوامر له هنا ، أو استخدم كتلة المعلمات الإضافية التي لدى rdesktop. يمكنك حتى hardcode كلمة المرور لتسجيل الدخول تلقائيا.
يجب أن تضع الحقوق للتشغيل على هذا البرنامج النصي ، وإذا قمت بإنشائه كجذر ، فإن المالك هو المستخدم.
# chmod 755 /home/user/runrdp # chown user:user /home/user/runrdp
الآن ، دعنا نذهب إلى وحدة التحكم الفعلية تحت المستخدم ، ابدأ startx ، في محطة الرسوم المفتوحة (انظر الشكل أعلاه) ، اكتب:
$ ./runrdp
يجب أن تظهر نافذة الاتصال بسطح المكتب البعيد على الشاشة.

إذا:
أ) تعرض وحدة التحكم شيئًا عن خطأ CredSSP ،
ب) يترك وضع ملء الشاشة في FullHD حواف داكنة (كما في الصورة رقم 4 في هذه المقالة ، على الرغم من وجود وضع وحدة التحكم ، ولكن يمكنك رؤية الحواف)
ثم انظر قسم استخراج الخليع.
وإذا كان كل شيء على ما يرام ، فقم بإلغاء تسجيل الدخول إلى النظام (Esc ، أو عنصر القائمة "Disable") ، انزل إلى وحدة x ، اكتب exit ، ارجع إلى وحدة التحكم.
3. أتمتة رفع جلسات
إذا نجحت جميع الخطوات السابقة ، فقد حان الوقت لوضع كل شيء معًا.
للقيام بذلك ، سنجعل ذلك حتى يبدأ النظام ، عند بدء تشغيل النظام ، بتسجيل الدخول تلقائيًا إلى الجهاز الطرفي ، وتشغيل خادم X والاتصال بـ RDP أسفله. وبالتالي ، سيتم طلب كلمة المرور فقط لجلسة RDP ، والتي ستوفر عقول المستخدم غير الناضجة من المهارات غير الضرورية لترويض Linux.
3.1 لانهائي RDP
لنقم بإنشاء برنامج نصي ، عند بدء تشغيل خادم x ، سيحاول فتح جلسة RDP إلى ما لا نهاية.
للقيام بذلك ، في الدليل
/ الصفحة الرئيسية / المستخدم ، أنشئ ملف التشغيل التلقائي في بداية الجلسة X
.xinitrc ، المحتويات التالية:
setxkbmap -option terminate:ctrl_alt_bksp
3.2 خادم X Infinite
سنقوم بإصلاح برنامج نصي يحدد التشغيل التلقائي للبرامج وإعدادات الملف الشخصي أثناء تسجيل الدخول إلى وحدة التحكم بحيث تبدأ الجلسة x تلقائيًا ، ولكن فقط عندما يقوم المستخدم بتسجيل الدخول إلى المحطة الأولى.
شكرًا لك على gecube لتذكيري بتعطيل شاشة التوقف. بشكل افتراضي ، إنها شاشة سوداء ، والتي تعتبر ضارة إلى حد ما بالنسبة لمعظم الشاشات الحديثة.
لنعدّل /home/user/.profile ،
مضيفين الأسطر التالية هناك:
… if [ -z "$DISPLAY" ] && [ $(tty) = "/dev/tty1" ]; then startx clear echo " 5 " sleep 5 exit fi
3.3 اختبار مجموعة حفنة
نحن إعادة تشغيل بي ، والجلوس في المحطة ، تسجيل الدخول كمستخدم المستخدم. نحصل على نافذة بدء الجلسة على الشاشة ، كما في الشكل أعلاه.
نحاول رفض إدخال كلمة المرور (esc ، أو تعتمد على إصدار Windows) - نحصل على نفس النافذة لبداية الجلسة (على سبيل المثال ، يتم إعادة توصيل البرنامج النصي من 3.1 باستمرار).
ننتظر حوالي دقيقة (اعتمادًا على الخادم) دون لمس لوحة المفاتيح والماوس - يجب إيقاف تشغيل نافذة بدء الجلسة قريبًا (تنتهي صلاحية جلسة RDP في مرحلة إدخال كلمة المرور دون انتهاء النشاط في المهلة). بالطبع ، بسبب الفقرة 3.1 ، سيتم إعادة الاتصال.
الآن اضغط على
Ctrl + Alt + BkSp . يجب مقاطعة الجلسة X ، سيتم عرض نقش حول الانتظار لمدة 5 ثوانٍ ، وبعدها ستنتهي جلسة وحدة التحكم أيضًا. ستطالبك الشاشة بإدخال الجهاز باستخدام اسم مستخدم وكلمة مرور.
إذا كان كل شيء على ما يرام - ممتاز.
نحن بحاجة فقط تسجيل الدخول التلقائي إلى المحطة.
3.4 اللانهائي البرتقال التكرار autologin في tty1
للقيام بذلك ، من الجذر ، قم بإنشاء الملف
/etc/systemd/system/getty@tty1.service.d/autologin.conf بالمحتويات التالية:
[Service] ExecStart= ExecStart=-/sbin/agetty --autologin user --noclear %I 38400 linux
ثم:
#systemctl enable getty@tty1.service
نقوم بإعادة التشغيل ، تأكد من أن وحدة التحكم الفعلية يتم تسجيلها تلقائيًا كمستخدم ، وأن يبدأ خادم X ويفتح جلسة RDP ، ثم كل شيء كما هو في 3.3.
اضغط على Ctrl + Alt + BkSp ، انتظر إعادة الاتصال.
ندخل النظام ، اختبار التبديل ، عمل تخطيطات. إذا كان هناك خطأ ما ، انظر القسم 4.
هذا يكمل الإعداد.يجب إرشاد المستخدمين إلى أنه في حالة حدوث خطأ ما (تظهر الشاشة فارغة ، ويتجمد شيء ما ، وما إلى ذلك) ، فإنهم أولاً يضغطون على Ctrl + Alt + BkSp وينتظرون رد الفعل.
انظر أيضًا القسم 5 الخاص بالتركيب التلقائي لـ USB.
4. استخراج الخليع
نظرًا لأن هذا مصدر مفتوح ، فإن عملية الاستخراج هي عملية يائسة ومستمرة. سأحاول أن أشرح أشعل النار الرئيسية المحتملة ، لكن من يدري ما ينتظرنا. أنا شخصياً لم أكن محظوظًا أبدًا ولم تعمل لي تعليمات واحدة دون ساعات من البحث الإضافي.
4.1 مشاكل في الاستخدام غير الكامل لدقة الشاشة
الأعراض: في بعض الحالات (محولات HDMI-DSUB ، بعض الشاشات) لا يستخدم raspbian جميع الدقة المتوفرة لشاشة Full-HD. تظل الحقول المظلمة بين المعلومات ذات الصلة والحافة المادية للشاشة.
يتم حلها على النحو التالي:
عدل
/boot/config.txt ، ابحث عن السطر
# disable_overscan = 1
و uncomment ذلك.
إعادة تشغيل الكمبيوتر.
الآن يجب إزالة الحقول المظلمة من حواف الشاشة في كل من أوضاع وحدة التحكم والرسوم البيانية.
4.2 مشاكل مؤشر الماوس عند توصيل rdesktop بخوادم RDP الحديثة
يتعلق هذا بشكل رئيسي بنظام التشغيل Windows 2012 و 2016 و Windows 10 ، حيث يتم تضمين سمة المؤشر.
الأعراض: يختفي المؤشر ، يتم رسمه بشكل سيء ، بعد التبديل إلى غير قياسي (الساعة الرملية ، رمز I ، أسهم توسيع النافذة ، وما إلى ذلك) ينسى التبديل إلى سهم عادي.
الحل: باعتبارك مستخدم الخادم الذي تتصل به ، انتقل إلى خصائص الماوس من خلال لوحة التحكم ، وأعد تعيين السمة إلى "لا" ، وأوقف تشغيل الظلال أسفل المؤشر.

يجب أن تأتي المؤشرات إلى الطاعة.
4.3. مشاكل الترميز مع rdesktop
الأعراض: في بعض الحالات ، من خلال اتصال RDP ، يتم كتابة الأحرف الخاصة بشكل غير صحيح على النظام البعيد: التلدة ، الشرطة المائلة ، علامات الاقتباس ، النقاط ، العصي العمودية. لا سيما تبدأ في غضب النقاط ، لأنها غالبا ما تكتب.
الحل:
في
/ usr / share / rdesktop / keymaps ، يمكنك إنشاء ملف
أولي وملؤه بالمحتويات التالية:
include common map 0x419 grave 0x29 asciicircum 0x07 shift backslash 0x2b bar 0x2b shift apostrophe 0x28 greater 0x34 shift less 0x33 shift
أضف وسيطة - k
الخام إلى موجه أوامر rdesktop في البرنامج النصي
/ home / user / runrdp . على سبيل المثال:
rdesktop 10.0.0.1 -u user -k raw
أعد تشغيل الجلسة على الجهاز عن طريق Ctrl + Alt + BkSp أو أعد تشغيل Pi بشكل عام.
أدخل RDP ، واختبار جميع الشخصيات الخاصة ، بما في ذلك مع إزاحة Shift على سطر الأرقام بلوحة المفاتيح والمفاتيح الجانبية إلى يسار ويمين قسم الحروف ، مع Shift وبدون (علامات اقتباس ، نقطتين ، علامات الترقيم ، العصي ، إلخ). كل شيء يجب أن تعمل.
4.4. عند محاولة بدء rdesktop ، لا تفتح الجلسة ، يتم عرض خطأ CredSSP في وحدة التحكم
CredSSP: Initialize failed, do you have correct kerberos tgt initialized ? Failed to connect, CredSSP required by server.
يتطلب النظام الهدف خوارزمية مصادقة عميل حديثة ، والتي عادةً لا تستطيع rdesktop القيام بها.
خيارات الحل:
- تعطيل مصادقة الخادم عن طريق خفض إعدادات الأمان. في الأساس ، في البيئات التي تحاول فيها Pi استخدام RDP كعميل ، لا ينبغي أن يكون هذا مشكلة أمنية كبيرة جدًا.
- استخدم عميلًا آخر ، على سبيل المثال freerdp ، remmina ، لاستبدال محتويات البرنامج النصي runrdp بسطر الإطلاق لهذا العميل.
- تثبيت وتكوين عميل kerberos ، ولكن بطريقة ما كل شيء معقد هناك. إذا كنت تريد المحاولة ، ابدأ هنا .
4.5. تشغيل الجهاز وإيقاف تشغيله
لا يحتوي Raspberry Pi على زر إيقاف التشغيل. هذا سيء اتضح أنه لا توجد وسيلة فعالة لتشغيله وإيقافه. لقد كتب الكثير عن هذا ، سأحاول تلخيصه بإيجاز:
- من ناحية ، لا يمكننا إيقاف تشغيل الجهاز على الإطلاق ، وإيقاف تشغيل الشاشة فقط. بالمعنى الدقيق للكلمة ، حيث وضعت RPi ، يتم كل شيء. بشكل عام ، لا يسخن الجهاز تقريبًا ، ولا يستهلك الكهرباء ، ولا يصدر عنه ضوضاء. الشاشة ، قبل أن يغادر ، سيتم إيقاف المستخدم.
- يمكنك تهيئة الليل أثناء تشغيل Cron ، ولكن بعد ذلك لتشغيل RPi في الصباح ، سيتعين على المستخدم تزييف السلك أو مصدر الطاقة.
- يمكنك حل هذه المشكلة عن طريق شراء كابل مزود بـ USB بزر مفتوح (لتشغيل RPi ، تحتاج فقط إلى فتح الدائرة لفترة وجيزة باستخدام زر). 120 روبل هو كل سرور. ولكن هنا ، سيحصل المستخدمون على إيقاف التشغيل التلقائي بنفس الطريقة التي سيتعطل بها الجهاز. نظرًا لأننا قمنا بنقل الأقسام المتقلبة إلى tmpfs ، فمن المحتمل أن تكون هناك مشكلات ، ولكن لا يوجد أحد آمن بأن المستخدم لن يتم تسجيل الدخول في الصباح بسبب انهيار rootfs. لم ينجح ذلك ، إذا جاز التعبير ، فإن الحل "مسمر".
- هناك حلول مع زر إضافي مضمن في منفذ GPIO ويقوم بتشغيل / إيقاف تشغيل الجهاز بلطف (بالطريقة المناسبة). لكن المزارع الجماعية للمبنى - هو قضاء ساعات وزيادة تكاليف الإنتاج.
- ومع ذلك ، بالنسبة إلى RPi ، فهناك حتى حالة تحتوي على زر مضمن (الصينيون لديهم كل شيء). لكنني شخصيا لم أحاول ذلك بعد.
- أفكر في تشغيل الجهاز من خلال قاطع في كبل USB ، وإيقاف تشغيله بواسطة مفتاح التشغيل السريع (مثل Ctrl + Alt + Shift + P) ، والذي تتم مراقبته بواسطة خدمة النظام ، لكن لا يمكن العمل من خلال هذا الحل.
4.6 اتصالات متعددة لخادم RDP
في النظام الحالي ، سيتصل جهاز العميل بالخادم باستخدام بروتوكول RDP ، ويعرض نافذة إدخال تسجيل الدخول وكلمة المرور ، وإذا لم يقم المستخدم بإدخال أي شيء ، فسيتم بعد ذلك إعادة تعيين الجلسة وسيبدأ تشغيل عميل RDP مرة أخرى ، ثم بعد ذلك.
في التعليقات ، قال مستخدم Mnemonik أنه مع عمليات إعادة الاتصال الدائمة المتعددة ، نفدت ذاكرة Windows Server ، وقدم مثالاً على كيفية حل المشكلة.
سأحضر لي. سنقوم بتعديل البرنامج النصي .xinitrc بحيث بعد الانتهاء من عملية rdesktop التالية ، يظهر مربع حوار مشروط على الشاشة ، مما يمنعه من إعادة التشغيل حتى يتم النقر فوق الزر "موافق".
للقيام بذلك ، يمكنك استخدام xmessage العادية المضمنة في حزمة xorg ، ولكن النوافذ التي أنشأتها قبيحة للغاية بحيث يتعطل جهاز العرض الخاص بي. بالإضافة إلى ذلك ، هذا التطبيق غير ملائم للغة الروسية ، ويعد تشغيله مهمة أخرى.
إنني معجب برسالة gxmessage ، خالية من هذا العيب ، لكنها تسحب GTK و 25 ميغابايت من التبعيات الأخرى ، والتي لا أحبها أيضًا. حسنا ، دعنا نختار شر أقل:
apt-get install gxmessage
تغيير البرنامج النصي .xinitrc:
setxkbmap -option terminate:ctrl_alt_bksp
الآن ، بين محاولات rdesktop للاتصال بالخادم ، سيتم عرض رسالة مماثلة على الشاشة ، ولن يكون هناك "قصف" مستمر للخادم.
بعد الانتهاء من البرنامج النصي بسهولة ، يمكنك التحقق مسبقًا من توفر الشبكة للخادم وعرض رسالة حول إعادة الاتصال بسبب قلة الاتصال.
4.7 تكوين NTP
شكرًا لك على gecube لتذكيري بهذه اللحظة. من الناحية النظرية ، يمكن للوقت على الجهاز أن "يطفو" مع مرور الوقت ، مما قد يسبب صعوبات في المصادقة ، وربما مشاكل أخرى.
لإصلاح هذه المشكلة الصغيرة ، يجب عليك تثبيت برنامج ntpdate وتسجيل مهمة cron لتحديث الوقت كل ساعة (سيحتاج الجهاز إلى الوصول إلى الإنترنت):
# apt-get install ntpdate # echo "0 * * * * root ntpdate pool.ntp.org" > /etc/cron.d/ntp
إذا كان لديك خادم NTP محلي على شبكتك ، فاستبدل اسم المضيف باسمك.
5 اختياري: توصيل وفصل وإعادة توجيه أجهزة USB
في الواقع ، يتضمن هذا القسم مرحلتين حاسمتين. أولاً ، لإدارة أجهزة USB لضمان تركيبها التلقائي وإلغاء التثبيت الذي يسيطر عليه المستخدم إلى حد ما. وثانيا ، قم بإعادة توجيه الأجهزة المتصلة إلى الجهاز بحيث يمكن الوصول إليها عبر الشبكة.
5.1. إعداد Automount
سيتم تثبيت أجهزة USB الإضافية مع أنظمة الملفات في الدلائل الفرعية لدليل / media. سنقوم بعد ذلك بإعادة توجيه نفس الدليل إلى rdesktop.
سنحتاج إلى حزمة pmount.
# apt-get install pmount.
udev, .
/etc/udev/rules.d 80-usbstick.rules :
ACTION=="add", KERNEL=="sd[az][0-9]", TAG+="systemd", ENV{SYSTEMD_WANTS}="usbstick-handler@%k"
systemd.
/lib/systemd/system usbstick-handler@.service :
[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
/usr/local/bin unmount-devices :
.
#chmod 755 unmount-devices
user plugdev, (pumount )
# adduser user plugdev
. , USB -, , /media sda1 ., -.
—sync, , , , , .
( , , Windows ).
Pi , , /media/sda1 .
unmount-devices user. sda1 /media , , Windows.
5.2 /media RDP
/home/user/runrdp rdesktop :
rdesktop …... -r disk:USB=/media/
/home/user/.profile , unmount-devices.
... if [ -z "$DISPLAY" ] && [ $(tty) = "/dev/tty1" ]; then startx clear unmount-devices echo " 5 " sleep 5 exit fi
.
, RDP-, Pi USB-, , , .

, (sda1-xx, sdb1-xx ..)
, Ctrl+Alt+BkSp. ( - , ), (
) 5 RDP.
, , , . .
.
6. Rpi
6.
, , . , .
SD- ( 16- ) -, USB- Raspberry.
,
SD-, , , /media/sdxx.
lsblk :
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 ,
mmcblk0 – .
:
dd if=/dev/mmcblk0 of=/dev/sda bs=4M
, ( 8 ).
Raspberry, , runrdp, .
6.
, , , , , . - , , .. — , Windows 10, Microsoft, RPi .
, SD- 2 () (1977614336 ). , 1966080000 , SD-.
:
1)
(MD5: 0B5033A9CA12BA8299340BC482111998) .
2) SD-, , , 1.2.
3) , Ctrl+Alt+F2 .
pi, 111. :
$ sudo bash
4) 1.4, 2.1, , ( ping, ).
5) raspi-config, Advanced Options, Expand Filesystem ( SD- )
6) /home/user/runrdp, «» IP- , «user» , .
7) .
استنتاج
, . , - .
, . , , .
PS 11.12.2019. (gecube, Mnemonik, mkovalevskyi, SannX) . :
, , RPi3, RPi4 Model B 1Gb. - . , RPi 4, .
, (. 6.), , .