Difference between revisions of "Linux Troubleshooting"

From Sensoray Technical Wiki
Jump to: navigation, search
(First version)
 
 
(One intermediate revision by one user not shown)
Line 2: Line 2:
 
== Linux Troubleshooting ==
 
== Linux Troubleshooting ==
  
Use the 'dmesg' command to check for driver diagnostic messages.
+
Use the ''dmesg'' command to check for driver diagnostic messages.
  
When doing 'modprobe' of a Sensoray driver module, the following messages may appear: "<modulename>: disagrees about version of symbol <symbolname>"
+
When doing ''modprobe'' of a Sensoray driver module, the following messages may appear: ''"<modulename>: disagrees about version of symbol <symbolname>"''
  
This may be due to a mismatch of vermagic between the currently running kernel and the config file used to build the driver module.  Compare the 'vermagic' field using the 'modinfo' command between the Sensoray driver module name and the 'modinfo videobuf_vmalloc' from the running kernel.
+
This may be due to a mismatch of vermagic between the currently running kernel and the config file used to build the driver module.  Compare the ''vermagic'' field using the ''modinfo'' command between the Sensoray driver module name and the ''modinfo videobuf_vmalloc'' from the running kernel.  A common cause for this discrepancy is when the operating system upgrades the Linux kernel during automatic software updates.
  
 
To correct the issue, copy the currently running config to the kernel source directory and rebuild the driver module.
 
To correct the issue, copy the currently running config to the kernel source directory and rebuild the driver module.
Line 18: Line 18:
 
   sudo cp /boot/config-`uname -r` /lib/modules/`uname -r`/build/.config
 
   sudo cp /boot/config-`uname -r` /lib/modules/`uname -r`/build/.config
  
If "/boot/config-`uname -r`" doesn't exist on your system, the config may also be copied from one of the following locations:
+
If ''"/boot/config-`uname -r`"'' doesn't exist on your system, the config may also be copied from one of the following locations:
  
 
   zcat /proc/config.gz | sudo tee /lib/modules/`uname -r`/build/.config
 
   zcat /proc/config.gz | sudo tee /lib/modules/`uname -r`/build/.config

Latest revision as of 16:45, 3 February 2022

[edit] Linux Troubleshooting

Use the dmesg command to check for driver diagnostic messages.

When doing modprobe of a Sensoray driver module, the following messages may appear: "<modulename>: disagrees about version of symbol <symbolname>"

This may be due to a mismatch of vermagic between the currently running kernel and the config file used to build the driver module. Compare the vermagic field using the modinfo command between the Sensoray driver module name and the modinfo videobuf_vmalloc from the running kernel. A common cause for this discrepancy is when the operating system upgrades the Linux kernel during automatic software updates.

To correct the issue, copy the currently running config to the kernel source directory and rebuild the driver module.

Backup the original config file:

 (cd /lib/modules/`uname -r`/build; sudo mv .config .config.save)

Copy the current running config:

 sudo cp /boot/config-`uname -r` /lib/modules/`uname -r`/build/.config

If "/boot/config-`uname -r`" doesn't exist on your system, the config may also be copied from one of the following locations:

 zcat /proc/config.gz | sudo tee /lib/modules/`uname -r`/build/.config
 sudo cp /proc/config /lib/modules/`uname -r`/build/.config


After doing the above, rebuild and try to re-install the Sensoray driver module.

Personal tools
Namespaces

Variants
Actions
Toolbox