إعادة توجيه منافذ USB من Windows 10 للعمل عن بعد

عندما يقوم شخص بحفر مخبأ لسنوات عديدة وتخزين الطعام هناك ، يجب أن يشعر بالرضا الأخلاقي العميق إذا كانت هناك حاجة إلى المخبأ. سيسعده أن يقول: "وأنا أقول و و إيل!" وينطبق الشيء نفسه على أولئك الذين قاموا بتخزين الطعام في مخزن الطعام ، عندما تم شراء الجميع في المتاجر فقط لهذا اليوم. لكن مع مجمع Redd عن بعد ، لا أشعر بالشماتة. تم تصميمه للبعد في وقت السلم. وقد استخدم قبل الأخبار الأولى من الصين بوقت طويل.

لفترة طويلة ، لم أكتب شيئًا عنه. هناك مشاريع أخرى مشتتة للانتباه ، وقد انخفض الاهتمام بالفعل ، وفقًا لتقييم آخر المقالات المنشورة. يستغرق الأمر الكثير من الجهد لإعداد مقال ، ومن المنطقي القيام بذلك فقط إذا كان هناك حاجة إليه من قبل عدد كاف من القراء.

ولكن بما أن الجميع على شفاه الآن ، فقد كانت هناك رغبة في مشاركة شيء واحد يمكن أن يساعد شخصًا ما. هذا ليس تطورنا ، لقد أجريت بحثًا كجزء من العمل على العمل عن بعد مع لوحات تصحيح جميع الأجهزة. هنا سأصف نتائجهم الآن. مشروع USB / IP معروف للكثيرين. ولكن تم تقليصها منذ فترة طويلة من قبل المؤلفين. أحدث برامج التشغيل كانت تحت WIN7. سأصف اليوم مكان تنزيل خيار WIN10 ، وسأوضح كيف اختبرته. بالإضافة إلى ذلك ، يؤكد مطورو التماثلية الحديثة أنهم لم يصنعوا عميل Windows فقط ، ولكن أيضًا خادم Windows (على الرغم من أنني لم أجري الاختبار في هذا الوضع: لم تتطلب المهمة ذلك). ولكن بالنسبة لشخص ما قد يكون هذا مفيدًا أيضًا.




المقدمة


أولاً ، قصة قصيرة عن ماهية USB / IP. هذه مجموعة من البرامج التي تسمح لك بإعادة توجيه جهاز USB عبر الشبكة. الجهاز نفسه متصل بالخادم. يقع العميل على جهاز آخر. في الوقت نفسه ، يوجد تطبيق على جهاز العميل غير مصمم تمامًا للعمل مع الشبكة. تريد جهاز USB حقيقي. ويتلقى معلومات تفيد أن هذا الجهاز متصل. تم تثبيت برنامج تشغيل قياسي على هذا الجهاز. بشكل عام ، يعتقد العميل أنه يعمل مع جهاز USB محلي.

شخص ما يرمي مفاتيح الأمان. لقد تحققنا من إمكانية الوصول عن بعد إلى محول JTAG.

كان مشروع USB / IP يتطور بنشاط حتى عام 2013. ثم توقف فرع Windows. بشكل عام ، تم إصدار حتى توقيع ثنائيسائق. لكنها كانت تحت Windows 7. واصل فرع Linux تطوره ، وتم دمج هذه الخدمة في نظام التشغيل نفسه. على أقل تقدير ، تم بناؤه بالتأكيد في بنية دبيان. علاوة على ذلك ، بالنسبة لنظام التشغيل Linux ، يوجد عميل وخادم على حد سواء ، وبالنسبة لنظام التشغيل Windows ، تم إنشاء العميل فقط في الأصل. لم يتم إنشاء خادم تحت Windows.

هناك مقال جيد جدًا عن حبري ، والذي يمكن استخدامه كمرجع للعمل مع هذه الخدمة ، وكمعلومات حول العمل معها.

خيار الإصدار الحالي من Windows


ولكن بغض النظر عن مدى جودة Windows 7 ، فقد مات بالفعل. كجزء من العمل على جميع الأجهزة ، نظرنا في خيارات مختلفة لحل إحدى المشاكل ، وكان علينا فقط التحقق من عدد من البدائل على أساس "الملاءمة - عدم الملاءمة". كان من المستحيل قضاء الكثير من ساعات العمل للتحقق. وتعديل برنامج التشغيل تحت Windows 10 يمكن أن يسحب في حد ذاته. لذلك ، تم إجراء بحث على الشبكة ، مما جلب usbip-win إلى المشروع . في وقت اكتشافها ، تم إصدار النسخة الجديدة بتاريخ 23 فبراير 2020 ، أي أن المشروع أصبح مباشرًا. يمكن بناؤه تحت كل من WIN7 و WIN10. بالإضافة إلى ذلك ، على عكس المشروع الأصلي ، لا يمكن فقط بناء عميل Windows ، ولكن أيضًا خادم Windows.

