On 02/24/2017 08:20 PM, Thanos Baloukas wrote: > On 24/02/2017 08:51 πμ, Linuxero wrote: >> On 2017-02-23 20:08, Thanos Baloukas wrote: >>> On 23/02/2017 07:25 μμ, Thanos Baloukas wrote: >>>> On 23/02/2017 02:59 μμ, Linuxero wrote: >>>>> Hi everybody; >>>>> >>>>> I have finished the latest development systemd LFS book. I have NVME >>>>> disks in my machine and the LFS partition is a GUID one. I >>>>> configured my >>>>> kernel and it boot well if I compile the NVME drivers built-in. >>>>> However, >>>>> I wanted to compile NVME as loadable modules. I installed dracut and >>>>> tried to create an initrd. Actually, the initrd is well, but for some >>>>> strange reason I am always dropped to dracut emergency shell as the >>>>> partition can not be found. >>>>> >>>>> Dracut version is 044. The emergency shell is unusable, as if the >>>>> system >>>>> were halted. >>>>> >>>>> Any suggestion about dracut with LFS/BLFS? >>>>> >>>>> Thanks in advance, >>>>> >>>> Are there any messages? Are the 'linux' and 'root=UUID=' >>>> entries in grub.cfg correct? Could it be that there is not >>>> /etc/os-release? I recall that it would not switch root >>>> if it did not exist. >>>> >>> You said you are using GUID (I'm getting that as GPT partition table). >>> I have no experience with GPT, sorry, the required root= entry >>> may differ. UUIDs may not be required, I mentioned that because >>> I'm using them in /etc/fstab and grub.cfg when booting with >>> an initramfs built with dracut. >>> >>> -- >>> Thanos >> >> Thanks for your answers. It is GPT scheme that I am using. UUIDs, Labels >> and everything is correct. >> >> BTW; UUIDs work the same on GPT. >> >> I guess that my problem is the following: >> >> NVME modules are not loaded in initrd. Because; when I compile the >> kernel with NVME built-in, I can boot without any problem. So it should >> be something with initrd. I am new to dracut. I could write a hook or a >> module, but I don't think that is necessary for my scenario. Am I right? >> >> If someone has more experience with dracut and how to build initrd for >> LFS using it; I'd appreciate any hint. >> >> Thanks again >> > This is what I do when I want to boot LFS on other machines. > I get the kernel config from > https://www.archlinux.org/packages/core/x86_64/linux/ > or > https://www.archlinux.org/packages/core/x86_64/linux-lts/ > > On these pages click 'Source Files' > > The last kernel I built was 4.4.7-lts-x86_64 on lfs-7.9-rc2-systemd. > They are on 4.4.51 now. > > pkgver=4.4.7 > pkgtar=linux-${pkgver}.tar.xz > extraver="-lts-x86_64" > make mrproper > set EXTRAVERSION to $extraver in Makefile > cp -v /path/to/config_file .config > make oldconfig > Set > CONFIG_LOCALVERSION="" > # CONFIG_LOCALVERSION_AUTO is not set > > make LANG=$LANG LC_ALL= menuconfig > make bzImage modules > make LOCALVERSION= INSTALL_MOD_PATH=${fakeroot} modules_install > > # remove build and source links > rm -v ${fakeroot}/lib/modules/${pkgver}${extraver}/{source,build} > > cp -v arch/x86/boot/bzImage /boot/vmlinuz-${pkgver}${extraver} > cp -v .config /boot/config-${pkgver}${extraver} > > # remove the firmware and get the latest > rm -rf ${fakeroot}/lib/firmware > cd ${fakeroot}/lib > git clone > https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git > mv -v linux-firmware firmware > rm -rf firmware/.git > # backup existing firmware > mkdir -pv /path/to/backup/firmware > mv -v /lib/firmware /path/to/backup/firmware > Place installation on / > > I tried dracut-044 but did not manage to create a working initramfs. > Did not look for the cause. No time, other priorities. > Tried dracut-041 that had worked in the past and succeeded. Built with > > make prefix=/usr \ > sysconfdir=/etc \ > bindir=/usr/bin \ > sbindir=/usr/bin \ > libdir=/usr/lib \ > loginstall=/var/log/dracut > > make DESTDIR=${fakeroot} \ > prefix=/usr \ > sysconfdir=/etc \ > bindir=/usr/bin \ > sbindir=/usr/bin \ > libdir=/usr/lib \ > loginstall=/var/log/dracut \ > install > > install -Dm0644 dracut.html ${_fake_doc_dir}/dracut.html > > Command used to create the initramfs: > > dracut -o "dm i18n lvm" --tmpdir ./initramfs-<kernel_version>.tmp \ > --keep --kver <kernel_version> -v \ > ./initramfs-<kernel_version>.img \ > 2>&1 | tee initramfs-<kernel_version>-build.log > > kernel_version is the directory name under /lib/modules/ where the > kernel modules reside. Though the included files are listed in > build.log and the lsinitrd tool can be used to list them too, > I find it convenient to save the tmpdir, (--keep) so that I can > inspect it's contents more effectively. > > See DRACUT(8) for the used options. The kernel module > /lib/modules/4.4.7-lts-x86_64/kernel/drivers/nvme/host/nvme.ko.gz > is in the created initramfs. There is a --add-drivers option > you might need. > > Of course, all this is far from our usual from scratch procedure. > > This is what I did. Please adjust at will. > > HTH. Good luck. >
It sure does. Thank you. I'll try that, then I'll try my own kernel. -- Be good, be happy and never let the lovely smile on your nice lips fade away
signature.asc
Description: OpenPGP digital signature
-- http://lists.linuxfromscratch.org/listinfo/lfs-chat FAQ: http://www.linuxfromscratch.org/blfs/faq.html Unsubscribe: See the above information page
