guruplug doesn't boot after upgrade kernel

classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

guruplug doesn't boot after upgrade kernel

Lieven Baes
Hello,
After upgrade 'booting the kernel' is hanging ...
What can I do instead of a whole reinstall ?
- u-boot-version : U-Boot 2016.11+dfsg1-4 (Mar 27 2017 - 18:39:51 +0000)
  This seems like the last stable version.
- kernel : 4.9.0-8-marvell
  I tried to boot kernel 4.9.0-6-marvell, by changing /uImage, /uInitrd, also the symlinks, but that didn't work.
- booting from sdcard (mmc) with the root-filesystem on a sata-drive (debian stretch).

It isn't the first time that I had this, I always reinstalled it.

Is there a trick to boot the 'old' system?

Some output of the bootproces:

U-Boot 2016.11+dfsg1-4 (Mar 27 2017 - 18:39:51 +0000)
Marvell-GuruPlug

SoC:   Kirkwood 88F6281_A1
DRAM:  512 MiB
WARNING: Caches not enabled
NAND:  512 MiB
In:    serial
Out:   serial
Err:   serial
Net:   egiga0, egiga1
Error: egiga1 address not set.

88E1121 Initialized on egiga0
88E1121 Initialized on egiga1
IDE:   Bus 0: OK Bus 1: not available
  Device 0: Model: WDC WD30EZRX-00DC0B0 Firm: 80.00A80 Ser#:  WD-WCC1T1162420
            Type: Hard Disk
            Supports 48-bit addressing
            Capacity: 764436.4 MB = 746.5 GB (1565565872 x 512)
Hit any key to stop autoboot:  0
=> printenv
arcNumber=2097
baudrate=115200
bootargs=$(bootargs_console)
bootargs_console=console=ttyS0,115200  root=/dev/sda2  rootdelay=10
bootargs_root=ubi.mtd=2 root=ubi0:rootfs rootfstype=ubifs
bootcmd=setenv bootargs $(bootargs_console); run bootcmd_mmc; bootm 0x00800000 0x01100000
bootcmd_mmc=usb start; ext2load usb 1:1 0x00800000 /uImage; ext2load usb 1:1 0x01100000 /uInitrd
bootcmd_nand=ide reset; nand start; nand read.e 0x6400000  0x100000 0x400000;
bootcmd_sata=ide reset; ext2load ide 0:1 0x00800000 /uImage; ext2load ide 0:1 0x01100000 /uInitrd
bootdelay=3
console=console=ttyS0,115200
ethact=egiga0
ethaddr=00:50:43:22:0c:18
fdt=/boot/guruplug-server-plus.dtb
ipaddr=192.168.0.10
kernel=/boot/zImage
mainlineLinux=yes
mtddevname=uboot
mtddevnum=0
mtdids=nand0=orion_nand
mtdparts=mtdparts=orion_nand:896K(uboot),128K(uboot_env),-@1M(root)
partition=nand0,0
serverip=192.168.0.2
stderr=serial
stdin=serial
stdout=serial

Environment size: 977/131068 bytes

run bootcmd
USB0:   USB EHCI 1.00
scanning bus 0 for devices... 3 USB Device(s) found
       scanning usb for storage devices... Device NOT ready
   Request Sense returned 02 3A 00
2 Storage Device(s) found
2066746 bytes read in 451 ms (4.4 MiB/s)
12288774 bytes read in 1780 ms (6.6 MiB/s)
## Booting kernel from Legacy Image at 00800000 ...
   Image Name:   kernel 4.9.0-8-marvell
   Created:      2019-02-26  16:56:20 UTC
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    2066682 Bytes = 2 MiB
   Load Address: 00008000
   Entry Point:  00008000
   Verifying Checksum ... OK
## Loading init Ramdisk from Legacy Image at 01100000 ...
   Image Name:   ramdisk 4.9.0-8-marvell
   Created:      2019-02-26  16:56:21 UTC
   Image Type:   ARM Linux RAMDisk Image (uncompressed)
   Data Size:    12288710 Bytes = 11.7 MiB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK

Starting kernel ...

Uncompressing Linux... done, booting the kernel.

Thx Lieven Baes axa yanu

