Commit Graph

116 Commits

Author SHA1 Message Date
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
e447b4c7df stage1: Also add STAGE1_KMODULES
It is very strange that earlier in STAGE1 added kernel modules from
a variable STAGE1_KMODULES_REGEXP only.
This commit makes the drm feature work properly.
2020-11-23 15:15:31 +07:00
Michael Shigorin
31f280c018 stage2: include targets.mk once
Partially reverts commit e8f6335734
which has added an overlooked second `include targets.mk' which
began spamming build.log immediately:

  /usr/share/mkimage/targets.mk:23: warning:
    overriding recipe for target `__profile_internal_rule'
  /usr/share/mkimage/targets.mk:23: warning:
    ignoring old recipe for target `__profile_internal_rule'

*sigh*
2020-09-26 17:39:22 +03:00
Anton Midyukov
01a1581b71 Revert "stage1, stage2: allow multiple kernels"
This reverts commit 02a5231ba5.
Upstream mkimage has not yet take patches to support packaging
multiple kernels to ISO image. In order to avoid problems, have
to revert this commit.
2020-08-17 23:43:40 +07:00
Anton Midyukov
02a5231ba5 stage1, stage2: allow multiple kernels 2020-05-22 13:34:34 +07:00
Michael Shigorin
f87cd0d3c3 stage1: document STAGE1_MODLISTS
This was highly inobvious, and should have been documented
within the very same commit adding the variable!

See-also: https://bugzilla.altlinux.org/30239
See-also: https://bugzilla.altlinux.org/32171
2019-09-16 21:21:42 +03:00
Michael Shigorin
19e21d0910 rootfs: upgrade to /etc/firsttime.flag
Just missed this change somehow...

See-also: http://git.altlinux.org/people/shaba/packages/?p=startup.git;a=commitdiff;h=2441f9438b7956fabdb353400b9df4abace1d7a0

Suggested-by: Anton Midyukov <antohami@altlinux.org>
2018-11-05 21:34:50 +03:00
Michael Shigorin
98e889830e main, repo: introduced suffix support
This is to make building addon images possible;
those carrying packages but lacking any stage2.
2018-08-06 20:33:10 +03:00
Michael Shigorin
77908d8a08 main, live, rescue: reorder package list variables
The places of the terms *do* affect the sum in apt's case;
start with lowlevel items like SYSTEM_PACKAGES and end with
high-level ones like THE_LISTS to reduce the chance of getting
hit by premature virtual dependency expansion/fixation.

Adapt live and rescue features accordingly.

See-also: https://bugzilla.altlinux.org/show_bug.cgi?id=30806#c5
Suggested-by: Leonid Krivoshein <klark@altlinux.org>
2018-06-11 15:58:41 +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
9441c1ce70 rootfs: minor README fixup
There's no "arm" entity, what could I mean?..
2018-02-15 13:03:02 +03:00
Michael Shigorin
31ecda7272 docs update
Another minor facelift:
- s/ALT Linux/ALT/gc (where applicable);
- s/7.0/8.0/g;
- 2017;
- e2k;
- links.
2017-06-09 19:31:42 +03:00
Michael Shigorin
137e738cf7 main, metadata, lists: switch to groups2lists()
Now that we don't ignore X-Alterator-PackageList
in pkggroup files these few places referencing
group names as list names have broke; bring 'em
in line through this new and shiny function.
2016-06-27 13:50:10 +03:00
Konstantin A. Lepikhov
e8f6335734 sub.in/stage2: Added copy-tree to stage2
stage2 only allows to run certain scripts and install packages, but
sometimes one need just to copy something to stage2 (like stage1 does).

How to use:

put files under ./files directory with the same structure as on
resulting image.
2016-05-23 17:30:19 +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
0d9c1d9110 main: README tweak
...regarding THE_* use.
2016-04-01 14:22:53 +03:00
Michael Shigorin
37e77285cd stage2: tweak 99-cleanup-boot for efficiency
Thanks glebfm@ for noticing that Simply (an m-p-d product)
takes no kernel inside squashfs but relies on livecd-install's
50-restore-kernel.sh hook to copy the kernel from iso9660
and regenerate initrd (which is a must anyways but requires
System.map to be still around).

This saves about 3 Mb in ISO size for a LiveCD using
kernel-image-std-def-4.1.15-alt1.x86_64.rpm.
2016-01-12 20:10:37 +03:00
Michael Shigorin
457c00b823 stage2, lowmem: update cleanup hooks for qt5
There's /usr/share/qt5/translations/ now too, handle that.

OTOH we've got some CJK support already, time to split up
those "cleanups" into some target locale set dependent form.
2015-12-04 20:58:32 +03:00
Michael Shigorin
5427f3afdc image.in, stage2: reworked TCB fixup hook
The issue at hand is that:

/etc/tcb/USER/shadow gets USER:auth ownership (OK);
/etc/tcb/USER/shadow- backup file is root:root (broken);
/etc/tcb/USER/shadow.lock file is also root:root (broken).

This is observed for all pseudousers created by package installation
process within working chroots as well as for users created by deflogin
feature; the problem is that e.g. echo USER:PASS | chpasswd will break.

Looks like the cuplrit might be fakeroot/faked.
2015-11-16 20:24:25 +03:00
Michael Shigorin
a277a6cce3 stage2: no kernels no go
The flexible KFLAVOURS handling has a downside:
if no packages match the regexp it's silently OK
until too late, and the error is incomprehensible.
Let's fix the latter at least.
2015-07-11 14:03:16 +03:00
Michael Shigorin
f9f1437bfe stage1: added ext4.ko to modules
It's been found out that live_rw isn't going to work
without ext4 module being available; let's ensure that.
2015-04-20 22:34:46 +03:00
Michael Shigorin
559f80adf3 a few modules.d test drives
These are aimed to test the modules.d/ and auto-pickup
implementation as well as to present an example.

At least 50-net might change (or just get renamed to avoid
auto-pickup) some day as the "net" feature's meaning is
to provide networking upon bootup and these modules are
only needed within stage1 if we're going to netboot;
and that's quite different thing.

armh-cubox bits are prone to get renamed/generalized too
since e.g. ArmadaXP based server images are going to need
this as well.
2015-04-20 13:35:28 +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
a36d0236a4 stage1, stage2: initial modlists support
stage1's got prepare-modules target collecting
modules file snippets all over stage1/modules.d/
subdirectories within individual features.

stage2 now adds names of all the features going into
a particular image as snippet file suffix list so that
individual features don't have to register themselves
twice (as a feature and as a propagator modules.d
snippet carrier).

This is going to allow both "uncommon" modules getting
included with no problem (sin@ has wanted cifs ones
for quite some time, for example, and some want e.g.
infiniband modules) *and* to reduce the actual list
below the common mark as well (which is the case with
live-privacy image, for one).

And stage1 memory consumption does matter in some cases
as it's highly critical with no chance to use swap yet.
2015-04-20 13:35:24 +03:00
Michael Shigorin
08d802ab0d stage1: drop dummy.ko
Looks like it's been dumped in along with the rest but not
actually used in {make-initrd-,}propagator; the problem with it
is that snd-dummy.ko matches and pulls a bunch of unrelated
modules where these don't belong (grep -w wouldn't match
snd_dummy.ko though).
2015-03-29 20:41:29 +03:00
Michael Shigorin
bc0f8a45ee stage1: re-add a few modules
These can be found in (semi-)supported branches still:

- loop.ko:
  + 3.0.101-std-def-alt0.M60P.1
  + 3.4.96-led-ws-alt0.M70P.1
- aufs.ko:
  + 2.6.32-el-smp-alt31
  + 3.4.96-led-ws-alt0.M70P.1

ehci_marvell.ko isn't found in contemporary sisyphus/armh
kernels but let's purge it later during archdep rewrite.

NB: libusual.ko has been renamed to usb-libusual.ko as of p6
    (not to be found in p7 anymore), and nls_base.ko was in
    2.6.32 kernels as of p6 but not there in p7; purge these
    somewhere down the road.
2015-03-29 20:41:29 +03:00
Michael Shigorin
09a9255f2f stage1: purge nonexistent modules
This file has been floating around for quite some time,
and some of its contents are pure bit rot by now...

Drop the modules that don't exist as of 3.19.2-un-def-alt1
upon manual diff examination.
2015-03-29 20:41:29 +03:00
Michael Shigorin
71ad34a9bf stage1: fix module name
It wasn't sdhci_pci.ko back in 2.6.32 actually and it's
sdhci-pci.ko; so grep used by mkmodpack won't pick it up.
2015-03-29 20:41:28 +03:00
Michael Shigorin
f112a3358e stage1: add USB3 support
This has been missing for *so* long somehow, and adding some 200k
of modules for fast hardware that's widely available by now
looks like a deal.

Added USB Attached SCSI module just in case (or rather for weak
crc_t10dif symbols?).
2015-03-29 20:41:26 +03:00
Michael Shigorin
7cb477c38a stage2, install2: oops, narrow the cleanup back
The former install2-only "bloated binary" purge script
happened to hit stage2 (which is a lot more than just
install2); a kind of safety net has been stuck into it
to guard installable LiveCDs against this particular
cleanup but seems it was not enought for ildar@ who
reported this problem almost three years after it was
introduced.

This change re-places the script back into install2
section; the binaries in question amount for ca. 8 Mb
(except openssl ildar@ asked about); if these are deemed
unneccessary within any other stage2-based subprofiles,
please step up with details.
2015-03-10 00:00:09 +03:00
Michael Shigorin
6f452182fd fix kpackages() API
This function's got its argument order chosen for "aesthetical"
reason of $(2) following $(1) in the macros but the logical order
is exactly the opposite: we care for kernel flavour much more than
for module set (which is dependent upon it).

So while silent dropout of kernel-image if KFLAVOURS is set
but KMODULES is empty could be fixed by testing for $(2) only,
it looks like a good time to fix this discrepancy altogether.
2014-09-19 20:53:25 +04:00
Michael Shigorin
730e791fec stage1: fix for non-propagator stage2
It's been a given that any stage2 is propagator-based
but that's not neccessarily so; the "run X as PID 1"
sort of contest has sparkled interest in some others.
2014-09-19 20:52:19 +04:00
Michael Shigorin
d804203bc7 rootfs: README update
It should state clearly both the positive and negative examples
of rootfs concept use (its name is not consiceenough unfortunately,
and I haven't come up with a better one yet).
2014-08-27 22:30:14 +04:00
Michael Shigorin
5b0697393d stage1: READMEdability fix
Kernel modules come as both *.ko and kernel-modules-*.rpm
and it wasn't clear enough whether to mention "ahci" or "v4l".
2014-08-18 22:30:53 +04:00
Michael Shigorin
3171d693a3 main, metadata: README update
There's not much sense in overduplication of documentation
(tends to get stale faster then), still it's not good to
just refer to the code as the PDF/HTML book is less useful
then; maybe drifting towards "recommended" bits with more
"advanced" things being impleentation-defined is better.
2014-08-12 14:34:14 +04:00
Michael Shigorin
49b6291a40 kernel, stage1: don't provide r8168.ko by default
It conflicts with r8169.ko inobviously.

The whole mess looks like this:
- r8169.ko doesn't work for all of Realtek 8111/8168/8169 mutations
- r8168.ko works with some of the chips r8169.ko doesn't
- r8168.ko also works with many chips r8169.ko works with
- r8169.ko is provided by kernel-image package (thus default)
- r8168.ko is provided by kernel-modules-r8168 package (optional)
- kernel-modules-r8168 package requires r8168-blacklist package
- r8168-blacklist package is a one-liner that blacklists r8169.ko
- STAGE1_KMODULES wouldn't include r8168 (std-def) or rtl8168 (led-ws)
- sub.in/stage1/modules would mention r8168.ko (m-p-d: r8169.ko)

So a LiveCD built with use/kernel/net might work with RTL8111/8110
just fine when booted live but fail to automatically load the module
when installed onto hard drive; manual modprobe r8169 would work though.
NB: some of the chips (those available to me) would work just fine
both ways -- this has contributed to fixing this *that* late.

Bottom line:

  do not install backup/kludge drivers overriding main ones by default!

Thanks sem@ for providing the crucial hint.
2014-03-17 21:22:29 +04:00
Michael Shigorin
3f547e2504 documentation: use paths relative to toplevel dir
This change is done to reduce ambiguity in some cases;
the previous intention has been to ease navigation when
staying in a particular directory, now it's been changed
in favour of convenient toplevel `git grep' in fact.

