Multi Touch ? Mod Edit: Use this thread for the purpose.

Search This thread

aurezas

New member
Aug 5, 2010
1
0
Let's say I root my phone and install one of those 2.2 or 2.3 roms ,would I have multi touch ?

Sorry for the noob question ,but I just couldn't find the answer.
 
Last edited by a moderator:

72andrew72

Senior Member
Dec 28, 2010
153
18
couldn't find answer? :D here are min. 5 threads about it.. someone say no someone yes.. i think no ;)
 

kakawo

Member
Feb 13, 2011
30
4
Zvolen
haha, i love all this threds about MT :D its impossible guys to day when someone crack that bootloader - i dont think im going to live that long :D
 
  • Like
Reactions: leo914

andrej456

Senior Member
Feb 13, 2011
71
92
haha, i love all this threds about MT :D its impossible guys to day when someone crack that bootloader - i dont think im going to live that long :D

sorry for my english.I used google translate.
You can do multitouch driver as a module. This
kernel module to be unloaded from memory the old driver and load a new one. one person did it for the ebook.
can somebody help to make it to our phone.
links to the Web in a text file
 

Attachments

  • links.txt
    477 bytes · Views: 974

revenge50

Senior Member
Jan 8, 2011
133
13
Istanbul 34
sorry for my english.I used google translate.
You can do multitouch driver as a module. This
kernel module to be unloaded from memory the old driver and load a new one. one person did it for the ebook.
can somebody help to make it to our phone.
links to the Web in a text file

Did Any1 tried this ? My X8 is not rooted yet
 

andrej456

Senior Member
Feb 13, 2011
71
92
This is done for other device. need to do on xperia x8.
need someone who knows well the programming language c.
 

Sully.E

Senior Member
Feb 12, 2011
64
5
yep, it has been told that this is for the devices with the 1.5 firmware and it's not working on X8
 

andrej456

Senior Member
Feb 13, 2011
71
92
yep, it has been told that this is for the devices with the 1.5 firmware and it's not working on X8
sorry for my english.I used google translate.

You can compile the kernel and modules. According to this guide
http://xdaforums.com/showthread.php?t=977146
only after "make clean" needs to be done "make semc_shakira_defconfig"
then "make menuconfig" and "make" or "make modules"

config file is located in /kernel\arch\arm\configs\semc_shakira_defconfig
driver is in \kernel\drivers\input\touchscreen\
synaptics_i2c_rmi.c or synaptics_i2c_rmi4.c
need to change it, add a function unload the old driver
http://translate.google.com/transla...rver.net/2010/11/blog-post.html&client=ubuntu
and change the driver under multitouch. as did the man on the G1
http://lukehutch.wordpress.com/android-stuff/
compile the kernel and modules
copy the module to your phone in /system/lib/modules/
then run the module with the command in the console "insmod"
http://linux.about.com/od/commands/l/blcmdl8_insmod.htm

only need someone who knows well the programming language c and make it to our phone.
add an example of drivers from G1
 

Attachments

  • KernelPatch.zip
    7.1 KB · Views: 540

Blagus

Inactive Recognized Developer
Jun 10, 2010
1,324
1,048
@andrej456:
It's not clear, do we have to make ONLY kernel module in /system or we have to replace driver in kernel itself too?
 

andrej456

