=====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