Both variants have their pros and cons, I just find myself
leaning to this one by now hence the commit.  Feel free to
provide constructive criticism :)

Some path-related bitrot has also been fixed while at that.
2014-03-05 21:36:30 +04:00
Michael Shigorin
4ea06fed33 sub.in/README: bitrot fixup
sub/% has moved from lib/distro.mk to lib/sugar.mk
since rootfs introduction with commit g67adab4.
2014-03-05 17:55:21 +04:00
Michael Shigorin
1a25a7052d sub.in/README: mention rootfs
Its name might still change through 1.1.x series
("userfs"?) but things like this should be mentioned
at least -- or superfluous references to neighbouring
entities should be removed.
2014-03-05 16:34:42 +04:00
Evgeny Sinelnikov
d385a7864c stage1: add CIFS installation method 2014-01-11 22:51:19 +04:00
Michael Pozhidaev
99a7a97284 stage2: extend /boot cleaner stoplist
Minor fix: /boot directory is not cleaned for livecd if there are
homeros-install or luwrain-install files (in addition to live-install
and livecd-install being already checked).
2013-08-12 20:53:01 +04:00
Michael Shigorin
ef02d479f7 stage1: add ehci_marvell to modules
This is ARM-specific (more specifically, Marvell ArmadaXP-specific
for me right now) but doesn't hurt if the module is absent.
2013-06-17 19:29:11 +04:00
Michael Shigorin
67adab492f initial rootfs subprofile and services feature
This subprofile is akin to THE_* variables family: the configuration
bits and script hooks sitting there influence whatever chroot is
declared to be the user facing one in the end, whether it comes
from vm image or live subprofile.

