Commit Graph

49 Commits

Author SHA1 Message Date
Anton Midyukov
3259b2faa8 initrd-propagator: Select the propagator as a separate feature 2021-04-12 23:13:57 +07:00
Anton Midyukov
d9dca6cb1a doc, grub, stage1, stage2: Add support multiple kernels for grub only
At the moment, the ability to select the kernel with which to boot is
implemented only for grub (grub-pc, grub-efi, ieee1275boot).
note that renamed STAGE1_KFLAVOUR to STAGE1_KFLAVOURS, as multiple
kernels can now be added.
2021-04-12 23:13:47 +07:00
Anton Midyukov
1f4db6c7fe stage1: build propagator and copy kernel in mkimage-profiles 2021-04-06 00:15:59 +07:00
Anton Midyukov
465ddc27ad stage2: Added exfat support (50-stage2-fs) 2021-04-03 22:59:47 +07:00
Anton Midyukov
f5db78efcb stage2/stage1/modules.d: fix missing file extension (.ko) 2021-04-03 22:21:38 +07:00
Anton Midyukov
eb34af1318 stage2: Add cmac.ko to 50-stage2-net-cifs, 10-stage2
cmac.ko needed for use SMB2 and newer.
Reported-by: sin@
2021-04-03 22:12:04 +07:00
Anton Midyukov
6012ea4029 stage1: Del squash option '-noI'
squashfs built with this option are not loaded with modern kernels.
2021-04-03 22:10:01 +07:00
Anton Midyukov
b910f28925 stage2: Added reset-raspberrypi.ko into 50-stage2-sbc-aarch64
Needed for Raspberry Pi 4B 8 GB.
2021-01-26 11:58:29 +07:00
Anton Midyukov
283c03f0c5 stage2: Add more usb drivers into into 50-stage2-usb 2021-01-25 19:42:32 +07:00
Dmitriy Terekhin
4aeed7ed2e stage2/stage1: fix module names to match kernel 2020-12-05 21:03:03 +07:00
Anton Midyukov
b17ce57724 stage2: Not added nvidia kernel modules into propagator 2020-11-23 15:15:49 +07:00
Anton Midyukov
da9180838f drm, plymouth, stage2, x11: initial feature drm
The drm feature solves the problem of creating a common entry
point for adding kernel drm modules for different package lists.
The need for allocation into a separate feature arose from one
parties to the need to make a switch between free and proprietary
NVIDIA driver, on the other, because of the need to add only drm
modules kernels for purposes such as use/stage2/kms and use/plymouth.

Also no more switch needed for RADEON, as only the free video driver
remains.
2020-11-06 19:20:01 +07:00
Anton V. Boyarshinov
26a8aad09f Baikal-M specific modules into stage1 2020-10-26 16:54:21 +07:00
Anton Midyukov
4520594a21 stage2: Added fuse.ko into 50-stage2-fs for ntfs support 2020-09-21 14:53:27 +07:00
Anton Midyukov
77eb0456d1 stage2/stage1/modules.d/50-stage2-usb: fix typo 2020-06-10 03:13:29 +07:00
Anton Midyukov
d54b4fd1e8 stage2: add sdhci-pltfm.ko into 50-stage2-mmc 2020-05-22 13:34:37 +07:00
Anton Midyukov
2c761b78d7 kernel, stage2: add bcm2835-dma in initrd for Raspberry Pi 3 (kernel >= 5.6) 2020-05-22 13:34:37 +07:00
Anton Midyukov
a6051acf94 kernel, stage2: make initrd and initfs for all kernels 2020-05-22 13:34:35 +07:00
Anton Midyukov
11cc65a117 stage2: Added ahci_platform.ko into 50-stage2-ata
This kernel module needed for bootloading on dbm2 (Baical-M)
2020-05-22 13:34:34 +07:00
Anton Midyukov
15cbaefdda stage2: Added support ntfs in 50-stage2-fs
See-also: https://bugzilla.altlinux.org/37598
          https://bugzilla.altlinux.org/37636
