> >Setting up microcode.ctl (1.17-1) ...
> >udev active, devices will be created in /dev/.static/dev/
> >dpkg: error processing microcode.ctl (--configure):
> > subprocess post-installation script returned error exit status 20
>
> In one hour I've two report, all previous tests were ok, so
> I'm wondering if there is some external cause.
>
> I can find only two pattern:
> - amd64 architecture (I tested only on i386)
> - locate is: en_US.UTF-8
>
> The error is on the debconf scripts, so I will
> check if I quoted something wrong, if in amd64
> the template was generated wrongly, or if
> there is some locale problem on my installation
> script.
>
> Could you try to reinstall the package with LANG=C,
> and send to me all /var/lib/spkg/info/microcode.ctl.* files?
I figured out the problem: the "microcode" module was not loaded.
(my kernel has CONFIG_MICROCODE=m). After "modprobe microcode"
and "apt-get -f install", everything was OK.
I think this is because when the microcode module is not loaded,
"/dev/cpu/microcode" does not exist, and so the postinst calls
"makedev", which prints a diagnostic message about "udev active" to
stdout. Also, another message would have been printed to stdout if I
didn't have an Intel processor.
"man debconf-devel" says about the postinst script:
* Always source /usr/share/debconf/confmodule at the top of your
postinst, even if you won't be running any db_* commands in
it. This is required to make sure the config script gets a change
to run (see HACKS for details).
* Avoid outputting anything to stdout in your postinst, since that
can confuse debconf, and postinst should not be verbose
anyway. Output to stderr is ok, if you must.
I moved ". /usr/share/debconf/confmodule" to the very top of the
postinst, below "set -e", and the problem went away. I presume
/usr/share/debconf/confmodule somehow works around the stdout problem
-- but it would probably also be good to redirect all output to stderr
anyway.
I would also recommend that you don't unconditionally unload the
microcode module in /etc/init.d/microcode.ctl. If I, for example,
included "microcode" in /etc/modules, I wouldn't expect a startup
script to undo that.
Thanks,
-jim
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]