diff --git a/scripts/armhwinfo b/scripts/armhwinfo index d9067d288c..5e1410ed31 100644 --- a/scripts/armhwinfo +++ b/scripts/armhwinfo @@ -21,22 +21,23 @@ collect_information() { ARCH=$(lscpu | awk '/Architecture/ {print $2}') HARDWARE=$(awk '/Hardware/ {print $3}' /sys/block/$i/queue/scheduler; - echo -e "[\e[0;32m ok \x1B[0m] Setting cfg I/O scheduler for $i" - - # solid state drives - elif [ "$ROTATE" = 0 ]; then echo noop >/sys/block/$i/queue/scheduler; - echo -e "[\e[0;32m ok \x1B[0m] Setting noop I/O scheduler for $i" - fi + case ${ROTATE} in + 1) # mechanical drives + echo cfq >/sys/block/$i/queue/scheduler + echo -e "[\e[0;32m ok \x1B[0m] Setting cfg I/O scheduler for $i" + ;; + 0) # flash based + echo noop >/sys/block/$i/queue/scheduler + echo -e "[\e[0;32m ok \x1B[0m] Setting noop I/O scheduler for $i" + ;; + esac done } # set_io_scheduler @@ -101,20 +102,20 @@ prepare_board() { echo 8 >/proc/irq/$(awk -F":" "/sdcard/ {print \$1}" /proc/irq/$i/smp_affinity done ;; ODROIDC) # ODROID-C0/C1/C1+ echo 1 >/proc/irq/$(awk -F":" "/usb1/ {print \$1}" /proc/irq/${i}/smp_affinity_list; done + for i in $(awk -F':' '/Mali_/{print $1}' /proc/irq/${i}/smp_affinity_list; done echo 2 >/proc/irq/$(awk -F":" "/usb2/ {print \$1}" /proc/irq/$(awk -F":" "/eth0/ {print \$1}" /sys/class/net/eth0/queues/rx-0/rps_cpus ;; ODROID-C2) # send eth0 to cpu3, mmc/usb2 to cpu2 and usb1 to cpu1 # Basics: http://forum.odroid.com/viewtopic.php?f=115&t=8121#p65777 - for i in $(awk -F':' '/sd_emmc|usb2/{print $1}' /proc/interrupts); do + for i in $(awk -F':' '/sd_emmc|usb2/{print $1}' /proc/irq/$i/smp_affinity_list done echo 2 >/proc/irq/$(awk -F":" "/usb1/ {print \$1}" /proc/irq/$(awk -F":" "/usb5/ {print \$1}" /proc/irq/$(awk -F":" "/dw-mci/ {print \$1}" /proc/irq/$(awk -F":" "/dw-mci/ {print \$1}" /proc/irq/$i/smp_affinity done echo 7 >/sys/class/net/eth0/queues/rx-0/rps_cpus @@ -138,10 +139,10 @@ prepare_board() { : ;; sun6i) # Banana Pi M2: process eth0 on cpu3, SDIO on cpu2, USB on cpu1 - for i in $(awk -F':' '/hcd:usb/{print $1}' /proc/interrupts); do + for i in $(awk -F':' '/hcd:usb/{print $1}' /proc/interrupts | sed 's/\ //g'); do echo 2 >/proc/irq/$i/smp_affinity done - for i in $(awk -F':' '/sunxi-mmc/{print $1}' /proc/interrupts); do + for i in $(awk -F':' '/sunxi-mmc/{print $1}' /proc/interrupts | sed 's/\ //g'); do echo 4 >/proc/irq/$i/smp_affinity done echo 8 >/proc/irq/$(awk -F":" '/eth0/ {print $1}' /proc/irq/$i/smp_affinity done ;; @@ -193,10 +194,10 @@ prepare_board() { # Wifi module reload workaround / fix [[ -n $(lsmod | grep 8189es) ]] && rmmod 8189es && modprobe 8189es # Send SDIO to cpu1, USB to cpu2, Ethernet to cpu3 - for i in $(awk -F':' '/sunxi-mmc/{print $1}' /proc/interrupts); do + for i in $(awk -F':' '/sunxi-mmc/{print $1}' /proc/irq/$i/smp_affinity done - for i in $(awk -F':' '/hcd:usb/{print $1}' /proc/interrupts); do + for i in $(awk -F':' '/hcd:usb/{print $1}' /proc/irq/$i/smp_affinity done echo 8 >/proc/irq/$(awk -F":" "/${GbE}/ {print \$1}"