Jump to content

Odroid C2 does not start kernel


Lycurgus

Recommended Posts

When I changed some settings to my network config, my Odroid doesn't boot anymore. Even changing the settings back doesn't make it boot again.

Has anyone had this happen before?

 

I hooked up my UART and this is the result, it never proceeds with starting the kernel (see spoiler below)

 

Spoiler

--- UART initialized after reboot ---
[Reset cause: unknown]
[Image: unknown, amlogic_v1.1.3046-00db630-dirty 2016-08-31 09:24:14 tao.zeng@droid04]
bl30: check_permit, count is 1
bl30: check_permit: ok!
chipid: ef be ad de d f0 ad ba ef be adLoad bl33 from SD, src: 0x00034200, des: 0x01000000, size: 0x00068270
 de not ES chip
[0.384077 Inits done]
secure task start!
high task start!
low task start!
NOTICE:  BL3-1: v1.0(debug):4d2e34d
NOTICE:  BL3-1: Built : 17:08:35, Oct 29 2015
INFO:    BL3-1: Initializing runtime services
INFO:    BL3-1: Preparing for EL3 exit to normal world
INFO:    BL3-1: Next image address = 0x1000000
INFO:    BL3-1: Next image spsr = 0x3c9


U-Boot 2015.01 (Feb 01 2017 - 22:27:26)

DRAM:  2 GiB
Relocation Offset is: 76f3e000
-------------------------------------------------
* Welcome to Hardkernel's ODROID-C2
-------------------------------------------------
CPU : AMLogic S905
S/N : HKC213254DFDCBF6
MAC : 00:1e:06:34:18:76
BID : HKC2211702
-------------------------------------------------
register usb cfg[1][0] = 0000000077f97508
register usb cfg[0][1] = 0000000077f97530
vpu detect type: 5
vpu clk_level = 7
set vpu clk: 666667000Hz, readback: 666660000Hz(0x300)
MMC:   aml_priv->desc_buf = 0x0000000073f36d30
aml_priv->desc_buf = 0x0000000073f38ec0
SDIO Port B: 0, SDIO Port C: 1
ret = 1 .[mmc_init] mmc init success
In:    serial
Out:   serial
Err:   serial
----------------------------------
MMC Size : 16 GB
----------------------------------
** Unrecognized filesystem type **
** Unrecognized filesystem type **
movi: the partiton 'logo' is reading...

MMC read: dev # 0, block # 61024, count 2048 ... 2048 blocks read: OK
hpd_state=1
[CANVAS]addr=0x3f800000 width=3840, height=1440

