3/18/09

Sửa một số lỗi Linux (phần 2)

Chữa các lỗi kết nối mạng.


Trước tiên kiểm tra xem hệ thống có nhận card mạng không bằng lệnh:



sudo ifconfig -a

Nếu có, card mạng LAN sẽ được ký hiệu là eth0, card wifi là wlan0, ath0 hoặc ngay cả là eth1. Màn hình terminal sẽ có kết quả như sau:



Nếu không thấy có card nào, boot lại máy bằng đĩa Live CD (của hệ Linux khác) rồi chạy lại lệnh trên. Nếu Live CD nhận được card, chạy lệnh sau để xem nó dùng module nào:



sudo lspci -k

sau đó tìm trên web để có driver cần thiết cho hệ Linux đang cài trên máy.


Một số card wireless cần có file firmware đặt trong thư mục /lib/firmware. Khi driver của card được tải vào bộ nhớ, nó sẽ tải file firmware lên bộ nhớ của card. File firmware thường có trong các driver Windows (giải nén các file cab Windows để tìm) hoặc tải từ Internet.


Nếu không tìm được driver cho card thì cách cuối cùng là dùng driver của Windows. Trong Linux có trình NdisWrapper dùng cho việc này.


Trước hết cần cài NdisWrapper từ kho phần mềm của Linux. Sau đó cần tìm file Windows driver của card từ đĩa CD bán kèm theo card. Phải dùng đúng đĩa CD vì một số nhà chế tạo card có thói quen thay đổi chipset của card và do đó thay driver mà không thay đổi model card.


Tải file driver đó (là một file INF trên CD) vào bằng lệnh:



sudo ndiswrapper -i /path/to/driver.inf

Kiểm tra xem driver có làm việc không bằng lệnh:



sudo ndiswrapper -l

Lệnh trên sẽ liệt kê các driver hiện có của ndiswrapper. Tải ndiswrapper vào bộ nhớ bằng lệnh:



sudo modprobe -v ndiswrapper

Chạy lại lệnh ifconfig đã nêu ở trên, card wifi bây giờ sẽ xuất hiện như wlan0 (hoặc eth1, v.v...). Nếu không tìm thấy file INF trên CD, thì rất có thể nó được nén trong một file nén tự dãn dạng exe. Trong Linux, dãn file đó ra bằng lệnh (gói unzip phải đã cài):



unzip /mnt/cdrom/install.exe

Trong phần trước đã hướng dẫn cách tải tự động module khi Linux khởi động. Dùng cách đó để tải NdisWrapper.


Kết nối wifi bao giờ cũng được mã hoá để bảo mật. Nhưng khi đang thử, hãy tạm tắt chức năng mã hoá. Kiểm tra xem router của mạng đừng hạn chế địa chỉ MAC (nhất là khi đang kết nối một máy mới hoặc card wifi mới).


Phần lớn hệ Linux dùng trình Network Manager để quản lý các kết nối. Khi nhấn chuột vào biểu tượng Network Manager trên taskbar, tên các mạng wifi sẽ hiện lên để chọn kết nối. Nếu tên mạng không hiện, kiểm tra xem mạng có đặt ở chế độ thông báo tên mạng (broadcast SSID) không. Một số mạng wifi vì lý do an ninh không thông báo tên mạng.


Cũng có thể kiểm tra các mạng wifi hiện có bằng các lệnh sau:



sudo ifconfig wlan0 up
sudo iwlist wlan0 scan

Lệnh đầu để kích hoạt card wifi, lệnh sau cho hiện danh sách các mạng wifi đang trong vùng phủ sóng. Nếu nhận được thông báo "Interface Doesn't Support Scanning" thì hoặc ta kích hoạt sai card hoặc card không có driver hoặc firmware đúng. Quay lại phần trên để chọn lại driver, firmware.


Nếu kết nối được thành công thì lập tức ngắt kết nối và khôi phục lại chế độ mã hoá của mạng rồi thử kết nối lại. Chế độ mã tốt nhất là WPA2 (nếu card không hỗ trợ thì dùng WPA – Wi-Fi Protected Access). Không nên dùng WEP vì độ an toàn thấp, dễ bị phá.



Mạng Internet có dây.


Nếu truy cập Internet có vẻ không thông, đầu tiên hãy thử dùng lệnh ping đến một địa chỉ đã biết. Ví dụ:



ping www.linuxformat.co.uk

Nếu mạng vẫn thông thì lệnh này sẽ cho biết số gói tin (packet) gửi và nhận tới địa chỉ trên. Nếu không, thử lại một lần nữa:



ping 80.244.178.151

Dãy số trên là địa chỉ IP của site www.linuxformat.co.uk. Nếu lệnh thứ hai làm việc mà lệnh thứ nhất không thì có nghĩa là bạn không phân giải được tên miền thành địa chỉ IP.


Kiểm tra file /etc/resolv.conf xem có chứa các địa chỉ máy chủ DNS của nhà cung cấp dịch vụ Internet không. Nếu trong mạng có router, nên kiểm tra xem địa chỉ IP của router trong file nói trên có đúng không.


Khi ping đến địa chỉ IP không được, hãy thử ping đến địa chỉ DNS server của nhà cung cấp dịch vụ Internet. Nếu ping được thì lỗi là từ chỗ nhà cung cấp thông ra mạng Internet. Một nguyên nhân khác là máy của bạn dùng IPv6, chuẩn IP mới nhưng router không hiểu.


Bước tiếp theo, thử mở giao diện web cấu hình của modem hoặc ping đến modem. Nếu được nghĩa là kết nối giữa modem và nhà cung cấp dịch vụ Internet bị ngắt. Kiểm tra dây cắm trong nhà hoặc báo cho nhà cung cấp.


Cũng có trường hợp, nếu card mạng dùng driver ngoài (không có trong Linux kernel) trước đây đã làm việc tốt, sau khi update kernel sẽ ngừng làm việc. Khi kernel được update, thường vẫn có thể khởi động bằng kernel cũ (các hàng menu dưới có chữ kernel trong menu khởi động), thử khởi động như vậy xem có phải nguyên nhân đó không.



Khắc phục lỗi IPv6


Cập nhật modem: kiểm tra website của nhà sản xuất, tìm firmware để cập nhật modem router cho phép xử lý IPv6. Xem kỹ hướng dẫn.


Thử bằng Firefox: tắt hỗ trợ IPv6 trong Firefox: gõ about:config vào thanh địa chỉ của Firefox rồi Enter. Trong thanh Filter xuất hiện, gõ IPv6. Tìm đến mục network.dns.disableipv6, nhấn phím phải chuột rồi chọn Toggle để chuyển giá trị từ false sang true. Sau đó thử truy cập lại website trước đây không vào được, nếu vào được tức là lỗi do IPv6.


Tắt IPv6 trong Linux: Có thể tắt hỗ trợ IPv6 trong Linux bằng cách sửa file cấu hình /etc/modprobe.conf hoặc /etc/modprobe.d/aliases tuỳ bản Linux. Mở các file đó bằng quyền root rồi bỏ các dòng có IPv6 và thêm hai dòng sau:



alias net-pf-10 off
alias ipv6 off




private:streamPage 3 of 3



No comments: