Openwrt kompilering rfcmd

Moderator: Telldus

tor
Posts: 1
Joined: Fri Mar 17, 2023 9:45 am

Openwrt kompilering rfcmd

Post by tor »

Jag har problem att komipilera rfcmd för adm5120 Infineon processorn.

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))
I src mappen ser det ut som I telldus rfcmd mapp
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)
Det kompilerar med några varningar
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 försökt följa http://manoftoday.wordpress.com/2007/10 ... r-openwrt/ för att bygga makefilerna.
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.
micke.prag
Site Admin
Posts: 2243
Joined: Fri Mar 17, 2023 9:45 am
Location: Lund
Contact:

Post by micke.prag »

Berätta gärna mer vad som menas med att den "buggar ur"?

Det är mer meck men om det är möjligt så vore det bättre att bygga med cmake då det är vårt supportade byggsystem.
Micke Prag
Software
Telldus Technologies
Jaxån
Posts: 199
Joined: Fri Mar 17, 2023 9:45 am

Re: Openwrt kompilering rfcmd

Post by Jaxån »

tor wrote: 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'

...

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'
[/code]

Jag har försökt följa http://manoftoday.wordpress.com/2007/10 ... r-openwrt/ för att bygga makefilerna.
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
Om binären fungerar på en ix86-maskin men inte på MIPS (adm5120), så har du inte korskompilerat korrekt. Skulle tro att du måste använda en annan compilator än cc (cc-mips eller något liknande). Eventuellt även för länkning.
micke.prag
Site Admin
Posts: 2243
Joined: Fri Mar 17, 2023 9:45 am
Location: Lund
Contact:

Re: Openwrt kompilering rfcmd

Post by micke.prag »

Jag har satt ihop ett litet paket för telldus-core.2.0.3 för OpenWRT. Testa gärna!
Attachments
telldus-core-openwrt.tar.gz
(1.41 KiB) Downloaded 601 times
Micke Prag
Software
Telldus Technologies
gein
Posts: 437
Joined: Fri Mar 17, 2023 9:45 am

Re: Openwrt kompilering rfcmd

Post by gein »

Jag gav mig på ett försök, men gick bet. Det här är output:

Code: Select all