set hdmitx VIC = 16
hdmitx phy setting done
set hdmitx VIC = 16
hdmitx phy setting done
Error: Bad gzipped data
There is no valid bmp file at the given address
Net:   Meson_Ethernet
Hit [Enter] key twice to stop autoboot:  0
4887 bytes read in 8 ms (595.7 KiB/s)
cfgload: applying boot.ini...
cfgload: setenv rootdev "/dev/mmcblk0p1"
cfgload: setenv m "1080p60hz" # Progressive 60Hz
cfgload:
cfgload: setenv cec "cecf"
cfgload: setenv m_bpp "24"
cfgload: setenv mesontimer "0"
cfgload: setenv nographics "0"
cfgload: setenv maxcpus "4"
cfgload: setenv max_freq "1536"  # 1.536GHz
cfgload: setenv condev "console=ttyS0,115200n8 console=tty0 consoleblank=0"   # on both
cfgload: setenv verbosity "1"
cfgload: setenv bootargs "root=${rootdev} rootwait rootflags=data=writeback rw ${condev} no_console_suspend hdmimode=${m} m_bpp=${m_bpp} vout=${vout} fsck.repair=yes loglevel=${verbosity} net.ifnames=0 ${extraargs}"
cfgload: setenv loadaddr "0x11000000"
cfgload: setenv dtb_loadaddr "0x1000000"
cfgload: setenv initrd_loadaddr "0x13000000"
cfgload: ext4load mmc 0:1 ${initrd_loadaddr} /boot/uInitrd || fatload mmc 0:1 ${initrd_loadaddr} uInitrd || ext4load mmc 0:1 ${initrd_loadaddr} uInitrd
5318505 bytes read in 247 ms (20.5 MiB/s)
cfgload: ext4load mmc 0:1 ${loadaddr} /boot/zImage || fatload mmc 0:1 ${loadaddr} zImage || ext4load mmc 0:1 ${loadaddr} zImage
13038088 bytes read in 588 ms (21.1 MiB/s)
cfgload: ext4load mmc 0:1 ${dtb_loadaddr} /boot/dtb/meson64_odroidc2.dtb || fatload mmc 0:1 ${dtb_loadaddr} dtb/meson64_odroidc2.dtb || ext4load mmc 0:1 ${dtb_loadaddr} dtb/meson64_odroidc2.dtb
29264 bytes read in 13 ms (2.1 MiB/s)
cfgload: fdt addr ${dtb_loadaddr}
cfgload: if test "${mesontimer}" = "0"; then fdt rm /meson_timer; fdt rm /cpus/cpu@0/timer; fdt rm /cpus/cpu@1/timer; fdt rm /cpus/cpu@2/timer; fdt rm /cpus/cpu@3/timer; fi
libfdt fdt_path_offset() returned FDT_ERR_NOTFOUND
libfdt fdt_path_offset() returned FDT_ERR_NOTFOUND
libfdt fdt_path_offset() returned FDT_ERR_NOTFOUND
libfdt fdt_path_offset() returned FDT_ERR_NOTFOUND
cfgload: if test "${mesontimer}" = "1"; then fdt rm /timer; fi
cfgload: if test "${nographics}" = "1"; then fdt rm /meson-fb; fdt rm /amhdmitx; fdt rm /picdec; fdt rm /ppmgr; fdt rm /meson-vout; fdt rm /mesonstream; fdt rm /deinterlace; fdt rm /codec_mm; fdt rm /reserved-memory; fdt rm /aocec; fi
cfgload: booti ${loadaddr} ${initrd_loadaddr} ${dtb_loadaddr}
## Loading init Ramdisk from Legacy Image at 13000000 ...
   Image Name:   uInitrd
   Image Type:   AArch64 Linux RAMDisk Image (gzip compressed)
   Data Size:    5318441 Bytes = 5.1 MiB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
load dtb from 0x1000000 ......
## Flattened Device Tree blob at 01000000
   Booting using the fdt blob at 0x1000000
   Loading Ramdisk to 73a21000, end 73f33729 ... OK
   Loading Device Tree to 000000001fff5000, end 000000001ffff24f ... OK

Starting kernel ...

uboot time: 4581312 us

 

 

Link to comment
Share on other sites

Just a small update.

I had a spare SD card laying around and decided to use legacy Debian for Odroid C2.

 

By default the image doesn't spit out kernel lines on the serial console (see spoiler at end of post.) This means that in my case the kernel got stuck halfway through, but I can't see where exactly.

If anyone can provide me with info to enable dmesg style logs on serial console, that would be great. At this point it's still less time salvaging the previous install instead of beginning from start.

 

Spoiler

--- UART initialized after reboot ---
[Reset cause: unknown]
[Image: unknown, amlogic_v1.1.3046-00db630-dirty 2016-08-31 09:24:14 tao.zeng@dr                                                                                                                                                             oid04]
bl30: check_permit, count is 1
bl30: check_permit: ok!
chipid: ef be ad de d f0 ad ba ef be adLoad bl33 from SD, src: 0x00034200, des:                                                                                                                                                              0x01000000, size: 0x00068270
 de not ES chip
[0.399712 Inits done]
secure task start!
high task start!
low task start!
NOTICE:  BL3-1: v1.0(debug):4d2e34d
NOTICE:  BL3-1: Built : 17:08:35, Oct 29 2015
INFO:    BL3-1: Initializing runtime services
INFO:    BL3-1: Preparing for EL3 exit to normal world
INFO:    BL3-1: Next image address = 0x1000000
INFO:    BL3-1: Next image spsr = 0x3c9


U-Boot 2015.01 (Feb 01 2017 - 22:27:26)

