2015年12月3日木曜日

arch linux で wifi ( dhcpcd による 手動 wifi 接続 )

wifi-menu ではつながらない時が あります。

そんな時です。

pacman -S  linux-firmware iw wpa_supplicant wpa_actiond dialog
pacman -S   wifi-radar



wifi-radar をします。

すると access point がわかります。

また ifconfig -a をします。
すると wlp0s29u1u2 がwifi ということがわかります。
もちろん パスワード70812446は わかってます。


手動では
rm /etc/wpa_supplicant.conf

echo 'ctrl_interface=DIR=/run/wpa_supplicant' > /etc/wpa_supplicant.conf





すると 
cat /etc/wpa_supplicant.conf
ctrl_interface=DIR=/run/wpa_supplicant
です



wpa_passphrase MyPlace 70812446 >> /etc/wpa_supplicant.conf




すると
 cat /etc/wpa_supplicant.conf
ctrl_interface=DIR=/run/wpa_supplicant
network={
    ssid="MyPlace"
    #psk="7081002446"
    psk=06d6f60771f44b0369f7663584a7b1ed4757cdc8939a2f3db
}
です。



  ip link set wlp0s29u1u2 up  







   wpa_supplicant -B -D nl80211 -c /etc/wpa_supplicant.conf -i
wlp0s29u1u2

  dhcpcd -A wlp0s29u1u2
して再起動したらできてます。

以上述べたことをシャルスクリプトにしてますので、
再起動後このスクリプトを実行してください。

cat wifi.bat
 

rm /etc/wpa_supplicant.conf
x=wlp0s29u1u2
echo 'ctrl_interface=DIR=/run/wpa_supplicant' > /etc/wpa_supplicant.conf
wpa_passphrase MyPlace 70812446 >> /etc/wpa_supplicant.conf

   ip link set $x  up
   wpa_supplicant -B -D nl80211 -c /etc/wpa_supplicant.conf -i $x
  dhcpcd -A $x

sleep 10
echo '----------------------------'
ping -c 3 www.google.com
ifconfig | grep 192



なお あるホテルでは パスフレーズがわずか5文字でした。
このため
# wpa_passphrase tatumi3F tatum

とすると

Passphrase must be 8..63 characters
と8文字以上じゃないとダメと叱られます。


そのため

 cat /TATUMI
-------------------------------------------------
ctrl_interface=/var/run/wpa_supplicant
update_config=1
network={
    ssid="tatumi3F"
    key_mgmt=NONE
    wep_key0="tatum"
    priority=5
}
network={
    ssid="tatumi2F"
    key_mgmt=NONE
    wep_key0="tatum"
    priority=9
}

とし



次のスクリプト
[root@dell yuma]# ./comment-out.bat wifi.bat-tatumi  

script is
---------------------------------------------------

systemctl disable systemd-networkd.service
rm /run/wpa_supplicant/wlp0s29f7u3
rm /run/wpa_supplicant/wlp0s29f7u4
x=wlp0s29f7u3
   ip link set $x  up
   wpa_supplicant -B -D nl80211 -c /TATUMI -i $x
dhcpcd -A $x 

sleep 10
echo '----------------------------'
ping -c 3 www.google.com
ifconfig | grep 192
でつながります。



つながる風景は
 ./wifi.bat-tatumi
rm: `/run/wpa_supplicant/wlp0s29f7u3' を削除できません: そのようなファイルやディレクトリはありません
rm: `/run/wpa_supplicant/wlp0s29f7u4' を削除できません: そのようなファイルやディレクトリはありません
Successfully initialized wpa_supplicant
wlp0s29f7u3: waiting for carrier
wlp0s29f7u3: carrier acquired
wlp0s29f7u3: adding address fe80::8037:d6ed:6364:efba
DUID 00:01:00:01:1d:c0:62:e6:00:1e:c9:05:78:fc
wlp0s29f7u3: IAID cf:ec:c8:05
wlp0s29f7u3: soliciting an IPv6 router
wlp0s29f7u3: rebinding lease of 192.168.1.4
wlp0s29f7u3: leased 192.168.1.4 for 14400 seconds
wlp0s29f7u3: adding route to 192.168.1.0/24
wlp0s29f7u3: adding default route via 192.168.1.1
forked to background, child pid 603
----------------------------
PING www.google.com (216.58.221.196) 56(84) bytes of data.
64 bytes from kix03s02-in-f4.1e100.net (216.58.221.196): icmp_seq=2 ttl=51 time=28.2 ms

