4 Replies Latest reply on Mar 10, 2016 2:48 PM by PabloM_Intel

    Yocto Project bitbake kernel ACPI/HPET build error

    D.Sync

      Hi guys, I'm currently attempting to build a custom Linux Kernel using bitbake with ACPI and HPET features, but encountered some build error during the attempt. The sources are edison-src-ww25.5-15.tgz, which is from release 2.1. Strangely enough, the build pass when building a vanilla kernel without these features enabled.

       

      If I'm not mistaken HPET requires ACPI to be enabled in order to expose it on the Linux OS. When ACPI is disabled the HPET options under Character Devices is simply missing too.

       

      Following is the build error log upon executing bitbake -f virtual/kernel:

       

      Any insights would be helpful since I'm going to need HPET instead of TS as the clock source for getting data out of SPI periodically. Unfortunately SPI feature is still not supported in the MCU as of release 2.1.

       

      UPDATE:

      I've tried to enable ACPI and HPET using the build from release 1.6. Following are the screenshots of the kernel config. Building is sucessful without the following changes:

      acpi.png

       

      apm.png

      proc-type.png

      dev-char.png

       

      Bitbake build error log:

      |  static void __init wifi_platform_data_init_sfi_gpio(void)
      |                     ^
      |   CC      crypto/api.o
      |   LD      arch/x86/platform/intel-mid/device_libs/built-in.o
      |   CC      arch/x86/platform/intel-mid/mfld.o
      |   CC      kernel/futex.o
      | /home/gary/Development/edison-build/edison-src/build/tmp/work/edison-poky-linux/linux-yocto/3.10.17+gitAUTOINC+6ad20f049a_c03195ed6e-r0/linux/arch/x86/platform/intel-mid/mfld.c:86:7: warning: function declaration isn't a prototype [-Wstrict-prototypes]
      |  void *get_penwell_ops()
      |        ^
      | /home/gary/Development/edison-build/edison-src/build/tmp/work/edison-poky-linux/linux-yocto/3.10.17+gitAUTOINC+6ad20f049a_c03195ed6e-r0/linux/arch/x86/platform/intel-mid/mfld.c:91:7: warning: function declaration isn't a prototype [-Wstrict-prototypes]
      |  void *get_cloverview_ops()
      |        ^
      |   CC      arch/x86/platform/intel-mid/mrfl.o
      |   CC      crypto/cipher.o
      | /home/gary/Development/edison-build/edison-src/build/tmp/work/edison-poky-linux/linux-yocto/3.10.17+gitAUTOINC+6ad20f049a_c03195ed6e-r0/linux/arch/x86/platform/intel-mid/mrfl.c:152:7: warning: function declaration isn't a prototype [-Wstrict-prototypes]
      |  void *get_tangier_ops()
      |        ^
      | /home/gary/Development/edison-build/edison-src/build/tmp/work/edison-poky-linux/linux-yocto/3.10.17+gitAUTOINC+6ad20f049a_c03195ed6e-r0/linux/arch/x86/platform/intel-mid/mrfl.c:158:7: warning: function declaration isn't a prototype [-Wstrict-prototypes]
      |  void *get_anniedale_ops()
      |        ^
      |   CC      arch/x86/platform/intel-mid/intel_mid_pcihelpers.o
      |   CC      crypto/compress.o
      |   CC      arch/x86/platform/intel-mid/intel_mid_scu.o
      |   CC      kernel/rtmutex.o
      |   CC      crypto/algapi.o
      |   CC      arch/x86/platform/intel-mid/board.o
      | In file included from /home/gary/Development/edison-build/edison-src/build/tmp/work/edison-poky-linux/linux-yocto/3.10.17+gitAUTOINC+6ad20f049a_c03195ed6e-r0/linux/arch/x86/platform/intel-mid/board.c:82:0:
      | /home/gary/Development/edison-build/edison-src/build/tmp/work/edison-poky-linux/linux-yocto/3.10.17+gitAUTOINC+6ad20f049a_c03195ed6e-r0/linux/arch/x86/platform/intel-mid/device_libs/platform_spidev.h:17:0: warning: "FORCE_CHIP_SELECT" redefined [enabled by default]
      |  #define FORCE_CHIP_SELECT 1
      |  ^
      | In file included from /home/gary/Development/edison-build/edison-src/build/tmp/work/edison-poky-linux/linux-yocto/3.10.17+gitAUTOINC+6ad20f049a_c03195ed6e-r0/linux/arch/x86/platform/intel-mid/board.c:81:0:
      | /home/gary/Development/edison-build/edison-src/build/tmp/work/edison-poky-linux/linux-yocto/3.10.17+gitAUTOINC+6ad20f049a_c03195ed6e-r0/linux/arch/x86/platform/intel-mid/device_libs/platform_max3111.h:17:0: note: this is the location of the previous definition
      |  #define FORCE_CHIP_SELECT 0
      |  ^
      | In file included from /home/gary/Development/edison-build/edison-src/build/tmp/work/edison-poky-linux/linux-yocto/3.10.17+gitAUTOINC+6ad20f049a_c03195ed6e-r0/linux/arch/x86/platform/intel-mid/board.c:83:0:
      | /home/gary/Development/edison-build/edison-src/build/tmp/work/edison-poky-linux/linux-yocto/3.10.17+gitAUTOINC+6ad20f049a_c03195ed6e-r0/linux/arch/x86/platform/intel-mid/device_libs/platform_ads7955.h:17:0: warning: "FORCE_CHIP_SELECT" redefined [enabled by default]
      |  #define FORCE_CHIP_SELECT 0
      |  ^
      | In file included from /home/gary/Development/edison-build/edison-src/build/tmp/work/edison-poky-linux/linux-yocto/3.10.17+gitAUTOINC+6ad20f049a_c03195ed6e-r0/linux/arch/x86/platform/intel-mid/board.c:82:0:
      | /home/gary/Development/edison-build/edison-src/build/tmp/work/edison-poky-linux/linux-yocto/3.10.17+gitAUTOINC+6ad20f049a_c03195ed6e-r0/linux/arch/x86/platform/intel-mid/device_libs/platform_spidev.h:17:0: note: this is the location of the previous definition
      |  #define FORCE_CHIP_SELECT 1
      |  ^
      |   CC      arch/x86/platform/intel-mid/intel_soc_pmu.o
      |   CC      kernel/rt.o
      | /home/gary/Development/edison-build/edison-src/build/tmp/work/edison-poky-linux/linux-yocto/3.10.17+gitAUTOINC+6ad20f049a_c03195ed6e-r0/linux/arch/x86/platform/intel-mid/intel_soc_pmu.c: In function 'set_enable_s0ix':
      | /home/gary/Development/edison-build/edison-src/build/tmp/work/edison-poky-linux/linux-yocto/3.10.17+gitAUTOINC+6ad20f049a_c03195ed6e-r0/linux/arch/x86/platform/intel-mid/intel_soc_pmu.c:881:15: error: 'struct mid_pmu_dev' has no member named 'cstate_ignore'
      |     mid_pmu_cxt->cstate_ignore =
      |                ^
      | /home/gary/Development/edison-build/edison-src/build/tmp/work/edison-poky-linux/linux-yocto/3.10.17+gitAUTOINC+6ad20f049a_c03195ed6e-r0/linux/arch/x86/platform/intel-mid/intel_soc_pmu.c:885:15: error: 'struct mid_pmu_dev' has no member named 'cstate_ignore'
      |     mid_pmu_cxt->cstate_ignore |= (1 << 1);
      |                ^
      | /home/gary/Development/edison-build/edison-src/build/tmp/work/edison-poky-linux/linux-yocto/3.10.17+gitAUTOINC+6ad20f049a_c03195ed6e-r0/linux/arch/x86/platform/intel-mid/intel_soc_pmu.c:886:15: error: 'struct mid_pmu_dev' has no member named 'cstate_ignore'
      |     mid_pmu_cxt->cstate_ignore |= (1 << 2);
      |                ^
      | /home/gary/Development/edison-build/edison-src/build/tmp/work/edison-poky-linux/linux-yocto/3.10.17+gitAUTOINC+6ad20f049a_c03195ed6e-r0/linux/arch/x86/platform/intel-mid/intel_soc_pmu.c:887:15: error: 'struct mid_pmu_dev' has no member named 'cstate_ignore'
      |     mid_pmu_cxt->cstate_ignore |= (1 << 4);
      |                ^
      | /home/gary/Development/edison-build/edison-src/build/tmp/work/edison-poky-linux/linux-yocto/3.10.17+gitAUTOINC+6ad20f049a_c03195ed6e-r0/linux/arch/x86/platform/intel-mid/intel_soc_pmu.c:890:15: error: 'struct mid_pmu_dev' has no member named 'cstate_ignore'
      |     mid_pmu_cxt->cstate_ignore |= (1 << 6);
      |                ^
      | /home/gary/Development/edison-build/edison-src/build/tmp/work/edison-poky-linux/linux-yocto/3.10.17+gitAUTOINC+6ad20f049a_c03195ed6e-r0/linux/arch/x86/platform/intel-mid/intel_soc_pmu.c:891:15: error: 'struct mid_pmu_dev' has no member named 'cstate_ignore'
      |     mid_pmu_cxt->cstate_ignore |= (1 << 7);
      |                ^
      | /home/gary/Development/edison-build/edison-src/build/tmp/work/edison-poky-linux/linux-yocto/3.10.17+gitAUTOINC+6ad20f049a_c03195ed6e-r0/linux/arch/x86/platform/intel-mid/intel_soc_pmu.c:892:15: error: 'struct mid_pmu_dev' has no member named 'cstate_ignore'
      |     mid_pmu_cxt->cstate_ignore |= (1 << 8);
      |                ^
      | /home/gary/Development/edison-build/edison-src/build/tmp/work/edison-poky-linux/linux-yocto/3.10.17+gitAUTOINC+6ad20f049a_c03195ed6e-r0/linux/arch/x86/platform/intel-mid/intel_soc_pmu.c:893:15: error: 'struct mid_pmu_dev' has no member named 'cstate_ignore'
      |     mid_pmu_cxt->cstate_ignore |= (1 << 9);
      |                ^
      | /home/gary/Development/edison-build/edison-src/build/tmp/work/edison-poky-linux/linux-yocto/3.10.17+gitAUTOINC+6ad20f049a_c03195ed6e-r0/linux/arch/x86/platform/intel-mid/intel_soc_pmu.c:896:37: error: 'struct mid_pmu_dev' has no member named 'cstate_qos'
      |     pm_qos_update_request(mid_pmu_cxt->cstate_qos,
      |                                      ^
      | /home/gary/Development/edison-build/edison-src/build/tmp/work/edison-poky-linux/linux-yocto/3.10.17+gitAUTOINC+6ad20f049a_c03195ed6e-r0/linux/arch/x86/platform/intel-mid/intel_soc_pmu.c:899:15: error: 'struct mid_pmu_dev' has no member named 'cstate_ignore'
      |     mid_pmu_cxt->cstate_ignore =
      |                ^
      | /home/gary/Development/edison-build/edison-src/build/tmp/work/edison-poky-linux/linux-yocto/3.10.17+gitAUTOINC+6ad20f049a_c03195ed6e-r0/linux/arch/x86/platform/intel-mid/intel_soc_pmu.c:903:15: error: 'struct mid_pmu_dev' has no member named 'cstate_ignore'
      |     mid_pmu_cxt->cstate_ignore |= (1 << 1);
      |                ^
      | /home/gary/Development/edison-build/edison-src/build/tmp/work/edison-poky-linux/linux-yocto/3.10.17+gitAUTOINC+6ad20f049a_c03195ed6e-r0/linux/arch/x86/platform/intel-mid/intel_soc_pmu.c:904:15: error: 'struct mid_pmu_dev' has no member named 'cstate_ignore'
      |     mid_pmu_cxt->cstate_ignore |= (1 << 2);
      |                ^
      | /home/gary/Development/edison-build/edison-src/build/tmp/work/edison-poky-linux/linux-yocto/3.10.17+gitAUTOINC+6ad20f049a_c03195ed6e-r0/linux/arch/x86/platform/intel-mid/intel_soc_pmu.c:905:15: error: 'struct mid_pmu_dev' has no member named 'cstate_ignore'
      |     mid_pmu_cxt->cstate_ignore |= (1 << 4);
      |                ^
      | /home/gary/Development/edison-build/edison-src/build/tmp/work/edison-poky-linux/linux-yocto/3.10.17+gitAUTOINC+6ad20f049a_c03195ed6e-r0/linux/arch/x86/platform/intel-mid/intel_soc_pmu.c:906:15: error: 'struct mid_pmu_dev' has no member named 'cstate_ignore'
      |     mid_pmu_cxt->cstate_ignore |= (1 << 7);
      |                ^
      | /home/gary/Development/edison-build/edison-src/build/tmp/work/edison-poky-linux/linux-yocto/3.10.17+gitAUTOINC+6ad20f049a_c03195ed6e-r0/linux/arch/x86/platform/intel-mid/intel_soc_pmu.c:907:15: error: 'struct mid_pmu_dev' has no member named 'cstate_ignore'
      |     mid_pmu_cxt->cstate_ignore |= (1 << 9);
      |                ^
      | /home/gary/Development/edison-build/edison-src/build/tmp/work/edison-poky-linux/linux-yocto/3.10.17+gitAUTOINC+6ad20f049a_c03195ed6e-r0/linux/arch/x86/platform/intel-mid/intel_soc_pmu.c:909:37: error: 'struct mid_pmu_dev' has no member named 'cstate_qos'
      |     pm_qos_update_request(mid_pmu_cxt->cstate_qos,
      |                                      ^
      | make[4]: *** [arch/x86/platform/intel-mid/intel_soc_pmu.o] Error 1
      |   CC      crypto/scatterwalk.o
      | make[3]: *** [arch/x86/platform/intel-mid] Error 2
      | make[2]: *** [arch/x86/platform] Error 2
      | make[1]: *** [arch/x86] Error 2
      | make[1]: *** Waiting for unfinished jobs....
      

       

      From the log the problem seemed to be caused by missing member named 'cstate_ignore' in the 'struct mid_pmu_dev', which is located in the file '/home/gary/Development/edison-build/edison-src/build/tmp/work/edison-poky-linux/linux-yocto/3.10.17+gitAUTOINC+6ad20f049a_c03195ed6e-r0/linux/arch/x86/platform/intel-mid/intel_soc_pmu.c'

       

      | /home/gary/Development/edison-build/edison-src/build/tmp/work/edison-poky-linux/linux-yocto/3.10.17+gitAUTOINC+6ad20f049a_c03195ed6e-r0/linux/arch/x86/platform/intel-mid/intel_soc_pmu.c:890:15: error: 'struct mid_pmu_dev' has no member named 'cstate_ignore'

      |     mid_pmu_cxt->cstate_ignore |= (1 << 6);

      |                ^