pfps / yoga-laptop

Systems and information to make Lenovo Yoga laptops work better
GNU General Public License v3.0
156 stars 30 forks source link

Linux driver in Fedora 19-21 crashing after few seconds after the orientation program is started #41

Open mehanzhi opened 9 years ago

mehanzhi commented 9 years ago

Hello,

Every time I start the orientation program a driver crashes and the devices under /sys/bus/iio/devices/iio disappear. I cannot start the orientation program again until I reboot. Will this be fixed if I install the drivers from this git instead of using the ones in the kernel? If so which module should I block from loading?

Thanks

pfps commented 9 years ago

-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256

The drivers in the distribution are for older releases. They should not be needed in current Fedora.

I'm currently running Fedora 21 on a Yoga 2 Pro, and I'm not having any problems with the orientation program. (That said, the new kernel 4.0.4 is causing lots of OOPS.)

peter

On 06/14/2015 10:46 PM, mehanzhi wrote:

Hello,

Every time I start the orientation program a driver crashes and the devices under /sys/bus/iio/devices/iio disappear. I cannot start the orientation program again until I reboot. Will this be fixed if I install the drivers from this git instead of using the ones in the kernel? If so which module should I block from loading?

Thanks

— Reply to this email directly or view it on GitHub https://github.com/pfps/yoga-laptop/issues/41.

-----BEGIN PGP SIGNATURE----- Version: GnuPG v2

iQEcBAEBCAAGBQJVfmmMAAoJECjN6+QThfjzpjoH/jhdrTDIks1hmxOPiUBgeFmE bYLJmkzPZA4m5mfnXMLHC0TpHdmZQ8MzwdxbyT4UqvwASNfskwAuX7U8ueLeyIzr dggbkvUg4ZcYQSdHwceo1h2xy11GtgoGKeC5eQR8ngm3mzjZu5iigAlFA5mtj1r4 5XdANTgAgS4fZL662PnhqVb69wlCc7FmZcOKT+EO0QQwLMFJB7fw3F3Mx04ytRSv hCQV6Nsf8GgX24nu8usUk6M/dS/tX7LJGKJ6vYchRXkOE45EGkS+bTRDhqi1hXm8 LTYCNpGtBjv18DJd5+IuZhPFRgNb9v1Siu+4L5YSEniadHQM9qABrGZYpj+Gdzc= =moMq -----END PGP SIGNATURE-----

mehanzhi commented 9 years ago

Hmm,

I'm running Fedora 20 on Yoga 13 core i3 with kernel 3.19.8-100.fc20.x86_64

Later today I'll trace the issue and I'll provide you logs and output from the shell.

Thanks.

pfps commented 9 years ago

-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256

Hmm.

I expect that this is indeed a driver issue, but that switching to the drivers I put together would not make a difference.

One thing that you could try is to run generic_buffer -c 10 -n gyro_3d Limited documentation is in docs/Generic_buffer

peter

On 06/14/2015 11:47 PM, mehanzhi wrote:

Hmm,

I'm running Fedora 20 on Yoga 13 core i3 with kernel 3.19.8-100.fc20.x86_64

Later today I'll trace the issue and I'll provide you logs and output from the shell.

Thanks.

— Reply to this email directly or view it on GitHub https://github.com/pfps/yoga-laptop/issues/41#issuecomment-111953342.

-----BEGIN PGP SIGNATURE----- Version: GnuPG v2

iQEcBAEBCAAGBQJVftKBAAoJECjN6+QThfjznKkH/3cwRuSLIIMd9itcaiOjiA5l +HbMMpZTrsVQGeCDs5hodB9Eu7A7nw0qtkRJhANihcYmoRChlXesjEo19QDzF7M2 jvzXrKZhLLxqRzQuxS6Fv+FobZKca1wQtwN8zjze+0lmS90UKXtRchDPLrX5Z303 QP4k6BotKEIsFQqnjCyJzJQNIe0l2KBcTTpiNlKieHaDLn5+78QQA/KFfJhaRcAP NCu4DyX/PDKMbwJ4nSqjBGaTpWcJ5gOXYb8hQ28PLAK9oAE7zzJiiEDnPK5cVi8K hHkuuwfuq+4tkm590KzdnbZbBKmGSjSrZiw2jepq7vdVFwOp/sUJ4fHBbOdahTI= =OI0s -----END PGP SIGNATURE-----

mehanzhi commented 9 years ago

Hello,

This time I ran setup and got it stuck on this: root@localhost sensors]# ./setup iio device number being used is 1 iio trigger number being used is 1

Strace the process was also stuck:

