割れにくいハードナッツがあります:ソルバーへのイタリアンキャンティワインの素敵なボトル! :)
WiFiを自動的に構成するには、まずネットワークマネージャーを強制終了してから、コマンドラインでWiFiをアクティブにする必要があります。これはすべてアプリケーションで自動的に行い、正常に動作します。
ただし、これは正しい方法ではありません。ユーザーには他のネットワークアクセスを構成するためのネットワークGUIがもうないため。より優れた透過的な方法は、DBusインターフェースを介してNetwork Managerを介してWiFiを直接構成することです。構成することはできましたが、アドホックモードに設定することはできませんでした。
しばらくウェブを検索する:一般的な設定についてはたくさんありますが、アドホックモードとは関係ありません。
それを理解する唯一の方法は、ネットワークマネージャーのソースコードを調べることだと思います...おそらく誰かが既にそれをやっていて、彼が答えられるかもしれません。
ブックマーク:
DBusを介したNetwork Managerの設定:アドホックモードの設定方法
iwconfig
を使用して「コマンドラインからwifiをアクティブ化する」場合、mode Ad-Hoc
を作成できます。
man iwconfig
からの引用
Example :
iwconfig eth0 mode Managed <-- often wlan0 not the0
iwconfig eth0 mode Ad-Hoc Freudian ... eth0
一般的に、レベルが低く、深くなればなるほど、労力がより手作業に集中し、自動化とコンピューターの概念と理論的根拠をすべて打ち破ります。
ただし、DBusを使用するための「最も簡単な」方法は、D-Feet
のGUIまたはqdbus
を使用することです。これは here であり、以下で使用します。引数タイプは、qdbus
で、一致するgdbus
コマンドまたはD-Feet
が必要になる場合があります。
必要なメソッドの正しい引数値を取得するには、上記のiwconfig
の影響、または以下を使用して動作するGUIネットワークマネージャーを観察します。
dbus-monitor --system "interface='org.freedesktop.NetworkManager'"
アドホックとインフラストラクチャの間でモードパラメータを変更します。これにより、DBusで直接設定するために必要な手がかりが得られます。
副<文>この[前述の事実の]結果として、それ故に、従って、だから◆【同】consequently; therefore <文>このような方法で、このようにして、こんなふうに、上に述べたように◆【同】in this manner <文>そのような程度まで<文> AひいてはB◆【用法】A and thus B <文>例えば◆【同】for example; as an example、
qdbus --system --literal org.freedesktop.NetworkManager
リスト
/
/org
/org/freedesktop
/org/freedesktop/NetworkManager
/org/freedesktop/NetworkManager/AccessPoint
/org/freedesktop/NetworkManager/AccessPoint/1385
...
/org/freedesktop/NetworkManager/ActiveConnection
/org/freedesktop/NetworkManager/ActiveConnection/58
/org/freedesktop/NetworkManager/AgentManager
/org/freedesktop/NetworkManager/DHCP4Config
/org/freedesktop/NetworkManager/DHCP4Config/45
/org/freedesktop/NetworkManager/Devices
/org/freedesktop/NetworkManager/Devices/0
/org/freedesktop/NetworkManager/Devices/1 <- my wireless device
/org/freedesktop/NetworkManager/IP4Config
/org/freedesktop/NetworkManager/IP4Config/44
/org/freedesktop/NetworkManager/Settings
/org/freedesktop/NetworkManager/Settings/0
/org/freedesktop/NetworkManager/Settings/1
...
/org/freedesktop/NetworkManager/Settings/5
/org/freedesktop/NetworkManager/Settings/6
そして
qdbus --system --literal org.freedesktop.NetworkManager \
/org/freedesktop/NetworkManager/Devices/1 \
org.freedesktop.DBus.Properties.GetAll \
org.freedesktop.NetworkManager.Device.Wireless \
| sed -e 's/, "/,\n"/g'
modeでboldのワイヤレスプロパティを指定します。
[引数:a {sv} {"HwAddress" = [Variant(QString): "74:F0:6D:4B:8E:9B"]、 "PermHwAddress" = [Variant( QString): "74:F0:6D:4B:8E:9B"]、 「モード」= [Variant(uint):2]、 "ビットレート" = [Variant(uint):28900]、 "ActiveAccessPoint" = [Variant:[ObjectPath:/org/freedesktop/NetworkManager/AccessPoint/1395]], "WirelessCapabilities" = [Variant(uint):127]}]
boldの関連するmethods
qdbus --system --literal org.freedesktop.NetworkManager /org/freedesktop/NetworkManager
は
method QString org.freedesktop.DBus.Introspectable.Introspect() method QVariantMap org.freedesktop.DBus.Properties.GetAll(QString interface) method QDBusVariant org.freedesktop.DBus .Properties.Get(QStringインターフェイス、QString propname) メソッドvoid org.freedesktop.DBus.Properties.Set(QStringインターフェイス、QString propname、QDBusVariant値)メソッドQDBusObjectPath org.freedesktop.NetworkManager.ActivateConnection(QDBusObjectPath接続、QDBusObjectPathデバイス、QDBusObjectPath specific_object)メソッドQDBusObjectPath org.freedesktop.NetworkManager.AddAndActivateConnection(QDBusRawType :: a {sa {sv}}接続、QDBusObjectPathデバイス、QDBusObjectPath specific_object、QDBusObjectPath&active_connection) method void org.freedesktop.NetworkManager.DeactivateConnection(QDBusObjectPath active_connection) メソッドvoid org.freedesktop.NetworkManager.Enable(bool enable) method QDBusObjectPath org.freedesktop.NetworkManager.GetDeviceByIpIface(QString iface) method QList org.freedesktop.NetworkManager.GetDevices() method QDBusRawType :: a {ss} org.freedesktop .NetworkManager.GetPermissions() method void org.freedesktop.NetworkManager.SetLogging(QStringレベル、QStringドメイン) method void org.freedesktop.NetworkManager.Sleep(bool sleep) メソッドuint org.freedesktop.NetworkManager.state() property read bool org.freedesktop.NetworkManager.NetworkingEnabled property readwrite bool org.freedesktop.NetworkManager.WimaxEnabled property read bool org .freedesktop.NetworkManager.WimaxHardwareEnabled property readwrite bool org.freedesktop.NetworkManager.WirelessEnabled property read bool org.freedesktop.NetworkManager.WirelessHardwareEnabled property readwrite bool org.freedesktop.NetworkManager。 WwanEnabled property read bool org.freedesktop.Net workManager.WwanHardwareEnabled property read QList org.freedesktop.NetworkManager.ActiveConnections property read QString org.freedesktop.NetworkManager.Version property read uint org.freedesktop.NetworkManager.State signal void org.freedesktop.NetworkManager.CheckPermissions() signal void org.freedesktop.NetworkManager.DeviceAdded(QDBusObjectPath) signal void org.freedesktop.NetworkManager.DeviceRemoved(QDBusObjectPath) signal void org.freedesktop.NetworkManager.PropertiesChanged(QVariantMap) signal void org.freedesktop.NetworkManager.StateChanged(uint)
との
qdbus --system --literal org.freedesktop.NetworkManager /org/freedesktop/NetworkManager/Devices/1
は
method QString org.freedesktop.DBus.Introspectable.Introspect() メソッドQVariantMap org.freedesktop.DBus.Properties.GetAll(QString interface) method QDBusVariant org.freedesktop.DBus.Properties.Get(QString interface、QString propname) メソッドvoid org.freedesktop.DBus.Properties.Set(QStringインターフェイス、QString propname、QDBusVariant値) method void org.freedesktop.NetworkManager.Device.Disconnect() メソッドQList <QDBusObjectPath> org.freedesktop.NetworkManager.Device.Wireless.GetAccessPoints() property read bool org.freedesktop.NetworkManager.Device.FirmwareMissing property read bool org.freedesktop.NetworkManager.Device.Managed property read QDBusObjectPath org.freedesktop.NetworkManager.Device。 ActiveConnection property read QDBusObjectPath org.freedesktop.NetworkManager.Device.Dhcp4Config property read QDBusObjectPath org.freedesktop.NetworkManager.Device.Dhcp6Config property read QDBusObjectPath org.freedesktop.NetworkManager.Device .Ip4Config property read QDBusObjectPath org.freedesktop.NetworkManager.Device.Ip6Config property read QDBusRawType::( uu)org.freedesktop.NetworkManager.Device.StateReason property read QString org .freedesktop.NetworkManager.Device.Driver property read QString org.freedesktop.NetworkManager.Device.Interface property read QString org.freedesktop.NetworkManager.Device.IpInterface property read QString org.free desktop.NetworkManager.Device.Udi property read uint org.freedesktop.NetworkManager.Device.Capabilities property read uint org.freedesktop.NetworkManager.Device.DeviceType property read uint org .freedesktop.NetworkManager.Device.Ip4Address property read uint org.freedesktop.NetworkManager.Device.State property read QDBusObjectPath org.freedesktop.NetworkManager.Device.Wireless.ActiveAccessPoint property read QString org.freedesktop.NetworkManager.Device.Wireless.HwAddress property read QString org.freedesktop.NetworkManager.Device.Wireless.PermHwAddress property read uint org.freedesktop.NetworkManager.Device.Wireless。ビットレート プロパティ読み取りuint org.freedesktop.NetworkManager.Device.Wireless.Mode property read uint org.freedesktop.NetworkManager.Device.Wireless.WirelessCapabilities signal void org.freedesktop.NetworkManager.Device.StateChanged(uint、uint、uint) signal void org .freedesktop.NetworkManager.Device.Wireless.AccessPointAdded(QDBusObjectPath) signal void org.freedesktop.NetworkManager.Device.Wireless.AccessPointRemoved(QDBusObjectPath) signal void org.freedesktop.NetworkManager.Device.Wireless .PropertiesChanged(QVariantMap)
私は最近それをしなければなりませんでした。アドホックネットワークをセットアップして接続するためのCコード(libdbus-1
のみに依存)を次に示します。