Hello Moritz, I need here some help from you. I'll try to reconstruct the parts of the local.conf you are using, so I (and Jupiter) can understand what should we do to also bundle kernel image with initramfs, to end up in Dracut/rescue shell.
Here is what I anticipate after reading several YOCTO @ threads: IMAGE_FSTYPES_append = " cpio.gz" INITRAMFS_IMAGE = "core-image-minimal-initramfs" INITRAMFS_IMAGE_BUNDLE = "1" # debug: adds debug boot parameters like 'shell' and 'debug', see # meta/recipes-core/initrdscripts/initramfs-framework/debug for details # Could be removed in more minimal product image PACKAGE_INSTALL += "initramfs-module-debug" Could you, please, review these lines and fix, if something is not correct? I what I understood, this does the magic, but you could not stop in initramfs shell? Still, this problem is not solved? > I was following this site: https://wiki.debian.org/InitramfsDebug > Rescue shell (also known as initramfs shell) > Read man initramfs-tools to learn about the break=something kernel > parameter (where valid arguments for something are: top, modules, > premount, mount, mountroot, bottom, init), which starts a debug shell. > You can try, for example, break=premount. You can edit /boot/grub/grub.cfg > to add this to the end of the kernel line, or you can do it interactively > from the grub boot menu: "e" to edit, and "b" to boot once you've edited > the kernel line. Now, as my understanding is, you solved this problem actually adding to grub.cfg in command kernel line break=premount, and was able to stop in rescue shell?! Am I correct here? Thank you, Zoran _______ On Mon, Jul 1, 2019 at 4:33 PM Moritz Porst <moritz.po...@gmx.de> wrote: > > Hello, > I think I found the issue. ( see below ) > > On 01.07.19 15:57, Zoran Stojsavljevic wrote: > > Hello Moritz, > > Too hot here, in Belgrade... Where I am resting for the Time being > (actually, this message given to my invisible spying security "angels" > on this list)... :-) Projected +38C degrees today. Too hot for this > too old Siberian untouchable bobcat! > > Luckily it's a rather cold day in germany, thanks that you still take the > time to answer ! > > I started from the core-image-minimal to have a small image and > extended it with the features I need, which is e.g. a graphical system. > The console=[...] part in the kernel command line is probably a > remnant but my image boots into the GUI. Is this a problem ? > > Nope, it is not. If you need to do it correctly, you should use > bitbake -k core-image-sato build command (my best educated guess). > Then, I do not feel comfortable seeing in your kernel command line > serial interface, do you agree? > > Yes that is true. > > YOCTO maintainers, any additional > advices? > > My bootloader is currently grub, the EFI is AM. > > Nope. Eeeeeeeeek. Wrong. Currently, your boot-loader is UEFI AMI. Your > OS (Linux probably, U name it) boot-loader is GRUB2. Let us keep it > contained, sane and sober. > > Sorry but I can't find this info in the EFI. > > Could you, please try the following command being root: dmesg | grep > MCU. or grep mcu, or grep CPUID or grep cpuid?? Please, post results > to this list (to me). > > No luck unfortunately (used grep -i) > > Could you, also, send to YOCTO list/me attached file: > /boot/microcode.cpio so I can somehow (?) inspect it? ;-) > > I send it to you directly, so I don't spam the list with a large attachment. > > 2GB, single channel. > > All Cool. E3825 by HW/silicon design could/does NOT support multiple > memory channels. ONLY single... But even YOCTO primes (INTEL ones from > this list) are not gonna tell this to you. Not 'cause they are nasty. > They are NOT aware/they are ignorant (with the purpose)! ;-)) > > No, the boot does not stop. Even if I do issue "break=premount" I > end up in my graphical interface with the rootfs mounted. This is the > last message in the log: EXT4-fs (sdb2): re-mounted. Opts: (null) > The rootfs partition is always 2, so either /dev/sda2 or /dev/sdb2 > (when booting from stick) > > Yes, from https://pastebin.com/ya7iCtq7, so it is remounted rw, not > read only. So, it seems that you have passed dracut phase. and mounted > SD or flash rootfs. So, initramfs is NOT your true problem, is it??? > > The thing is that the boot works but I want an initramfs that can be used for > updating (in case the rootfs is broken). However I need to be able to > intercept the boot process there because otherwise I can't deploy an update > mechanism, that's what I was trying. > > Zoran > _______ > > > No, the boot does not stop. Even if I do issue "break=premount" I end up > in my graphical interface with the rootfs mounted. This is the last message > in the log: EXT4-fs (sdb2): re-mounted. Opts: (null) The rootfs partition is > always 2, so either /dev/sda2 or /dev/sdb2 (when booting from stick) > > > So for the issue... > I expected yocto to put the bundled bzImage onto my rootfs. This was not the > case. My image directory contains 2x bzImage, one bundled and one unbundled. > Apparently yocto puts the >un<bundled image onto my /boot partition and uses > it for boot. So of course I couldn't access initramfs in this case. Now I get > to the initramfs statement "dropping to shell" if I intentionally boot with > wrong rootfs. > Still I don't get the interactive shell. > On the github ostroproject site I found this: > > # debug: adds debug boot parameters like 'shell' and 'debug', see > # meta/recipes-core/initrdscripts/initramfs-framework/debug for details > # Could be removed in more minimal product image. > PACKAGE_INSTALL += "initramfs-module-debug" > > including the module-debug still does not enable me to get an interactive > shell. > I was following this site: https://wiki.debian.org/InitramfsDebug > I am aware that yocto is no debian but I expected that kernel parameters > (like 'break') would be independent of the distribution. > > Lastly I do not really need the interactive shell, it is enough if I can > deploy a custom init script in the initramfs. Still I think that getting an > initramfs shell should be as simple as stating the name of the initramfs > image and setting the "INITRAMFS_DO_BUNDLE" variable. > > Best regards > Moritz > > > On Mon, Jul 1, 2019 at 11:20 AM Moritz Porst <moritz.po...@gmx.de> wrote: > > Hello Zoran, > thanks for your answer > > On 28.06.19 14:26, Zoran Stojsavljevic wrote: > > INITRAMFS_IMAGE = "core-image-minimal-initramfs" > INITRAMFS_IMAGE_BUNDLE = "1" > > ... > > You can find the /var/log/dmesg here: https://pastebin.com/ya7iCtq7I > > Some hints... > > [1] Kernel command line: BOOT_IMAGE=/bzImage > root=PARTUUID=71d1d94a-83e8-4895-98eb-35309f58119f > break=premount quiet rootwait rootwait rootfstype=ext4 console=ttyS0,115200 > console=tty0 > > input: Video Bus as > /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:00/input/input7 > fbcon: inteldrmfb (fb0) is primary device > Console: switching to colour frame buffer device 128x48 > i915 0000:00:02.0: fb0: inteldrmfb frame buffer device > snd_hda_intel 0000:00:1b.0: bound 0000:00:02.0 (ops > i915_audio_component_bind_ops [i915]) > > Hmmmmm... You are using console and serial, but full i915 GFX kernel driver > is still included in the build??? > > I started from the core-image-minimal to have a small image and extended it > with the features I need, which is e.g. a graphical system. The console=[...] > part in the kernel command line is probably a remnant but my image boots into > the GUI. Is this a problem ? > > > [2] efi: EFI v2.31 by American Megatrends > > Using AMI BIOS as boot loader FW... OK?! Am I correct? > > My bootloader is currently grub, the EFI is AM. > > > [3] smpboot: CPU0: Intel(R) Atom(TM) CPU E3825 @ 1.33GHz (family: 0x6, > model: 0x37, stepping: 0x9) > > This is CPUID ID 0x30679, which uses MCU... Which MicroCodeUnit? M0130679xxx > (info from AMI BIOS)? > > Sorry but I can't find this info in the EFI > > > [4] Using INTEL ATOM BYT E3825 dual core (sans Hyper-threading), implies that > you are using > 4GB (e820 messages) as single channel (one memory module DDR3 as 4GB)! Am I > correct (important)? > > 2GB, single channel. > > > [5] Dracut phase?! > > To my understanding the initramfs should be embedded in /boot/bzImage. > However since I use an intel platform I also have a /boot/microcode.cpio > which gets loaded via "initrd /microcode.cpio". Removing this line in > grub does not enable me to get an initramfs prompt either (again, using > break as option). > > You are obviously stopping in boot phase called dracut. Please, try to mount > by hand > /dev/sda(whatever)... You should use fdisk -l command, or do ls -al /dev | > grep sda to > dig out which partition you need to mount to /tmp dir to see rootfstype=ext4 > (HDD/SSD) > > No, the boot does not stop. Even if I do issue "break=premount" I end up in > my graphical interface with the rootfs mounted. This is the last message in > the log: > EXT4-fs (sdb2): re-mounted. Opts: (null) > The rootfs partition is always 2, so either /dev/sda2 or /dev/sdb2 (when > booting from stick) > > _______ > > Just thinking loud... .. . > > Hope this helps (has very little to do with YOCTO build system, BTW) . ;-) > > Zoran > _______ > > > On Fri, Jun 28, 2019 at 11:22 AM Moritz Porst <moritz.po...@gmx.de> wrote: > > Hello, > I currently try to deploy a single rootfs update mechanism for my > embedded device. I can't boot to initramfs using either "break" or > "break=premount" (without quotes...). I tried this in systemd-boot and > grub-efi (always efi boot) but the boot process just continues normally. > If I insert at the same point e.g. "quiet" this argument is recognised. > I boot the .wic image with a separate boot partition from a USB stick. > in local.conf I have set: > INITRAMFS_IMAGE = "core-image-minimal-initramfs" > INITRAMFS_IMAGE_BUNDLE = "1" > > In order to reduce complexity I now use the standard > core-image-minimal-initramfs without .bbappend. I can confirm (from > seeing the task) that bitbake bundled the kernel with the initramfs. > > You can find the /var/log/dmesg here: https://pastebin.com/ya7iCtq7 > > To my understanding the initramfs should be embedded in /boot/bzImage. > However since I use an intel platform I also have a /boot/microcode.cpio > which gets loaded via "initrd /microcode.cpio". Removing this line in > grub does not enable me to get an initramfs prompt either (again, using > break as option). > > Did I forget some configuration or do I have to put the break statement > at a very specific position within the "linux ..." boot command ? Do you > know which bitbake variables to check ? (both set in local.conf do not > get overwritten, already checked this). I got the thud branch checked > out in all my meta-layers except for meta-qt which is currently on > master branch. > > Help is much appreciated ! > > Best regards > Moritz > > -- > _______________________________________________ > yocto mailing list > yocto@yoctoproject.org > https://lists.yoctoproject.org/listinfo/yocto -- _______________________________________________ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto