Эти материалы помечены как "окончательные". Показать Ответов: 7
Warning: Driver (thtxg) successfully added to system but failed to attach
This message typically has one of the following reasons:
1) The hardware has not been detected propperly (i.e. the system cannot find the device "pciXXXX,YYYY")
2) The driver.conf file is missing. If your driver needs a driver.conf file it must be placed in /kernel/drv (or /usr/kernel/drv), not in /kernel/drv/sparcv9.
3) Check if your attach() function is called at all (eg. using cmn_err()). If yes, your attach() function behaves differently on Sparc and on x86.
Thank you for your reply.
I trace entering the interface function using cm_err().
On i386 I see all info() init() probe() attach() functions being called by the kernel.
On sparc while info() and init() are called and return success, probe() and attach() are not called.
As far as I can tell the only difference between i386 and sparc driver versions is CFLAG definition. Other than that c source, Makefile, OS and compilation chain are identical.
I have this annoying problem on a driver I'm working on for x86 32bit platform. Have you found out answers to why "attach()" is not called?
I see the same problem. All traces in probe and attach get logged in /var/adm/messages when I add_drv in x86. Nothing when I add_drv on Sparc. I get the same message "failed to attach". But driver gets added and I see it associated with the device in prtconf.
Anyone seen and figured this out?
Be sure to check this first. It's usually the problem.
The hardware has not been detected propperly.
Blocking link spam.
The two things i'd look for are 1) funky word ordering issues and 2) some conflicting class definition in /etc/driver_aliases. If you are really determined, you can use mdb and step through the kernel initialization and see why it isn't called....