# make package/Tellstick-compile V=99
make[1]: Entering directory `/home/gein/openwrt/trunk'
make[2]: Entering directory `/home/gein/openwrt/trunk/package/libtool'
make[2]: Leaving directory `/home/gein/openwrt/trunk/package/libtool'
make[2]: Entering directory `/home/gein/openwrt/trunk/package/libtool'
WARNING: skipping libltdl -- package not selected
make[2]: Leaving directory `/home/gein/openwrt/trunk/package/libtool'
make[2]: Entering directory `/home/gein/openwrt/trunk/feeds/packages/libs/confuse'
make[2]: Leaving directory `/home/gein/openwrt/trunk/feeds/packages/libs/confuse'
make[2]: Entering directory `/home/gein/telldus/openwrt'
cd /home/gein/openwrt/trunk/build_dir/target-arm_v5te_uClibc-0.9.30.1_eabi/telldus-core-2.0.3 && AR="/home/gein/openwrt/trunk/staging_dir/toolchain-arm_v5te_gcc-4.3.3+cs_uClibc-0.9.30.1_eabi/usr/bin/arm-openwrt-linux-uclibcgnueabi-ar" AS="/home/gein/openwrt/trunk/staging_dir/toolchain-arm_v5te_gcc-4.3.3+cs_uClibc-0.9.30.1_eabi/usr/bin/arm-openwrt-linux-uclibcgnueabi-gcc -c -Os -pipe -march=armv5te -mtune=marvell-f -funit-at-a-time -fhonour-copts -msoft-float" LD="/home/gein/openwrt/trunk/staging_dir/toolchain-arm_v5te_gcc-4.3.3+cs_uClibc-0.9.30.1_eabi/usr/bin/arm-openwrt-linux-uclibcgnueabi-ld" NM="/home/gein/openwrt/trunk/staging_dir/toolchain-arm_v5te_gcc-4.3.3+cs_uClibc-0.9.30.1_eabi/usr/bin/arm-openwrt-linux-uclibcgnueabi-nm" CC="/home/gein/openwrt/trunk/staging_dir/toolchain-arm_v5te_gcc-4.3.3+cs_uClibc-0.9.30.1_eabi/usr/bin/arm-openwrt-linux-uclibcgnueabi-gcc" GCC="/home/gein/openwrt/trunk/staging_dir/toolchain-arm_v5te_gcc-4.3.3+cs_uClibc-0.9.30.1_eabi/usr/bin/arm-openwrt-linux-uclibcgnueabi-gcc" CXX="/home/gein/openwrt/trunk/staging_dir/toolchain-arm_v5te_gcc-4.3.3+cs_uClibc-0.9.30.1_eabi/usr/bin/arm-openwrt-linux-uclibcgnueabi-g++" RANLIB="/home/gein/openwrt/trunk/staging_dir/toolchain-arm_v5te_gcc-4.3.3+cs_uClibc-0.9.30.1_eabi/usr/bin/arm-openwrt-linux-uclibcgnueabi-ranlib" STRIP="/home/gein/openwrt/trunk/staging_dir/toolchain-arm_v5te_gcc-4.3.3+cs_uClibc-0.9.30.1_eabi/usr/bin/arm-openwrt-linux-uclibcgnueabi-strip" OBJCOPY="/home/gein/openwrt/trunk/staging_dir/toolchain-arm_v5te_gcc-4.3.3+cs_uClibc-0.9.30.1_eabi/usr/bin/arm-openwrt-linux-uclibcgnueabi-objcopy" OBJDUMP="/home/gein/openwrt/trunk/staging_dir/toolchain-arm_v5te_gcc-4.3.3+cs_uClibc-0.9.30.1_eabi/usr/bin/arm-openwrt-linux-uclibcgnueabi-objdump" TARGET_CPPFLAGS="-I/home/gein/openwrt/trunk/staging_dir/target-arm_v5te_uClibc-0.9.30.1_eabi/usr/include -I/home/gein/openwrt/trunk/staging_dir/target-arm_v5te_uClibc-0.9.30.1_eabi/include -I/home/gein/openwrt/trunk/staging_dir/toolchain-arm_v5te_gcc-4.3.3+cs_uClibc-0.9.30.1_eabi/usr/include -I/home/gein/openwrt/trunk/staging_dir/toolchain-arm_v5te_gcc-4.3.3+cs_uClibc-0.9.30.1_eabi/include" TARGET_CFLAGS="-Os -pipe -march=armv5te -mtune=marvell-f -funit-at-a-time -fhonour-copts -msoft-float" TARGET_LDFLAGS="-L/home/gein/openwrt/trunk/staging_dir/target-arm_v5te_uClibc-0.9.30.1_eabi/usr/lib -L/home/gein/openwrt/trunk/staging_dir/target-arm_v5te_uClibc-0.9.30.1_eabi/lib -L/home/gein/openwrt/trunk/staging_dir/toolchain-arm_v5te_gcc-4.3.3+cs_uClibc-0.9.30.1_eabi/usr/lib -L/home/gein/openwrt/trunk/staging_dir/toolchain-arm_v5te_gcc-4.3.3+cs_uClibc-0.9.30.1_eabi/lib" cmake -DBUILD_RFCMD=0 -DCMAKE_INSTALL_PREFIX=/usr -DBUILD_LIBTELLDUS-CORE=1 -DBUILD_TDTOOL=1 -DSUPPORT_TELLSTICK_DUO=0 -DSUPPORT_USB=0 -DGENERATE_MAN=0 -DUSE_QT_SETTINGS_BACKEND=0
CMake Error at /usr/share/cmake-2.6/Modules/CMakeDetermineCCompiler.cmake:31 (MESSAGE):
  Could not find compiler set in environment variable CC:

  
  /home/gein/openwrt/trunk/staging_dir/toolchain-arm_v5te_gcc-4.3.3+cs_uClibc-0.9.30.1_eabi/usr/bin/arm-openwrt-linux-uclibcgnueabi-gcc.
Call Stack (most recent call first):
  CMakeLists.txt:1 (PROJECT)


CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly.
Missing variable is:
CMAKE_C_COMPILER_ENV_VAR
CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly.
Missing variable is:
CMAKE_C_COMPILER
CMake Error: Could not find cmake module file:/home/gein/openwrt/trunk/build_dir/target-arm_v5te_uClibc-0.9.30.1_eabi/telldus-core-2.0.3/CMakeFiles/CMakeCCompiler.cmake
CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly.
Missing variable is:
CMAKE_CXX_COMPILER_ENV_VAR
CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly.
Missing variable is:
CMAKE_CXX_COMPILER
CMake Error: Could not find cmake module file:/home/gein/openwrt/trunk/build_dir/target-arm_v5te_uClibc-0.9.30.1_eabi/telldus-core-2.0.3/CMakeFiles/CMakeCXXCompiler.cmake
CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
-- Configuring done
make[2]: *** [/home/gein/openwrt/trunk/build_dir/target-arm_v5te_uClibc-0.9.30.1_eabi/telldus-core-2.0.3/.configured_] Error 1
make[2]: Leaving directory `/home/gein/telldus/openwrt'
make[1]: *** [package/Tellstick/compile] Error 2
make[1]: Leaving directory `/home/gein/openwrt/trunk'
make: *** [package/Tellstick-compile] Error 2
Något med CMake som inte är korrekt uppsatt?
micke.prag
Site Admin
Posts: 2243
Joined: Fri Mar 17, 2023 9:45 am
Location: Lund
Contact:

Re: Openwrt kompilering rfcmd

Post by micke.prag »

Den klagar på att den inte hittar kompilatorn. Detta sätter vi "hårdkodat" i Build/Configure. Det jag funderar på är om du bygger det på "rätt sätt" i OpenWRT?

Ser att du kompilerar:

Code: Select all

# make package/Tellstick-compile V=99
Paketet heter telldus-core så du bör köra:

Code: Select all

# make package/telldus-core-compile V=99
Filerna i paketet ska läggas i "package"-mappen. Så Makefilen ligger i package/telldus-core/Makefile
Micke Prag
Software
Telldus Technologies
gein
Posts: 437
Joined: Fri Mar 17, 2023 9:45 am

Re: Openwrt kompilering rfcmd

Post by gein »

Det där hade nog bara att göra med ett gammalt katalognamn. Men jag döpte om Tellstick till telldus-core och körde enligt din senaste instruktion. Får dock samma fel som tidigre.
CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly.
Missing variable is:
CMAKE_C_COMPILER_ENV_VAR
CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly.
Missing variable is:
CMAKE_C_COMPILER
CMake Error: Could not find cmake module file:/home/gein/openwrt/trunk/build_dir/target-arm_v5te_uClibc-0.9.30.1_eabi/telldus-core-2.0.3/CMakeFiles/CMakeCCompiler.cmake
CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly.
Missing variable is:
CMAKE_CXX_COMPILER_ENV_VAR
CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly.
Missing variable is:
CMAKE_CXX_COMPILER
CMake Error: Could not find cmake module file:/home/gein/openwrt/trunk/build_dir/target-arm_v5te_uClibc-0.9.30.1_eabi/telldus-core-2.0.3/CMakeFiles/CMakeCXXCompiler.cmake
CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
Det ser ut som att det saknas en drös miljövariabler satta?
micke.prag
Site Admin
Posts: 2243
Joined: Fri Mar 17, 2023 9:45 am
Location: Lund
Contact:

Re: Openwrt kompilering rfcmd

Post by micke.prag »

I ditt förra inlägg ser jag:

Code: Select all

make[2]: Leaving directory `/home/gein/openwrt/trunk/feeds/packages/libs/confuse'
make[2]: Entering directory `/home/gein/telldus/openwrt'
Varför hoppar den till /home/gein/telldus/openwrt och inte till /home/gein/openwrt/trunk/packages/telldus-core?
Micke Prag
Software
Telldus Technologies
gein
Posts: 437
Joined: Fri Mar 17, 2023 9:45 am

Re: Openwrt kompilering rfcmd

Post by gein »

Det berodde på att jag hade flummat lite med symboliska länkar hit och dit. Men det har jag fixat nu. Samtidigt så insåg jag också att din Makefile faktiskt drar ner och patchar källkoden automagiskt. Det trodde jag att jag skulle göra manuellt. Så jag rensade upp telldus-core så att den bara innehåller Makefile och patches och sedan provade jag igen.

Samma fel, men man ser att den iaf hämtar hem och patchar källkoden:

Code: Select all

# make package/telldus-core-compile V=99
Collecting package info: done
make[1]: Entering directory `/home/gein/openwrt/trunk'
make[2]: Entering directory `/home/gein/openwrt/trunk/package/libtool'
make[2]: Leaving directory `/home/gein/openwrt/trunk/package/libtool'
make[2]: Entering directory `/home/gein/openwrt/trunk/package/libtool'
WARNING: skipping libltdl -- package not selected
make[2]: Leaving directory `/home/gein/openwrt/trunk/package/libtool'
make[2]: Entering directory `/home/gein/openwrt/trunk/feeds/packages/libs/confuse'
make[2]: Leaving directory `/home/gein/openwrt/trunk/feeds/packages/libs/confuse'
make[2]: Entering directory `/home/gein/openwrt/trunk/package/telldus-core'
. /home/gein/openwrt/trunk/include/shell.sh; . /home/gein/openwrt/trunk/include/shell.sh; gzip -dc /home/gein/openwrt/trunk/dl/telldus-core-2.0.3.tar.gz | /bin/tar -C /home/gein/openwrt/trunk/build_dir/target-arm_v5te_uClibc-0.9.30.1_eabi/telldus-core-2.0.3/.. -xf - 

