Magick Rotation on Acer W500

Asked by hoboscience

So I'm anxious to begin using Magick Rotation but I can't seem to figure out why its not working. I run the MAGICK-INSTALL and everything installs fine but thats as far as this story goes. I have tried both the automatic and manual installs and get the same results....NOTHING. I have read about the success stories people have with the W500 and Magick Rotation so I figure I must be overlooking something simple. I know after the install there should be a green arrow in the panel bar but like I said. I get nothing. A little help would be great.

Question information

Language:
English Edit question
Status:
Open
For:
Magick Rotation Edit question
Assignee:
Favux Edit question
Last query:
Last reply:
Revision history for this message
Favux (favux-is) said :
#1

Hi hoboscience,

I'm glad you asked. I've been curious ever since I saw the video by Kathleenhenri as to how Magick Rotation worked on the Acer Iconia W500. I should rewatch it I suppose.

It sounds like the install went OK as far as that goes. Assuming you still have Magick installed open a terminal and change directory to it:
    cd /usr/share/magick-rotation

I suspect the new install check in magick-rotation is the problem. Since there isn't a udev rule for Acer's I suspect it will complain about not finding 62-magick.rules. Let's confirm that. In the terminal what is the output of?
    python2 magick-rotation

Flying a little blind because you haven't told me what release of Ubuntu or other Distro you are using or what version of Magick.

Revision history for this message
hoboscience (sciencehobo) said :
#2

Hi Favux,
Thanks for the response.

Well after running "python2 magick-rotation" I am prompted
"Please install 62-magick.rules in /etc/udev/rules.d.
I have confirmed that 62-magick.rules is in the folder and so it did copy during the installation.

I have been toying with this program for a few weeks now off and on. I have attempted magick-rotation on Ubuntu versions 11.10, 12.04, 12.10 and fedora versions 16 and 17. All leading to the same results. The program installs but doesn't work. I have tested with Magick versions 6.2 and 6.1.

I have only been testing on 32 bit distros and currently running Ubuntu 12.10 / Magick 6.2

Thanks

Revision history for this message
Favux (favux-is) said :
#3

Without Magick running does the Acer tablet change screen orientation when you rotate the tablet? But touch doesn't rotate to follow the screen orientation? Oh, and it is a slate, correct?

Let's modify the install check.
    gksudo gedit /usr/share/magick-rotation/magick-rotation

First at the bottom of the magick-rotation file comment it out.:

# if os.path.exists("/dev/input/magick-rotation"):
# if os.path.exists("/usr/bin/" + checkmagick_version):
# magick = engine()
# magick.run()
# elif os.path.exists(path + "/" + checkmagick_version):
# magick = engine()
# magick.run()
# else:
# print "Please compile checkmagick."
# print "See INSTALLER.txt in the unpacked magick-rotation folder."
# else:
# print "Please install 62-magick.rules in /etc/udev/rules.d."
# print "See INSTALLER.txt in the unpacked magick-rotation folder."

Then add below it just a checkmagick check:

    if os.path.exists("/usr/bin/" + checkmagick_version):
        magick = engine()
        magick.run()

Make sure the indentations are the same.

The Magick Rotation icon should be in the system tray after a restart. What happens when you rotate now?

Revision history for this message
hoboscience (sciencehobo) said :
#4

Thanks! Were getting closer....the MagickRotation Arrow is now appearing in the system tray. Unfortunately nothing happens when I rotate the slate..(yes it is a slate). So where should we go from here?

Revision history for this message
Favux (favux-is) said :
#5

So the screen orientation doesn't change when you rotate the slate whether or not Magick is running?

Open a terminal and to rotate to right portrait try:
    xrandr -o right
Back to normal would be:
    xrandr -o normal
Does touch rotate with screen orientation? If not use:
    /usr/share/magick-rotation/xrotate.py right
and for normal:
    /usr/share/magick-rotation/xrotate.py normal
Described in Magick-README.txt under XROTATE.PY. Does touch rotate now?

Revision history for this message
hoboscience (sciencehobo) said :
#6

