Computer >> Hướng Dẫn Máy Tính >  >> Hệ Thống >> Linux

Wi-Fi không hoạt động trong Linux? Cách khắc phục

Một trong những thách thức lớn mà người dùng thường gặp với Linux là Wi-Fi. Driver Wi-Fi thường không được bao gồm trong kernel, và kết quả là có nhiều vấn đề khiến các module Wi-Fi non-Intel hoạt động không tốt dưới Linux. Ở đây chúng tôi bao gồm những gì xảy ra khi Wi-Fi không hoạt động trên Linux và cách khắc phục.

Vấn đề phần cứng vs phần mềm Wi-Fi

Vấn đề kết nối Wi-Fi có thể là vấn đề phần cứng hoặc phần mềm. Vấn đề phần cứng khá dễ chẩn đoán – bạn chỉ cần mở terminal và nhập lệnh sau:

ping localhost

Đây là cách đơn giản để kiểm tra xem phần cứng vật lý có hoạt động không. localhost hoạt động như một địa chỉ để kiểm tra mạch cho NIC của bạn. Nếu điều này không hoạt động, bạn có thể cần phải sửa chữa phần cứng, चाहे tự làm hay nhờ người khác.

Nếu ping đó trả về sạch hoặc bạn thậm chí không thấy card Wi-Fi của mình, bạn có thể đang gặp vấn đề phần mềm.

Cài đặt driver từ file ISO Ubuntu

Nếu distro của bạn không phát hiện mạng Wi-Fi nào cả, hoặc bạn gặp lỗi, bạn có thể thử cài đặt hoặc cài lại driver Wi-Fi từ file ISO Ubuntu. Trước tiên, bạn cần tải file ISO Ubuntu tương ứng với phiên bản Ubuntu của bạn. (Giả sử bạn cần tải nó trên thiết bị khác hoặc tải nó bằng kết nối Ethernet trên Ubuntu.)

Đặt file ISO Ubuntu vào thư mục Home trên Ubuntu. Sau đó trong Terminal, nhập chuỗi lệnh sau để mount ISO Ubuntu vào ổ ảo:

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

Đi đến "Software & Updates" từ dashboard, sau đó trong cửa sổ mới, tích vào ô "CDrom with [tên distro và phiên bản của bạn]" và nhập mật khẩu khi được yêu cầu.

Nhấp vào tab "Additional Drivers" (Driver bổ sung), sau đó chọn tùy chọn "Wireless Network Adapter" (Bộ điều hợp mạng không dây) và nhấp "Apply Changes" (Áp dụng thay đổi).

Vấn đề 1: Thiết bị không được phát hiện

Nếu thiết bị không dây không được phát hiện bởi Ubuntu (hoặc bất kỳ distro nào), bạn sẽ cần truy cập Terminal và gõ lệnh sau:

sudo lsusb

nếu bạn dùng card/dongle USB không dây cắm ngoài và

sudo lspci

nếu bạn có card không dây nội bộ.

Nếu phản hồi từ các lệnh này trả về kết quả tương tự ảnh chụp màn hình bên dưới, bạn đang may mắn: Ubuntu có thể tìm thấy card. Nó thường được xác định bằng "Network Controller" (Bộ điều khiển mạng) hoặc "Ethernet Controller".

Trong quá khứ, nhiều bản phân phối Linux đã gặp khó khăn trong việc tìm card không dây. May thay, hỗ trợ đã tốt hơn rất nhiều, nên đây giờ là trường hợp hiếm.

Các lệnh bổ sung

Bạn cũng có thể dùng lệnh sau để kiểm tra xem máy có thấy thiết bị không dây không; người dùng có thể cần cài lshw trên máy trước.

sudo lshw -C network

Kết quả đầu ra nên giống như sau:

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

Nếu đây là trường hợp, và hệ thống tìm thấy card không dây, bạn có thể tiến hành cài driver/module như được mô tả bên dưới.

Vấn đề 2: Module driver bị thiếu

Tiếp nối từ các lệnh lsusb và lspci thành công, giả sử distro Linux của bạn có thể thấy card không dây, bạn có thể giả định firmware đang hoạt động, chỉ là hệ thống không biết phải làm gì với card. Đây là lúc cần driver hoặc module.

Quay lại terminal và gõ lệnh sau:

sudo lsmod

Bạn sẽ thấy danh sách các module đang được dùng. Để kích hoạt module của bạn, gõ lệnh sau nơi "modulename" là tên chipset của bạn.

sudo modprobe modulename

Ví dụ, nếu chipset không dây của bạn là "RT2870", sẽ như sau:

