可能有更优雅的方法来解决这个问题,但基本上,我有一个连接到无线网络的非常小的 ubuntu 系统。目前,我正在使用一个调用 wpa supplicant 和 dhclient 的脚本进行连接。我希望这个自动完成 - 但我在 /etc/network/interfaces 方面运气不佳,或者无法让我使用的脚本在启动时运行。
任何一种方法都可以解决问题,但这种方法都是“正确的”。使用网络管理器并不是我真正想要的,所以这不行,我也不需要漫游。wpa_supplicant 的配置文件可以工作,从终端运行时整个设置也可以工作。
答案1
您需要编辑/etc/network/interfaces
以便它在启动时自动启动。对于您的无线网络,它应该看起来像这样:
iface wlan0 inet dhcp 无线密钥 s:KEY 无线网络名称 NETWORK_SSID 自动 WLAN0
将 KEY 替换为您的无线密钥,将 NETWORK_SID 替换为您的路由器的 SSID。
如果您希望在启动时使用脚本...
将其复制到/etc/init.d
(适当替换脚本路径):
sudo cp /path/to/script /etc/init.d
使其可执行(确保它顶部有一个 shebang 行,例如#!/bin/bash
):
sudo chmod +x /etc/init.d/script
添加默认启动符号链接:
sudo update-rc.d 脚本默认值
您将获得类似以下内容的输出:
为 /etc/init.d/script 添加系统启动... /etc/rc0.d/K20script -> ../init.d/script /etc/rc1.d/K20script -> ../init.d/script /etc/rc6.d/K20script -> ../init.d/script /etc/rc2.d/S20script -> ../init.d/script /etc/rc3.d/S20script -> ../init.d/script /etc/rc4.d/S20script -> ../init.d/script /etc/rc5.d/S20script -> ../init.d/script
您的脚本现在应该在启动时运行。
答案2
这不是一个好的解决方案,但你应该能够从 /etc/rc.local 调用你的脚本
只要确保你需要的东西在 /usr/local 中,它就被绝对引用了,因为 rc.local 的 $PATH 不包含 /usr/local 的东西
答案3
不确定这是否适用于所有情况,但以下是我的设置,似乎运行良好。我使用 RaLink RT2500
#/etc/network/interfaces
auto wlan0
iface wlan0 inet static
address 192.168.1.125
netmask 255.255.255.0
network 192.168.1.1
broadcast 192.168.1.255
gateway 192.168.1.1
wireless-mode managed
wireless-essid XXXXXXXXXXXX
wireless-key XXXXXXXXXX
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
#start wireless at boot - added by ckendall 20100304
ifup wlan0
exit 0