Well unforturnately yes, the slate screen does not rotate when Magick is running. I would be okay with that and only use the launchers but again unfortunately...even these are not working propertly (but only with touch). The screen rotates as it should, this works great. And if I use a mouse the cursor is where it should be but it's when I try with the touchscreen, the cursor is on opposite sides from where I touched.

Revision history for this message
Favux (favux-is) said :
#7

I can't follow what you are telling me. Could you unpack it a little?
 What works when?

What is the output of 'xinput list' in a terminal? Have you
installed a driver for the touchscreen? If so what driver?

Revision history for this message
hoboscience (sciencehobo) said :
#8

Sorry, I'll be more clear.

xinputlist:

⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ SONiX USB Keyboard id=12 [slave pointer (2)]
⎜ ↳ eGalaxTouch Virtual Device for Single id=15 [slave pointer (2)]
⎜ ↳ eGalaxTouch Virtual Device for Multi id=16 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
    ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
    ↳ Power Button id=6 [slave keyboard (3)]
    ↳ Video Bus id=7 [slave keyboard (3)]
    ↳ Power Button id=8 [slave keyboard (3)]
    ↳ 1.3M Rear id=9 [slave keyboard (3)]
    ↳ 1.3M Front id=10 [slave keyboard (3)]
    ↳ SONiX USB Keyboard id=11 [slave keyboard (3)]
    ↳ AT Translated Set 2 keyboard id=13 [slave keyboard (3)]
    ↳ Acer WMI hotkeys id=14 [slave keyboard (3)]

So these are the symptoms
Slate does not rotate automatically when it's rotated.

Using "xrandr -o right" and " xrotate.py right" rotates the screen but the touch points on the screen do not calibrate properly. EX. if I click on the bottom right of the screen it's registered in the top right. If I click in the bottom left its registered on the bottom right. Top right registers on the top left. and the top left registers on the bottom left. Switching back to normal mode the calibrations are not corrected.

I have not installed any video drivers on this machine. The only driver I'm using is the one ubuntu must have assigned when I installed.

Hope that helps

Revision history for this message
Favux (favux-is) said :
#9

Okay, thanks.

I'm guessing the others had touch on evdev and maybe you don't. Let's find out. What's the output of?
    xinput list-props 15
and also use 16. Do you have single or multi finger touch.

Revision history for this message
hoboscience (sciencehobo) said :
#10

xinput list-props 15:

Device 'eGalaxTouch Virtual Device for Single':
 Device Enabled (136): 1
 Coordinate Transformation Matrix (138): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
 Device Accel Profile (260): 0
 Device Accel Constant Deceleration (261): 1.000000
 Device Accel Adaptive Deceleration (262): 1.000000
 Device Accel Velocity Scaling (263): 10.000000
 Device Product ID (253): 3823, 16
 Device Node (254): "/dev/input/event15"
 Evdev Axis Inversion (264): 0, 0
 Evdev Axis Calibration (265): <no items>
 Evdev Axes Swap (266): 0
 Axis Labels (267): "Abs X" (325), "Abs Y" (326)
 Button Labels (268): "Button Left" (139), "Button Unknown" (256), "Button Right" (141), "Button Wheel Up" (142), "Button Wheel Down" (143)
 Evdev Middle Button Emulation (269): 0
 Evdev Middle Button Timeout (270): 50
 Evdev Third Button Emulation (271): 0
 Evdev Third Button Emulation Timeout (272): 1000
 Evdev Third Button Emulation Button (273): 3
 Evdev Third Button Emulation Threshold (274): 20
 Evdev Wheel Emulation (275): 0
 Evdev Wheel Emulation Axes (276): 0, 0, 4, 5
 Evdev Wheel Emulation Inertia (277): 10
 Evdev Wheel Emulation Timeout (278): 200
 Evdev Wheel Emulation Button (279): 4
 Evdev Drag Lock Buttons (280): 0

xinput list-props 16:

Revision history for this message
hoboscience (sciencehobo) said :
#11

xinput list-props 16:

