UZ801 LTE MiFi dongle — تفعيل ADB تلقائيًا (جانب المضيف)
تقوم دونجل Qualcomm LTE MiFi الرخيصة (~10 دولارات) (05c6:90b6, "Android"/UZ801, msm8916) بالتمهيد في وضع RNDIS مع واجهة ويب على http://192.168.100.1. إن الحصول على
http://192.168.100.1/usbdebug.html يحولها إلى وضع ADB (وهي تأتي
مفعلّة بالفعل). المرجع: https://nickvsnetworking.com/adventures-with-a-10-lte-mifi-dongle/
يجب أن تتم خطوة التفعيل على المضيف USB (الهايبرفايزر Proxmox)، لأن
المضيف فقط هو الذي لديه رابط RNDIS إلى 192.168.100.1 — يعمل وكيل الهاتف OmniWeb
في LXC غير المميز (CT 102) ويصل إلى الدونجل فقط كجهاز USB بمجرد
أن يكون في وضع ADB. لذا فإن هذه الأتمتة هي udev + systemd على جانب المضيف، وليس كود الوكيل.
الملفات
mifi-adb-enable.sh→/usr/local/sbin/mifi-adb-enable.sh(0755)mifi-adb-enable.service→/etc/systemd/system/mifi-adb-enable.service99-mifi-adb-autoenable.rules→/etc/udev/rules.d/99-mifi-adb-autoenable.rules
sudo install -m0755 mifi-adb-enable.sh /usr/local/sbin/mifi-adb-enable.sh
sudo install -m0644 mifi-adb-enable.service /etc/systemd/system/mifi-adb-enable.service
sudo install -m0644 99-mifi-adb-autoenable.rules /etc/udev/rules.d/99-mifi-adb-autoenable.rules
sudo systemctl daemon-reload && sudo udevadm control --reload
التدفق: توصيل الدونجل (RNDIS) → udev يتم تشغيله → mifi-adb-enable.service → السكربت
يبدأ واجهة RNDIS، ويقوم بعمل curl لـ usbdebug.html → الدونجل يعيد التشغيل إلى وضع ADB →
يعيد العد مع واجهة ADB → قاعدة udev الخاصة بـ CT-102 (أدناه) تسلم العقدة
إلى الحاوية → يرى وكيل adb ذلك. عند إعادة العد في وضع adb، يتم تشغيل
السكربت مرة أخرى، ويكتشف واجهة ADB (ff/42/01) وينتهي — لا حلقة.
تغيير udev لتمرير USB CT-102 (مطلوب)
يجب تسليم VID Qualcomm الخاص بالدونجل 05c6 إلى الحاوية، ويجب أن تكون المجموعة
plugdev (gid المضيف 100046)، وليس جذر الحاوية، أو لا يمكن لوكيل adb
(المستخدم omniweb-agent، عضو في plugdev) فتح العقدة. ينطبق نفس الشيء على
قواعد الهاتف Android: كانت GROUP="100000" (جذر الحاوية) التي لا يمكن
للوكيل الوصول إليها — كانت الأجهزة تعمل فقط بينما كان adb يحتفظ بـ fd من وقت العد
وسقطت في كل إعادة عد. تم إصلاحها إلى GROUP="100046".
في /etc/udev/rules.d/99-ct102-android.rules تستخدم جميع قواعد الهاتف
OWNER="100000", GROUP="100046", MODE="0660"، بالإضافة إلى VID الدونجل:
SUBSYSTEM=="tty", SUBSYSTEMS=="usb", ATTRS{idVendor}=="05c6", OWNER="100000", GROUP="100046", MODE="0660"
SUBSYSTEM=="usb", ATTR{idVendor}=="05c6", OWNER="100000", GROUP="100046", MODE="0660"
يتم تطبيق هذه التغييرات على المضيف مباشرة في المختبر ولكن يجب توثيقها في OmniCore ansible (دور المراقبة/المضيف) حتى تبقى بعد إعادة بناء المضيف.