Arch linux wifi ทำงานด้วยตนเองทำอย่างไรให้อัตโนมัติ?


21

ใช้ Arch Linux กับเคอร์เนล 3.6.11-12-ARCH + บน Raspberry Pi ของฉัน

ฉันมีดองเกิล usb usb Linksys wifi (WUSB54GC v3) ที่กำลังทำงานและทำงานหลังจากที่ฉันเรียกใช้คำสั่งต่อไปนี้:

$> 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

ฉันจะทำให้ wifi บนอุปกรณ์นี้ทำงานทุกครั้งหลังจากบูทได้อย่างไร ในที่สุดฉันต้องการปรับใช้ในตำแหน่งที่ไม่มีการเชื่อมต่อแบบมีสาย (ดังนั้น wifi) แต่ฉันไม่สามารถทำได้อย่างชัดเจนถ้าฉันต้องเริ่ม / เชื่อมต่อ wifi ด้วยตนเองทุกครั้ง


ไร้สายที่มีการจัดการที่ดีที่สุดผ่านทางภูตเช่นหรือnetwork-manager wicd
jordanm

1
คุณลองคำสั่งนี้เพื่อเชื่อมต่อกับเครือข่ายไร้สายโดยอัตโนมัติหรือไม่: wiki.archlinux.org/index.php/Netcfg
Raza

3
netcfg ถูกคิดค่าเสื่อมราคาในความโปรดปรานของ netctl (ไม่แน่ใจว่าการเปลี่ยนแปลงนั้นสะท้อนให้เห็นใน ARM respin ของ Arch แต่) แต่ใช่ว่าเป็นวิธีจัดการกับการกำหนดค่าเครือข่ายของคุณ
fukawi2

คำตอบ:


17

คุณควรใช้ netctl มันเป็น Arch Linux ที่สร้างขึ้นในระบบการจัดการเครือข่าย ถ้ายังไม่ได้ติดตั้งไว้แล้ว (มันควรจะเป็นแม้ว่า) ทำงานแล้วมองในpacman -Syu netctl มีแฟ้มการกำหนดค่าตัวอย่างเช่นในการเป็น /etc/netctl/etc/netctl/examples

ในการเริ่มต้นและทำงานอย่างรวดเร็ว:

  1. จดชื่ออุปกรณ์สำหรับอแด็ปเตอร์ไร้สายของคุณ แทนที่อินสแตนซ์ทั้งหมดwlan0ในตัวอย่างของฉันด้วยชื่อที่ตรงกับการตั้งค่าของคุณ
  2. ให้แน่ใจว่าคุณได้ติดตั้งแพคเกจที่จำเป็น

    pacman -Syu wpa_supplicant dhcpcd

    1. wpa_supplicant เป็นสิ่งจำเป็นสำหรับจุดเชื่อมต่อที่มีการป้องกัน WPA และ dhcpcd จำเป็นต้องได้รับ IP จากเครือข่ายใด ๆ ที่ใช้เซิร์ฟเวอร์ DHCP ตามที่ระบุไว้ใน Arch Linux wiki
  3. คัดลอกตัวอย่างที่เหมาะสม:

    cp /etc/netctl/example/wireless-wpa /etc/netctl/somedescriptivename

  4. แก้ไขการกำหนดค่าใหม่ของคุณที่/etc/netctl/somedescriptivenameเพื่อให้พอดีกับการตั้งค่าของคุณ
  5. เปิดใช้งานบริการ netctl-auto สำหรับอแด็ปเตอร์ไร้สายของคุณ อีกครั้งให้แทนที่ wlan0 ด้วยชื่ออุปกรณ์สำหรับการตั้งค่าของคุณ

    systemctl enable netctl-auto@wlan0.service

สิ่งที่ควรทราบ:

  • netctl จะเชื่อมต่อกับส่วนกำหนดค่าใด ๆ ที่คุณมีใน / etc / netctl โดยอัตโนมัติเมื่อคุณเข้าสู่ช่วงของจุดเชื่อมต่อ
  • การตั้งค่านี้จะทำงานร่วมกับโปรไฟล์การใช้และSecurity=wpa-configsectionSecurity=wpa
  • ปิดการใช้งานโปรไฟล์ wifi ที่เปิดใช้งานก่อนหน้านี้ทั้งหมดโดยใช้netctl disable profilenameมิฉะนั้น netctl จะเริ่มทำงานสองครั้งเมื่อบูตเมื่อเปิดใช้งาน netctl-auto

สำหรับข้อมูลเพิ่มเติมโปรดดูที่Netctl วิกิพีเดียรายการ


ที่netctl-auto listส่งคืนโพรไฟล์ใดไม่มีในขณะที่ 4 มีการกำหนดค่าและทำงานกับ netctl ด้วยตนเองคาดว่าหรือปกติ? ฉันจะใช้งานได้netctl-auto switch-to Xอย่างไรหากไม่มีค่า X ที่ถูกต้อง? ฉันพบว่ารายการวิกิ netctl-auto arch ไม่ช่วยเหลืออย่างน่าประหลาดใจบางทีคุณอาจรู้ว่าจะหาเอกสารที่ดีกว่าได้จากที่ใด
Nikana Reklawyks

Nikana ฉันไม่ได้ใช้netctl-autoมากนัก แต่เพียงไม่กี่เคล็ดลับ: 1. netctl-autoสำหรับการเชื่อมต่อไร้สายเท่านั้น หากคุณต้องการใช้กับอีเธอร์เน็ตให้ใช้ netctl-ifplugd 2. ให้แน่ใจว่าคุณไม่ได้ใช้wpa-configเป็นวิธีการรักษาความปลอดภัยและแทนที่จะหรือwpa-configsection wpaโปรไฟล์จะไม่ปรากฏขึ้นเมื่อใช้wpa-config
Jacob Wiltse