DRAM:  2 GiB
Relocation Offset is: 76f3e000
-------------------------------------------------
* Welcome to Hardkernel's ODROID-C2
-------------------------------------------------
CPU : AMLogic S905
S/N : HKC213254DFDCBF6
MAC : 00:1e:06:34:18:76
BID : HKC2211702
-------------------------------------------------
register usb cfg[1][0] = 0000000077f97508
register usb cfg[0][1] = 0000000077f97530
vpu detect type: 5
vpu clk_level = 7
set vpu clk: 666667000Hz, readback: 666660000Hz(0x300)
MMC:   aml_priv->desc_buf = 0x0000000073f36d30
aml_priv->desc_buf = 0x0000000073f38ec0
SDIO Port B: 0, SDIO Port C: 1
ret = 1 .[mmc_init] mmc init success
In:    serial
Out:   serial
Err:   serial
----------------------------------
MMC Size : 16 GB
----------------------------------
** Unrecognized filesystem type **
** Unrecognized filesystem type **
movi: the partiton 'logo' is reading...

MMC read: dev # 0, block # 61024, count 2048 ... 2048 blocks read: OK
hpd_state=1
[CANVAS]addr=0x3f800000 width=3840, height=1440

set hdmitx VIC = 16
hdmitx phy setting done
set hdmitx VIC = 16
hdmitx phy setting done
Error: Bad gzipped data
There is no valid bmp file at the given address
Net:   Meson_Ethernet
Hit [Enter] key twice to stop autoboot:  0
4887 bytes read in 8 ms (595.7 KiB/s)
cfgload: applying boot.ini...
cfgload: setenv rootdev "/dev/mmcblk0p1"
cfgload: setenv m "1080p60hz" # Progressive 60Hz
cfgload:
cfgload: setenv cec "cecf"
cfgload: setenv m_bpp "24"
cfgload: setenv mesontimer "0"
cfgload: setenv nographics "0"
cfgload: setenv maxcpus "4"
cfgload: setenv max_freq "1536"  # 1.536GHz
cfgload: setenv condev "console=ttyS0,115200n8 console=tty0 consoleblank=0"   #                                                                                                                                                              on both
cfgload: setenv verbosity "1"
cfgload: setenv bootargs "root=${rootdev} rootwait rootflags=data=writeback rw $                                                                                                                                                             {condev} no_console_suspend hdmimode=${m} m_bpp=${m_bpp} vout=${vout} fsck.repai                                                                                                                                                             r=yes loglevel=${verbosity} net.ifnames=0 ${extraargs}"
cfgload: setenv loadaddr "0x11000000"
cfgload: setenv dtb_loadaddr "0x1000000"
cfgload: setenv initrd_loadaddr "0x13000000"
cfgload: ext4load mmc 0:1 ${initrd_loadaddr} /boot/uInitrd || fatload mmc 0:1 ${                                                                                                                                                             initrd_loadaddr} uInitrd || ext4load mmc 0:1 ${initrd_loadaddr} uInitrd
5311441 bytes read in 246 ms (20.6 MiB/s)
cfgload: ext4load mmc 0:1 ${loadaddr} /boot/zImage || fatload mmc 0:1 ${loadaddr                                                                                                                                                             } zImage || ext4load mmc 0:1 ${loadaddr} zImage
13038088 bytes read in 588 ms (21.1 MiB/s)
cfgload: ext4load mmc 0:1 ${dtb_loadaddr} /boot/dtb/meson64_odroidc2.dtb || fatl                                                                                                                                                             oad mmc 0:1 ${dtb_loadaddr} dtb/meson64_odroidc2.dtb || ext4load mmc 0:1 ${dtb_l                                                                                                                                                             oadaddr} dtb/meson64_odroidc2.dtb
29264 bytes read in 13 ms (2.1 MiB/s)
cfgload: fdt addr ${dtb_loadaddr}
cfgload: if test "${mesontimer}" = "0"; then fdt rm /meson_timer; fdt rm /cpus/c                                                                                                                                                             pu@0/timer; fdt rm /cpus/cpu@1/timer; fdt rm /cpus/cpu@2/timer; fdt rm /cpus/cpu                                                                                                                                                             @3/timer; fi
libfdt fdt_path_offset() returned FDT_ERR_NOTFOUND
libfdt fdt_path_offset() returned FDT_ERR_NOTFOUND
libfdt fdt_path_offset() returned FDT_ERR_NOTFOUND
libfdt fdt_path_offset() returned FDT_ERR_NOTFOUND
cfgload: if test "${mesontimer}" = "1"; then fdt rm /timer; fi
cfgload: if test "${nographics}" = "1"; then fdt rm /meson-fb; fdt rm /amhdmitx;                                                                                                                                                              fdt rm /picdec; fdt rm /ppmgr; fdt rm /meson-vout; fdt rm /mesonstream; fdt rm                                                                                                                                                              /deinterlace; fdt rm /codec_mm; fdt rm /reserved-memory; fdt rm /aocec; fi
cfgload: booti ${loadaddr} ${initrd_loadaddr} ${dtb_loadaddr}
## Loading init Ramdisk from Legacy Image at 13000000 ...
   Image Name:   uInitrd
   Image Type:   AArch64 Linux RAMDisk Image (gzip compressed)
   Data Size:    5311377 Bytes = 5.1 MiB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
