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


Attachment: 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

Reply via email to