Senior Member
Feb 13, 2011
71
92
@andrej456:
It's not clear, do we have to make ONLY kernel module in /system or we have to replace driver in kernel itself too?
we must replace the driver in the kernel
driver is loaded into memory at boot
Here is the text of the "dmesg"
Code:
<6>[ 2.194121] msm72k_udc: reset controller
<6>[ 2.198791] synaptics_load_rmi4_func_regs: Func:f11_2D Query_Base:0x80 Cmd_Base:0x5f Ctrl_Base:0x26 Data_Base:0x18
<6>[ 2.208818] synaptics_load_rmi4_func_regs: Func:f08_BIST Query_Base:0x7e Cmd_Base:0x5e Ctrl_Base:0x20 Data_Base:0x15
<6>[ 2.219328] synaptics_load_rmi4_func_regs: Func:f01_RMI Query_Base:0x69 Cmd_Base:0x5d Ctrl_Base:0x1e Data_Base:0x13
<6>[ 2.230314] usb: notify offline
<6>[ 2.235506] msm72k_udc: suspend
<6>[ 2.331561] synaptics_ts_probe: nbr_panels:1 nbr_fingers:1 data_size:5
<6>[ 2.332454] synaptics_ts_probe: fw_rev:2 max_x:1689 max_y:2534
<6>[ 2.338291] synaptics_ts_probe: max_x 1689, max_y 2534
<6>[ 2.343406] synaptics_ts_probe: inactive_x 0 0, inactive_y 0 0
<6>[ 2.349209] synaptics_ts_probe: snap_x 0-0 0-0, snap_y 0-0 0-0
<6>[ 2.355471] input: synaptics-rmi-touchscreen as /devices/virtual/input/input0
<6>[ 2.362759] synaptics_ts_probe: Start touchscreen synaptics-rmi-touchscreen in interrupt mode
<3>[ 2.370899] cyttsp_init: Failed to request GPIO 112
<3>[ 2.375508] cyttsp_core_init: platform init failed!
<4>[ 2.380506] cyttsp-i2c: probe of 0-0024 failed with error -12
<6>[ 2.386329] cyttsp_i2c_init: Cypress TrueTouch® Standard Product I2C Touchscreen Driver (Built Jan 18 2011 @ 23:43:30) returned 0
<6>[ 2.398618] SEMC GPIO Matrix Keypad Driver: Start keypad matrix for shakira_keypad in interrupt mode
<6>[ 2.407599] input: shakira_keypad as /devices/virtual/input/input1
<6>[ 2.413983] msm72k_udc: reset
<6>[ 2.416269] msm72k_udc: portchange USB_SPEED_HIGH
need to do to when downloading our driver, old driver was unloaded from memory
need to initialize the new driver, find the old driver and unloaded from memory
about to do so
find the old driver
Code:
 struct device_driver * other; 

 other = driver_find (SYNAPTICS_I2C_RMI_NAME, & i2c_bus_type); other = driver_find(SYNAPTICS_I2C_RMI_NAME, &i2c_bus_type); 

 if (other) if (other) 
 { { 
 printk ("Previous driver found:% s \ n", other-> name); printk( "Previous driver found: %s\n" , other->name); 
 return-ENOMEM; return -ENOMEM; 
 } }
unload old driver from memory
Code:
struct i2c_driver * otherDriver; 
 struct device_driver * other; struct device_driver * other; 

 other = driver_find (SYNAPTICS_I2C_RMI_NAME, & i2c_bus_type); other = driver_find(SYNAPTICS_I2C_RMI_NAME, &i2c_bus_type); 

 if (other) if (other) 
 { { 
 otherDriver = to_i2c_driver (other); otherDriver = to_i2c_driver(other); 
 printk (KERN_ERR "Previous driver found:% s, addr 0x% x, owner% x \ n", other-> name, (int) otherDriver, (int) other-> owner); printk(KERN_ERR "Previous driver found: %s, addr 0x%x, owner %x\n" , other->name, ( int )otherDriver, ( int )other->owner); 
 i2c_del_driver (otherDriver); i2c_del_driver(otherDriver); 
 } }
 

andrej456

Senior Member
Feb 13, 2011
71
92
I found the source code of the ebook
I found it here
xttp://nookdevs.com/Talk:Multitouch
xttp://runserver.net/temp/synaptics_i2c_rmi.c
it does not work for our phone. will use it as an example
 

Attachments

  • synaptics_i2c_rmi.zip
    7.3 KB · Views: 58
Last edited:

Blagus

Inactive Recognized Developer
Jun 10, 2010
1,324
1,048
But there is still the problem of accessing kernel and replacing driver... I'll see what I can do, although ;)
 

bogdan_mihai554

Senior Member
Jan 5, 2011
460
33
26
Bucharest
178.156.144.172
not yet =S
But lets pray for the developers =D :mad:

Yeah, but can't the kernel(.sin file) be modded and then flashed??(I once flashed an X10 kernel on the x8...won't boot but hey, it flashed :)), now i got Gingerbread on my x8 :>:> And i'm waiting for a M.T Kernel...So, if the bootloader's not cracked, how is it that you can flash kernels with Bin4ary's flasher?? So, just modd the .sin file(put Mt. driver) and you're done ^_^
 
Last edited:

janda

Member
Feb 16, 2009
43
9
Is Synaptics T1021A hardware capable of multitouch? It will be great if somebody will add this function for us :D thanx
 

neilhoja

Member
Oct 2, 2010
23
1
really interesting on all about MT. :D

should this be stickied? so we can persuade the developer to do this..
 

Top Liked Posts

  • There are no posts matching your filters.
  • 4
    In my case I tried the stock SE driver. A manual insmod in command line success, but the touchscreen doesn't work, because Android tried to communicate with your previous (removed) driver.

    You need to load your driver at boot. I modified init.delta.rc to make it loaded at boot:

    Code:
    # Use interrupt to detect sd card insertion and removal
        write /sys/bus/platform/drivers/msm_sdcc/msm_sdcc.1/polling 0   
    
    # dx: our modded touchscreen driver
        insmod /system/lib/modules/synaptics_i2c_rmi4.ko
    
    # insert SDIO-driver used by wifi. This is _not_ the default SDIO driver
    # included in the kernel.
        insmod /system/lib/modules/sdio.ko
    
    # insert kernel modules for froyo's app2sd
        insmod /system/lib/modules/dm-mod.ko
        insmod /system/lib/modules/dm-crypt.ko
        insmod /system/lib/modules/twofish_common.ko
        insmod /system/lib/modules/twofish.ko

    My touchscreen driver (after our driver loaded) is located as input3, but it's still work.

    You can have a list of input devices with this command:
    Code:
    cat /proc/bus/input/devices

    Trying the way to "fake" mt ~.~

    Update 22:03 22/03: I can now "fake" dual-touch by sending touchscreen events from the driver. This screenshot below is taken with MiniCM Beta 2. :D

    x8-dt.png
    3
    Sweet story

    I feel sorry for people, whose got synaptics.

    Wait, wait, wait!
    I'll explain it why:
    Some days ago, I made an argument with a hungarian folk, and he pointed to the problem:
    People who bought X8s are misleaded by SonyEricsson. It's okay that SE made this phone with SingleTouch. Everybody who bought the phone are aware of that. It is still ok. But here comes the twist in the story.

    We all know now that there are other mobiles that has the same Digitizer chip as the (synaptics) X8, but there is a big difference. "Other" companies made a driver for that chip that can do Pinch zoom. More than nothing, to be honest it's really a good thing. What SE did? They stated that X8 is not capable of it. Other phones gets their Android updates "regulary". What SE did? They said X8 is not capable to run newer Androids smoothly because of hardware limitations.

    What happend after this?

    Great devs of XDA (it will be long to list all of them) made a 2.2 Android system that is way faster than the Official 2.1. SE haven't answered to this. They've dug the facts under the ground...deeply...

    After a while doixanh made the magical Synaptics Digitizer Module that made the phone capable of Pinch zooming and else. Many people suddenly started to like their X8, but for some people it hasn't worked. The hunting for clues started. On a beautiful day, one XDA forumer made some photos from his/ her X8's inboard. The world of SonyEricsson changed a lot at a blink. People realized that the "newer(?)" X8s has got different hardware inside them (there wasn't any post about that SE is not only changed the digitizer, but changed the whole screen too), and the war has got to new flames.
    People started to be curious about this strange happening. Thousands of E-mails has been sent to SE's mailbox, many of them are quite harsh. SE never answered for them. Why? Maybe we would never know the truth.
    Weeks/ months passed by, the water has calmed down. People started to lose their fate in SE, as of the developing to cypress never started.

    "But hey! What the f*ck is this?!"
    This was in my mind when I first saw the thread that made by AnDyX. Can it be true? SE really made this huge ass of themself? No way. Ooohhhh, Yes way. The cypress dualtouch module came out. Now the folks who has got this type of X8 got really happy, and spammed all the threads with this. It even came out from the faucet (this is a hungarian phrase). Now some PPL who has synaptics (With fake DualTouch, that even works really good!) aren't happy, and done with SonyEricsson forever.

    Let me quote myself:
    It's okay that SE made this phone with SingleTouch. Everybody who bought the phone are aware of that.

    -Now read my last indention.
    -Now read the quote.
    -Repeat this until you don't laugh at yourself.


    Hope I haven't insulted anyone with this little writing.

    For a time, Asycid OFF.
    Thank you.

    P.S.: As you noticed, there werent any twist in the story :)
    3
    Dx I don't always get output but I know for sure I have cy8ctma340 I checkd the actual hardware, could it be the different terminal emulators people are using :s and may be that's why no output

    Sent from my X8 using Tapatalk

    Some people don't get output, because the command writes out a log file's containment ("grep"= general report [If I'm not wrong]). The log file has got a maximum size, and if it reach this... well... it deletes older entrys. The word in the quotemarks after grep is the word what you searching in the log file, but the system erases the boot log (that contains the "driver loaded" things) after a while. That's why you have to call this command as soon as possible after you turn on your phone. Got it? :)
    3
    first steps:
    I made our driver for the module with this piece of code
    replace this function
    in file synaptics_i2c_rmi4.c
    static int __devinit synaptics_ts_init(void)
    Code:
    static int __devinit synaptics_ts_init(void)
    {
    	struct i2c_driver * otherDriver;
    	struct device_driver * other;
    	
    	other = driver_find(SYNAPTICS_I2C_RMI_NAME, &i2c_bus_type);
    	
    	if (other)
    	{
    //		printk(KERN_ERR "Previous driver found: %s\n", other->name);
    		put_driver(other);
    		otherDriver = to_i2c_driver(other);
    		printk(KERN_ERR "Previous driver found: %s, addr 0x%x, owner %x\n", other->name, (int)otherDriver, (int)other->owner);
    		//driver_unregister(other);
    		i2c_del_driver(otherDriver);
    		printk(KERN_ERR "Prev driver removed\n");
    	}
    
    	synaptics_wq = create_singlethread_workqueue("synaptics_wq_mod");
    	if (!synaptics_wq)
    		return -ENOMEM;
    	return i2c_add_driver(&synaptics_ts_driver);
    	//return i2c_register_driver(NULL, &synaptics_ts_driver);
    	
    }
    it works.
    unloads the old driver and load the new module
    text from dmesg
    Code:
    Previous driver found:synaptics-rmi-ts
    Prev driver removed
    and so on
    You can do it myself
    copy this file(synaptics_i2c_rmi4.ko to the phone /system/lib/modules
    don't make this(nexts steps) with adb shell
    do it with the console(terminal) on our phone
    I used Android Terminal
    su
    then
    insmod /system/lib/modules/synaptics_i2c_rmi4.ko
    then
    dmesg
    Code:
    Previous driver found:synaptics-rmi-ts
    Prev driver removed
    and so on
    almost at the end of messages while you see that the module works
    Follow these steps to work
    1.enable debug
    2.make the driver with multitouch(dualtouch)

    I used google translate.
    3
    Actually I don't have DT/MT now, it's a "fake" "pinch zoom". What I did is simply modify the stock SE driver, so that, when the driver receives an irq request (the screen is touched) :

    - send the touch event to linux's input subsystem
    - if the z (pressure) and w (width) param is large enough (my test : w >= 10 and z > 35), start the "fake dt" mode, save current position. These conditions are normally satisfied when you press two fingers near each other.
    - in every next request, calculate the "fake second finger" by comparing current position and the saved position (start "fake dt"), send the "fake finger" event to the linux's input subsystem.

    Right now, what I really do to make "pinch zoom" :
    - Put two finger near each other to satisfy the conditions w and z
    - Lift up one finger :D and use the other to do the pinch zoom

    A short clip...
    http://www.youtube.com/watch?v=t8ktSg0Jj_c

    This also works in Maps...
    I will try to find better parameters and will post the module source tomorrow.