load dtb from 0x1000000 ......
## Flattened Device Tree blob at 01000000
   Booting using the fdt blob at 0x1000000
   Loading Ramdisk to 73a23000, end 73f33b91 ... OK
   Loading Device Tree to 000000001fff5000, end 000000001ffff24f ... OK

Starting kernel ...

uboot time: 4594200 us

Debian GNU/Linux 8 odroidc2 ttyS0

odroidc2 login:

 

Link to comment
Share on other sites

Well I guess since no one here can/want to help me , I'll use this thread to document my progress. Maybe someone somewhere will stumble upon it and would help him out.

 

I found out how to enable kernel output to show on the serial console. In boot.ini I changed the following as told by @zador.blood.stained here

I set setenv verbosity from 1 to 7, which gave me kernel output.

 

The last few lines are the following:

Spoiler

[    8.109058] ionvideo open
[    8.286828] [aml_sd_emmc_irq] sd: response ecc,vstat:0x2400,virqc:3fff

[    8.293808] aml_sd_emmc_data_thread 2211 sd: cmd:25
[    8.303557] mmcblk0: response CRC error sending r/w cmd command, card status 0x800900
[    8.315387] [aml_sd_emmc_irq] sd: response ecc,vstat:0x2400,virqc:3fff
[    8.319648] ionvideo_stop_generating!!!!
[    8.319669] ionvideo release

[    8.332233] aml_sd_emmc_data_thread 2211 sd: cmd:25
[    8.341937] mmcblk0: response CRC error sending r/w cmd command, card status 0x800900
[    8.374232] [aml_sd_emmc_irq] sd: response ecc,vstat:0x2400,virqc:3fff

[    8.381277] aml_sd_emmc_data_thread 2211 sd: cmd:25
[    8.391271] mmcblk0: response CRC error sending r/w cmd command, card status 0x800900
[    8.408468] [aml_sd_emmc_irq] sd: response ecc,vstat:0x2400,virqc:3fff

[    8.415578] aml_sd_emmc_data_thread 2211 sd: cmd:25
[    8.425706] mmcblk0: response CRC error sending r/w cmd command, card status 0x800900
[    8.436639] [aml_sd_emmc_irq] sd: response ecc,vstat:0x2400,virqc:3fff

[    8.443834] aml_sd_emmc_data_thread 2211 sd: cmd:25
[    8.454076] mmcblk0: response CRC error sending r/w cmd command, card status 0x800900
[    8.465137] EXT4-fs (mmcblk0p1): re-mounted. Opts: commit=600,errors=remount-ro
[    8.515880] Adding 131068k swap on /var/swap.  Priority:-1 extents:2 across:139260k SS
[   97.472035] systemd-journald[208]: Received request to flush runtime journal from PID 1
[   97.628226] ip_tables: (C) 2000-2006 Netfilter Core Team
[   97.652144] nf_conntrack version 0.5.0 (16384 buckets, 65536 max)
[  102.849879] libphy: stmmac-0:00 - Link is Up - 1000/Full
[  137.503551] [aml_sd_emmc_irq] sd: response ecc,vstat:0x2400,virqc:3fff

