[alsa-devel] 'unresolved symbol lock_kernel' on 2.4 kernel
Hi,
As part of recent testing I attempted to build current 1.0.24 alsa-driver on an older machine with 2.4.21-99 kernel .
'configure' and 'make' proceeded uneventfully, but 'rcalsasound start' gave following error:-
"Starting sound driver: snd-ice1712 /lib/modules/2.4.21-99-athlon/kernel/ sound/acore/snd.o: unresolved symbol lock_kernel /lib/modules/2.4.21-99-athlon/kernel/sound/acore/snd.o: unresolved symbol unlock_kernel /lib/modules/2.4.21-99-athlon/kernel/sound/acore/snd.o: insmod /lib/ modules/2.4.21-99-athlon/kernel/sound/acore/snd.o failed /lib/modules/2.4.21-99-athlon/kernel/sound/acore/snd.o: insmod snd-ice1712 failed"
This does not occur on 1.0.23 (or previous builds that I have tested).
I am aware that there was discussion about ditching 2.2/2.4 support, but my understanding was that 1.0.24 should build and work, but may be the last to do so - is that correct?
Is there a simple fix for this problem?
regards
Alan
At Mon, 21 Nov 2011 15:54:50 +0000, Alan Horstmann wrote:
Hi,
As part of recent testing I attempted to build current 1.0.24 alsa-driver on an older machine with 2.4.21-99 kernel .
'configure' and 'make' proceeded uneventfully, but 'rcalsasound start' gave following error:-
"Starting sound driver: snd-ice1712 /lib/modules/2.4.21-99-athlon/kernel/ sound/acore/snd.o: unresolved symbol lock_kernel /lib/modules/2.4.21-99-athlon/kernel/sound/acore/snd.o: unresolved symbol unlock_kernel /lib/modules/2.4.21-99-athlon/kernel/sound/acore/snd.o: insmod /lib/ modules/2.4.21-99-athlon/kernel/sound/acore/snd.o failed /lib/modules/2.4.21-99-athlon/kernel/sound/acore/snd.o: insmod snd-ice1712 failed"
This does not occur on 1.0.23 (or previous builds that I have tested).
I am aware that there was discussion about ditching 2.2/2.4 support, but my understanding was that 1.0.24 should build and work, but may be the last to do so - is that correct?
Well, I don't think any developers actually tested 2.2/2.4 with the real machine. We usually test the builds, but no more than that. So it's not unsurprising if 1.0.24 doesn't work with 2.4 kernel.
Is there a simple fix for this problem?
Stick with 1.0.23 :) There are no big changes regarding ice1712 driver since 1.0.23. The only change is the support of delta66e.
Or, just adding #include <linux/smp_lock.h> in include/adriver.h might fix the problem.
Takashi
On Tuesday 22 November 2011 07:44, you wrote:
At Mon, 21 Nov 2011 15:54:50 +0000, Alan Horstmann wrote:
As part of recent testing I attempted to build current 1.0.24 alsa-driver on an older machine with 2.4.21-99 kernel .
'configure' and 'make' proceeded uneventfully, but 'rcalsasound start' gave following error:-
"Starting sound driver: snd-ice1712 /lib/modules/2.4.21-99-athlon/kernel/ sound/acore/snd.o: unresolved symbol lock_kernel /lib/modules/2.4.21-99-athlon/kernel/sound/acore/snd.o: unresolved symbol unlock_kernel /lib/modules/2.4.21-99-athlon/kernel/sound/acore/snd.o: insmod /lib/ modules/2.4.21-99-athlon/kernel/sound/acore/snd.o failed /lib/modules/2.4.21-99-athlon/kernel/sound/acore/snd.o: insmod snd-ice1712 failed"
This does not occur on 1.0.23 (or previous builds that I have tested).
I am aware that there was discussion about ditching 2.2/2.4 support, but my understanding was that 1.0.24 should build and work, but may be the last to do so - is that correct?
Well, I don't think any developers actually tested 2.2/2.4 with the real machine. We usually test the builds, but no more than that. So it's not unsurprising if 1.0.24 doesn't work with 2.4 kernel.
Is there a simple fix for this problem?
Stick with 1.0.23 :) There are no big changes regarding ice1712 driver since 1.0.23. The only change is the support of delta66e.
Well, I only showed the ice1712 failures since the others duplicated.
Or, just adding #include <linux/smp_lock.h> in include/adriver.h might fix the problem.
Thanks for the pointers; I have tracked this down now. The includes were removed in Nov 2010. pcm_native.patch and info.patch add lock_kernel() etc back in. Adjustments to pcm_native.patch effectively added the include, but info.patch is missing it.
Adding #include <linux/smp_lock.h> to the first hunk of acore/info.patch fixed the build and load of the modules fine.
I realize there is not much interest from core devels in these sort of fixes. But if support for older kernels is to be formally abandoned, it would be nice to have a branch somewhere that represents the proper end-of-the-line where small fixes can be added - a quiet siding with buffers etc rather than just the track going over a cliff edge!
Regards
Alan
participants (2)
-
Alan Horstmann
-
Takashi Iwai