DebianThis forum is for the discussion of Debian Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
I recently compiled a number of my own kernels. I used the method from the sticky note on this forum, and ended up with deb files for the completed kernel and headers. I had some trouble with the first one I compiled, so I went on to build several more. When installing kernels after the initial one I would get this error from the 'dpkg -i' command. (See below.) Then I'd have to boot up to an earlier kernel, remove the kernel I was trying to replace, and then install the one I had just finished building. Does everyone have this problem?
Code:
...snip...
trying to overwrite `/lib/firmware/keyspan_pda/xircom_pgs.fw', which is also in package linux-image-2.6.27.4-d1
dpkg-deb: subprocess paste killed by signal (Broken pipe)
I recently compiled a number of my own kernels. I used the method from the sticky note on this forum, and ended up with deb files for the completed kernel and headers. I had some trouble with the first one I compiled, so I went on to build several more. When installing kernels after the initial one I would get this error from the 'dpkg -i' command. (See below.) Then I'd have to boot up to an earlier kernel, remove the kernel I was trying to replace, and then install the one I had just finished building. Does everyone have this problem?
Code:
...snip...
trying to overwrite `/lib/firmware/keyspan_pda/xircom_pgs.fw', which is also in package linux-image-2.6.27.4-d1
dpkg-deb: subprocess paste killed by signal (Broken pipe)
Thanks a lot. Any help would be appreciated.
Yeah, if you're going to use a module that has firmware from the kernel, then you'll run into this. (I think I said that right.) If you don't actually use this xircom device, then turn it off in the .config fine and you should be OK.
BTW, are you aware of the issue of replacing the /lib/modules directory for the running kernel? Normally you're going to want to rename /lib/modules/`uname -r` to perhaps /lib/modules/`uname -r`-old or something like that before you run dpkg -i. This will protect you from the chance that you haven't loaded a module until after you do the dpkg -i and then the module isn't actually for the kernel that is still running. OTOH, you can take advantage of this fact if you're working on a module by doing rmmod, then replacing the .ko file in /lib/modules/`uname -r` and then modprobing it. Hope this isn't too much information for you at this point.
I just had another, possibly dangerous, thought. If you actually need this firmware, you might try renaming it before doing dpkg -i. It'll either work or it wont.
BTW, are you aware of the issue of replacing the /lib/modules directory for the running kernel? Normally you're going to want to rename /lib/modules/`uname -r` to perhaps /lib/modules/`uname -r`-old or something like that before you run dpkg -i. This will protect you from the chance that you haven't loaded a module until after you do the dpkg -i and then the module isn't actually for the kernel that is still running. OTOH, you can take advantage of this fact if you're working on a module by doing rmmod, then replacing the .ko file in /lib/modules/`uname -r` and then modprobing it. Hope this isn't too much information for you at this point.
I booted into a 2.6.26-1-686 stock kernel. From there I removed the old 2.6.27 kernel from the system. Then I installed the new one and then I rebooted. Will this always work? Do debian stock kernels have a mechanism for dealing with this problem? Wouldn't anything you rename immediately become absent and unusable to the computer? I guess you mean 'rename it back if you need it again later'... right? btw, I get you when you say to remove the module from the kernel config if you don't use it. Thanks.
One last thing, what do you mean when you say 'if you're working on a module' ??
I booted into a 2.6.26-1-686 stock kernel. From there I removed the old 2.6.27 kernel from the system. Then I installed the new one and then I rebooted. Will this always work? Do debian stock kernels have a mechanism for dealing with this problem?
I don't understand this question. What do you mean "will this always work?"? Will what always work? There's nothing special about the debian stock kernel, other than the configuration.
Quote:
Wouldn't anything you rename immediately become absent and unusable to the computer?
Not if it's in use. If a module is in use by the kernel, even if you remove it, the kernel still has access to it. It's a feature of the unix filesystems that a file isn't actually removed until no-one has it open. It will disappear from you display, yes. But, the inode won't be reused by the system until the final party closes it.
Quote:
I guess you mean 'rename it back if you need it again later'... right?
That's possible. But it's really just to avoid the issue of having funny things happen with loadable modules, as I understand it.
Quote:
One last thing, what do you mean when you say 'if you're working on a module' ??
Exactly that. I was trying to help solve a bug in a new module earlier in the year. My steps were essentially the following:
Code:
compile just the module I'm working on
rmmod
modprobe
test
repeat
If I had been able to find the bug, I could have just moved the new .ko file into /lib/modules, rather than recompile the whole kernel and reinstall it.
I probably don't understand enough, but why don't I get a message about xircom_pgs.fw when I update a stock kernel during a 'safe-upgrade' or 'full-upgrade' with aptitude?
well, 2.6.26-1-686 was constantly being updated. The kernel names were always 2.6.26-1-686, while the package names were something like linux-image-2.6.26-1-686_2.6.26-8_i386.deb. I would think that the computer would treat them as the same name in that the grub menu.lst line always looked the same... I would think that vmlinuz-2.6.26-1-686 is vmlinuz-2.6.26-1-686 regardless what the deb package name is. (in that case it's updating to the same version without the error)
On the other hand, I would think that 2.6.27.2 and 2.6.27.4 would be teated as different, but I think the firmware error came up that time... iow I think when I had successfully installed 2.6.27.2 and I tried to compile and install 2.6.27.4 I got the error about the firmware. (in this case a later version with the error)
I just don't know the answer. I ran into this myself in the early days of compiling kernels. Once I realised that they were for devices I don't have I just changed my config and moved on. The only thing I can suggest is to verify that the stock kernel actually has this device enabled. Then, if it does, run an upgrade, capture the steps, and see what they do to avoid the problem.
I didn't read it carefully, but he says that the problem doesn't exist for Debian kernel upgrades. Here's a long snippet
Quote:
Example (simplified)
--------------------
Here is how *existing* packaging tools will create Debian kernel packages
from upstream source for a few different versions.
The package name consists of 4 parts; taking the first as example:
- linux-image-2.6.25 : package name, includes kernel version
- 1 : package version
- i386 : architecture
- deb : extention
It is clear to see that 2.6.25_1, 2.6.26_1 and even 2.6.27-rc1_1 can be
co-installed without problem: no file conflicts.
It is even possible to upgrade from 2.6.27-rc1_1 to 2.6.27-rc1_2 without
problem: as the package *name* is the same the package manager will allow
the firmware.dat file to be overwritten by the new version.
However, the package manager will complain loudly when you try to install
2.6.27-rc2_1. Attached is a real life example from my own system when I
try to install rc6 alongside rc5.
Last edited by Quakeboy02; 11-01-2008 at 03:54 PM.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.