About the kernel modules. Where should they be located on the target? Should I have modprobe or insmod it is enough?
On Thu, May 23, 2013 at 2:19 PM, Ionut D. <[email protected]> wrote: > Sorry for my late response. At the end after different some adds (defines > in libc) I managed to compile them for ICS with NDK r7c. I was a problem of > environment. > > > On Tue, May 21, 2013 at 9:26 PM, Pierre-Luc St-Charles < > [email protected]> wrote: > >> Well, I cannot get my hands on a R7 NDK this very moment, but I'm >> surprised there are no grep hits in the ./platforms/android-XX/arch-arm >> directory; can you verify that the NDK you have does include an ARM >> architecture sysroot? That's the the one you should be compiling with, and >> I believe you'll find the asm/unistd.h header there (as there is no 32/64 >> bit difference on Android+ARM yet). >> >> >> On Tue, May 21, 2013 at 11:29 AM, Ionut D. <[email protected]> wrote: >> >>> The problem is that I am trying to build it on ICS with NDK r7 and I >>> tried to build it in the both ways with the ndk and also by creating >>> Android.mk files and it looks like is not working. I searched with grep >>> firstly through NDK and second through bionic and these are the results: >>> >>> NDK: >>> #grep -r __NR_splice . >>> ./platforms/android-9/arch-x86/usr/include/asm/unistd_32.h:#define >>> __NR_splice 313 >>> ./platforms/android-14/arch-x86/usr/include/asm/unistd_32.h:#define >>> __NR_splice 313 >>> >>> bionic: >>> grep -r __NR_splice bionic >>> bionic/libc/kernel/arch-sh/asm/unistd_32.h:#define __NR_splice 313 >>> bionic/libc/kernel/arch-sh/asm/unistd_64.h:#define __NR_splice 341 >>> bionic/libc/kernel/arch-x86/asm/unistd_32.h:#define __NR_splice 313 >>> >>> Looking through results I see that '__NR_splice' it not in unistd.h and >>> I know this is important. >>> >>> Ionut >>> >>> >>> On Tue, May 21, 2013 at 5:15 PM, Pierre-Luc St-Charles < >>> [email protected]> wrote: >>> >>>> The first error refers to __NR_splice, which should be declared once >>>> asm/unistd.h is included; in this case, it is included right above the >>>> problematic line (src/common/compat/fcntl.h @ L35). Could you verify that >>>> __NR_splice is defined somewhere in that file? If not, it might be a little >>>> more problematic. >>>> >>>> As for the second error, I believe it is also caused by a missing >>>> symbol that should be included in asm/signal.h, which is in turn usually >>>> included via signal.h itself. >>>> >>>> Compiling with the NDK (v8, platform 14) is successful here, and I can >>>> find all these missing symbols in the default system includes there. Are >>>> you sure you specified the target sysroot when compiling? >>>> >>>> -PL >>>> >>>> >>>> On Tue, May 21, 2013 at 6:26 AM, Ionut D. <[email protected]> wrote: >>>> >>>>> I tried to compile lttng-tools and at compile time exits with the >>>>> bellow error. I looked in the sources and it looks like for arm this is >>>>> not >>>>> implemented. Do you have any idea about how could this be fixed? >>>>> >>>>> >>>>> In file included from >>>>> external/lttng-tools/src/common/compat/compat-fcntl.c:19: >>>>> external/lttng-tools/src/common/compat/../../../src/common/compat/fcntl.h: >>>>> In function 'splice': >>>>> external/lttng-tools/src/common/compat/../../../src/common/compat/fcntl.h:44: >>>>> error: '__NR_splice' undeclared (first use in this function) >>>>> external/lttng-tools/src/common/compat/../../../src/common/compat/fcntl.h:44: >>>>> error: (Each undeclared identifier is reported only once >>>>> external/lttng-tools/src/common/compat/../../../src/common/compat/fcntl.h:44: >>>>> error: for each function it appears in.) >>>>> In file included from >>>>> external/lttng-tools/src/common/compat/compat-fcntl.c:19: >>>>> external/lttng-tools/src/common/compat/../../../src/common/compat/fcntl.h:48:1: >>>>> warning: "POSIX_FADV_DONTNEED" redefined >>>>> In file included from >>>>> external/lttng-tools/src/common/compat/../../../src/common/compat/fcntl.h:47, >>>>> from >>>>> external/lttng-tools/src/common/compat/compat-fcntl.c:19: >>>>> bionic/libc/kernel/common/linux/fadvise.h:24:1: warning: this is the >>>>> location of the previous definition >>>>> In file included from bionic/libc/include/sys/select.h:34, >>>>> from bionic/libc/include/unistd.h:34, >>>>> from >>>>> external/lttng-tools/src/common/compat/compat-fcntl.c:20: >>>>> external/lttng-tools/src/common/compat/signal.h: At top level: >>>>> external/lttng-tools/src/common/compat/signal.h:27: error: expected >>>>> ';', ',' or ')' before '*' token >>>>> external/lttng-tools/src/common/compat/signal.h:28: error: expected >>>>> ';', ',' or ')' before '*' token >>>>> external/lttng-tools/src/common/compat/signal.h:29: error: expected >>>>> ';', ',' or ')' before '*' token >>>>> In file included from bionic/libc/include/unistd.h:34, >>>>> from >>>>> external/lttng-tools/src/common/compat/compat-fcntl.c:20: >>>>> bionic/libc/include/sys/select.h:42: error: expected ';', ',' or ')' >>>>> before '*' token >>>>> >>>>> >>>>> >>>>> On Sat, May 18, 2013 at 10:21 AM, Ionut D. <[email protected]>wrote: >>>>> >>>>>> Great informations! I will post back the results. >>>>>> >>>>>> >>>>>> On Fri, May 17, 2013 at 4:47 PM, Pierre-Luc St-Charles < >>>>>> [email protected]> wrote: >>>>>> >>>>>>> Alright, small update for all following a quick (non-mailing-list) >>>>>>> exchange: >>>>>>> >>>>>>> We did successfully complete a kernel-tracing port of LTTng for >>>>>>> Android (somewhat old news), but we are still working on bringing our >>>>>>> patches back up to date with the current version of the different >>>>>>> projects >>>>>>> (soon-ish still applies here, we're talking days). So far, we dwelled a >>>>>>> little bit in LTTng-UST, but haven't done much changes, so userspace >>>>>>> tracing is still not functional. Device that ran kernel traces >>>>>>> successfully >>>>>>> so far were the Nexus S and the Nexus 7 (example Nexus S trace available >>>>>>> here<https://drive.google.com/folderview?id=0B55Ba7lWTLh4U0hGeTQ4bmRYRjQ&usp=sharing>; >>>>>>> still not perfect). >>>>>>> >>>>>>> Basically, we cross-compiled everything via the Android NDK (no >>>>>>> Android makefiles involved here), and pushed all required bins to a >>>>>>> device >>>>>>> without having to flash it (unless the default kernel config didn't >>>>>>> allow >>>>>>> tracing -- then we'd have to flash). This approach is not compatible >>>>>>> with >>>>>>> the official Android build system (meaning we wouldn't be able to add >>>>>>> it to >>>>>>> Android like this), but we might eventually get working on the damned >>>>>>> Android makefiles (they're extremely painful to write, especially since >>>>>>> LTTng uses Autotools). >>>>>>> >>>>>>> The librairies required by LTTng that are not already included in a >>>>>>> regular Android build (uuid/popt) can actually be found/compiled from >>>>>>> the >>>>>>> official repo, in its 'external' directory (see oprofile and e2fsprog -- >>>>>>> from memory). That might not be the easiest way to get them (full repo >>>>>>> download is BIG), but compatibility is assured, and you can skip a full >>>>>>> build by simply making those two individually for your device (if that's >>>>>>> all you need). >>>>>>> >>>>>>> You'll also need your device to be rooted to use LTTng at all; then, >>>>>>> most initializations are done via scripts (we'll also provide those with >>>>>>> our patches). We still had some trouble automating everything via >>>>>>> daemons, >>>>>>> so we always ran the sessiond locally (with success). >>>>>>> >>>>>>> Major problems we encountered so far were missing posix functions, >>>>>>> and sysv shared memory. Basically, Android relies on Bionic for its >>>>>>> system >>>>>>> calls and other low-level functions, and since Bionic is pretty >>>>>>> 'lightweight', they trimmed most of the fat out for performance. We had >>>>>>> to >>>>>>> make some more-or-less sketchy replacements here and there, but >>>>>>> everything >>>>>>> seems to be working decently now. >>>>>>> >>>>>>> So, simple 'how do I put LTTng on Android' workflow would be this: >>>>>>> >>>>>>> - Compile modules (using NDK) against device's kernel, making sure >>>>>>> its config is appropriate, ship them over via ADB >>>>>>> >>>>>>> - Compile required external libraries (using repo build system) >>>>>>> for the device, ship them over via ADB >>>>>>> >>>>>>> - Patch up LTTng-* (soon-ish! I could send you the outdated >>>>>>> patches right now if you're interested though, they might be a month >>>>>>> behind >>>>>>> or so on the current trunks) >>>>>>> >>>>>>> - Cross-compile LTTng-* for the device (using NDK), ship binaries >>>>>>> over via ADB >>>>>>> >>>>>>> Then, on the device, start up the sessiond manually & start tracing. >>>>>>> >>>>>>> >>>>>>> I think I went over everything, but if there's a part that's still >>>>>>> cloudy, don't hesitate. >>>>>>> >>>>>>> >>>>>>> -PL >>>>>>> >>>>>>> >>>>>>> On May 17, 2013 1:32 AM, "Ionut D." <[email protected]> wrote: >>>>>>> >>>>>>>> Hello all, >>>>>>>> >>>>>>>> Recently I started to integrate LTTNG in Android ICS by compiling >>>>>>>> each package, each dependency, by using the Android build system. It >>>>>>>> is a >>>>>>>> lot of work because I met different problems and to be sincere, I do >>>>>>>> not >>>>>>>> know if at the end will work and I do not know how much I will need to >>>>>>>> modify the sources in order to work. >>>>>>>> >>>>>>>> My questions are about this integration. I mention that I read a >>>>>>>> lot of discussions about this on Internet, on this mailing list, but >>>>>>>> the >>>>>>>> things are still not very clear for me. >>>>>>>> >>>>>>>> It is ok? what I am trying to do ? to integrate and build by using >>>>>>>> the Android build system. >>>>>>>> Could you give me some guidelines, indications about how I should >>>>>>>> proceed, maybe a tutorial or maybe some android make files/patches that >>>>>>>> would help me to see how the job must be done and if I am doing it >>>>>>>> right ? >>>>>>>> >>>>>>>> Until now I managed to build lttng-modules, liburcu, libuuid from >>>>>>>> util-linux and configure lttng-ust by using the android toolchain for >>>>>>>> arm. >>>>>>>> I got a lot of errors but until now I managed to configure/make these >>>>>>>> packages. >>>>>>>> >>>>>>>> I mention that I am trying to build lttng 2.x on ICS 4.0.3. >>>>>>>> >>>>>>>> Would be great if you will give me a tutorial about how to do it. >>>>>>>> >>>>>>>> Ionut >>>>>>>> >>>>>>>> _______________________________________________ >>>>>>>> lttng-dev mailing list >>>>>>>> [email protected] >>>>>>>> http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev >>>>>>>> >>>>>>>> >>>>>> >>>>> >>>> >>> >> >
_______________________________________________ lttng-dev mailing list [email protected] http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev
