From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from ems.wolfvision.net ([194.208.11.114]) by metis.ext.pengutronix.de with esmtp (Exim 4.72) (envelope-from ) id 1UZdiH-0002Ct-Oy for ptxdist@pengutronix.de; Tue, 07 May 2013 10:57:36 +0200 From: Matthias Fend Date: Tue, 7 May 2013 08:57:26 +0000 Message-ID: References: In-Reply-To: Content-Language: de-DE MIME-Version: 1.0 Subject: Re: [ptxdist] Building hostapd for PTXdist and an ARM Target Reply-To: ptxdist@pengutronix.de List-Id: PTXdist Development Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: ptxdist-bounces@pengutronix.de Errors-To: ptxdist-bounces@pengutronix.de To: "ptxdist@pengutronix.de" Hi Pascal, > Von: ptxdist-bounces@pengutronix.de [mailto:ptxdist-bounces@pengutronix.de] Im Auftrag von Pascal K > Gesendet: Dienstag, 07. Mai 2013 10:18 > An: ptxdist@pengutronix.de > Betreff: [ptxdist] Building hostapd for PTXdist and an ARM Target > > Hello all, > > I'am beginning to use PTXdist, so I followed the How to become a PTXdist Guru Manual to get started. > But there is some information which I don't find/don't get. > > My task: > -> Building hostapd-2.0.tar.gz for my ARM Cortex A8 target board > > So I tried to follow section 4.2.2 in the manual. > > $ ptxdist newpackage target > edited the mandatory fields, added md5sum, selected the package in > $ ptxdist menuconfig > $ ptxdist get hostapd > $ ptxdist extract hostapd > $ ptxdist prepare hostapd > and finally tried edited inside the hostapd folder the defconfig file to .config > $ ptxdist compile hostapd > > now gives me the error that > > make[1]: Entering directory `/opt/PHYTEC_BSPs/phyCORE-AM335x-PD12.1.1/platform-phyCORE-AM335x/build-target/hostapd-2.0' > make[1]: *** No targets specified and no makefile found. Stop. > make[1]: Leaving directory `/opt/PHYTEC_BSPs/phyCORE-AM335x-PD12.1.1/platform-phyCORE-AM335x/build-target/hostapd-2.0' > make: *** [/opt/PHYTEC_BSPs/phyCORE-AM335x-PD12.1.1/platform-phyCORE-AM335x/state/hostapd.compile] Error 2 > > > So I think I missed a step or a went with the wrong option at the beginning. > Could someone give me an advice, that would be great! > > > Best regards, > Pascal Here comes a patch which will add hostapd-2.0 to ptxdist. It's not yet finished and (most) probably not everything is working. But maybe you can use it as starting point... good luck, ~matthias --- rules/hostapd.in | 411 ++++++++++++++++++++++++++++++++++++++++++++++++++++ rules/hostapd.make | 89 +++++++++++ 2 files changed, 500 insertions(+), 0 deletions(-) create mode 100644 rules/hostapd.in create mode 100644 rules/hostapd.make diff --git a/rules/hostapd.in b/rules/hostapd.in new file mode 100644 index 0000000..78bef61 --- /dev/null +++ b/rules/hostapd.in @@ -0,0 +1,411 @@ +## SECTION=networking + +config HOSTAPD + bool + prompt "hostapd" + help + FIXME + +if HOSTAPD + + config HOSTAPD_DRIVER_HOSTAP + bool + prompt "HOSTAP driver" + help + Driver interface for Host AP driver + + config HOSTAPD_DRIVER_WIRED + bool + prompt "Wired driver" + help + Driver interface for wired authenticator + + config HOSTAPD_DRIVER_NL80211 + bool + prompt "NL80211 driver" + select LIBNL + help + Driver interface for drivers using the nl80211 kernel interface + + config HOSTAPD_DRIVER_NONE + bool + prompt "no driver" + help + Driver interface for no driver (e.g., RADIUS server only) + + config HOSTAPD_IAPP + bool + prompt "IEEE 802.11F/IAPP" + help + IEEE 802.11F/IAPP + + config HOSTAPD_RSN_PREAUTH + bool + prompt "WPA2/IEEE 802.11i RSN pre-authentication" + help + WPA2/IEEE 802.11i RSN pre-authentication + + config HOSTAPD_PEERKEY + bool + prompt "PeerKey handshake for Station to Station Link (IEEE 802.11e DLS)" + help + PeerKey handshake for Station to Station Link (IEEE 802.11e DLS) + + config HOSTAPD_IEEE80211W + bool + prompt "IEEE 802.11w (management frame protection)" + help + IEEE 802.11w (management frame protection) + This version is an experimental implementation based on IEEE 802.11w/D1.0 + draft and is subject to change since the standard has not yet been finalized. + Driver support is also needed for IEEE 802.11w. + + config HOSTAPD_EAP + bool + prompt "Integrated EAP server" + help + Integrated EAP server + + config HOSTAPD_EAP_MD5 + bool + prompt "EAP-MD5 for the integrated EAP server" + help + EAP-MD5 for the integrated EAP server + + config HOSTAPD_EAP_TLS + bool + prompt "EAP-TLS for the integrated EAP server" + help + EAP-TLS for the integrated EAP server + + config HOSTAPD_EAP_MSCHAPV2 + bool + prompt "EAP-MSCHAPv2 for the integrated EAP server" + help + EAP-MSCHAPv2 for the integrated EAP server + + config HOSTAPD_EAP_PEAP + bool + prompt "EAP-PEAP for the integrated EAP server" + help + EAP-PEAP for the integrated EAP server + + config HOSTAPD_EAP_GTC + bool + prompt "EAP-GTC for the integrated EAP server" + help + EAP-GTC for the integrated EAP server + + config HOSTAPD_EAP_TTLS + bool + prompt "EAP-TTLS for the integrated EAP server" + help + EAP-TTLS for the integrated EAP server + + config HOSTAPD_EAP_SIM + bool + prompt "EAP-SIM for the integrated EAP server" + help + EAP-SIM for the integrated EAP server + + config HOSTAPD_EAP_AKA + bool + prompt "EAP-AKA for the integrated EAP server" + help + EAP-AKA for the integrated EAP server + + config HOSTAPD_EAP_AKA_PRIME + bool + prompt "EAP-AKA' (AKA-Prime)" + help + EAP-AKA' (AKA-Prime) for the integrated EAP server + This requires CONFIG_EAP_AKA to be enabled, too. + + config HOSTAPD_EAP_PAX + bool + prompt "EAP-PAX for the integrated EAP server" + help + EAP-PAX for the integrated EAP server + + config HOSTAPD_EAP_PSK + bool + prompt "EAP-PSK for the integrated EAP server" + help + EAP-PSK for the integrated EAP server (this is _not_ needed for WPA-PSK) + + config HOSTAPD_EAP_PWD + bool + prompt "EAP-pwd for the integrated EAP server" + help + EAP-pwd for the integrated EAP server (secure authentication with a password) + + config HOSTAPD_EAP_SAKE + bool + prompt "EAP-SAKE for the integrated EAP server" + help + EAP-SAKE for the integrated EAP server + + config HOSTAPD_EAP_GPSK + bool + prompt "EAP-GPSK for the integrated EAP server" + help + EAP-GPSK for the integrated EAP server + + config HOSTAPD_EAP_GPSK_SHA256 + bool + prompt "Include support for optional SHA256 cipher suite in EAP-GPSK" + help + Include support for optional SHA256 cipher suite in EAP-GPSK + + config HOSTAPD_EAP_FAST + bool + prompt "EAP-FAST for the integrated EAP server" + help + EAP-FAST for the integrated EAP server + Note: Default OpenSSL package does not include support for all the + functionality needed for EAP-FAST. If EAP-FAST is enabled with OpenSSL, + the OpenSSL library must be patched (openssl-0.9.9-session-ticket.patch) + to add the needed functions. + + config HOSTAPD_WPS + bool + prompt "Wi-Fi Protected Setup (WPS)" + help + Wi-Fi Protected Setup (WPS) + + config HOSTAPD_WPS2 + bool + prompt "Enable WSC 2.0 support" + help + Enable WSC 2.0 support + + config HOSTAPD_WPS_UPNP + bool + prompt "Enable UPnP support for external WPS Registrars" + help + Enable UPnP support for external WPS Registrars + + config HOSTAPD_WPS_NFC + bool + prompt "Enable WPS support with NFC config method" + help + Enable WPS support with NFC config method + + config HOSTAPD_EAP_IKEV2 + bool + prompt "EAP-IKEv2" + help + EAP-IKEv2 + + config HOSTAPD_EAP_TNC + bool + prompt "Trusted Network Connect (EAP-TNC)" + help + Trusted Network Connect (EAP-TNC) + + config HOSTAPD_PKCS12 + bool + prompt "PKCS#12 (PFX) support" + help + PKCS#12 (PFX) support (used to read private key and certificate file from + a file that usually has extension .p12 or .pfx) + + config HOSTAPD_RADIUS_SERVER + bool + prompt "RADIUS authentication server" + help + RADIUS authentication server. This provides access to the integrated EAP + server from external hosts using RADIUS. + + config HOSTAPD_IPV6 + bool + prompt "Build IPv6 support for RADIUS operations" + help + Build IPv6 support for RADIUS operations + + config HOSTAPD_IEEE80211R + bool + prompt "IEEE Std 802.11r-2008 (Fast BSS Transition)" + help + IEEE Std 802.11r-2008 (Fast BSS Transition) + + config HOSTAPD_DRIVER_RADIUS_ACL + bool + prompt "Hostapd's IEEE 802.11 authentication (ACL)" + help + Use the hostapd's IEEE 802.11 authentication (ACL), but without + the IEEE 802.11 Management capability (e.g., madwifi or FreeBSD/net80211) + + config HOSTAPD_IEEE80211N + bool + prompt "IEEE 802.11n (High Throughput) support" + help + IEEE 802.11n (High Throughput) support + + config HOSTAPD_WNM + bool + prompt "Wireless Network Management (IEEE Std 802.11v-2011) (EXPERIMENTAL)" + help + Wireless Network Management (IEEE Std 802.11v-2011) + Note: This is experimental and not complete implementation. + + config HOSTAPD_IEEE80211AC + bool + prompt "IEEE 802.11ac (Very High Throughput) support" + help + IEEE 802.11ac (Very High Throughput) support + + config HOSTAPD_NO_STDOUT_DEBUG + bool + prompt "Remove stdout debugging code" + help + Remove debugging code that is printing out debug messages to stdout. + This can be used to reduce the size of the hostapd considerably if debugging + code is not needed. + + config HOSTAPD_DEBUG_FILE + bool + prompt "Log file support" + help + Add support for writing debug log to a file: -f /tmp/hostapd.log + Disabled by default. + + config HOSTAPD_NO_ACCOUNTING + bool + prompt "Remove support for RADIUS accounting" + help + Remove support for RADIUS accounting + + config HOSTAPD_NO_RADIUS + bool + prompt "Remove support for RADIUS" + help + Remove support for RADIUS + + config HOSTAPD_NO_VLAN + bool + prompt "Remove support for VLANs" + help + Remove support for VLANs + + config HOSTAPD_FULL_DYNAMIC_VLAN + bool + prompt "Fully dynamic VLAN support" + help + Enable support for fully dynamic VLANs. This enables hostapd to + automatically create bridge and VLAN interfaces if necessary. + + config HOSTAPD_VLAN_NETLINK + bool + prompt "netlink-based kernel API for VLAN operations" + help + Use netlink-based kernel API for VLAN operations instead of ioctl() + Note: This requires libnl 3.1 or newer. + + config HOSTAPD_NO_DUMP_STATE + bool + prompt "Remove SIGUSR1 state dump support" + help + Remove support for dumping state into a file on SIGUSR1 signal + This can be used to reduce binary size at the cost of disabling a debugging + option. + + config HOSTAPD_WPA_TRACE + bool + prompt "Enable tracing code for developer debugging" + help + Enable tracing code for developer debugging + This tracks use of memory allocations and other registrations and reports + incorrect use with a backtrace of call (or allocation) location. + + config HOSTAPD_NO_RANDOM_POOL + bool + prompt "Disabled hostapd's internal random pool" + help + hostapd depends on strong random number generation being available from the + operating system. os_get_random() function is used to fetch random data when + needed, e.g., for key generation. On Linux and BSD systems, this works by + reading /dev/urandom. It should be noted that the OS entropy pool needs to be + properly initialized before hostapd is started. This is important especially + on embedded devices that do not have a hardware random number generator and + may by default start up with minimal entropy available for random number + generation. + + As a safety net, hostapd is by default trying to internally collect + additional entropy for generating random data to mix in with the data + fetched from the OS. This by itself is not considered to be very strong, but + it may help in cases where the system pool is not initialized properly. + However, it is very strongly recommended that the system pool is initialized + with enough entropy either by using hardware assisted random number + generator or by storing state over device reboots. + + hostapd can be configured to maintain its own entropy store over restarts to + enhance random number generation. This is not perfect, but it is much more + secure than using the same sequence of random numbers after every reboot. + This can be enabled with -e command line option. The specified + file needs to be readable and writable by hostapd. + + If the os_get_random() is known to provide strong random data (e.g., on + Linux/BSD, the board in question is known to have reliable source of random + data from /dev/urandom), the internal hostapd random pool can be disabled. + This will save some in binary size and CPU use. However, this should only be + considered for builds that are known to be used on devices that meet the + requirements described above. + + config HOSTAPD_TLS + string + prompt "Select TLS implementation" + default "openssl" + help + Select TLS implementation + openssl = OpenSSL (default) + gnutls = GnuTLS + internal = Internal TLSv1 implementation (experimental) + none = Empty template + + config HOSTAPD_TLSV11 + bool + prompt "TLS v1.1" + help + TLS-based EAP methods require at least TLS v1.0. Newer version of TLS (v1.1) + can be enabled to get a stronger construction of messages when block ciphers + are used. + + config HOSTAPD_TLSV12 + bool + prompt "TLS v1.2" + help + TLS-based EAP methods require at least TLS v1.0. Newer version of TLS (v1.2) + can be enabled to enable use of stronger crypto algorithms. + + config HOSTAPD_INTERNAL_LIBTOMMATH_FAST + bool + prompt "Internal LibTomMath" + help + At the cost of about 4 kB of additional binary size, the internal LibTomMath + can be configured to include faster routines for exptmod, sqr, and div to + speed up DH and RSA calculation considerably + + config HOSTAPD_INTERWORKING + bool + prompt "Interworking (IEEE 802.11u)" + help + Interworking (IEEE 802.11u) + This can be used to enable functionality to improve interworking with + external networks. + + config HOSTAPD_HS20 + bool + prompt "Hotspot 2.0" + help + Hotspot 2.0 + + config HOSTAPD_SQLITE + bool + prompt "SQLite database support" + help + Enable SQLite database support in hlr_auc_gw, EAP-SIM DB, and eap_user_file + +endif + + diff --git a/rules/hostapd.make b/rules/hostapd.make new file mode 100644 index 0000000..0ca5dd5 --- /dev/null +++ b/rules/hostapd.make @@ -0,0 +1,89 @@ +# -*-makefile-*- +# +# Copyright (C) 2013 by Matthias Fend +# +# See CREDITS for details about who has contributed to this project. +# +# For further information about the PTXdist project and license conditions +# see the README file. +# + +# +# We provide this package +# +PACKAGES-$(PTXCONF_HOSTAPD) += hostapd + +# +# Paths and names +# +HOSTAPD_NAME := hostapd +HOSTAPD_VERSION := 2.0 +HOSTAPD_MD5 := ba22e639bc57aa4035d2ea8ffa9bbbee +HOSTAPD := $(HOSTAPD_NAME)-$(HOSTAPD_VERSION) +HOSTAPD_SUFFIX := tar.gz +HOSTAPD_URL := http://w1.fi/releases/$(HOSTAPD).$(HOSTAPD_SUFFIX) +HOSTAPD_SOURCE := $(SRCDIR)/$(HOSTAPD).$(HOSTAPD_SUFFIX) +HOSTAPD_DIR := $(BUILDDIR)/$(HOSTAPD) +HOSTAPD_SUBDIR := $(HOSTAPD_NAME) +HOSTAPD_CONFIG := $(BUILDDIR)/$(HOSTAPD)/$(HOSTAPD_SUBDIR)/.config +HOSTAPD_LICENSE := BSD + +# ---------------------------------------------------------------------------- +# Prepare +# ---------------------------------------------------------------------------- + +HOSTAPD_PATH := PATH=$(CROSS_PATH) +#HOSTAPD_CONF_TOOL := NO +HOSTAPD_MAKE_ENV := \ + $(CROSS_ENV) \ + LIBDIR=/lib \ + BINDIR=/sbin + + +$(STATEDIR)/hostapd.prepare: + @$(call targetinfo) +# # run 'make clean' as hostapd's build system does not recognize config changes + @-cd $(HOSTAPD_DIR)/$(HOSTAPD_SUBDIR) && \ + $(HOSTAPD_MAKE_ENV) $(HOSTAPD_PATH) $(MAKE) clean + + @echo "CC=$(CROSS_CC)" > $(HOSTAPD_CONFIG) && \ + echo "CFLAGS += -I$(PTXDIST_SYSROOT_TARGET)/include" >> $(HOSTAPD_CONFIG) && \ + echo "CFLAGS += -I$(PTXDIST_SYSROOT_TARGET)/usr/include" >> $(HOSTAPD_CONFIG) && \ + echo "LDFLAGS += -L$(PTXDIST_SYSROOT_TARGET)/lib" >> $(HOSTAPD_CONFIG) && \ + echo "LDFLAGS += -L$(PTXDIST_SYSROOT_TARGET)/usr/lib" >> $(HOSTAPD_CONFIG) + + @grep -e PTXCONF_HOSTAPD_ $(PTXDIST_PTXCONFIG) | \ + sed -e 's/PTXCONF_HOSTAPD_/CONFIG_/g' -e 's/\"//g' >> $(HOSTAPD_CONFIG) + + @$(call touch) + +# ---------------------------------------------------------------------------- +# Target-Install +# ---------------------------------------------------------------------------- + +$(STATEDIR)/hostapd.targetinstall: + @$(call targetinfo) + + @$(call install_init, hostapd) + @$(call install_fixup, hostapd,PRIORITY,optional) + @$(call install_fixup, hostapd,SECTION,base) + @$(call install_fixup, hostapd,AUTHOR,"Matthias Fend ") + @$(call install_fixup, hostapd,DESCRIPTION,missing) + + @$(call install_copy, hostapd, 0, 0, 0755, $(HOSTAPD_DIR)/$(HOSTAPD_SUBDIR)/hostapd, /usr/bin/hostapd) + + @$(call install_finish, hostapd) + + @$(call touch) + +# ---------------------------------------------------------------------------- +# Clean +# ---------------------------------------------------------------------------- + +$(STATEDIR)/hostapd.clean: + @$(call targetinfo) + @-cd $(HOSTAPD_DIR) && \ + $(HOSTAPD_ENV) $(HOSTAPD_PATH) $(MAKE) clean + @$(call clean_pkg, HOSTAPD) + +# vim: syntax=make -- 1.7.0.4 -- ptxdist mailing list ptxdist@pengutronix.de