This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

DS-5: Install gator.ko error: unknown symbol

Note: This was originally posted on 29th August 2013 at http://forums.arm.com

Hi all,

I tried to install gator.ko compiled from the latest version of DS-5 v5.15 on galaxy tab 10.1, but it failed. My host machine runs win8 and the target device is galaxy tab 10.1 wifi with cm 10.1. (which I compiled following the instructions listed here http://wiki.cyanogen...uild_for_p4wifi ) However, when I tried to install gator.ko on galaxy tab 10.1 using "insmod gator.ko", the following error appears:

the following error: init_module '/sdcard/gator.ko' failed (No such file or directory)

Then I entered dmesg command in the terminal and the error message is as follows:

gator: Unknown symbol perf_event_release_kernel (err 0)
gator: Unknown symbol perf_event_create_kernel_counter (err 0)

But as I read the kernel code of galaxy tab 10.1 (p4wifi), I could find the corresponding definition of these two functions and they have already been exported by macros such as EXPORT_SYMBOL_GPL. Could anyone help me? Thank you! :)
Parents
  • Note: This was originally posted on 30th August 2013 at http://forums.arm.com


    I assume you did an ls of /proc and saw that kallsyms is 0 bytes?  Most files in the proc filesystem show empty even if they really aren't.  For example, one Linux machine I have access to shows this

    > ls -l /proc/kallsyms
    -r--r--r-- 1 root root 0 Aug 29 23:05 /proc/kallsyms

    But when I cat it, I get results

    > cat /proc/kallsyms
    0000000000000000 D irq_stack_union
    0000000000000000 D __per_cpu_start
    ffffffff810001c8 t run_init_process
    ffffffff810001c8 T _stext
    ffffffff810001e8 T do_one_initcall
    ffffffff810002f4 t match_dev_by_uuid
    ffffffff8100031f T name_to_dev_t
    ffffffff81000670 t init_linuxrc
    ffffffff81001000 T set_personality_ia32
    ffffffff810010a1 t start_thread_common.constprop.4
    ...

    Do you get any results when you say cat /proc/kallsyms?

    How are you compiling gator.ko?  Can you please share the output of the compile?

    Try building the gator.ko kernel module with the same toolchain you're using to build the kernel.  I've seen issues where if the toolchains are different the module may not load or run correctly.

    Also the gcc provided by the Android NDK does not always work correctly.  Please also try using the gcc distributed with DS-5.


    Hi Drew,

    Thank you for your quick response!

    I have run "cat /proc/kallsyms" and there are a lot of lines in the output. However, when I run "cat /proc/kallsyms | grep perf_event", I got nothing.

    I did use the exact same toolchain I used to build the kernel to build gator.ko. And I did not use Android NDK, instead, I used the cross compiler of the prebuilt tools downloaded along with the kernel source when building cm 10.1 ( http://wiki.cyanogen...uild_for_p4wifi). Here is the commands I have run.

    To the kernel side:
    export ARCH=arm
    export CROSS_COMPILE=/p/arch/Xdong/android_src/android/system/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/arm-linux-androideabi-
    make cyanogenmod_samsung_p4wifi-jb_defconfig
    make modules -j4

    where cyanogenmod_samsung_p4wifi-jb_defconfig have already been edited to enable those options listed in README_Streamline.txt.

    To the kernel module gator.ko side:

    export ARCH=arm
    export CROSS_COMPILE=/p/arch/Xdong/android_src/android/system/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/arm-linux-androideabi-
    make -C /home/vax7/p2/arch/Xdong/android_src/android/system/kernel/samsung/p4 M=`pwd` clean
    make -C /home/vax7/p2/arch/Xdong/android_src/android/system/kernel/samsung/p4 M=`pwd` CFLAGS_MODULE=-fno-pic modules

    And here is the output when compiling gator.ko:

    make: Entering directory `/home/vax7/p2/arch/Xdong/android_src/android/system/kernel/samsung/p4'
      CLEAN   /home/vax7/p2/arch/Xdong/android_modules/gator-driver
      CLEAN   /home/vax7/p2/arch/Xdong/android_modules/gator-driver/.tmp_versions
      CLEAN   /home/vax7/p2/arch/Xdong/android_modules/gator-driver/Module.symvers
    make: Leaving directory `/home/vax7/p2/arch/Xdong/android_src/android/system/kernel/samsung/p4'
    make: Entering directory `/home/vax7/p2/arch/Xdong/android_src/android/system/kernel/samsung/p4'
      CHK  gator_events.h
      CC [M]  /home/vax7/p2/arch/Xdong/android_modules/gator-driver/gator_main.o
      CC [M]  /home/vax7/p2/arch/Xdong/android_modules/gator-driver/gator_events_irq.o
      CC [M]  /home/vax7/p2/arch/Xdong/android_modules/gator-driver/gator_events_sched.o
      CC [M]  /home/vax7/p2/arch/Xdong/android_modules/gator-driver/gator_events_net.o
      CC [M]  /home/vax7/p2/arch/Xdong/android_modules/gator-driver/gator_events_block.o
      CC [M]  /home/vax7/p2/arch/Xdong/android_modules/gator-driver/gator_events_meminfo.o
      CC [M]  /home/vax7/p2/arch/Xdong/android_modules/gator-driver/gator_events_perf_pmu.o
      CC [M]  /home/vax7/p2/arch/Xdong/android_modules/gator-driver/gator_events_mmaped.o
      CC [M]  /home/vax7/p2/arch/Xdong/android_modules/gator-driver/gator_events_armv6.o
      CC [M]  /home/vax7/p2/arch/Xdong/android_modules/gator-driver/gator_events_armv7.o
      CC [M]  /home/vax7/p2/arch/Xdong/android_modules/gator-driver/gator_events_l2c-310.o
      CC [M]  /home/vax7/p2/arch/Xdong/android_modules/gator-driver/gator_events_scorpion.o
      LD [M]  /home/vax7/p2/arch/Xdong/android_modules/gator-driver/gator.o
      Building modules, stage 2.
      MODPOST 1 modules
      CC      /home/vax7/p2/arch/Xdong/android_modules/gator-driver/gator.mod.o
      LD [M]  /home/vax7/p2/arch/Xdong/android_modules/gator-driver/gator.ko
    make: Leaving directory `/home/vax7/p2/arch/Xdong/android_src/android/system/kernel/samsung/p4

    Thank you once again, Drew! :)

    Best regards,
    Xiaowan
