How to install kernel modules after a successful compiling
FuLong Wang
fulwang at linux.vnet.ibm.com
Thu Dec 10 10:02:29 EST 2020
On 12/10/20 22:44, Alexander Kapshuk wrote:
> On Thu, Dec 10, 2020 at 4:19 PM FuLong Wang <fulwang at linux.vnet.ibm.com> wrote:
>>
>>
>> have checked the config file and the script, not found the exact match.
>>
>>
>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>
>>
>> [zbrand at bz094f linux-3.10.0-957.el7.s390x]$
>> [zbrand at bz094f linux-3.10.0-957.el7.s390x]$
>> [zbrand at bz094f linux-3.10.0-957.el7.s390x]$ pwd
>> /home/zbrand/rpmbuild/BUILD/kernel-3.10.0-957.el7/linux-3.10.0-957.el7.s390x
>> [zbrand at bz094f linux-3.10.0-957.el7.s390x]$
>> [zbrand at bz094f linux-3.10.0-957.el7.s390x]$ cat .config | grep
>> CONFIG_LOCALVERSION
>> CONFIG_LOCALVERSION=""
>> # CONFIG_LOCALVERSION_AUTO is not set
>> [zbrand at bz094f linux-3.10.0-957.el7.s390x]$
>> [zbrand at bz094f linux-3.10.0-957.el7.s390x]$
>> [zbrand at bz094f linux-3.10.0-957.el7.s390x]$ grep -r CONFIG_LOCALVERSION
>> ./*
>>
>> .............
>>
>> ./arch/um/defconfig:CONFIG_LOCALVERSION=""
>> ./arch/um/defconfig:CONFIG_LOCALVERSION_AUTO=y
>> ./arch/unicore32/configs/unicore32_defconfig:CONFIG_LOCALVERSION="-unicore32"
>> ./arch/x86/configs/i386_defconfig:# CONFIG_LOCALVERSION_AUTO is not set
>> ./arch/x86/configs/x86_64_defconfig:# CONFIG_LOCALVERSION_AUTO is not set
>> ./arch/xtensa/configs/common_defconfig:CONFIG_LOCALVERSION=""
>> ./arch/xtensa/configs/iss_defconfig:CONFIG_LOCALVERSION=""
>> ./arch/xtensa/configs/iss_defconfig:CONFIG_LOCALVERSION_AUTO=y
>> ./arch/xtensa/configs/s6105_defconfig:CONFIG_LOCALVERSION=""
>> ./arch/xtensa/configs/s6105_defconfig:CONFIG_LOCALVERSION_AUTO=y
>> ./configs/kernel-3.10.0-s390x-debug.config:CONFIG_LOCALVERSION=""
>> ./configs/kernel-3.10.0-s390x-debug.config:# CONFIG_LOCALVERSION_AUTO is
>> not set
>> ./configs/kernel-3.10.0-s390x-kdump.config:CONFIG_LOCALVERSION=""
>> ./configs/kernel-3.10.0-s390x-kdump.config:CONFIG_LOCALVERSION_AUTO=y
>> ./configs/kernel-3.10.0-s390x.config:CONFIG_LOCALVERSION=""
>> ./configs/kernel-3.10.0-s390x.config:# CONFIG_LOCALVERSION_AUTO is not set
>> ./include/config/auto.conf:CONFIG_LOCALVERSION=""
>> ./include/generated/autoconf.h:#define CONFIG_LOCALVERSION ""
>> ./init/Kconfig: set in CONFIG_LOCALVERSION.
>> ./scripts/setlocalversion:# CONFIG_LOCALVERSION and LOCALVERSION (if set)
>> ./scripts/setlocalversion:res="${res}${CONFIG_LOCALVERSION}${LOCALVERSION}"
>> ./scripts/setlocalversion:if test "$CONFIG_LOCALVERSION_AUTO" = "y"; then
>> [zbrand at bz094f linux-3.10.0-957.el7.s390x]$
>>
>>
>>
>>
>> --
>> Regards
>> FuLong Wang
>> _______________________________________________
>>
>> On 12/10/20 16:28, Alexander Kapshuk wrote:
>>> On Thu, Dec 10, 2020 at 9:51 AM FuLong Wang <fulwang at linux.vnet.ibm.com> wrote:
>>>>
>>>>
>>>>
>>>> When I try to install the new built kernel and modules, i found the
>>>> install script will assign the kernel version as "3.10.0".
>>>
>>> The kernel version is set via these config options via scripts/setlocalversion:
>>> CONFIG_LOCALVERSION
>>> CONFIG_LOCALVERSION_AUTO
>>>
>>> In your setup, CONFIG_LOCALVERSION is probably set to 3.10.0.
>>> If that is the case, try setting CONFIG_LOCALVERSION="" via 'make
>>> menuconfig', and ensure that CONFIG_LOCALVERSION_AUTO is set to 'y'.
>>>
>>>>
>>>> Where is this defined?
>>>> Can we keep it as the current kernel version or change it as we want?
>>>>
>>>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>>>
>>>>
>>>> [zbrand at bz094f linux-3.10.0-957.el7.s390x]$ sudo make install
>>>> CHK include/generated/uapi/linux/version.h
>>>> CHK include/generated/utsrelease.h
>>>> CHK include/generated/qrwlock.h
>>>> CHK include/generated/qrwlock_api_smp.h
>>>> CHK include/generated/qrwlock_types.h
>>>> CHK kernel/qrwlock_gen.c
>>>> CHK lib/qrwlock_debug.c
>>>> CALL scripts/checksyscalls.sh
>>>> CC scripts/mod/devicetable-offsets.s
>>>> GEN scripts/mod/devicetable-offsets.h
>>>> HOSTCC scripts/mod/file2alias.o
>>>> HOSTLD scripts/mod/modpost
>>>> CHK include/generated/compile.h
>>>> SKIPPED include/generated/compile.h
>>>> CHK include/generated/uapi/linux/version.h
>>>> sh -x ./arch/s390/boot/install.sh 3.10.0 arch/s390/boot/bzImage \
>>>> System.map "/boot"
>>>> + '[' -x /root/bin/installkernel ']'
>>>> + '[' -x /sbin/installkernel ']'
>>>> + exec /sbin/installkernel 3.10.0 arch/s390/boot/bzImage System.map /boot
>>>> [zbrand at bz094f linux-3.10.0-957.el7.s390x]$
>>>> [zbrand at bz094f linux-3.10.0-957.el7.s390x]$
>>>> [zbrand at bz094f linux-3.10.0-957.el7.s390x]$ pwd
>>>> /home/zbrand/rpmbuild/BUILD/kernel-3.10.0-957.el7/linux-3.10.0-957.el7.s390x
>>>> [zbrand at bz094f linux-3.10.0-957.el7.s390x]$
>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Regards
>>>> FuLong Wang
>>>> _______________________________________________
>>>>
>>>> On 12/10/20 12:25, FuLong Wang wrote:
>>>>>
>>>>> Alexander,
>>>>>
>>>>>
>>>>> Thanks for the reminder!
>>>>>
>>>>>
>>>>> I realized that the new build module is with version "3.10.0" and so not
>>>>> match with my running kernel version "3.10.0-957.el7.s390x".
>>>>>
>>>>> I do confirm that i was using the right kernel source rpm.
>>>>>
>>>>> So, the question turns to why the "make modules" command changed the
>>>>> kernel version of built modules to "3.10.0" instead of
>>>>> "3.10.0-957.el7.s390x".
>>>>>
>>>>>
>>>>> Is there any special steps i need to follow to keep the original kernel
>>>>> naming convention?
>>>>>
>>>>> btw: I'm following below article to compile the kernel modules.
>>>>>
>>>>> https://wiki.centos.org/HowTos/BuildingKernelModules
>>>>>
>>>>>
>>>>> Thanks!
>>>>>
>>>>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>>>>
>>>>>
>>>>> [root at bz094f ~]# modinfo ib_ipoib
>>>>> filename:
>>>>> /lib/modules/3.10.0-957.el7.s390x/kernel/drivers/infiniband/ulp/ipoib/ib_ipoib.ko
>>>>>
>>>>> license: Dual BSD/GPL
>>>>> description: IP-over-InfiniBand net driver
>>>>> author: Roland Dreier
>>>>> alias: rtnl-link-ipoib
>>>>> rhelversion: 7.6
>>>>> srcversion: 917AA4365B3509F0B347217
>>>>> depends: ib_core,ib_cm
>>>>> intree: Y
>>>>> vermagic: 3.10.0 SMP mod_unload modversions
>>>>> parm: max_nonsrq_conn_qp:Max number of connected-mode QPs per
>>>>> interface (applied only if shared receive queue is not available) (int)
>>>>> parm: cm_data_debug_level:Enable data path debug tracing for
>>>>> connected mode if > 0 (int)
>>>>> parm: mcast_debug_level:Enable multicast debug tracing if > 0
>>>>> (int)
>>>>> parm: data_debug_level:Enable data path debug tracing if > 0
>>>>> (int)
>>>>> parm: send_queue_size:Number of descriptors in send queue (int)
>>>>> parm: recv_queue_size:Number of descriptors in receive queue
>>>>> (int)
>>>>> parm: ipoib_enhanced:Enable IPoIB enhanced for capable devices
>>>>> (default = 1) (0-1) (int)
>>>>> parm: debug_level:Enable debug tracing if > 0 (int)
>>>>> [root at bz094f ~]#
>>>>>
>>>>>
>>>>> [root at bz094f ~]# uname -ar
>>>>> Linux bz094f 3.10.0-957.el7.s390x #1 SMP Thu Oct 4 16:53:20 EDT 2018
>>>>> s390x s390x s390x GNU/Linux
>>>>>
>>>>>
>>>>> [root at bz094f ~]# ls -l /home/zbrand/sourcerpm/
>>>>> total 102468
>>>>> -rw-r--r--. 1 zbrand zbrand 257644 Dec 8 13:44
>>>>> asciidoc-8.6.8-5.el7.noarch.rpm
>>>>> -rw-r--r--. 1 zbrand zbrand 1551156 Dec 8 13:45
>>>>> glibc-static-2.17-260.el7.s390x.rpm
>>>>> -rw-r--r--. 1 zbrand zbrand 1307048 Dec 8 14:01
>>>>> graphviz-2.30.1-21.el7.s390x.rpm
>>>>> -rw-r--r--. 1 zbrand zbrand 101028281 Dec 8 13:15
>>>>> kernel-3.10.0-957.el7.src.rpm
>>>>> -rw-r--r--. 1 zbrand zbrand 52620 Dec 8 13:44
>>>>> newt-devel-0.52.15-4.el7.s390x.rpm
>>>>> -rw-r--r--. 1 zbrand zbrand 93176 Dec 8 14:07
>>>>> slang-devel-2.2.4-11.el7.s390x.rpm
>>>>> -rw-r--r--. 1 zbrand zbrand 625688 Dec 8 14:02
>>>>> source-highlight-3.1.6-6.el7.s390x.rpm
>>>>> [root at bz094f ~]#
>>>>>
>>>>>
>>>>>
>>>>>
>>>
>>> _______________________________________________
>>> Kernelnewbies mailing list
>>> Kernelnewbies at kernelnewbies.org
>>> https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>>>
>
>
> You mentioned that you were following the instructions to build your
> modules using this article,
> https://wiki.centos.org/HowTos/BuildingKernelModules.
> Which method did you use?
> Some of the methods describe setting the kernel version in their
> respective config files. E.g. cifs-kmod.spec.
> Perhaps your build environment relies on those config files to set the
> version of the kernel module?
>
> _______________________________________________
> Kernelnewbies mailing list
> Kernelnewbies at kernelnewbies.org
> https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>
Below is my command sequence.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#login as zbrand
cd ~/rpmbuild/BUILD/kernel-3.10.0-957.el7/linux-3.10.0-957.el7.s390x
#select non-enabled modules (most of them are infiniband related)
make menuconfig
#prepare env
make oldconfig
make prepare
make modules_prepare
#compile kernel and modules
make
#install new kernel and modules
sudo make Install
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Many Thanks!
--
Regards
FuLong Wang
_______________________________________________
More information about the Kernelnewbies
mailing list