Odroid C1+

Hello,

I try to run DietPi on a Odroid C1+ but it fails. I could not connect over LAN via ssh.
In my network I get no new ip adress. Is there a possibility to run DietPi on a Odroid C1?
I try different sd-cards and the old strech image and the testing buster image.

Best regards

Elmar

Hi,

pls can you try to attach a screen. It’s quite hard to investigate without error message.

This should be the current C1 image. There is no separat image for C1+
https://dietpi.com/downloads/images/

I get no output on screen and I get no ip-adress so I have nothing what I can show.
On Stretch the blue LED is blinking - on buster no blinking the led ist always shining.

MichaIng
probably we would need your help on this as you are the master of the images :sunglasses:

Hmm, the Stretch image should actually boot, on C1 and C1+. Note that eMMC is not supported.
I did some research about the Buster image: https://forum.odroid.com/viewtopic.php?p=282220#p282220

I rechecked the current Armbian and our image an indeed the uImage is missing (on our Stretch image it is present). Armbian still auto-creates nightly images regularly, but since they officially dropped support, they will not fix this anymore. I remember another user reporting boot issues and they replied not very friendly.

So what we can do:

  • Manually apply the fix, suggested in the forum thread. Creating the uImage on kernel update can be automated via /etc/kernel/postinst.d script, the changes to boot.ini are persistent.
  • Revert to Meverics Jessie image based on Linux 3.10 (very old kernel) and dist-upgrade it to Buster. GPU acceleration etc will not work, but since the Armbian image does not even have HDMI output, this is not really a regression.

I’ll create a fixed image with first solution, then we can see how it works.

@MichaIng Thank you very much for your help :smiley:

elmar.faber
Image ready: https://dietpi.com/downloads/images/
Lets see if this boots from SDcard.

Thank you very much,
now I’m working but in the evening I will try it :slight_smile:

@MichaIng so I try to boot with the new image but it doesn’t work :cry:

elmar.faber
Hmm, damn thing. You don’t have a serial console to attach, do you? Difficult to debug since HDMI output does not work (expectedly)…
Do the LEDs blink now at least, similar to how they did with the old Stretch image? Probably it does boot but due to expected missing HDMI output and probably failing network configuration, you cannot recognise.

Please verify that the device isn’t appearing in your routers UI, e.g. as new DHCP device/client, after a few minutes. You could as well try to setup a static IP (matching your local IP subnet) before booting the first time via dietpi.txt, then trying to ping it. Difficult again if you have no other Linux system since there is no separate FAT partition that can be mounted on Windows, ext4 only :wink:. However if the router serves as DHCP server, this can actually hardly fail :thinking:.

However if this still fails and definitely does not boot, I’ll create a Buster image based on Meverics old Linux 3.10 Jessie image. It contains doubled dist-upgrading to Buster, hence could be a bit messy related to old/obsolete dirs/files, but would try my best to clean up if as good as I can :wink:.

@MichaIng
I never work with a serial console so I will show. The led never blink only burn always.
I found no new ip adress but I have “Linux File Systems for Windows (Paragon)” so I
can try to set a static ip adress. :slight_smile:

@MichaIng Today I will debug the boot with a seriel console and try to setup with a static ip adress. I have a software from paragon
(Linux File Systems for Windows) so I can edit the dietpi.txt :slight_smile:
So I hope in the evening we know something more then now

@MichaIng First excuse me for the double post…

Here ist the output from the serial console:

QA5:B;SVN:B72;POC:17F;STS:0;BOOT:0;INIT:10;BOOT:1;INIT:0;READ:0;CHECK:0;PASS:1;
-----------------------------------------------------------------------
* Welcome to Hardkernel's ODROID-C... (Built at 19:33:00 Dec  8 2014) *
-----------------------------------------------------------------------
CPU : AMLogic S805
MEM : 1024MB (DDR3@792MHz)
BID : HKC1311712
S/N : HKC11122F37F4EB9
0x0000009f
check SD_boot_type:0x1   card_type:0x1
Loading U-boot...success.


U-boot-00000-gb7b8dc2-dirty(odroidc@b7b8dc21) (Apr 03 2020 - 06:07:00)