--- www.google.com ping statistics ---
3 packets transmitted, 1 received, 66% packet loss, time 2000ms
rtt min/avg/max/mdev = 28.274/28.274/28.274/0.000 ms
        inet 192.168.1.4  netmask 255.255.255.0  broadcast 192.168.1.255
です。


この現在は
[root@dell yuma]#  systemctl list-unit-files|grep enabled #
--------------------------------------------------------------------------
autovt@.service                            enabled
dhcpcd@.service                            enabled
display-manager.service                    enabled
getty@.service                             enabled
lxdm.service                               enabled
openntpd.service                           enabled
remote-fs.target                           enabled
です。


archはとってもいいのですが、 wifiにつながりにくい欠点がありました
wifi-menuが効かない)が 以上で乗り越えられると思います。


 ./comment-out.bat wifi.bat-fon
systemctl disable systemd-networkd.service
rm /etc/wpa_supplicant.conf
rm /run/wpa_supplicant/wlp0s29f7u3
rm /run/wpa_supplicant/wlp0s29f7u4
x=wlp0s29f7u3
echo 'ctrl_interface=DIR=/run/wpa_supplicant' > /etc/wpa_supplicant.conf
wpa_passphrase MyPlace 708446 >> /etc/wpa_supplicant.conf
   ip link set $x  up
   wpa_supplicant -B -D nl80211 -c /etc/wpa_supplicant.conf -i $x
dhcpcd -A $x
sleep 10
echo '----------------------------'
ping -c 3 www.google.com




 ./comment-out.bat wifi.bat-tatumi
systemctl disable systemd-networkd.service
rm /run/wpa_supplicant/wlp0s29f7u3
rm /run/wpa_supplicant/wlp0s29f7u4
x=wlp0s29f7u3
   ip link set $x  up
   wpa_supplicant -B -D nl80211 -c /TATUMI -i $x
dhcpcd -A $x
sleep 10
echo '----------------------------'
ping -c 3 www.google.com
ifconfig | grep 192



./comment-out.bat wired.bat
x=enp9s0
dhcpcd -A $x
echo '----------------------------'
ping -c 3 www.google.com





よくみれば

https://wiki.archlinuxjp.org/index.php/Netctlにすべてがありました。

wifi-menu を使わない方法

インターフェースを立ち上げます:
# ip link set wlp3s0 up
 
インターフェイスが立ち上がっているか確認するには、次のコマンドの出力を見て下さい:
# ip link show wlp3s0
3: wlp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state DOWN mode DORMANT group default qlen 1000
    link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff
<BROADCAST,MULTICAST,UP,LOWER_UP> の中にある UP がインターフェイスが立ち上がっている印です。後ろの state DOWN は違います。


ほとんどのワイヤレスチップセットには、対応するドライバに加えて、ファームウェアが必要です。カーネルが自動で検知してロードを試みます。SIOCSIFFLAGS: No such file or directory のようなエラーが出た場合、ファームウェアを手動でロードする必要があることを意味しています。
必要なファームウェアがわからないときは、dmesg を使いカーネルログからワイヤレスチップセットのファームウェア要求をさがします。
例えば、カーネルの起動時に Intel チップセットが出力するファームウェア要求の例:
# dmesg | grep firmware
firmware: requesting iwlwifi-5000-1.ucode
 
なにも表示されないなら、あなたのワイヤレスチップセットにはファームウェアが要らないと判断できます。

iw dev wlp3s0 scan | grep SSID を使って利用可能なネットワークをスキャンして、それからネットワークに接続してください:
 
# wpa_supplicant -B -i wlp3s0 -c <(wpa_passphrase "ssid" "psk")
ssid はネットワークの名前に (例: "Linksys etc...")、 
psk はパスワードに置き換える必要があります (ネットワークの名前とパスワードを囲っているダブルクォートは消さないで下さい, 例: ネットワークのパスワードが dog の場合、"dog" と入力)。

最後に、インターフェースに IP アドレスを与える必要があります。手動で設定するか dhcp を使ってこれを行なって下さい:
# dhcpcd wlp3s0 
 
上のコマンドでうまくいかない場合、以下のコマンドを実行してください:

# echo 'ctrl_interface=DIR=/run/wpa_supplicant' > /etc/wpa_supplicant.conf
# wpa_passphrase <ssid> <passphrase> >> /etc/wpa_supplicant.conf
# ip link set <interface> up # May not be needed, but does no harm in any case
# wpa_supplicant -B -D nl80211 -c /etc/wpa_supplicant.conf -i <interface name>
# dhcpcd -A <interface name>


0 件のコメント:

コメントを投稿