Wireless not working after upgrade to RHEL 6.5

root's picture

I got an automatic update of Red Hat Enterprise Linux from 6.4 to 6.5 and after reboot my surprise was to find wireless network (wi-fi) disabled.
The first thing to look at was boot.log and it seems indeed the wireless support modules were unable to load. I will not go trough all my searches but point out the most important.
Forgot to mention, I have Lenovo T420 - it might be important for some.

I found the error in boot.log:

[root@florian log]# grep udev /var/log/boot.log 
Starting udev:                                           FATAL: Error inserting iwldvm (/lib/modules/2.6.32-431.11.2.el6.x86_64/kernel/drivers/net/wireless/iwlwifi/dvm/iwldvm.ko): Unknown symbol in module, or unknown parameter (see dmesg)
Retrigger failed udev events                               [  OK  ]

Trying to manually enable the modules was giving the same error:

[root@florian ~]# modprobe iwldvm
WARNING: Error inserting iwlwifi (/lib/modules/2.6.32-431.11.2.el6.x86_64/kernel/drivers/net/wireless/iwlwifi/iwlwifi.ko): Unknown symbol in module, or unknown parameter (see dmesg)
FATAL: Error inserting iwldvm (/lib/modules/2.6.32-431.11.2.el6.x86_64/kernel/drivers/net/wireless/iwlwifi/dvm/iwldvm.ko): Unknown symbol in module, or unknown parameter (see dmesg)

By running dmesg as recommended, it seems the problem is because of missing ipv6 support:

[root@florian ~]# dmesg|tail -n 2
mac80211: Unknown symbol unregister_inet6addr_notifier
mac80211: Unknown symbol register_inet6addr_notifier

Indeed, ipv6 is disabled:

[root@florian ~]# cat /etc/modprobe.d/disable-ipv6.conf
install ipv6 /bin/true
blacklist ipv6
install ip6_tables /bin/true
blacklist ip6_tables
[root@florian log]# lsmod|grep -i ipv6
[root@florian log]#

This is not OK, if I want to have ipv6 disabled, I have my reasons. Normally I won't do this but today I do not have time to dig deeper so I will just enable it and see if it works.
Will provide the permanent fix later so stay tuned.

Fix by enabling ipv6:

1. Comment out all lines in /etc/modprobe.d/disable-ipv6.conf (do not delete the file or any line - keep them there in case you want to revert):

[root@florian ~]# cat /etc/modprobe.d/disable-ipv6.conf
#install ipv6 /bin/true
#blacklist ipv6
#install ip6_tables /bin/true
#blacklist ip6_tables

2. Reboot.

3. Wireless should work now because ipv6 is enabled. Also boot.log and lsmod have the correct display:

[root@florian log]# lsmod|grep -i ipv6
ip6t_ipv6header         1792  2 
nf_conntrack_ipv6       8337  6 
nf_defrag_ipv6         11156  1 nf_conntrack_ipv6
nf_conntrack           79758  7 ipt_MASQUERADE,iptable_nat,nf_nat,nf_conntrack_ipv4,nf_conntrack_ftp,nf_conntrack_ipv6,xt_state
ip6_tables             18732  4 ip6table_mangle,ip6t_LOG,ip6t_ipv6header,ip6table_filter
ipv6                  317829  93 ip6table_mangle,ip6t_REJECT,nf_conntrack_ipv6,nf_defrag_ipv6,mac80211

[root@florian log]# grep udev /var/log/boot.log
Starting udev: [ OK ]
Retrigger failed udev events [ OK ]

[root@florian log]# lsmod|grep iwl
iwldvm                135807  0 
mac80211              552581  1 iwldvm
iwlwifi                92090  1 iwldvm
cfg80211              619515  3 iwldvm,mac80211,iwlwifi

Thou shalt not steal!

If you want to use this information on your own website, please remember: by doing copy/paste entirely it is always stealing and you should be ashamed of yourself! Have at least the decency to create your own text and comments and run the commands on your own servers and provide your output, not what I did!

Or at least link back to this website.