XCP-ng
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login
    1. Home
    2. benze
    B
    Offline
    • Profile
    • Following 0
    • Followers 0
    • Topics 1
    • Posts 2
    • Groups 0

    benze

    @benze

    1
    Reputation
    1.8k
    Profile views
    2
    Posts
    0
    Followers
    0
    Following
    Joined
    Last Online

    benze Unfollow Follow

    Latest posts made by benze

    • RE: Trying to build kernel module : modprobe Exec format error

      @r1 modinfo displays a huge number of aliases (abrieviated, but can include the entire list if helpful at all):

      root@xenserver class]# modinfo cdc-acm.ko
      filename:       /lib/modules/4.4.0+10/extra/class/cdc-acm.ko
      alias:          char-major-166-*
      license:        GPL
      description:    USB Abstract Control Model driver for USB modems and ISDN adapters
      author:         Armin Fuerst, Pavel Machek, Johannes Erdfelt, Vojtech Pavlik, David Kubicek, Johan Hovold
      srcversion:     4DA17ECECFACCD02EC1D87C
      alias:          usb:v1519p0452d*dc*dsc*dp*ic*isc*ip*in*
      alias:          usb:v*p*d*dc*dsc*dp*ic02isc02ip06in*
      alias:          usb:v*p*d*dc*dsc*dp*ic02isc02ip05in*
      alias:          usb:v*p*d*dc*dsc*dp*ic02isc02ip04in*
      alias:          usb:v*p*d*dc*dsc*dp*ic02isc02ip03in*
      alias:          usb:v*p*d*dc*dsc*dp*ic02isc02ip02in*
      alias:          usb:v*p*d*dc*dsc*dp*ic02isc02ip01in*
      alias:          usb:v*p*d*dc*dsc*dp*ic02isc02ip00in*
      alias:          usb:v058Bp0041d*dc*dsc*dp*ic*isc*ip*in*
      alias:          usb:v04E8p685Dd*dc*dsc*dp*ic*isc*ip*in*
      alias:          usb:v04D8p000Bd*dc*dsc*dp*ic*isc*ip*in*
      alias:          usb:v03EBp0030d*dc*dsc*dp*ic*isc*ip*in*
      alias:          usb:v04E7p6651d*dc*dsc*dp*ic02isc02ipFFin*
      ...
      ...
      ...
      alias:          usb:v22B8p7000d*dc*dsc*dp*ic*isc*ip*in*
      alias:          usb:v0ACEp1611d*dc*dsc*dp*ic*isc*ip*in*
      alias:          usb:v0ACEp1608d*dc*dsc*dp*ic*isc*ip*in*
      alias:          usb:v0ACEp1602d*dc*dsc*dp*ic*isc*ip*in*
      alias:          usb:v079Bp000Fd*dc*dsc*dp*ic*isc*ip*in*
      alias:          usb:v0482p0203d*dc*dsc*dp*ic*isc*ip*in*
      alias:          usb:v0E8Dp3329d*dc*dsc*dp*ic*isc*ip*in*
      alias:          usb:v0E8Dp0003d*dc*dsc*dp*ic*isc*ip*in*
      alias:          usb:v0870p0001d*dc*dsc*dp*ic*isc*ip*in*
      alias:          usb:v17EFp7000d*dc*dsc*dp*ic*isc*ip*in*
      alias:          usb:v076Dp0006d*dc*dsc*dp*ic*isc*ip*in*
      depends:
      vermagic:       4.4.0+10 SMP mod_unload modversions
      [root@xenserver class]#
      

      insmod fails with similar error messages.

      insmod: ERROR: could not insert module cdc-acm.ko: Invalid module format 
      [root@xenserver class]# dmesg | tail -n 5                                
      [529766.051521] cdc_acm: no symbol version for module_layout             
      [529886.114801] cdc_acm: no symbol version for module_layout             
      [530436.174773] cdc_acm: no symbol version for module_layout             
      [593078.042958] cdc_acm: no symbol version for module_layout             
      [593101.361321] cdc_acm: no symbol version for module_layout             
      

      What I don't understand is why this module built using the docker container for XCP 7.5 would fail, unless the kernel was different.

      [root@xenserver class]# uname -a
      Linux xenserver 4.4.0+10 #1 SMP Thu Aug 9 14:42:20 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
      [root@xenserver class]# md5sum /boot/initrd-4.4.0+10.img
      def1ea3930f11bb46abfec42c3b9d6ec  /boot/initrd-4.4.0+10.img
      [root@xenserver class]# file /boot/vmlinuz-4.4.0+10                                                                                                                               
      /boot/vmlinuz-4.4.0+10: Linux kernel x86 boot executable bzImage, version 4.4.0+10 (mockbuild@6fb104f99393) #1 SMP Thu Aug 9 14:42:20 UTC, RO-rootFS, swap_dev 0x4, Normal VGA    
      [root@xenserver class]# md5sum /boot/vmlinuz-4.4.0+10                                                                                                                             
      d5de46e85a4047faf427932ecc41969f  /boot/vmlinuz-4.4.0+10                                                                                                                          
      

      Any ideas? Is my kernel not actually 4.4.0+10? What I don't understand is why it is v4.4.0+10, but the rpm source package lists it as 4.4.52-4.0.7. Can there be 2 different versions of the same build somehow?

      Thanks,

      Eric

      posted in Development
      B
      benze
    • Trying to build kernel module : modprobe Exec format error

      I'm trying to build a kernel module that I cannot seem to find anywhere for XCP-ng 7.5.0. It is the USB Modem module, I believe, controlled via the kernel option:

      CONFIG_USB_ACM=m
      

      To start, I followed the steps on xcp-ng / xcp-ng-build-env to create a docker container and spun it up:

       $ ./build.sh 7.5
       $ ./run.py -b 7.5 -n --name xcp 
      

      I downloaded all the kernel* dependencies, and ran make menuconfig to find the right kernel module.

      [root@543abc754417 4.4.0+10-x86_64]# rpm -qa | grep kernel
      kernel-devel-4.4.52-4.0.7.1.x86_64
      kernel-tools-libs-devel-3.10.0-327.36.3.el7.x86_64
      kernel-headers-4.4.52-4.0.7.1.x86_64
      kernel-tools-3.10.0-327.36.3.el7.x86_64
      kernel-debug-devel-3.10.0-327.36.3.el7.x86_64
      kernel-tools-libs-3.10.0-327.36.3.el7.x86_64
      kernel-4.4.52-4.0.7.1.x86_64
      

      But when I try to prepare the module, I get an error:

      [root@543abc754417 4.4.0+10-x86_64]# pwd
      /usr/src/kernels/4.4.0+10-x86_64
      [root@543abc754417 4.4.0+10-x86_64]# make modules_prepare
        CHK     include/config/kernel.release
        CHK     include/generated/uapi/linux/version.h
        CHK     include/generated/utsrelease.h
        HOSTCC  scripts/selinux/genheaders/genheaders
      scripts/selinux/genheaders/genheaders.c:13:22: fatal error: classmap.h: No such file or directory
       #include "classmap.h"
                            ^
      compilation terminated.
      make[3]: *** [scripts/selinux/genheaders/genheaders] Error 1
      make[2]: *** [scripts/selinux/genheaders] Error 2
      make[1]: *** [scripts/selinux] Error 2
      make: *** [scripts] Error 2
      [root@543abc754417 4.4.0+10-x86_64]#
      

      So I downloaded the kernel sources from https://updates.xcp-ng.org/7/7.5/base/Source/SPackages/kernel-4.4.52-4.0.7.src.rpm:

      [root@543abc754417 kernel-4.4.52]# rpm -i kernel-4.4.52-4.0.7.src.rpm
      [root@543abc754417 kernel-4.4.52]#  cd ~/rpmbuild/SPECS
      [root@543abc754417 kernel-4.4.52]# rpmbuild -bp --target=$(uname -m) kernel.spec
      [root@543abc754417 kernel-4.4.52]# cd ~/rpmbuild/BUILD//kernel-4.4.52/
      [root@543abc754417 kernel-4.4.52]# make menuconfig
      [root@543abc754417 kernel-4.4.52]# make modules_prepare
      [root@543abc754417 kernel-4.4.52]# make M=drivers/usb modules
      [root@543abc754417 kernel-4.4.52]# find drivers/usb/ -name cd*.ko
      drivers/usb/class/cdc-acm.ko
      drivers/usb/class/cdc-wdm.ko
      

      Success!

      So I copied the cdc-acm.ko from the container to my DOM0 in the modules/extra folder:

      [root@xenserver class]# pwd                               
      /lib/modules/4.4.0+10/extra/class                         
      [root@xenserver class]# ls  -l                            
      total 416                                                 
      -rwxr--r-- 1 root root 421069 May 16 00:29 cdc-acm.ko     
      

      Next run depmod to update module info and dependencies, and try to load the module, and modprobe fails.

      [root@xenserver class]# depmod
      [root@xenserver class]# modprobe cdc-acm
      modprobe: ERROR: could not insert 'cdc_acm': Exec format error
      

      At this point I am seriously stuck. I would have thought/expected that having built the module in the 7.5 container would produce the exact module that I needed for the DOM0.

      What am I doing wrong? Am I missing something? Did I use the incorrect sources?

      Thanks,

      Eric

      posted in Development
      B
      benze