wpa_supplicant drivers 查看跟踪

Posted zengjf

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了wpa_supplicant drivers 查看跟踪相关的知识,希望对你有一定的参考价值。

/****************************************************************************
 *                   wpa_supplicant drivers 查看跟踪
 * 说明:
 *     最近调试wifi的时候由于wpa_supplicant仅仅支持wext,但是芯片移植手册上
 * 却要使用nl80211模式,总是找不到查询方法,于是今天跟wpa_supplicant代码的
 * 时候发现通过-h参数就可以查看到。
 *
 *                                          2016-6-29 深圳 南山平山村 曾剑锋
 ****************************************************************************/

static void usage(void)
{
    int i;
    printf("%s\n\n%s\n"
           "usage:\n"
           "  wpa_supplicant [-BddhKLqqstuvW] [-P<pid file>] "
           "[-g<global ctrl>] \\\n"
           "        -i<ifname> -c<config file> [-C<ctrl>] [-D<driver>] "
           "[-p<driver_param>] \\\n"
           "        [-b<br_ifname>] [-f<debug file>] [-e<entropy file>] "
           "\\\n"
           "        [-o<override driver>] [-O<override ctrl>] \\\n"
           "        [-N -i<ifname> -c<conf> [-C<ctrl>] "
           "[-D<driver>] \\\n"
           "        [-p<driver_param>] [-b<br_ifname>] ...]\n"
           "\n"
           "drivers:\n",
           wpa_supplicant_version, wpa_supplicant_license);

    for (i = 0; wpa_drivers[i]; i++) {          ------------------------------+
        printf("  %s = %s\n",                                                 |
               wpa_drivers[i]->name,                                          |
               wpa_drivers[i]->desc);                                         |
    }                                                                         |
                                                                              |
#ifndef CONFIG_NO_STDOUT_DEBUG                                                |
    printf("options:\n"                                                       |
           "  -b = optional bridge interface name\n"                          |
           "  -B = run daemon in the background\n"                            |
           "  -c = Configuration file\n"                                      |
           "  -C = ctrl_interface parameter (only used if -c is not)\n"       |
           "  -i = interface name\n"                                          |
           "  -d = increase debugging verbosity (-dd even more)\n"            |
           "  -D = driver name (can be multiple drivers: nl80211,wext)\n"     |
           "  -e = entropy file\n");                                          |
#ifdef CONFIG_DEBUG_FILE                                                      |
    printf("  -f = log output to debug file instead of stdout\n");            |
#endif /* CONFIG_DEBUG_FILE */                                                |
    printf("  -g = global ctrl_interface\n"                                   |
           "  -K = include keys (passwords, etc.) in debug output\n");        |
#ifdef CONFIG_DEBUG_SYSLOG                                                    |
    printf("  -s = log output to syslog instead of stdout\n");                |
#endif /* CONFIG_DEBUG_SYSLOG */                                              |
#ifdef CONFIG_DEBUG_LINUX_TRACING                                             |
    printf("  -T = record to Linux tracing in addition to logging\n");        |
    printf("       (records all messages regardless of debug verbosity)\n");  |
#endif /* CONFIG_DEBUG_LINUX_TRACING */                                       |
    printf("  -t = include timestamp in debug messages\n"                     |
           "  -h = show this help text\n"                                     |
           "  -L = show license (BSD)\n"                                      |
           "  -o = override driver parameter for new interfaces\n"            |
           "  -O = override ctrl_interface parameter for new interfaces\n"    |
           "  -p = driver parameters\n"                                       |
           "  -P = PID file\n"                                                |
           "  -q = decrease debugging verbosity (-qq even less)\n");          |
#ifdef CONFIG_DBUS                                                            |
    printf("  -u = enable DBus control interface\n");                         |
#endif /* CONFIG_DBUS */                                                      |
    printf("  -v = show version\n"                                            |
           "  -W = wait for a control interface monitor before starting\n"    |
           "  -N = start describing new interface\n");                        |
                                                                              |
    printf("example:\n"                                                       |
           "  wpa_supplicant -D%s -iwlan0 -c/etc/wpa_supplicant.conf\n",      |
           wpa_drivers[i] ? wpa_drivers[i]->name : "wext");                   |
#endif /* CONFIG_NO_STDOUT_DEBUG */                                           |
}                                                                             |
                                                                              |
                                                                              |
struct wpa_driver_ops *wpa_drivers[] =         <------------------------------+
{
#ifdef CONFIG_DRIVER_WEXT
    &wpa_driver_wext_ops,          ------+
#endif /* CONFIG_DRIVER_WEXT */          |
#ifdef CONFIG_DRIVER_NL80211             |
    &wpa_driver_nl80211_ops,       ------*-------------------------------------+
#endif /* CONFIG_DRIVER_NL80211 */       |                                     |
    ......                               |                                     |
    NULL                                 |                                     |
};                                       |                                     |
                                         |                                     |
