Puppy Linux custom frugal install only starts on cold boot

Booting, installing, newbie
Post Reply
Message
Author
starbeamfan8
Posts: 4
Joined: Sun 12 Apr 2020, 22:49

Puppy Linux custom frugal install only starts on cold boot

#1 Post by starbeamfan8 »

I found myself in need of a work environment that was amnesiac, and since non-live remasters of Puppy proved to be a super easy - I ended up using Puppy. I'd do the remasters in my primary distro - adding software and configuration I needed, and switch over to Puppy to work with sensitive data. So I added a custom boot menu option to GRUB2 and and set up my puppy install in a subdirectory. Everything works, but for some reason, only on cold boot. If I do an ACPI restart, booting hangs before any kernel messages are printed and I'm greeted with just a black screen with a blinking cursor. (This is true regardless if I'm using the stock BaseSFS or my remaster.)

It's a very minor issue, but any ideas would be most appreciated.

I'm assuming this is an issue with how I've set up GRUB2 since it doesn't even reach initrd, here's the menu entry:

pup-vmlinuz and pup-initrd are from BionicPuppy

Code: Select all

menuentry "Examination Environment (No Network Access)" {
    search --no-floppy --fs-uuid --set=root 1d93eeb9-0f41-4fb8-b1c1-acc9e875bc8f
    linux /pup-vmlinuz pfix=copy psubdir=/exam
    initrd /pup-initrd.gz
}
In case it's relevant, here's some basic info on the RAM/Motherboard/BIOS/CPU

Code: Select all

description: Notebook
    product: 550XTA/550XTZ
    vendor: SAMSUNG ELECTRONICS CO., LTD.
    width: 64 bits
    capabilities: smbios-3.1.1 dmi-3.1.1 smp vsyscall32
    configuration: boot=normal chassis=notebook family=Notebook 5 Series
  *-core
       description: Motherboard
       product: NP550XTA-K01US
       vendor: SAMSUNG ELECTRONICS CO., LTD.
       physical id: 0
       slot: Middle
     *-firmware
          description: BIOS
          vendor: American Megatrends Inc.
          physical id: 0
          version: P00REJ.051.180503.FL
          date: 05/03/2018
          size: 64KiB
          capacity: 8MiB
          capabilities: pci upgrade shadowing cdboot bootselect socketedrom edd int13floppy1200 int13floppy720 int13floppy2880 int5printscreen int9keyboard int14serial int17printer acpi usb biosbootspecification uefi
     *-memory
          description: System Memory
          physical id: a
          slot: System board or motherboard
          size: 12GiB
        *-bank:0
             description: SODIMM DDR4 Synchronous Unbuffered (Unregistered) 2400 MHz (0.4 ns)
             product: M471A5244CB0-CRC
             vendor: Samsung
             physical id: 0
             serial: 00000000
             slot: DIMM 0
             size: 4GiB
             width: 64 bits
             clock: 2400MHz (0.4ns)
        *-bank:1
             description: SODIMM DDR4 Synchronous Unbuffered (Unregistered) 2400 MHz (0.4 ns)
             product: 8GBU1X08JGGG39-12-K
             vendor: Unknown
             physical id: 1
             serial: 00000000
             slot: DIMM 0
             size: 8GiB
             width: 64 bits
             clock: 2400MHz (0.4ns)
     *-cache:0
          description: L1 cache
          physical id: c
          slot: L1 - Cache
          size: 384KiB
          capacity: 384KiB
          clock: 1GHz (1.0ns)
          capabilities: pipeline-burst internal write-back unified
          configuration: level=1
     *-cache:1
          description: L2 cache
          physical id: d
          slot: L2 - Cache
          size: 2MiB
          capacity: 2MiB
          clock: 1GHz (1.0ns)
          capabilities: pipeline-burst internal write-back unified
          configuration: level=2
     *-cache:2
          description: L3 cache
          physical id: e
          slot: L3 - Cache
          size: 4MiB
          capacity: 4MiB
          clock: 1GHz (1.0ns)
          capabilities: pipeline-burst internal write-back unified
          configuration: level=3
     *-cpu
          description: CPU
          product: AMD Ryzen 5 2500U with Radeon Vega Mobile Gfx
          vendor: Advanced Micro Devices [AMD]
          physical id: f
          bus info: cpu@0
          version: AMD Ryzen 5 2500U with Radeon Vega Mobile Gfx
          serial: Unknown
          slot: FP5
          size: 1331MHz
          capacity: 3600MHz
          width: 64 bits
          clock: 100MHz
          capabilities: lm fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp x86-64 constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb hw_pstate sme ssbd sev ibpb vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 xsaves clzero irperf xsaveerptr arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif overflow_recov succor smca cpufreq
          configuration: cores=4 enabledcores=4 threads=8


User avatar
Mike Walsh
Posts: 6351
Joined: Sat 28 Jun 2014, 12:42
Location: King's Lynn, UK.

#2 Post by Mike Walsh »

@ starbeamfan8:- Image to the 'kennels'!

Re: Your assumption that GRUB2 is at the bottom of it all sounds, I'm sorry to say, just about right. Now; we need to know a couple of things, please.

What is your 'other' OS?
I assume I'm right in thinking you're running a UEFI-based mobo here, yes? (I'm afraid I was never very good at deciphering these technical 'readouts'..!)

Modern Puppies come with an 'EFI module', but this doesn't mean they will boot in full UEFI mode. The module permits operation with a UEFI-equipped board, yes.....but Puppy needs to boot in 'Legacy' mode. SecureBoot/FastBoot and all the rest of that MyCrudSoft-mandated crap needs to be turned off.

What this boils down to is that there's a dichotomy in play here. Modern 'mainstream' distros expect to boot in 'full' UEFI mode.....but Puppy has to boot in 'Legacy' mode. So; the easiest way round this is to run Puppy from a USB flash-drive, and install her Grub4DOS bootloader to the MBR of the flash-drive.

You can then boot Pup in one of two ways. Either set your flash drive as the first boot drive in the BIOS/UEFI - or use a 'One-time boot' option if you have it (most hardware will allow you to do this, you just need to know which key it is), then select the flash-drive. Or, you can 'chain-load' the flash-drive from GRUB2, to point to the flash-drive when plugged-in.....

Personally, I would perform the inverse of this, though I'm not entirely certain it would work? Meaning I would re-install your 'other' OS's GRUB2 to the boot-sector of the partition it's installed in, followed by over-writing GRUB2 by installing Grub4DOS to the MBR/UEFI, then 'chain-loading' GRUB2 from there.

I myself run 3 Puppies on a brand-new HP Pavilion 'mini-tower' - 'frugal' installs to the internal hard-drive, and Antix 19.2 (64-bit) from a USB flash drive......which is permanently plugged-in. GRUB2 has been installed to the flash-drive's MBR. I've added a simple Menu entry to the Grub4DOS menu to 'chainload' Antix's GRUB2 from there.

Here's what my Grub4DOS 'menu.lst' file looks like (that's a small 'L', not a '1'):-

Code: Select all

# menu.lst produced by grub4dosconfig-v1.9.3
color white/blue black/cyan white/black cyan/black
#splashimage=/mnt/sda1/puppy2A.xpm
timeout 20
default 0

# Frugal installed Puppy

title Bionicpup64 (sda2/Bionicpup64)
  find --set-root uuid () 0ee0f8be-07f3-4e5b-b3c3-2554fae39a3e
  kernel /Bionicpup64/vmlinuz  pdrv=0ee0f8be-07f3-4e5b-b3c3-2554fae39a3e  psubdir=/Bionicpup64 pmedia=atahd pfix=fsck
  initrd /Bionicpup64/initrd.gz
  
title 'Stretch' 7.5 (sda2/DPup_Stretch_7.5)
  find --set-root uuid () 0ee0f8be-07f3-4e5b-b3c3-2554fae39a3e
  kernel /DPup_Stretch_7.5/vmlinuz  pdrv=0ee0f8be-07f3-4e5b-b3c3-2554fae39a3e  psubdir=/DPup_Stretch_7.5 pmedia=atahd pfix=fsck
  initrd /DPup_Stretch_7.5/initrd.gz  

title Xenialpup64 (sda2/Xenialpup64)
  find --set-root uuid () 0ee0f8be-07f3-4e5b-b3c3-2554fae39a3e
  kernel /Xenialpup64/vmlinuz  pdrv=0ee0f8be-07f3-4e5b-b3c3-2554fae39a3e  psubdir=/Xenialpup64 pmedia=atahd pfix=fsck
  initrd /Xenialpup64/initrd.gz
  
title AntiX 19.2 64-bit 'Hannie Schaft' (sdc1/boot)
  chainloader  (hd2)+1
  rootnoverify  (hd2)

# Windows

# Advanced Menu
title Advanced menu
  configfile /menu-advanced.lst
  commandline
May give you some pointers. The drive terminology for the chain-loader command in Grub4DOS is the older type; 'sda'='hd0'; 'sdb'='hd1'; 'sdc'='hd2', and so on. 'Sda1' would be written as 'hd0,0' (it's the older Unix notion that you begin the count from 0, rather than 1, y'see). 'Sdb3', for instance, would be written as 'hd1,2'. And so on, and so forth.

Worth considering? I daresay there's a way to chainload from an existing GRUB2 install, but I have 'issues' with GRUB2; to my mind, it's unnecessarily over-complicated and excessively 'bloated' for what it does, compared to the svelte proportions of its older sibling.

Just my two-penn'orth..! (I'm toddling off up the 'wooden hill' now; it's after 3 am here in the UK, and waaay past time for me to go beddy-byes.....) :lol:

I daresay some of the others will be along shortly.


Mike. :wink:

HerrBert
Posts: 152
Joined: Thu 03 Nov 2016, 15:11
Location: NRW, Germany

#3 Post by HerrBert »

Hello.

I remember having a similar issue on my Lenovo G50.

First boot always worked as expected.
But on a reboot, grub4dos started and after making my choice i ended up with the message

Code: Select all

Booting the Kernel
and a blinking cursor

Some searching pointed to a hardware issue of my Notebook. So i tried some suggested Kernel command-line parameters and

Code: Select all

reboot=p
solved the problem here.

starbeamfan8
Posts: 4
Joined: Sun 12 Apr 2020, 22:49

#4 Post by starbeamfan8 »

Code: Select all

reboot=p
Didn't seem to have any affect. I might look more into reboot-specific commands later though with another set. As that would be far less intensive than the solution I ended up using.
Mike Welsh wrote:

What is your 'other' OS?
I assume I'm right in thinking you're running a UEFI-based mobo here, yes? (I'm afraid I was never very good at deciphering these technical 'readouts'..!)
Yup, it's UEFI. My other OSes are Debian Buster and (unfortunately), an oft-unused, but required-for-work Winblows 10 installation. (Most of the software runs in Wine or VM, but every once in a while I need to fire it up.)

Windows is so overly touchy about how it boots, I'm honestly afraid to deal with any major changes to boot method.

But, your comments did set me on a path that did end up working for me. If the kernel is what's being picky - I got to thinking - what if I just outright replaced the kernel? It took a little trial and error (for instance, needing to include ext2,libata,loop,aufs,squashfs in the kernel itself since otherwise initrd can't stage zdrv and base.) Works great except a slightly longer module probe time.

Post Reply