Hide Forgot
Created attachment 513962 [details] qla2xxx spec file used to generate dd.iso Description of problem: I'm using ddiskit-1.0.tar.gz package to prepare dd.iso for qla2xxx module for RHEL5.6 (2.6.18-238.el5) on a 32-bit system. While using the dd.iso it is seen that the qla2xxx.ko is loaded from modules.cgz and the driver rpms are copied to some /tmp location. These driver rpms are never seen installed by the Redhat installer. The driver rpms should be installed from the dd.iso during OS installation/boot time. Version-Release number of selected component (if applicable): DDiskit v1.0 (ddiskit-1.0.tar.gz) How reproducible: Steps to Reproduce: 1. Prepare dd.iso with help of ddiskit-1.0.tar.gz for qla2xxx driver v8.03.03.15.05.06-k 2. The driver source can be obtained from QLogic website at, http://driverdownloads.qlogic.com/QLogicDriverDownloads_UI/SearchByProduct.aspx?ProductCategory=322&Product=1157&Os=65 3. The qla2xxx spec file to be used is attached with this Bug report Actual results: While using the dd.iso it is seen that the qla2xxx.ko is loaded from modules.cgz and the driver rpms are copied to some /tmp location Expected results: The qla2xxx driver rpms from dd.iso should be installed during OS installation/boot time. Additional info:
What kernel version do you build the ISO against? Do you have a pointer for dd.iso and rpms that we can have a try?
Created attachment 514198 [details] Driver update disk iso for RHEL5.6 kernel version 2.6.18-238.el5
it's good to try to install the rpm manually to see if it goes through: [root@deb mnt]# rpm -ivh ./rpms/2.6.18-238.el5/x86_64/kmod-qla2xxx-8.03.03.15.05.06-1.1.x86_64.rpm error: Failed dependencies: ksym(kobject_uevent_env) = 7199b58c is needed by kmod-qla2xxx-8.03.03.15.05.06-1.1.x86_64 ksym(pci_get_domain_bus_and_slot) = 8459944e is needed by kmod-qla2xxx-8.03.03.15.05.06-1.1.x86_64 You need to use the greylist feature of the ddiskit to omit those 2 symbols to become rpm dependency. Basically the issue happens when the module needs a symbol, which is not white listed: - when making the rpm for the driver, each extern symbol, that the driver uses is put to the "Requires" section - later, when you install the rpm, the requires section is run against the white list to check all the extern symbols match what the kernel provides - so if the needed extern symbol is not in white list, the installation fails on the above check We bypass this during the rpm assembly time by filtering out unwanted symbols -> symbols that should have been in white list, but are not -> grey symbols ;) As for ddiskit implementation, it's enough to provide file called symbols.greylist, that have one grey symbol per line. jirka
please let me know if you need more info, I'll close this within a week if I dont hear from you
Jiri, I will update by 11/11 if the symbols.greylist would work for us or not. Thanks, Lalit.
Jiri, I built the driver update iso on a fresh installed RHEL5.6 system. Then installed the rpm from the iso manually to check if goes through as mentioned in #comment3. It installed fine without any kernel symbol dependency failure. Hence I proceeded further to use the iso during BFS installation and see the original issue reported i.e the qla2xxx.ko is installed from modules.cgz in the iso vs the rpm installation. I am expecting the kmod-qla2xxx rpm from the iso to get installed after using the driver update iso. Let me know if this is correct. Thanks, Nilesh
Created attachment 533053 [details] New qla2xxx driver update iso Attaching the driver update iso with which the kmod-qla2xxx rpm is installed manually without any ksym dependency failure.
(In reply to comment #6) > Jiri, > > I built the driver update iso on a fresh installed RHEL5.6 system. > Then installed the rpm from the iso manually to check if goes through as > mentioned in #comment3. It installed fine without any kernel symbol dependency > failure. Hence I proceeded further to use the iso during BFS installation and > see the original issue reported i.e the qla2xxx.ko is installed from > modules.cgz in the iso vs the rpm installation. I am expecting the kmod-qla2xxx > rpm from the iso to get installed after using the driver update iso. Let me > know if this is correct. oops, missed t his comment.. but it looks like it works for you the rpm from the ISO should be installed after you used the ISO I'll close this as NOTABUG if I dont hear from you, please put NEEDINFO state if you make a comment, so there's better chance I dont miss it next time ;) thanks
(In reply to comment #8) > (In reply to comment #6) > > Jiri, > > > > I built the driver update iso on a fresh installed RHEL5.6 system. > > Then installed the rpm from the iso manually to check if goes through as > > mentioned in #comment3. It installed fine without any kernel symbol dependency > > failure. Hence I proceeded further to use the iso during BFS installation and > > see the original issue reported i.e the qla2xxx.ko is installed from > > modules.cgz in the iso vs the rpm installation. I am expecting the kmod-qla2xxx > > rpm from the iso to get installed after using the driver update iso. Let me > > know if this is correct. > > oops, missed t his comment.. but it looks like it works for you > the rpm from the ISO should be installed after you used the ISO That's what is not working. The rpm from the ISO does not install.
> That's what is not working. The rpm from the ISO does not install. Your rpms do not contain dud-qla2xxx... provides, which makes anaconda fail to find the rpm. The reason is probably that your ddiskit qla2xxx directory does not contain updated kmotool from tmpl/new/rpm/SOURCES/kmodtool, could you please check? If thats not the case, please attach your whole ddiskit tarball you use, thanks
closing as NOTABUG for no feedback, please reopen with data requested if needed
(In reply to comment #11) > closing as NOTABUG for no feedback, please reopen with data requested > if needed Jiri, Sorry for the delayed response. I tried using the correct Provides field within the kmodtool and still see the issue. Please suggest how to re-open the bug so that I can attach the complete package that is being used to build the iso. Thanks, Nilesh
Created attachment 592919 [details] DDiskit build package
The attached DDiskit package is used to build the iso on RHEL5.8 i686 system. And it contains qla2xxx.spec which uses kmodtool_qla2xxx and qla2xxx-8.03.07.14.5.6.tar.bz2 sources. The kmodtool_qla2xxx uses the Provides field to include dud-${kmod_name}. I verified this using the rpm --provides command on the generated rpm. Let me know if this is the field that you are expecting to have in the built rpm. The qla2xxx module still gets loaded from modules.cgz instead of the rpm. Thanks, Nilesh
I've just tried to build ISO image from the ddiskit sources from comment 13 (with added -V OEMDRV parameter to mkisofs as the only change) and the result works perfectly for me. What do you mean by "[t]he qla2xxx module still gets loaded from modules.cgz instead of the rpm"? Do you mean "from modules.cgz from the installation media instead of modules.cgz from the driver disk"? If so, could you please attach the built ISO image and anaconda.log? (Accessible as /tmp/anaconda.log during the installation; you don't have to perform the whole installation, grabbing the file after you specified the driver disk etc. is enough.)
Is this still an issue? If so, could you please provide the data according to comment 15? Thanks!
Can you please specify where to use -V OEMDRV parameter to mkisofs. I checked adding the parameter in Build.rules as below, 123 diskiso: disk images cleandiskiso 124 @echo -e "\nBuilding ISO image..." 125 @mkisofs -R -o -V OEMDRV images/dd.iso disk >/dev/null 2>&1 Are you suggesting the same change. If yes, then this gives iso build errors, Building ISO image... make: *** [diskiso] Error 2 Let me know if I'm missing anything. Thanks, Nilesh
(In reply to comment #17) > 125 @mkisofs -R -o -V OEMDRV images/dd.iso disk >/dev/null 2>&1 Please do not put the parameter in the middle of "-o images/dd.iso". The correct command line is: @mkisofs -R -V OEMDRV -o images/dd.iso disk >/dev/null 2>&1 In any case, this is just for convenience (see RHEL 5 Installation Guide, section 7.3.1), it is not needed and probably won't solve the problem. Please explain what you mean by "[t]he qla2xxx module still gets loaded from modules.cgz instead of the rpm". Do you mean "from modules.cgz from the installation media instead of modules.cgz from the driver disk"? If so, could you please attach the built ISO image and anaconda.log? (Accessible as /tmp/anaconda.log during the installation; you don't have to perform the whole installation, grabbing the file after you specified the driver disk etc. is enough.)
The discussion here is in context of driver disk and not installation media. Here is the snapshot of driver disk after it is mounted in /mnt, [root@Accord-RHEL5-x86 mnt]# ls -R -1 .: modinfo modules.alias modules.cgz <=== qla2xxx module gets loaded from here modules.dep pcitable rhdd rpms ./rpms: 2.6.18-308.el5 repodata ./rpms/2.6.18-308.el5: i686 ./rpms/2.6.18-308.el5/i686: kmod-qla2xxx-8.03.07.14.5.6-1.1.i686.rpm <== This rpm is not seen installed after installation of OS. kmod-qla2xxx-xen-8.03.07.14.5.6-1.1.i686.rpm ./rpms/repodata: filelists.xml.gz other.xml.gz primary.xml.gz repomd.xml The expected behavior is that the rpms should get installed and the qla2xxx module should get loaded from rpm.
Thank you for explaining where you see the problem, this was not clear. However, I also need the second part of my questions answered to be able to help you. Please attach the anaconda.log and the built ISO image.
Created attachment 627393 [details] qla2xxx dd.iso Please find attached the qla2xxx dd.iso and anaconda.log. Thanks, Nilesh
Created attachment 627405 [details] anaconda log file Anaconda log file
Created attachment 627605 [details] Patch for testing Thanks. I think I found the problem. You're using two symbols that are not on kABI whitelist: pci_get_domain_bus_and_slot and kobject_uevent_env. I'm attaching a patch to ddiskit to verify this. You'll need to run "make distclean" before you build an image with this patch, or the patch will not have the intended effect. Please test whether the image built with this patch applied works for you. Please note the patch is for testing purposes only, it circumvents part of kABI checks and as such it could cause problems with kernel security updates and/or with RHEL upgrading, and images built by ddiskit with this patch applied are not intended to be shipped.
The attached patch in comment 23 installed the qla2xxx driver rpm on OS installation.
Please get the two symbols submitted for inclusion on the kABI whitelist. RHEL5 driver updates do not support non-whitelisted symbols.