The other day I was doing a routine yum update,_ for those of you who don’t know what yum update is this is going to be a very boring read_, and I started to get a lot of dependency issues. Now these are not issues in the sense that I feel that I have been abandoned by everyone I love (smirk) but more the case that the new updates passed by Fedora to me by their official repo (this is a web store of FREE you see that FREE software packages etc) were no longer consistent with other packages within the same repo. Now at first I thought it was a timing issue with things not updating together and it would be fine. But several hours later and well it was still a mess. So after doing the normal:
sudo yum clean all sudo yum update
It was still broken. So I decided to check the testing repo and sure enough the packages I needed were in there so I allowed the testing repo to be used and did the update and all went well. For the record this was a Firefox related nss dependency issue.
So cometh today and again more updates, to be honest I like Linux updates and updating with Linux and yum as oppose to Windows which I despair at. Now these updates were for the kernel but that is not normally an issue. I have to do things a little differently because I use a closed 3rd party graphic driver module so I do an update and then on next reboot I need to put my new driver for my graphic card on the system. I am use to it and it again is normally only a short delay to a normal reboot. But it should be noted that when the new kernel goes in I can no longer run with that new kernel a GUI/DESKTOP/WINDOWS like interface until I do put the new graphic driver kernal modules in.
Ok, nothing on today so quick trip to NVIDIA’s website check have I got the latest drivers - ooo’ no I haven’t cool - download them and reboot. Boots up as I expect and stops as I expect now comes the fun bit I try to install the nvidia drivers and the baulk out telling me that I’ve not setup the paths to the kernel building magic files.
Hmmm odd must be the new drivers. No worries have old ones will use them. NO again they baulk same message? Really odd. So ideally I would go online and check but of course I am in the command line (CLI) or terminal interface no X running.
Hmmm Networkmanager you are all good now? No you are a very very very naughty boy. Basically if I was connected to a wired network I would in the old days do:
sudo service network start
or something like that then
sudo ifup eth0
to start my wired network But then we got NetworkManager which I kept turned off for probably five releases of Fedora as it annoyed me so much. In theory I should be able to do:
sudo systemctl start NetworkManager
sudo NetworkManager start
and that would load the service then I could do:
nmcli con up uuid longstringoftextwhichislongerthanthisstringivetypehere
and my wireless network would magically activate because “longstringoftextwhichislongerthanthisstringivetypehere” belongs to a file I’ve already setup with passwords and ids and things in the GUI when I had a desktop. I say in theory because that does not work either and so what happens is I get lots of nice messages telling me that my freedesktop.org files are not available and 90 seconds later everything times out. Hmm that is very annoying you see.
** So how can I write this?**
Well that is easy I just go back to my old kernel and all works fine. So why not check yum with your old kernel in the warm and loveliness of the GUI then? Well I did and this is where it gets really odd because now according to Fedora and Yum the kernel I have just installed no longer exists?
sudo yum reinstall kernel Loaded plugins: auto-update-debuginfo, langpacks, refresh-packagekit Skipping the running kernel: kernel-3.7.3-101.fc17.x86_64 Installed package kernel-3.7.6-102.fc17.x86_64 (from updates) not available. Installed package kernel-3.6.11-5.fc17.x86_64 (from updates) not available. Error: Nothing to do
But I can type:
yum info kernel Installed Packages Name : kernel Arch : x86_64 Version : 3.7.6 Release : 102.fc17 Size : 119 M Repo : installed From repo : updates Summary : The Linux kernel URL : http://www.kernel.org/ Licence : GPLv2 Description : The kernel package contains the Linux kernel (vmlinuz), the core : of any Linux operating system. The kernel handles the basic : functions of the operating system: memory allocation, process : allocation, device input and output, etc.
So I don’t understand. It is not the kernel anyhow which is the issue its the headers and again they seem ok? So what did you do as we really, really, really want to know? In the end I spent an hour messing with nmcli, gave up. I went back into the old kernel and did:
yum remove kernel.x86_64 0:3.7.6-102.fc17
which also removed
yum downgrade kernel-headers yum update
and then this reinstalled the 102 release. Now your going to ask “did this help” and well my answer is going to be?
NO not a blind bit of difference at all.
So I am back in my 3.7.3-101.fc17 kernel and pondering what on earth to do next. Yes I have googled for an answer and so far one has not been forth coming so I am giving up. And that reminds me ResearcherID - I get the concept I want to have the badge on my blog have I got the cunning or the guile to do it? No, no I have not I have become mortal and with that I am going to watch Graham Norton on iplayer like the rest of the normals.
About an hour after writing this I figured I should go and check the old nv forums for info only to find the nv linux area had been moved to an official dev area of the nvidia website. I had a look there and after another couple of minutes found a post that explained it all. Basically it is nothing to do with Fedora it is all NV fault because their code was checking for the presence of things but due to the way it was written when it hit > 3.7.5 it broke and of course this was 3.7.6. A very, very nice man included a three line patch in his thread. I found the evil file, edited it, rebooted into the new kernel updated and we are all happy with the result so far. Now the world waits on NV to actually bother to fix their installer properly and I bow my head to Fedora seeing as the kernel has shrunk from 60 MB to 17 MB in the last three updates. And yes I also worked out the ResearcherID thing (see top right of page). I know sometimes it is all a case of perspective!
If anyone stumbles on this looking for a fix basically unpack you NVIDIA*.run file with the –extract command then go to the kernel directory and edit the file called conftest.sh go to line 1695 and look at the block below
if [ -f $MAKEFILE -a -f $CONFIG ]; then # # This source tree is not configured, but includes # a Makefile and a .config file. If this is a 2.6 # kernel older than 2.6.6, that's all we require to # build the module. # VERSION=$(grep "^VERSION =" $MAKEFILE | cut -d " " -f 3) PATCHLEVEL=$(grep "^PATCHLEVEL =" $MAKEFILE | cut -d " " -f 3) SUBLEVEL=$(grep "^SUBLEVEL =" $MAKEFILE | cut -d " " -f 3) if [ -n "$VERSION" -a $VERSION -ge 3 ] || \ [ -n "$PATCHLEVEL" -a $PATCHLEVEL -ge 6 \ -a -n "$SUBLEVEL" -a $SUBLEVEL -le 5 ]; then SELECTED_MAKEFILE=Makefile.kbuild RET=0 fi fi fi
They differ in the addition of the VERSION line and then the subsequent “if” lines - you see? Many thanks to Meyithi who posted the patch file.