[  137.509688] aml_sd_emmc_data_thread 2211 sd: cmd:25
[  137.517642] mmcblk0: response CRC error sending r/w cmd command, card status 0x800900
[  137.528508] [aml_sd_emmc_irq] sd: response ecc,vstat:0x2400,virqc:3fff

[  137.534770] aml_sd_emmc_data_thread 2211 sd: cmd:25
[  137.543319] mmcblk0: response CRC error sending r/w cmd command, card status 0x800900

 

 

So it seems the kernel is stuck doing something with it's network settings. It can get a link and IP address however.

I vaguely remember (i messed this up a week ago, only just now did I get a UART-USB) changing something with the network settings.

I'll see if I can revert everything back to default.

 

PS. On a separate note, I just noticed that the kernel spent some 90 seconds creating swap. As soon as I get everything working again, I'll disable swap. 2GB RAM is enough for my purposes.

Edited by Lycurgus
Link to comment
Share on other sites

I can only say that if this SD card makes kernel print messages like this

9 minutes ago, Lycurgus said:

[  137.517642] mmcblk0: response CRC error sending r/w cmd command, card status 0x800900

then it should be thrown away immediately, and you should start by testing a fresh image (or one of previous backups if you have any) to confirm that this is not a board issue

 

1 hour ago, Lycurgus said:

I had a spare SD card laying around and decided to use legacy Debian for Odroid C2.

What does this mean exactly? Did you change the card or used eMMC previously?

Link to comment
Share on other sites

@zador.blood.stained

2nd question: I ordered 2 SD cards a month ago. One was laying as a spare, which i burned an image of the latest Debian legacy on. Yes changed card.

 

1st point: Both cards have that issue. Used the program H2testw to confirm the cards are not broken. Could be a board issue, but got the Odroid also for about a month.

Edit: a quick Google shows it is a harmless compatibility issue https://forum.odroid.com/viewtopic.php?f=117&t=8919

Link to comment
Share on other sites

So after plowing through previous logfiles/bash history, comparing with the vanilla install on the spare SD card and reverting everything back...

It still doesn't work.

 

I'm afraid I'll have to do everything over again. This sucks.

 

Link to comment
Share on other sites

This is bad.

After only configuring Samba and automount an NTFS partition it started doing the exact same thing after issuing a reboot command.

I double checked the checksum of the image, nothing strange there. Will try with an Ubuntu image, hopefully with more luck.

Link to comment
Share on other sites

Getting closer.

The Ubuntu image worked until I did 1 simple command:

apt-get update && apt-get upgrade

 

After which it told me this

The following packages will be upgraded:
  apt apt-transport-https apt-utils base-files bind9-host console-setup console-setup-linux distro-info-data dnsmasq-base dnsutils eject hostapd init init-system-helpers keyboard-configuration klibc-utils libapparmor1 libapt-inst2.0
  libapt-pkg5.0 libbind9-140 libc-bin libc-dev-bin libc6 libc6-dev libdns-export162 libdns162 libgssapi-krb5-2 libhogweed4 libicu55 libisc-export160 libisc160 libisccc140 libisccfg140 libk5crypto3 libklibc libkrb5-3 libkrb5support0
  liblwres141 libmysqlclient20 libnettle6 libnm0 libpci3 libxml2 linux-firmware linux-libc-dev locales makedev multiarch-support mysql-common nano network-manager ntp pciutils resolvconf sudo wget

 

This may also be the reason why it failed to boot after only configuring Samba and a NTFS partition to automount. I forgot that I always apt-get update && apt-get upgrade on fresh images. :)

Will update this post when I have more info.

 

Edit: Things have gotten confusing now. As a test I again upgraded the system and rebooted: it came back just fine

Then after automounting the NTFS partition it refuses to boot again.. So it's neither upgrading or configuring that's the culprit.

It's not the SD card either, as the Ubuntu image doesn't throw any errors about it, and ofcourse I already checked those..


Next step is to try out official images and see if the problem persists. And if it does, then maybe the Odroid is defective.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines