Computer >> คอมพิวเตอร์ >  >> ระบบ >> Linux

Wi-Fi ไม่ทำงานใน Linux? นี่คือวิธีแก้ไข

Wi-Fi ไม่ทำงานใน Linux? นี่คือวิธีแก้ไข

หนึ่งในความท้าทายที่สำคัญที่ผู้ใช้มักจะเผชิญกับ Linux คือ Wi-Fi ไดรเวอร์ Wi-Fi มักจะไม่รวมอยู่ในเคอร์เนล และด้วยเหตุนี้ จึงมีปัญหามากมายที่ทำให้โมดูล Wi-Fi ที่ไม่ใช่ของ Intel ทำงานได้ดีภายใต้ Linux เราจะพูดถึงสิ่งที่เกิดขึ้นเมื่อ Wi-Fi ไม่ทำงานบน Linux และวิธีแก้ไข

ฮาร์ดแวร์และซอฟต์แวร์มีปัญหาเกี่ยวกับ Wi-Fi

ปัญหาการเชื่อมต่อ Wi-Fi อาจเป็นปัญหาฮาร์ดแวร์หรือซอฟต์แวร์ก็ได้ ปัญหาเกี่ยวกับฮาร์ดแวร์นั้นง่ายต่อการวินิจฉัย – สิ่งที่คุณต้องทำคือเปิดเทอร์มินัลแล้วป้อนคำสั่งต่อไปนี้:

ping localhost
Wi-Fi ไม่ทำงานใน Linux? นี่คือวิธีแก้ไข

นี่เป็นวิธีง่ายๆ ในการตรวจสอบว่าฮาร์ดแวร์จริงของคุณใช้งานได้หรือไม่ localhost ทำงานเป็นที่อยู่เพื่อตรวจสอบวงจรสำหรับ NIC ของคุณ หากไม่ได้ผล คุณอาจต้องทำงานบางอย่างกับฮาร์ดแวร์ ไม่ว่าจะทำด้วยตัวเองหรือจากคนอื่น

หาก ping นั้นกลับมาเป็นปกติหรือคุณไม่เห็นการ์ด Wi-Fi ด้วยซ้ำ แสดงว่าซอฟต์แวร์อาจมีปัญหา

ติดตั้งไดรเวอร์จาก Ubuntu ISO

หาก distro ของคุณตรวจไม่พบเครือข่าย Wi-Fi เลย หรือหากคุณได้รับข้อผิดพลาด คุณสามารถลองติดตั้งหรือติดตั้งไดรเวอร์ Wi-Fi ใหม่จากไฟล์ ISO ของ Ubuntu ขั้นแรก คุณต้องดาวน์โหลด Ubuntu ISO ที่สอดคล้องกับเวอร์ชัน Ubuntu ของคุณ (สมมุติว่าคุณต้องดาวน์โหลดบนอุปกรณ์อื่นหรือดาวน์โหลดโดยใช้การเชื่อมต่ออีเทอร์เน็ตบน Ubuntu)

วาง Ubuntu ISO ลงในโฮมไดเร็กทอรีบน Ubuntu จากนั้นใน Terminal ให้ป้อนลำดับคำสั่งต่อไปนี้เพื่อเมานต์ Ubuntu ISO กับไดรฟ์เสมือน:

sudo mkdir /media/cdrom
sudo mount -o loop ubuntu-*.iso /media/cdrom

ไปที่ "ซอฟต์แวร์และการอัปเดต" จากแดชบอร์ด จากนั้นในหน้าต่างใหม่ ให้เลือกช่อง "CDrom พร้อม [ชื่อและเวอร์ชัน distro ของคุณ]" และป้อนรหัสผ่านของคุณเมื่อมีการร้องขอ

คลิกแท็บ "ไดรเวอร์เพิ่มเติม" จากนั้นเลือกตัวเลือก "Wireless Network Adapter" แล้วคลิก "ใช้การเปลี่ยนแปลง"

ปัญหาที่หนึ่ง:ไม่พบอุปกรณ์

หาก Ubuntu ตรวจไม่พบอุปกรณ์ไร้สาย (หรือ distro ใด ๆ สำหรับเรื่องนั้น) คุณจะต้องเข้าถึง Terminal และพิมพ์คำสั่งต่อไปนี้:

sudo lsusb

หากคุณใช้การ์ด/ดองเกิลไร้สาย USB แบบเสียบปลั๊กและ

Wi-Fi ไม่ทำงานใน Linux? นี่คือวิธีแก้ไข
sudo lspci

หากคุณมีการ์ดไร้สายภายใน

