OpenWrt Forum Archive

Topic: Trying to compile package

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

Hello outthere,

I'm trying to a compile the latest version of Tor into a package.... I don't seem to get the hang of it.
Is there someone who will help me compile a package?

Thanks in advance

I know Tor is available. But I like to be able to compile my own packages as well.
So if anyone can help me..... that would be great!

(Last edited by m4rc0 on 13 Nov 2006, 16:42)

m4rc0 wrote:

I know Tor is available. But I like to be able to compile my own packages as well.
So if anyone can help me..... that would be great!

Do u already have the OpenWRT SDK installed? And what's the errors are u getting?

I followed the  steps in the Buildroot documentation (/whiterussian/openwrt/docs). If u find something missing there, create the package similar to 'mtd' package inside /whiterussian/openwrt/packages. Finally from the top directory make package/tor-{clean,compile}. I think u will find way. Good luck!!
(Note: I use WRT54GL with RC5)

Yes I have download loaded the SDK (RC5 and RC6)... with RC5 it doesn't even start to compile. With RC6 It starts compiling but exits with an error.
I not sure hoe to make a proper make file en a proper config.in.... Are they neccessary to make?

m4rc0 wrote:

Yes I have download loaded the SDK (RC5 and RC6)... with RC5 it doesn't even start to compile. With RC6 It starts compiling but exits with an error.
I not sure hoe to make a proper make file en a proper config.in.... Are they neccessary to make?

Have u looked at the following how to to build a HelloWorld package on wiki, yet?

http://wiki.openwrt.org/BuildingPackagesHowTo

I have not tried it on RC6, yet, but RC5 definitely works.

Hi pbtran,

Have u tried  compiling kernel modules for OpenWRT - RC5 ? I followed the documentation : http://downloads.openwrt.org/docs/build … ation.html.

I want to compile a "hello" kernel module. I created the package and kept it in the /whiterussian/openwrt/target/linux/package directory. But i got the following errors during make :

make[4]: `/root/wr_linux2.6/whiterussian/openwrt/bin/packages/kmod-bonding_2.4.30-brcm-4_mipsel.ipk' is up to date.
rm -rf /root/wr_linux2.6/whiterussian/openwrt/build_mipsel/linux-2.4-brcm/linux-modules/ipkg/hello
/root/wr_linux2.6/whiterussian/openwrt/scripts/make-ipkg-dir.sh /root/wr_linux2.6/whiterussian/openwrt/build_mipsel/linux-2.4-brcm/linux-modules/ipkg/hello ../control/kmod-hello.control 2.4.30-brcm-4 mipsel
echo "Depends: kernel (2.4.30-brcm-4) " >> /root/wr_linux2.6/whiterussian/openwrt/build_mipsel/linux-2.4-brcm/linux-modules/ipkg/hello/CONTROL/control
mkdir -p /root/wr_linux2.6/whiterussian/openwrt/build_mipsel/linux-2.4-brcm/linux-modules/ipkg/hello/lib/modules/2.4.30
cp  /root/wr_linux2.6/whiterussian/openwrt/build_mipsel/linux-2.4-brcm/modules/lib/modules/2.4.30/kernel/drivers/net/hello/hello.o  /root/wr_linux2.6/whiterussian/openwrt/build_mipsel/linux-2.4-brcm/linux-modules/ipkg/hello/lib/modules/2.4.30
cp: cannot stat `/root/wr_linux2.6/whiterussian/openwrt/build_mipsel/linux-2.4-brcm/modules/lib/modules/2.4.30/kernel/drivers/net/hello/hello.o': No such file or directory
make[4]: *** [/root/wr_linux2.6/whiterussian/openwrt/bin/packages/kmod-hello_2.4.30-brcm-4_mipsel.ipk] Error 1
make[4]: Leaving directory `/root/wr_linux2.6/whiterussian/openwrt/target/linux/linux-2.4'
make[3]: *** [/root/wr_linux2.6/whiterussian/openwrt/build_mipsel/stamp/.linux-compile] Error 2
make[3]: Leaving directory `/root/wr_linux2.6/whiterussian/openwrt/target/linux/linux-2.4'
make[2]: *** [2.4/brcm-compile] Error 2
make[2]: Leaving directory `/root/wr_linux2.6/whiterussian/openwrt/target/linux'
make[1]: *** [linux-compile] Error 2
make[1]: Leaving directory `/root/wr_linux2.6/whiterussian/openwrt/target'
make: *** [target/compile] Error 2
[root@localhost openwrt]#

