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

Unified Diff: fixup_image_for_qemu.py

Issue 6749020: Do not enable the use_tablet flag in qemu, as this breaks the mouse. (Closed) Base URL: ssh://gitrw.chromium.org:9222/crosutils.git@master
Patch Set: Remove fixup_image_for_qemu.py entirely. Created 9 years, 9 months 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | image_to_vm.sh » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: fixup_image_for_qemu.py
diff --git a/fixup_image_for_qemu.py b/fixup_image_for_qemu.py
deleted file mode 100755
index 4c21e2b376867c4fcd60d22850f5074038ef0288..0000000000000000000000000000000000000000
--- a/fixup_image_for_qemu.py
+++ /dev/null
@@ -1,112 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-"""Makes changes to mounted Chromium OS image to allow it to run with VMs
-
-This script changes two files within the Chromium OS image to let the image
-work with VMs, particularly QEMU
-
-Currently this script does the following,
-1.) Modify the post install script to remove EFI fixup section; the VM's we
-support don't have EFI support anyway and this section of the script needs
-access to the actual device drives
-
-2.) For QEMU/KVM, we change the xorg.conf to remove mouse support and instead
-change it to complete tablet support. This is done to provide better mouse
-response in the VM since tablets work of absolute coordinates while the mouse
-works of relative. In a screen that doesn't support a mouse grab (e.g., VNC),
-relative coordinates can cause the mouse to be flaky
-
-"""
-
-from optparse import OptionParser
-import os
-import stat
-import sys
-
-USAGE = "usage: %prog --mounted_dir=directory --enable_tablet=[true]"
-
-INPUT_SECTION_MARKER = r'Section "InputDevice"'
-SECTION_END_MARKER = r'EndSection'
-
-MOUSE_SECTION_IDENTIFIERS = []
-MOUSE_SECTION_IDENTIFIERS += ['Identifier "Mouse']
-MOUSE_SECTION_IDENTIFIERS += ['Identifier "USBMouse']
-
-REPLACE_USB_MOUSE_PAIR = ('InputDevice "USBMouse" "AlwaysCore"', '')
-XORG_CONF_FILENAME = os.path.join('etc', 'X11', 'xorg.conf')
-
-
-TABLET_DEVICE_CONFIG = """
-Section "InputDevice"
- Identifier "Mouse1"
- Driver "evdev"
- Option "Device" "/dev/input/event2"
- Option "CorePointer" "true"
-EndSection
-"""
-
-
-# Modify the xorg.conf file to remove all mouse sections and replace it
-# with ours containing the tablet - note: when running under QEMU, you
-# *need* to specify the -usbdevice tablet option to get the mouse to work
-def FixXorgConf(mount_point):
- xorg_conf_filename = os.path.join(mount_point, XORG_CONF_FILENAME)
- f = open(xorg_conf_filename, 'r')
- xorg_conf = f.read()
- f.close()
-
- more_sections = 1
- last_found = 0
- while (more_sections):
- # Find the input section.
- m1 = xorg_conf.find(INPUT_SECTION_MARKER, last_found)
- if m1 > -1:
- m2 = xorg_conf.find(SECTION_END_MARKER, m1)
- m2 += len(SECTION_END_MARKER)
- # Make sure the next iteration doesn't rinse/repeat.
- last_found = m2
- # Check if this is a mouse section.
- for ident in MOUSE_SECTION_IDENTIFIERS:
- if xorg_conf.find(ident, m1, m2) != -1:
- xorg_conf = xorg_conf[0:m1] + xorg_conf[m2:]
- last_found -= (m2-m1)
- break
- else:
- more_sections = 0
-
- xorg_conf = xorg_conf[0:last_found] + TABLET_DEVICE_CONFIG + \
- xorg_conf[last_found:]
-
- # Replace UsbMouse with Tablet.
- xorg_conf = xorg_conf.replace(REPLACE_USB_MOUSE_PAIR[0],
- REPLACE_USB_MOUSE_PAIR[1])
-
- # Write the file back out.
- f = open(xorg_conf_filename, 'w')
- f.write(xorg_conf)
- f.close()
-
-def main():
- parser = OptionParser(USAGE)
- parser.add_option('--mounted_dir', dest='mounted_dir',
- help='directory where the Chromium OS image is mounted')
- parser.add_option('--enable_tablet', dest='enable_tablet',
- default="true",
- help='fixup image for qemu')
- (options, args) = parser.parse_args()
-
- if not options.mounted_dir:
- parser.error("Please specify the mount point for the Chromium OS image");
- if options.enable_tablet not in ('true', 'false'):
- parser.error("Please specify either true or false for --enable_tablet")
-
- if (options.enable_tablet == 'true'):
- FixXorgConf(options.mounted_dir)
-
-
-if __name__ == '__main__':
- main()
« no previous file with comments | « no previous file | image_to_vm.sh » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698