Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

"I: update-initramfs is disabled (live system is running on read-only media)" ...

23 views
Skip to first unread message

Albretch Mueller

unread,
Feb 16, 2024, 2:50:07 PMFeb 16
to
I've got a relatively old laptop with an ATI Radeon HD card, which
firmware I can't update. Wild pixelations happen even on relatively
simple pages not just videos. It seems to be a common problem. What I
have searched and found out is that I will have to un/repack initramfs
..., but I haven't found a relatively safe, complete procedure.

How can you update the initramfs on read-only media?

$ sudo lspci | grep "VGA\|Radeon"
00:01.0 VGA compatible controller: Advanced Micro Devices, Inc.
[AMD/ATI] Wrestler [Radeon HD 6320]

$ sudo hwinfo --gfxcard
11: PCI 01.0: 0300 VGA compatible controller (VGA)
[Created at pci.386]
Unique ID: vSkL.bvK4VqmPxPA
SysFS ID: /devices/pci0000:00/0000:00:01.0
SysFS BusID: 0000:00:01.0
Hardware Class: graphics card
Model: "ATI Wrestler [Radeon HD 6320]"
Vendor: pci 0x1002 "ATI Technologies Inc"
Device: pci 0x9806 "Wrestler [Radeon HD 6320]"
SubVendor: pci 0x17aa "Lenovo"
SubDevice: pci 0x21ec
Driver: "radeon"
Driver Modules: "radeon"
Memory Range: 0xe0000000-0xefffffff (ro,non-prefetchable)
I/O Ports: 0x3000-0x30ff (rw)
Memory Range: 0xf0300000-0xf033ffff (rw,non-prefetchable)
Memory Range: 0x000c0000-0x000dffff (rw,non-prefetchable,disabled)
IRQ: 26 (4041584 events)
I/O Ports: 0x3c0-0x3df (rw)
Module Alias: "pci:v00001002d00009806sv000017AAsd000021ECbc03sc00i00"
Driver Info #0:
Driver Status: radeon is active
Driver Activation Cmd: "modprobe radeon"
Driver Info #1:
Driver Status: amdgpu is active
Driver Activation Cmd: "modprobe amdgpu"
Config Status: cfg=new, avail=yes, need=no, active=unknown

Primary display adapter: #11

$ sudo dmesg | grep --ignore-case "VGA\|video\|display\|Radeon"
[ 0.226971] Console: colour VGA+ 80x25
[ 0.287622] smpboot: CPU0: AMD E-450 APU with Radeon(tm) HD
Graphics (family: 0x14, model: 0x2, stepping: 0x0)
[ 0.417444] acpi PNP0A08:00: ignoring host bridge window [mem
0x000ce000-0x000cffff window] (conflicts with Video ROM [mem
0x000c0000-0x000ce5ff])
[ 0.418510] pci 0000:00:01.0: Video device with shadowed ROM at
[mem 0x000c0000-0x000dffff]
[ 0.457408] pci 0000:00:01.0: vgaarb: setting as boot VGA device
[ 0.457408] pci 0000:00:01.0: vgaarb: bridge control possible
[ 0.457408] pci 0000:00:01.0: vgaarb: VGA device added:
decodes=io+mem,owns=io+mem,locks=none
[ 0.457408] vgaarb: loaded
[ 4.436446] ACPI: video: Video Device [VGA1] (multi-head: yes rom:
no post: no)
[ 4.436916] input: Video Bus as
/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:01/input/input9
[ 5.659994] [drm] radeon kernel modesetting enabled.
[ 5.660219] radeon 0000:00:01.0: vgaarb: deactivate vga console
[ 5.662092] radeon 0000:00:01.0: VRAM: 384M 0x0000000000000000 -
0x0000000017FFFFFF (384M used)
[ 5.662100] radeon 0000:00:01.0: GTT: 1024M 0x0000000018000000 -
0x0000000057FFFFFF
[ 5.662185] [drm] radeon: 384M of VRAM memory ready
[ 5.662191] [drm] radeon: 1024M of GTT memory ready.
[ 5.662317] radeon 0000:00:01.0: firmware: direct-loading firmware
radeon/PALM_pfp.bin
[ 5.662374] radeon 0000:00:01.0: firmware: direct-loading firmware
radeon/PALM_me.bin
[ 5.662433] radeon 0000:00:01.0: firmware: direct-loading firmware
radeon/SUMO_rlc.bin
[ 5.662693] [drm] radeon: dpm initialized
[ 5.663081] radeon 0000:00:01.0: firmware: direct-loading firmware
radeon/SUMO_uvd.bin
[ 5.684961] radeon 0000:00:01.0: WB enabled
[ 5.684968] radeon 0000:00:01.0: fence driver on ring 0 use gpu
addr 0x0000000018000c00
[ 5.684974] radeon 0000:00:01.0: fence driver on ring 3 use gpu
addr 0x0000000018000c0c
[ 5.685422] radeon 0000:00:01.0: fence driver on ring 5 use gpu
addr 0x0000000000072118
[ 5.685956] radeon 0000:00:01.0: radeon: MSI limited to 32-bit
[ 5.686097] radeon 0000:00:01.0: radeon: using MSI.
[ 5.686153] [drm] radeon: irq initialized.
[ 6.331634] radeon 0000:00:01.0: [drm] Skipping radeon atom DIG
backlight registration
[ 6.338785] [drm] Radeon Display Connectors
[ 6.338819] [drm] VGA-1
[ 6.785182] fbcon: radeondrmfb (fb0) is primary device
[ 7.350484] radeon 0000:00:01.0: [drm] fb0: radeondrmfb frame buffer device
[ 7.363349] [drm] Initialized radeon 2.50.0 20080528 for
0000:00:01.0 on minor 0
[ 25.811867] thinkpad_acpi: This ThinkPad has standard ACPI
backlight brightness control, supported by the ACPI video driver
$