#ifdef CONFIG_DRIVER_WEXT                V                                     |
extern struct wpa_driver_ops wpa_driver_wext_ops; /* driver_wext.c */    ----+ |
#endif /* CONFIG_DRIVER_WEXT */                                              | |
#ifdef CONFIG_DRIVER_NL80211             v-----------------------------------*-+
extern struct wpa_driver_ops wpa_driver_nl80211_ops; /* driver_nl80211.c */  | |
#endif /* CONFIG_DRIVER_NL80211 */                                           | |
                                                                             | |
const struct wpa_driver_ops wpa_driver_wext_ops = {           <--------------+ |
    .name = "wext",                                                            |
    .desc = "Linux wireless extensions (generic)",                             |
    .get_bssid = wpa_driver_wext_get_bssid,                                    |
    .get_ssid = wpa_driver_wext_get_ssid,                                      |
    .set_key = wpa_driver_wext_set_key,                                        |
    .set_countermeasures = wpa_driver_wext_set_countermeasures,                |
    .scan2 = wpa_driver_wext_scan,                                             |
    .get_scan_results2 = wpa_driver_wext_get_scan_results,                     |
    .deauthenticate = wpa_driver_wext_deauthenticate,                          |
    .disassociate = wpa_driver_wext_disassociate,                              |
    .associate = wpa_driver_wext_associate,                                    |
    .init = wpa_driver_wext_init,                                              |
    .deinit = wpa_driver_wext_deinit,                                          |
    .add_pmkid = wpa_driver_wext_add_pmkid,                                    |
    .remove_pmkid = wpa_driver_wext_remove_pmkid,                              |
    .flush_pmkid = wpa_driver_wext_flush_pmkid,                                |
    .get_capa = wpa_driver_wext_get_capa,                                      |
    .set_operstate = wpa_driver_wext_set_operstate,                            |
    .get_radio_name = wext_get_radio_name,                                     |
#ifdef android                                                                 |
    .sched_scan = wext_sched_scan,                                             |
    .stop_sched_scan = wext_stop_sched_scan,                                   |
#endif /* ANDROID */                                                           |
};                                                                             |
                                                                               |
const struct wpa_driver_ops wpa_driver_nl80211_ops = {         <---------------+
    .name = "nl80211",
    .desc = "Linux nl80211/cfg80211",
    .get_bssid = wpa_driver_nl80211_get_bssid,
    .get_ssid = wpa_driver_nl80211_get_ssid,
    .set_key = wpa_driver_nl80211_set_key,
    .scan2 = wpa_driver_nl80211_scan,
    .sched_scan = wpa_driver_nl80211_sched_scan,
    .stop_sched_scan = wpa_driver_nl80211_stop_sched_scan,
    .get_scan_results2 = wpa_driver_nl80211_get_scan_results,
    .deauthenticate = wpa_driver_nl80211_deauthenticate,
    .disassociate = wpa_driver_nl80211_disassociate,
    .authenticate = wpa_driver_nl80211_authenticate,
    .associate = wpa_driver_nl80211_associate,
    .global_init = nl80211_global_init,
    .global_deinit = nl80211_global_deinit,
    .init2 = wpa_driver_nl80211_init,
    .deinit = wpa_driver_nl80211_deinit,
    .get_capa = wpa_driver_nl80211_get_capa,
    .set_operstate = wpa_driver_nl80211_set_operstate,
    .set_supp_port = wpa_driver_nl80211_set_supp_port,
    .set_country = wpa_driver_nl80211_set_country,
    .set_ap = wpa_driver_nl80211_set_ap,
    .if_add = wpa_driver_nl80211_if_add,
    .if_remove = wpa_driver_nl80211_if_remove,
    .send_mlme = wpa_driver_nl80211_send_mlme,
    .get_hw_feature_data = wpa_driver_nl80211_get_hw_feature_data,
    .sta_add = wpa_driver_nl80211_sta_add,
    .sta_remove = wpa_driver_nl80211_sta_remove,
    .hapd_send_eapol = wpa_driver_nl80211_hapd_send_eapol,
    .sta_set_flags = wpa_driver_nl80211_sta_set_flags,
#ifdef HOSTAPD
    .hapd_init = i802_init,
    .hapd_deinit = i802_deinit,
    .set_wds_sta = i802_set_wds_sta,
#endif /* HOSTAPD */
#if defined(HOSTAPD) || defined(CONFIG_AP)
    .get_seqnum = i802_get_seqnum,
    .flush = i802_flush,
    .get_inact_sec = i802_get_inact_sec,
    .sta_clear_stats = i802_sta_clear_stats,
    .set_rts = i802_set_rts,
    .set_frag = i802_set_frag,
    .set_tx_queue_params = i802_set_tx_queue_params,
    .set_sta_vlan = i802_set_sta_vlan,
    .sta_deauth = i802_sta_deauth,
    .sta_disassoc = i802_sta_disassoc,
#endif /* HOSTAPD || CONFIG_AP */
    .read_sta_data = i802_read_sta_data,
    .set_freq = i802_set_freq,
    .send_action = wpa_driver_nl80211_send_action,
    .send_action_cancel_wait = wpa_driver_nl80211_send_action_cancel_wait,
    .remain_on_channel = wpa_driver_nl80211_remain_on_channel,
    .cancel_remain_on_channel =
    wpa_driver_nl80211_cancel_remain_on_channel,
    .probe_req_report = wpa_driver_nl80211_probe_req_report,
    .deinit_ap = wpa_driver_nl80211_deinit_ap,
    .deinit_p2p_cli = wpa_driver_nl80211_deinit_p2p_cli,
    .resume = wpa_driver_nl80211_resume,
    .send_ft_action = nl80211_send_ft_action,
    .signal_monitor = nl80211_signal_monitor,
    .signal_poll = nl80211_signal_poll,
    .send_frame = nl80211_send_frame,
    .shared_freq = wpa_driver_nl80211_shared_freq,
    .set_param = nl80211_set_param,
    .get_radio_name = nl80211_get_radio_name,
    .add_pmkid = nl80211_add_pmkid,
    .remove_pmkid = nl80211_remove_pmkid,
    .flush_pmkid = nl80211_flush_pmkid,
    .set_rekey_info = nl80211_set_rekey_info,
    .poll_client = nl80211_poll_client,
    .set_p2p_powersave = nl80211_set_p2p_powersave,
#ifdef CONFIG_TDLS
    .send_tdls_mgmt = nl80211_send_tdls_mgmt,
    .tdls_oper = nl80211_tdls_oper,
#endif /* CONFIG_TDLS */
#ifdef ANDROID_P2P
    .set_noa = wpa_driver_set_p2p_noa,
    .get_noa = wpa_driver_get_p2p_noa,
    .set_ap_wps_ie = wpa_driver_set_ap_wps_p2p_ie,
#endif
#ifdef ANDROID
    .driver_cmd = wpa_driver_nl80211_driver_cmd,
#endif
};