2020-05-01 23:49:56 +07:00
Anton Midyukov
070bc04017 stage2: Added use/stage2/sbc
This list kernel modules for loading on single board computers.
2020-05-01 23:49:56 +07:00
Anton Midyukov
192dca1302 stage2: update 50-stage2-usb
Add more usb kernel modules
2020-05-01 23:49:56 +07:00
Michael Shigorin
2b3455c29a stage2: fix cifs-related bits
sin@ was kind enough to just stick mount.cifs into initrd
regardless of its presence in the chroot in question;
let's look first and only add what's found.

This started as a stopgap fix after make-initrd 2.2.0
which happened to collide with cifs-related m-p commits
in a somewhat unfortunate manner...
2018-10-15 22:46:05 +03:00
Evgeny Sinelnikov
00a828bc85 stage1: fix CIFS installation method 2018-10-15 22:45:19 +03:00
Michael Shigorin
26cf322550 stage1, stage2: move af_packet to 50-stage2-net
af_packet rather belongs to networking stack
than to common module library indeed.

Suggested-by: Alexey Gladkov <legion@altlinux.org>
2018-05-23 09:44:35 +03:00
Michael Shigorin
04a12ef053 stage2: cosmetic fixup for aufs/overlayfs check
This has been made a bit messy with commit
9f72780d17,
just split the "involved" and straightforward
checks into two.
2018-05-21 22:49:50 +03:00
Michael Shigorin
f1dffda8d5 stage2: added virtio_console
Reported-by: Sergey Bolshakov <sbolshakov@altlinux.org>
2016-07-28 15:57:40 +03:00
Michael Shigorin
a732c4aa58 stage2: more eMMC-related modules
eMMC installation support has a few bugs:

https://bugzilla.altlinux.org/30239
https://bugzilla.altlinux.org/30269
https://bugzilla.altlinux.org/32171

Handle the latest one.
2016-06-03 16:52:52 +03:00
Konstantin A. Lepikhov
9f72780d17 Experimental overlayfs support
If aufs not available/broken we could try to use overlayfs.
NB: changes below doesn't work without modified make-initrd-propagator!
2016-05-23 17:30:14 +03:00
Michael Shigorin
e139a5e091 stage2: added broken-down module lists
These were produced off the single sub.in/stage1/modules
file using this scriptlet to prefix/annotate the names:

  grep '\.ko$' modules \
  | grep -v / \
  | while read m; do \
  	echo "$(find /lib/modules/$(uname -r)/kernel/{drivers,fs} \
		-name "$m" -printf %P $m $(modinfo -d "${m%.ko}" 2>&1)"; \
    done

...with subsequent sorting and manual separation.

This is meant to be the second stage in monolithic modules
file split, so the lists themselves are largely unmolested
otherwise.  The plan is to further split those into prefix-
and module-specific ones.

Add a note clarifying 10-stage2's status, by the way.
2015-04-20 13:35:28 +03:00
Michael Shigorin
1ee01498d5 stage1, stage2: moved propagator modules file
What was a static sub.in/stage1/modules (and the only one)
is now features.in/stage2/stage1/modules.d/10-stage2
(basically a compatibility file that might go some day).

It will be auto-picked as its name corresponds to the
NN-SUFFIX pattern specified in stage1 subprofile now
with $(FEATURES) going into default STAGE1_MODLISTS.
2015-04-20 13:35:27 +03:00
Michael Shigorin
8faf140777 kernel, stage2: rearranged initrd hooks
stage2 has been thinking it's synonymous with propagator
and used to usurp kernel's belongings either; carefully
tear scripts apart so that kernel feature makes sure
initrd gets generated, and stage2 (which is still all
about propagator) cares for its bits.
2014-09-19 20:53:24 +04:00
Michael Shigorin
e3571f276a stage2, efi: added kernel config test collector
The newly-introduced STAGE1_KCONFIG variable serves
to keep those kernel configuration options that are
required to be present in the kernel to boot.
2014-05-12 18:27:08 +04:00
Michael Shigorin
9d495f26cb stage2: preload ahci before udev/propagator
This change tries to force loading the storage driver
for cases when SecureBoot is "helping" the chainloader
to fail, see #29705 for details collected so far.