راجعت ، تم تجميع المشروع وتثبيته بشكل مثالي ، لذلك تم تنفيذ المزيد من العمل معه. في الملف التمهيدي هناك رابط إلى كود ثنائي جاهز لأولئك الذين لا يريدون البناء بأنفسهم.

الجزء المحزن من الفحص: جانب الخادم


أولاً ، سأخبرك بكيفية تنفيذ التحقق كجزء من مشروعنا. لم تنتهي بشكل جيد هناك. لقد تحققنا من محول ST-LINK المثبت في حالة مجمع Redd ، حيث لاحظت بالفعل أن المجمع يستخدم نظام التشغيل Linux من تجميع دبيان ، وتحتوي هذه المجموعة على خدمة USB / IP مضمنة.

وفقًا للمقال ، قم بتثبيت الخدمة:

sudo apt-get update 
sudo apt-get upgrade 
sudo apt-get install usbip

تفاصيل بقية المقالة كيفية أتمتة عملية تحميل الخدمة. كما أفهم لينكس ، لقد كتبت بالفعل عدة مرات. ضليع ضعيف. ليس لدي عادة أن أقتبس من نصوص الآخرين بوجه ذكي ، وفهم الجوهر بشكل سيئ. لذلك ، سوف أذكر مرة أخرى ارتباطًا بمقالة رائعة ، حيث يتم سرد كل شيء ، وسأوضح لنفسي ما فعلته في كل بداية لنظام التشغيل (نظرًا لأن كل شيء كان ضروريًا فقط للتحقق):

sudo modprobe usbip-core
sudo modprobe usbip-host
sudo usbipd -D

إن الغرض من الأولين من التعاويذ المذكورة أعلاه غير معروف بالنسبة لي ، ولكن بدونها لم يتم إنشاء بعض الأدلة ، وبدون هذه الأدلة لن يكون هناك تصدير لمنفذ USB. يتم إنشاء الدلائل فقط حتى يتم إعادة تشغيل النظام. لذلك تحتاج إلى إنشائها في كل مرة. الخط الثالث - كل شيء أوضح به ، يبدأ الخدمة.

الآن نلقي نظرة على اسم الجهاز:

user@redd:~$ sudo usbip list -l
- busid 1-3 (046d:082d)
   Logitech, Inc. : HD Pro Webcam C920 (046d:082d)

 - busid 1-4 (1366:0101)
   SEGGER : J-Link PLUS (1366:0101)

 - busid 1-5.1 (067b:2303)
   Prolific Technology, Inc. : PL2303 Serial Port (067b:2303)

 - busid 1-5.4.1.1 (0483:5740)
   STMicroelectronics : STM32F407 (0483:5740)

 - busid 1-5.4.1.3 (0483:3748)
   STMicroelectronics : ST-LINK/V2 (0483:3748)
<...>

اتضح أننا بحاجة إلى جهاز و busid يساوي 1-5.4.1.3.

نعطي الأمر:

sudo usbip bind --busid=1-5.4.1.3

كل شيء ، الخادم جاهز للعمل.

الجزء المحزن من الشيك: جزء العميل


نقوم بتثبيت برنامج التشغيل على Windows (نقوم بذلك مرة واحدة فقط ، ثم يتم تثبيته دائمًا). للقيام بذلك ، قم بتشغيل ملف usbip.exe مع تثبيت الوسيطة : تثبيت

usbip.exe كمسؤول.

الآن ننظر إلى ما إذا كان الجهاز متاحًا لنا:

usbip.exe list --remote=192.168.10.123

نتأكد من أنه على القائمة. حسنًا ، وقم بتوصيله:

usbip.exe attach --remote=192.168.10.123 --busid=1-5.4.1.3

يظهر جهاز USB جديد في مدير الجهاز ، ويرى Keil ذلك تمامًا ...

ولكن هذا هو المكان الذي ينتهي فيه المرح. يتم سكب برنامج صغير في محرك أقراص فلاش لمدة دقيقة تقريبًا. تتراوح محاولات الدخول عبر الخطوط من 5 إلى 20 ثانية لكل سطر. هذا غير مقبول. أثناء فترة توقف مؤقت ، تسير حركة المرور التي تبلغ حوالي 50 كيلوبت في الثانية في كلا الاتجاهين. يذهب طويلا ومدروس.

بصراحة ، لقد أدى الحد الزمني إلى تخمين فقط لماذا كان كل شيء سيئًا للغاية. أظن أن هناك حركة مرور JTAG تعمل عبر الشبكة. وهو يركض في عبوات صغيرة في كلا الاتجاهين ، وبالتالي المشاكل. لذلك تم الانتهاء من الدراسة بالنتيجة: "غير مناسب للمشروع".

الجزء الممتع: التحضير


حتى ذلك الحين ، حدث لي أنه من زاوية عيني رأيت أنه في محول CMSIS DAP JTAG ، لا يستخدم USB حركة مرور JTAG خالصة ، ولكنه أوامر. تم تشكيل حركة المرور JTAG نفسها بالفعل داخل المحول. لطالما رغبت في التحقق من ذلك ، لكن كل يدي لم تصل. أجبره النقل الجماعي إلى موقع بعيد على القيام به (نشأت مشكلة). ما هو CMSIS DAP؟ هذا محول JTAG موصى به من قبل ARM لوحدات التحكم Cortex-M. يتم نشر الرموز المصدر لوحدات التحكم المختلفة على GitHub ، يمكنك لحام المحول بناءً على أي منها. سأعطيك الآن رابطًا لاستنساخ المشروع الذي تم تكييفه من أجل لوحة Blue Pill: https://github.com/x893/CMSIS-DAP ، ولكن يمكن لمحركات البحث أيضًا عرض حساب ARM الرسمي.

من أجل عدم إنفاق جهاز كمبيوتر كامل على الخادم ، من أجل التحقق ، قمت بعمل نوع من مجمع Yelloww (فقط من خلال لون البلاستيك الذي يتم إنشاء الحالة منه):



يقوم Raspberry Pi بدور الخادم مع تثبيت Raspbian OS (هذا هو نفس Debian ، مما يعني أن هناك الخادم المطلوب ) تعمل إحدى الحبوب الزرقاء كمحول CMSIS DAP ، والثانية كجهاز تم تصحيحه.

نقوم بتعيين الخدمة وتكوينها بنفس الطريقة. ما لم تكن هنا قائمة الأجهزة المسموح بتصديرها أكثر تواضعا:

pi@raspberrypi:~ $ sudo usbip list -l
 - busid 1-1.1 (0424:ec00)
   Standard Microsystems Corp. : SMSC9512/9514 Fast Ethernet Adapter (0424:ec00)

 - busid 1-1.4 (c251:f001)
   Keil Software, Inc. : unknown product (c251:f001)

من الواضح أننا هنا نقوم بتصدير واستيراد جهاز busid = 1-1.4.

وهنا بالتحديد مع CMSIS DAP لدي مشكلة صغيرة بشكل دوري. في مدير الجهاز ، أرى مثل هذا الإزعاج:



دعني أذكرك بأن المقالة مكتوبة على مبدأ "الأفضل ليس سيئًا ، ولكن اليوم أفضل من المثالي ، ولكن غدًا". مشاكل العمل عن بعد تظهر الآن. آمل ألا تكون ذات صلة في المستقبل المنظور. في هذه الأثناء ، تكون ذات صلة - أشرح كيف أتخطى هذه المشكلة يدويًا. أولاً أقوم بإيقاف تشغيل الجهاز:



ثم تشغيله على الفور:



ويبدأ في العمل دون مشاكل. في Keil نغير المصحح إلى CMSIS DAP



:



عند العمل على شبكة محلية ، كل شيء يطير فقط. ولكن من الواضح أنه لا يوجد أحد مهتم بالشبكة المحلية. حاولت إعادة توجيه منفذ الجهاز في المنزل ، ثم قمت بتسجيل الدخول عن بعد إلى الجهاز في العمل وقم بتوجيه "البرامج الثابتة" من هناك. الاتصال في موفر خدمة المنزل بطيئ جدًا جدًا ، خاصةً - من الخارج. تومض وحدة التحكم حوالي ثلاث مرات أبطأ مما كانت عليه عند توصيلها مباشرة بـ USB. جارٍ التتبع ... حسنًا ، حوالي ثانية واحدة في كل سطر ، لم يعد الأمر كذلك. بشكل عام ، محتمل. مع مقدمي خدمة جيدين ، آمل أن يكون الأمر أفضل.

استنتاج


مشروع USBip-win هو بديل حديث لمشروع USB / IP. يعيش ويتطور. في الوقت نفسه ، لا يوفر فقط وظيفة العميل لنظام التشغيل Windows ، ولكن أيضًا وظيفة الخادم. يتم حفظ التوافق مع إصدار Linux.

كان استقرار جهاز USB البعيد مدهشًا بشكل غير متوقع. كنت متأكدًا من أن المهلات ستحدث. ربما ستنشأ في مكان ما ، ولكن بالنسبة لمحولات JTAG ، لم يكن هناك فشل واحد. لسوء الحظ ، لا يمكن إعادة توجيه جميع أجهزة USB من خلال الشبكة بسبب السرعة المنخفضة للنظام الناتج. ولكن في حالة محولات JTAG ، يمكنك التفكير في أشياء بديلة. على وجه الخصوص ، CMSIS-DAP بدلاً من ST-LINK.

يمكن تنزيل كلا المشروعين اللذين تمت مراجعتهما (usbip-win و CMSIS-DAP) من GitHub في شكل رموز المصدر.

إذا كان هذا يساعد شخصًا ما في تنظيم الوصول عن بُعد إلى المعدات ، فسأكون سعيدًا. سيسمح لك استخدام Raspberry Pi بإسقاط المعدات في أماكن عشوائية.

All Articles