Applying ./patches/010-openwrt-dirs.patch using plaintext: 
patching file driver/libtelldus-core/CMakeLists.txt
touch /home/gein/openwrt/trunk/build_dir/target-arm_v5te_uClibc-0.9.30.1_eabi/telldus-core-2.0.3/.prepared_e246bb576b9d8d3d3590742afc9920f0
cd /home/gein/openwrt/trunk/build_dir/target-arm_v5te_uClibc-0.9.30.1_eabi/telldus-core-2.0.3 && AR="/home/gein/openwrt/trunk/staging_dir/toolchain-arm_v5te_gcc-4.3.3+cs_uClibc-0.9.30.1_eabi/usr/bin/arm-openwrt-linux-uclibcgnueabi-ar" AS="/home/gein/openwrt/trunk/staging_dir/toolchain-arm_v5te_gcc-4.3.3+cs_uClibc-0.9.30.1_eabi/usr/bin/arm-openwrt-linux-uclibcgnueabi-gcc -c -Os -pipe -march=armv5te -mtune=marvell-f -funit-at-a-time -fhonour-copts -msoft-float" LD="/home/gein/openwrt/trunk/staging_dir/toolchain-arm_v5te_gcc-4.3.3+cs_uClibc-0.9.30.1_eabi/usr/bin/arm-openwrt-linux-uclibcgnueabi-ld" NM="/home/gein/openwrt/trunk/staging_dir/toolchain-arm_v5te_gcc-4.3.3+cs_uClibc-0.9.30.1_eabi/usr/bin/arm-openwrt-linux-uclibcgnueabi-nm" CC="/home/gein/openwrt/trunk/staging_dir/toolchain-arm_v5te_gcc-4.3.3+cs_uClibc-0.9.30.1_eabi/usr/bin/arm-openwrt-linux-uclibcgnueabi-gcc" GCC="/home/gein/openwrt/trunk/staging_dir/toolchain-arm_v5te_gcc-4.3.3+cs_uClibc-0.9.30.1_eabi/usr/bin/arm-openwrt-linux-uclibcgnueabi-gcc" CXX="/home/gein/openwrt/trunk/staging_dir/toolchain-arm_v5te_gcc-4.3.3+cs_uClibc-0.9.30.1_eabi/usr/bin/arm-openwrt-linux-uclibcgnueabi-g++" RANLIB="/home/gein/openwrt/trunk/staging_dir/toolchain-arm_v5te_gcc-4.3.3+cs_uClibc-0.9.30.1_eabi/usr/bin/arm-openwrt-linux-uclibcgnueabi-ranlib" STRIP="/home/gein/openwrt/trunk/staging_dir/toolchain-arm_v5te_gcc-4.3.3+cs_uClibc-0.9.30.1_eabi/usr/bin/arm-openwrt-linux-uclibcgnueabi-strip" OBJCOPY="/home/gein/openwrt/trunk/staging_dir/toolchain-arm_v5te_gcc-4.3.3+cs_uClibc-0.9.30.1_eabi/usr/bin/arm-openwrt-linux-uclibcgnueabi-objcopy" OBJDUMP="/home/gein/openwrt/trunk/staging_dir/toolchain-arm_v5te_gcc-4.3.3+cs_uClibc-0.9.30.1_eabi/usr/bin/arm-openwrt-linux-uclibcgnueabi-objdump" TARGET_CPPFLAGS="-I/home/gein/openwrt/trunk/staging_dir/target-arm_v5te_uClibc-0.9.30.1_eabi/usr/include -I/home/gein/openwrt/trunk/staging_dir/target-arm_v5te_uClibc-0.9.30.1_eabi/include -I/home/gein/openwrt/trunk/staging_dir/toolchain-arm_v5te_gcc-4.3.3+cs_uClibc-0.9.30.1_eabi/usr/include -I/home/gein/openwrt/trunk/staging_dir/toolchain-arm_v5te_gcc-4.3.3+cs_uClibc-0.9.30.1_eabi/include" TARGET_CFLAGS="-Os -pipe -march=armv5te -mtune=marvell-f -funit-at-a-time -fhonour-copts -msoft-float" TARGET_LDFLAGS="-L/home/gein/openwrt/trunk/staging_dir/target-arm_v5te_uClibc-0.9.30.1_eabi/usr/lib -L/home/gein/openwrt/trunk/staging_dir/target-arm_v5te_uClibc-0.9.30.1_eabi/lib -L/home/gein/openwrt/trunk/staging_dir/toolchain-arm_v5te_gcc-4.3.3+cs_uClibc-0.9.30.1_eabi/usr/lib -L/home/gein/openwrt/trunk/staging_dir/toolchain-arm_v5te_gcc-4.3.3+cs_uClibc-0.9.30.1_eabi/lib" cmake -DBUILD_RFCMD=0 -DCMAKE_INSTALL_PREFIX=/usr -DBUILD_LIBTELLDUS-CORE=1 -DBUILD_TDTOOL=1 -DSUPPORT_TELLSTICK_DUO=0 -DSUPPORT_USB=0 -DGENERATE_MAN=0 -DUSE_QT_SETTINGS_BACKEND=0
CMake Error at /usr/share/cmake-2.6/Modules/CMakeDetermineCCompiler.cmake:31 (MESSAGE):
  Could not find compiler set in environment variable CC:

  
  /home/gein/openwrt/trunk/staging_dir/toolchain-arm_v5te_gcc-4.3.3+cs_uClibc-0.9.30.1_eabi/usr/bin/arm-openwrt-linux-uclibcgnueabi-gcc.
Call Stack (most recent call first):
  CMakeLists.txt:1 (PROJECT)


CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly.
Missing variable is:
CMAKE_C_COMPILER_ENV_VAR
CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly.
Missing variable is:
CMAKE_C_COMPILER
CMake Error: Could not find cmake module file:/home/gein/openwrt/trunk/build_dir/target-arm_v5te_uClibc-0.9.30.1_eabi/telldus-core-2.0.3/CMakeFiles/CMakeCCompiler.cmake
CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly.
Missing variable is:
CMAKE_CXX_COMPILER_ENV_VAR
CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly.
Missing variable is:
CMAKE_CXX_COMPILER
CMake Error: Could not find cmake module file:/home/gein/openwrt/trunk/build_dir/target-arm_v5te_uClibc-0.9.30.1_eabi/telldus-core-2.0.3/CMakeFiles/CMakeCXXCompiler.cmake
CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
-- Configuring done
make[2]: *** [/home/gein/openwrt/trunk/build_dir/target-arm_v5te_uClibc-0.9.30.1_eabi/telldus-core-2.0.3/.configured_] Error 1
make[2]: Leaving directory `/home/gein/openwrt/trunk/package/telldus-core'
make[1]: *** [package/telldus-core/compile] Error 2
make[1]: Leaving directory `/home/gein/openwrt/trunk'
make: *** [package/telldus-core-compile] Error 2
micke.prag
Site Admin
Posts: 2243
Joined: Fri Mar 17, 2023 9:45 am
Location: Lund
Contact:

Re: Openwrt kompilering rfcmd

Post by micke.prag »

CC-variabeln sätt ju, det ser man.

Code: Select all

CC="/home/gein/openwrt/trunk/staging_dir/toolchain-arm_v5te_gcc-4.3.3+cs_uClibc-0.9.30.1_eabi/usr/bin/arm-openwrt-linux-uclibcgnueabi-gcc"
Ändå hittas den inte. Testa att ändra alla variabler innan cmake:

Code: Select all

define Build/Configure
	cd $(PKG_BUILD_DIR) && \
	export AR="$(TOOLCHAIN_DIR)/usr/bin/$(TARGET_CROSS)ar" && \
	export AS="$(TOOLCHAIN_DIR)/usr/bin/$(TARGET_CC) -c $(TARGET_CFLAGS)" && \
	export LD="$(TOOLCHAIN_DIR)/usr/bin/$(TARGET_CROSS)ld" && \
	export NM="$(TOOLCHAIN_DIR)/usr/bin/$(TARGET_CROSS)nm" && \
	export CC="$(TOOLCHAIN_DIR)/usr/bin/$(TARGET_CC)" && \
	export GCC="$(TOOLCHAIN_DIR)/usr/bin/$(TARGET_CC)" && \
	export CXX="$(TOOLCHAIN_DIR)/usr/bin/$(TARGET_CROSS)g++" && \
	export RANLIB="$(TOOLCHAIN_DIR)/usr/bin/$(TARGET_CROSS)ranlib" && \
	export STRIP="$(TOOLCHAIN_DIR)/usr/bin/$(TARGET_CROSS)strip" && \
	export OBJCOPY="$(TOOLCHAIN_DIR)/usr/bin/$(TARGET_CROSS)objcopy" && \
	export OBJDUMP="$(TOOLCHAIN_DIR)/usr/bin/$(TARGET_CROSS)objdump" && \
	export TARGET_CPPFLAGS="$(TARGET_CPPFLAGS)" && \
	export TARGET_CFLAGS="$(TARGET_CFLAGS)" && \
	export TARGET_LDFLAGS="$(TARGET_LDFLAGS)" && \
	cmake \
		-DBUILD_RFCMD=0 \
		-DCMAKE_INSTALL_PREFIX=/usr \
		-DBUILD_LIBTELLDUS-CORE=1 \
		-DBUILD_TDTOOL=1 \
		-DSUPPORT_TELLSTICK_DUO=0 \
		-DSUPPORT_USB=0 \
		-DGENERATE_MAN=0 \
		-DUSE_QT_SETTINGS_BACKEND=0

endef
Funkar inte det heller vet jag faktiskt inte vad det kan vara.
Micke Prag
Software
Telldus Technologies
gein
Posts: 437
Joined: Fri Mar 17, 2023 9:45 am

