Add bsdconfig wifi' (aka wireless' or `wlan') module

Approved by:	re (gjb)
MFC after:	8 weeks
Relnotes:	yes
This commit is contained in:
Devin Teske 2016-06-16 21:14:25 +00:00
parent 06018a8e7a
commit 55620f43de
9 changed files with 1542 additions and 10 deletions

View File

@ -66,9 +66,11 @@ msg_canada="Canada"
msg_cancel="Cancel"
msg_cancel_exit="Cancel/Exit"
msg_cannot_create_permission_denied="%s: cannot create %s: Permission denied"
msg_cannot_edit_wireless_ssid="Cannot edit wireless configuration; no matches for\nSSID \`%s' in wpa_supplicants.conf(5)"
msg_cannot_resolve_hostname="Cannot resolve \`%s'! Are you sure that your\nname server, gateway and network interface are correctly configured?"
msg_cant_find_distribution="Warning: Can't find the \`%s' distribution on this\nFTP server. You may need to visit a different server for\nthe release you are trying to fetch or go to the Options\nmenu and set the release name to explicitly match what's\navailable on %s (or set to \"any\").\n\nWould you like to select another FTP server?"
msg_cant_seem_to_write_out_resolv_conf="Can't seem to write out %s. Net cannot be used."
msg_cant_start_wpa_supplicant="Can't start wpa_supplicant(8). Please create a wlan(4)\ninterface from the \`wlans' option after selecting your\nfavorite wireless adapter (i.e., %s)."
msg_cd_dvd="CD/DVD"
msg_cdrom="CDROM"
msg_checking_access_to="Checking access to\n %s"
@ -85,6 +87,9 @@ msg_client_error="Client error, you could try an other server"
msg_command_failed_rest_of_script_aborted="Command \`%s' failed - rest of script aborted."
msg_comms_desc="Communications utilities."
msg_configuration_for_interface="Configuration for Interface"
msg_configured="Configured"
msg_configured_lc="configured"
msg_configured_ssids="Configured SSIDs"
msg_converters_desc="Format conversion utilities."
msg_could_not_unmount_the_cdrom_dvd="Could not unmount the CDROM/DVD from %s: %s"
msg_could_not_unmount_the_dos_partition="Could not unmount the DOS partition from %s: %s"
@ -94,12 +99,15 @@ msg_couldnt_connect_to_ftp_server="Couldn't connect to FTP server"
msg_couldnt_connect_to_proxy="Couldn't connect to proxy"
msg_couldnt_connect_to_server="Couldn't connect to server"
msg_couldnt_open_ftp_connection="Couldn't open FTP connection to %s:\n %s."
msg_create_new="Create New"
msg_created_path="Created %s"
msg_czech_republic="Czech Republic"
msg_databases_desc="Database software."
msg_debugging="Debugging"
msg_denmark="Denmark"
msg_deskutils_desc="Various Desktop utilities."
msg_destroy="Destroy"
msg_details="Details"
msg_devel_desc="Software development utilities and libraries."
msg_device_is_not_configured="The %s device is not configured. You will need to do so\nin the Networking configuration menu before proceeding."
msg_dhcp="DHCP"
@ -107,6 +115,7 @@ msg_dialog_mixedform_navigation_help="Use <up>/<down> arrows to navigate between
msg_directory="Directory"
msg_directory_not_found="%s: Directory not found."
msg_directory_where_package_temporary_files_go="The directory where package temporary files should go"
msg_discovered_ssids="Discovered SSIDs"
msg_dns_desc="Domain Name Service tools."
msg_docs_desc="Meta-ports for FreeBSD documentation."
msg_done="Done"
@ -129,10 +138,15 @@ msg_exit="Exit"
msg_exit_bsdconfig="Exit bsdconfig"
msg_extra_options_to_ifconfig="Extra options to ifconfig (usually empty):"
msg_failed_to_add_default_route="Failed to add a default route; please check your network configuration"
msg_failed_to_reach_wpa_supplicant="Failed to reach wpa_supplicant: %s"
msg_file_system="File System"
msg_finance_desc="Monetary, financial and related applications."
msg_finland="Finland"
msg_floppy="Floppy"
msg_forget_all="Forget All"
msg_forget_all_confirm="WARNING! Are you really sure you want to forget all known networks\nby re-initializing wpa_supplicants.conf(5)? This cannot be undone."
msg_forget_all_help="Reset wpa_supplicant(8) configuration, forgetting all known networks"
msg_found="found"
msg_france="France"
msg_french_desc="Ported software for French countries."
msg_ftp="FTP"
@ -202,12 +216,15 @@ msg_linux_desc="Linux programs that can run under binary compatibility."
msg_lisp_desc="Software related to the Lisp language."
msg_lithuania="Lithuania"
msg_loading_of_dependent_package_failed="Loading of dependent package %s failed"
msg_loading_wireless_menu="Loading Wireless Menu..."
msg_logging_in_to_user_at_host="Logging in to %s@%s.."
msg_looking_for_keymap_files="Looking for keymap files..."
msg_looking_up_host="Looking up host %s"
msg_mail_desc="Electronic mail packages and utilities."
msg_main_menu="Main Menu"
msg_main_site="Main Site"
msg_manually_connect="Manually Connect"
msg_manually_connect_help="Connect to a wireless network that may be unlisted"
msg_math_desc="Mathematical computation software."
msg_mbone_desc="Applications and utilities for the MBONE."
msg_media_timeout="Media Timeout"
@ -271,6 +288,7 @@ msg_parallel_desc="Applications dealing with parallelism in computing."
msg_pear_desc="Software related to the Pear PHP framework."
msg_perl5_desc="Utilities/modules for the PERL5 language."
msg_permission_denied="%s: %s: Permission denied"
msg_pick_an_interface_to_destroy="Pick an interface to destroy"
msg_pkg_delete_failed="Warning: pkg-delete(8) of %s failed.\n Run with debugging for details."
msg_pkg_install_apparently_did_not_like_the_package="pkg-install(8) apparently did not like the %s package."
msg_pkg_not_yet_installed_install_now="pkg(8) not yet installed. Install now?"
@ -319,9 +337,12 @@ msg_reinstall_desc="Mark this package for reinstall"
msg_release_name="Release Name"
msg_required_package_not_found="Warning: %s is a required package but was not found."
msg_rerun_bsdconfig_initial_device_probe="Re-run bsdconfig initial device probe"
msg_rescan_wireless="Rescan Wireless"
msg_rescan_wireless_help="Scan for new wireless networks"
msg_rescan_devices="Re-scan Devices"
msg_reset="RESET!"
msg_reset_all_values_to_startup_defaults="Reset all values to startup defaults"
msg_return_to_previous_menu="Return to previous menu"
msg_reuse_old_ftp_site_selection_values="Re-use old FTP site selection values?"
msg_reuse_old_http_site_settings="Re-use old HTTP site settings?"
msg_review="Review"
@ -334,6 +355,7 @@ msg_russia="Russia"
msg_russian_desc="Ported software for the Russian market."
msg_scanning_for_dhcp_servers="Scanning for DHCP servers..."
msg_scanning_for_ra_servers="Scanning for RA servers..."
msg_scanning_wireless_pausing="Scanning Wireless... (pausing for %i seconds)"
msg_scheme_desc="Software related to the Scheme language."
msg_science_desc="Scientific software."
msg_secure_mode_requires_root="Secure-mode requires root-access!"
@ -341,9 +363,18 @@ msg_secure_mode_requires_x11="Secure-mode requires X11 (use \`-X')!"
msg_security_desc="System security software."
msg_select="Select"
msg_select_a_site_thats_close="Select a site that's close!"
msg_select_the_configuration_you_would_like="Select the configuration you would like to edit:\nAddional network information displayed in help line."
msg_select_wlan_interfaces_for="Select wlan interfaces for %s:"
msg_selected="selected"
msg_server_error_when_requesting_url="Server error when requesting %s, you could try an other server"
msg_shells_desc="Various shells (tcsh, bash, etc)."
msg_show_all="Show All"
msg_show_all_help="Show wireless networks without an SSID and all BSSIDs"
msg_show_configured="Show Configured"
msg_show_configured_help="Show networks configured in wpa_supplicants.conf(5)"
msg_show_scan_results="Show Scan Results"
msg_show_scan_results_help="Show wpa_cli(8) scan results"
msg_skip="Skip"
msg_slovak_republic="Slovak Republic"
msg_slovenia="Slovenia"
msg_sorry_invalid_url="Sorry, %s is an invalid URL!"
@ -378,6 +409,7 @@ msg_unable_to_initialize_media_type_for_package_extract="Unable to initialize me
msg_unable_to_make_directory_mountpoint="Unable to make %s directory mountpoint for %s!"
msg_unable_to_open="Unable to open %s"
msg_unable_to_update_pkg_from_selected_media="Unable to update pkg(8) from selected media."
msg_unconfigured="Unconfigured"
msg_uninstall="Uninstall"
msg_uninstall_desc="Mark this package for deletion"
msg_uninstalling_package_waiting_for_pkg_delete="Uninstalling %s package - waiting for pkg-delete(8)"
@ -397,11 +429,15 @@ msg_using_interface="Using interface %s"
msg_using_usb_device="Using USB device: %s"
msg_vietnamese_desc="Ported software for the Vietnamese market."
msg_view_set_various_media_options="View/Set various media options"
msg_warning_no_wireless_devices="WARNING! No wireless devices found."
msg_what_would_you_like_to_do_with="What would you like to do with %s?"
msg_which_release_to_attempt_to_load="Which release to attempt to load from installation media"
msg_which_text_editor_to_use="Which text editor to use during installation"
msg_wireless_networks_text="Select an unmarked ([ ]) entry to join that network.\nSelect a marked ([X]) entry to edit that configuration."
msg_windowmaker_desc="Ports to support the WindowMaker window manager."
msg_wireless_network_configuration_for="Wireless network configuration for SSID \`%s'"
msg_would_you_like_to_bring_interface_up="Would you like to bring the %s interface up right now?"
msg_wpa_cli_ping_failed="wpa_cli(8) ping failed"
msg_www_desc="Web utilities (browsers, HTTP servers, etc)."
msg_x11_clocks_desc="X Window System based clocks."
msg_x11_desc="X Window System based utilities."

View File

@ -1,5 +1,5 @@
# Copyright (c) 2012 Ron McDowell
# Copyright (c) 2012 Devin Teske
# Copyright (c) 2012-2016 Devin Teske
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@ -50,6 +50,9 @@ menu_selection="defaultrouter|defaultrouter"
menu_selection="hostname|hostname"
menu_selection="nameservers|nameservers"
menu_selection="netdev|devices"
menu_selection="wireless|wlanconfig"
menu_selection="wlan|wlanconfig"
menu_selection="wifi|wlanconfig"
#
# ------------ Items below this line do NOT need i18n translation ------------

View File

@ -6,6 +6,7 @@ FILESDIR= ${LIBEXECDIR}/bsdconfig/120.networking
FILES= INDEX USAGE
SCRIPTSDIR= ${FILESDIR}
SCRIPTS= defaultrouter devices hostname nameservers networking
SCRIPTS= defaultrouter devices hostname nameservers networking \
wlanconfig
.include <bsd.prog.mk>

View File

@ -1,4 +1,4 @@
# Copyright (c) 2012 Devin Teske
# Copyright (c) 2012-2016 Devin Teske
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@ -100,6 +100,8 @@ msg_scanning_for_dhcp="Scanning for DHCP servers on %s interface..."
msg_select_network_interface="Select a network interface to configure.\n\n* Interface is marked as \"active\""
msg_supported_media_options="Below is a list of supported media options for the %s interface. Please select the options that you would like to set for the %s network interface"
msg_unknown_networking_menu_selection="Unknown networking menu selection"
msg_wireless_networks="Wireless Networks"
msg_wlans="wlans"
xmsg_please_enter_fqhn="Please enter your fully qualified hostname (e.g. foo.bar.com).\n The domain portion of the hostname will be configured in resolv.conf(5)."
xmsg_please_enter_nameserver_existing="Please enter the new IP address of the DNS nameserver\n(set to the NULL string to remove entry):"
xmsg_supported_media_options="Below is a list of supported media options for the %s interface. Please\nselect the options that you would like to set for the %s network interface"

View File

@ -1,6 +1,6 @@
#!/bin/sh
#-
# Copyright (c) 2006-2013 Devin Teske
# Copyright (c) 2006-2016 Devin Teske
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@ -53,8 +53,9 @@ dialog_menu_main()
'X' '$msg_exit'
'1' '$msg_hostname_domain'
'2' '$msg_network_interfaces'
'3' '$msg_default_router'
'4' '$msg_dns_nameservers'
'3' '$msg_wireless_networks'
'4' '$msg_default_router'
'5' '$msg_dns_nameservers'
" # END-QUOTE
local defaultitem= # Calculated below
local hline="$hline_arrows_tab_enter"
@ -124,8 +125,9 @@ while :; do
X) break ;;
1) command=hostname ;; # Hostname/Domain
2) command=devices ;; # Network Interfaces
3) command=defaultrouter ;; # Default Router/Gateway
4) command=nameservers ;; # DNS nameservers
3) command=wlanconfig ;; # Wireless Networks
4) command=defaultrouter ;; # Default Router/Gateway
5) command=nameservers ;; # DNS nameservers
esac
if [ "$command" ]; then

View File

@ -1,6 +1,6 @@
if [ ! "$_NETWORKING_DEVICE_SUBR" ]; then _NETWORKING_DEVICE_SUBR=1
#
# Copyright (c) 2006-2015 Devin Teske
# Copyright (c) 2006-2016 Devin Teske
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@ -34,6 +34,7 @@ f_dprintf "%s: loading includes..." networking/device.subr
f_include $BSDCFG_SHARE/device.subr
f_include $BSDCFG_SHARE/dialog.subr
f_include $BSDCFG_SHARE/media/tcpip.subr
f_include $BSDCFG_SHARE/media/wlan.subr
f_include $BSDCFG_SHARE/networking/common.subr
f_include $BSDCFG_SHARE/networking/ipaddr.subr
f_include $BSDCFG_SHARE/networking/media.subr
@ -194,15 +195,29 @@ f_dialog_menu_netdev_edit()
# to ifconfig(8).
#
local defaultitem=
local wlans wlan_status
while :; do
local dhcp_status="$msg_disabled"
[ "$dhcp" ] && dhcp_status="$msg_enabled"
if f_device_is_wireless "$interface"; then
wlans=$( f_sysrc_get "wlans_$interface" )
wlan_status="$msg_unconfigured"
[ -e "$( f_sysrc_get wpa_supplicant_conf_file )" ] &&
wlan_status="$msg_configured"
fi
#
# Display configuration-edit menu
#
menu_list="
'X $msg_save_exit' '$msg_return_to_previous_menu'
" # END-QUOTE
f_device_is_wireless "$interface" && menu_list="$menu_list
'W $msg_wireless_networks' '$wlan_status'
'1 $msg_wlans' '$wlans'
" # END-QUOTE
menu_list="$menu_list
'2 $msg_dhcp' '$dhcp_status'
'3 $msg_ipaddr4' '$ipaddr'
'4 $msg_netmask' '$netmask'
@ -251,6 +266,9 @@ f_dialog_menu_netdev_edit()
#
case "$tag" in
X\ *) break ;;
W\ *) f_dialog_menu_wireless_edit ;;
1\ *) f_dialog_menu_wlandev_edit \
"$interface" "${wlans%%[$IFS]*}" ;;
2\ *) #
# Proceed cautiously (confirm with the user) if/when NFS-
# mounts are active. If the network on which these mounts

View File

@ -0,0 +1,78 @@
#!/bin/sh
#-
# Copyright (c) 2011 Nathan Whitehorn
# Copyright (c) 2013 Tom Rhodes
# Copyright (c) 2013-2016 Devin Teske
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE.
#
# $FreeBSD$
#
############################################################ INCLUDES
# Prevent device.subr (included indirectly) from auto scanning on load
DEVICE_SELF_SCAN_ALL=NO
BSDCFG_SHARE="/usr/share/bsdconfig"
. $BSDCFG_SHARE/common.subr || exit 1
f_dprintf "%s: loading includes..." "$0"
f_include $BSDCFG_SHARE/dialog.subr
f_include $BSDCFG_SHARE/media/wlan.subr
f_include $BSDCFG_SHARE/mustberoot.subr
BSDCFG_LIBE="/usr/libexec/bsdconfig" APP_DIR="120.networking"
f_include_lang $BSDCFG_LIBE/$APP_DIR/include/messages.subr
f_index_menusel_keyword $BSDCFG_LIBE/$APP_DIR/INDEX "$pgm" ipgm &&
pgm="${ipgm:-$pgm}"
############################################################ MAIN
# Incorporate rc-file if it exists
[ -f "$HOME/.bsdconfigrc" ] && f_include "$HOME/.bsdconfigrc"
#
# Process command-line arguments
#
while getopts h$GETOPTS_STDARGS flag; do
case "$flag" in
h|\?) f_usage $BSDCFG_LIBE/$APP_DIR/USAGE "PROGRAM_NAME" "$pgm" ;;
esac
done
shift $(( $OPTIND - 1 ))
#
# Initialize
#
f_dialog_title "$msg_wireless_networks"
f_dialog_backtitle "${ipgm:+bsdconfig }$pgm"
f_mustberoot_init
#
# Launch the wireless network menu
#
f_dialog_menu_wireless_edit
################################################################################
# END
################################################################################

View File

@ -3,6 +3,6 @@
FILESDIR= ${SHAREDIR}/bsdconfig/media
FILES= any.subr cdrom.subr common.subr directory.subr dos.subr \
floppy.subr ftp.subr http.subr httpproxy.subr network.subr \
nfs.subr options.subr tcpip.subr ufs.subr usb.subr
nfs.subr options.subr tcpip.subr ufs.subr usb.subr wlan.subr
.include <bsd.prog.mk>

File diff suppressed because it is too large Load Diff