Arch linux wifi hoạt động bằng tay, làm thế nào để tự động?


21

Chạy Arch Linux với kernel 3.6.11-12-ARCH + trên Raspberry Pi của tôi.

Tôi có một dongle usb wifi Linksys (WUSB54GC v3) đang chạy và hoạt động sau khi tôi thực hiện các lệnh sau:

$> sudo ifconfig wlan0 up
$> sudo iwlist scan
$> sudo iwconfig wlan0 mode managed essid myssid key "mykey" retry 7
   # Only had to do this next one the first time
$> sudo wpa_passphrase myssid "mypassword" > /etc/wpa_supplicant/wpa_supplicant.conf 
$> sudo wpa_supplicant -B -Dwext -iwlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf
$> sudo dhcpcd wlan0

Làm cách nào để có wifi trên thiết bị này hoạt động mỗi lần khởi động? Cuối cùng, tôi muốn triển khai nó ở vị trí không có kết nối có dây (do đó là wifi), nhưng rõ ràng tôi không thể làm điều đó nếu tôi phải tự khởi động / kết nối wifi mỗi lần.


Không dây được quản lý tốt nhất thông qua một daemon như network-managerhoặc wicd.
jordanm

1
Bạn đã thử hướng dẫn này để tự động kết nối với các mạng không dây: wiki.archlinux.org/index.php/Netcfg
Raza

3
netcfg không được hỗ trợ cho netctl (không chắc là sự thay đổi đó đã được phản ánh trong phần hồi âm ARM của Arch chưa), nhưng đúng vậy, đó là cách để xử lý cấu hình mạng của bạn.
fukawi2

Câu trả lời:


17

Bạn nên sử dụng netctl. Đó là Arch Linux được xây dựng trong hệ thống quản lý mạng. Nếu nó chưa được cài đặt (mặc dù vậy), hãy chạy pacman -Syu netctlrồi nhìn vào /etc/netctl. Có ví dụ tập tin cấu hình trong /etc/netctl/examples. Để sử dụng một ví dụ, chỉ cần sao chép nó /etc/netctlvà chỉnh sửa nó để phù hợp với thiết lập của bạn. Vì vậy, đối với trường hợp của bạn, hãy chạy cp /etc/netctl/example/wireless-wpa /etc/netctl/somedescriptivenamesau đó chỉnh sửa /etc/netctl/somedescriptivenameđể phù hợp với thiết lập của bạn.
Để bật cấu hình tự động của các mạng không dây với systemd, hãy đảm bảo wpa_actiondgói được cài đặt và kích hoạt dịch vụ:systemctl enable netctl-auto@wlan0.service

Để biết thêm thông tin xin vui lòng tham khảo mục wiki Netctl .


không netctl-auto listtrả về cấu hình nào, trong khi 4 cấu hình và hoạt động với netctl thủ công được mong đợi hoặc không bình thường? Làm cách nào để sử dụng netctl-auto switch-to Xnếu dường như không có giá trị X hợp lệ? Tôi thấy mục nhập wiki netctl-auto vô cùng hữu ích, có lẽ bạn biết nơi để tìm một tài liệu tốt hơn?
Nikana Reklawyks

Nikana, tôi không sử dụng netctl-autonhiều, nhưng chỉ một vài mẹo: 1. netctl-autochỉ dành cho kết nối không dây. Nếu bạn đang muốn sử dụng nó cho ethernet, hãy sử dụng netctl-ifplugd. 2. Đảm bảo bạn không sử dụng wpa-configlàm phương thức bảo mật và thay vì wpa-configsectionhoặc wpa. Hồ sơ sẽ không hiển thị khi sử dụngwpa-config
Jacob Wiltse

Cảm ơn bạn. Thật không may cho người xem trong tương lai, thiết lập của tôi hoạt động ngay bây giờ, không phải là tôi nhớ làm bất cứ điều gì đặc biệt. netctl-auto listtrả về một loạt các hồ sơ như nó cần. Tôi nghĩ rằng có thể một trong những hồ sơ của tôi không tương thích với netctl-auto vì wpa-configyêu cầu này, điều này đã ngăn tất cả chúng hiển thị.
Nikana Reklawyks

