ARM – Kernel 4.4-rc3 – OK with Odroid U3 (and Fan..) — 18 Comments

  1. Hello!

    Can you tell me please how to upgrade from kernel 3.8.13-30 to 4.4-rc3/4 ?
    I am on U3 (not XU3) and wanted to know… 🙂

    Thnx & bye

  2. Hello and many thx for this information.

    I used your Information to upgrade my odroid xu4 to 4.4-rc8. (ubuntu 15.10_server)
    Now the fan runs very nice without the script (
    A nice howto is to use this tutorial to upgrade your kernel.
    i used the odroidxu4_defconfig from here
    not 100% sure if there have to be a change in the config, but it rans great.
    I run stress –cpu8 about some minutes, everything is fine.

  3. Could you please share the config file that you used to compile linux kernel 4.4 for odroid-u?
    Many thanks in advance.

  4. I can’t get 4.4 to boot on my U3, here’s contents of my boot.scr:

    if test -n ${oneshot}; then
    setenv oneshot
    setenv filesize
    setenv experimental 1

    # kernel image and dtb load addresses
    setenv zimg_addr “0x40008000”
    setenv fdt_addr “0x43f00000”
    setenv fdt_high “0xffffffff”
    setenv initrd_addr “0x42000000”
    setenv initrd_high “0xffffffff”

    # video config: 1280x720M@50, 1920x1080M@60
    # console config
    # rootfs config
    setenv vid_config “video=HDMI-A-1:1280x720M@60”
    setenv con_config “console=ttySAC1,115200n8”
    setenv rfs_config “root=/dev/sdb1 rootfstype=ext4 rootwait=10 rw mem=2047M”

    if test -n ${experimental}; then
    setenv zimg_file “zImage-4.1-odroid”
    setenv fdt_file “odroid-u3-4.1.dtb”
    setenv bootargs “${vid_config} ${con_config} ${rfs_config} earlyprintk”
    setenv zimg_file “zImage-4.0-odroid”
    setenv fdt_file “odroid-u3-4.0.dtb”
    setenv bootargs “${vid_config} ${con_config} ${rfs_config}”
    setenv initrd_file “uInitrd-4.1”
    setenv uloadcmd “fatload mmc 0:1 ${zimg_addr} ${zimg_file}; fatload mmc 0:1 ${fdt_addr} ${fdt_file}; fatload mmc 0:1 ${initrd_addr} ${initrd_file}”
    setenv bootcmd “run uloadcmd; fdt addr ${fdt_addr}; fdt resize; bootz ${zimg_addr} ${initrd_addr} ${fdt_addr}”

    What am I doing wrong ?

    • For troubleshooting, I would suggest using a simpler set of U-boot commands.. I use this:

      setenv initrd_high “0xffffffff”
      setenv fdt_high “0xffffffff”
      setenv fb_x_res “1920”
      setenv fb_y_res “1080”
      setenv hdmi_phy_res “1080”
      setenv kerneladdr 0x40008000
      setenv fdtaddr 0x41f00000
      setenv bootargs “console=tty1 console=ttySAC1,115200n8 fb_x_res=${fb_x_res} fb_y_res=${fb_y_res} hdmi_phy_res=${hdmi_phy_res} root=/dev/mmcblk0p3 rootfs=ext4 rootwait rw mem=2047M selinux=0”
      setenv bootcmd “fatload mmc 0:1 ${kerneladdr} zImage; fatload mmc 0:1 ${fdtaddr} exynos4412-odroidu3.dtb; bootz ${kerneladdr} – ${fdtaddr}”

      I have seen several _different_ values quoted for kerneladdr, and fdtaddr, but these work, on my U3.. I am still running Kernel 4.4 (from as I haven’t had time to update it, yet.. I should also mention that I don’t use an hdmi connection, at the moment – just the UART/USB for console, and vncserver for any sessions..


      • Just a short note that several of parameters in bootargs are not necessary and not even parsed by the upstream kernels:
        fb_x_res, fb_y_res and hdmi_phy_res

        Also for debugging adding earlyprintk is recommended.

        – Tobias

  5. Would you post an image with this kernel working? I don’t have the uart cable and can’t guess why it’s not booting. I have standard (old) debian image from HK, flashed uboot and built 4.6 kernel. No dice, the heartbeat led stays on (doesn’t flash) and that’s it.

    • I’m not able to post kernel images..

      I would strongly recommend getting a UART connection, as working on these system is next-to-impossible without one..

      For compiling the kernel, my workflow looks like this:
      make exynos_defconfig
      make xconfig… select ‘SAMSUNG EXYNOS4412’ under System Type.. etc..
      make -j4 zImage
      make dtbs
      make -j4 modules
      make modules_install
      make firmware_install
      cp arch/arm/boot/zImage /boot
      cp arch/arm/boot/dts/exynos4412-odroidu3.dtb /boot
      cp /boot
      – Then check that U-Boot has the correct corresponding parameters (which needs a UART console connection..) and reboot..


    • Yeah I also advise getting the UART cable.

      If one could enable network console in U-boot, which I have not been able to, you could afterwards get rid of it even for experimentation with kernels

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.