=====ODROID U3 - Archlinux=====
{{::odroidu3.jpg?direct&300|}}
{{tag>[hardware 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