 2fc8e7abb0
			
		
	
	
		2fc8e7abb0
		
	
	
	
	
		
			
			It's now handle dual VGA scenarios, got some other hardware related improvements, and some usage help text ;) And because I needed to check if a VM is exists or not just made a small check script: qvm-check This is really just a stripped down version of the existing qvm-* scripts..
		
			
				
	
	
		
			122 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			122 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/bash
 | |
| 
 | |
| # The Qubes OS Project, http://www.qubes-os.org
 | |
| #
 | |
| # Copyright (C) 2013  Laszlo Zrubecz <mail@zrubi.hu>
 | |
| #
 | |
| # This program is free software; you can redistribute it and/or
 | |
| # modify it under the terms of the GNU General Public License
 | |
| # as published by the Free Software Foundation; either version 2
 | |
| # of the License, or (at your option) any later version.
 | |
| #
 | |
| # This program is distributed in the hope that it will be useful,
 | |
| # but WITHOUT ANY WARRANTY; without even the implied warranty of
 | |
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | |
| # GNU General Public License for more details.
 | |
| #
 | |
| # You should have received a copy of the GNU General Public License
 | |
| # along with this program; if not, write to the Free Software
 | |
| # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 | |
| 
 | |
| if [[ -z "$1" ]] || [[ "$1" == "--help" ]] || [[ "$1" == "-q" ]]
 | |
|  then
 | |
|     echo ""
 | |
|     echo "This tool is used to gather hardware information for the Qubes HCL (Hardware Compatibility List)"
 | |
|     echo "and copy the Support Files to the given AppVM for the easy contribution..."
 | |
|     echo "If you do not want to copy them to any AppVM use 'dom0' as AppVM Name."
 | |
|     echo ""
 | |
|     echo -e "Usage:\tqubes-hcl-report <AppVM Name>"
 | |
|     echo ""
 | |
|     exit
 | |
| 
 | |
| else
 | |
|     /usr/bin/qvm-check -q $1
 | |
|     if [[ $? -eq 0 ]]
 | |
|      then
 | |
|         COPY2VM="$1"
 | |
|     else
 | |
|         echo -e "ERROR:\tAppVM with the name '$1' does not exist in the system!"
 | |
|         exit 1
 | |
|     fi
 | |
| fi
 | |
| 
 | |
| DATE=`date +%Y%m%d`
 | |
| 
 | |
| BRAND=`sudo dmidecode |grep -A9 "System Information" |grep "Manufacturer:" |cut -d ' ' -f2- |tr -s '[:blank:]' _`
 | |
| PRODUCT=`sudo dmidecode |grep -A9 "System Information" |grep "Product Name:" |cut -d ' ' -f3- |tr -s '[:blank:]' _`
 | |
| 
 | |
| if [[ $BRAND =~ "O.E.M" ]]
 | |
|  then
 | |
|     BRAND=`sudo dmidecode |grep -A9 "Base Board Information" |grep "Manufacturer:" |cut -d ' ' -f2- |tr -s '[:blank:]' _`
 | |
|     PRODUCT=`sudo dmidecode |grep -A9 "Base Board Information" |grep "Product Name:" |cut -d ' ' -f3- |tr -s '[:blank:]' _`
 | |
| fi
 | |
| 
 | |
| CPU=`sudo cat /proc/cpuinfo |grep "model name" |sort -u |cut -d ' ' -f3-`
 | |
| CHIPSET=`sudo lspci -nn |grep "00:00.0.*Host bridge"`
 | |
| VGA=`sudo lspci -nn |grep "VGA\|Display" | sed -e "s/^/\t\t/"`
 | |
| BIOS=`sudo dmidecode |grep -A9 "BIOS Information" |grep "Version" |cut -d ' ' -f2-`
 | |
| XLINFO=`sudo xl info |grep "virt_caps"`
 | |
| 
 | |
| FILENAME="Qubes-HCL-$BRAND-$PRODUCT-$DATE"
 | |
| 
 | |
| if [[ "$XLINFO" =~ "hvm_directio" ]]
 | |
|  then 
 | |
|     VTX="Active"
 | |
|     VTD="Active"
 | |
| 
 | |
|  elif [[ "$XLINFO" =~ "hvm" ]]
 | |
|  then
 | |
|     VTX="Active"
 | |
|     VTD="Not Active"
 | |
| 
 | |
|  else
 | |
|     VTX="Not Active"
 | |
|     VTD="Not Active"
 | |
| fi
 | |
| 
 | |
| sudo cat /etc/qubes-release |tee ~/$FILENAME.txt
 | |
| echo
 | |
| echo -e "Model Name:\t$BRAND $PRODUCT\n" |tee -a ~/$FILENAME.txt
 | |
| echo -e "CPU:\t\t$CPU" |tee -a  ~/$FILENAME.txt
 | |
| echo -e "Chipset:\t$CHIPSET" |tee -a ~/$FILENAME.txt
 | |
| echo -e "VGA:$VGA\n" |tee -a ~/$FILENAME.txt
 | |
| echo -e "BIOS:\t\t$BIOS" |tee -a ~/$FILENAME.txt
 | |
| echo -e "VT-x:\t\t$VTX" |tee -a ~/$FILENAME.txt
 | |
| echo -e "VT-d:\t\t$VTD" |tee -a ~/$FILENAME.txt
 | |
| echo
 | |
| 
 | |
| TEMP_DIR=`mktemp -d`
 | |
| sudo cat /etc/qubes-release > $TEMP_DIR/qubes-release
 | |
| sudo cat /proc/cpuinfo > $TEMP_DIR/cpuinfo
 | |
| sudo lspci -nnvk > $TEMP_DIR/lspci
 | |
| sudo dmidecode > $TEMP_DIR/dmidecode
 | |
| sudo xl info > $TEMP_DIR/xl
 | |
| 
 | |
| 
 | |
| # cpio
 | |
| cd $TEMP_DIR
 | |
| find -print0 |cpio --quiet -o -H crc --null |gzip  >~/$FILENAME.cpio.gz
 | |
| cd
 | |
| 
 | |
| 
 | |
| # VM check
 | |
| if [[ "$COPY2VM" != "dom0" ]]
 | |
|  then
 | |
|     # Copy to VM
 | |
|     qvm-start -q $COPY2VM 2>/dev/null
 | |
|     cat ~/$FILENAME.cpio.gz | qvm-run -a -q --pass-io $COPY2VM "cat >/home/user/$FILENAME.cpio.gz"
 | |
|     cat ~/$FILENAME.txt | qvm-run -a -q --pass-io $COPY2VM "cat >/home/user/$FILENAME.txt"
 | |
| fi
 | |
| 
 | |
| echo -e "Qubes HCL Support files are copied to: '$COPY2VM'"
 | |
| echo -e "\t$FILENAME.txt\t\t- HCL Info"
 | |
| echo -e "\t$FILENAME.cpio.gz\t- HCL Support Files"
 | |
| 
 | |
| 
 | |
| # cleanup
 | |
| if [[ -d $TEMP_DIR ]]
 | |
|  then
 | |
|     rm -rf $TEMP_DIR
 | |
| fi
 | |
| 
 |