File: //usr/syno/share/kernelversion.sh
#!/bin/sh
# Generate linux kernel version code
# ex.
# KernelVersionCode "2.4.22" => 132118
# KernelVersionCode "2.6" => 132608
# KernelVersionCode "2.6.32" => 132640
# KernelVersionCode "3" => 196608
# KernelVersionCode "3.0.0" => 196608
KernelVersionCode()
{
[ $# -eq 1 ] || return
local _version_string _major_version _minor_version _revision
_version_string="$(echo "$1" | /usr/bin/cut -d'_' -f1)."
_major_version=$(echo "${_version_string}" | /usr/bin/cut -d'.' -f1)
_minor_version=$(echo "${_version_string}" | /usr/bin/cut -d'.' -f2)
_revision=$(echo "${_version_string}" | /usr/bin/cut -d'.' -f3)
/bin/echo $((${_major_version:-0} * 65536 + ${_minor_version:-0} * 256 + ${_revision:-0}))
}
# Get current linux kernel version without extra version
# format: VERSION.PATCHLEVEL.SUBLEVEL
# ex. "2.6.32"
KernelVersion()
{
local _release
_release=$(/bin/uname -r)
/bin/echo ${_release%%[-+]*} | /usr/bin/cut -d'.' -f1-3
}