ขอขอบคุณ. น่าเสียดายสำหรับผู้ชมในอนาคตการตั้งค่าของฉันใช้งานได้ในตอนนี้ไม่ใช่ว่าฉันจำได้ว่าทำอะไรเป็นพิเศษ netctl-auto listส่งคืนโปรไฟล์จำนวนมากเท่าที่ควร ฉันคิดว่าบางทีหนึ่งในโปรไฟล์ของฉันไม่สามารถทำงานร่วมกับ netctl-auto ได้เนื่องจากwpa-configความต้องการนี้ซึ่งทำให้พวกเขาทั้งหมดไม่ปรากฏ
Nikana Reklawyks

ดังที่ได้กล่าวไว้ในคำตอบของฉันคุณต้องลบโปรไฟล์ที่สร้างด้วย netctl ก่อนที่จะเปิดใช้งาน netctl-auto จากนั้นหลังจากเริ่มต้น netctl-auto ให้เพิ่มอีกครั้ง
johny ทำไม

คุณจะไม่ใช้ wlan0 ดังที่แสดงไว้ที่นี่ คุณต้องใช้รหัส WiFi ที่ถูกต้อง
johny ทำไม

5

วิธีที่ง่ายกว่าที่จะกำจัดการคาดเดาบางส่วนเกี่ยวกับวิธีสร้างโปรไฟล์สำหรับnetctl(นำมาจากnetctlหน้าบนวิกิ arch):

ขั้นตอน 1. ตั้งค่าอินเทอร์เน็ตไร้สายด้วยตนเองโดยใช้wpa_supplicantตามที่อธิบายไว้ใน OP $ pacman -S wpa_supplicantหากระบบของคุณไม่ได้ติดตั้งทำ

ขั้นตอนที่ 2 คุณจะต้องมีdialogแพ็คเกจ$ pacman -S dialogด้วย จากนั้นคุณสามารถรีบูตระบบของคุณหรือตัดการเชื่อมต่อจากเครือข่ายไร้สายของคุณ

ขั้นตอนที่ 3 เรียกใช้$ wifi-menu -oจากนั้นทำตามการตั้งค่า Windows / Mac-esque ที่ไม่ซับซ้อน คุณสามารถตรวจสอบค่าที่ตั้งไว้ของ id $ sudo netctl listระบบเครือข่ายของคุณผ่านทาง ค่าจะอยู่ในรูปแบบของwlan098-SSIDค่าที่จะอยู่ในรูปแบบของ(โดยที่ SSID = ชื่อ WLAN ของคุณ)

ขั้นตอน 4. ในที่สุดรัน$ netctl enable wlan098-SSIDและรีบูตระบบ$ reboot

ถึงกระนั้นบางครั้งคุณอาจได้รับข้อความแสดงข้อผิดพลาดด้วยสิ่งที่ชอบtemporarily unable to resolve nameหรืออะไรบางอย่าง แต่ลองทำซ้ำอีกครั้งและควรจะทำงาน


หากไม่มี netctl-auto คุณจะไม่เชื่อมต่อใหม่โดยอัตโนมัติเมื่อฮอตสปอตเข้าสู่ช่วง ดูคำตอบของฉันสำหรับการตั้งค่า
johny ทำไม

3

ฉันเชื่อว่าคำตอบอื่น ๆ ทั้งหมดมีข้อบกพร่องตามที่อธิบายไว้ในความคิดเห็นของฉันกับพวกเขา

ขั้นตอนเหล่านี้จะเชื่อมต่อกับฮอตสปอตที่แรงที่สุดโดยอัตโนมัติ ทดสอบการติดตั้ง arch มาตรฐานด้วย systemd (อาจใช้กับระบบปฏิบัติการอื่น):

ตั้งค่าครั้งเดียว:

  • ตรวจสอบให้แน่ใจว่ามีการติดตั้งต่อไปนี้: dialog, wpa_supplicant, dhcpcd, netctl, wifi-menu

  • บน xfce ให้เพิ่ม xfce4-wavelan-plugin นั่นเป็นเพียงไฟแสดงสถานะซึ่งจะแสดงเมื่อคุณเชื่อมต่อ มันไม่มีวัตถุประสงค์อื่น

  • ตรวจสอบให้แน่ใจว่าผู้จัดการเครือข่ายและบริการอื่น ๆ ถูกลบหรือปิดใช้งาน https://wiki.archlinux.org/index.php/Netctl#Wireless

  • ลบโปรไฟล์เครือข่ายที่สร้างไว้ก่อนหน้านี้ https://www.ostechnix.com/fix-job-netctl-service-failed-error-arch-linux/

  • รับรหัสอุปกรณ์ WiFi ของคุณ basename $(ls -d /sys/class/net/w*)

  • เปิดใช้งานบริการ netctl-auto นี่คือบริการที่จะเชื่อมต่ออัตโนมัติ systemctl enable netctl-auto@YourWifiDeviceID.service

เชื่อมต่อกับฮอตสปอตครั้งแรก:

  • wifi-menuวิ่ง ต้องการราก pkexec wifi-menu -o หรือ sudo wifi-menu -o

ออกจาก-oเพื่อดูรหัสผ่านเครือข่ายในขณะที่คุณพิมพ์

  • ลูกศรลงเลือกการเชื่อมต่อที่คุณต้องการกด Enter ยอมรับชื่อการเชื่อมต่อป้อนรหัสผ่าน

เพิ่มฮอตสปอตเพิ่มเติมตามต้องการ netctl-auto จะเชื่อมต่อกับฮอตสปอตที่มีอยู่มากที่สุดโดยอัตโนมัติหลังจากนั้น


ตอบรับการปรับปรุง
johny ทำไม
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.