sudo modprobe rt2800usb

Sau đó, chạy lại lệnh lsmod để xem nó đã tải đúng chưa.

Tự động tải module khi boot

Đây là trường hợp hiếm, nhưng đôi khi module sẽ không tồn tại từ boot. Trong trường hợp này, bạn có thể buộc nó tải vĩnh viễn. Nhập lệnh sau vào Terminal:

sudo nano /etc/modules

Trình soạn thảo văn bản nano sẽ mở. Thêm tên module của bạn ở cuối và lưu file. Bạn sẽ cần khởi động lại và kiểm tra xem card không dây có thể thấy mạng để cho phép bạn kết nối như bình thường không.

Nếu bạn bị mắc kẹt, hãy lặp lại quy trình. May thay, Ubuntu có một số trang hỗ trợ hữu ích trong tài liệu trực tuyến mà bạn cũng có thể đọc. Ngoài ra, bạn có thể dùng trợ giúp tích hợp trong terminal bằng cách nhập:

man lsusb
man lspci

Vấn đề 3: DNS

Hiếm khi DNS là vấn đề; tuy nhiên, đáng để điều tra nếu bạn vẫn gặp sự cố kết nối. Từ Terminal, gõ lệnh sau để đánh giá DNS đến từ đâu:

nmcli device show wlan1 | grep IP4.DNS

Điều này sẽ cho bạn địa chỉ LAN của router. Nếu nó không hoạt động, bạn có thể phải đổi "wlan1" thành bất cứ thứ gì wireless của bạn dùng. Lệnh sau cũng có thể dùng để lấy tên chỉ định:

ip a s

Khi đã có thông tin này, phương pháp tiếp theo là ping địa chỉ LAN của router. Nếu điều này hoạt động, hãy thử ping server DNS của Google:

ping 8.8.8.8

Với những kết quả này, bạn có thể xác định nơi vấn đề DNS ở đâu. Nếu tất cả thiết bị trong nhà hoặc văn phòng của bạn đều báo lỗi tải trang, hãy đổi DNS router sang server DNS của Google hoặc OpenDNS. Bạn sẽ phải tham khảo nhà sản xuất router để làm thế nào, nhưng thường được làm trong trang admin, phổ biến nhất là đăng nhập vào 192.168.0.1 hoặc tương tự.

Nếu vấn đề DNS chỉ ở Ubuntu, hãy làm theo các bước sau bằng GUI Network Manager:

  • Chuột phải vào Network Manager.
  • Chỉnh sửa kết nối (Edit Connections).
  • Chọn kết nối Wi-Fi liên quan.
  • Chọn IPv4 Settings.
  • Đổi Method thành "DHCP Addresses Only" (Chỉ địa chỉ DHCP).
  • Thêm 8.8.8.8, 8.8.4.4 vào hộp DNS server. Nhớ dấu phẩy phân tách IP và không để khoảng trắng.
  • Lưu, sau đó Đóng.

Là bước cuối cùng, khởi động lại máy hoặc khởi động lại Network Manager từ Terminal:

sudo service network-manager restart

Vấn đề 4: Không có Network Manager

Giả sử bạn đã xóa Network Manager hoặc gỡ cài đặt nó bởi lỡ. Đây là tình huống rất khó khăn: bạn không có Internet và không có Network Manager, nhưng vẫn có những thứ bạn có thể làm.

Giả sử gói vẫn còn trong cache của bạn, bạn có thể vào Terminal và nhập:

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

Nếu bạn đã xóa cache này, bạn có thể dùng cáp Ethernet để kết nối bằng cách cắm vào cổng Ethernet và chạy lại lệnh trên.

Là bước cuối cùng, nếu không có cách nào trên hoạt động, bạn sẽ cần chỉnh sửa file cấu hình. Tôi chọn gedit làm trình soạn thảo, nhưng bạn có thể dùng lựa chọn ưa thích và sửa lệnh.

sudo gedit /etc/network/interfaces

Sửa nó để đọc như sau:

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

Sau đó bạn có thể khởi động lại giao diện bằng cách nhập mã dưới đây:

sudo ifdown wlan0 && sudo ifup -v wlan0

Đọc thêm về Linux Wireless subsystem có thể tìm thấy trên wiki kernel.org.

Với Wi-Fi của bạn đã hoạt động, tại sao không ăn mừng bằng cách xem những cách tốt nhất để chơi game Windows trên Linux? Hoặc, nếu bạn không biết tất cả các cách đổi tên file trong Linux, hãy xem hướng dẫn của chúng tôi về nó.