Jag utgår ifrån Openwrt 8.09 rev 16121.
kernelversion är 2.6.26.8
Ftdi drivarn är okej det har jag testat med rfcmd.pl från http://www.telldus.se/forum/viewtopic.php?t=294
Jag har hämtat libftdi från https://forum.openwrt.org/viewtopic.php?pid=47038 för att inte få komilerings fel för att ftdi.h saknas.
I package/rfcmd ligger Makefilen
Code: Select all
include $(TOPDIR)/rules.mk
PKG_NAME:=rfcmd
PKG_VERSION:=0.01
PKG_RELEASE:=1
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
include $(INCLUDE_DIR)/package.mk
define Package/rfcmd
SECTION:=utils
CATEGORY:=Utilities
# DEPENDS:=+lftdi
TITLE:=rfcmd
endef
#EXTRA_CFLAGS:="-I/home/viktor/router/8.09/staging_dir/mipsel/usr/include/"
define Build/Prepare
mkdir -p $(PKG_BUILD_DIR)
$(CP) ./src/* $(PKG_BUILD_DIR)/
endef
define Build/Compile
$(MAKE) -C $(PKG_BUILD_DIR) \
LIBS="-lftdi -lusb -lrt" \
CFLAGS="-O2 -Wall -I/home/viktor/router/8.09/staging_dir/mipsel/usr/include/" \
# EXTRA_CFLAGS="$(EXTRA_CFLAGS)" \
# CFLAGS="$(TARGET_CFLAGS)" \
# LDFLAGS="$(EXTRA_LDFLAGS)" \
# $(TARGET_CONFIGURE_OPTS) \
# CROSS="$(TARGET_CROSS)" \
ARCH="$(ARCH)" \
$(1);
endef
define Package/rfcmd/install
$(INSTALL_DIR) $(1)/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/rfcmd $(1)/bin/
endef
$(eval $(call BuildPackage,rfcmd))
package/rfcmd/src/ls
build.sh CMakeLists.txt COPYING find_telldus.c ftdi.c Makefile Makefile~ rfcmd.c
I makefilen har jag komenterat bort lite.
Code: Select all
SRCS= rfcmd.c ftdi.c
#CFLAGS=-O2 -Wall -I/usr/include
#LFLAGS= -L/usr/local/lib -R/usr/local/lib
#linux:LFLAGS=-Wl,-rpath,/usr/local/lib
#LIBS= -lftdi -lusb -lrt
PROG= rfcmd
FT= find_telldus
OBJS= $(SRCS:.c=.o)
all: $(PROG) $(FT)
$(PROG): $(OBJS)
$(CC) $(CFLAGS) $(OBJS) -o $(PROG) $(LFLAGS) $(LIBS)
rfcmd.o: rfcmd.c
ftdi.o: ftdi.c
$(FT): $(FT).c
$(CC) $(CFLAGS) -o $@ $(FT).c $(LFLAGS) $(LIBS)
viktor@viktor-desktop:~/router/8.09$ make package/rfcmd/compile V=99
Code: Select all
package/Makefile:60: warning: overriding commands for target `package/trunk/clean'
package/Makefile:60: warning: ignoring old commands for target `package/trunk/clean'
package/Makefile:60: warning: overriding commands for target `package/trunk/download'
package/Makefile:60: warning: ignoring old commands for target `package/trunk/download'
package/Makefile:60: warning: overriding commands for target `package/trunk/prepare'
…
make[1]: Entering directory `/home/viktor/router/8.09'
...
package/Makefile:60: warning: overriding commands for target `package/trunk/update'
package/Makefile:60: warning: ignoring old commands for target `package/trunk/update'
package/Makefile:60: warning: overriding commands for target `package/trunk/refresh'
package/Makefile:60: warning: ignoring old commands for target `package/trunk/refresh'
package/Makefile:60: warning: overriding commands for target `package/trunk/prereq'
package/Makefile:60: warning: ignoring old commands for target `package/trunk/prereq'
make[2]: Entering directory `/home/viktor/router/8.09/package/rfcmd'
mkdir -p /home/viktor/router/8.09/build_dir/mipsel/rfcmd
cp -fpR ./src/* /home/viktor/router/8.09/build_dir/mipsel/rfcmd/
touch /home/viktor/router/8.09/build_dir/mipsel/rfcmd/.prepared_48bd39b2b349eeb63532f44a5060836a
(cd /home/viktor/router/8.09/build_dir/mipsel/rfcmd/./; if [ -x ./configure ]; then /usr/bin/find /home/viktor/router/8.09/build_dir/mipsel/rfcmd/ -name config.guess | xargs -r chmod u+w; /usr/bin/find /home/viktor/router/8.09/build_dir/mipsel/rfcmd/ -name config.guess | xargs -r -n1 cp /home/viktor/router/8.09/scripts/config.guess; /usr/bin/find /home/viktor/router/8.09/build_dir/mipsel/rfcmd/ -name config.sub | xargs -r chmod u+w; /usr/bin/find /home/viktor/router/8.09/build_dir/mipsel/rfcmd/ -name config.sub | xargs -r -n1 cp /home/viktor/router/8.09/scripts/config.sub; AR=mipsel-linux-uclibc-ar AS="mipsel-linux-uclibc-gcc -c -Os -pipe -mips32 -mtune=mips32 -funit-at-a-time -fhonour-copts" LD=mipsel-linux-uclibc-ld NM=mipsel-linux-uclibc-nm CC="mipsel-linux-uclibc-gcc" GCC="mipsel-linux-uclibc-gcc" CXX="mipsel-linux-uclibc-g++" RANLIB=mipsel-linux-uclibc-ranlib STRIP=mipsel-linux-uclibc-strip OBJCOPY=mipsel-linux-uclibc-objcopy OBJDUMP=mipsel-linux-uclibc-objdump SIZE=mipsel-linux-uclibc-size CFLAGS="-Os -pipe -mips32 -mtune=mips32 -funit-at-a-time -fhonour-copts " CXXFLAGS="-Os -pipe -mips32 -mtune=mips32 -funit-at-a-time -fhonour-copts " CPPFLAGS="-I/home/viktor/router/8.09/staging_dir/mipsel/usr/include -I/home/viktor/router/8.09/staging_dir/mipsel/include " LDFLAGS="-L/home/viktor/router/8.09/staging_dir/toolchain-mipsel_gcc4.1.2/lib -L/home/viktor/router/8.09/staging_dir/mipsel/usr/lib -L/home/viktor/router/8.09/staging_dir/mipsel/lib " PKG_CONFIG_PATH="/home/viktor/router/8.09/staging_dir/mipsel/usr/lib/pkgconfig:/home/viktor/router/8.09/staging_dir/host/usr/lib/pkgconfig" PKG_CONFIG_LIBDIR="/home/viktor/router/8.09/staging_dir/mipsel/usr/lib/pkgconfig" ./configure --target=mipsel-linux --host=mipsel-linux --build=i486-linux-gnu --program-prefix="" --program-suffix="" --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --libexecdir=/usr/lib --sysconfdir=/etc --datadir=/usr/share --localstatedir=/var --mandir=/usr/man --infodir=/usr/info --disable-nls ; fi; )
touch /home/viktor/router/8.09/build_dir/mipsel/rfcmd/.configured
make -C /home/viktor/router/8.09/build_dir/mipsel/rfcmd LIBS="-lftdi -lusb -lrt" CFLAGS="-O2 -Wall -I/home/viktor/router/8.09/staging_dir/mipsel/usr/include/" # EXTRA_CFLAGS="" # CFLAGS="-Os -pipe -mips32 -mtune=mips32 -funit-at-a-time -fhonour-copts" # LDFLAGS="" # AR=mipsel-linux-uclibc-ar AS="mipsel-linux-uclibc-gcc -c -Os -pipe -mips32 -mtune=mips32 -funit-at-a-time -fhonour-copts" LD=mipsel-linux-uclibc-ld NM=mipsel-linux-uclibc-nm CC="mipsel-linux-uclibc-gcc" GCC="mipsel-linux-uclibc-gcc" CXX="mipsel-linux-uclibc-g++" RANLIB=mipsel-linux-uclibc-ranlib STRIP=mipsel-linux-uclibc-strip OBJCOPY=mipsel-linux-uclibc-objcopy OBJDUMP=mipsel-linux-uclibc-objdump SIZE=mipsel-linux-uclibc-size # CROSS="mipsel-linux-uclibc-" ARCH="mipsel" rfcmd;
make[3]: Entering directory `/home/viktor/router/8.09/build_dir/mipsel/rfcmd'
cc -O2 -Wall -I/home/viktor/router/8.09/staging_dir/mipsel/usr/include/ -c -o rfcmd.o rfcmd.c
rfcmd.c: In function 'main':
rfcmd.c:187: warning: ignoring return value of 'write', declared with attribute warn_unused_result
cc -O2 -Wall -I/home/viktor/router/8.09/staging_dir/mipsel/usr/include/ -c -o ftdi.o ftdi.c
ftdi.c: In function 'usbWriteFtdi':
ftdi.c:43: warning: pointer targets in passing argument 2 of 'ftdi_write_data' differ in signedness
cc -O2 -Wall -I/home/viktor/router/8.09/staging_dir/mipsel/usr/include/ rfcmd.o ftdi.o -o rfcmd -lftdi -lusb -lrt
cc -O2 -Wall -I/home/viktor/router/8.09/staging_dir/mipsel/usr/include/ -o find_telldus find_telldus.c -lftdi -lusb -lrt
make[3]: Leaving directory `/home/viktor/router/8.09/build_dir/mipsel/rfcmd'
touch /home/viktor/router/8.09/build_dir/mipsel/rfcmd/.built
mkdir -p /home/viktor/router/8.09/build_dir/mipsel/rfcmd/ipkg/rfcmd/CONTROL
echo "Package: rfcmd" > /home/viktor/router/8.09/build_dir/mipsel/rfcmd/ipkg/rfcmd/CONTROL/control
echo "Version: 0.01-1" >> /home/viktor/router/8.09/build_dir/mipsel/rfcmd/ipkg/rfcmd/CONTROL/control
( DEPENDS=''; for depend in ; do DEPENDS=${DEPENDS:+$DEPENDS, }${depend##+}; done; echo "Depends: $DEPENDS"; echo "Provides: "; echo "Source: package/rfcmd"; echo "Section: utils"; echo "Priority: optional"; echo "Maintainer: OpenWrt Developers Team <openwrt-devel@openwrt.org>"; echo "Architecture: mipsel"; echo "Installed-Size: 1"; echo -n "Description: "; getvar V_Package_rfcmd_description | sed -e 's,^[[:space:]]*, ,g'; ) >> /home/viktor/router/8.09/build_dir/mipsel/rfcmd/ipkg/rfcmd/CONTROL/control
chmod 644 /home/viktor/router/8.09/build_dir/mipsel/rfcmd/ipkg/rfcmd/CONTROL/control
(cd /home/viktor/router/8.09/build_dir/mipsel/rfcmd/ipkg/rfcmd/CONTROL; var2file "V_Package_rfcmd_conffiles" conffiles; var2file "V_Package_rfcmd_preinst" preinst; var2file "V_Package_rfcmd_postinst" postinst; var2file "V_Package_rfcmd_prerm" prerm; var2file "V_Package_rfcmd_postrm" postrm; )
install -d -m0755 /home/viktor/router/8.09/build_dir/mipsel/rfcmd/ipkg/rfcmd/bin
install -m0755 /home/viktor/router/8.09/build_dir/mipsel/rfcmd/rfcmd /home/viktor/router/8.09/build_dir/mipsel/rfcmd/ipkg/rfcmd/bin/
mkdir -p /home/viktor/router/8.09/bin/packages/mipsel
find /home/viktor/router/8.09/build_dir/mipsel/rfcmd/ipkg/rfcmd -name 'CVS' -o -name '.svn' -o -name '.#*' | xargs -r rm -rf
NM="mipsel-linux-uclibc-nm" STRIP="/home/viktor/router/8.09/staging_dir/host/bin/sstrip" STRIP_KMOD="mipsel-linux-uclibc-strip --strip-unneeded --remove-section=.comment" /home/viktor/router/8.09/scripts/rstrip.sh /home/viktor/router/8.09/build_dir/mipsel/rfcmd/ipkg/rfcmd
rstrip.sh: /home/viktor/router/8.09/build_dir/mipsel/rfcmd/ipkg/rfcmd/bin/rfcmd:executable
SIZE=`cd /home/viktor/router/8.09/build_dir/mipsel/rfcmd/ipkg/rfcmd; du -bs --exclude=./CONTROL . 2>/dev/null | cut -f1`; /home/viktor/router/8.09/staging_dir/host/bin/sed -i -e "s|^\(Installed-Size:\).*|\1 $SIZE|g" /home/viktor/router/8.09/build_dir/mipsel/rfcmd/ipkg/rfcmd/CONTROL/control
ipkg-build -c -o 0 -g 0 /home/viktor/router/8.09/build_dir/mipsel/rfcmd/ipkg/rfcmd /home/viktor/router/8.09/bin/packages/mipsel
Packaged contents of /home/viktor/router/8.09/build_dir/mipsel/rfcmd/ipkg/rfcmd into /home/viktor/router/8.09/bin/packages/mipsel/rfcmd_0.01-1_mipsel.ipk
make[2]: Leaving directory `/home/viktor/router/8.09/package/rfcmd'
make[1]: Leaving directory `/home/viktor/router/8.09'
Jag har testat och byta lite fram och tillbaka I makefilerna utan någon större skillnad.
Men det känns som den kompilerar för X86 istället för adm5120. Kör jag binären på x86 utan argument så printar den syntaxen. Men på routern så blir buggar det ur.
/T
PS det tog en bra stund innan man hittade att -lrt skulle läggas till i LIBS.