Device 'eGalaxTouch Virtual Device for Multi':
 Device Enabled (136): 1
 Coordinate Transformation Matrix (138): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
 Device Accel Profile (260): 0
 Device Accel Constant Deceleration (261): 1.000000
 Device Accel Adaptive Deceleration (262): 1.000000
 Device Accel Velocity Scaling (263): 10.000000
 Device Product ID (253): 3823, 32
 Device Node (254): "/dev/input/event14"
 Evdev Axis Inversion (264): 0, 0
 Evdev Axis Calibration (265): <no items>
 Evdev Axes Swap (266): 0
 Axis Labels (267): "Abs MT Position X" (337), "Abs MT Position Y" (338), "Abs MT Pressure" (339), "None" (0), "None" (0), "None" (0)
 Button Labels (268): "Button Unknown" (256), "Button Unknown" (256), "Button Unknown" (256), "Button Wheel Up" (142), "Button Wheel Down" (143)
 Evdev Middle Button Emulation (269): 0
 Evdev Middle Button Timeout (270): 50
 Evdev Third Button Emulation (271): 0
 Evdev Third Button Emulation Timeout (272): 1000
 Evdev Third Button Emulation Button (273): 3
 Evdev Third Button Emulation Threshold (274): 20
 Evdev Wheel Emulation (275): 0
 Evdev Wheel Emulation Axes (276): 0, 0, 4, 5
 Evdev Wheel Emulation Inertia (277): 10
 Evdev Wheel Emulation Timeout (278): 200
 Evdev Wheel Emulation Button (279): 4
 Evdev Drag Lock Buttons (280): 0

I am using multitouch. You should also know I am using EGalax's "eGtouch" multitouch drivers

Revision history for this message
Favux (favux-is) said :
#12

Let's see if I can explain this clearly enough.

When you first posted I checked the kernel source code looking at acer-wmi.c. That's in /drivers/platform/x86. Like before I didn't see anything for a hinge switch or accelerometer. And especially not in "Acer WMI hotkeys" (from 'xinput list') which is what Magick would be set up to read.

But if they were essentially using xrotate.py as a stand alone script why didn't they say so? Depending on what kernel they had and so which eGalax kernel driver they may have only had single finger touch. And that may be why xrotate.py worked for them but doesn't work for you. Because with eGTouch_v2.5.2107.L-x you also have multi-touch available and so two entries in 'xinput list' and xrotate.py probably isn't parsing between the two.

Quickly scanning eGTouch_v2.5.2107.L-x it appears to have two components. The kernel driver and a X driver. If there is a X driver why are you the on evdev X driver? Magick looks for either an input device on the Wacom or evdev X driver. I would think the eGalax X driver would have a diferent name. Because it is proprietary the source code isn't available to help figure things out.

The PDF in eGTouch_v2.5.2107.L-x talks about an .ini file in /etc, /etc/eGTouchL.ini. Do you have that installed on your system?

The reason I ask is you want rotation based on the slate's accelerometer, which I assume the Iconia has. I notice that the driver includes an .ini setting for rotation that is apparently off by default:
DetectRotation 0
To turn it on you would change it to:
DetectRotation 1

Maybe the driver contains a daemon to monitor the accelerometer? Does anything change if you turn it on?

Bottom line is if you can find whether or not the accelerometer reports rotation state and where, you should be able to use that for a rotation script. Two of the four convertible tablet PC brands Magick supports report tablet hinge state in a file at /sys/devices/platform in the wmi or acpi. Example /sys/devices/platform/hp-wmi/tablet. Then you can just cat the tablet file to find out if in tablet or laptop mode. All four report that through the hotkeys which is why Magick uses hotkeys.

There is someone looking at adding accelerometer support code to Magick.
https://bugs.launchpad.net/magick-rotation/+bug/1056894

Revision history for this message
hoboscience (sciencehobo) said :
#13

Thanks for explaining all this too me. Reading that was helpful in understanding exactly why this isn't working. So the culprit must be my eGalax driver. Well dangit, but that explains a lot.

I did what you suggested and turned on DetectRotation. Doing this fails the touch driver and I get an error when trying to open the eGalax config tool. "Get info fail! Please check the eGTouch daemon is loaded".

So i'll do as you recommended and research into whether the accelerometer reports any rotation and I'll keep you posted. Thanks for your patience with this. It was very helpful.

Can you help with this problem?

Provide an answer of your own, or ask hoboscience for more information if necessary.

To post a message you must log in.