Ben's notes

Linux, Unix, network, radio...

User Tools

Site Tools


odroid_u3_-_archlinux

This is an old revision of the document!


ODROID U3 - Archlinux

Install ArchLinux

  • Insert an 8GB or larger SD card into your computer and record which device identifier it is (dmesg | tail)
  • Make sure it's not mounted (umount /dev/sdX* or umount /dev/mmcblk*)
  • Download the ODROID-U2 SD image (it's the same for the U3) and expand it with gunzip ArchLinuxARM-odroid-u2-latest.img.gz
  • Write the image to your SD card with dd if=ArchLinuxARM-odroid-u2-latest.img of=/dev/[sdX or mmcblkX]
  • Windows users can use Image Writer for Windows
  • After dd is finished issue a 'sync' to make sure all cached data is written to the SD card.
  • Move the SD card from your computer to the ODROID and push the power button for ~1-2s to power it up.
  • Log in over SSH or serial as 'root' with the default password of 'root'
  • You should now have a fully operational base install of Arch Linux ARM. Remember Arch Linux ARM doesn't come with a GUI installed.

systemd startup duration

systemd-analyze

Startup finished in 3.245s (kernel) + 5.644s (userspace) = 8.890s

systemd-analyze blame

          2.364s netctl@eth0.service
           599ms systemd-udev-trigger.service
           529ms systemd-remount-fs.service
           484ms systemd-vconsole-setup.service
           474ms kmod-static-nodes.service
           450ms systemd-sysctl.service
           416ms dev-mqueue.mount
           264ms systemd-user-sessions.service
           263ms haveged.service
           196ms systemd-logind.service
           119ms user@1000.service
           104ms systemd-journal-flush.service
            94ms systemd-update-utmp.service
            79ms systemd-tmpfiles-setup.service
            64ms systemd-tmpfiles-setup-dev.service
            59ms systemd-random-seed.service
            22ms boot.mount
            21ms systemd-udevd.service
            19ms tmp.mount
            18ms ntpd.service
             6ms systemd-tmpfiles-clean.service
             3ms proc-sys-fs-binfmt_misc.mount

LED config

Show possible values cat /sys/class/leds/led1/trigger

none mmc0 mmc1 timer oneshot [heartbeat] backlight gpio cpu0 cpu1 cpu2 cpu3 default-on transient 

How to shut up the alive led.

echo none > /sys/class/leds/led1/trigger

How to make it stop blinking:

echo default-on > /sys/class/leds/led1/trigger

How to make it show the eMMC activity:

echo mmc1 > /sys/class/leds/led1/trigger

How to make it show the SD activity:

echo mmc0 > /sys/class/leds/led1/trigger

How to make it blink as you want to:

echo timer > /sys/class/leds/led1/trigger
echo 1000 > /sys/class/leds/led1/delay_on
echo 1000 > /sys/class/leds/led1/delay_off

Write to sysfs after boot

For example to disable the heartbeat led.

/etc/tmpfiles.d/leds.conf

w /sys/class/leds/led1/trigger - - - - none

Temperature

awk '{printf "%3.1f°C\n", $1/1000}' /sys/class/thermal/thermal_zone0/temp

'Disk' info

eMMC info

udevadm info -a -n /dev/mmcblk0

Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

  looking at device '/devices/platform/dw_mmc/mmc_host/mmc1/mmc1:0001/block/mmcblk0':
    KERNEL=="mmcblk0"
    SUBSYSTEM=="block"
    DRIVER==""
    ATTR{ro}=="0"
    ATTR{size}=="30777344"
    ATTR{stat}=="   12560     2064   802099    15645     6501     8310   153608   252470        0    16495   268065"
    ATTR{range}=="8"
    ATTR{discard_alignment}=="0"
    ATTR{force_ro}=="0"
    ATTR{ext_range}=="8"
    ATTR{alignment_offset}=="0"
    ATTR{inflight}=="       0        0"
    ATTR{removable}=="0"
    ATTR{capability}=="10"

  looking at parent device '/devices/platform/dw_mmc/mmc_host/mmc1/mmc1:0001':
    KERNELS=="mmc1:0001"
    SUBSYSTEMS=="mmc"
    DRIVERS=="mmcblk"
    ATTRS{cid}=="1101003031364739320110594e9ba00f"
    ATTRS{csd}=="d00e00320f5903ffffffffef92400045"
    ATTRS{date}=="10/1997"
    ATTRS{name}=="016G92"
    ATTRS{type}=="MMC"
    ATTRS{rel_sectors}=="0x10"
    ATTRS{preferred_erase_size}=="4194304"
    ATTRS{fwrev}=="0x0"
    ATTRS{hwrev}=="0x0"
    ATTRS{oemid}=="0x0100"
    ATTRS{enhanced_area_offset}=="18446744073709551594"
    ATTRS{raw_rpmb_size_mult}=="0x4"
    ATTRS{manfid}=="0x000011"
    ATTRS{serial}=="0x10594e9b"
    ATTRS{erase_size}=="4194304"
    ATTRS{enhanced_area_size}=="4294967274"

  looking at parent device '/devices/platform/dw_mmc/mmc_host/mmc1':
    KERNELS=="mmc1"
    SUBSYSTEMS=="mmc_host"
    DRIVERS==""

  looking at parent device '/devices/platform/dw_mmc':
    KERNELS=="dw_mmc"
    SUBSYSTEMS=="platform"
    DRIVERS=="dw_mmc"

  looking at parent device '/devices/platform':
    KERNELS=="platform"
    SUBSYSTEMS==""
    DRIVERS==""

Disk/partition size info

fdisk -l /dev/mmcblk0

Disk /dev/mmcblk0: 14.7 GiB, 15758000128 bytes, 30777344 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000

Device         Boot     Start       End   Blocks  Id System
/dev/mmcblk0p1 *         4096    135167    65536  83 Linux
/dev/mmcblk0p2         135168  30777343 15321088  83 Linux

Read speed

hdparm -t --direct /dev/mmcblk0
/dev/mmcblk0:
 Timing O_DIRECT disk reads: 186 MB in  3.01 seconds =  61.84 MB/sec

Monitor IO latency

[root@odroidu3 ~]# ioping /dev/mmcblk0
4.0 KiB from /dev/mmcblk0 (device 14.7 GiB): request=1 time=444 us
4.0 KiB from /dev/mmcblk0 (device 14.7 GiB): request=2 time=396 us
4.0 KiB from /dev/mmcblk0 (device 14.7 GiB): request=3 time=391 us
4.0 KiB from /dev/mmcblk0 (device 14.7 GiB): request=4 time=681 us
4.0 KiB from /dev/mmcblk0 (device 14.7 GiB): request=5 time=380 us
4.0 KiB from /dev/mmcblk0 (device 14.7 GiB): request=6 time=385 us
4.0 KiB from /dev/mmcblk0 (device 14.7 GiB): request=7 time=706 us
4.0 KiB from /dev/mmcblk0 (device 14.7 GiB): request=8 time=677 us
4.0 KiB from /dev/mmcblk0 (device 14.7 GiB): request=9 time=378 us
^C
--- /dev/mmcblk0 (device 14.7 GiB) ioping statistics ---
9 requests completed in 8.5 s, 2.0 k iops, 7.9 MiB/s
min/avg/max/mdev = 378 us / 493 us / 706 us / 139 us
odroid_u3_-_archlinux.1402406889.txt.gz · Last modified: 2014/06/10 13:28 by admin