--- trunk/hwinfo/emulate-hwsetup.sh 2015/07/24 07:54:04 2676 +++ trunk/hwinfo/emulate-hwsetup.sh 2015/07/24 10:47:30 2677 @@ -45,6 +45,56 @@ return 0 } +get_gfxcard_sysfsid_from_specific_hwid() +{ + local SEARCH_ID="$1" + local hwid + local sysfsid + local counter + + declare -i counter=0 + + echo "${GFXCARD_INFO}" | while read line + do + # get hwinfo device id, its always the first line + if [[ ${counter} = 0 ]] + then + # hwids begins all with ^ID:, sub informations have an empty space + hwid=$(echo "${line}" | grep '^[0-9].*' | sed 's:\(^[0-9]*\)\:\ .*:\1:') + fi + + # search for device id + if [[ ${SEARCH_ID} = ${hwid} ]] + then + case "${line}" in + *'SysFS ID:'*) + # subst the id + sysfsid="${line#*:}" + # trim spaces + sysfsid="${sysfsid// }" + echo "${sysfsid}" + ;; + esac + fi + + # next hardware item + if [[ -z ${line} ]] + then + counter=0 + else + ((counter++)) + fi + done +} + +get_primary_display_hwid() +{ + local hwid + hwid="$(echo "${GFXCARD_INFO}" | grep 'Primary display adapter:' | sed 's:.*\:\ \#\([0-9]*\):\1:')" + echo "${hwid}" +} + + # disable probeonly, load all modules by default probeonly=0 @@ -63,6 +113,12 @@ echo -n "Autoconfiguring devices... " 1>&2 GFXCARD_INFO="$(${HWINFO} --gfxcard)" +# check for a primary device and rerun hwinfo for this device only +primary_display_hwid="$(get_primary_display_hwid)" +if [[ -n ${primary_display_hwid} ]] +then + GFXCARD_INFO="$(${HWINFO} --gfxcard --only $(get_gfxcard_sysfsid_from_specific_hwid ${primary_display_hwid}))" +fi NETCARD_INFO="$(${HWINFO} --netcard)" MOUSE_INFO="$(${HWINFO} --mouse)"