Of course ahci.ko only does AHCI but that's every storage
controller I've seen on UEFI/SecureBoot systems so far.
2014-01-27 23:56:07 +04:00
Michael Shigorin
6139571a8b stage2: fix 10-initrd-base for current make-initrd
It was removing autodetection setting completely
thus implicitly setting it to the default "all"
with make-initrd-0.8.1+; just set it to be empty.

Thanks legion@ and boyarsh@; see also #28578.
2013-02-19 20:51:15 +04:00
Michael Shigorin
e9f60f007c 03-test-kernel: silliest mistake II
The previous part was fixed and discussed in commit
c30490e2e884f8655a2704fa6a84e60b13876874;
so much for a deduplication effort...

This would result in almost immediate

  make[1]: *** [profile/populate] Error 2

as well.
2012-12-03 17:18:27 +02:00
Michael Shigorin
bd427df77a stage2: updated 80-make-initfs
propagator-20121109-alt1 obsoleted initfs (and dropped
mkinitfs script altogether); that was taken into account
in both make-initrd-propagator and mkimage-profiles-desktop
but not in mkimage proper, see also discussion in #27976.
2012-11-19 23:26:51 +02:00
Michael Shigorin
c30490e2e8 80-make-initfs: fix the silliest mistake ever
*Of course* the "weird" [ ... ] || ... construct meant to avoid
the non-zero exit status of the whole thing wasn't employed
where it actually does make the difference!

Thanks ildar@ for hitting and reporting this, as in

  + verbose '/usr/lib64/propagator exists'
  + '[' -n '' ']'
  mki-scripts: .../stage1/scripts.d/80-make-initfs: unable to run script.
  make[3]: *** [run-scripts] Error 1
2012-11-10 17:59:30 +04:00
Michael Shigorin
90b8fd49f4 80-make-initfs: fixed silly thinko
The added pdir check was a hillarious(tm) overlooked bug indeed:
I tried to put .../initfs/initfs instead of .../initfs as the result.

Duly spotted by torabora@, thanks a lot.

Still the kmod+propagator+kernel-image combo needed some tweaking too,
see #27640
2012-10-15 17:04:18 +03:00
Michael Shigorin
944e0341c5 stage2: brevity fix
A tiny bit less cut-n-paste. :)
2012-10-15 16:03:58 +03:00
Michael Shigorin
12a2fc983c 80-make-initfs: fix for current make-initrd*
Thanks mithraen@ for spotting, boyarsh@ for explaining,
and legion@ for hearty support :)

The problem would manifest itself like this:

  /.host/script.sh: line 20: /usr/lib64/propagator/initfs: \
  No such file or directory
  mki-scripts: .../stage1/scripts.d/80-make-initfs: unable to run script.
2012-09-24 21:20:49 +04:00
Michael Shigorin
8989fc2771 added plymouth feature
An initial draft of it was done half a year ago but several tricky
thingies had kept the code from showing up as it was rather brittle
and incomplete.

This implementation involves quite a few changes all over the place
but finally works good enough for live and installer images.

Please pay attention to the versions of these packages:
- installer-feature-setup-plymouth (0.3.2-alt1+)
- branding-altlinux-sisyphus (20110706-alt2+ if used)
- plymouth (0.8.3-alt20.git20110406+)