I2C:   clear pinmux reg1[24]=0
clear pinmux reg1[1]=0
out reg=c1108058,value=fffcfa00
set output en 0xc1108054[21]=0
set output val 0xc1108058[21]=0
clear pinmux reg1[25]=0
clear pinmux reg8[12]=0
clear pinmux reg1[3]=0
clear pinmux reg1[2]=0
set output en 0xc1108054[20]=1
clear pinmux reg1[24]=0
clear pinmux reg1[1]=0
out reg=c1108058,value=fffcfa00
set output en 0xc1108054[21]=0
set output val 0xc1108058[21]=0
clear pinmux reg1[25]=0
clear pinmux reg8[12]=0
clear pinmux reg1[3]=0
clear pinmux reg1[2]=0
out reg=c1108058,value=fffcfa00
set output en 0xc1108054[20]=0
set output val 0xc1108058[20]=0
clear pinmux reg1[25]=0
clear pinmux reg8[12]=0
clear pinmux reg1[3]=0
clear pinmux reg1[2]=0
set output en 0xc1108054[20]=1
clear pinmux reg1[24]=0
clear pinmux reg1[1]=0
out reg=c1108058,value=ffdcfa00
set output en 0xc1108054[21]=0
set output val 0xc1108058[21]=0
clear pinmux reg1[24]=0
clear pinmux reg1[1]=0
out reg=c1108058,value=fffcfa00
set output en 0xc1108054[21]=0
set output val 0xc1108058[21]=0
clear pinmux reg1[24]=0
clear pinmux reg1[1]=0
out reg=c1108058,value=ffdcfa00
set output en 0xc1108054[21]=0
set output val 0xc1108058[21]=0
clear pinmux reg1[24]=0
clear pinmux reg1[1]=0
out reg=c1108058,value=fffcfa00
set output en 0xc1108054[21]=0
set output val 0xc1108058[21]=0
clear pinmux reg1[24]=0
clear pinmux reg1[1]=0
out reg=c1108058,value=ffdcfa00
set output en 0xc1108054[21]=0
set output val 0xc1108058[21]=0
clear pinmux reg1[24]=0
clear pinmux reg1[1]=0
out reg=c1108058,value=fffcfa00
set output en 0xc1108054[21]=0
set output val 0xc1108058[21]=0
clear pinmux reg1[24]=0
clear pinmux reg1[1]=0
out reg=c1108058,value=ffdcfa00
set output en 0xc1108054[21]=0
set output val 0xc1108058[21]=0
clear pinmux reg1[24]=0
clear pinmux reg1[1]=0
out reg=c1108058,value=fffcfa00
set output en 0xc1108054[21]=0
set output val 0xc1108058[21]=0
clear pinmux reg1[24]=0
clear pinmux reg1[1]=0
out reg=c1108058,value=ffdcfa00
set output en 0xc1108054[21]=0
set output val 0xc1108058[21]=0
clear pinmux reg1[24]=0
clear pinmux reg1[1]=0
out reg=c1108058,value=fffcfa00
set output en 0xc1108054[21]=0
set output val 0xc1108058[21]=0
clear pinmux reg1[24]=0
clear pinmux reg1[1]=0
out reg=c1108058,value=ffdcfa00
set output en 0xc1108054[21]=0
set output val 0xc1108058[21]=0
clear pinmux reg1[24]=0
clear pinmux reg1[1]=0
out reg=c1108058,value=fffcfa00
set output en 0xc1108054[21]=0
set output val 0xc1108058[21]=0
clear pinmux reg1[24]=0
clear pinmux reg1[1]=0
out reg=c1108058,value=ffdcfa00
set output en 0xc1108054[21]=0
set output val 0xc1108058[21]=0
clear pinmux reg1[24]=0
clear pinmux reg1[1]=0
out reg=c1108058,value=fffcfa00
set output en 0xc1108054[21]=0
set output val 0xc1108058[21]=0
clear pinmux reg1[24]=0
clear pinmux reg1[1]=0
out reg=c1108058,value=ffdcfa00
set output en 0xc1108054[21]=0
set output val 0xc1108058[21]=0
clear pinmux reg1[24]=0
clear pinmux reg1[1]=0
out reg=c1108058,value=fffcfa00
set output en 0xc1108054[21]=0
set output val 0xc1108058[21]=0
clear pinmux reg1[24]=0
clear pinmux reg1[1]=0
out reg=c1108058,value=ffdcfa00
set output en 0xc1108054[21]=0
set output val 0xc1108058[21]=0
clear pinmux reg1[24]=0
clear pinmux reg1[1]=0
out reg=c1108058,value=fffcfa00
set output en 0xc1108054[21]=0
set output val 0xc1108058[21]=0
clear pinmux reg1[24]=0
clear pinmux reg1[1]=0
out reg=c1108058,value=ffdcfa00
set output en 0xc1108054[21]=0
set output val 0xc1108058[21]=0
clear pinmux reg1[25]=0
clear pinmux reg8[12]=0
clear pinmux reg1[3]=0
clear pinmux reg1[2]=0
out reg=c1108058,value=ffccfa00
set output en 0xc1108054[20]=0
set output val 0xc1108058[20]=0
clear pinmux reg1[24]=0
clear pinmux reg1[1]=0
out reg=c1108058,value=ffecfa00
set output en 0xc1108054[21]=0
set output val 0xc1108058[21]=0
clear pinmux reg1[25]=0
clear pinmux reg8[12]=0
clear pinmux reg1[3]=0
clear pinmux reg1[2]=0
set output en 0xc1108054[20]=1
clear pinmux reg1[25]=0
clear pinmux reg8[12]=0
clear pinmux reg1[3]=0
clear pinmux reg1[2]=0
set output en 0xc1108054[20]=1
clear pinmux reg1[25]=0
clear pinmux reg8[12]=0
clear pinmux reg1[3]=0
clear pinmux reg1[2]=0
set output en 0xc1108054[20]=1
ready
DRAM:  1 GiB
relocation Offset is: 2ff18000
MMC:   SDCARD: 0, eMMC: 1
IR init is done!
*** Warning - bad CRC, using default environment

