Tiny Core Extensions > TCE Q&A Forum

how do firmware extensions work without startup script?

(1/10) > >>

GNUser:
I've noticed that the firmware extensions (e.g., firmware-atheros.tcz, firmware-mediatek.tcz, etc.) do not have a startup script. However, device drivers (e.g., ath9k) are able to find firmware files early in the boot process without any problems.

In TCL, things that need to be available very early in the boot process are usually made available by an additional, custom initramfs. It seems I'm missing the magic sauce in the TCL boot process that ensures firmware extensions are loaded before device drivers need the firmware files.

GNUser:
Is the trick simply to make sure that the firmware extension (e.g., firmware-atheros.tcz) appears before the driver extension (e.g., wireless-KERNEL.tcz) in onboot.lst?

Rich:
Hi GNUser
I don't have a precise answer for you, but I do make it a
point to place firmware extensions at the top of onboot.lst.

Two things I noticed:
1. dmesg will often show multiple attempts to load firmware.
2. /lib/udev  contains  firmware.sh.

This makes me suspect  udev  might be involved.

curaga:
The udev trigger for new modules on boot is delayed until after all extensions are loaded. So usually the order in onboot.lst isn't significant.

GNUser:

--- Quote from: curaga on August 27, 2024, 03:26:17 AM ---So usually the order in onboot.lst isn't significant.

--- End quote ---
I can confirm that. Putting firmware-mediatek.tcz (for example) at very bottom of onboot.lst has no ill effect--after boot process is complete, firmware has been loaded and device is operable.


--- Quote from: curaga on August 27, 2024, 03:26:17 AM ---The udev trigger for new modules on boot is delayed until after all extensions are loaded.

--- End quote ---
curaga, can you please help me see how this is the case? This is the sequence of events as best as I can tell: /init -> /sbin/init (Busybox init) -> /etc/inittab -> /etc/init.d/rcS -> /etc/init.d/tc-config

In tc-config, udev is started around line 107, but extensions don't get loaded until around line 557. Something seems to be happening after extensions are loaded that causes modules to go looking for firmware. What am I missing?

Navigation

[0] Message Index

[#] Next page

Go to full version