See also:
- http://www.altlinux.org/Branding
- http://www.altlinux.org/Plymouth
2012-06-14 17:15:24 +03:00
Michael Shigorin
74e5734eae 80-make-initfs: optimize for newer make-initrd
legion@ implemented skipping depmod call, and that's several more
seconds for most of the images; let's shave these off if possible.
2012-05-25 16:55:54 +03:00
Michael Shigorin
8d16069882 stage2: squashfs blocksize tweaks
Looks like the 128k default block size is pretty well chosen:
it saves ~6% of image size compared to 64k, and subsequent
differences are ~3% per doubling the block size up to 1M
(thanks led@ for carrying out the tests).

So we'll stick with 256k for "normal" xz compression (inodes
uncompressed) and get 512k back for "tight" one (compressed).
The runtime performance issues are to be examined yet when
bootchart or the like is deployed, nothing drastic though.

With "fast" (gzip/lzo) squash compression inodes go unmolested.

For the record, tight live-webkiosk builds as 95M image in 3:40,
and tight live-flightgear.iso builds as 669M image in 6:34.  Nice.

There's no much sense going for 1M block size: e.g. live-webkiosk
would drop to 93M (3:46) but its load time would increase up to
2:07 as compared to 1:48 for -b 524288 and 1:42 for -b 262144 -noI
on a Duron 500/512M system given the very same DVD+RW media.
2012-04-09 22:03:29 +03:00
Michael Shigorin
fe58c46ead stage2: tunable squashfs compression
The existing implementation would handle kernel differences
just fine but a bit too automatically: if it sees xz support,
that's what will end up being used (and if there's -Xbcj binary
compression filter available for the target platform, it will
be applied unequivocally either).

It's perfectly suitabe for getting fine-tuned release images
but is also a bit too resource-consuming while developing the
image configuration which has no business with its compression.

The one and only knob is SQUASHFS (see doc/variables.txt);
to give an idea of the differences, here are some numbers
for a mostly-binary (43% as per 99-elf-stats) webkiosk livecd
and a rather less so (18%) flightgear one on a dual quad-core
X5570 node (each mksquashfs run used up all the cores):

SQUASHFS | live-webkiosk.iso | live-flightgear.iso
---------+-------------------+---------------------
fast     | 3:30 / 130M       | 5:11 / 852M
normal * | 3:37 / 100M       | 5:35 / 688M
tight    | 3:50 / 98M        | 6:47 / 683M

Thus if the knob isn't fiddled with, the defaults will allow
for a reasonably fast build of a pretty slim image; if one is
building a release or if a particular image is very sensitive
being close to the media capacity then just add SQUASHFS=tight
and see it a percent or two down on size.

Please note that lzo/gzip-compressed images are also quicker
to uncompress thus further helping with test iterations.

Thanks to led@ and glebfm@ for helpful hints and questions.
2012-04-09 22:03:29 +03:00
Michael Shigorin
94b2052bfb stage1: halve squashfs block size
gns@ has 512k, led@ suggests that it's too much a bit;
let's try 256k.
2012-04-07 15:46:03 +03:00
Michael Shigorin
178a700e6e 03-test-kernel: tweak squashfs compression
A larger block size was recommended by led@;
gns@ seems to concur as the 512k value was borrowed
from liveflash.eeepc profile (along with -noI).

The other issue is with binary specific compressors:
x86 was clearly assumed while the data for an educated
guess are pretty handy.  Please note that using filters
incurs additional compression attempts for the utility
to choose the best result.
2012-01-18 23:33:29 +02:00
Michael Shigorin
96e89d0062 s/subst/sed -i/g
Initial openSUSE package base taming effort has shown that
relatively few things should be fixed; subst has been generalized
as -i option to sed(1) since its introduction, so let's just fix it.
2011-12-26 18:21:22 +02:00
Michael Shigorin
f5a8b89381 stage2 based live subprofiles, updated docs
- introduced generic stage2 subprofile (non-standalone)
- ported installer and rescue over to stage2/{install2,rescue}
- initial stage2/live (needs more work for sure)
- use make-initrd-propagator
- updated and somewhat extended doc/

NB: mind #26133, #26134
2011-11-04 16:15:30 +02:00