Hi, I have mini2440. I am using rootfs_qtopia_qt4.img to run the qtopia. I want to customize it as per my application as per below. 1. Remove all sample application. 2. Remove messages in boot up loading. 3. Directly run my own GUI application in init that has develped in Qtopia. Means I want to customize qtopia and file system , build and install in board. how can i customize it, built and create a image ? Thanks
Customize mini2440 qtopia image
I have build the tslib,but i am getting the following error in my host OS Ubuntu 12.04. libtool: compile: arm-none-linux-gnueabi-gcc -DHAVE_CONFIG_H -I. -I.. -I../src -DTS_POINTERCAL=\"/home/tslib/etc/pointercal\" -DTSLIB_INTERNAL -fvisibility=hidden -DGCC_HASCLASSVISIBILITY -march=armv4t -MT input-raw.lo -MD -MP -MF .deps/input-raw.Tpo -c input-raw.c -fPIC -DPIC -o .libs/input-raw.o input-raw.c: In function 'check_fd': input-raw.c:116: error: 'SYN_MAX' undeclared (first use in this function) input-raw.c:116: error: (Each undeclared identifier is reported only once input-raw.c:116: error: for each function it appears in.) input-raw.c:167: error: 'ABS_MT_PRESSURE' undeclared (first use in this function) input-raw.c:178: error: 'ABS_MT_SLOT' undeclared (first use in this function) input-raw.c: In function 'ts_input_read_mt': input-raw.c:494: error: 'ABS_MT_PRESSURE' undeclared (first use in this function) input-raw.c:500: error: 'ABS_MT_TOOL_X' undeclared (first use in this function) input-raw.c:505: error: 'ABS_MT_TOOL_Y' undeclared (first use in this function) input-raw.c:520: error: 'ABS_MT_DISTANCE' undeclared (first use in this function) input-raw.c:557: error: 'ABS_MT_SLOT' undeclared (first use in this function) make[2]: *** [input-raw.lo] Error 1 make[2]: Leaving directory `/usr/local/tslib/plugins' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/usr/local/tslib' make: *** [all] Error 2
input-raw.c:116: error: 'SYN_MAX' undeclared (first use in this function) Usually tells you that some library is missing. Are you following the linked tutorial and what stage are you at? Possibly worth checking that you are compiling with the correct toolchain. arm-linux -v (on the command line)
I am using Ubuntu 32-bit 12.04 LTS. I have already build Qtopia successfully in my host system. I am getting the above error during the make of tslib. which the right command to check correct toolchain arm-linux -v or arm-linux-gcc -v? output of command arm-linux -v: arm-linux: command not found Output of command arm-linux-gcc -v: Using built-in specs. Target: arm-none-linux-gnueabi Configured with: /opt/FriendlyARM/mini2440/build-toolschain/working/src/gcc-4.4.3/configure --build=i386-build_redhat-linux-gnu --host=i386-build_redhat-linux-gnu --target=arm-none-linux-gnueabi --prefix=/opt/FriendlyARM/toolschain/4.4.3 --with-sysroot=/opt/FriendlyARM/toolschain/4.4.3/arm-none-linux-gnueabi//sys-roo t --enable-languages=c,c++ --disable-multilib --with-arch=armv4t --with-cpu=arm920t --with-tune=arm920t --with-float=soft --with-pkgversion=ctng-1.6.1 --disable-sjlj-exceptions --enable-__cxa_atexit --with-gmp=/opt/FriendlyARM/toolschain/4.4.3 --with-mpfr=/opt/FriendlyARM/toolschain/4.4.3 --with-ppl=/opt/FriendlyARM/toolschain/4.4.3 --with-cloog=/opt/FriendlyARM/toolschain/4.4.3 --with-mpc=/opt/FriendlyARM/toolschain/4.4.3 --with-local-prefix=/opt/FriendlyARM/toolschain/4.4.3/arm-none-linux-gnueabi//sy s-root --disable-nls --enable-threads=posix --enable-symvers=gnu --enable-c99 --enable-long-long --enable-target-optspace Thread model: posix gcc version 4.4.3 (ctng-1.6.1)
http://www.friendlyarm.net/forum/topic/2733 search input-raw
Yes, I have also found the input-raw.c file in tslib/plugins. In that file, All above macro that has given error as a undeclared is also used in check_fd function. static int check_fd(struct tslib_input *i) { struct tsdev *ts = i->module.dev; int version; long evbit[BITS_TO_LONGS(EV_CNT)]; long absbit[BITS_TO_LONGS(ABS_CNT)]; long keybit[BITS_TO_LONGS(KEY_CNT)]; long synbit[BITS_TO_LONGS(SYN_CNT)]; if (ioctl(ts->fd, EVIOCGVERSION, &version) < 0) { fprintf(stderr, "tslib: Selected device is not a Linux input event device\n"); return -1; } /* support version EV_VERSION 0x010000 and 0x010001 * this check causes more troubles than it solves here */ if (version < EV_VERSION) fprintf(stderr, "tslib: Warning: Selected device uses a different version of the event protocol than tslib was compiled for\n"); if ( (ioctl(ts->fd, EVIOCGBIT(0, sizeof(evbit)), evbit) < 0) || !(evbit[BIT_WORD(EV_ABS)] & BIT_MASK(EV_ABS)) || !(evbit[BIT_WORD(EV_KEY)] & BIT_MASK(EV_KEY)) ) { fprintf(stderr, "tslib: Selected device is not a touchscreen (must support ABS and KEY event types)\n"); return -1; } if ((ioctl(ts->fd, EVIOCGBIT(EV_ABS, sizeof(absbit)), absbit)) < 0 || !(absbit[BIT_WORD(ABS_X)] & BIT_MASK(ABS_X)) || !(absbit[BIT_WORD(ABS_Y)] & BIT_MASK(ABS_Y))) { if (!(absbit[BIT_WORD(ABS_MT_POSITION_X)] & BIT_MASK(ABS_MT_POSITION_X)) || !(absbit[BIT_WORD(ABS_MT_POSITION_Y)] & BIT_MASK(ABS_MT_POSITION_Y))) { fprintf(stderr, "tslib: Selected device is not a touchscreen (must support ABS_X/Y or ABS_MT_POSITION_X/Y events)\n"); return -1; } } /* Since some touchscreens (eg. infrared) physically can't measure pressure, * the input system doesn't report it on those. Tslib relies on pressure, thus * we set it to constant 255. It's still controlled by BTN_TOUCH/BTN_LEFT - * when not touched, the pressure is forced to 0. */ if (!(absbit[BIT_WORD(ABS_PRESSURE)] & BIT_MASK(ABS_PRESSURE))) i->no_pressure = 1; if ((ioctl(ts->fd, EVIOCGBIT(EV_KEY, sizeof(keybit)), keybit) < 0) || !(keybit[BIT_WORD(BTN_TOUCH)] & BIT_MASK(BTN_TOUCH) || keybit[BIT_WORD(BTN_LEFT)] & BIT_MASK(BTN_LEFT))) { fprintf(stderr, "tslib: Selected device is not a touchscreen (must support BTN_TOUCH or BTN_LEFT events)\n"); return -1; } /* Remember whether we have a multitouch device. We need to know for ABS_X, * ABS_Y and ABS_PRESSURE data. */ if ((absbit[BIT_WORD(ABS_MT_POSITION_X)] & BIT_MASK(ABS_MT_POSITION_X)) && (absbit[BIT_WORD(ABS_MT_POSITION_Y)] & BIT_MASK(ABS_MT_POSITION_Y))) i->mt = 1; /* remember if we have a device that doesn't support pressure. We have to * set pressure ourselves in this case. */ if (i->mt && !(absbit[BIT_WORD(ABS_MT_PRESSURE)] & BIT_MASK(ABS_MT_PRESSURE))) i->no_pressure = 1; if (evbit[BIT_WORD(EV_SYN)] & BIT_MASK(EV_SYN)) i->using_syn = 1; if ((ioctl(ts->fd, EVIOCGBIT(EV_SYN, sizeof(synbit)), synbit)) == -1) fprintf(stderr, "tslib: ioctl error\n"); /* remember whether we have a multitouch type A device */ if (i->mt && synbit[BIT_WORD(SYN_MT_REPORT)] & BIT_MASK(SYN_MT_REPORT) && !(absbit[BIT_WORD(ABS_MT_SLOT)] & BIT_MASK(ABS_MT_SLOT))) i->type_a = 1; if (i->grab_events == GRAB_EVENTS_WANTED) { if (ioctl(ts->fd, EVIOCGRAB, (void *)1)) { fprintf(stderr, "tslib: Unable to grab selected input device\n"); return -1; } i->grab_events = GRAB_EVENTS_ACTIVE; } return ts->fd; }
Does input-raw.h include check_fd(); Is there a #include "input-raw.h" in input-raw.c? Try https://github.com/kergoth/tslib and see if he/she had an associated forum.
there is not included #include-raw.h in input-raw.c file. I have also checked #include "input-raw.h" file in https://github.com/kergoth/tslib, there is no input-raw.h file in this. only input-raw.c file available. I am using step to download and compile as per below for tslib. cd /usr/local git clone http://github.com/kergoth/tslib.git export PATH=/opt/FriendlyARM/toolschain/4.4.3/bin:$PATH export CROSS_COMPILE=arm-none-linux-gnueabi- export CC=${CROSS_COMPILE}gcc export CFLAGS=-march=armv4t export CXX=${CROSS_COMPILE}"g++" export AR=${CROSS_COMPILE}"ar" export AS=${CROSS_COMPILE}"as" export RANLIB=${CROSS_COMPILE}"ranlib" export LD=${CROSS_COMPILE}"ld" export STRIP=${CROSS_COMPILE}"strip" export ac_cv_func_malloc_0_nonnull=yes cd /usr/local/tslib ./autogen-clean.sh ./autogen.sh ./configure --host=arm-linux --prefix=/home/tslib --enable-shared=yes --enable-static=yes make make install
Those macros ie SYN_MAX have to be defined somewhere. Another #include file in input-raw.c or in input-raw.c itself. Did you last post cross-compile successfully?
It appeared that you had tried to cross-compile new source at kergoth. So, you still get the same error. > List the tools you placed on your host to cross-compile tslib. Try to answer my question. If you don't know I will try to find the list.