Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(97)

Side by Side Diff: build/android/install_emulator_deps.py

Issue 116493002: build/android/install_emulator_deps.py: run kvm-ok as root when needed. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2013 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2013 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 """Installs deps for using SDK emulator for testing. 6 """Installs deps for using SDK emulator for testing.
7 7
8 The script will download the SDK and system images, if they are not present, and 8 The script will download the SDK and system images, if they are not present, and
9 install and enable KVM, if virtualization has been enabled in the BIOS. 9 install and enable KVM, if virtualization has been enabled in the BIOS.
10 """ 10 """
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
93 api_target, 'x86')) 93 api_target, 'x86'))
94 94
95 95
96 def CheckKVM(): 96 def CheckKVM():
97 """Check if KVM is enabled. 97 """Check if KVM is enabled.
98 98
99 Returns: 99 Returns:
100 True if kvm-ok returns 0 (already enabled) 100 True if kvm-ok returns 0 (already enabled)
101 """ 101 """
102 try: 102 try:
103 # Note: Running kvm-ok as root is recommended, but not required, to get
104 # better information in case of failure. I.e.:
105 #
106 # If root:
107 # - If /dev/kvm is available, returns 0 (success)
108 #
109 # - Otherwise, print information explaining whether the CPU
110 # supports KVM extensions, and whether they're disabled by the
111 # BIOS, then return 1 (failure).
112 #
113 # If _not_ root:
114 # - If /dev/kvm is available, returns 0 (success)
115 #
116 # - Otherwise, print a message asking to run it as root, and
117 # return 1 (failure).
118 #
119 # Here, there is no need to run it as root, but it is done in InstallKVM()
120 # below.
103 return not cmd_helper.RunCmd(['kvm-ok']) 121 return not cmd_helper.RunCmd(['kvm-ok'])
104 except OSError: 122 except OSError:
105 logging.info('kvm-ok not installed') 123 logging.info('kvm-ok not installed')
106 return False 124 return False
107 125
108 126
109 def GetSDK(): 127 def GetSDK():
110 """Download the SDK and unzip it into EMULATOR_SDK_ROOT.""" 128 """Download the SDK and unzip it into EMULATOR_SDK_ROOT."""
111 logging.info('Download Android SDK.') 129 logging.info('Download Android SDK.')
112 sdk_url = '%s/%s' % (SDK_BASE_URL, SDK_ZIP) 130 sdk_url = '%s/%s' % (SDK_BASE_URL, SDK_ZIP)
(...skipping 18 matching lines...) Expand all
131 if rc: 149 if rc:
132 logging.critical('ERROR: Did not install KVM. Make sure hardware ' 150 logging.critical('ERROR: Did not install KVM. Make sure hardware '
133 'virtualization is enabled in BIOS (i.e. Intel VT-x or ' 151 'virtualization is enabled in BIOS (i.e. Intel VT-x or '
134 'AMD SVM).') 152 'AMD SVM).')
135 # TODO(navabi): Use modprobe kvm-amd on AMD processors. 153 # TODO(navabi): Use modprobe kvm-amd on AMD processors.
136 rc = cmd_helper.RunCmd(['sudo', 'modprobe', 'kvm-intel']) 154 rc = cmd_helper.RunCmd(['sudo', 'modprobe', 'kvm-intel'])
137 if rc: 155 if rc:
138 logging.critical('ERROR: Did not add KVM module to Linux Kernal. Make sure ' 156 logging.critical('ERROR: Did not add KVM module to Linux Kernal. Make sure '
139 'hardware virtualization is enabled in BIOS.') 157 'hardware virtualization is enabled in BIOS.')
140 # Now check to ensure KVM acceleration can be used. 158 # Now check to ensure KVM acceleration can be used.
141 rc = cmd_helper.RunCmd(['kvm-ok']) 159 # Run as root to get better diagnostics in case of failure (see note in
160 # CheckKVM() above).
161 rc = cmd_helper.RunCmd(['sudo', 'kvm-ok'])
navabi 2013/12/16 19:43:08 Should we just call CheckKVM() here rather than do
digit1 2013/12/17 08:41:43 Actually, it looks like all /usr/sbin binaries sho
navabi 2013/12/17 21:31:04 I like that idea.
142 if rc: 162 if rc:
143 logging.critical('ERROR: Can not use KVM acceleration. Make sure hardware ' 163 logging.critical('ERROR: Can not use KVM acceleration. Make sure hardware '
144 'virtualization is enabled in BIOS (i.e. Intel VT-x or ' 164 'virtualization is enabled in BIOS (i.e. Intel VT-x or '
145 'AMD SVM).') 165 'AMD SVM).')
146 166
147 167
148 def GetX86Image(api_level=DEFAULT_ANDROID_API_LEVEL): 168 def GetX86Image(api_level=DEFAULT_ANDROID_API_LEVEL):
149 """Download x86 system image from Intel's website. 169 """Download x86 system image from Intel's website.
150 170
151 Args: 171 Args:
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
253 273
254 # Make sure KVM packages are installed and enabled. 274 # Make sure KVM packages are installed and enabled.
255 if CheckKVM(): 275 if CheckKVM():
256 logging.info('KVM already installed and enabled.') 276 logging.info('KVM already installed and enabled.')
257 else: 277 else:
258 InstallKVM() 278 InstallKVM()
259 279
260 280
261 if __name__ == '__main__': 281 if __name__ == '__main__':
262 sys.exit(main(sys.argv)) 282 sys.exit(main(sys.argv))
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698