Như đã đề cập trong câu trả lời của tôi, bạn cần xóa các cấu hình được tạo bằng netctl trước khi bật netctl-auto. Sau đó, sau khi bắt đầu netctl-auto, hãy thêm lại chúng.
johny tại sao

Bạn sẽ không sử dụng wlan0 như hiển thị ở đây. Bạn phải sử dụng ID WiFi chính xác của mình.
johny tại sao

5

Một cách dễ dàng hơn để loại bỏ một số phỏng đoán về cách tạo hồ sơ cho netctl(lấy từ netctltrang trên wiki vòm):

Bước 1. Thiết lập internet không dây theo cách thủ công, sử dụng wpa_supplicantnhư được mô tả trong OP. Nếu hệ thống của bạn không có nó được cài đặt làm $ pacman -S wpa_supplicant.

Bước 2. Bạn cũng sẽ cần dialoggói, vì vậy $ pacman -S dialog. Sau đó, bạn có thể khởi động lại hệ thống hoặc ngắt kết nối khỏi mạng không dây.

Bước 3. Chạy $ wifi-menu -o, sau đó đi qua các cài đặt Windows / Mac-esque rất đơn giản. Bạn có thể kiểm tra giá trị đặt trước của id mạng hệ thống của bạn thông qua $ sudo netctl list. Giá trị sẽ ở định dạng wlan098-SSID. (trong đó SSID = tên mạng WLAN của bạn)

Bước 4. Cuối cùng chạy $ netctl enable wlan098-SSIDvà khởi động lại hệ thống$ reboot

Tuy nhiên, đôi khi bạn có thể nhận được một thông báo lỗi với một cái gì đó giống như temporarily unable to resolve namehoặc một cái gì đó, nhưng chỉ cần thử lại ping và nó sẽ hoạt động.


Nếu không có netctl-auto, bạn sẽ không tự động kết nối lại vì các điểm nóng nằm trong phạm vi. Xem câu trả lời của tôi để thiết lập.
johny tại sao

3

Tôi tin rằng tất cả các câu trả lời khác là thiếu sót, như được giải thích trong nhận xét của tôi về chúng.

Các bước này sẽ tự động kết nối với điểm nóng mạnh nhất. Đã thử nghiệm trên bản cài đặt vòm tiêu chuẩn với systemd (có thể hoạt động trên các hệ điều hành khác):

Thiết lập một lần:

  • Đảm bảo các cài đặt sau: hộp thoại, wpa_supplicant, dhcpcd, netctl, wifi-menu.

  • trên xfce, thêm plugin xfce4-wavelan. Đó chỉ là đèn báo hiển thị khi bạn kết nối. Nó không có mục đích nào khác.

  • Đảm bảo tất cả các trình quản lý và dịch vụ mạng khác được xóa hoặc tắt. https://wiki.archlinux.org/index.php/Netctl#Wishing

  • xóa mọi cấu hình mạng đã tạo trước đó. https://www.ostechnix.com/fix-job-netctl-service-fails-error-arch-linux/

  • Lấy ID thiết bị WiFi của bạn basename $(ls -d /sys/class/net/w*)

  • kích hoạt dịch vụ netctl-auto. Đây là dịch vụ sẽ tự động kết nối. systemctl enable netctl-auto@YourWifiDeviceID.service

Kết nối với điểm phát sóng lần đầu tiên:

  • Chạy đi wifi-menu. Yêu cầu root. pkexec wifi-menu -o hoặc là sudo wifi-menu -o

Rời khỏi -ođể xem mật khẩu mạng khi bạn nhập nó.

  • Mũi tên xuống, chọn kết nối bạn muốn, nhấn enter, chấp nhận tên kết nối, nhập mật khẩu.

Thêm nhiều điểm nóng khi cần thiết. netctl-auto sẽ tự động kết nối lại với điểm nóng mạnh nhất hiện có sau đó.


Câu trả lời được cải thiện
johny tại sao
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.