Reply | Threaded
Open this post in threaded view
|

Re: guruplug doesn't boot after upgrade kernel

Martin Michlmayr
* Lieven Baes <[hidden email]> [2019-04-11 15:05]:
> What can I do instead of a whole reinstall ?
> Is there a trick to boot the 'old' system?

This should work:

setenv bootargs $(bootargs_console)
usb start
ext2load usb 1:1 0x00800000 /uImage.bak
ext2load usb 1:1 0x01100000 /uInitrd.bak
bootm 0x00800000 0x01100000

But before you do that, can you try:

setenv bootargs $(bootargs_console) earlyprintk=serial,ttyS0,115200
usb start
ext2load usb 1:1 0x00800000 /uImage
ext2load usb 1:1 0x01100000 /uInitrd
bootm 0x00800000 0x01100000

or maybe:

setenv bootargs $(bootargs_console) earlyprintk
usb start
ext2load usb 1:1 0x00800000 /uImage
ext2load usb 1:1 0x01100000 /uInitrd
bootm 0x00800000 0x01100000

to see if you can get more debug info.

--
Martin Michlmayr
https://www.cyrius.com/

Reply | Threaded
Open this post in threaded view
|

Re: guruplug doesn't boot after upgrade kernel

Lieven Baes
On Thu, Apr 11, 2019 at 4:13 PM Martin Michlmayr <[hidden email]> wrote:
* Lieven Baes <[hidden email]> [2019-04-11 15:05]:
> What can I do instead of a whole reinstall ?
> Is there a trick to boot the 'old' system?

This should work:
setenv bootargs $(bootargs_console)
usb start
ext2load usb 1:1 0x00800000 /uImage.bak
ext2load usb 1:1 0x01100000 /uInitrd.bak
bootm 0x00800000 0x01100000

But before you do that, can you try:
setenv bootargs $(bootargs_console) earlyprintk=serial,ttyS0,115200
usb start
ext2load usb 1:1 0x00800000 /uImage
ext2load usb 1:1 0x01100000 /uInitrd
bootm 0x00800000 0x01100000

or maybe:
setenv bootargs $(bootargs_console) earlyprintk
usb start
ext2load usb 1:1 0x00800000 /uImage
ext2load usb 1:1 0x01100000 /uInitrd
bootm 0x00800000 0x01100000

to see if you can get more debug info.

Thx, now there is a bit more debug-output:
=> setenv bootargs $(bootargs_console) earlyprintk=serial,ttyS0,115200
=> usb start
starting USB...
USB0:   USB EHCI 1.00
scanning bus 0 for devices... 3 USB Device(s) found
       scanning usb for storage devices... Device NOT ready
   Request Sense returned 02 3A 00
2 Storage Device(s) found
=> ext2load usb 1:1 0x00800000 /uImage
2066746 bytes read in 450 ms (4.4 MiB/s)
=> ext2load usb 1:1 0x01100000 /uInitrd
12288774 bytes read in 1777 ms (6.6 MiB/s)
=> bootm 0x00800000 0x01100000
## Booting kernel from Legacy Image at 00800000 ...
   Image Name:   kernel 4.9.0-8-marvell
   Created:      2019-02-26  16:56:20 UTC
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    2066682 Bytes = 2 MiB
   Load Address: 00008000
   Entry Point:  00008000
   Verifying Checksum ... OK
## Loading init Ramdisk from Legacy Image at 01100000 ...
   Image Name:   ramdisk 4.9.0-8-marvell
   Created:      2019-02-26  16:56:21 UTC
   Image Type:   ARM Linux RAMDisk Image (uncompressed)
   Data Size:    12288710 Bytes = 11.7 MiB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK

Starting kernel ...

