9 Replies Latest reply on Jul 8, 2014 10:45 AM by AlexT_Intel

    Simplified documentation, recompiling, and kernel modules

    tfx

      I have over 15 years of Linux systems operations experience, but I am finding that this embedded system is giving me more problems than anticipated.

       

      Part of the problem is that the documentation is spread around in PDFs, .7z files, and outdated blog posts. It's hard to make sense of what I really need and how to compile it with the Galileo target. On typical Linux boxes, I'd just download kernel sources, configure, and compile then wrap the new kernel and modules into the boot loader. All the documentation I've found has me jumping around Python scripts that break every time an update changes directory names.

       

      Is there a way we can simply this? Alternately, is there some pre-baked build environment available with the required dependencies and patches? All I want to do is build a CIFS kernel module and a binary of OpenCV for a robot but I find myself no closer than I was eight hours ago.

       

      If I do figure it out, I'd be glad to come back and report what I find.

       

      ---Daniel

        • 1. Re: Simplified documentation, recompiling, and kernel modules
          tfx

          Even simple baking using an unmodified source is failing:

           

          :~/yocto/meta-clanton_v1.0.0/yocto_build$ bitbake image-full
          Pseudo is not present but is required, building this first before the main build
          WARNING: Host distribution "Ubuntu-14.04" has not been validated with this version of the build system; you may possibly experience unexpected failures. It is recommended that you use a tested distribution.
          Loading cache: 100% |######################################################################################| ETA:  00:00:00
          Loaded 1615 entries from dependency cache.
          
          Build Configuration:
          BB_VERSION        = "1.18.0"
          BUILD_SYS         = "x86_64-linux"
          NATIVELSBSTRING   = "Ubuntu-14.04"
          TARGET_SYS        = "i586-poky-linux-uclibc"
          MACHINE           = "clanton"
          DISTRO            = "clanton-tiny"
          DISTRO_VERSION    = "1.4.2"
          TUNE_FEATURES     = "m32 i586"
          TARGET_FPU        = ""
          meta
          meta-yocto
          meta-yocto-bsp    = "clanton:d734ab491a30078d43dee5440c03acce2d251425"
          meta-intel        = "clanton:048def7bae8e3e1a11c91f5071f99bdcf8e6dd16"
          meta-oe           = "clanton:13ae5105ee30410136beeae66ec41ee4a8a2e2b0"
          meta-clanton-distro
          meta-clanton-bsp  = ":"
          
          NOTE: Resolving any missing task queue dependencies
          NOTE: Preparing runqueue
          NOTE: Executing SetScene Tasks
          NOTE: Executing RunQueue Tasks
          ERROR: Function failed: sysroot_stage_all (see /home/daniel/yocto/meta-clanton_v1.0.0/yocto_build/tmp/work/x86_64-linux/quilt-native/0.60-r0/temp/log.do_populate_sysroot.27045 for further information)
          ERROR: Logfile of failure stored in: /home/daniel/yocto/meta-clanton_v1.0.0/yocto_build/tmp/work/x86_64-linux/quilt-native/0.60-r0/temp/log.do_populate_sysroot.27045
          Log data follows:
          | DEBUG: Executing python function sstate_task_prefunc
          | DEBUG: Python function sstate_task_prefunc finished
          | DEBUG: Executing python function do_populate_sysroot
          | DEBUG: Executing shell function sysroot_stage_all
          | tar: --same-order option cannot be used with -c
          | Try 'tar --help' or 'tar --usage' for more information.
          | tar: This does not look like a tar archive
          | tar: Exiting with failure status due to previous errors
          | DEBUG: Python function do_populate_sysroot finished
          | ERROR: Function failed: sysroot_stage_all (see /home/daniel/yocto/meta-clanton_v1.0.0/yocto_build/tmp/work/x86_64-linux/quilt-native/0.60-r0/temp/log.do_populate_sysroot.27045 for further information)
          ERROR: Task 10 (/home/daniel/yocto/meta-clanton_v1.0.0/poky/meta/recipes-devtools/quilt/quilt-native_0.60.bb, do_populate_sysroot) failed with exit code '1'
          NOTE: Tasks Summary: Attempted 23 tasks of which 22 didn't need to be rerun and 1 failed.
          No currently running tasks (7 of 63)
          
          Summary: 1 task failed:
            /home/daniel/yocto/meta-clanton_v1.0.0/poky/meta/recipes-devtools/quilt/quilt-native_0.60.bb, do_populate_sysroot
          Summary: There was 1 WARNING message shown.
          Summary: There was 1 ERROR message shown, returning a non-zero exit code.
          
          • 2. Re: Simplified documentation, recompiling, and kernel modules
            tfx

            Update: The original problem is that there's something updated in Ubuntu 14.04 that killed bitbake. I rolled up an Ubuntu 12.04 i386 server in Hyper-V and ran no local updates. It seems to be compiling now.

            • 3. Re: Simplified documentation, recompiling, and kernel modules
              tfx

              Damn - I was able to compile the kernel with cifs built in, but now I am getting "ERROR: Nothing PROVIDEs 'image-full' " - same as this thread Re: Help compiling galileo kernel modules

               

              daniel@galidev:~/yocto/meta-clanton_v1.0.0/yocto_custom$ bitbake image-full
              Loading cache: 100% |########################################################################| ETA:  00:00:00
              Loaded 1122 entries from dependency cache.
              
              Build Configuration:
              BB_VERSION        = "1.18.0"
              BUILD_SYS         = "i686-linux"
              NATIVELSBSTRING   = "Ubuntu-12.04"
              TARGET_SYS        = "i586-poky-linux"
              MACHINE           = "qemux86"
              DISTRO            = "poky"
              DISTRO_VERSION    = "1.4.2"
              TUNE_FEATURES     = "m32 i586"
              TARGET_FPU        = ""
              meta
              meta-yocto
              meta-yocto-bsp    = "clanton:d734ab491a30078d43dee5440c03acce2d251425"
              
              ERROR: Nothing PROVIDES 'image-full'
              
              Summary: There was 1 ERROR message shown, returning a non-zero exit code.
              
              • 4. Re: Simplified documentation, recompiling, and kernel modules
                AlexT_Intel

                You need to use "image-full-galileo" target, that's the name since BSP v0.9.0. And yes, The warning bitbake throws about 14.04 not validated is meaningful. 12.04 is fine, as you've already found out

                • 5. Re: Simplified documentation, recompiling, and kernel modules
                  tfx

                  Working on a Sunday of a holiday weekend? You're my hero. Thanks!

                  • 6. Re: Simplified documentation, recompiling, and kernel modules
                    AlexT_Intel

                    Nope, even though I work for Intel as you can derive from my nick I have no relation to Galileo development or support whatsoever - that's only my hobby.

                    • 7. Re: Simplified documentation, recompiling, and kernel modules
                      tfx

                      Ha! I can relate... My day job is as a Linux Systems Engineer for Yammer - owned by Microsoft.  My work badge and pay stub both say Microsoft. Though I am a big fan of the Surface and Lumia product lines, I have nothing to do with them either though I stay active in their communities.

                       

                      The cifs module loads, but I am getting "invalid argument" when attempting to mount a filesystem shared from my Windows 8.1 desktop. I may have to cross-compile the "cifsmount" opkg that from the openwrt page (here: http://wiki.openwrt.org/doc/howto/cifs.client  ) but the kernel module is a big first step. I'll keep you posted.

                      • 8. Re: Simplified documentation, recompiling, and kernel modules
                        tfx

                        I spoke too soon! It works fine after running the setup script:

                        root@clanton:~#  mount -t cifs //hawking/images /images -o username=imageguest,password=imageguest

                        root@clanton:~# cd /images/

                        root@clanton:/images# ls

                        Thumbs.db