Wifi linux Arch bekerja secara manual, bagaimana membuatnya otomatis?


22

Menjalankan Arch Linux dengan kernel 3.6.11-12-ARCH + di Raspberry Pi saya.

Saya memiliki dongle wifi usb Linksys (WUSB54GC v3) yang berjalan dan berfungsi setelah saya menjalankan perintah berikut:

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

Bagaimana cara mendapatkan wifi di perangkat ini agar berfungsi setiap kali setelah boot? Akhirnya saya ingin menyebarkannya di lokasi tanpa koneksi kabel (maka wifi), tetapi saya jelas tidak bisa melakukan itu jika saya harus secara manual memulai / menghubungkan wifi setiap kali.


Nirkabel paling baik dikelola melalui daemon seperti network-manageratau wicd.
jordanm

1
Apakah Anda mencoba instruksi ini untuk terhubung secara otomatis ke jaringan nirkabel: wiki.archlinux.org/index.php/Netcfg
Raza

3
netcfg disusutkan untuk netctl (tidak yakin apakah perubahan itu telah tercermin dalam ARM respin Arch), tapi ya itulah cara untuk menangani konfigurasi jaringan Anda.
fukawi2

Jawaban:


18

Anda harus menggunakan netctl. Ini adalah Arch Linux yang dibangun dalam sistem manajemen jaringan. Jika belum diinstal (seharusnya demikian), jalankan pacman -Syu netctlkemudian lihat /etc/netctl. Ada contoh file konfigurasi di /etc/netctl/examples.

Untuk bangkit dan berlari dengan cepat:

  1. Catat nama perangkat untuk adaptor nirkabel Anda. Ganti semua instance wlan0dalam contoh saya dengan nama yang cocok dengan pengaturan Anda.
  2. Pastikan Anda telah menginstal paket yang diperlukan.

    pacman -Syu wpa_supplicant dhcpcd

    1. wpa_supplicant diperlukan untuk titik akses yang dilindungi WPA, dan dhcpcd diperlukan untuk mendapatkan IP dari jaringan apa pun menggunakan server DHCP, seperti yang tercantum pada wiki Arch Linux.
  3. Salin contoh yang sesuai:

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

  4. Edit konfigurasi baru Anda /etc/netctl/somedescriptivenameagar sesuai dengan pengaturan Anda.
  5. Aktifkan layanan netctl-auto untuk adaptor nirkabel Anda. Sekali lagi, ganti wlan0 dengan nama perangkat untuk pengaturan Anda.

    systemctl enable netctl-auto@wlan0.service

Beberapa hal yang perlu diperhatikan:

  • netctl akan secara otomatis terhubung ke profil yang Anda miliki di / etc / netctl ketika Anda pindah ke jangkauan titik akses
  • Pengaturan ini hanya akan bekerja dengan profil yang menggunakan Security=wpa-configsectiondan Security=wpa.
  • Nonaktifkan semua profil wifi yang diaktifkan sebelumnya menggunakan netctl disable profilenamenetctl jika tidak akan mulai dua kali saat boot setelah netctl-otomatis diaktifkan.

Untuk informasi lebih lanjut, lihat entri wiki Netctl .


yang netctl-auto listtidak mengembalikan profil, sedangkan 4 dikonfigurasi dan bekerja dengan netctl manual diharapkan atau tidak normal? Bagaimana saya bisa menggunakan netctl-auto switch-to Xjika tampaknya tidak ada nilai X yang valid? Saya menemukan entri wiki netctl-auto secara mengejutkan tidak membantu, mungkin Anda tahu di mana menemukan dokumen yang lebih baik?
Nikana Reklawyks

Nikana, saya tidak menggunakan netctl-autobanyak, tetapi hanya beberapa tips: 1. netctl-autoadalah untuk koneksi nirkabel saja. Jika Anda ingin menggunakannya untuk ethernet, gunakan netctl-ifplugd. 2. Pastikan Anda tidak menggunakan wpa-configsebagai metode keamanan, dan bukannya wpa-configsectionatau wpa. Profil tidak akan muncul saat menggunakanwpa-config
Jacob Wiltse