Uncompressing Linux... done, booting the kernel.
[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.9.0-8-marvell ([hidden email]) (gcc version 6.3.0 20170516                                     (Debian 6.3.0-18+deb9u1) ) #1 Debian 4.9.130-2 (2018-10-27)
[    0.000000] CPU: Feroceon 88FR131 [56251311] revision 1 (ARMv5TE), cr=0005397f
[    0.000000] CPU: VIVT data cache, VIVT instruction cache
[    0.000000] OF: fdt:Machine model: Globalscale Technologies Guruplug Server Plus
[    0.000000] bootconsole [earlycon0] enabled
[    0.000000] Memory policy: Data cache writeback
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 130048
[    0.000000] Kernel command line: $(bootargs_console) earlyprintk=serial,ttyS0,115200
[    0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)
[    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.000000] Memory: 501664K/524288K available (3789K kernel code, 396K rwdata, 1132K rodata, 296K init, 249K bss, 22624K reserved, 0K cma-reserved, 0K highmem)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
[    0.000000]     vmalloc : 0xe0800000 - 0xff800000   ( 496 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xe0000000   ( 512 MB)
[    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
[    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)
[    0.000000]       .text : 0xc0008000 - 0xc03bb868   (3791 kB)
[    0.000000]       .init : 0xc04f8000 - 0xc0542000   ( 296 kB)
[    0.000000]       .data : 0xc0542000 - 0xc05a53f8   ( 397 kB)
[    0.000000]        .bss : 0xc05a53f8 - 0xc05e39fc   ( 250 kB)
[    0.000000] NR_IRQS:16 nr_irqs:16 16
[    0.000000] clocksource: orion_clocksource: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 95563                                    02233 ns
[    0.000009] sched_clock: 32 bits at 200MHz, resolution 5ns, wraps every 10737418237ns
[    0.008443] Console: colour dummy device 80x30
[    0.013038] console [tty0] enabled
[    0.016581] bootconsole [earlycon0] disabled

Than it stops.

I did all your options, and implement it in my u-boot-variables, giving all the same result.

thx Lieven Baes aka yanu


Reply | Threaded
Open this post in threaded view
|

Re: guruplug doesn't boot after upgrade kernel

Rob J. Epping-3


On April 11, 2019 3:06:20 PM UTC, Lieven Baes <[hidden email]> wrote:
>On Thu, Apr 11, 2019 at 4:13 PM Martin Michlmayr <[hidden email]>
>wrote:
>
[snip]
>[    0.008443] Console: colour dummy device 80x30
>[    0.013038] console [tty0] enabled

console is opened on dummy "screen" device

>[    0.016581] bootconsole [earlycon0] disabled

and serial console is stopped.

>Than it stops.

try the following :

setenv bootargs $(bootargs_console) earlyprintk=serial,ttyS0,115200 console=ttyS0,115200
usb start
ext2load usb 1:1 0x00800000 /uImage
ext2load usb 1:1 0x01100000 /uInitrd
bootm 0x00800000 0x01100000

>I did all your options, and implement it in my u-boot-variables, giving
>all
>the same result.
>
>thx Lieven Baes aka yanu

GRTNX, RobJE
--
Sent from my Android device. Please excuse my brevity.

Reply | Threaded
Open this post in threaded view
|

Re: guruplug doesn't boot after upgrade kernel

Lieven Baes
On Fri, Apr 12, 2019 at 7:36 AM Rob J. Epping <[hidden email]> wrote:
On April 11, 2019 3:06:20 PM UTC, Lieven Baes <[hidden email]> wrote:
>On Thu, Apr 11, 2019 at 4:13 PM Martin Michlmayr <[hidden email]>
>wrote:
[snip]
>[    0.008443] Console: colour dummy device 80x30
>[    0.013038] console [tty0] enabled
console is opened on dummy "screen" device
>[    0.016581] bootconsole [earlycon0] disabled
and serial console is stopped.
>Than it stops.

try the following :
setenv bootargs $(bootargs_console) earlyprintk=serial,ttyS0,115200 console=ttyS0,115200
usb start
ext2load usb 1:1 0x00800000 /uImage
ext2load usb 1:1 0x01100000 /uInitrd
bootm 0x00800000 0x01100000

That was 'the trick' to continue booting the kernel.
Also this worked well, without 'earlyprintk':
   setenv bootargs $(bootargs_console) console=ttyS0,115200

But why do I have to place this 'console=ttyS0,115200' an extra time when it was already set in:
   setenv bootargs_console 'console=ttyS0,115200  root=/dev/sda2  rootdelay=10'
   setenv bootcmd_mmc 'usb start; ext2load usb 1:1 0x00800000 /uImage; ext2load usb 1:1 0x01100000 /uInitrd'
   setenv bootcmd 'setenv bootargs $(bootargs_console) console=ttyS0,115200; run bootcmd_mmc; bootm 0x00800000 0x01100000'

Big thanks to all you guys for doing this great work, every day.
This guruplug is serving me for almost 10 years, that's nice.

Martin, do you need to change this on your guruplugs-webpage by adding that console-argument?

thx Lieven Baes aka yanu
Reply | Threaded
Open this post in threaded view
|

Re: guruplug doesn't boot after upgrade kernel

Martin Michlmayr
* Lieven Baes <[hidden email]> [2019-04-12 10:33]:
> Martin, do you need to change this on your guruplugs-webpage by adding that
> console-argument?

If someone can explain to me what's going on, I can update the docs if
required.

But your u-boot variables specify console=ttyS0,115200, so I don't
know why it's switching to tty0.

--
Martin Michlmayr
https://www.cyrius.com/

Reply | Threaded
Open this post in threaded view
|

Re: guruplug doesn't boot after upgrade kernel

Ian Campbell-5
In reply to this post by Lieven Baes
On Thu, 2019-04-11 at 17:06 +0200, Lieven Baes wrote:
> [    0.000000] Kernel command line: $(bootargs_console) earlyprintk=serial,ttyS0,115200

Looks like `$(bootargs_console)` isn't actually being substituted. Are
you sure the `$(...)` syntax is correct? Vendor u-boots sometime
deviate a bit but `${...}` would be more usual I think.

Ian.

Reply | Threaded
Open this post in threaded view
|

Re: guruplug doesn't boot after upgrade kernel

Martin Michlmayr
* Ian Campbell <[hidden email]> [2019-04-13 11:07]:
> > [    0.000000] Kernel command line: $(bootargs_console) earlyprintk=serial,ttyS0,115200
>
> Looks like `$(bootargs_console)` isn't actually being substituted. Are
> you sure the `$(...)` syntax is correct? Vendor u-boots sometime
> deviate a bit but `${...}` would be more usual I think.

Oh yes, great catch, Ian.

Lieven, run this and it should work:

setenv bootcmd 'setenv bootargs ${bootargs_console}; run bootcmd_mmc; bootm 0x00800000 0x01100000'
saveenv
reset


My web site (Ian again :)

commit 38735fedf95e75ff8db92805351981ca5e518d17
Author: Martin Michlmayr <[hidden email]>
Date:   Mon Jun 8 09:54:04 2015 -0400

    Use ${var} instead of $(var) for u-boot

    Use ${var} for variable substitution in u-boot rather than $(var).
    According to report, the latter no longer works.  Thanks John Hughes
    and Ian Campbell.

--
Martin Michlmayr
https://www.cyrius.com/

Reply | Threaded
Open this post in threaded view
|

Re: guruplug doesn't boot after upgrade kernel

Lieven Baes
On Sat, Apr 13, 2019 at 12:13 PM Martin Michlmayr <[hidden email]> wrote:
* Ian Campbell <[hidden email]> [2019-04-13 11:07]:
> > [    0.000000] Kernel command line: $(bootargs_console) earlyprintk=serial,ttyS0,115200
>
> Looks like `$(bootargs_console)` isn't actually being substituted. Are
> you sure the `$(...)` syntax is correct? Vendor u-boots sometime
> deviate a bit but `${...}` would be more usual I think.

Oh yes, great catch, Ian.
run this and it should work:
setenv bootcmd 'setenv bootargs ${bootargs_console}; run bootcmd_mmc; bootm 0x00800000 0x01100000'
saveenv
reset
 
Nice, indeed, that was the problem.
Thx to all !

Gr. L. Baes

My web site (Ian again :)
commit 38735fedf95e75ff8db92805351981ca5e518d17
Author: Martin Michlmayr <[hidden email]>
Date:   Mon Jun 8 09:54:04 2015 -0400

    Use ${var} instead of $(var) for u-boot

    Use ${var} for variable substitution in u-boot rather than $(var).
    According to report, the latter no longer works.  Thanks John Hughes
    and Ian Campbell.