หากการตอบสนองจากคำสั่งเหล่านี้กลับมาพร้อมกับผลลัพธ์ที่คล้ายกับภาพหน้าจอด้านล่าง แสดงว่าคุณโชคดี:Ubuntu สามารถค้นหาการ์ดได้ โดยปกติแล้วจะระบุโดย “Network Controller” หรือ “Ethernet Controller”

ในอดีต ลีนุกซ์รุ่นต่างๆ มีปัญหาในการค้นหาการ์ดไร้สาย โชคดีที่การสนับสนุนดีขึ้นมาก ดังนั้นนี่จึงเป็นสิ่งที่หายากมาก

คำสั่งเพิ่มเติม

คุณยังสามารถใช้คำสั่งต่อไปนี้เพื่อทดสอบว่าเครื่องสามารถเห็นอุปกรณ์ไร้สายได้หรือไม่ ผู้ใช้อาจต้องติดตั้ง lshw บนเครื่องก่อน

sudo lshw -C network
Wi-Fi ไม่ทำงานใน Linux? นี่คือวิธีแก้ไข

ผลลัพธ์ควรคล้ายกับสิ่งนี้:

*-network
description: Wireless interface
product: PRO/Wireless 3945ABG [Golan] Network Connection
vendor: Intel Corporation

หากเป็นกรณีนี้ และระบบพบการ์ดไร้สาย คุณสามารถดำเนินการติดตั้งไดรเวอร์/โมดูลตามที่อธิบายไว้ด้านล่าง

ปัญหาที่สอง:โมดูลไดรเวอร์หายไป

ต่อจาก lsusb . ที่ประสบความสำเร็จ และ lspci คำสั่ง โดยให้ distro Linux ของคุณสามารถเห็นการ์ดไร้สาย คุณสามารถสันนิษฐานได้ว่าเฟิร์มแวร์ใช้งานได้ เพียงว่าระบบไม่รู้ว่าจะทำอย่างไรกับการ์ด นี่คือจุดที่ต้องการไดรเวอร์หรือโมดูล

กลับไปที่เทอร์มินัลแล้วพิมพ์คำสั่งต่อไปนี้:

sudo lsmod

คุณจะเห็นรายการโมดูลที่ใช้ ในการเปิดใช้งานโมดูลของคุณ ให้พิมพ์คำสั่งต่อไปนี้โดยที่ “modulename” เป็นชื่อของชิปเซ็ตของคุณ

sudo modprobe modulename

ตัวอย่างเช่น หากชิปเซ็ตไร้สายของคุณคือ “RT2870” จะเป็นดังนี้:

sudo modprobe rt2800usb
Wi-Fi ไม่ทำงานใน Linux? นี่คือวิธีแก้ไข

หลังจากนี้ ให้เรียกใช้ lsmod คำสั่งอีกครั้งเพื่อดูว่าโหลดถูกต้องหรือไม่

โหลดโมดูลโดยอัตโนมัติเมื่อบู๊ต

เป็นโอกาสที่หายาก แต่บางครั้งโมดูลจะไม่คงอยู่จากการบูต ในกรณีนี้ คุณสามารถบังคับให้โหลดอย่างถาวรได้ ป้อนคำสั่งด้านล่างลงในเทอร์มินัล:

sudo nano /etc/modules

โปรแกรมแก้ไขข้อความนาโนจะเปิดขึ้น เพิ่มชื่อโมดูลของคุณที่ด้านล่างและบันทึกไฟล์ คุณจะต้องรีบูตและตรวจดูว่าการ์ดไร้สายสามารถเห็นเครือข่ายได้หรือไม่ เพื่อให้คุณเชื่อมต่อได้ตามปกติ

หากคุณติดขัด ให้ทำซ้ำตามขั้นตอน โชคดีที่ Ubuntu มีหน้าช่วยเหลือที่เป็นประโยชน์ในเอกสารออนไลน์ซึ่งคุณสามารถอ่านได้ นอกจากนี้ คุณสามารถใช้ความช่วยเหลือในตัวภายในเทอร์มินัลโดยป้อน:

man lsusb
man lspci

ปัญหาที่สาม:DNS

เป็นเรื่องยากที่ DNS จะมีปัญหา อย่างไรก็ตาม ควรตรวจสอบหากคุณยังมีปัญหาการเชื่อมต่ออยู่ จาก Terminal ให้พิมพ์คำสั่งต่อไปนี้เพื่อประเมินว่า DNS มาจากไหน:

nmcli device show wlan1 | grep IP4.DNS

นี่จะแสดงที่อยู่ LAN ของเราเตอร์ให้คุณ หากไม่ได้ผล คุณอาจต้องเปลี่ยน "wlan1" เป็นสิ่งที่คุณใช้แบบไร้สาย คำสั่งต่อไปนี้ยังสามารถใช้เพื่อคว้าตำแหน่ง:

ip a s

เมื่อคุณมีข้อมูลนี้แล้ว วิธีต่อไปของคุณคือการ ping ที่อยู่ LAN ของเราเตอร์ของคุณ หากใช้งานได้ ให้ลอง ping เซิร์ฟเวอร์ DNS ของ Google:

ping 8.8.8.8

ด้วยผลลัพธ์เหล่านี้ คุณสามารถระบุได้ว่าปัญหา DNS อยู่ที่ใด หากอุปกรณ์ทั้งหมดในบ้านหรือที่ทำงานของคุณแสดงข้อผิดพลาดในการโหลดหน้าเว็บ ให้เปลี่ยน DNS ของเราเตอร์เป็น Google หรือเซิร์ฟเวอร์ DNS เปิด คุณจะต้องปรึกษาผู้ผลิตเราเตอร์ของคุณเกี่ยวกับวิธีการทำเช่นนี้ แต่โดยทั่วไปแล้วจะทำได้ในหน้าผู้ดูแลระบบ โดยทั่วไปแล้วจะเข้าสู่ระบบ 192.168.0.1 หรือคล้ายกัน

หากปัญหา DNS ของคุณคือ Ubuntu เท่านั้น ให้ทำตามขั้นตอนเหล่านี้โดยใช้ Network Manager GUI:

  • คลิกขวาที่ Network Manager
  • แก้ไขการเชื่อมต่อ
  • เลือกการเชื่อมต่อ Wi-Fi ที่ต้องการ
  • เลือกการตั้งค่า IPv4
  • เปลี่ยนวิธีการเป็นที่อยู่ DHCP เท่านั้น
  • เพิ่ม 8.8.8.8, 8.8.4.4 ลงในกล่องเซิร์ฟเวอร์ DNS จำเครื่องหมายจุลภาคคั่น IP และอย่าเว้นวรรค
  • บันทึก จากนั้นปิด

ในขั้นตอนสุดท้าย ให้รีสตาร์ทเครื่องหรือรีสตาร์ท Network Manager จาก Terminal:

sudo service network-manager restart

ฉบับที่สี่:ไม่มีผู้จัดการเครือข่าย

สมมติว่าคุณได้ลบ Network Manager หรือถอนการติดตั้งโดยไม่ได้ตั้งใจ นี่เป็นสถานการณ์ที่ลำบากมาก:คุณไม่มีอินเทอร์เน็ตและไม่มีตัวจัดการเครือข่าย แต่มีหลายอย่างที่คุณทำได้

สมมติว่าแพ็คเกจยังอยู่ในแคชของคุณ คุณสามารถไปที่ Terminal และป้อน:

# Debian/Ubuntu
sudo apt install network-manager
 
# Fedora
sudo dnf install network-manager
 
# Arch Linux
sudo pacman -Syu network-manager

หากคุณลบแคชนี้แล้ว คุณสามารถใช้สายอีเทอร์เน็ตเพื่อเชื่อมต่อโดยเสียบปลั๊กเข้ากับพอร์ตอีเทอร์เน็ตและเรียกใช้คำสั่งด้านบนอีกครั้ง

ในขั้นตอนสุดท้าย หากวิธีการข้างต้นไม่ได้ผล คุณจะต้องแก้ไขไฟล์การกำหนดค่าของคุณ ฉันเลือก gedit เป็นเท็กซ์เอดิเตอร์ แต่คุณสามารถใช้ตัวเลือกที่คุณต้องการและแก้ไขคำสั่งได้

sudo gedit /etc/network/interfaces

แก้ไขให้อ่านดังนี้:

auto lo
iface lo inet loopback
 
auto wlan0
iface wlan0 inet dhcp
wpa-essid myssid
wpa-psk mypasscode

จากนั้นคุณสามารถรีสตาร์ทอินเทอร์เฟซโดยป้อนรหัสด้านล่าง:

sudo ifdown wlan0 && sudo ifup -v wlan0

อ่านเพิ่มเติมเกี่ยวกับระบบย่อย Linux Wireless ได้ที่ kernel.org วิกิพีเดีย

เมื่อ Wi-Fi ของคุณเริ่มทำงานแล้ว ทำไมไม่ลองเฉลิมฉลองด้วยการดูวิธีที่ดีที่สุดในการเล่นเกม Windows บน Linux? หรือหากคุณไม่ทราบวิธีเปลี่ยนชื่อไฟล์ใน Linux ทุกวิธี โปรดดูคำแนะนำของเราในเรื่องนี้