Reply
  • Note: This was originally posted on 30th August 2013 at http://forums.arm.com


    I assume you did an ls of /proc and saw that kallsyms is 0 bytes?  Most files in the proc filesystem show empty even if they really aren't.  For example, one Linux machine I have access to shows this

    > ls -l /proc/kallsyms
    -r--r--r-- 1 root root 0 Aug 29 23:05 /proc/kallsyms

    But when I cat it, I get results

    > cat /proc/kallsyms
    0000000000000000 D irq_stack_union
    0000000000000000 D __per_cpu_start
    ffffffff810001c8 t run_init_process
    ffffffff810001c8 T _stext
    ffffffff810001e8 T do_one_initcall
    ffffffff810002f4 t match_dev_by_uuid
    ffffffff8100031f T name_to_dev_t
    ffffffff81000670 t init_linuxrc
    ffffffff81001000 T set_personality_ia32
    ffffffff810010a1 t start_thread_common.constprop.4
    ...

    Do you get any results when you say cat /proc/kallsyms?

    How are you compiling gator.ko?  Can you please share the output of the compile?

    Try building the gator.ko kernel module with the same toolchain you're using to build the kernel.  I've seen issues where if the toolchains are different the module may not load or run correctly.

    Also the gcc provided by the Android NDK does not always work correctly.  Please also try using the gcc distributed with DS-5.


    Hi Drew,

    Thank you for your quick response!

    I have run "cat /proc/kallsyms" and there are a lot of lines in the output. However, when I run "cat /proc/kallsyms | grep perf_event", I got nothing.

    I did use the exact same toolchain I used to build the kernel to build gator.ko. And I did not use Android NDK, instead, I used the cross compiler of the prebuilt tools downloaded along with the kernel source when building cm 10.1 ( http://wiki.cyanogen...uild_for_p4wifi). Here is the commands I have run.

    To the kernel side:
    export ARCH=arm
    export CROSS_COMPILE=/p/arch/Xdong/android_src/android/system/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/arm-linux-androideabi-
    make cyanogenmod_samsung_p4wifi-jb_defconfig
    make modules -j4

    where cyanogenmod_samsung_p4wifi-jb_defconfig have already been edited to enable those options listed in README_Streamline.txt.

    To the kernel module gator.ko side:

    export ARCH=arm
    export CROSS_COMPILE=/p/arch/Xdong/android_src/android/system/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/arm-linux-androideabi-
    make -C /home/vax7/p2/arch/Xdong/android_src/android/system/kernel/samsung/p4 M=`pwd` clean
    make -C /home/vax7/p2/arch/Xdong/android_src/android/system/kernel/samsung/p4 M=`pwd` CFLAGS_MODULE=-fno-pic modules

    And here is the output when compiling gator.ko:

    make: Entering directory `/home/vax7/p2/arch/Xdong/android_src/android/system/kernel/samsung/p4'
      CLEAN   /home/vax7/p2/arch/Xdong/android_modules/gator-driver
      CLEAN   /home/vax7/p2/arch/Xdong/android_modules/gator-driver/.tmp_versions
      CLEAN   /home/vax7/p2/arch/Xdong/android_modules/gator-driver/Module.symvers
    make: Leaving directory `/home/vax7/p2/arch/Xdong/android_src/android/system/kernel/samsung/p4'
    make: Entering directory `/home/vax7/p2/arch/Xdong/android_src/android/system/kernel/samsung/p4'
      CHK  gator_events.h
      CC [M]  /home/vax7/p2/arch/Xdong/android_modules/gator-driver/gator_main.o
      CC [M]  /home/vax7/p2/arch/Xdong/android_modules/gator-driver/gator_events_irq.o
      CC [M]  /home/vax7/p2/arch/Xdong/android_modules/gator-driver/gator_events_sched.o
      CC [M]  /home/vax7/p2/arch/Xdong/android_modules/gator-driver/gator_events_net.o
      CC [M]  /home/vax7/p2/arch/Xdong/android_modules/gator-driver/gator_events_block.o
      CC [M]  /home/vax7/p2/arch/Xdong/android_modules/gator-driver/gator_events_meminfo.o
      CC [M]  /home/vax7/p2/arch/Xdong/android_modules/gator-driver/gator_events_perf_pmu.o
      CC [M]  /home/vax7/p2/arch/Xdong/android_modules/gator-driver/gator_events_mmaped.o
      CC [M]  /home/vax7/p2/arch/Xdong/android_modules/gator-driver/gator_events_armv6.o
      CC [M]  /home/vax7/p2/arch/Xdong/android_modules/gator-driver/gator_events_armv7.o
      CC [M]  /home/vax7/p2/arch/Xdong/android_modules/gator-driver/gator_events_l2c-310.o
      CC [M]  /home/vax7/p2/arch/Xdong/android_modules/gator-driver/gator_events_scorpion.o
      LD [M]  /home/vax7/p2/arch/Xdong/android_modules/gator-driver/gator.o
      Building modules, stage 2.
      MODPOST 1 modules
      CC      /home/vax7/p2/arch/Xdong/android_modules/gator-driver/gator.mod.o
      LD [M]  /home/vax7/p2/arch/Xdong/android_modules/gator-driver/gator.ko
    make: Leaving directory `/home/vax7/p2/arch/Xdong/android_src/android/system/kernel/samsung/p4

    Thank you once again, Drew! :)

    Best regards,
    Xiaowan
Children
No data