[root@localhost ~]# ps -ef |grep -i orientation |grep -v grep root 5296 5287 0 20:09 pts/0 00:00:00 ./orientation --usleep=500000 [root@localhost ~]# strace -p 5296 Process 5296 attached restart_syscall(<... resuming interrupted call ...>

Rebooted and tried your suggestion:

[root@localhost sensors]# [root@localhost sensors]# ./generic_buffer -c 10 -n gyro_3d iio device number being used is 4 iio trigger number being used is 4 DEV_DIR_NAME /sys/bus/iio/devices/iio:device4 TRIGGER_NAME gyro_3d-dev4 SCAN_SIZE 12

Also stucked

And strace shows:

[root@localhost ~]# ps -ef |grep generic |grep -v grep root 3202 3058 0 20:21 pts/0 00:00:00 ./generic_buffer -c 10 -n gyro_3d [root@localhost ~]# strace -p 3202 Process 3202 attached restart_syscall(<... resuming interrupted call ...>

Stuck here.

Could you please advice how did you make it work?

Thanks

pfps commented 9 years ago

-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256

As you are not on a Yoga 2 Pro, it is very likely that the sensor hub in your laptop needs a quirk that has not been added to the Linux driver.

You need to identify the sensor hub via lsusb. On a Yoga 2 Pro the hub is

idefix ~> lsusb [...] Bus 001 Device 005: ID 2047:0855 Texas Instruments Invensense Embedded MotionApp HID Sensor [...]

You will have to figure out which USB device is your sensor.

Then you should install what you need to do kernel driver development and get the current hid-sensor-hub.c and hid-ids.h. (It's been quite a while since I did this so your best bet is to get the Fedora documentation on how to proceed.) You need to add your numbers to hid-ids.h and add to sensor_hub_devices in hid-sensor-hub.c to mirror what I did for 2047 and

  1. Then compile and install your new driver and test things out.

If that works, then the next step would be to upload the patch for inclusion in upcoming versions of the Linux kernel. I think I can remember the steps for that.

Note that messing around with the kernel can cause problems, up to frying hardware. The likelihood of doing this with a simple quirk is very low, of course.

Good luck,

peter

PS: I should really remove the drivers in the distribution. They are very old in Linux terms now.

On 06/15/2015 10:24 AM, mehanzhi wrote:

Hello,

This time I ran setup and got it stuck on this: root@localhost sensors]# ./setup iio device number being used is 1 iio trigger number being used is 1

Strace the process was also stuck:

[root@localhost ~]# ps -ef |grep -i orientation |grep -v grep root 5296 5287 0 20:09 pts/0 00:00:00 ./orientation --usleep=500000 [root@localhost ~]# strace -p 5296 Process 5296 attached restart_syscall(<... resuming interrupted call ...>

Rebooted and tried your suggestion:

[root@localhost sensors]# [root@localhost sensors]# ./generic_buffer -c 10 -n gyro_3d iio device number being used is 4 iio trigger number being used is 4 DEV_DIR_NAME /sys/bus/iio/devices/iio:device4 TRIGGER_NAME gyro_3d-dev4 SCAN_SIZE 12

Also stucked

And strace shows:

[root@localhost ~]# ps -ef |grep generic |grep -v grep root 3202 3058 0 20:21 pts/0 00:00:00 ./generic_buffer -c 10 -n gyro_3d [root@localhost ~]# strace -p 3202 Process 3202 attached restart_syscall(<... resuming interrupted call ...>

Stuck here.

Could you please advice how did you make it work?

Thanks

— Reply to this email directly or view it on GitHub https://github.com/pfps/yoga-laptop/issues/41#issuecomment-112146112.

-----BEGIN PGP SIGNATURE----- Version: GnuPG v2

iQEcBAEBCAAGBQJVgFcDAAoJECjN6+QThfjzslsH/i+oOsGcYFg4RuYIu9cs6hcK tMEYp/qYSpaAlqhygbP05pwTekhFGXqgMWsdKHfJPbI0JfWmfwbufu+beEhTlWOW nuIIBR3CT9YySMVZzR+EJtdcWfDUEWPVw+D+0o40rEkr5AxswotGhi1eEBprTAPs lVSclrMNkz6tMsG9H9awp6u4NNm6la80nPSQxU1ytULtLYta4++EC2TRl9ZQk4v+ /nNevQasZyzq7JOvj41sckRCG5u46KkJFpiatvcHQAHj3YssC1CrbXFlW17DzlDB AQsX8izqSxD8iSglPmw4uyNfiiF0hS7QYMe553FVoMl9A8B0sbADQb+hBk0ifCg= =OmsX -----END PGP SIGNATURE-----