summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2017-03-11lsinitcpio: avoid null byte warnings with bash 4.3Dave Reisner1-6/+14
On compressed images, bash 4.3 gets salty: $ lsinitcpio initrd.gz >/dev/null /usr/bin/lsinitcpio: line 78: warning: command substitution: ignored null byte in input /usr/bin/lsinitcpio: line 90: warning: command substitution: ignored null byte in input Tidy up all of our hexdump comparisons via command substitution to use process substitution instead.
2017-03-10init: move early mounting to function, add efivarsDave Reisner2-5/+13
ref: https://bugs.archlinux.org/task/52768
2017-03-10functions: attempt to (re)add builtin modulesDave Reisner1-2/+2
crc32 is a builtin module in the Arch kernel but also a crypto module. Resolve by this only noting that a module is added if the value in the has is 1, and not 2 (indicating a builtin). While we're here, change the f2fs softdep of crc32 to crypto-crc32. ref: https://bugs.archlinux.org/task/49380
2016-11-27Makefile: assorted cleanups and additionsv22Dave Reisner1-10/+21
2016-11-26base: drop addition of ehci softdep fileDave Reisner1-1/+0
this is no longer needed -- we get softdeps from the kernel.
2016-11-25add missing -P, --allpresets option to usage outputDave Reisner1-0/+1
2016-11-22sd-vconsole: Use udev activationJan Alexander Steffens (heftig) via arch-projects1-7/+2
systemd v232 only activates systemd-vconsole-setup via udev. Follow this to make sure things work properly. This also obsoletes the modules-load hack. https://github.com/systemd/systemd/issues/4699
2016-11-20functions: f2fs softdeps on crc32, not libcrc32cDave Reisner1-1/+4
This really ought to be fixed in the module, but here we are again guessing at module requirements. ref: https://bugs.archlinux.org/task/49380
2016-11-20functions: fix typo in variable nameDave Reisner1-1/+1
builderrors -> _builderrors -- this makes binary dep resolution properly a builderror. As seen in: https://bugs.archlinux.org/task/51818
2016-11-20fsck: avoid extra search pathsDave Reisner1-1/+1
Arch's binaries are all in /usr/bin, so let's not bother searching in duplicates of this directory.
2016-11-20mkinitcpio: fixing quoting in call to initialize_buildrootDave Reisner1-1/+1
2016-09-09keyboard: get rid of an extra 'grep' callv21Dave Reisner1-2/+2
It's been too long and I've forgotten how to hack on mkinitcpio...
2016-09-09keyboard: placate foutrelis' OCDDave Reisner1-1/+1
...and mine too, now that he points it out.
2016-09-09keyboard: fix add_checked_modules call with multiple paramsDave Reisner1-1/+1
2016-09-09mkinitcpio(8): document rootflags= and rootfstype=Dave Reisner1-1/+10
These were curiously omitted from the documentation. ref: https://bugs.archlinux.org/task/50470
2016-09-09sd-vconsole: Wait for modules to be loadedJan Alexander Steffens (heftig)1-0/+6
If the MODULES contain a GPU driver like i915, wait for it to be loaded. This avoids the font configuration being lost.
2016-09-09keyboard: add input/serio as part of checked modulesDave Reisner1-1/+1
ref: https://bugs.archlinux.org/task/50700
2016-07-17Support version extraction from i[3456]86 kernelsDave Reisner1-2/+2
Arch might not really support some of these, but mkinitcpio can.
2016-07-12use an associative array to build bsdcpio optionsDave Reisner1-11/+26
This prevents having unquoted expansion in the bsdcpio commandline
2016-07-07refactor parse_cmdline into something more readableDave Reisner2-66/+125
This refactors parse_cmdline into a few chunks of code, mainly to separate the work of parsing from the handling of the actual parsed parameters. By default, parse_cmdline_item is used as the callback for handling the parameters, but this could be overriden by other code sourcing init_functions if desirable. Our test harness passes more tests, but we leave behind some expected failures to describe the cases where it still fails. Fortunately I've not yet been able to find any cases which warrant --expect-parse-fail.
2016-07-07add test harness for parse_cmdlineDave Reisner2-0/+236
Some of these tests currently fail including hard failures where the shell quits entirely (this would lead to a kernel panic). A followup commit will rewrite the parse_cmdline function to improve it and fix these deficiencies.
2016-07-02error out if asked to extract a kver from image on non-x86v20Dave Reisner2-3/+10
Version extraction only works on x86 (i686 and x86_64) kernels. ref: https://bugs.archlinux.org/task/43256
2016-07-02init: handle rootfstype as a synonym for fstypeDave Reisner1-1/+2
rootfstype is handled by the kernel, so we should handle it, too. ref: https://bugs.archlinux.org/task/45117
2016-07-02keymap: fall back to us if KEYMAP is not definedDave Reisner1-9/+4
ref: https://bugs.archlinux.org/task/44805
2016-06-27add f2fs quirk for libcrc32cDave Reisner1-1/+1
ref: https://bugs.archlinux.org/task/49380
2016-06-27handle the case of modinfo returning multiple modulesDave Reisner1-15/+14
This is true of more and more modules with the advent of aliases, e.g. $ modinfo -F filename crc32c /lib/modules/4.6.2-rampage/kernel/arch/x86/crypto/crc32c-intel.ko.gz /lib/modules/4.6.2-rampage/kernel/crypto/crc32c_generic.ko.gz
2016-06-27Handle softdeps in modulesDave Reisner1-5/+11
modinfo outputs softdeps which we can add if they exist (failing quietly on not-found). this obviates the need for some of our own module quirks. The output of modinfo can take many forms, as it's nearly freeform text in the .modinfo section of the kernel module. The basic form is: softdep: pre: foo But it might also be: softdep: pre: foo bar post: baz Or: softdep: pre: foo softdep: post: bar So just parse the entire line, discarding anything that ends with a ':'.
2016-01-20Fix nvme module detection in Linux 4.4v19Evangelos Foutras1-2/+2
2014-12-28mkinitcpio: expose syntax errors in preset filesAlexei Colin1-1/+1
2014-12-28lsinitcpio: avoid setting TIMEFORMAT globallyDave Reisner1-1/+1
Not that it really matters, but let's scope this to where we actually care for the modified time output.
2014-12-28mkinitcpio avoiding adding a CPIO entry for '.'Dave Reisner1-1/+1
The archive goes from looking like this: . ./buildconfig ./config ./init ./init_functions ./VERSION ./lib64 ./sbin To: buildconfig config init init_functions VERSION lib64 sbin Note the lack of the "root" entry and leading "./". This fixes an issue with packing ucode into the initramfs since the kernel really wants an exact match, and not path equivalency.
2014-08-31Add 'hostdata' hookThomas Bächler1-0/+14
This hook adds host-specific configuration to the image. Currently, it adds the hostname and machine-id files for usage with journald.
2014-08-04avoid compound conditional leading to spurious "errors"Dave Reisner1-2/+6
As seen: https://bbs.archlinux.org/viewtopic.php?id=185204 https://bbs.archlinux.org/viewtopic.php?id=185265
2014-07-24block: include all of drivers/storage/usbv18Dave Reisner1-1/+1
Fixes FS#41273.
2014-06-21add second param to add_full_dir to allow filtering filesDave Reisner3-6/+10
Use this to only add files matching *.conf in the modconf hook. Fixes FS#39994.
2014-06-21add quirk for vfat nls moduleDave Reisner1-0/+1
Fixes FS#40217.
2014-03-30make missing compression binaries a non-fatal warningDave Reisner1-2/+10
Fallback on no compression at all, since we don't want to make potentially poor assumptions about what the kernel might support. Fixes FS#39659.
2014-03-23Add binary library deps directly, without symlink zooDave Reisner1-7/+1
Fixes FS#39560.
2014-03-08mkinitcpio.8: add reference to bootparam(7)v17Dave Reisner1-1/+1
2014-03-07init: remove dead code related to systemd-timestampDave Reisner1-4/+0
2014-03-06Fix adding console font in sd-vconsole hook.Thomas Bächler1-4/+4
Fixes FS#38603.
2014-03-05add btrfs module quirk for linux 3.14WorMzy Tykashi1-1/+1
This patch adds in some extra hackery to make sure that users with btrfs root filesystems don't end up with unusable initrds due to the following change made upstream [1]. TL;DR: The btrfs module has dropped it's libcrc32c dependency, so mkinitcpio no longer pulls in the crc32c module necessary for the btrfs module to be inserted. The crc32c module was only pulled in previously due to mkinitcpio hackery [2], so extra hackery now seems like the logical path. This problem can be experienced by using linux-mainline on an Arch machine with a btrfs root filesystem. Besides from this extra hackery, an alternative workaround would be for users in this situation to add crc32c to their MODULES aray in their mkintcpio.conf. Of course, this needs to be done ahead of the linux-3.14 upgrade for them to avoid the problem (assuming none of their other modules depend on libcrc32c). [1] http://www.mail-archive.com/linux-btrfs@vger.kernel.org/msg30912.html [2] https://projects.archlinux.org/mkinitcpio.git/tree/functions?id=v16#n398
2014-03-01Always use the --target flag with findmntDave Reisner2-4/+4
Prevents problems with bogusly named filesystems, e.g.: mount -t tmpfs / /mount/point Fixes FS#39090.
2014-01-04sd-shutdown: add kexec binary if it's availableDave Reisner1-0/+4
2013-12-24lsinitcpio: remove nonexistent showconfig longoptDave Reisner1-1/+1
Should have been removed as part of previous commit, as this was clearly just a typo.
2013-12-24include missing longopt --config in arg parserDave Reisner1-1/+1
Reported in FS#38264.
2013-12-22Add -l flag when using lz4 compressionDave Reisner2-4/+14
This isn't documented, but it's needed since the kernel lz4 support is based on the original streaming format and not the newer default. Use -l to force the legacy codec. Fixup lsinitcpio to support the older format, and, add a warning when the newer format is detected. Who knows when this will be "resolved" ... Upstream discussion: https://code.google.com/p/lz4/issues/detail?id=102
2013-12-16Strip a leading 'v' from the git tag when generating the version numberv16Thomas Bächler1-1/+1
2013-12-15Add sd-vconsole hook.Thomas Bächler1-0/+68
This hook works together with the systemd hook from the systemd package and requires the add_systemd_unit function. It launches systemd-vconsole-setup.service in initramfs and is especially useful to unlock encrypted volumes in initramfs.
2013-12-15Install mkinitcpio-generate-shutdown-ramfs.service as a static serviceThomas Bächler2-4/+3
Pretty much everyone benefits from this service, as it is always better than having no shutdown-ramfs. If someone puts their own shutdown-ramfs in place, it will likely be done by initramfs and this service will be skipped automatically. In more obscure situations, it can still be masked.