The services feature ought to be a changeset of its own which would
be based on rootfs and become the base for ve/vm changes but I chose
to just do it atomically; some pre-existing duplicates are pruned now.
2013-06-17 14:03:53 +04:00
Michael Shigorin
5b21100bed README update
These have been proofread somewhat to correspond
to the current state of affairs; a missing one
was added for fonts feature.
2013-06-10 19:43:31 +04:00
Michael Shigorin
429ce58608 added live_rw support
There's a need for a separate boot target since
persistent storage is way slower than tmpfs indeed;
usbflash has a tendency for huge performance drops
given simultaneous writes in addition to reads which
are the bottleneck already.

make-initrd-propagator 0.18 introduced ext4 rw slice,
so the corresponding kernel module needs to be included
into stage1; see also #28289.

NB: not available on x86_64-efi (or hybrid GPT to be strict)
due to fragility of the hack being made: parted(8) panics
upon seeing that, and good ol' fdisk is unable to treat it.

NB: use/live/rw use/rescue/rx use/syslinux/ui/gfxboot
are unlikely to play very nice together due to the latter's
magic l10n: "session" label is taken by live_rw config snippet
and *is* translated in design-bootloader-source;
OTOH "rescue_session" is *not*.
2013-03-25 14:13:42 +04:00
Michael Shigorin
35689d158d stage1: replace r8169 with r8168
The issue is that r8169 is rather broken nowadays while
r8168 tends to work on the same hardware; see also #28473.

Thanks zerg@ for having hinted that it's stage1 modules,
not the root squashfs.
2013-03-06 01:20:36 +02:00
Denis Smirnov
7f805cdf79 Rename all scripts in */image-scripts.d to format \d\d-scriptname 2013-01-06 12:05:32 +04:00
Michael Shigorin
393ef79235 stage1: added virtio drivers
I will test more in kvm
I will test more in kvm
I will test more in kvm
...
2012-12-17 14:47:42 +04:00