Re: Openwrt kompilering rfcmd

Post by gein »

Ja, CC är definierad till

Code: Select all

/home/gein/openwrt/trunk/staging_dir/toolchain-arm_v5te_gcc-4.3.3+cs_uClibc-0.9.30.1_eabi/usr/bin/arm-openwrt-linux-uclibcgnueabi-gcc
Men den existerar inte märker jag.

Katalogen

Code: Select all

home/gein/openwrt/trunk/staging_dir/toolchain-arm_v5te_gcc-4.3.3+cs_uClibc-0.9.30.1_eabi/usr/
finns, men innehåller bara lib och include. Ingen bin-katalog :?:

edit/ Aha! gcc ligger under bin inte usr/bin. Jag redigerar Makefile och provar igen.

edit2/ Nu gick det bättre! :D
micke.prag
Site Admin
Posts: 2243
Joined: Fri Mar 17, 2023 9:45 am
Location: Lund
Contact:

Re: Openwrt kompilering rfcmd

Post by micke.prag »

Nästa fråga då, hur tar man bäst reda på rätt sökväg till kompilatorn?
Micke Prag
Software
Telldus Technologies
gein
Posts: 437
Joined: Fri Mar 17, 2023 9:45 am

Re: Openwrt kompilering rfcmd

Post by gein »

micke.prag wrote:Nästa fråga då, hur tar man bäst reda på rätt sökväg till kompilatorn?
Det är du som är snillet!

I helgen roade jag mig med att packa telldus-core och remotestick för openwrt (i olika paket givetvis). Det behövs nämligen mer jobb även i telldus-core-paketet. Jag vill ju koppla /dev/ttyUSBX till /dev/tellstick på vanligt udev manér. Tydligen är udev inte att rekommendera för inbyggda system (den är bloatad?) så det finns två enklare alternativ, hotplug2 och mdev. Jag är olika erfarenheter av båda efter gårdagen. Båda är negativa än så länge tyvärr. Men när väl det är löst så behöver man (med all sannolikhet) skicka med någon extra fil för att koppla tellsticken till /dev/tellstick, liknande den fil man lägger under /etc/udev/rules.d (typ?) när man kör udev.

För den som verkligen roas av sånt här så kan man läsa mer om mina bekymmer med "device naming" (eller vad man ska kalla det) här: https://forum.openwrt.org/viewtopic.php?id=27165
micke.prag
Site Admin
Posts: 2243
Joined: Fri Mar 17, 2023 9:45 am
Location: Lund
Contact:

Re: Openwrt kompilering rfcmd

Post by micke.prag »

Ang. problemen med udev/hotplug2/mdev så kan det passa sig att berätta vad som händer i 2.1.
Vi har (hittils) valt att inte implementera mot ftdi_sio i kärnan utan istället mot libftdi. Då behöver inte devicen i /dev heta på något speciellt sätt då programvaran själv kan hitta rätt TellStick
Micke Prag
Software
Telldus Technologies
micke.prag
Site Admin
Posts: 2243
Joined: Fri Mar 17, 2023 9:45 am
Location: Lund
Contact:

Re: Openwrt kompilering rfcmd

Post by micke.prag »

Hittade ett lättare sätt att bygga som fungerade för mig. Du får hemskt gärna testa och se om det är "universiellt":

Code: Select all

define Build/Configure
	cd $(PKG_BUILD_DIR) && \
	$(TARGET_CONFIGURE_OPTS) \
	cmake \
		-DBUILD_RFCMD=0 \
		-DCMAKE_INSTALL_PREFIX=/usr \
		-DBUILD_LIBTELLDUS-CORE=1 \
		-DBUILD_TDTOOL=1 \
		-DSUPPORT_TELLSTICK_DUO=0 \
		-DSUPPORT_USB=0 \
		-DGENERATE_MAN=0 \
		-DUSE_QT_SETTINGS_BACKEND=0
endef
Micke Prag
Software
Telldus Technologies
Post Reply