2023-08-22T03:42:14,731 Created temporary directory: /tmp/pip-build-tracker-3bkk1xzv 2023-08-22T03:42:14,734 Initialized build tracking at /tmp/pip-build-tracker-3bkk1xzv 2023-08-22T03:42:14,735 Created build tracker: /tmp/pip-build-tracker-3bkk1xzv 2023-08-22T03:42:14,735 Entered build tracker: /tmp/pip-build-tracker-3bkk1xzv 2023-08-22T03:42:14,736 Created temporary directory: /tmp/pip-wheel-68zrt12k 2023-08-22T03:42:14,745 Created temporary directory: /tmp/pip-ephem-wheel-cache-5hpafr63 2023-08-22T03:42:14,797 Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple 2023-08-22T03:42:14,806 2 location(s) to search for versions of funtoo-ramdisk: 2023-08-22T03:42:14,806 * https://pypi.org/simple/funtoo-ramdisk/ 2023-08-22T03:42:14,806 * https://www.piwheels.org/simple/funtoo-ramdisk/ 2023-08-22T03:42:14,807 Fetching project page and analyzing links: https://pypi.org/simple/funtoo-ramdisk/ 2023-08-22T03:42:14,808 Getting page https://pypi.org/simple/funtoo-ramdisk/ 2023-08-22T03:42:14,812 Found index url https://pypi.org/simple/ 2023-08-22T03:42:14,995 Fetched page https://pypi.org/simple/funtoo-ramdisk/ as application/vnd.pypi.simple.v1+json 2023-08-22T03:42:15,001 Found link https://files.pythonhosted.org/packages/d3/2f/2d92b7aef92983cdfbe7e0809b00e5ffa9ff699c73ad53e501b93dfd5e7f/funtoo-ramdisk-1.0.0.tar.gz (from https://pypi.org/simple/funtoo-ramdisk/) (requires-python:>=3.7), version: 1.0.0 2023-08-22T03:42:15,003 Found link https://files.pythonhosted.org/packages/f7/ce/2b2669f5181ad3da55bdb4c0b7e78f1a1f02a52cf6f4d26da363b98b0ff6/funtoo-ramdisk-1.0.1.tar.gz (from https://pypi.org/simple/funtoo-ramdisk/) (requires-python:>=3.7), version: 1.0.1 2023-08-22T03:42:15,005 Found link https://files.pythonhosted.org/packages/f9/fa/646343cf9f6313cf3808fc13d1f0e047a0f044afbdd7c60d76613a4da543/funtoo-ramdisk-1.0.2.tar.gz (from https://pypi.org/simple/funtoo-ramdisk/) (requires-python:>=3.7), version: 1.0.2 2023-08-22T03:42:15,006 Found link https://files.pythonhosted.org/packages/33/8b/67d6030fe5aca53d240d6f4fb5cc6319918ed0c9310866a074c27ceebdf7/funtoo-ramdisk-1.0.3.tar.gz (from https://pypi.org/simple/funtoo-ramdisk/) (requires-python:>=3.7), version: 1.0.3 2023-08-22T03:42:15,008 Found link https://files.pythonhosted.org/packages/3f/13/0c6d2f9e8ae74fe6fc8a290bfbb7b389818e7a7b82d158ff20e9251e5c89/funtoo-ramdisk-1.0.4.tar.gz (from https://pypi.org/simple/funtoo-ramdisk/) (requires-python:>=3.7), version: 1.0.4 2023-08-22T03:42:15,009 Found link https://files.pythonhosted.org/packages/b2/7e/d3590830418ed3e696c6e922ead5a50daee4c8c2136b315153fcee0377a2/funtoo-ramdisk-1.0.5.tar.gz (from https://pypi.org/simple/funtoo-ramdisk/) (requires-python:>=3.7), version: 1.0.5 2023-08-22T03:42:15,011 Found link https://files.pythonhosted.org/packages/ed/be/18b4d837c37a78a43accd3347db70d3dc5bafd48b668d1f45d1b92172a00/funtoo-ramdisk-1.0.6.tar.gz (from https://pypi.org/simple/funtoo-ramdisk/) (requires-python:>=3.7), version: 1.0.6 2023-08-22T03:42:15,012 Fetching project page and analyzing links: https://www.piwheels.org/simple/funtoo-ramdisk/ 2023-08-22T03:42:15,012 Getting page https://www.piwheels.org/simple/funtoo-ramdisk/ 2023-08-22T03:42:15,015 Found index url https://www.piwheels.org/simple/ 2023-08-22T03:42:15,333 Fetched page https://www.piwheels.org/simple/funtoo-ramdisk/ as text/html 2023-08-22T03:42:15,340 Skipping link: No binaries permitted for funtoo-ramdisk: https://www.piwheels.org/simple/funtoo-ramdisk/funtoo_ramdisk-1.0.5-py3-none-any.whl#sha256=3451404b0e9f527100407bfd4f343cfe9197b5f6f9bab7e5f6494ce9ea2bafff (from https://www.piwheels.org/simple/funtoo-ramdisk/) (requires-python:>=3.7) 2023-08-22T03:42:15,340 Skipping link: No binaries permitted for funtoo-ramdisk: https://www.piwheels.org/simple/funtoo-ramdisk/funtoo_ramdisk-1.0.4-py3-none-any.whl#sha256=54c976a5a708a542266aa1f9c2584634ecaa529c6564bbef4c66d65012ced852 (from https://www.piwheels.org/simple/funtoo-ramdisk/) (requires-python:>=3.7) 2023-08-22T03:42:15,341 Skipping link: No binaries permitted for funtoo-ramdisk: https://www.piwheels.org/simple/funtoo-ramdisk/funtoo_ramdisk-1.0.3-py3-none-any.whl#sha256=cde4241106db6ca7c0bd04d0f1817c5f352fc45c46e5b75df9b1cf0dcd977234 (from https://www.piwheels.org/simple/funtoo-ramdisk/) (requires-python:>=3.7) 2023-08-22T03:42:15,342 Skipping link: No binaries permitted for funtoo-ramdisk: https://www.piwheels.org/simple/funtoo-ramdisk/funtoo_ramdisk-1.0.2-py3-none-any.whl#sha256=6e70627cb0da3859494b41255b0ba8bf164c16221b5779924cc3b5fd12a0a928 (from https://www.piwheels.org/simple/funtoo-ramdisk/) (requires-python:>=3.7) 2023-08-22T03:42:15,342 Skipping link: No binaries permitted for funtoo-ramdisk: https://www.piwheels.org/simple/funtoo-ramdisk/funtoo_ramdisk-1.0.1-py3-none-any.whl#sha256=232a400779c3abd15ac70e995c47347a69f669d1ce4d4e4ced81b43b3a6b6c30 (from https://www.piwheels.org/simple/funtoo-ramdisk/) (requires-python:>=3.7) 2023-08-22T03:42:15,342 Skipping link: No binaries permitted for funtoo-ramdisk: https://www.piwheels.org/simple/funtoo-ramdisk/funtoo_ramdisk-1.0.0-py3-none-any.whl#sha256=cb61659ae06f4e370b5de5a9a3e3041eeaaa193ec1b45e1a0948b75d7ca922f2 (from https://www.piwheels.org/simple/funtoo-ramdisk/) (requires-python:>=3.7) 2023-08-22T03:42:15,343 Skipping link: not a file: https://www.piwheels.org/simple/funtoo-ramdisk/ 2023-08-22T03:42:15,344 Skipping link: not a file: https://pypi.org/simple/funtoo-ramdisk/ 2023-08-22T03:42:15,378 Given no hashes to check 1 links for project 'funtoo-ramdisk': discarding no candidates 2023-08-22T03:42:15,413 Collecting funtoo-ramdisk==1.0.6 2023-08-22T03:42:15,418 Created temporary directory: /tmp/pip-unpack-o007cpv5 2023-08-22T03:42:15,586 Downloading funtoo-ramdisk-1.0.6.tar.gz (23 kB) 2023-08-22T03:42:15,735 Added funtoo-ramdisk==1.0.6 from https://files.pythonhosted.org/packages/ed/be/18b4d837c37a78a43accd3347db70d3dc5bafd48b668d1f45d1b92172a00/funtoo-ramdisk-1.0.6.tar.gz to build tracker '/tmp/pip-build-tracker-3bkk1xzv' 2023-08-22T03:42:15,739 Running setup.py (path:/tmp/pip-wheel-68zrt12k/funtoo-ramdisk_a57581ea43204374b4619d58303376cc/setup.py) egg_info for package funtoo-ramdisk 2023-08-22T03:42:15,741 Created temporary directory: /tmp/pip-pip-egg-info-ovpdzv1l 2023-08-22T03:42:15,742 Preparing metadata (setup.py): started 2023-08-22T03:42:15,744 Running command python setup.py egg_info 2023-08-22T03:42:17,389 ************** 2023-08-22T03:42:17,391 Funtoo Ramdisk 2023-08-22T03:42:17,391 ************** 2023-08-22T03:42:17,392 Copyright 2023 Daniel Robbins, Funtoo Solutions, Inc. 2023-08-22T03:42:17,393 Licensed under the Apache License, Version 2.0 (the "License"); 2023-08-22T03:42:17,393 you may not use this file except in compliance with the License. 2023-08-22T03:42:17,393 You may obtain a copy of the License at 2023-08-22T03:42:17,394 http://www.apache.org/licenses/LICENSE-2.0 2023-08-22T03:42:17,395 Unless required by applicable law or agreed to in writing, software 2023-08-22T03:42:17,395 distributed under the License is distributed on an "AS IS" BASIS, 2023-08-22T03:42:17,395 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 2023-08-22T03:42:17,396 See the License for the specific language governing permissions and 2023-08-22T03:42:17,396 limitations under the License. 2023-08-22T03:42:17,397 Introduction 2023-08-22T03:42:17,397 ============ 2023-08-22T03:42:17,397 The Funtoo ramdisk tool, called ``ramdisk`` is a stand-alone tool to create an 2023-08-22T03:42:17,398 initial RAM disk filesystem (initramfs) for booting your Linux system. 2023-08-22T03:42:17,398 The internal initramfs logic is based on the logic found in Gentoo Linux's 2023-08-22T03:42:17,399 genkernel tool, but has been rewritten to be simpler and more efficient. 2023-08-22T03:42:17,399 You can use this tool to create an initramfs to boot to a Funtoo Linux root 2023-08-22T03:42:17,400 ext4 or XFS filesystem, which is what we support in our official installation 2023-08-22T03:42:17,400 documentation at https://www.funtoo.org/Install -- but that's about it. 2023-08-22T03:42:17,401 What's Not Included 2023-08-22T03:42:17,401 =================== 2023-08-22T03:42:17,402 Nearly all "extra" genkernel features are intentionally not yet implemented. 2023-08-22T03:42:17,402 This tool doesn't build your kernel or modules. 2023-08-22T03:42:17,403 It also currently doesn't support dmraid, zfs, btrfs, encrypted root, or LiveCD 2023-08-22T03:42:17,403 or LiveUSB booting. 2023-08-22T03:42:17,404 Why not? Because one of the main design goals of this project is to create a 2023-08-22T03:42:17,404 very elegant and easy-to-understand initramfs whose core logic is not cluttered 2023-08-22T03:42:17,405 with tons of complicated features. To start from a clean slate, we are starting 2023-08-22T03:42:17,405 from very minimal functionality and then will very carefully add back various 2023-08-22T03:42:17,405 features while keeping the code clean, simple, elegant and effective. 2023-08-22T03:42:17,406 What's Included 2023-08-22T03:42:17,406 =============== 2023-08-22T03:42:17,407 So, what *does* Funtoo's ramdisk tool actually offer? Here's a list: 2023-08-22T03:42:17,408 * genkernel-style initramfs without the cruft. In comparison to genkernel's 2023-08-22T03:42:17,408 initramfs, the shell code is about 10x simpler and a lot cleaner, but does 2023-08-22T03:42:17,408 the same thing and has been modernized. About 100 lines of shell script, 2023-08-22T03:42:17,409 with another 215 lines of functions in a support file. 2023-08-22T03:42:17,409 * Rootless operation. You do not need enhanced privileges to create the 2023-08-22T03:42:17,409 initramfs. 2023-08-22T03:42:17,410 * You can read the ``linuxrc`` script and actually understand what it does. 2023-08-22T03:42:17,411 It is written to be easy to understand and adapt. So it's not just short, 2023-08-22T03:42:17,411 but easy to grasp. 2023-08-22T03:42:17,412 * Enhanced module loading engine on the initramfs which is significantly 2023-08-22T03:42:17,412 faster than genkernel. This effectively eliminates the "watching the 2023-08-22T03:42:17,412 stream of useless modules being loaded" issue with genkernel. Modern 2023-08-22T03:42:17,413 systems with NVMe drives will load just a handful of modules to boot 2023-08-22T03:42:17,413 -- all without requiring any special action from the user. 2023-08-22T03:42:17,413 * If you are still able to find some modules that got loaded that you 2023-08-22T03:42:17,414 don't want loaded, you can use the "magic modules" feature to specify 2023-08-22T03:42:17,414 just the modules you want to load. Specify ``magic=mod1,mod2,mod3`` 2023-08-22T03:42:17,414 as a kernel argument and just these modules will be loaded. 2023-08-22T03:42:17,415 * Effective Python-based command to actually build the ramdisk, which is 2023-08-22T03:42:17,415 called: ``ramdisk``. This gives us an extensible platform for the future. 2023-08-22T03:42:17,416 * Enhanced ini-style system for selecting modules to include on your initramfs. 2023-08-22T03:42:17,416 * Enhanced ini-style system for selecting module groups to autoload on the initramfs. 2023-08-22T03:42:17,417 * Support for xz and zstd compression. 2023-08-22T03:42:17,417 How To Use It 2023-08-22T03:42:17,418 ============= 2023-08-22T03:42:17,418 First, install the package, via ``emerge ramdisk`` on Funtoo Linux, or alternatively 2023-08-22T03:42:17,419 ``pip3 install --user funtoo-ramdisk``. You will then have a ``ramdisk`` command 2023-08-22T03:42:17,419 in your path, which can be used to build a ramdisk. 2023-08-22T03:42:17,420 Then, as a regular user, you can run:: 2023-08-22T03:42:17,420 ramdisk /var/tmp/my-new-initramfs 2023-08-22T03:42:17,421 sudo cp /var/tmp/my-new-initramfs /boot 2023-08-22T03:42:17,421 By default, ``ramdisk`` will use your ``/usr/src/linux`` symlink to determine which 2023-08-22T03:42:17,422 kernel to use to build a ramdisk for. It will parse ``/usr/src/linux/Makefile``, 2023-08-22T03:42:17,422 extract kernel version information, and then find the appropriate directory in 2023-08-22T03:42:17,422 ``/lib/modules/`` for copying modules. 2023-08-22T03:42:17,423 Since this is brand-new software, it is highly recommended that you DO NOT OVERWRITE 2023-08-22T03:42:17,423 YOUR EXISTING, WORKING INITRAMFS THAT YOU CURRENTLY USE TO BOOT YOUR SYSTEM. 2023-08-22T03:42:17,424 Instead -- create a NEW BOOT ENTRY to test your initramfs. In GRUB, you can also 2023-08-22T03:42:17,424 press 'e' to edit an entry and type in the name of the new initramfs to give it a try. 2023-08-22T03:42:17,425 Enjoy -- and let me know how it works for you! Please report issues and feature 2023-08-22T03:42:17,425 requests to https://bugs.funtoo.org. 2023-08-22T03:42:17,426 ChangeLog 2023-08-22T03:42:17,426 ========= 2023-08-22T03:42:17,427 funtoo-ramdisk 1.0.6 2023-08-22T03:42:17,427 -------------------- 2023-08-22T03:42:17,428 Releaed on August 21, 2023. 2023-08-22T03:42:17,428 Two new options: 2023-08-22T03:42:17,429 * ``--modules_root`` to set the root filesystem to scan for modules. 2023-08-22T03:42:17,429 It defaults to ``/``. 2023-08-22T03:42:17,430 * ``--temp_root`` to set the default path to use for creating a 2023-08-22T03:42:17,431 temporary directory. It defaults to ``/var/tmp``. 2023-08-22T03:42:17,431 funtoo-ramdisk 1.0.5 2023-08-22T03:42:17,432 -------------------- 2023-08-22T03:42:17,432 Released on August 21, 2023. 2023-08-22T03:42:17,433 This is a features/maintenance/bug fix release. 2023-08-22T03:42:17,434 In addition to a bunch of minor fixes and clean-ups, which you can 2023-08-22T03:42:17,434 view in the git history, the following significant changes were 2023-08-22T03:42:17,434 made: 2023-08-22T03:42:17,435 * Use kmod ``/sbin/modprobe`` instead of busybox's modprobe. Busybox's modprobe 2023-08-22T03:42:17,435 may be fine, but for it to work, we must use busybox's ``depmod`` -- and we're 2023-08-22T03:42:17,436 not. We're using ``kmod``'s. So for now, let's just copy the right modprobe 2023-08-22T03:42:17,436 over. This fixes an issue where we get invalid symbols when loading modules 2023-08-22T03:42:17,436 using busybox ``modprobe``. ``modprobe`` is now resolving deps properly! :) 2023-08-22T03:42:17,437 At some point, we could make a "toggle" to select kmod/busybox mode. The 2023-08-22T03:42:17,437 best time to run ``depmod`` for busybox is probably once the ramdisk first 2023-08-22T03:42:17,437 boots, since it doesn't have a "root" option, making it hard to call from our 2023-08-22T03:42:17,438 ramdisk script. 2023-08-22T03:42:17,438 * Remove unused control character definitions in ``initrd.defaults``. 2023-08-22T03:42:17,439 * Mitigate an issue where ``ash`` shell could start before all USB keyboards 2023-08-22T03:42:17,439 have been detected, resulting in lack of input. We now wait 5 seconds 2023-08-22T03:42:17,440 before starting a rescue shell, to give the kernel time to enumerate 2023-08-22T03:42:17,440 devices on the USB2/3 bus. This isn't a full fix, but should resolve 2023-08-22T03:42:17,440 the problem of ``ash`` starting and not having any way to type, because 2023-08-22T03:42:17,441 it didn't connect to your main keyboard. 2023-08-22T03:42:17,441 Try to work around issues related to ATA/SCSI disk enumeration which could 2023-08-22T03:42:17,442 prevent the root filesystem from being mounted (see FL-11532). 2023-08-22T03:42:17,442 * Detect when a user has a ``/dev/sd*`` root block device and warn them that 2023-08-22T03:42:17,443 this is not a good idea, and can cause problems if you have multiple 2023-08-22T03:42:17,443 disks. Show them how to fix the problem by switching to UUID. 2023-08-22T03:42:17,444 * Remove scsi_debug module which is evil and if we force-load it, will create 2023-08-22T03:42:17,444 a new SCSI device 8MB in size and trigger the problem above for anyone 2023-08-22T03:42:17,444 with a SATA disk. 2023-08-22T03:42:17,445 * To implement above feature, added a feature to allow masking of modules in 2023-08-22T03:42:17,445 ``modules.copy`` via "-mod_shortname" in a specific section. Also added a 2023-08-22T03:42:17,445 lot of sanity checking and warnings. If you happen to mask a module in the 2023-08-22T03:42:17,446 wrong section, so it still gets included on the initramfs due to other 2023-08-22T03:42:17,446 section(s), we will warn you. 2023-08-22T03:42:17,447 funtoo-ramdisk 1.0.4 2023-08-22T03:42:17,447 -------------------- 2023-08-22T03:42:17,448 Released on August 18, 2023. 2023-08-22T03:42:17,449 This is a maintenance/bug fix release. 2023-08-22T03:42:17,449 * Fix ability to run from the git repo. This wasn't working. 2023-08-22T03:42:17,450 * Fix issue found by grouche, where if a module is built-in to the 2023-08-22T03:42:17,450 kernel but listed in ``modules.autoload``, ``ramdisk`` would throw 2023-08-22T03:42:17,451 an error because it would think it's not copied to the initramfs. 2023-08-22T03:42:17,451 We now read in the ``modules.builtin`` file and use this in the 2023-08-22T03:42:17,451 internal logic -- if a module is built-in to the kernel, we can 2023-08-22T03:42:17,452 not worry if it is our ``modules.autoload`` list. We still have it. 2023-08-22T03:42:17,452 We will also not worry about trying to load it at boot. 2023-08-22T03:42:17,452 * Add a debug output whenever a module is referenced that is actually 2023-08-22T03:42:17,453 a built-in. This helps to audit the behavior of the above 2023-08-22T03:42:17,453 functionality and could be useful to users of the tool as well. 2023-08-22T03:42:17,454 * Announce we are in debug mode with ``log.info()`` instead of a 2023-08-22T03:42:17,454 warning. Looks a bit nicer. 2023-08-22T03:42:17,455 running egg_info 2023-08-22T03:42:17,455 creating /tmp/pip-pip-egg-info-ovpdzv1l/funtoo_ramdisk.egg-info 2023-08-22T03:42:17,485 writing /tmp/pip-pip-egg-info-ovpdzv1l/funtoo_ramdisk.egg-info/PKG-INFO 2023-08-22T03:42:17,490 writing dependency_links to /tmp/pip-pip-egg-info-ovpdzv1l/funtoo_ramdisk.egg-info/dependency_links.txt 2023-08-22T03:42:17,495 writing requirements to /tmp/pip-pip-egg-info-ovpdzv1l/funtoo_ramdisk.egg-info/requires.txt 2023-08-22T03:42:17,497 writing top-level names to /tmp/pip-pip-egg-info-ovpdzv1l/funtoo_ramdisk.egg-info/top_level.txt 2023-08-22T03:42:17,500 writing manifest file '/tmp/pip-pip-egg-info-ovpdzv1l/funtoo_ramdisk.egg-info/SOURCES.txt' 2023-08-22T03:42:17,861 reading manifest file '/tmp/pip-pip-egg-info-ovpdzv1l/funtoo_ramdisk.egg-info/SOURCES.txt' 2023-08-22T03:42:17,864 reading manifest template 'MANIFEST.in' 2023-08-22T03:42:17,879 writing manifest file '/tmp/pip-pip-egg-info-ovpdzv1l/funtoo_ramdisk.egg-info/SOURCES.txt' 2023-08-22T03:42:18,001 Preparing metadata (setup.py): finished with status 'done' 2023-08-22T03:42:18,015 Source in /tmp/pip-wheel-68zrt12k/funtoo-ramdisk_a57581ea43204374b4619d58303376cc has version 1.0.6, which satisfies requirement funtoo-ramdisk==1.0.6 from https://files.pythonhosted.org/packages/ed/be/18b4d837c37a78a43accd3347db70d3dc5bafd48b668d1f45d1b92172a00/funtoo-ramdisk-1.0.6.tar.gz 2023-08-22T03:42:18,016 Removed funtoo-ramdisk==1.0.6 from https://files.pythonhosted.org/packages/ed/be/18b4d837c37a78a43accd3347db70d3dc5bafd48b668d1f45d1b92172a00/funtoo-ramdisk-1.0.6.tar.gz from build tracker '/tmp/pip-build-tracker-3bkk1xzv' 2023-08-22T03:42:18,033 Created temporary directory: /tmp/pip-unpack-sh3y4pws 2023-08-22T03:42:18,034 Building wheels for collected packages: funtoo-ramdisk 2023-08-22T03:42:18,043 Created temporary directory: /tmp/pip-wheel-e9x23f_x 2023-08-22T03:42:18,043 Building wheel for funtoo-ramdisk (setup.py): started 2023-08-22T03:42:18,045 Destination directory: /tmp/pip-wheel-e9x23f_x 2023-08-22T03:42:18,046 Running command python setup.py bdist_wheel 2023-08-22T03:42:19,149 ************** 2023-08-22T03:42:19,151 Funtoo Ramdisk 2023-08-22T03:42:19,151 ************** 2023-08-22T03:42:19,152 Copyright 2023 Daniel Robbins, Funtoo Solutions, Inc. 2023-08-22T03:42:19,152 Licensed under the Apache License, Version 2.0 (the "License"); 2023-08-22T03:42:19,153 you may not use this file except in compliance with the License. 2023-08-22T03:42:19,153 You may obtain a copy of the License at 2023-08-22T03:42:19,154 http://www.apache.org/licenses/LICENSE-2.0 2023-08-22T03:42:19,154 Unless required by applicable law or agreed to in writing, software 2023-08-22T03:42:19,155 distributed under the License is distributed on an "AS IS" BASIS, 2023-08-22T03:42:19,155 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 2023-08-22T03:42:19,155 See the License for the specific language governing permissions and 2023-08-22T03:42:19,156 limitations under the License. 2023-08-22T03:42:19,156 Introduction 2023-08-22T03:42:19,157 ============ 2023-08-22T03:42:19,157 The Funtoo ramdisk tool, called ``ramdisk`` is a stand-alone tool to create an 2023-08-22T03:42:19,158 initial RAM disk filesystem (initramfs) for booting your Linux system. 2023-08-22T03:42:19,158 The internal initramfs logic is based on the logic found in Gentoo Linux's 2023-08-22T03:42:19,159 genkernel tool, but has been rewritten to be simpler and more efficient. 2023-08-22T03:42:19,159 You can use this tool to create an initramfs to boot to a Funtoo Linux root 2023-08-22T03:42:19,160 ext4 or XFS filesystem, which is what we support in our official installation 2023-08-22T03:42:19,160 documentation at https://www.funtoo.org/Install -- but that's about it. 2023-08-22T03:42:19,161 What's Not Included 2023-08-22T03:42:19,161 =================== 2023-08-22T03:42:19,162 Nearly all "extra" genkernel features are intentionally not yet implemented. 2023-08-22T03:42:19,162 This tool doesn't build your kernel or modules. 2023-08-22T03:42:19,163 It also currently doesn't support dmraid, zfs, btrfs, encrypted root, or LiveCD 2023-08-22T03:42:19,163 or LiveUSB booting. 2023-08-22T03:42:19,164 Why not? Because one of the main design goals of this project is to create a 2023-08-22T03:42:19,164 very elegant and easy-to-understand initramfs whose core logic is not cluttered 2023-08-22T03:42:19,164 with tons of complicated features. To start from a clean slate, we are starting 2023-08-22T03:42:19,165 from very minimal functionality and then will very carefully add back various 2023-08-22T03:42:19,165 features while keeping the code clean, simple, elegant and effective. 2023-08-22T03:42:19,166 What's Included 2023-08-22T03:42:19,166 =============== 2023-08-22T03:42:19,167 So, what *does* Funtoo's ramdisk tool actually offer? Here's a list: 2023-08-22T03:42:19,167 * genkernel-style initramfs without the cruft. In comparison to genkernel's 2023-08-22T03:42:19,168 initramfs, the shell code is about 10x simpler and a lot cleaner, but does 2023-08-22T03:42:19,168 the same thing and has been modernized. About 100 lines of shell script, 2023-08-22T03:42:19,168 with another 215 lines of functions in a support file. 2023-08-22T03:42:19,169 * Rootless operation. You do not need enhanced privileges to create the 2023-08-22T03:42:19,169 initramfs. 2023-08-22T03:42:19,170 * You can read the ``linuxrc`` script and actually understand what it does. 2023-08-22T03:42:19,170 It is written to be easy to understand and adapt. So it's not just short, 2023-08-22T03:42:19,171 but easy to grasp. 2023-08-22T03:42:19,171 * Enhanced module loading engine on the initramfs which is significantly 2023-08-22T03:42:19,172 faster than genkernel. This effectively eliminates the "watching the 2023-08-22T03:42:19,172 stream of useless modules being loaded" issue with genkernel. Modern 2023-08-22T03:42:19,172 systems with NVMe drives will load just a handful of modules to boot 2023-08-22T03:42:19,173 -- all without requiring any special action from the user. 2023-08-22T03:42:19,173 * If you are still able to find some modules that got loaded that you 2023-08-22T03:42:19,174 don't want loaded, you can use the "magic modules" feature to specify 2023-08-22T03:42:19,174 just the modules you want to load. Specify ``magic=mod1,mod2,mod3`` 2023-08-22T03:42:19,174 as a kernel argument and just these modules will be loaded. 2023-08-22T03:42:19,175 * Effective Python-based command to actually build the ramdisk, which is 2023-08-22T03:42:19,175 called: ``ramdisk``. This gives us an extensible platform for the future. 2023-08-22T03:42:19,176 * Enhanced ini-style system for selecting modules to include on your initramfs. 2023-08-22T03:42:19,176 * Enhanced ini-style system for selecting module groups to autoload on the initramfs. 2023-08-22T03:42:19,177 * Support for xz and zstd compression. 2023-08-22T03:42:19,177 How To Use It 2023-08-22T03:42:19,178 ============= 2023-08-22T03:42:19,178 First, install the package, via ``emerge ramdisk`` on Funtoo Linux, or alternatively 2023-08-22T03:42:19,179 ``pip3 install --user funtoo-ramdisk``. You will then have a ``ramdisk`` command 2023-08-22T03:42:19,179 in your path, which can be used to build a ramdisk. 2023-08-22T03:42:19,180 Then, as a regular user, you can run:: 2023-08-22T03:42:19,180 ramdisk /var/tmp/my-new-initramfs 2023-08-22T03:42:19,181 sudo cp /var/tmp/my-new-initramfs /boot 2023-08-22T03:42:19,181 By default, ``ramdisk`` will use your ``/usr/src/linux`` symlink to determine which 2023-08-22T03:42:19,182 kernel to use to build a ramdisk for. It will parse ``/usr/src/linux/Makefile``, 2023-08-22T03:42:19,182 extract kernel version information, and then find the appropriate directory in 2023-08-22T03:42:19,182 ``/lib/modules/`` for copying modules. 2023-08-22T03:42:19,183 Since this is brand-new software, it is highly recommended that you DO NOT OVERWRITE 2023-08-22T03:42:19,184 YOUR EXISTING, WORKING INITRAMFS THAT YOU CURRENTLY USE TO BOOT YOUR SYSTEM. 2023-08-22T03:42:19,184 Instead -- create a NEW BOOT ENTRY to test your initramfs. In GRUB, you can also 2023-08-22T03:42:19,184 press 'e' to edit an entry and type in the name of the new initramfs to give it a try. 2023-08-22T03:42:19,185 Enjoy -- and let me know how it works for you! Please report issues and feature 2023-08-22T03:42:19,185 requests to https://bugs.funtoo.org. 2023-08-22T03:42:19,186 ChangeLog 2023-08-22T03:42:19,187 ========= 2023-08-22T03:42:19,187 funtoo-ramdisk 1.0.6 2023-08-22T03:42:19,188 -------------------- 2023-08-22T03:42:19,188 Releaed on August 21, 2023. 2023-08-22T03:42:19,189 Two new options: 2023-08-22T03:42:19,190 * ``--modules_root`` to set the root filesystem to scan for modules. 2023-08-22T03:42:19,190 It defaults to ``/``. 2023-08-22T03:42:19,191 * ``--temp_root`` to set the default path to use for creating a 2023-08-22T03:42:19,191 temporary directory. It defaults to ``/var/tmp``. 2023-08-22T03:42:19,191 funtoo-ramdisk 1.0.5 2023-08-22T03:42:19,192 -------------------- 2023-08-22T03:42:19,192 Released on August 21, 2023. 2023-08-22T03:42:19,193 This is a features/maintenance/bug fix release. 2023-08-22T03:42:19,194 In addition to a bunch of minor fixes and clean-ups, which you can 2023-08-22T03:42:19,194 view in the git history, the following significant changes were 2023-08-22T03:42:19,194 made: 2023-08-22T03:42:19,195 * Use kmod ``/sbin/modprobe`` instead of busybox's modprobe. Busybox's modprobe 2023-08-22T03:42:19,195 may be fine, but for it to work, we must use busybox's ``depmod`` -- and we're 2023-08-22T03:42:19,196 not. We're using ``kmod``'s. So for now, let's just copy the right modprobe 2023-08-22T03:42:19,196 over. This fixes an issue where we get invalid symbols when loading modules 2023-08-22T03:42:19,196 using busybox ``modprobe``. ``modprobe`` is now resolving deps properly! :) 2023-08-22T03:42:19,197 At some point, we could make a "toggle" to select kmod/busybox mode. The 2023-08-22T03:42:19,197 best time to run ``depmod`` for busybox is probably once the ramdisk first 2023-08-22T03:42:19,198 boots, since it doesn't have a "root" option, making it hard to call from our 2023-08-22T03:42:19,198 ramdisk script. 2023-08-22T03:42:19,199 * Remove unused control character definitions in ``initrd.defaults``. 2023-08-22T03:42:19,199 * Mitigate an issue where ``ash`` shell could start before all USB keyboards 2023-08-22T03:42:19,200 have been detected, resulting in lack of input. We now wait 5 seconds 2023-08-22T03:42:19,200 before starting a rescue shell, to give the kernel time to enumerate 2023-08-22T03:42:19,200 devices on the USB2/3 bus. This isn't a full fix, but should resolve 2023-08-22T03:42:19,201 the problem of ``ash`` starting and not having any way to type, because 2023-08-22T03:42:19,201 it didn't connect to your main keyboard. 2023-08-22T03:42:19,202 Try to work around issues related to ATA/SCSI disk enumeration which could 2023-08-22T03:42:19,202 prevent the root filesystem from being mounted (see FL-11532). 2023-08-22T03:42:19,203 * Detect when a user has a ``/dev/sd*`` root block device and warn them that 2023-08-22T03:42:19,203 this is not a good idea, and can cause problems if you have multiple 2023-08-22T03:42:19,203 disks. Show them how to fix the problem by switching to UUID. 2023-08-22T03:42:19,204 * Remove scsi_debug module which is evil and if we force-load it, will create 2023-08-22T03:42:19,204 a new SCSI device 8MB in size and trigger the problem above for anyone 2023-08-22T03:42:19,204 with a SATA disk. 2023-08-22T03:42:19,205 * To implement above feature, added a feature to allow masking of modules in 2023-08-22T03:42:19,205 ``modules.copy`` via "-mod_shortname" in a specific section. Also added a 2023-08-22T03:42:19,206 lot of sanity checking and warnings. If you happen to mask a module in the 2023-08-22T03:42:19,206 wrong section, so it still gets included on the initramfs due to other 2023-08-22T03:42:19,206 section(s), we will warn you. 2023-08-22T03:42:19,207 funtoo-ramdisk 1.0.4 2023-08-22T03:42:19,207 -------------------- 2023-08-22T03:42:19,208 Released on August 18, 2023. 2023-08-22T03:42:19,208 This is a maintenance/bug fix release. 2023-08-22T03:42:19,209 * Fix ability to run from the git repo. This wasn't working. 2023-08-22T03:42:19,210 * Fix issue found by grouche, where if a module is built-in to the 2023-08-22T03:42:19,210 kernel but listed in ``modules.autoload``, ``ramdisk`` would throw 2023-08-22T03:42:19,210 an error because it would think it's not copied to the initramfs. 2023-08-22T03:42:19,211 We now read in the ``modules.builtin`` file and use this in the 2023-08-22T03:42:19,211 internal logic -- if a module is built-in to the kernel, we can 2023-08-22T03:42:19,211 not worry if it is our ``modules.autoload`` list. We still have it. 2023-08-22T03:42:19,212 We will also not worry about trying to load it at boot. 2023-08-22T03:42:19,212 * Add a debug output whenever a module is referenced that is actually 2023-08-22T03:42:19,213 a built-in. This helps to audit the behavior of the above 2023-08-22T03:42:19,213 functionality and could be useful to users of the tool as well. 2023-08-22T03:42:19,214 * Announce we are in debug mode with ``log.info()`` instead of a 2023-08-22T03:42:19,214 warning. Looks a bit nicer. 2023-08-22T03:42:19,762 running bdist_wheel 2023-08-22T03:42:20,567 running build 2023-08-22T03:42:20,568 running build_py 2023-08-22T03:42:20,662 creating build 2023-08-22T03:42:20,663 creating build/lib 2023-08-22T03:42:20,664 creating build/lib/funtoo_ramdisk 2023-08-22T03:42:20,667 copying funtoo_ramdisk/initramfs.py -> build/lib/funtoo_ramdisk 2023-08-22T03:42:20,672 copying funtoo_ramdisk/version.py -> build/lib/funtoo_ramdisk 2023-08-22T03:42:20,675 copying funtoo_ramdisk/__init__.py -> build/lib/funtoo_ramdisk 2023-08-22T03:42:20,678 copying funtoo_ramdisk/modules.py -> build/lib/funtoo_ramdisk 2023-08-22T03:42:20,683 copying funtoo_ramdisk/config_files.py -> build/lib/funtoo_ramdisk 2023-08-22T03:42:20,688 creating build/lib/funtoo_ramdisk/support 2023-08-22T03:42:20,690 copying funtoo_ramdisk/support/__init__.py -> build/lib/funtoo_ramdisk/support 2023-08-22T03:42:20,692 running egg_info 2023-08-22T03:42:20,885 writing funtoo_ramdisk.egg-info/PKG-INFO 2023-08-22T03:42:20,889 writing dependency_links to funtoo_ramdisk.egg-info/dependency_links.txt 2023-08-22T03:42:20,894 writing requirements to funtoo_ramdisk.egg-info/requires.txt 2023-08-22T03:42:20,896 writing top-level names to funtoo_ramdisk.egg-info/top_level.txt 2023-08-22T03:42:20,989 reading manifest file 'funtoo_ramdisk.egg-info/SOURCES.txt' 2023-08-22T03:42:20,995 reading manifest template 'MANIFEST.in' 2023-08-22T03:42:21,011 writing manifest file 'funtoo_ramdisk.egg-info/SOURCES.txt' 2023-08-22T03:42:21,016 /home/piwheels/.local/lib/python3.7/site-packages/setuptools/command/build_py.py:201: _Warning: Package 'funtoo_ramdisk.support.etc' is absent from the `packages` configuration. 2023-08-22T03:42:21,017 !! 2023-08-22T03:42:21,017 ******************************************************************************** 2023-08-22T03:42:21,018 ############################ 2023-08-22T03:42:21,018 # Package would be ignored # 2023-08-22T03:42:21,018 ############################ 2023-08-22T03:42:21,019 Python recognizes 'funtoo_ramdisk.support.etc' as an importable package[^1], 2023-08-22T03:42:21,019 but it is absent from setuptools' `packages` configuration. 2023-08-22T03:42:21,020 This leads to an ambiguous overall configuration. If you want to distribute this 2023-08-22T03:42:21,020 package, please make sure that 'funtoo_ramdisk.support.etc' is explicitly added 2023-08-22T03:42:21,020 to the `packages` configuration field. 2023-08-22T03:42:21,021 Alternatively, you can also rely on setuptools' discovery methods 2023-08-22T03:42:21,021 (for example by using `find_namespace_packages(...)`/`find_namespace:` 2023-08-22T03:42:21,022 instead of `find_packages(...)`/`find:`). 2023-08-22T03:42:21,022 You can read more about "package discovery" on setuptools documentation page: 2023-08-22T03:42:21,023 - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 2023-08-22T03:42:21,024 If you don't want 'funtoo_ramdisk.support.etc' to be distributed and are 2023-08-22T03:42:21,024 already explicitly excluding 'funtoo_ramdisk.support.etc' via 2023-08-22T03:42:21,024 `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 2023-08-22T03:42:21,025 you can try to use `exclude_package_data`, or `include-package-data=False` in 2023-08-22T03:42:21,025 combination with a more fine grained `package-data` configuration. 2023-08-22T03:42:21,026 You can read more about "package data files" on setuptools documentation page: 2023-08-22T03:42:21,026 - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 2023-08-22T03:42:21,027 [^1]: For Python, any directory (with suitable naming) can be imported, 2023-08-22T03:42:21,028 even if it does not contain any `.py` files. 2023-08-22T03:42:21,028 On the other hand, currently there is no concept of package data 2023-08-22T03:42:21,028 directory, all directories are treated like packages. 2023-08-22T03:42:21,029 ******************************************************************************** 2023-08-22T03:42:21,029 !! 2023-08-22T03:42:21,030 check.warn(importable) 2023-08-22T03:42:21,030 copying funtoo_ramdisk/support/initramfs.cpio -> build/lib/funtoo_ramdisk/support 2023-08-22T03:42:21,030 copying funtoo_ramdisk/support/linuxrc -> build/lib/funtoo_ramdisk/support 2023-08-22T03:42:21,031 copying funtoo_ramdisk/support/modules.autoload -> build/lib/funtoo_ramdisk/support 2023-08-22T03:42:21,033 copying funtoo_ramdisk/support/modules.copy -> build/lib/funtoo_ramdisk/support 2023-08-22T03:42:21,037 creating build/lib/funtoo_ramdisk/support/etc 2023-08-22T03:42:21,039 copying funtoo_ramdisk/support/etc/initrd.defaults -> build/lib/funtoo_ramdisk/support/etc 2023-08-22T03:42:21,044 copying funtoo_ramdisk/support/etc/initrd.scripts -> build/lib/funtoo_ramdisk/support/etc 2023-08-22T03:42:21,051 running build_scripts 2023-08-22T03:42:21,052 creating build/scripts-3.7 2023-08-22T03:42:21,054 copying and adjusting bin/ramdisk -> build/scripts-3.7 2023-08-22T03:42:21,059 changing mode of build/scripts-3.7/ramdisk from 644 to 755 2023-08-22T03:42:21,155 /home/piwheels/.local/lib/python3.7/site-packages/setuptools/_distutils/cmd.py:66: SetuptoolsDeprecationWarning: setup.py install is deprecated. 2023-08-22T03:42:21,156 !! 2023-08-22T03:42:21,156 ******************************************************************************** 2023-08-22T03:42:21,157 Please avoid running ``setup.py`` directly. 2023-08-22T03:42:21,157 Instead, use pypa/build, pypa/installer, pypa/build or 2023-08-22T03:42:21,157 other standards-based tools. 2023-08-22T03:42:21,158 See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html for details. 2023-08-22T03:42:21,158 ******************************************************************************** 2023-08-22T03:42:21,159 !! 2023-08-22T03:42:21,159 self.initialize_options() 2023-08-22T03:42:21,244 installing to build/bdist.linux-armv7l/wheel 2023-08-22T03:42:21,245 running install 2023-08-22T03:42:21,305 running install_lib 2023-08-22T03:42:21,397 creating build/bdist.linux-armv7l 2023-08-22T03:42:21,398 creating build/bdist.linux-armv7l/wheel 2023-08-22T03:42:21,401 creating build/bdist.linux-armv7l/wheel/funtoo_ramdisk 2023-08-22T03:42:21,403 copying build/lib/funtoo_ramdisk/initramfs.py -> build/bdist.linux-armv7l/wheel/funtoo_ramdisk 2023-08-22T03:42:21,408 copying build/lib/funtoo_ramdisk/version.py -> build/bdist.linux-armv7l/wheel/funtoo_ramdisk 2023-08-22T03:42:21,412 copying build/lib/funtoo_ramdisk/__init__.py -> build/bdist.linux-armv7l/wheel/funtoo_ramdisk 2023-08-22T03:42:21,415 copying build/lib/funtoo_ramdisk/modules.py -> build/bdist.linux-armv7l/wheel/funtoo_ramdisk 2023-08-22T03:42:21,421 creating build/bdist.linux-armv7l/wheel/funtoo_ramdisk/support 2023-08-22T03:42:21,422 copying build/lib/funtoo_ramdisk/support/initramfs.cpio -> build/bdist.linux-armv7l/wheel/funtoo_ramdisk/support 2023-08-22T03:42:21,426 copying build/lib/funtoo_ramdisk/support/__init__.py -> build/bdist.linux-armv7l/wheel/funtoo_ramdisk/support 2023-08-22T03:42:21,430 copying build/lib/funtoo_ramdisk/support/linuxrc -> build/bdist.linux-armv7l/wheel/funtoo_ramdisk/support 2023-08-22T03:42:21,434 copying build/lib/funtoo_ramdisk/support/modules.copy -> build/bdist.linux-armv7l/wheel/funtoo_ramdisk/support 2023-08-22T03:42:21,438 creating build/bdist.linux-armv7l/wheel/funtoo_ramdisk/support/etc 2023-08-22T03:42:21,440 copying build/lib/funtoo_ramdisk/support/etc/initrd.scripts -> build/bdist.linux-armv7l/wheel/funtoo_ramdisk/support/etc 2023-08-22T03:42:21,444 copying build/lib/funtoo_ramdisk/support/etc/initrd.defaults -> build/bdist.linux-armv7l/wheel/funtoo_ramdisk/support/etc 2023-08-22T03:42:21,448 copying build/lib/funtoo_ramdisk/support/modules.autoload -> build/bdist.linux-armv7l/wheel/funtoo_ramdisk/support 2023-08-22T03:42:21,452 copying build/lib/funtoo_ramdisk/config_files.py -> build/bdist.linux-armv7l/wheel/funtoo_ramdisk 2023-08-22T03:42:21,455 running install_egg_info 2023-08-22T03:42:21,552 Copying funtoo_ramdisk.egg-info to build/bdist.linux-armv7l/wheel/funtoo_ramdisk-1.0.6-py3.7.egg-info 2023-08-22T03:42:21,573 running install_scripts 2023-08-22T03:42:21,575 creating build/bdist.linux-armv7l/wheel/funtoo_ramdisk-1.0.6.data 2023-08-22T03:42:21,576 creating build/bdist.linux-armv7l/wheel/funtoo_ramdisk-1.0.6.data/scripts 2023-08-22T03:42:21,578 copying build/scripts-3.7/ramdisk -> build/bdist.linux-armv7l/wheel/funtoo_ramdisk-1.0.6.data/scripts 2023-08-22T03:42:21,582 changing mode of build/bdist.linux-armv7l/wheel/funtoo_ramdisk-1.0.6.data/scripts/ramdisk to 755 2023-08-22T03:42:21,609 creating build/bdist.linux-armv7l/wheel/funtoo_ramdisk-1.0.6.dist-info/WHEEL 2023-08-22T03:42:21,614 creating '/tmp/pip-wheel-e9x23f_x/funtoo_ramdisk-1.0.6-py3-none-any.whl' and adding 'build/bdist.linux-armv7l/wheel' to it 2023-08-22T03:42:21,619 adding 'funtoo_ramdisk/__init__.py' 2023-08-22T03:42:21,622 adding 'funtoo_ramdisk/config_files.py' 2023-08-22T03:42:21,625 adding 'funtoo_ramdisk/initramfs.py' 2023-08-22T03:42:21,631 adding 'funtoo_ramdisk/modules.py' 2023-08-22T03:42:21,634 adding 'funtoo_ramdisk/version.py' 2023-08-22T03:42:21,637 adding 'funtoo_ramdisk/support/__init__.py' 2023-08-22T03:42:21,639 adding 'funtoo_ramdisk/support/initramfs.cpio' 2023-08-22T03:42:21,643 adding 'funtoo_ramdisk/support/linuxrc' 2023-08-22T03:42:21,645 adding 'funtoo_ramdisk/support/modules.autoload' 2023-08-22T03:42:21,648 adding 'funtoo_ramdisk/support/modules.copy' 2023-08-22T03:42:21,651 adding 'funtoo_ramdisk/support/etc/initrd.defaults' 2023-08-22T03:42:21,655 adding 'funtoo_ramdisk/support/etc/initrd.scripts' 2023-08-22T03:42:21,660 adding 'funtoo_ramdisk-1.0.6.data/scripts/ramdisk' 2023-08-22T03:42:21,666 adding 'funtoo_ramdisk-1.0.6.dist-info/METADATA' 2023-08-22T03:42:21,668 adding 'funtoo_ramdisk-1.0.6.dist-info/WHEEL' 2023-08-22T03:42:21,670 adding 'funtoo_ramdisk-1.0.6.dist-info/top_level.txt' 2023-08-22T03:42:21,672 adding 'funtoo_ramdisk-1.0.6.dist-info/RECORD' 2023-08-22T03:42:21,675 removing build/bdist.linux-armv7l/wheel 2023-08-22T03:42:21,843 Building wheel for funtoo-ramdisk (setup.py): finished with status 'done' 2023-08-22T03:42:21,850 Created wheel for funtoo-ramdisk: filename=funtoo_ramdisk-1.0.6-py3-none-any.whl size=22120 sha256=f40079c99c437f3949147af63efa1e16713bbe6101b4fde69e8de5ea434306e3 2023-08-22T03:42:21,852 Stored in directory: /tmp/pip-ephem-wheel-cache-5hpafr63/wheels/44/7d/de/9d7157f9b8d523da321d02f3a58b76b83fc5254ef82c1b2e7f 2023-08-22T03:42:21,881 Successfully built funtoo-ramdisk 2023-08-22T03:42:21,889 Removed build tracker: '/tmp/pip-build-tracker-3bkk1xzv'