lbrtchx

to...@tuxteam.de

unread,
Feb 16, 2024, 3:00:07 PMFeb 16
to
On Fri, Feb 16, 2024 at 01:44:22PM -0600, Albretch Mueller wrote:
> I've got a relatively old laptop with an ATI Radeon HD card, which
> firmware I can't update. Wild pixelations happen even on relatively
> simple pages not just videos. It seems to be a common problem. What I

What is a "simple page" and what does "pixelation" mean in this
context? Or is that irrelevant?

> have searched and found out is that I will have to un/repack initramfs
> ..., but I haven't found a relatively safe, complete procedure.
>
> How can you update the initramfs on read-only media?

You can't. Initramfs resides in the boot medium. To update it,
you have to write to said medium.

[Rest deleted since it seems irrelevant to above question]

Cheers
--
t
signature.asc

The Wanderer

unread,
Feb 16, 2024, 3:20:06 PMFeb 16
to
On 2024-02-16 at 14:44, Albretch Mueller wrote:

> I've got a relatively old laptop with an ATI Radeon HD card, which
> firmware I can't update. Wild pixelations happen even on relatively
> simple pages not just videos. It seems to be a common problem. What I
> have searched and found out is that I will have to un/repack initramfs
> ..., but I haven't found a relatively safe, complete procedure.
>
> How can you update the initramfs on read-only media?

At a guess:

* Copy the read-only media to a writable location. This is "the image
tree".

* Extract the initramfs from the file which contains it, into an empty
directory. This is "the extracted initramfs".

* Modify the files in the extracted initramfs. The result is "the
updated extracted initramfs".

* Create a new initramfs whose contents are the updated extracted
initramfs. Copy it into the image tree. The result is "the updated
image tree".

* Write the updated image tree to new read-only media. Depending on what
form the media is, this may require other steps first; for example, if
it's a CD or DVD, you will probably need to create an ISO using a tool
like genisoimage or (I think) xorriso.

Read-only media is by definition not update-able. You can only create
new media, using a modified copy of the files from the read-only media.

I have successfully built updated versions of live-boot CDs, with
updated kernels and initrd environments and so forth, using this basic
method. It has been a long time, but I can confirm that it works, if
done correctly.


Now, if what you want to know is how to extract the initramfs... that
depends on how it's compressed, which may depend on what live-system
boot media you're working with, but typically it will be a
gzip-compressed cpio archive.

In that case, working from memory based on the last time I was doing
such a thing, what you'd need to do is something like:

$ mkdir /tmp/extract
$ cp /path/to/image/tree/initrd.gz /tmp/extract
$ gunzip /tmp/extract/initrd.gz
$ mkdir /tmp/extract/extracted-initramfs
$ cd /tmp/extract/extracted-initramfs
$ cpio -i < ../initrd

And to create a new one (without overwriting anything created during the
above), you'd do something like:

$ mv /tmp/extract/initrd /tmp/extract/initrd.unmodified
$ cd /tmp/extract/extracted-initramfs
$ find . | cpio -o > ../initrd
$ gzip -9 /tmp/extract/initrd
$ mv /tmp/extract/initrd.gz /path/to/image/tree/initrd.gz

*DO* *NOT* just take this as a recipe to follow. Read the documentation
of the programs involved, look for examples online if that documentation
doesn't make things clear in your mind, and use this as a *starting
point* to figure out what the correct thing to do in your circumstance
actually is.

--
The Wanderer