mmc save env ok
vpu clk_level = 3
set vpu clk: 182150000Hz, readback: 182150000Hz(0x701)
mode = 6  vic = 4
set HDMI vic: 4
mode is: 6
viu chan = 1
config HPLL
config HPLL done
reconfig packet setting done
MMC read: dev # 0, block # 33984, count 12288 ... 12288 blocks read: OK
Error: Bad gzipped data
There is no valid bmp file at the given address
============================================================
Vendor: Man 1b534d Snr 14a11937 Rev: 1.0 Prod: SDU1
            Type: Removable Hard Disk
            Capacity: 29819.0 MB = 29.1 GB (61069312 x 512)
------------------------------------------------------------
Partition     Start Sector     Num Sectors     Type
    1                 8192          816001      83
============================================================
Net:   Meson_Ethernet
init suspend firmware done. (ret:0)
Hit Enter key to stop autoboot -- :  0
exit abortboot: 0

** Unable to use mmc 0:1 for fatload **
Loading file "/boot/boot.ini" from mmc device 0:1 xxa1
3762 bytes read
Loading boot.ini from mmc0:1 (ext4)
Executing the script...
setenv rootdev "UUID=af6a8cf1-6bc1-4047-985c-7405f909db74"
setenv rootfstype "ext4"
setenv m "1080p"                # 1080P@60Hz
setenv vout_mode "hdmi"
setenv m_bpp "32"
setenv monitor_onoff "false" # true or false
setenv hpd "0"
setenv cec "0"
setenv disableuhs "disableuhs"
setenv vpu "0"
setenv hdmioutput "0"
if test -e mmc 0:1 boot/.next; then setenv condev "console=ttyAML0,115200n8"; else setenv condev "console=ttyS0,115200n8 console=tty0"; fi
setenv disable_vu7 "false" # false
setenv max_freq "1536"
if test "${hpd}" = "0"; then setenv hdmi_hpd "disablehpd=true"; fi
if test "${cec}" = "1"; then setenv hdmi_cec "hdmitx=cecf"; fi
if test "${disable_vu7}" = "false"; then setenv hid_quirks "usbhid.quirks=0x0eef:0x0005:0x0004"; fi
setenv bootargs "root=${rootdev} rootwait rw ${condev} rootfstype=${rootfstype} loglevel=3 no_console_suspend consoleblank=0 vdaccfg=0xa000 logo=osd1,loaded,0x7900000,720p,full dmfc=3 cvbsmode=576cvbs hdmimode=${m} m_bpp=${m_bpp} vout=${vout_mode} ${disableuhs} ${hdmi_hpd} ${hdmi_cec} ${enabledac} monitor_onoff=${monitor_onoff} max_freq=${max_freq} ${hid_quirks} ${extraargs}"
ext4load mmc 0:1 0x21000000 /boot/uImage || fatload mmc 0:1 0x21000000 uImage || ext4load mmc 0:1 0x21000000 uImage
Loading file "/boot/uImage" from mmc device 0:1 xxa1
8409664 bytes read
ext4load mmc 0:1 0x22000000 /boot/uInitrd || fatload mmc 0:1 0x22000000 uInitrd || ext4load mmc 0:1 0x22000000 uInitrd
Loading file "/boot/uInitrd" from mmc device 0:1 xxa1
invalid extent block
** Unable to read "/boot/uInitrd" from mmc 0:1 **

