Hi, I'm currently building a project with my Beaglebone Black (rev B) to use it like a battery powered PC running Kali which I can control over SSH by my phone.
I thought that the easiest way to get the whole thing working was to use a WIFI dongle on the Beaglebone to create an AP ad connect through it.

So my setup is something like this

             _______                           |- wlan1: Tplink dongle
            |       |                          |
   eth0 --- |  BBB  | --- POWERED USB HUB ---- *
            |_______|                          | 
                                               |- wlan0: Alfa AWS051NH
I would use wlan1 to generate the AP and wlan0 as a wifi scanner/attacker

I followed some guides, but I can't get it to work.

I got Hostapd set up and working with this:
I've changed /etc/network/interfaces in:
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

iface usb0 inet static

iface wlan1 inet static

up iptables-restore < /etc/iptables.ipv4.nat
I used this dhcp.conf:
# Sample configuration file for ISC dhcpd for Debian

# The ddns-updates-style parameter controls whether or not the server will
# attempt to do a DNS update when a lease is confirmed. We default to the
# behavior of the version 2 packages ('none', since DHCP v2 didn't
# have support for DDNS.)
ddns-update-style none;

# option definitions common to all supported networks...
#option domain-name "example.org";
#option domain-name-servers ns1.example.org, ns2.example.org;

default-lease-time 600;
max-lease-time 7200;

# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.

# Use this to send dhcp log messages to a different log file (you also
# have to hack syslog.conf to complete the redirection).
log-facility local7;

# No service will be given on this subnet, but declaring it helps the 
# DHCP server to understand the network topology.

#subnet netmask {

# This is a very basic subnet declaration.

#subnet netmask {
#  range;
#  option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;

# This declaration allows BOOTP clients to get dynamic addresses,
# which we don't really recommend.

#subnet netmask {
#  range dynamic-bootp;
#  option broadcast-address;
#  option routers rtr-239-32-1.example.org;

# A slightly different configuration for an internal subnet.
#subnet netmask {
#  range;
#  option domain-name-servers ns1.internal.example.org;
#  option domain-name "internal.example.org";
#  option routers;
#  option broadcast-address;
#  default-lease-time 600;
#  max-lease-time 7200;

# Hosts which require special configuration options can be listed in
# host statements.   If no address is specified, the address will be
# allocated dynamically (if possible), but the host-specific information
# will still come from the host declaration.

#host passacaglia {
#  hardware ethernet 0:0:c0:5d:bd:95;
#  filename "vmunix.passacaglia";
#  server-name "toccata.fugue.com";

# Fixed IP addresses can also be specified for hosts.   These addresses
# should not also be listed as being available for dynamic assignment.
# Hosts for which fixed IP addresses have been specified can boot using
# BOOTP or DHCP.   Hosts for which no fixed address is specified can only
# be booted with DHCP, unless there is an address range on the subnet
# to which a BOOTP client is connected which has the dynamic-bootp flag
# set.
#host fantasia {
#  hardware ethernet 08:00:07:26:c0:a5;
#  fixed-address fantasia.fugue.com;

# You can declare a class of clients and then do address allocation
# based on that.   The example below shows a case where all clients
# in a certain class get addresses on the 10.17.224/24 subnet, and all
# other clients get addresses on the 10.0.29/24 subnet.

#class "foo" {
#  match if substring (option vendor-class-identifier, 0, 4) = "SUNW";

#shared-network 224-29 {
#  subnet netmask {
#    option routers rtr-224.example.org;
#  }
#  subnet netmask {
#    option routers rtr-29.example.org;
#  }
#  pool {
#    allow members of "foo";
#    range;
#  }
#  pool {
#    deny members of "foo";
#    range;
#  }

subnet netmask {

	host testpc {
        	hardware ethernet 00:c0:ca:32:cf:f3;

	option broadcast-address;
	option routers;
	default-lease-time 600;
	max-lease-time 7200;
	option domain-name "local";
	option domain-name-servers,;
and updated /etc/default/isc-dhcp-server with wlan1 at ' INTERFACES="" '.

I've enabled IP forward on /etc/sysctl.conf (also on the go using sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward")

I've updated the IPTABLES using:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT

sh -c "iptables-save > /etc/iptables.ipv4.nat"
Started dhcp service and launched hostapd.

Hostapd seems ok, but I can't get an IP for my tablet when I try to connect to the AP.

dhcp gives this error:

Sep 10 18:26:15 grendel-1 dhcpd: Wrote 1 leases to leases file.
Sep 10 18:26:15 grendel-1 dhcpd: 
Sep 10 18:26:15 grendel-1 dhcpd: No subnet declaration for wlan1 (no IPv4 addresses).
Sep 10 18:26:15 grendel-1 dhcpd: ** Ignoring requests on wlan1.  If this is not what
Sep 10 18:26:15 grendel-1 dhcpd:    you want, please write a subnet declaration
Sep 10 18:26:15 grendel-1 dhcpd:    in your dhcpd.conf file for the network segment
Sep 10 18:26:15 grendel-1 dhcpd:    to which interface wlan1 is attached. **
Sep 10 18:26:15 grendel-1 dhcpd: 
Sep 10 18:26:15 grendel-1 dhcpd: 
Sep 10 18:26:15 grendel-1 dhcpd: Not configured to listen on any interfaces!
Can someone give me a hint on what to change?
I'm currently reading the documentation (PDF)