Terima kasih. Sayangnya untuk pemirsa di masa depan, pengaturan saya berfungsi sekarang, bukan karena saya ingat melakukan sesuatu yang istimewa. netctl-auto listmengembalikan banyak profil sebagaimana mestinya. Saya pikir mungkin salah satu profil saya tidak kompatibel dengan netctl-auto karena ini tidak ada wpa-configpersyaratan, yang mencegah mereka semua muncul.
Nikana Reklawyks

Seperti yang disebutkan dalam jawaban saya, Anda perlu menghapus profil yang dibuat dengan netctl sebelum mengaktifkan netctl-auto. Kemudian, setelah memulai netctl-auto, tambahkan kembali.
Johnny mengapa

Anda tidak akan menggunakan wlan0 seperti yang ditunjukkan di sini. Anda harus menggunakan ID WiFi yang benar.
Johnny mengapa

5

Cara yang lebih mudah untuk menghilangkan beberapa tebakan tentang cara membuat profil untuk netctl(diambil dari netctlhalaman di wiki lengkung):

Langkah 1. Atur internet nirkabel secara manual, menggunakan wpa_supplicantseperti yang dijelaskan dalam OP. Jika sistem Anda tidak menginstalnya lakukan $ pacman -S wpa_supplicant.

Langkah 2. Anda juga perlu dialogpaket, jadi $ pacman -S dialog. Kemudian, Anda bisa mem-boot ulang sistem Anda atau memutuskan koneksi dari jaringan nirkabel Anda.

Langkah 3. Jalankan $ wifi-menu -o, kemudian lakukan pengaturan Windows / Mac-esque yang sangat mudah. Anda dapat memeriksa nilai preset id jaringan sistem Anda via $ sudo netctl list. Nilainya akan dalam format wlan098-SSID. (di mana SSID = nama WLAN Anda)

Langkah 4. Terakhir jalankan $ netctl enable wlan098-SSIDdan reboot sistem$ reboot

Namun, kadang-kadang Anda mungkin mendapatkan pesan kesalahan dengan sesuatu seperti temporarily unable to resolve nameatau sesuatu, tetapi coba ping lagi dan itu akan berfungsi.


Tanpa netctl-auto, Anda tidak akan terhubung kembali secara otomatis karena hotspot berada dalam jangkauan. Lihat jawaban saya untuk mengatur.
Johnny mengapa

3

Saya percaya semua jawaban lainnya cacat, seperti yang dijelaskan dalam komentar saya pada mereka.

Langkah-langkah ini akan terhubung secara otomatis ke hotspot terkuat. Diuji pada instalasi lengkung standar dengan systemd (dapat bekerja pada OS lain):

Pengaturan satu kali:

  • Pastikan yang berikut ini diinstal: dialog, wpa_supplicant, dhcpcd, netctl, wifi-menu.

  • pada xfce, tambahkan xfce4-wavelan-plugin. Itu hanya lampu indikator yang menunjukkan ketika Anda terhubung. Tidak ada tujuan lain.

  • Pastikan semua manajer dan layanan jaringan lainnya dihapus atau dinonaktifkan. https://wiki.archlinux.org/index.php/Netctl#Wireless

  • hapus profil jaringan yang dibuat sebelumnya. https://www.ostechnix.com/fix-job-netctl-service-failed-error-arch-linux/

  • Dapatkan ID perangkat WiFi Anda basename $(ls -d /sys/class/net/w*)

  • aktifkan layanan netctl-auto. Ini adalah layanan yang akan terhubung secara otomatis. systemctl enable netctl-auto@YourWifiDeviceID.service

Hubungkan ke hotspot pertama kali:

  • Lari wifi-menu. Membutuhkan root. pkexec wifi-menu -o atau sudo wifi-menu -o

Biarkan -ountuk melihat kata sandi jaringan saat Anda mengetiknya.

  • Panah bawah, pilih koneksi yang Anda inginkan, tekan enter, terima nama koneksi, masukkan kata sandi.

Tambahkan lebih banyak hotspot sesuai kebutuhan. netctl-auto akan secara otomatis menyambung kembali ke hotspot terkuat yang tersedia setelahnya.


Jawabannya ditingkatkan
Johnny mengapa
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.