OpenWrt Forum Archive

Topic: Build Help with Kismet and BuildRoot

The content of this topic has been archived on 30 Mar 2018. There are no obvious gaps in this topic, but there may still be some posts missing at the end.

I am attempting to build kismet for the Kamikaze release for an rb532.  The instructions are a bit confusing, but I ended up with a Makefile in packages/kimset/ that looks like this:

---

include $(TOPDIR)/rules.mk

PKG_NAME:=kismet
PKG_VERSION:=2007-01-R1b
PKG_RELEASE:=1

PKG_BUILD_DIR:=$(BUILD_DIR)/kismet-${PKG_VERSION)
PKG_SOURCE:=kismet-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://www.kismetwireless.net/code/
PKG_MD5SUM:=a1dcea71f0c3f881ef72f5bca2db7b39
PKG_CAT:=zcat

include $(INCLUDE_DIR)/package.mk

define Package/kismet
        SECTION:=base
        CATEGORY:=Network
        DEFAULT:=y
        TITLE:=Kismet
        DESCRIPTION:=Kismet Description
        URL:=http://www.kismetwireless.net
endef

define Build/Configure
        $(call Build/Configure/Default,--with-pcap=linux --host=mipsel-linux --disable-viha --without-ethereal --pr
efix=/tmp --disable-pcre --disable-setuid)
endef

$(eval $(call BuildPackage,kismet))

---

But when I run a 'make V=99' to build the release, make fails with an error on the $eval line in the script:

Makefile:38: *** missing separator (did you mean TAB instead of 8 spaces?).  Stop.

The line is copied verbatim from the libpcap Makefile (obviously changing the name), so it's not a syntax issue.  Is there something that I am missing in the Makefile that would cause it to behave like this?  If I remove that line, the build finishes but I have no kismet package.

kismet (client, drone and server) is already ported and packaged.

- https://svn.openwrt.org/openwrt/packages/net/kismet/

tip: to get all packages run 'make package/symlinks' and 'make menuconfig'.

(Last edited by forum2006 on 12 Jun 2007, 16:24)

Excellent!

However, kismet does not build correctly on my system.  This is the output of a make V=99 during the kismet build phase:

checking for mipsel-linux-gcc... mipsel-linux-uclibc-gcc
checking for C compiler default output file name... configure: error: C compiler cannot create executables

and then the entire make process fails.  Do I need to select some package, or did I miss something in menuconfig?

Also, is 'make package/symlinks' supposed to do something to my package/ dir?  It doesn't give me the kismet/ dir, nor does it appear to do anything else.

try latest trunk. bug is fixed there and kismet compiles fine.

Grabbing the newest trunk using subversion (is this the right way to get the latest trunk?) by doing a:

svn co https://svn.openwrt.org/openwrt/trunk

gives me a copy of the source, but the packages directory does not contain kismet.  Getting the latest packages source via svn:

svn co https://svn.openwrt.org/openwrt/packages

gives me a copy of the packages tree, but in a different structure than what trunk has in the package dir.

Copying the svn packages/ directory contents to trunk/package/ results in this during a 'make menuconfig':

target/linux/ixp4xx-2.6/image/Config.in:2:warning: multi-line strings not supported
tmp/.config-package.in:137: glob failed: no match "package/busybox/target-config.in"
make: *** [menuconfig] Error 1

and copying the contents of the net/kismet/ directory from the svn packages dir to the trunk/package/ directroy fails during the build of kismet with:

configure: loading site script /home/user/kamikaze_7.06/include/site/mipsel-linux-uclibc
checking build system type... i386-redhat-linux-gnu
checking host system type... mipsel-unknown-linux-gnu
checking for mipsel-linux-gcc... mipsel-linux-uclibc-gcc
checking for C compiler default output file name... configure: error: C compiler cannot create executables
See `config.log' for more details.
make[3]: *** [/home/user/kamikaze_7.06/build_mipsel/kismet-2007-01-R1a/.configured] Error 77

So my question is what do I need to do in order to build kismet properly or get an kismet ipkg for kamikaze rb532?

Am I even getting the newest trunk code properly?  I don't think so because the kismet package definition is not in 'trunk' but in 'packages' from svn, and not in any usable format that I see.

What am I doing wrong?

(Last edited by jacksafro on 12 Jun 2007, 22:42)

I must be doing something wrong since I don't see kismet anywhere in the menuconfig or on the filesystem after getting the latest trunk and running 'make package/symlinks'.  Here is the process I am using:

svn co https://svn.openwrt.org/openwrt/trunk
cd trunk
make package/symlinks
make menuconfig

After running those command, I see nothing about kismet in the menuconfig.  Digging a bit further:

find ./ -name "*kismet*"

yields zero results.  Also, my packages directory in trunk does not have the packages split into subdirectories (net/kismet instead of kismet/).  Is this an indication that I am doing something wrong?

Thanks for all of your help so far, hopefully someone will be able to point out what I am missing.

try running "make package/symlinks V=99" - it should be doing a checkout of the packages directory in svn and symlinking it

After getting a fresh copy of trunk I try the 'make package/symlinks' command and get:

---
[drexel@dirtlawn trunk]$ make package/symlinks V=99
make -C package symlinks
make[1]: Entering directory `/home/drexel/dl/openwrt/svn/trunk/package'
Makefile:10: /home/drexel/dl/openwrt/svn/trunk/.config: No such file or directory
/home/drexel/dl/openwrt/svn/trunk/include/host.mk:8: /home/drexel/dl/openwrt/svn/trunk/tmp/.host.mk: No such file or directory
Makefile:15: /home/drexel/dl/openwrt/svn/trunk/tmp/.packagedeps: No such file or directory
--: /home/drexel/dl/openwrt/svn/trunk/tmp/.packageinfo: No such file or directory
make[1]: Leaving directory `/home/drexel/dl/openwrt/svn/trunk/package'
make[1]: Entering directory `/home/drexel/dl/openwrt/svn/trunk/package'
Makefile:10: /home/drexel/dl/openwrt/svn/trunk/.config: No such file or directory
Makefile:15: /home/drexel/dl/openwrt/svn/trunk/tmp/.packagedeps: No such file or directory
--: /home/drexel/dl/openwrt/svn/trunk/tmp/.packageinfo: No such file or directory
../scripts/feeds.sh
make[1]: Leaving directory `/home/drexel/dl/openwrt/svn/trunk/package'
---

Which does not appear to go out to the Internet and get the new package list.  Am I doing it wrong?

Thanks.

After further investigation, it appears that when scripts/feeds.sh is called by 'make package/symlinks' the $1 variable is empty.  This seems to be the primary cause of why I am not getting any updated packages.

The feeds.sh script gets to:

# Now let's checkout feeds
for feed in $1
do
  # ...
done

and nothing happens because $1 is empty.

---

Everything seems to be working quite a bit better if I run 'make menuconfig' before I run 'make package/symlinks'.

Hopefully this will solve all of my problems.

(Last edited by jacksafro on 14 Jun 2007, 16:55)

The discussion might have continued from here.