My Makefile looks like this :

# $Id$

include $(TOPDIR)/rules.mk
include ../../rules.mk

PKG_NAME := kmod-hello
PKG_RELEASE := 1
PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)

include $(TOPDIR)/package/rules.mk

$(eval $(call PKG_template,KMOD_HELLO,kmod-hello,$(LINUX_VERSION)-$(BOARD)-$(PKG_RELEASE),$(ARCH),kernel ($(LINUX_VERSION)-$(BOARD)-$(LINUX_RELEASE))))

$(PKG_BUILD_DIR)/.prepared:
        mkdir -p $(PKG_BUILD_DIR)
        cp -fpR ./src/* $(PKG_BUILD_DIR)/
        touch $@

$(PKG_BUILD_DIR)/.configured:
        touch $@

$(PKG_BUILD_DIR)/.built:
        $(MAKE) -C "$(KERNEL_DIR)" \
                CROSS_COMPILE="$(TARGET_CROSS)" \
                ARCH="$(LINUX_KARCH)" \
                PATH="$(TARGET_PATH)" \
                SUBDIRS="$(PKG_BUILD_DIR)" \
                EXTRA_CFLAGS="-DBCMGPIO" \
                modules
        touch $@

$(IPKG_KMOD_HELLO):
        install -m0755 -d $(IDIR_KMOD_HELLO)/lib/modules/$(LINUX_VERSION)
        install -m0755 -d $(IDIR_KMOD_HELLO)/etc/modules.d
        $(IPKG_BUILD) $(IDIR_KMOD_HELLO) $(PACKAGE_DIR)

Can you please help me to figure out whats going wrong here ?

power wrote:

cp /root/wr_linux2.6/whiterussian/openwrt/build_mipsel/linux-2.4-brcm/modules/lib/modules/2.4.30/kernel/drivers/net/hello/hello.o  /root/wr_linux2.6/whiterussian/openwrt/build_mipsel/linux-2.4-brcm/linux-modules/ipkg/hello/lib/modules/2.4.30
cp: cannot stat `/root/wr_linux2.6/whiterussian/openwrt/build_mipsel/linux-2.4-brcm/modules/lib/modules/2.4.30/kernel/drivers/net/hello/hello.o': No such file or directory

Is there an object file "hello.o" in your package build directory?

Is this your build dir?
/root/wr_linux2.6/whiterussian/openwrt/build_mipsel/linux-2.4-brcm/modules/lib/modules/2.4.30/kernel/drivers/net/hello/directory/

Is this your install dir?
/root/wr_linux2.6/whiterussian/openwrt/build_mipsel/linux-2.4-brcm/linux-modules/ipkg/hello/lib/modules/2.4.30

If not, then u might need to copy and/or create directories (mkdir) it from your build directory to the install directory by adding this line to your Makefile after the "$(MAKE) -C options".

For example:

  
cp -fpR $(PKG_BUILD_DIR)/hello.o $(PKG_INSTALL_DIR)/hello.o 
cp -fpR $(PKG_BUILD_DIR)/hello $(PKG_INSTALL_DIR)/hello

You probably only want the "hello" binary executable in this case.

Good luck!
~Peter

Thanks a lot !!! I compiled the kernel module successfully. I placed the hello.o in the package build directory and it worked .

Congratz! Your welcome and glad to hear :-)


power wrote:

Thanks a lot !!! I compiled the kernel module successfully. I placed the hello.o in the package build directory and it worked .

The discussion might have continued from here.