** Unable to use mmc 0:1 for fatload **
Loading file "uInitrd" from mmc device 0:1 xxa1
** File not found uInitrd
ext4load mmc 0:1 0x21A00000 /boot/dtb/meson8b-odroidc1.dtb
Loading file "/boot/dtb/meson8b-odroidc1.dtb" from mmc device 0:1 xxa1
17758 bytes read
fdt addr 21A00000
if test "${vpu}" = "0"; then fdt rm /mesonstream; fdt rm /vdec; fdt rm /ppmgr; 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
if test "${hdmioutput}" = "0"; then fdt rm /mesonfb; fi
libfdt fdt_path_offset() returned FDT_ERR_NOTFOUND
bootm 0x21000000 0x22000000 0x21A00000
## Booting kernel from Legacy Image at 21000000 ...
   Image Name:   Linux kernel
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    8409600 Bytes = 8 MiB
   Load Address: 00208000
   Entry Point:  00208000
   Verifying Checksum ... Bad Data CRC
ERROR: can't get kernel image!
▒
Unknown command '▒' - try 'help'
MMC read: dev # 0, block # 1216, count 16384 ... 16384 blocks read: OK
MMC read: dev # 0, block # 1088, count 128 ... 128 blocks read: OK
Wrong Image Format for bootm command
ERROR: can't get kernel image!
odroidc#

Hmm, the error still matches the one mentioned in the forum when the kernel image is too big: https://forum.odroid.com/viewtopic.php?p=282220#p282220

I’ll have a closer check as the increased address for dtb file is in place. Good to know also that some other parts of the boot.ini seem to be obsolete (disabling HDMI, as the related parts of the device tree are not present anyway).

Last try on Armbian: https://dl.armbian.com/odroidc1/Buster_current_minimal
The image now contains uImage OOTB. The boot.ini however is unmodified. Not sure if something has been fixed or not, however if someone can test it and it boots, I’ll create a DietPi image from it, otherwise I’ll use ancient Meveric kernel 3.10 image, which should at least boot.

New image up: https://dietpi.com/downloads/images/DietPi_OdroidC1-ARMv7-Buster.7z
Armbian upgraded their legacy (two partitions, uImage) image to Linux 5.4 and this finally seems to have solved the issue and boots :smiley:.

And it’s working!!!

No cpu temp, but does’t matter!

Great, finally, many thanks for testing!

Probably we can get CPU temps as well, run the following to check the kernel files:

for i in /sys/class/thermal/thermal_zone[0-9]/temp /sys/class/hwmon/hwmon[0-9]/temp[0-9]_input /sys/devices/platform/coretemp.[0-9]/hwmon/hwmon[0-9]/temp[0-9]_input
do
[[ -e $i ]] && echo "$i : $(<$i)"
done

The answer to this code :
/sys/class/hwmon/hwmon0/temp1_input : 35312
So its working I think 35 degrees

Wow, this was the only output? I was assuming some more files as usually there are more sensors for other parts of the SBC. Probably also a limitation of the CPU :wink:. Regardless, I’ll put that file into our script to show in banner.