Add better uname replacement.

Supports faking kernel release and supports ARM.
This commit is contained in:
Michael Tremer
2011-09-16 00:10:15 +02:00
parent afab70b199
commit ef6cd59b61
2 changed files with 34 additions and 4 deletions

View File

@@ -107,15 +107,13 @@ ifeq "$(ROOT)" ""
ln -sf test /bin/[
#ln -sf ../../bin/install /usr/bin
mv -f /bin/uname /bin/uname.bak
echo '#!/bin/bash' > /bin/uname
echo '/bin/uname.bak $$* | sed 's/i.86/$(MACHINE)/g'' >> /bin/uname
cp -vf $(DIR_SRC)/src/scripts/uname /bin/uname
chmod 755 /bin/uname
dircolors -p > /etc/dircolors
else
rm /tools/bin/hostname
mv -f /tools/bin/uname /tools/bin/uname.bak
echo '#!/bin/bash' > /tools/bin/uname
echo '/tools/bin/uname.bak $$* | sed 's/i.86/$(MACHINE)/g'' >> /tools/bin/uname
cp -vf $(DIR_SRC)/src/scripts/uname /tools/bin/uname
chmod 755 /tools/bin/uname
endif
@rm -rf $(DIR_APP)

32
src/scripts/uname Normal file
View File

@@ -0,0 +1,32 @@
#!/bin/sh
uname=
for i in /bin/uname.bak /tools/bin/uname.bak; do
if [ -x "$i" ]; then
uname=${i}
break
fi
done
if [ -z "${uname}" ]; then
exit 127
fi
machine=$(${uname} -m)
kernel=$(${uname} -r)
output=$(${uname} $@)
# Overwrite kernel version to hack kernel 3.x versions.
output=$(sed -e "s/${kernel}/${KVER}/g" <<<${output})
case "${machine}" in
arm*)
echo "${output}" | \
sed -e "s/armv.tej?l?/${MACHINE}/g"
;;
i?86)
echo "${output}" | \
sed -e "s/i.86/${MACHINE}/g"
;;
esac