Difference between revisions of "Linux Troubleshooting"
(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.