mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-27 13:05:03 +08:00
1920c298e7
This patch is more of a personal preference, rather than a fix for a problem. The current implementation used a combination of both 'cat' and 'sed' to generate an unsorted list of kernel modules separated by while space. The proposed implementation uses 'sort' and 'sed' to generate a sort list of kernel modules separated by while space. Tested on: Gentoo Linux Debian 6.0.10 Oracle Linux Server release 7.1 Arch Linux openSuSE 13.2 Signed-off-by: Alexander Kapshuk <alexander.kapshuk@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
194 lines
3.9 KiB
Bash
Executable File
194 lines
3.9 KiB
Bash
Executable File
#!/bin/sh
|
|
# Before running this script please ensure that your PATH is
|
|
# typical as you use for compilation/istallation. I use
|
|
# /bin /sbin /usr/bin /usr/sbin /usr/local/bin, but it may
|
|
# differ on your system.
|
|
#
|
|
echo 'If some fields are empty or look unusual you may have an old version.'
|
|
echo 'Compare to the current minimal requirements in Documentation/Changes.'
|
|
echo ' '
|
|
|
|
uname -a
|
|
echo ' '
|
|
|
|
gcc -dumpversion 2>&1 |
|
|
awk '/[0-9]+([.]?[0-9]+)+/ && !/not found$/{
|
|
match($0, /[0-9]+([.]?[0-9]+)+/)
|
|
printf("GNU C\t\t\t%s\n",
|
|
substr($0,RSTART,RLENGTH))
|
|
}'
|
|
|
|
make --version 2>&1 |
|
|
awk '/GNU Make/{
|
|
match($0, /[0-9]+([.]?[0-9]+)+/)
|
|
printf("GNU Make\t\t%s\n",
|
|
substr($0,RSTART,RLENGTH))
|
|
}'
|
|
|
|
ld -v 2>&1 |
|
|
awk '/[0-9]+([.]?[0-9]+)+/ && !/not found$/{
|
|
match($0, /[0-9]+([.]?[0-9]+)+/)
|
|
printf("Binutils\t\t%s\n",
|
|
substr($0,RSTART,RLENGTH))
|
|
}'
|
|
|
|
mount --version 2>&1 |
|
|
awk '/[0-9]+([.]?[0-9]+)+/ && !/not found$/{
|
|
match($0, /[0-9]+([.]?[0-9]+)+/)
|
|
$0 = substr($0,RSTART,RLENGTH)
|
|
printf("Util-linux\t\t%s\nMount\t\t\t%s\n",$0,$0)
|
|
}'
|
|
|
|
depmod -V 2>&1 |
|
|
awk '/[0-9]+([.]?[0-9]+)+/ && !/not found$/{
|
|
match($0, /[0-9]+([.]?[0-9]+)+/)
|
|
printf("Module-init-tools\t%s\n",
|
|
substr($0,RSTART,RLENGTH))
|
|
}'
|
|
|
|
tune2fs 2>&1 |
|
|
awk '/^tune2fs/{
|
|
match($0, /[0-9]+([.]?[0-9]+)+/)
|
|
printf("E2fsprogs\t\t%s\n",
|
|
substr($0,RSTART,RLENGTH))
|
|
}'
|
|
|
|
fsck.jfs -V 2>&1 |
|
|
awk '/version/{
|
|
match($0, /[0-9]+([.]?[0-9]+)+/)
|
|
printf("Jfsutils\t\t%s\n",
|
|
substr($0,RSTART,RLENGTH))
|
|
}'
|
|
|
|
reiserfsck -V 2>&1 |
|
|
awk '/^reiserfsck/{
|
|
match($0, /[0-9]+([.]?[0-9]+)+/)
|
|
printf("Reiserfsprogs\t\t%s\n",
|
|
substr($0,RSTART,RLENGTH))
|
|
}'
|
|
|
|
fsck.reiser4 -V 2>&1 | grep ^fsck.reiser4 | awk \
|
|
'NR==1{print "reiser4progs ", $2}'
|
|
|
|
xfs_db -V 2>&1 |
|
|
awk '/version/{
|
|
match($0, /[0-9]+([.]?[0-9]+)+/)
|
|
printf("Xfsprogs\t\t%s\n",
|
|
substr($0,RSTART,RLENGTH))
|
|
}'
|
|
|
|
pccardctl -V 2>&1 |
|
|
awk '/pcmciautils/{
|
|
match($0, /[0-9]+([.]?[0-9]+)+/)
|
|
printf("Pcmciautils\t\t%s\n",
|
|
substr($0,RSTART,RLENGTH))
|
|
}'
|
|
|
|
cardmgr -V 2>&1| grep version | awk \
|
|
'NR==1{print "pcmcia-cs ", $3}'
|
|
|
|
quota -V 2>&1 |
|
|
awk '/version/{
|
|
match($0, /[0-9]+([.]?[0-9]+)+/)
|
|
printf("Quota-tools\t\t%s\n",
|
|
substr($0,RSTART,RLENGTH))
|
|
}'
|
|
|
|
pppd --version 2>&1 |
|
|
awk '/version/{
|
|
match($0, /[0-9]+([.]?[0-9]+)+/)
|
|
printf("PPP\t\t\t%s\n",
|
|
substr($0,RSTART,RLENGTH))
|
|
}'
|
|
|
|
isdnctrl 2>&1 | grep version | awk \
|
|
'NR==1{print "isdn4k-utils ", $NF}'
|
|
|
|
showmount --version 2>&1 | grep nfs-utils | awk \
|
|
'NR==1{print "nfs-utils ", $NF}'
|
|
|
|
test -r /proc/self/maps &&
|
|
sed '
|
|
/.*libc-\(.*\)\.so$/!d
|
|
s//Linux C Library\t\t\1/
|
|
q
|
|
' /proc/self/maps
|
|
|
|
ldd --version 2>&1 |
|
|
awk '/^ldd/{
|
|
match($0, /[0-9]+([.]?[0-9]+)+/)
|
|
printf("Dynamic linker (ldd)\t%s\n",
|
|
substr($0,RSTART,RLENGTH))
|
|
}'
|
|
|
|
libcpp=`ldconfig -p 2>/dev/null |
|
|
awk '/(libg|stdc)[+]+\.so/ {
|
|
print $NF
|
|
exit
|
|
}
|
|
'`
|
|
test -r "$libcpp" &&
|
|
ls -l $libcpp |
|
|
sed '
|
|
s!.*so\.!!
|
|
s!^!Linux C++ Library\t!
|
|
'
|
|
ps --version 2>&1 |
|
|
awk '/version/{
|
|
match($0, /[0-9]+([.]?[0-9]+)+/)
|
|
printf("Procps\t\t\t%s\n",
|
|
substr($0,RSTART,RLENGTH))
|
|
}'
|
|
|
|
ifconfig --version 2>&1 |
|
|
awk '/tools/{
|
|
match($0, /[0-9]+([.]?[0-9]+)+/)
|
|
printf("Net-tools\t\t%s\n",
|
|
substr($0,RSTART,RLENGTH))
|
|
}'
|
|
|
|
loadkeys -V 2>&1 |
|
|
awk '/[0-9]+([.]?[0-9]+)+/ && !/not found$/{
|
|
match($0, /[0-9]+([.]?[0-9]+)+/)
|
|
$0 = substr($0,RSTART,RLENGTH)
|
|
printf("Kbd\t\t\t%s\nConsole-tools\t\t%s\n",$0,$0)
|
|
}'
|
|
|
|
oprofiled --version 2>&1 | awk \
|
|
'(NR==1 && ($2 == "oprofile")) {print "oprofile ", $3}'
|
|
|
|
expr --v 2>&1 |
|
|
awk '/^expr/{
|
|
match($0, /[0-9]+([.]?[0-9]+)+/)
|
|
printf("Sh-utils\t\t%s\n",
|
|
substr($0,RSTART,RLENGTH))
|
|
}'
|
|
|
|
udevadm --version 2>&1 |
|
|
awk '/[0-9]+([.]?[0-9]+)+/ && !/not found$/{
|
|
match($0, /[0-9]+([.]?[0-9]+)+/)
|
|
printf("Udev\t\t\t%s\n",
|
|
substr($0,RSTART,RLENGTH))
|
|
}'
|
|
|
|
iwconfig --version 2>&1 |
|
|
awk '/version/{
|
|
match($0, /[0-9]+([.]?[0-9]+)+/)
|
|
printf("Wireless-tools\t\t%s\n",
|
|
substr($0,RSTART,RLENGTH))
|
|
}'
|
|
|
|
test -e /proc/modules &&
|
|
sort /proc/modules |
|
|
sed '
|
|
s/ .*//
|
|
H
|
|
${
|
|
g
|
|
s/^\n/Modules Loaded\t\t/
|
|
y/\n/ /
|
|
q
|
|
}
|
|
d
|
|
'
|