Changeset 469 in flair-src for trunk/scripts
- Timestamp:
- Mar 10, 2022, 10:50:29 AM (3 years ago)
- Location:
- trunk/scripts
- Files:
-
- 2 edited
- 2 copied
Legend:
- Unmodified
- Added
- Removed
-
trunk/scripts/distribution_specific_hack.sh
r365 r469 1 #check required version of a lib in host graphic lib (ie i965) 2 #return 1 if robomap3 version is not sufficient 3 function check_required_lib_ver () { 4 DRIVER_LIB=$1 5 PATTERN=$2 6 LIB=$3 1 #!/bin/bash 7 2 8 #get the highest required version of $PATTERN 9 VER_REQUIRED=$(objdump -T $DRIVER_LIB | grep $PATTERN | sed -e 's/.*'$PATTERN'_\(.*\) .*/\1/' | sort -uV | tail -1) 10 #get currently used $LIB 11 LIB_PROVIDED=$(ldd $EXEC | grep $LIB | sed -e 's/.*=> \(.*\) (.*/\1/') 12 #get the highest version of $PATTERN supported by the $LIB 13 VER_PROVIDED=$(objdump -T $LIB_PROVIDED | grep ".*"$PATTERN"_[0-9.]*$" | sed -e 's/.*'$PATTERN'_\(.*\)/\1/' | sort -V | tail -1) 14 if [ $(echo -e "$VER_PROVIDED\n$VER_REQUIRED" | sort -V | tail -n1) != $VER_PROVIDED ]; then 15 echo "We must use the local system $LIB" 16 return 1 17 fi 3 function red_echo () { 4 echo -e "\033[33m$1\033[0m" 18 5 } 19 6 20 function green_echo () { 21 echo -e "\033[32m$1\033[0m" 22 } 23 24 if [ -f /etc/lsb-release ]; then 25 . /etc/lsb-release 26 fi 27 28 #also needed in mint, but for different reason? 29 #if not in sudo in mint, simlator does not work cause of: 30 #libGL: MESA-LOADER: failed to open /usr/lib/x86_64-linux-gnu/dri/iris_dri.so: /usr/lib/x86_64-linux-gnu/dri/iris_dri.so: failed to map segment from shared object 31 32 #if [ _$DISTRIB_ID = _Ubuntu ]; then 33 #tested on Ubuntu 17.10 34 #we must run as root 35 if [ $EUID -ne 0 ]; then 36 exec sudo -E $0 $* 37 fi 38 39 #we must run in root cgroup to escape possible restrictions on scheduling 40 if [ -d /sys/fs/cgroup/cpu ]; then 41 echo $$ > /sys/fs/cgroup/cpu/tasks 42 fi 43 44 #fi 45 46 #special actions if we use 3D 47 ldd $EXEC | grep "libGL.so" > /dev/null 48 if [ $? -eq 0 ]; then 49 green_echo "checking for incompatibility when using libGL and trying to solve it..." 50 #allow root access to the X server 51 xhost si:localuser:root 52 53 #Mesa DRI driver may need a lib more recent than robomap3's 54 ldconfig -p | grep mesa > /dev/null 55 if [ $? -eq 0 ]; then 56 read DRI_CARD_MAJOR DRI_CARD_MINOR < <(stat -c '%t %T' /dev/dri/card0) 57 DRIVER=$(cat /sys/dev/char/$((16#$DRI_CARD_MAJOR)):$((16#$DRI_CARD_MINOR))/device/uevent | grep DRIVER | cut -d= -f2) 58 echo "Mesa DRI driver is $DRIVER" 59 DRIVER_LIB=$(LIBGL_DEBUG=verbose glxinfo 2>&1 | grep "\.so" | tail -n 1 | grep -o '/.*\.so') 60 61 #todo: make a list, find a complete one! 62 check_required_lib_ver $DRIVER_LIB GLIBC libm.so.6 63 if [ "$?" = "1" ]; then 64 ADDED_LIBS=$(ldconfig -p | grep libm.so.6 | grep libc6,x86-64 | cut -d'>' -f2) 65 fi 66 67 check_required_lib_ver $DRIVER_LIB CXXABI libstdc++.so.6 68 if [ "$?" = "1" ]; then 69 ADDED_LIBS="$ADDED_LIBS:$(ldconfig -p | grep libstdc++.so.6 | grep libc6,x86-64 | cut -d'>' -f2)" 70 fi 71 72 #remove whitespace 73 #add libs to LD_PRELOAD if version robomap3 version is not sufficient 74 export LD_PRELOAD="$(echo -e "${ADDED_LIBS}" | tr -d '[:space:]')" 75 fi 76 77 #check if using DRI3 and disable it 78 #otherwise you get /usr/lib/x86_64-linux-gnu/libGLX_mesa.so.0: undefined symbol: xcb_dri3_get_supported_modifiers 79 cat /var/log/Xorg.0.log | grep DRI3 > /dev/null 80 if [ $? -eq 0 ]; then 81 export LIBGL_DRI3_DISABLE=1 82 echo "we must disable DRI3" 83 fi 84 green_echo "...done\n" 85 fi 86 87 88 7 red_echo "Calling distribution_specific_hack.sh is no longer necessary; this script now does nothing" 8 red_echo "If you encounter problems running your program, call the distribution_specific_hack_compat.sh script and warn a Flair developer\n" -
trunk/scripts/distribution_specific_hack_compat.sh
r467 r469 21 21 echo -e "\033[32m$1\033[0m" 22 22 } 23 24 function red_echo () { 25 echo -e "\033[33m$1\033[0m" 26 } 27 28 red_echo "Calling distribution_specific_hack_compat.sh should not be necessary; try without it or warn a Flair developer" 29 red_echo "This script will be removed in future releases\n" 23 30 24 31 if [ -f /etc/lsb-release ]; then -
trunk/scripts/ubuntu_cgroup_hack.sh
r306 r469 1 if [ -f /etc/lsb-release ]; then 2 . /etc/lsb-release 3 fi 1 #!/bin/bash 4 2 5 if [ _$DISTRIB_ID == _Ubuntu ]; then 6 #we must run as root 7 if [ $EUID -ne 0 ]; then 8 exec sudo -E $0 $* 9 fi 3 function red_echo () { 4 echo -e "\033[33m$1\033[0m" 5 } 10 6 11 #we must run in root cgroup to escape possible restrictions on scheduling12 if [ -d /sys/fs/cgroup/cpu ]; then13 echo $$ > /sys/fs/cgroup/cpu/tasks14 fi15 fi16 7 8 red_echo "Calling ubuntu_cgroup_hack.sh is no longer necessary; this script now does nothing" 9 red_echo "If you encounter problems running your program, call the ubuntu_cgroup_hack_compat.sh script and warn a Flair developer" -
trunk/scripts/ubuntu_cgroup_hack_compat.sh
r467 r469 1 function red_echo () { 2 echo -e "\033[33m$1\033[0m" 3 } 4 1 5 if [ -f /etc/lsb-release ]; then 2 6 . /etc/lsb-release … … 15 19 fi 16 20 21 red_echo "Calling distribution_specific_hack_compat.sh should not be necessary; try without it or warn a Flair developer" 22 red_echo "This script will be removed in future releases\n"
Note:
See TracChangeset
for help on using the changeset viewer.