יום שני, יולי 24, 2023

Network-manager does not manage enabled WiFi devices if there is at least one disabled device

נתקלתי בבעיה פריוולגית: יש לך מחשב נייד בו יש שני כרטיסי רשת, ואחד מהם מכובה חומרתית (ולא ניתן להפעיל אותו) מנהל הרשת NetworkManager לא מציג ולא מנהל כרטיסים אחרים שאינם מכובים.

התופעה מתקיימת כאשר בפלט של rfkill יחזיר שיש כיבוי חומרתי (hardware block)
sudo rfkill
ID TYPE      DEVICE                   SOFT      HARD
אם ננסה לחבר התקן WiFi חדש ב USB למשל אז network-manager מגרסת 1.30.6-1+deb11u1 ייתייחס לכרטיס הזה כאילו גם הוא חסום, למרות שבפועל הוא לא חסום. 
 
אני מאמין שהמנגנון הזה עובד בכוונה הרי הגיוני שאם אדם כיבה חומרתית הוא באמת רצה להשתיק תעבורה, אבל לפעמים הדבר הזה לא מתאים לכל המצבים, למשל כאשר יש כרטיס שהוא חסום בגלל תקלה חומרתית.
 
לחלק מהאנשים עזרה הפקודה:
 nmcli radio wifi on 
אני מאמין שאצלהם זה עבד כי היהתה נעילה תוכנתית ולא חומרתית, לצערי, אצלי זה לא עשה את העבודה, והוא המשיך לסרב לעבוד.
 
הפתרון שמצאתי, הוא, ובבקשה לא להגיע אליי עם לפידים ואלות בגלל זה, הוא 
להשתמש ישירות ב wpa_supplicant ו dhclient, במילים של אחד מבאי כנס אוגוסט פינגויין חזרה לימי האבן.
 
הכלים הללו בשונה מ network-manager לא משנים מצב כרטיסים ביחד לשום דבר אחר, וכן נצטרך להרים או לכבות את הכרטיס עצמאית, אבל וזה החלק החשוב תהיה גישה לרשת :)

קודם כל מתבחרים לרשת:

wpa_supplicant -iwlp03 -c/etc/wpa_supplicant.conf 
ואחרי זה מקבלים ip :
dhclient wlp03
את קובץ ההגדרות ל wpa_supplicant ניתן לייצר ע"י
wpa_passphrase Egged
מכניסים את הסיסמא ומתקבלת הודעה :
network={
        ssid="Egged"
        psk=63f643dc1fc7c900b5297d48e323245115ff90dd42c08bcdabbc9d95eaa59dd6
}

את הפלט הזה ניתן להדביק לתוך הקובץ wpa_supplicant.conf , מרבית מנהלי הרשת כולל network-manager יודעים לעדכן את הקובץ הזה ולקרוא ממנו כשצריך.

אין תגובות: