build/scripts/armhwinfo

137 lines
4.3 KiB
Text
Raw Normal View History

#! /bin/bash
2014-10-08 07:39:24 +02:00
### BEGIN INIT INFO
# Provides: armhwinfo
# Required-Start:
2014-10-12 09:20:35 +02:00
# Required-Stop: glibc
2014-10-12 07:27:38 +02:00
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Get some info about hardware for some ARM single board computers and set some basic things
2014-10-08 07:39:24 +02:00
### END INIT INFO
SERVER_IP=$(ifconfig | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}')
2014-10-08 07:39:24 +02:00
CORES=$(grep -c ^processor /proc/cpuinfo)
MEMTOTAL=$(awk 'BEGIN { printf "%.0f\n", '$(grep MemTotal /proc/meminfo | awk '{print $2}')'/1024/1024 }')
ARCH=$(lscpu | grep Architecture | awk '{print $2}')
RTC=$(dmesg | grep rtc0 | awk '{print $(NF)}')
HB_PCI=$(dmesg | grep '16c3:abcd')
HARDWARE=$(cat /proc/cpuinfo | grep Hardware | awk '{print $3}')
2014-11-28 16:05:40 +01:00
GMAC=$(dmesg | grep "sun6i_gmac")
2014-11-17 19:15:08 +01:00
LEDS=$(dmesg |grep "green:ph02:led1")
TERMINUS=$(lsusb | grep "1a40:0101")
SWITCH=$(dmesg | grep "BCM53125")
INTERUPT=$(cat /proc/interrupts | grep "eth0")
DISTROID=$(lsb_release -s -i)
DISTROCODE=$(lsb_release -s -c)
KERNELID=$(uname -r)
2014-10-08 07:39:24 +02:00
#KERNELDATE=$(uname -v |sed 's/.*EMPT //g' | awk '{print "date -d\""$1FS$2FS$3"\" +%e.%B.%Y"}' | bash)
2014-10-12 07:27:38 +02:00
case "$1" in
start)
2014-10-08 07:39:24 +02:00
# ARM
for i in $( lsblk -idn -o NAME ); do
ROTATE=$(cat /sys/block/$i/queue/rotational)
# mechanical drives
if [ "$ROTATE" = 1 ]; then echo cfq > /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
done
2014-10-08 07:39:24 +02:00
if [ "$ARCH" = "armv7l" ]; then
2015-12-24 22:42:12 +01:00
if [ $HARDWARE = "ODROID-XU3" ]; then
2016-01-01 12:24:16 +01:00
ID="Odroid XU4"
2015-12-27 19:28:10 +01:00
fi
if [ $HARDWARE = "Marvell" ]; then
ID="Clearfog"
fi
2015-12-27 19:28:10 +01:00
if [ $HARDWARE = "gs705a" ]; then
ID="Guitar"
fi
if [ $HARDWARE = "sun4i" ] || [ $HARDWARE = "Allwinner" ]; then
ID="Cubieboard"
fi
if [ $HARDWARE = "sun7i" ] || [ $HARDWARE = "Allwinner" ]; then
# redistribute irq to dedicated core
if [ "$INTERUPT" != "" ] && [ "$CORES" -gt 1 ]; then
echo 2 > /proc/irq/$(cat /proc/interrupts | grep eth0 | cut -f 1 -d ":" | tr -d " ")/smp_affinity
2014-10-08 07:39:24 +02:00
fi
if [ "$MEMTOTAL" = 2 ]; then
ID="Cubietruck"
elif [ -n "$GMAC" ]; then
if [ "$TERMINUS" != "" ]; then
ID="Orange"
elif [ "$SWITCH" != "" ]; then
ID="Lamobo R1"
elif [ "$LEDS" != "" ]; then
ID="Lime 2"
else
ID="Banana"
fi
elif [ "$LEDS" != "" ]; then
ID="Lime"
elif [ "$MEMTOTAL" = 1 ]; then
ID="Micro"
else
ID="Cubieboard"
2014-10-08 07:39:24 +02:00
fi
elif [ "$HARDWARE" = "Freescale" ]; then
if [ "$MEMTOTAL" = 2 ]; then
ID="Cubox i4"
elif [ "$HB_PCI" != "" ]; then
ID="HB i2eX"
elif [ "$RTC" = "rtc0" ]; then
ID="Cubox i2eX"
elif [ "$CORES" = 1 ]; then
ID="HB i1"
else
ID="HB i2"
fi
[ -f /proc/asound/imxvt1613audio/id ] && ID="Udoo"
fi
fi
[ -f /proc/device-tree/model ] && MACHINE=$(cat /proc/device-tree/model)
if [[ $MACHINE == *LIME2 ]]; then ID="Lime 2"; fi
if [[ $MACHINE == *LIME ]]; then ID="Lime"; fi
if [[ $MACHINE == *Micro ]]; then ID="Micro"; fi
if [[ $MACHINE == *Banana* ]]; then ID="Banana"; fi
if [[ $MACHINE == *Udoo* ]]; then ID="udoo"; fi
if [[ $MACHINE == *Lamobo* ]]; then ID="Lamobo R1"; fi
if [[ $MACHINE == *Orange* ]]; then ID="Orange"; fi
if [[ $MACHINE == *Neo* ]]; then ID="Udoo Neo"; fi
if [[ $MACHINE == *Cubietruck* ]]; then ID="Cubietruck"; fi
if [[ $MACHINE == *Cubieboard* ]]; then ID="Cubieboard"; fi
if [[ $MACHINE == *M2* ]]; then ID=$ID" M2"; fi
echo -e "[\e[0;32m ok \x1B[0m] Starting ARM hardware info: $ID"
echo $ID >> /var/run/machine.id
2014-10-08 07:39:24 +02:00
echo "" > /var/run/motd.dynamic
toilet -f standard -F metal "$ID" >> /var/run/motd.dynamic
echo -e "Welcome to \e[0;31mARMBIAN\x1B[0m ($DISTROID $DISTROCODE $KERNELID)" >> /var/run/motd.dynamic
2014-10-12 07:27:38 +02:00
echo "" >> /var/run/motd.dynamic
;;
stop|reload|restart|force-reload|status)
echo -e "[\e[0;32m ok \x1B[0m] Stopping ARM hardware info ..."
2014-10-12 07:27:38 +02:00
;;
*)
## If no parameters are given, print which are avaiable.
echo "Usage: $0 {start}"
exit 1
;;
esac