summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
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.
2013-12-15Add a tmpfiles.d configuration file to create /run/initramfs.Thomas Bächler2-1/+6
2013-12-06prevent calling a preset from a presetDave Reisner1-1/+6
This is surely a configuration error as it's an infinite loop.
2013-12-01remove legacy search paths in /lib/initcpioDave Reisner2-4/+2
2013-12-01Load build and run hooks from /etc/initcpioDave Reisner3-3/+11
This lets users shoot themselves in the foot more easily, as they can put their own modified hooks into /etc/initcpio/{hooks,install} to override those shipped by the distro in /usr/lib/initcpio. To make debugging easier, include the full path of the hook being used when mkinitcpio runs in verbose mode. Implements FS#37796.
2013-11-27sd-shutdown: don't fail after kernel updatesDave Reisner1-1/+1
When the module directory matching $(uname -r) cannot be found, generation of the shutdown ramfs aborted: systemd[1]: Starting Generate shutdown-ramfs... mkinitcpio[1944]: ==> ERROR: '/lib/modules/3.12.1-1-ARCH' is not a valid kernel module directory systemd[1]: mkinitcpio-generate-shutdown-ramfs.service: main process exited, code=exited, status=1/FAILURE systemd[1]: Failed to start Generate shutdown-ramfs. systemd[1]: Unit mkinitcpio-generate-shutdown-ramfs.service entered failed state. Tell mkinitcpio that we do not wish to add any kernel modules.
2013-11-27merge optkver into KERNELVERSIONDave Reisner1-6/+8
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2013-11-27mkinitcpio: Allow building an image without modulesThomas Bächler4-3/+10
The '-k none' switch prevents mkinitcpio from adding modules to the image and keeps it from bailing out when it cannot find any.
2013-11-27init_functions: escape slashes in tag valuesDave Reisner1-2/+11
This allows booting from devices which have labels like LABEL=/. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2013-11-26move a bunch of stuff to subdirsDave Reisner5-4/+5
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2013-11-24Add mkinitcpio-generate-shutdown-ramfs.serviceThomas Bächler3-1/+32
When enabled, this service generates an "initramfs" that systemd pivots to on shutdown to ensure clean umounting and shutdown of loop and dm devices. The actual work is done by systemd-shutdown.
2013-11-24mkinitcpio: Improve output when -d option is used.Thomas Bächler1-3/+7
2013-11-24mkinitcpio.8: document -d, --generatedirDave Reisner1-0/+5
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2013-11-24functions: error out when buildroot isn't writeableDave Reisner1-0/+5
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2013-11-24mkinitcpio: add -d optionThomas Bächler2-22/+28
The -d (--generatedir) option writes the root of the generated image directly to the specified directory. Useful for generating a shutdown-ramfs with mkinitcpio -d /run/initramfs/.
2013-10-21lsinitcpio: separate decompression from archive readingDave Reisner1-3/+3
This essentially reverts 306dcbd7b21f8a680 which foolishly assumes that kernel and libarchive decompression support stay in sync. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2013-09-26kernel-install: add hookTom Gundersen2-0/+15
This will allow systemd's kernel-install script to generate and install an initrd as per the freedesktop boot loader specs. See kernel-install(8) for details. Notice that 'profiles' are not used. This will eventually be hooked up so that calling "make install" from a kernel build will do the right thing. Signed-off-by: Tom Gundersen <teg@jklm.no>
2013-09-25mkinitcpio.conf(5): mention lz4 compressionDave Reisner1-3/+3
Since b5927393d103af9, mkinitcpio acknowledges that lz4 exists. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2013-09-24PKGBUILD: Point to the gitweb page for upstream URLDave Reisner1-1/+1
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2013-09-24autodetect: read modaliases from uevent filesDave Reisner2-7/+8
As suggested by Harald Hoyer, this is more accurate for the sake of following where udev gets its modaliases from. In some rare cases, it may even be more complete than scraping the raw modalias files. Also, introduce a wrapper around modprobe so that the options passed are never ommitted, or wrongly specified. In this case, a subtle bug with the -r flag is fixed due to using the wrong variable with modprobe's -d flag. Signed-off-by: Dave Reisner <dreisner@archlinux.org>