/**
 *
 * [email protected]:/ # wpa_supplicant                                                
 * wpa_supplicant v2.0-devel-4.2.2_rtw_r8680.20130821
 * Copyright (c) 2003-2012, Jouni Malinen <[email protected]> and contributors
 * 
 * This software may be distributed under the terms of the BSD license.
 * See README for more details.
 * 
 * This product includes software developed by the OpenSSL Project
 * for use in the OpenSSL Toolkit (http://www.openssl.org/)
 * 
 * usage:
 *   wpa_supplicant [-BddhKLqqstuvW] [-P<pid file>] [-g<global ctrl>]  *         -i<ifname> -c<config file> [-C<ctrl>] [-D<driver>] [-p<driver_param>]  *         [-b<br_ifname>] [-f<debug file>] [-e<entropy file>]  *         [-o<override driver>] [-O<override ctrl>]  *         [-N -i<ifname> -c<conf> [-C<ctrl>] [-D<driver>]  *         [-p<driver_param>] [-b<br_ifname>] ...]
 * 
 * drivers:
 *   wext = Linux wireless extensions (generic)        <-------------------
 *   nl80211 = Linux nl80211/cfg80211                  <-------------------
 * options:
 *   -b = optional bridge interface name
 *   -B = run daemon in the background
 *   -c = Configuration file
 *   -C = ctrl_interface parameter (only used if -c is not)
 *   -i = interface name
 *   -d = increase debugging verbosity (-dd even more)
 *   -D = driver name (can be multiple drivers: nl80211,wext)
 *   -e = entropy file
 *   -g = global ctrl_interface
 *   -K = include keys (passwords, etc.) in debug output
 *   -t = include timestamp in debug messages
 *   -h = show this help text
 *   -L = show license (BSD)
 *   -o = override driver parameter for new interfaces
 *   -O = override ctrl_interface parameter for new interfaces
 *   -p = driver parameters
 *   -P = PID file
 *   -q = decrease debugging verbosity (-qq even less)
 *   -v = show version
 *   -W = wait for a control interface monitor before starting
 *   -N = start describing new interface
 * example:
 *   wpa_supplicant -Dwext -iwlan0 -c/etc/wpa_supplicant.conf
 * 255|[email protected]:/ # 
 *
 */

 

以上是关于wpa_supplicant drivers 查看跟踪的主要内容,如果未能解决你的问题,请参考以下文章

使用 C 开始使用 wpa_supplicant

安装与配置wpa_supplicant无线网络链接工具

centos连接WiFi后(使用wpa_supplicant)如何不使用DHCP,使用静态配置设置IP?

Qt 在 arm 下使用wpa_supplicant连接wifi,wpa_cli操作

Qt 在 arm 下使用wpa_supplicant连接wifi,wpa_cli操作

android.net.wifi.supplicant.STATE_CHANGE广播无法接收问题