The reasonable man adapts himself to the world; the unreasonable one
persists in trying to adapt the world to himself. Therefore all
progress depends on the unreasonable man. -- George Bernard Shaw

signature.asc

Thomas Schmitt

unread,
Feb 16, 2024, 4:00:06 PMFeb 16
to
Hi,

Albretch Mueller wrote:
> > How can you update the initramfs on read-only media?

to...@tuxteam.de wrote:
> You can't. Initramfs resides in the boot medium. To update it,
> you have to write to said medium.

One will have to create a new read-only medium.


In case the original is a Debian Live ISO:

One would have to extract the initramfs file out of the ISO. If its name
is not known, then the boot loader configuration file should tell. Like
in /boot/grub/grub.cfg of debian-live-12.0.0-amd64-standard.iso:
initrd /live/initrd.img-6.1.0-9-amd64
or in its /isolinux/live.cfg:
initrd /live/initrd.img

Next one would modify the extracted initramfs.
(This is an adventure on its own. Other will know more about it than me.)

Finally one would pack up a new ISO, taking all files from the old ISO but
replacing the initramfs file by the modified one from hard disk.
Roughly like in
https://wiki.debian.org/RepackBootableISO#In_xorriso_load_ISO_tree_and_write_modified_new_ISO

Details could be determined when the name of ISO and initramfs file is
known. If it's about DVD media, it would be interesting to learn about
the DVD drives at the computer which shall do the modification.


Have a nice day :)

Thomas

Albretch Mueller

unread,
Feb 16, 2024, 7:50:06 PMFeb 16
to
On 2/16/24, to...@tuxteam.de <to...@tuxteam.de> wrote:
> On Fri, Feb 16, 2024 at 01:44:22PM -0600, Albretch Mueller wrote:
>> I've got a relatively old laptop with an ATI Radeon HD card, which
>> firmware I can't update. Wild pixelations happen even on relatively
>> simple pages not just videos. It seems to be a common problem. What I
>
> What is a "simple page" and what does "pixelation" mean in this
> context? Or is that irrelevant?

A relatively simple, js-based web page I meant to say.

>> have searched and found out is that I will have to un/repack initramfs
>> ..., but I haven't found a relatively safe, complete procedure.
>>
>> How can you update the initramfs on read-only media?
>
> You can't. Initramfs resides in the boot medium. To update it,
> you have to write to said medium.

Right on the Debian Kernel Handbook they tell you you may use
"initramfs hooks" for such things:

https://kernel-team.pages.debian.net/kernel-handbook/ch-update-hooks.html#s-initramfs-hooks

even though I couldn't find exactly the
"/etc/initramfs/post-update.d/" directory used by update-initramfs
for post update hook options, I notice what seems to be a bunch of
those in:

/usr/share/initramfs-tools/hooks/

lbrtchx

to...@tuxteam.de

unread,
Feb 17, 2024, 12:50:05 AMFeb 17
to
On Fri, Feb 16, 2024 at 06:43:19PM -0600, Albretch Mueller wrote:
> On 2/16/24, to...@tuxteam.de <to...@tuxteam.de> wrote:
> > On Fri, Feb 16, 2024 at 01:44:22PM -0600, Albretch Mueller wrote:

[...]

> > What is a "simple page" and what does "pixelation" mean in this
> > context? Or is that irrelevant?
>
> A relatively simple, js-based web page I meant to say.

Ah. A browser trying to render some thing from "out there". I see.

> >> have searched and found out is that I will have to un/repack initramfs
> >> ..., but I haven't found a relatively safe, complete procedure.
> >>
> >> How can you update the initramfs on read-only media?
> >
> > You can't. Initramfs resides in the boot medium. To update it,
> > you have to write to said medium.
>
> Right on the Debian Kernel Handbook they tell you you may use
> "initramfs hooks" for such things:
>
> https://kernel-team.pages.debian.net/kernel-handbook/ch-update-hooks.html#s-initramfs-hooks
>
> even though I couldn't find exactly the
> "/etc/initramfs/post-update.d/" directory used by update-initramfs
> for post update hook options, I notice what seems to be a bunch of
> those in:
>
> /usr/share/initramfs-tools/hooks/

AFAIK, those are rather to modify the result of the initramfs
build in various ways (e.g. include additional software in the
image, configure things in a different way, etc.). They are
invoked at different steps in the build process.

What you need, as others have said, is to rebuild your write-only
medium. You can tell mkinitramfs to deposit its result in a regular
file (option -o, the man page). How it goes to that read-only
medium is left as an exercise to the reader (unless you tell us
how you build that in the first place, that is :-)

Usually it goes to somewhere /boot/initramfs.img, if /boot is mounted
properly.

Cheers
--
t
signature.asc
0 new messages