Dear list,

I have an Odroid XU from Hardkernel with an eMMC memory module.  The
Linux images provided by Hardkernel and on their forums work
(Debian, Ubuntu).  Now I'd like to make openSUSE work on it.

At the end of this mail, I provide the steps of what I have done so far
to prepare an eMMC.  With this eMMC, the kernel seems to boot, but all
I get is a black screen and the device doesn't appear on the network (so
SSH isn't possible).  With your help, I hope to be able to make HDMI and
ethernet work.

Links to openSUSE wiki (not much information) and official site:
https://en.opensuse.org/HCL:OdroidXU
http://hardkernel.com/main/products/prdt_info.php?g_code=G137510300620

Now, here's how I've prepared the eMMC in detail.


(1) I got the SuSE rootfs from here:
http://download.opensuse.org/ports/armv7hl/distribution/13.1/appliances/openSUSE-13.1-ARM-JeOS.armv7-rootfs.armv7l-1.12.1-Build36.1.tbz


(2) And the kernel from here:
http://builder.mdrjr.net/kernel-3.4/LATEST/odroidxu.tar.xz


(3) Prepared a boot.ini
(File attached, I used this as a template:
http://builder.mdrjr.net/tools/boot.scr_ubuntu_xu.tar)


(4) Prepared rule files with following contents:

40-input.rules:
KERNEL=="event*", SUBSYSTEM=="input", MODE="0777", GROUP="adm"

50-hk_hdmi.rules:
KERNEL=="fb1", SYMLINK+="fb6"

60-cec.rules:
KERNEL=="CEC", MODE="0777"


(5) Partitioned the eMMC according to this layout:

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048      133119       65536    c  W95 FAT32 (LBA)
/dev/sdb2          133120   122142719    61004800   83  Linux


(6) Prepared partitions with following commands:

mkfs.vfat -n boot /dev/sdb1
mkfs.ext4 -L rootfs /dev/sdb2
tune2fs /dev/sdb2 -U e139ce78-9841-40fe-8823-96a304a09859
tune2fs -O ^has_journal /dev/sdb2

(The UID is to make it compatible with hardkernel's kernel update
script.)


(7) Copied the rootfs to the eMMC, excluding following folders:

/lib/modules/3.11.10-2-default
/lib/firmware/3.11.10-2-default
/boot


(8) Copied config-3.4.91, zImage and boot.ini to the boot partition


(9) Copied the rule files to /etc/udev/rules.d/


(10) Copied lib/* and usr/* from the kernel to /lib/ and /usr/, using
"cp -aR" (don't know if this flags are necessary)


With the eMMC prepared like that, the kernel seems to boot (blue LED
blinking).  The eMMC already has the bootloader preinstalled in a hidden
partition.

I hope you can give me some hints how to proceed from here.

Thanks in advance and kind regards,
Joshua Krämer
ODROIDXU-UBOOT-CONFIG

# Verify if u-boot is up-to-date to receive new Kernel
setenv hk_current_version "2"
setenv verify 'if test $hk_version != $hk_current_version;then;fatload mmc 0:1 
40008000 u-boot.bin;emmc open 0;movi w z u 0 40008000;emmc close 0;setenv 
hk_version $hk_current_version;save;reset;fi'
#run verify

# U-Boot Parameters
setenv initrd_high "0xffffffff"
setenv fdt_high "0xffffffff"

# Boot Specific Stuff
# OpenSUSE
setenv bootrootfs "console=ttySAC2,115200n8 root=/dev/mmcblk0p2 rootwait ro"

# Frame buffer size.
setenv fb_x_res     "1280"
setenv fb_y_res     "720"

# Controls the Board Output Method.
# Valid values are: lcd dp hdmi dvi
setenv vout         "hdmi"

# FB Control
setenv left     "56"
setenv right    "24"
setenv upper    "3"
setenv lower    "3"
setenv hsync    "14"
setenv vsync    "3"

setenv fb_control "left=${left} right=${right} upper=${upper} lower=${lower} 
vsync=${vsync} hsync=${hsync}"

# Forces a fixed resolution on the HDMI controller. Please make sure that your 
screen supports and
# It matchs the resolution above! setted the X and Y
# valid values are: 480p60hz 720p60hz 720p50hz 1080p60hz 1080i60hz 1080i50hz 
1080p50hz
#                   1080p30hz 1080p25hz 1080p24hz
setenv hdmi_phy_res "720p60hz"

# System Status LED: Blink the RGB LED or disable it
# valid values: 1 off
setenv led_blink    "1"

# U-Boot bootcmd command
# OpenSUSE
setenv bootcmd "fatload mmc 0:1 0x40008000 zImage; bootz 0x40008000"

# Kernel boot arguments
setenv bootargs "${bootrootfs} ${fb_control} fb_x_res=${fb_x_res} 
fb_y_res=${fb_y_res} vout=${vout} hdmi_phy_res=${hdmi_phy_res} 
led_blink=${led_blink}"

# Boot the board
boot

Reply via email to