<?xml version="1.0"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>SlackWiki - User contributions [en]</title>
		<link>https://www.slackwiki.com/Special:Contributions/Gv</link>
		<description>User contributions</description>
		<language>en</language>
		<generator>MediaWiki 1.40.0</generator>
		<lastBuildDate>Wed, 08 Apr 2026 15:05:25 GMT</lastBuildDate>
		<item>
			<title>Slackware On Odroid U3</title>
			<link>https://www.slackwiki.com/index.php?title=Slackware_On_Odroid_U3&amp;diff=987</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=Slackware_On_Odroid_U3&amp;diff=987</guid>
			<description>&lt;p&gt;Gv: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Slackware 14.2 On Odroid U3 ==&lt;br /&gt;
&lt;br /&gt;
=== 3+ partition method ===&lt;br /&gt;
&lt;br /&gt;
In 3 partition method, installer root , like from the initrd image, is installed onto second par&lt;br /&gt;
tion, and booted to install the distribution to a third partition. You may refer&lt;br /&gt;
to multiboot document ( [https://github.com/gv1/Odroid.U3/blob/master/multiboot/README Multiboot README] ) to do a two partition method of installation. It is a bit more complicated than three partition method. This method can further be simplified to do installation into a single partition, provided a suitable u-boot firmware is fused. &lt;br /&gt;
&lt;br /&gt;
See the multiboot page at github [https://github.com/gv1/Odroid.U3/tree/master/multiboot Multiboot] for a two partition method.&lt;br /&gt;
&lt;br /&gt;
Ref:&lt;br /&gt;
# [https://github.com/gv1/Odroid.U3 Odroid U3 related pages, from Gv]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== 16/32 GB Micro SD card ====&lt;br /&gt;
You may also install on to a pen drive or external hard disk for usb and boot from there. But you still will require a micro sd card for booting.&lt;br /&gt;
&lt;br /&gt;
==== A working Ubuntu image like ubuntu-16.04.1.lts ====&lt;br /&gt;
[http://dn.odroid.com/4412/Linux/ubuntu_16.04lts/ubuntu-16.04-mate-odroid-u2u3-20160920.img.xz ubuntu-16.04-mate-odroid-u2u3-20160920.img.xz]&lt;br /&gt;
               &lt;br /&gt;
==== Slackware 14.2 for arm ====&lt;br /&gt;
[http://ftp.arm.slackware.com/slackwarearm/slackwarearm-14.2 Slackwarearm-14.2]] &lt;br /&gt;
&lt;br /&gt;
    rsync --exclude '*/source/*' --exclude '*/testing/*' -Pavv --delete ftp.arm.slackware.com::slackwarearm/slackwarearm-14.2.&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
==== Install the u-boot header and FAT partiotion for zIamge, uInitrd and boot.ini ====&lt;br /&gt;
&lt;br /&gt;
===== Method one, using Ubuntu 16.04 boot files =====&lt;br /&gt;
&lt;br /&gt;
    xzcat --verbose ubuntu-16.04-mate-odroid-u2u3-20160920.img.xz | dd of=/dev/sdX count=300000&lt;br /&gt;
&lt;br /&gt;
Here is some info on how to download just enough data from site:&lt;br /&gt;
&lt;br /&gt;
    wget -qO-  http://dn.odroid.com/4412/Linux/ubuntu_16.04lts/ubuntu-16.04-mate-odroid-u2u3-20160920.img.xz | xzcat | dd of=x.img count=1&lt;br /&gt;
    file x.img&lt;br /&gt;
    # rm x.img&lt;br /&gt;
from &lt;br /&gt;
    x.img: DOS/MBR boot sector; partition 1 : ID=0x6, start-CHS (0x0,97,34), end-CHS (0x10,178,34), startsector 6144, 262144 sectors; partition 2 : ID=0x83, start-CHS (0x60,0,1), end-CHS (0x24e,94,16), startsector 268288, 9216000 sectors&lt;br /&gt;
&lt;br /&gt;
    # wget -qO-  http://dn.odroid.com/4412/Linux/ubuntu_16.04lts/ubuntu-16.04-mate-odroid-u2u3-20160920.img.xz | xzcat | dd of=ubuntu-16.04-mate-odroid-u2u3-20160920.img count=$((6144+262144))&lt;br /&gt;
    This is more useful when you want to download just partition one, not the entire distribution.&lt;br /&gt;
&lt;br /&gt;
==== Create partitions on SD card ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    fdisk /dev/sdX&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From partition created by dd from img in step 1, delete second and add three more ( or as many desired ).&lt;br /&gt;
&lt;br /&gt;
First partion created from the image has size of ~128MB. Make this partition bootable ( Boot flag on ), if not already so. Size of second partion should hold the installer initrd ( uncompressed ) and also the distribution (slackware) for installation, something like 4GB. Third partition is where the distributions are installed. Size in the  order of 24GB or so. Fourth is the swap partion - 2GB or so.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    Device         Boot    Start      End  Sectors  Size Id Type&lt;br /&gt;
    /dev/sdX1 *        6144   268287   262144  128M  6 FAT16&lt;br /&gt;
    /dev/sdX2        268288  8656895  8388608    4G 83 Linux&lt;br /&gt;
    /dev/sdX3       8656896 58988543 50331648   24G 83 Linux&lt;br /&gt;
    /dev/sdX4      58988544 62945279  3956736  1.9G 82 Linux swap&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Method 2, using u-boot files =====&lt;br /&gt;
&lt;br /&gt;
See [https://github.com/gv1/Odroid.U3/tree/master/u-boot-stable u-boot]&lt;br /&gt;
Parition the card like as in first method, manually. Next make the card u-boot capable by fusing the required firmware. Use sd_fusing_all.sh to fuse required U-Boot files on to sd card. See [https://github.com/gv1/Odroid.U3/tree/master/u-boot-stable u-boot-stable] directory for more info.&lt;br /&gt;
&lt;br /&gt;
==== Mount partition two, install 14.2 setup initrd image, copy kernel modules, firmware and installation sources. ====&lt;br /&gt;
&lt;br /&gt;
From PC host / Odroid running other Linux &lt;br /&gt;
&lt;br /&gt;
    mkdir odroid&lt;br /&gt;
    cd ordoid&lt;br /&gt;
    mkdir boot&lt;br /&gt;
    mkdir root&lt;br /&gt;
    mkfs.ext4 /dev/sdX2&lt;br /&gt;
    tune2fs /dev/sdX2 -L installer&lt;br /&gt;
    mount /dev/sdX2 boot&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# copy / download distribution files, say slackwarearm-14.2 to boot/&lt;br /&gt;
&lt;br /&gt;
    wget http://www.arm.slackware.com/slackwarearm/slackwarearm-14.2/isolinux/initrd-armv7.img&lt;br /&gt;
    mkdir boot/slackwarearm-14.2&lt;br /&gt;
    cd boot/slackwarearm-14.2&lt;br /&gt;
&lt;br /&gt;
For downloading:&lt;br /&gt;
Refer to http://arm.slackware.com and also consider donations.&lt;br /&gt;
&lt;br /&gt;
    rsync --exclude '*/source/*' --exclude '*/testing/*' -Pavv --delete ftp.arm.slackware.com::slackwarearm/slackwarearm-14.2 .&lt;br /&gt;
    cd ../..&lt;br /&gt;
&lt;br /&gt;
Preparing the installer root partition:&lt;br /&gt;
&lt;br /&gt;
    cd boot&lt;br /&gt;
    gzip -dc ../slackwarearm-14.2/isolinux/initrd-armv7.img | cpio -i --make-directories&lt;br /&gt;
    sync&lt;br /&gt;
    cd lib&lt;br /&gt;
    rm -rf modules/*&lt;br /&gt;
    rm -rf firmware/*&lt;br /&gt;
    # mount and copy from Ubuntu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Install ubuntu on third partition, copy module and firmware files to installer partition. ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    mkdir ubuntu&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if you have the image installed onto an sd card, use the second partition from there.&lt;br /&gt;
&lt;br /&gt;
    mount -r /dev/sdY2 ubuntu&lt;br /&gt;
&lt;br /&gt;
Or&lt;br /&gt;
If you only have the image &lt;br /&gt;
&lt;br /&gt;
First &lt;br /&gt;
&lt;br /&gt;
    unxz ubuntu-16.04-mate-odroid-u2u3-20160920.img.xz )&lt;br /&gt;
    parted -s ubuntu-16.04-mate-odroid-u2u3-20160920.img unit B print&lt;br /&gt;
    find partition 2 start offset from the output.&lt;br /&gt;
    p2offset=....&lt;br /&gt;
    mount second partition from ubuntu-16.04-mate-odroid-u2u3-20160920.img -&lt;br /&gt;
    mount -o loop,ro,offset=$p2offset ubuntu-16.04-mate-odroid-u2u3-20160920.img ubuntu&lt;br /&gt;
&lt;br /&gt;
Or&lt;br /&gt;
&lt;br /&gt;
    # find info about partitions&lt;br /&gt;
    xzcat ubuntu-16.04-mate-odroid-u2u3-20160920.img.xz | dd of=x.img count=1&lt;br /&gt;
    file x.img&lt;br /&gt;
    # rm x.img&lt;br /&gt;
    xzcat ubuntu-16.04-mate-odroid-u2u3-20160920.img.xz | dd of=ubuntu-16.04-mate-odroid-u2u3-20160920.img count=9216000 skip=268288&lt;br /&gt;
    mount -o loop ubuntu-16.04-mate-odroid-u2u3-20160920.img ubuntu&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    mkfs.ext4 /dev/sdX3&lt;br /&gt;
    tune2fs /dev/sdX3 -L slackware14.2&lt;br /&gt;
    mount /dev/sdX3 root&lt;br /&gt;
    mkdir root/ubuntu-16.04.1.lts&lt;br /&gt;
    mkdir root/installer&lt;br /&gt;
    mkdir root/slackware-14.2&lt;br /&gt;
    (cd ubuntu; tar cfz - *) | (cd root/ubuntu-16.04.1.lts; tar xfz - )&lt;br /&gt;
    # copy modules and firmware? to installer.&lt;br /&gt;
    (cd root/ubuntu-16.04.1.lts/lib/ ; tar cfz - modules firmware ) | (cd boot/lib/; tar xfz - )&lt;br /&gt;
    sync&lt;br /&gt;
    sync&lt;br /&gt;
    umount ubuntu&lt;br /&gt;
    umount boot&lt;br /&gt;
    umount root&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
==== Reboot odroid, and if everything goes fine, will boot into slackware installer. ====&lt;br /&gt;
&lt;br /&gt;
press enter to login as root&lt;br /&gt;
run setup:&lt;br /&gt;
         setup&lt;br /&gt;
During installation,&lt;br /&gt;
Choose partition 3 as target, and dont' format it. It already has Ubuntu on it.&lt;br /&gt;
Choose source directory for installation  - /slackwarearm-14.2/slackware&lt;br /&gt;
Proceed with the normal slackware installation.&lt;br /&gt;
&lt;br /&gt;
==== Modify boot.ini and reboot. ====&lt;br /&gt;
&lt;br /&gt;
    mount /dev/sdX1 boot&lt;br /&gt;
    edit and modify boot/boot.ini to boot from parition 3&lt;br /&gt;
    setenv bootargs &amp;quot;console=tty1 console=ttySAC1,115200n8 root=/dev/mmcblk0p3 rootwait ro mem=2047M ${videoconfig}&amp;quot;&lt;br /&gt;
    sync&lt;br /&gt;
    umount boot&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== If you are planning for multiboot ====&lt;br /&gt;
    cd root&lt;br /&gt;
    mv * slackware-14.2&lt;br /&gt;
    mv slackware-14.2/ubuntu-16.04.1.lts .&lt;br /&gt;
&lt;br /&gt;
Now you have both Slackware and Ubuntu on same partition.&lt;br /&gt;
See [https://github.com/gv1/Odroid.U3/tree/master/multiboot multiboot] to see how to get a multiboot setup ( choose distribution at boot time ) so that you can choose the distribution at boot time. No fancy chooser this time, you need to enter the number corresponding to the distro at a prompt.&lt;br /&gt;
&lt;br /&gt;
=== Other info ===&lt;br /&gt;
&lt;br /&gt;
==== Mouse pointer issue.====&lt;br /&gt;
        Xorg ( with blackbox wm ) seems have no mouse curser until you open an xterm or s&lt;br /&gt;
o by clicking the right mouse button. Mouse pointer is okay if you have an .xinitrc that&lt;br /&gt;
starts an xterm or so.&lt;br /&gt;
&lt;br /&gt;
==== No web browsers. ====&lt;br /&gt;
&lt;br /&gt;
Browsers you can compile and run on odroid u3, slackware 14.2: sadly none of these browsers are available in the distribution. text based ones like lynx are there. Emacs supports web browsing mode too.&lt;br /&gt;
#[http://www.dillo.org Dillo] version 3.0.5  ( fast , but premitive ) first step&lt;br /&gt;
#[https://archive.mozilla.org/pub/PROJECT/releases/RELEASE/source/ Mozilla Firefox] 50.0 ( compile from source, took long time like more than 6 hours)&lt;br /&gt;
[https://github.com/gv1/Odroid.U3/blob/master/firefox-50.0.tar.xz firefox-50.0.tar.xz]&lt;br /&gt;
&lt;br /&gt;
=== No libreoffice.===&lt;br /&gt;
        Office compilation - fail&lt;br /&gt;
                Libreoffice libreoffice-5.2.2.2 compiled, ( took very long time, 12 ho&lt;br /&gt;
urs or more ) starts, but fall into libreoffice docuement discovery mode and fail (repeat):&lt;br /&gt;
&lt;br /&gt;
(soffice:1091): Gtk-WARNING **: Theme parsing error: &amp;lt;data&amp;gt;:1:59: 'min-width' is not a va&lt;br /&gt;
lid property name&lt;br /&gt;
&lt;br /&gt;
(soffice:1091): Gtk-WARNING **: Theme parsing error: &amp;lt;data&amp;gt;:1:76: 'min-height' is not a v&lt;br /&gt;
alid property name&lt;br /&gt;
&lt;br /&gt;
Shutdown seems not shutdown/poweroff complete, but keeps printing message, should not hav&lt;br /&gt;
e reached here.&lt;br /&gt;
&lt;br /&gt;
But no other issues on reboot after shutdown. This gets fixed with &lt;br /&gt;
[https://github.com/gv1/Odroid.U3/tree/master/linux-4.8.y linux-4.8.y]&lt;br /&gt;
[https://github.com/gv1/Odroid.U3/tree/master/u-boot-stable u-boot-stable]&lt;/div&gt;</description>
			<pubDate>Thu, 17 Nov 2016 08:50:58 GMT</pubDate>
			<dc:creator>Gv</dc:creator>
			<comments>https://www.slackwiki.com/Talk:Slackware_On_Odroid_U3</comments>
		</item>
		<item>
			<title>Slackware On Odroid U3</title>
			<link>https://www.slackwiki.com/index.php?title=Slackware_On_Odroid_U3&amp;diff=986</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=Slackware_On_Odroid_U3&amp;diff=986</guid>
			<description>&lt;p&gt;Gv: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Slackware 14.2 On Odroid U3 ==&lt;br /&gt;
&lt;br /&gt;
=== 3+ partition method ===&lt;br /&gt;
&lt;br /&gt;
In 3 partition method, installer root , like from the initrd image, is installed onto second par&lt;br /&gt;
tion, and booted to install the distribution to a third partition. You may refer&lt;br /&gt;
to multiboot document ( [https://github.com/gv1/Odroid.U3/blob/master/multiboot/README Multiboot README] ) to do a two partition method of installation. It is a bit more complicated than three partition method. This method can further be simplified to do installation into a single partition, provided a suitable u-boot firmware is fused. &lt;br /&gt;
&lt;br /&gt;
See the multiboot page at github [https://github.com/gv1/Odroid.U3/tree/master/multiboot Multiboot] for a two partition method.&lt;br /&gt;
&lt;br /&gt;
Ref:&lt;br /&gt;
# [https://github.com/gv1/Odroid.U3 Odroid U3 related pages, from Gv]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== 16/32 GB Micro SD card ====&lt;br /&gt;
You may also install on to a pen drive or external hard disk for usb and boot from there. But you still will require a micro sd card for booting.&lt;br /&gt;
&lt;br /&gt;
==== A working Ubuntu image like ubuntu-16.04.1.lts ====&lt;br /&gt;
[http://dn.odroid.com/4412/Linux/ubuntu_16.04lts/ubuntu-16.04-mate-odroid-u2u3-20160920.img.xz ubuntu-16.04-mate-odroid-u2u3-20160920.img.xz]&lt;br /&gt;
               &lt;br /&gt;
==== Slackware 14.2 for arm ====&lt;br /&gt;
[http://ftp.arm.slackware.com/slackwarearm/slackwarearm-14.2 Slackwarearm-14.2]] &lt;br /&gt;
&lt;br /&gt;
    rsync --exclude '*/source/*' --exclude '*/testing/*' -Pavv --delete ftp.arm.slackware.com::slackwarearm/slackwarearm-14.2.&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
==== Install the u-boot header and FAT partiotion for zIamge, uInitrd and boot.ini ====&lt;br /&gt;
&lt;br /&gt;
===== Method one, using Ubuntu 16.04 boot files =====&lt;br /&gt;
&lt;br /&gt;
    xzcat --verbose ubuntu-16.04-mate-odroid-u2u3-20160920.img.xz | dd of=/dev/sdX count=300000&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Create partitions on SD card ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    fdisk /dev/sdX&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From partition created by dd from img in step 1, delete second and add three more ( or as many desired ).&lt;br /&gt;
&lt;br /&gt;
First partion created from the image has size of ~128MB. Make this partition bootable ( Boot flag on ), if not already so. Size of second partion should hold the installer initrd ( uncompressed ) and also the distribution (slackware) for installation, something like 4GB. Third partition is where the distributions are installed. Size in the  order of 24GB or so. Fourth is the swap partion - 2GB or so.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    Device         Boot    Start      End  Sectors  Size Id Type&lt;br /&gt;
    /dev/sdX1 *        6144   268287   262144  128M  6 FAT16&lt;br /&gt;
    /dev/sdX2        268288  8656895  8388608    4G 83 Linux&lt;br /&gt;
    /dev/sdX3       8656896 58988543 50331648   24G 83 Linux&lt;br /&gt;
    /dev/sdX4      58988544 62945279  3956736  1.9G 82 Linux swap&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Method 2, using u-boot files =====&lt;br /&gt;
&lt;br /&gt;
See [https://github.com/gv1/Odroid.U3/tree/master/u-boot-stable u-boot]&lt;br /&gt;
Parition the card like as in first method, manually. Next make the card u-boot capable by fusing the required firmware. Use sd_fusing_all.sh to fuse required U-Boot files on to sd card. See [https://github.com/gv1/Odroid.U3/tree/master/u-boot-stable u-boot-stable] directory for more info.&lt;br /&gt;
&lt;br /&gt;
==== Mount partition two, install 14.2 setup initrd image, copy kernel modules, firmware and installation sources. ====&lt;br /&gt;
&lt;br /&gt;
From PC host / Odroid running other Linux &lt;br /&gt;
&lt;br /&gt;
    mkdir odroid&lt;br /&gt;
    cd ordoid&lt;br /&gt;
    mkdir boot&lt;br /&gt;
    mkdir root&lt;br /&gt;
    mkfs.ext4 /dev/sdX2&lt;br /&gt;
    tune2fs /dev/sdX2 -L installer&lt;br /&gt;
    mount /dev/sdX2 boot&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# copy / download distribution files, say slackwarearm-14.2 to boot/&lt;br /&gt;
&lt;br /&gt;
    wget http://www.arm.slackware.com/slackwarearm/slackwarearm-14.2/isolinux/initrd-armv7.img&lt;br /&gt;
    mkdir boot/slackwarearm-14.2&lt;br /&gt;
    cd boot/slackwarearm-14.2&lt;br /&gt;
&lt;br /&gt;
For downloading:&lt;br /&gt;
Refer to http://arm.slackware.com and also consider donations.&lt;br /&gt;
&lt;br /&gt;
    rsync --exclude '*/source/*' --exclude '*/testing/*' -Pavv --delete ftp.arm.slackware.com::slackwarearm/slackwarearm-14.2 .&lt;br /&gt;
    cd ../..&lt;br /&gt;
&lt;br /&gt;
Preparing the installer root partition:&lt;br /&gt;
&lt;br /&gt;
    cd boot&lt;br /&gt;
    gzip -dc ../slackwarearm-14.2/isolinux/initrd-armv7.img | cpio -i --make-directories&lt;br /&gt;
    sync&lt;br /&gt;
    cd lib&lt;br /&gt;
    rm -rf modules/*&lt;br /&gt;
    rm -rf firmware/*&lt;br /&gt;
    # mount and copy from Ubuntu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Install ubuntu on third partition, copy module and firmware files to installer partition. ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    mkdir ubuntu&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if you have the image installed onto an sd card, use the second partition from there.&lt;br /&gt;
&lt;br /&gt;
    mount -r /dev/sdY2 ubuntu&lt;br /&gt;
&lt;br /&gt;
Or&lt;br /&gt;
If you only have the image &lt;br /&gt;
&lt;br /&gt;
First &lt;br /&gt;
&lt;br /&gt;
    unxz ubuntu-16.04-mate-odroid-u2u3-20160920.img.xz )&lt;br /&gt;
    parted -s ubuntu-16.04-mate-odroid-u2u3-20160920.img unit B print&lt;br /&gt;
    find partition 2 start offset from the output.&lt;br /&gt;
    p2offset=....&lt;br /&gt;
    mount second partition from ubuntu-16.04-mate-odroid-u2u3-20160920.img -&lt;br /&gt;
    mount -o loop,ro,offset=$p2offset ubuntu-16.04-mate-odroid-u2u3-20160920.img ubuntu&lt;br /&gt;
&lt;br /&gt;
Or&lt;br /&gt;
&lt;br /&gt;
    # find info about partitions&lt;br /&gt;
    xzcat ubuntu-16.04-mate-odroid-u2u3-20160920.img.xz | dd of=x.img count=1&lt;br /&gt;
    file x.img&lt;br /&gt;
    # rm x.img&lt;br /&gt;
    xzcat ubuntu-16.04-mate-odroid-u2u3-20160920.img.xz | dd of=ubuntu-16.04-mate-odroid-u2u3-20160920.img count=9216000 skip=268288&lt;br /&gt;
    mount -o loop ubuntu-16.04-mate-odroid-u2u3-20160920.img ubuntu&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    mkfs.ext4 /dev/sdX3&lt;br /&gt;
    tune2fs /dev/sdX3 -L slackware14.2&lt;br /&gt;
    mount /dev/sdX3 root&lt;br /&gt;
    mkdir root/ubuntu-16.04.1.lts&lt;br /&gt;
    mkdir root/installer&lt;br /&gt;
    mkdir root/slackware-14.2&lt;br /&gt;
    (cd ubuntu; tar cfz - *) | (cd root/ubuntu-16.04.1.lts; tar xfz - )&lt;br /&gt;
    # copy modules and firmware? to installer.&lt;br /&gt;
    (cd root/ubuntu-16.04.1.lts/lib/ ; tar cfz - modules firmware ) | (cd boot/lib/; tar xfz - )&lt;br /&gt;
    sync&lt;br /&gt;
    sync&lt;br /&gt;
    umount ubuntu&lt;br /&gt;
    umount boot&lt;br /&gt;
    umount root&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
==== Reboot odroid, and if everything goes fine, will boot into slackware installer. ====&lt;br /&gt;
&lt;br /&gt;
press enter to login as root&lt;br /&gt;
run setup:&lt;br /&gt;
         setup&lt;br /&gt;
During installation,&lt;br /&gt;
Choose partition 3 as target, and dont' format it. It already has Ubuntu on it.&lt;br /&gt;
Choose source directory for installation  - /slackwarearm-14.2/slackware&lt;br /&gt;
Proceed with the normal slackware installation.&lt;br /&gt;
&lt;br /&gt;
==== Modify boot.ini and reboot. ====&lt;br /&gt;
&lt;br /&gt;
    mount /dev/sdX1 boot&lt;br /&gt;
    edit and modify boot/boot.ini to boot from parition 3&lt;br /&gt;
    setenv bootargs &amp;quot;console=tty1 console=ttySAC1,115200n8 root=/dev/mmcblk0p3 rootwait ro mem=2047M ${videoconfig}&amp;quot;&lt;br /&gt;
    sync&lt;br /&gt;
    umount boot&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== If you are planning for multiboot ====&lt;br /&gt;
    cd root&lt;br /&gt;
    mv * slackware-14.2&lt;br /&gt;
    mv slackware-14.2/ubuntu-16.04.1.lts .&lt;br /&gt;
&lt;br /&gt;
Now you have both Slackware and Ubuntu on same partition.&lt;br /&gt;
See [https://github.com/gv1/Odroid.U3/tree/master/multiboot multiboot] to see how to get a multiboot setup ( choose distribution at boot time ) so that you can choose the distribution at boot time. No fancy chooser this time, you need to enter the number corresponding to the distro at a prompt.&lt;br /&gt;
&lt;br /&gt;
=== Other info ===&lt;br /&gt;
&lt;br /&gt;
==== Mouse pointer issue.====&lt;br /&gt;
        Xorg ( with blackbox wm ) seems have no mouse curser until you open an xterm or s&lt;br /&gt;
o by clicking the right mouse button. Mouse pointer is okay if you have an .xinitrc that&lt;br /&gt;
starts an xterm or so.&lt;br /&gt;
&lt;br /&gt;
==== No web browsers. ====&lt;br /&gt;
&lt;br /&gt;
Browsers you can compile and run on odroid u3, slackware 14.2: sadly none of these browsers are available in the distribution. text based ones like lynx are there. Emacs supports web browsing mode too.&lt;br /&gt;
#[http://www.dillo.org Dillo] version 3.0.5  ( fast , but premitive ) first step&lt;br /&gt;
#[https://archive.mozilla.org/pub/PROJECT/releases/RELEASE/source/ Mozilla Firefox] 50.0 ( compile from source, took long time like more than 6 hours)&lt;br /&gt;
[https://github.com/gv1/Odroid.U3/blob/master/firefox-50.0.tar.xz firefox-50.0.tar.xz]&lt;br /&gt;
&lt;br /&gt;
=== No libreoffice.===&lt;br /&gt;
        Office compilation - fail&lt;br /&gt;
                Libreoffice libreoffice-5.2.2.2 compiled, ( took very long time, 12 ho&lt;br /&gt;
urs or more ) starts, but fall into libreoffice docuement discovery mode and fail (repeat):&lt;br /&gt;
&lt;br /&gt;
(soffice:1091): Gtk-WARNING **: Theme parsing error: &amp;lt;data&amp;gt;:1:59: 'min-width' is not a va&lt;br /&gt;
lid property name&lt;br /&gt;
&lt;br /&gt;
(soffice:1091): Gtk-WARNING **: Theme parsing error: &amp;lt;data&amp;gt;:1:76: 'min-height' is not a v&lt;br /&gt;
alid property name&lt;br /&gt;
&lt;br /&gt;
Shutdown seems not shutdown/poweroff complete, but keeps printing message, should not hav&lt;br /&gt;
e reached here.&lt;br /&gt;
&lt;br /&gt;
But no other issues on reboot after shutdown. This gets fixed with &lt;br /&gt;
[https://github.com/gv1/Odroid.U3/tree/master/linux-4.8.y linux-4.8.y]&lt;br /&gt;
[https://github.com/gv1/Odroid.U3/tree/master/u-boot-stable u-boot-stable]&lt;/div&gt;</description>
			<pubDate>Wed, 16 Nov 2016 17:16:01 GMT</pubDate>
			<dc:creator>Gv</dc:creator>
			<comments>https://www.slackwiki.com/Talk:Slackware_On_Odroid_U3</comments>
		</item>
		<item>
			<title>Slackware On Odroid U3</title>
			<link>https://www.slackwiki.com/index.php?title=Slackware_On_Odroid_U3&amp;diff=985</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=Slackware_On_Odroid_U3&amp;diff=985</guid>
			<description>&lt;p&gt;Gv: Slackware 14.2 On Odroid U3&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Slackware 14.2 On Odroid U3 ==&lt;br /&gt;
&lt;br /&gt;
=== 3+ partition method ===&lt;br /&gt;
&lt;br /&gt;
In 3 partition method, installer root , like from the initrd image, is installed onto second par&lt;br /&gt;
tion, and booted to install the distribution to a third partition. You may refer&lt;br /&gt;
to multiboot document ( [https://github.com/gv1/Odroid.U3/blob/master/multiboot/README] ) to do a two partition method of installation. It is a bit more complicated than three partition method. This method can further be simplified to do installation into a single partition, provided a suitable u-boot firmware is fused. &lt;br /&gt;
&lt;br /&gt;
See the multiboot page at github [https://github.com/gv1/Odroid.U3/tree/master/multiboot] for a two partition method.&lt;br /&gt;
&lt;br /&gt;
Ref:&lt;br /&gt;
# [https://github.com/gv1/Odroid.U3]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== 16/32 GB Micro SD card ====&lt;br /&gt;
You may also install on to a pen drive or external hard disk for usb and boot from there. But you still will require a micro sd card for booting.&lt;br /&gt;
&lt;br /&gt;
==== A working Ubuntu image like ubuntu-16.04.1.lts ====&lt;br /&gt;
[http://dn.odroid.com/4412/Linux/ubuntu_16.04lts/ubuntu-16.04-mate-odroid-u2u3-20160920.img.xz]&lt;br /&gt;
               &lt;br /&gt;
==== Slackware 14.2 for arm ====&lt;br /&gt;
[http://ftp.arm.slackware.com/slackwarearm/slackwarearm-14.2]&lt;br /&gt;
&lt;br /&gt;
rsync --exclude '*/source/*' --exclude '*/testing/*' -Pavv --delete ftp.arm.slackware.com::slackwarearm/slackwarearm-14.2.&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
==== Install the u-boot header and FAT partiotion for zIamge, uInitrd and boot.ini ====&lt;br /&gt;
&lt;br /&gt;
unxz ubuntu-16.04-mate-odroid-u2u3-20160920.img.xz&lt;br /&gt;
xzcat --verbose ubuntu-16.04-mate-odroid-u2u3-20160920.img.xz | dd of=/dev/sdX count=300000&lt;br /&gt;
&lt;br /&gt;
==== Create partitions on SD card ====&lt;br /&gt;
fdisk /dev/sdX&lt;br /&gt;
&lt;br /&gt;
From partition created by dd from img in step 1, delete second and add three more&lt;br /&gt;
( or as many desired ).&lt;br /&gt;
&lt;br /&gt;
First partion created from the image has size of ~128MB.&lt;br /&gt;
Make this partition bootable ( Boot flag on ), if not already so.&lt;br /&gt;
Size of second partion should hold the installer initrd ( uncompressed ) and also the distribution (slackware) for installation, something like 4GB. Third partition is where the distributions are installed. Size in the  order of 24GB or so. Fourth is the swap partion - 2GB or so.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        Device         Boot    Start      End  Sectors  Size Id Type&lt;br /&gt;
        /dev/sdX1 *        6144   268287   262144  128M  6 FAT16&lt;br /&gt;
        /dev/sdX2        268288  8656895  8388608    4G 83 Linux&lt;br /&gt;
        /dev/sdX3       8656896 58988543 50331648   24G 83 Linux&lt;br /&gt;
        /dev/sdX4      58988544 62945279  3956736  1.9G 82 Linux swap&lt;br /&gt;
&lt;br /&gt;
==== Mount partition two, install 14.2 setup initrd image, copy kernel modules, firmware and installation sources. ====&lt;br /&gt;
&lt;br /&gt;
From PC host / Odroid running other Linux &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
mkdir odroid&lt;br /&gt;
cd ordoid&lt;br /&gt;
mkdir boot&lt;br /&gt;
mkdir root&lt;br /&gt;
mkfs.ext4 /dev/sdX2&lt;br /&gt;
tune2fs /dev/sdX2 -L installer&lt;br /&gt;
mount /dev/sdX2 boot&lt;br /&gt;
# copy / download distribution files, say slackwarearm-14.2 to boot/&lt;br /&gt;
wget http://www.arm.slackware.com/slackwarearm/slackwarearm-14.2/isolinux/initrd-armv7.img&lt;br /&gt;
                &lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
mkdir boot/slackwarearm-14.2&lt;br /&gt;
cd boot/slackwarearm-14.2&lt;br /&gt;
&lt;br /&gt;
For downloading:&lt;br /&gt;
Refer to http://arm.slackware.com and also consider donations.&lt;br /&gt;
cd slackwarearm-14.2&lt;br /&gt;
rsync --exclude '*/source/*' --exclude '*/testing/*' -Pavv --delete ftp.arm.slackware.com::slackwarearm/slackwarearm-14.2 .&lt;br /&gt;
cd ../..&lt;br /&gt;
&lt;br /&gt;
cd boot&lt;br /&gt;
gzip -dc ../slackwarearm-14.2/isolinux/initrd-armv7.img | cpio -i --make-directories&lt;br /&gt;
sync&lt;br /&gt;
cd lib&lt;br /&gt;
rm -rf modules/*&lt;br /&gt;
rm -rf firmware/*&lt;br /&gt;
# mount and copy from Ubuntu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Install ubuntu on third partition, copy module and firmware files to installer partition. ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
mkdir ubuntu&lt;br /&gt;
&lt;br /&gt;
if you have the image installed onto an sd card, use the second partition from there.&lt;br /&gt;
&lt;br /&gt;
mount -r /dev/sdY2 ubuntu&lt;br /&gt;
                or&lt;br /&gt;
if you only have the image ( first unxz ubuntu-16.04-mate-odroid-u2u3-20160920.img.xz )&lt;br /&gt;
parted -s ubuntu-16.04-mate-odroid-u2u3-20160920.img unit B print&lt;br /&gt;
find partition 2 start offset from the output.&lt;br /&gt;
p2offset=....&lt;br /&gt;
mount second partition from ubuntu-16.04-mate-odroid-u2u3-20160920.img -&lt;br /&gt;
mount -o loop,ro,offset=$p2offset ubuntu-16.04-mate-odroid-u2u3-20160920.img ubuntu&lt;br /&gt;
&lt;br /&gt;
mkfs.ext4 /dev/sdX3&lt;br /&gt;
tune2fs /dev/sdX3 -L slackware14.2&lt;br /&gt;
mount /dev/sdX3 root&lt;br /&gt;
mkdir root/ubuntu-16.04.1.lts&lt;br /&gt;
mkdir root/installer&lt;br /&gt;
mkdir root/slackware-14.2&lt;br /&gt;
(cd ubuntu; tar cfz - *) | (cd root/ubuntu-16.04.1.lts; tar xfz - )&lt;br /&gt;
copy modules and firmware? to installer.&lt;br /&gt;
(cd root/ubuntu-16.04.1.lts/lib/ ; tar cfz - modules firmware ) | (cd boot/lib/; tar xfz - )&lt;br /&gt;
sync&lt;br /&gt;
sync&lt;br /&gt;
umount ubuntu&lt;br /&gt;
umount boot&lt;br /&gt;
umount root&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Reboot odroid, and if everything goes fine, will boot into slackware installer. ====&lt;br /&gt;
&lt;br /&gt;
press enter to login as root&lt;br /&gt;
run setup:&lt;br /&gt;
                        setup&lt;br /&gt;
During installation,&lt;br /&gt;
Choose partition 3 as target, and dont' format it. It already has Ubuntu on it.&lt;br /&gt;
Choose source directory for installation  - /slackwarearm-14.2/slackware&lt;br /&gt;
Proceed with the normal slackware installation.&lt;br /&gt;
&lt;br /&gt;
==== Modify boot.ini and reboot. ====&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
mount /dev/sdX1 boot&lt;br /&gt;
edit and modify boot/boot.ini to boot from parition 3&lt;br /&gt;
setenv bootargs &amp;quot;console=tty1 console=ttySAC1,115200n8 root=/dev/mmcblk0p3 rootwa&lt;br /&gt;
it ro mem=2047M ${videoconfig}&amp;quot;&lt;br /&gt;
sync&lt;br /&gt;
umount boot&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== If you are planning for multiboot ====&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
cd root&lt;br /&gt;
mv * slackware-14.2&lt;br /&gt;
mv slackware-14.2/ubuntu-16.04.1.lts .&lt;br /&gt;
Now you have both Slackware and Ubuntu on same partition.&lt;br /&gt;
See README.odroid.u3.multiboot to see how to get a multiboot setup ( choo&lt;br /&gt;
se distribution at boot time ) so that you can choose the distribution at boot time. No fancy chooser &lt;br /&gt;
this time, you need to enter the number corresponding to the distro at a prompt.&lt;br /&gt;
&lt;br /&gt;
=== Other info ===&lt;br /&gt;
&lt;br /&gt;
==== Mouse pointer issue.====&lt;br /&gt;
        Xorg ( with blackbox wm ) seems have no mouse curser until you open an xterm or s&lt;br /&gt;
o by clicking the right mouse button. Mouse pointer is okay if you have an .xinitrc that&lt;br /&gt;
starts an xterm or so.&lt;br /&gt;
&lt;br /&gt;
==== No web browsers. ====&lt;br /&gt;
&lt;br /&gt;
Browsers you can compile and run on odroid u3, slackware 14.2: sadly none of these browsers are available in the distribution. text based ones like lynx are there. Emacs supports web browsing mode too.&lt;br /&gt;
&lt;br /&gt;
                Dillo version 3.0.5  ( fast , but premitive ) first step&lt;br /&gt;
                Mozilla Firefox 50.0 ( compile from source, took long time like more than&lt;br /&gt;
 6 hours)&lt;br /&gt;
[https://github.com/gv1/Odroid.U3/blob/master/firefox-50.0.tar.xz]&lt;br /&gt;
&lt;br /&gt;
==== No libreoffice.===&lt;br /&gt;
        Office compilation - fail&lt;br /&gt;
                Libreoffice libreoffice-5.2.2.2 compiled, ( took very long time, 12 ho&lt;br /&gt;
urs or more ) starts, but fall into libreoffice docuement discovery mode and fail (repeat):&lt;br /&gt;
&lt;br /&gt;
(soffice:1091): Gtk-WARNING **: Theme parsing error: &amp;lt;data&amp;gt;:1:59: 'min-width' is not a va&lt;br /&gt;
lid property name&lt;br /&gt;
&lt;br /&gt;
(soffice:1091): Gtk-WARNING **: Theme parsing error: &amp;lt;data&amp;gt;:1:76: 'min-height' is not a v&lt;br /&gt;
alid property name&lt;br /&gt;
&lt;br /&gt;
Shutdown seems not shutdown/poweroff complete, but keeps printing message, should not hav&lt;br /&gt;
e reached here.&lt;br /&gt;
&lt;br /&gt;
But no other issues on reboot after shutdown. This gets fixed with &lt;br /&gt;
[https://github.com/gv1/Odroid.U3/tree/master/linux-4.8.y]&lt;br /&gt;
[https://github.com/gv1/Odroid.U3/tree/master/u-boot-stable]&lt;/div&gt;</description>
			<pubDate>Wed, 16 Nov 2016 14:54:14 GMT</pubDate>
			<dc:creator>Gv</dc:creator>
			<comments>https://www.slackwiki.com/Talk:Slackware_On_Odroid_U3</comments>
		</item>
		<item>
			<title>Slackware On Odroid U3</title>
			<link>https://www.slackwiki.com/index.php?title=Slackware_On_Odroid_U3&amp;diff=984</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=Slackware_On_Odroid_U3&amp;diff=984</guid>
			<description>&lt;p&gt;Gv: Slackware 14.2 installation on Odroid U3&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Slackware On Odroid U3&lt;/div&gt;</description>
			<pubDate>Wed, 16 Nov 2016 14:17:13 GMT</pubDate>
			<dc:creator>Gv</dc:creator>
			<comments>https://www.slackwiki.com/Talk:Slackware_On_Odroid_U3</comments>
		</item>
		<item>
			<title>SlackwareOnMt6582Tablet</title>
			<link>https://www.slackwiki.com/index.php?title=SlackwareOnMt6582Tablet&amp;diff=945</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=SlackwareOnMt6582Tablet&amp;diff=945</guid>
			<description>&lt;p&gt;Gv: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Specifications of the Tablet PC which was used here ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Processor : Arm Cortex A7, 1.3 GHz dual core.&lt;br /&gt;
             : ARMv7 Processor rev 3 (v7l),&lt;br /&gt;
   Hardware  : MT8312&lt;br /&gt;
   SOC       : mt6582.&lt;br /&gt;
   Memory    : 512MB RAM&lt;br /&gt;
   Storage   : 4GB Built in storage.&lt;br /&gt;
   Micro SD  : Slot for upto 32GB&lt;br /&gt;
   Display   : 7&amp;quot; WVGA 800x480&lt;br /&gt;
   OS        : Android 4.2 Jelly Bean&lt;br /&gt;
   GPU       : Mali?&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
&lt;br /&gt;
Get [http://arm.slackware.com/getslack/ Slackware] for arm&lt;br /&gt;
&lt;br /&gt;
[http://s7.postimg.org/fww1ibfdn/image.png Screenshot] of X windows with fluxbox and wbar. And [http://s15.postimg.org/izdxddkqj/image.png another one].&lt;br /&gt;
&lt;br /&gt;
[http://www.techverse.net/fastest-root-android-phone-computer/ Framaroot-1.9.3.apk]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gv1/SlackwareOnMT6582/releases SlackwareOnMT6582] page at github, includes [https://github.com/gv1/SlackwareOnMT6582/releases StartX] apk.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Rooting the Tablet PC ==&lt;br /&gt;
&lt;br /&gt;
A tablet with root access is required. I used [http://www.techverse.net/fastest-root-android-phone-computer/ Framaroot-1.9.3.apk] to root the device. &lt;br /&gt;
&lt;br /&gt;
== Installing Linux - Slackware 14.1, sort of. ==&lt;br /&gt;
&lt;br /&gt;
With the problem of not having kernel source for the SOC, and no no bootloader unlock possible yet, next best option was to use a chroot environment. Please not that you can try command line stuff with [http://proot.me/ proot] ( which requires no root access). Xorg however requires root permission since /dev/graphics/fb0 requires root permission.&lt;br /&gt;
&lt;br /&gt;
So far, X windows using Xorg, and command line mode works fine. Here is the description of how Slackware was installed on to external micro SD Card. Was able to do some basic tests on the frame buffer display.&lt;br /&gt;
&lt;br /&gt;
=== Preparing SD Card on host computer ===&lt;br /&gt;
&lt;br /&gt;
Use fdisk to create one or two partitions, one for ext4 and other ( optional ) swap partition. Once these are created, assuming the device on host is /dev/sdc,&lt;br /&gt;
&lt;br /&gt;
    mkfs.ext4 /dev/sdc1&lt;br /&gt;
    sync&lt;br /&gt;
    eject sdc&lt;br /&gt;
    eject -t sdc&lt;br /&gt;
    mkdir slack&lt;br /&gt;
    mount /dev/sdc1 slack&lt;br /&gt;
    cd slack&lt;br /&gt;
    mkdir sl&lt;br /&gt;
    cd sl&lt;br /&gt;
&lt;br /&gt;
If you don't have Slackware installation files, [http://arm.slackware.com/getslack/ Get Slackware Arm] first. &lt;br /&gt;
&lt;br /&gt;
    mkdir slackware14.1&lt;br /&gt;
    cd slackware14.1&lt;br /&gt;
    (cd /path..to../slackware14.1 ; tar cfz - *) | (tar xfz - )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://sourceforge.net/projects/slackwareonapc8750/files/initrd-kirkwood.cpio.gz/download initrd-kirkwood.cpio] contains the setup program, but since I couldn't boot with custom initrd, sdc1 /sl area is prepared to have the installation files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    cpio -id &amp;lt; initrd-kirkwood.cpio&lt;br /&gt;
    sync&lt;br /&gt;
    umount slack&lt;br /&gt;
&lt;br /&gt;
Now that the sd card is ready for installation:&lt;br /&gt;
&lt;br /&gt;
    eject sdc&lt;br /&gt;
	&lt;br /&gt;
and plug it into the device. Once that is done,&lt;br /&gt;
&lt;br /&gt;
=== Getting installer ready ===&lt;br /&gt;
&lt;br /&gt;
Now plug the card in tablet pc, boot, from host computer,&lt;br /&gt;
&lt;br /&gt;
==== starting a adb shell with su ====&lt;br /&gt;
&lt;br /&gt;
    adb shell&lt;br /&gt;
    su&lt;br /&gt;
&lt;br /&gt;
==== chroot to installer ====&lt;br /&gt;
&lt;br /&gt;
    cd /data/local/tmp&lt;br /&gt;
    mkdir slackware&lt;br /&gt;
    mount /dev/block/mmcblk1p1 slackware&lt;br /&gt;
    cd slackware/sl&lt;br /&gt;
    export PATH=/data/local/tmp/bin:$PATH&lt;br /&gt;
    mountpoint proc || mount -t proc none proc/&lt;br /&gt;
    mountpoint sys || mount -t sysfs sys sys/&lt;br /&gt;
    mountpoint dev || mount -o bind  /dev dev/&lt;br /&gt;
    export PATH=/usr/bin:/bin:/usr/lib/setup:$PATH&lt;br /&gt;
    pushd /dev&lt;br /&gt;
    ln -s /dev/block/mmc1blk* .&lt;br /&gt;
    popd&lt;br /&gt;
    chroot . /bin/bash&lt;br /&gt;
    mount -t ext4 /dev/mmcblk1p1 mnt&lt;br /&gt;
&lt;br /&gt;
=== Running setup ===&lt;br /&gt;
&lt;br /&gt;
Install Slackware onto mmcblk1p1, from pre mounted directory, sdc1 : /slackware14.1/slackware&lt;br /&gt;
&lt;br /&gt;
    setup&lt;br /&gt;
        Proceed and select /dev/mmcblk1p1 as target, no format&lt;br /&gt;
        For source, select pre mounted directory option, /slackware14.1/slackware&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
=== Complete installation, and configuration ===&lt;br /&gt;
&lt;br /&gt;
Once the complete installation is done,&lt;br /&gt;
&lt;br /&gt;
    umount proc&lt;br /&gt;
    umount sys&lt;br /&gt;
    umount dev&lt;br /&gt;
    sync&lt;br /&gt;
    cd ../..&lt;br /&gt;
    umount slackware&lt;br /&gt;
&lt;br /&gt;
== Getting into installed Slackware: ==&lt;br /&gt;
&lt;br /&gt;
==== Running slackware su shell ====&lt;br /&gt;
&lt;br /&gt;
    adb shell&lt;br /&gt;
    su&lt;br /&gt;
    mount /dev/block/mmcblk1p1 slackware&lt;br /&gt;
    cd slackware&lt;br /&gt;
    mountpoint proc || mount -t proc none proc/&lt;br /&gt;
    mountpoint sys || mount -t sysfs sys sys/&lt;br /&gt;
    mountpoint dev || mount -o bind  /dev dev/&lt;br /&gt;
    test -d system || mkdir system&lt;br /&gt;
    mountpoint system || mount -o bind /system system&lt;br /&gt;
    export PATH=/usr/bin:/bin:/usr/lib/setup:$PATH&lt;br /&gt;
    chroot . /bin/su -	&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From here you can do &amp;quot;normal&amp;quot; Slackware activities, sort of. Main things that were lacking in my case were VTs (ttys). Compiling programs and running programs were ok. I ran couple of frame buffer tests too. Fortunately, removing the VT requirement from Xorg was pretty simple. Here is how it was done.&lt;br /&gt;
		&lt;br /&gt;
&lt;br /&gt;
== Getting Xorg up and running - kind of ==&lt;br /&gt;
&lt;br /&gt;
=== Getting Xorg compiled ===&lt;br /&gt;
&lt;br /&gt;
Ecept for Pointer ( touchscreen ) failure, Xorg seems to be working fine. evtest, xinput tests are showing touchscreen activity, but the cursor seems to be not moving. But if a window like xvkbd or xterm or so is launched, you can move the window using the touch screen!. And kvkbd input also works. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== lnx_init.c patch ====&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gv1/SlackwareOnMT6582/blob/master/lnx_init.patch lnx_init.patch]&lt;br /&gt;
&lt;br /&gt;
==== Compiling xorg-server-1.12.2 ====&lt;br /&gt;
&lt;br /&gt;
Download [http://www.x.org/releases/X11R7.7/src/everything/xorg-server-1.12.2.tar.bz2  xorg-server-1.12.2], &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    tar xf xorg-server-1.12.2.tar.bz2&lt;br /&gt;
&lt;br /&gt;
Also make changes to xorg-server-1.12.2/hw/xfree86/os-support/linux/lnx\_init.c so that VT / console related code is disabled. See the patch section.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    cd xorg-server-1.12.2&lt;br /&gt;
    export PKG_CONFIG_PATH=/opt/local/sw/share/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
    export PKG_CONFIG_PATH=/opt/local/sw/lib/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
    export LD_LIBRARY_PATH=/opt/local/sw/lib:$LD_LIBRARY_PATH&lt;br /&gt;
    export PATH=/opt/local/sw/bin:$PATH&lt;br /&gt;
    ./configure --prefix=/opt/local/sw --enable-kdrive --enable-kdrive-evdev --with-xkb-path=/opt/local/sw/share/X11/xkb --with-xkb-output=/var/lib/xkb --with-xkb-bin-directory=/opt/local/sw/bin --with-default-xkb-rules=xorg --with-default-xkb-model=pc104 --with-default-xkb-layout=us  --disable-xnest --disable-dmx --disable-xquartz --disable-xwin --disable-xephyr --disable-config-udev --enable-tslib --disable-docs  --disable-devel-docs LDFLAGS=-L/opt/local/sw/lib CFLAGS=-I/opt/local/sw/include&lt;br /&gt;
    make -j 3&lt;br /&gt;
&lt;br /&gt;
If all required packages are not on the system, compilation will fail. Download each of the requiered packags , untar, configure and install.&lt;br /&gt;
&lt;br /&gt;
    ./configure --prefix=/opt/local/sw&lt;br /&gt;
    make -j 3 install&lt;br /&gt;
&lt;br /&gt;
Once xorg-server-1.12.2 compilation is succesfull, &lt;br /&gt;
    &lt;br /&gt;
    make install&lt;br /&gt;
	&lt;br /&gt;
=== Compiling additional drivers required ===&lt;br /&gt;
&lt;br /&gt;
==== fbdev ====&lt;br /&gt;
&lt;br /&gt;
    xf86-video-fbdev-0.4.2&lt;br /&gt;
    export PKG_CONFIG_PATH=/opt/local/sw/lib/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
    ./configure --prefix=/opt/local/sw&lt;br /&gt;
&lt;br /&gt;
In src/fbdev.c xf86-video-fbdev-0.4.2/src/fbdev.c, comment:&lt;br /&gt;
&lt;br /&gt;
    // #include &amp;quot;mibstore.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    make -j 3&lt;br /&gt;
    make install&lt;br /&gt;
&lt;br /&gt;
==== evdev ====&lt;br /&gt;
&lt;br /&gt;
    xf86-input-evdev-2.7.0&lt;br /&gt;
    ./configure --prefix=/opt/local/sw&lt;br /&gt;
&lt;br /&gt;
    src/Makefile:&lt;br /&gt;
    evdev_drv_la_LIBADD = $(MTDEV_LIBS) $(UDEV_LIBS)&lt;br /&gt;
    ( if not done, causes evdev_drv.so: undefined symbol: udev_new when Xorg is ran)&lt;br /&gt;
&lt;br /&gt;
    make -j 3 &lt;br /&gt;
    make install&lt;br /&gt;
&lt;br /&gt;
Once installed make an xorg.conf [ see xorg.conf section ] in /etc/X11/&lt;br /&gt;
and run startx as described below.&lt;br /&gt;
&lt;br /&gt;
=== xorg.conf ===&lt;br /&gt;
&lt;br /&gt;
Copy this file to /etc/X11&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gv1/SlackwareOnMT6582/blob/master/xorg.conf xorg.conf]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Running X ===&lt;br /&gt;
&lt;br /&gt;
In the final setup, these manual steps to switch between X and Android is&lt;br /&gt;
not required, StartX app and wbar button &amp;quot;Back to Android&amp;quot; does these tasks.&lt;br /&gt;
&lt;br /&gt;
make sure display is on,&lt;br /&gt;
From slackware chroot environment in adb shell [ see section ]:&lt;br /&gt;
&lt;br /&gt;
    /system/bin/stop&lt;br /&gt;
    startx -- /opt/local/sw/bin/Xorg :0&lt;br /&gt;
  &lt;br /&gt;
    Try disown / nohup to keep X running when disconnected from PC.&lt;br /&gt;
&lt;br /&gt;
Or&lt;br /&gt;
    Touch and run &amp;quot;StartX&amp;quot; app. &lt;br /&gt;
&lt;br /&gt;
Once Finished,&lt;br /&gt;
&lt;br /&gt;
run: &lt;br /&gt;
&lt;br /&gt;
    /system/bin/start&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Or touch the &amp;quot;back to android&amp;quot; icon on wbar. to return to Android.&lt;br /&gt;
&lt;br /&gt;
=== Virtual Keyboard ===&lt;br /&gt;
&lt;br /&gt;
==== xvkbd ====&lt;br /&gt;
&lt;br /&gt;
Download [http://homepage3.nifty.com/tsato/xvkbd/ xvkbd] from [http://homepage3.nifty.com/tsato/xvkbd/xvkbd-3.5.tar.gz xvkbd-3.5.tar.gz], and install:&lt;br /&gt;
&lt;br /&gt;
    xmkf&lt;br /&gt;
    make &lt;br /&gt;
    make install&lt;br /&gt;
&lt;br /&gt;
Run: &lt;br /&gt;
&lt;br /&gt;
    xvkbd&lt;br /&gt;
&lt;br /&gt;
=== An application launcher ===&lt;br /&gt;
&lt;br /&gt;
==== wbar ====&lt;br /&gt;
&lt;br /&gt;
Download [https://github.com/warlockcc/wbar wbar] from [https://code.google.com/p/wbar/downloads/detail?name=wbar-2.3.4.tgz&amp;amp;can=2&amp;amp;q= wbar-2.3.4.tgz] at [https://code.google.com/p/wbar/downloads/list wbar downloads at code.google.com]&lt;br /&gt;
&lt;br /&gt;
==== .wbar ====&lt;br /&gt;
&lt;br /&gt;
Copy this file to /root/.wbar :&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gv1/SlackwareOnMT6582/blob/master/wbar .wbar]&lt;br /&gt;
&lt;br /&gt;
== Android app to launch X Windows directly from Android ==&lt;br /&gt;
&lt;br /&gt;
=== Install apk ===&lt;br /&gt;
&lt;br /&gt;
Install [https://github.com/gv1/SlackwareOnMT6582/releases/download/v0.1-alpha/StartXActivity-release.apk StartXActivity-release.apk] for starting X&lt;br /&gt;
windows from Android. You may use adb to install StartX after downloading it.&lt;br /&gt;
    &lt;br /&gt;
    adb install ./StartXActivity-release.apk&lt;br /&gt;
&lt;br /&gt;
Or if you prefer,&lt;br /&gt;
&lt;br /&gt;
=== Create StartX project ===&lt;br /&gt;
&lt;br /&gt;
To build the the apk from scratch, check [https://github.com/gv1/SlackwareOnMT6582 SlackwareOnMT6582] project at github&lt;br /&gt;
&lt;br /&gt;
Create a project:&lt;br /&gt;
&lt;br /&gt;
    android  create project -n StartX -k com.startx.android -a StartXActivity -t 1 -p .&lt;br /&gt;
&lt;br /&gt;
Copy [https://github.com/gv1/SlackwareOnMT6582/blob/master/StartXActivity.java StartXActivity.java] to  src/com/startx/android&lt;br /&gt;
&lt;br /&gt;
If required,&lt;br /&gt;
&lt;br /&gt;
    keytool -genkey -v -keystore gv.keystore \&lt;br /&gt;
     -alias gv_ks -keyalg RSA -keysize 2048 -validity 10000&lt;br /&gt;
&lt;br /&gt;
Add to project properties:&lt;br /&gt;
    key.store=./gv.keystore&lt;br /&gt;
    key.alias=gv_ks&lt;br /&gt;
&lt;br /&gt;
Build and install:&lt;br /&gt;
     ant release install&lt;br /&gt;
&lt;br /&gt;
==== StartXActivity.java ====&lt;br /&gt;
Copy this file to StartX/src/com/startx/android before build.&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gv1/SlackwareOnMT6582/blob/master/StartXActivity.java StartXActivity.java]&lt;br /&gt;
&lt;br /&gt;
==== chroot2slackware.sh ====&lt;br /&gt;
&lt;br /&gt;
Copy [https://github.com/gv1/SlackwareOnMT6582/blob/master/chroot2slackware.sh chroot2slackware.sh] to /data/local/tmp/ along with &lt;br /&gt;
&lt;br /&gt;
==== exitfromslackware.sh ====&lt;br /&gt;
&lt;br /&gt;
This file is called when &amp;quot;Back to Android&amp;quot; wbar button is touched. &lt;br /&gt;
&lt;br /&gt;
Copy [https://github.com/gv1/SlackwareOnMT6582/blob/master/exitfromslackware.sh exitfromslackware.sh] to /data/local/tmp/&lt;br /&gt;
&lt;br /&gt;
Thse files are used by StartX app to launch X windows.&lt;br /&gt;
&lt;br /&gt;
== Running some tests ==&lt;br /&gt;
&lt;br /&gt;
=== Testing the framebuffer ===		&lt;br /&gt;
&lt;br /&gt;
For these tests, I stopped android &amp;quot;SurfaceFlinger&amp;quot; and freed up /dev/graphics/fb0. by running &amp;quot;stop&amp;quot; command. Before running stop, make sure that the display is on ( not blank ).&lt;br /&gt;
&lt;br /&gt;
==== Stopping android - sort of ====&lt;br /&gt;
&lt;br /&gt;
Here is how to stop the SurfaceFlinger and get framebuffer free:&lt;br /&gt;
&lt;br /&gt;
From Slackware shell in adb:&lt;br /&gt;
&lt;br /&gt;
    stop&lt;br /&gt;
&lt;br /&gt;
Now the display goes blank, with backlight on.&lt;br /&gt;
&lt;br /&gt;
Get one of these tests.&lt;br /&gt;
[https://gist.githubusercontent.com/rafalrusin/1482697/raw/32c6c0d79b870ffb618aa7b7c664736ca5e150fe/fbtest.c  fbtest] or &lt;br /&gt;
[http://stackoverflow.com/questions/4996777/paint-pixels-to-screen-via-linux-framebuffer Paint-pixels-to-screen-  via-linux-framebuffer] or &lt;br /&gt;
[http://cep.xray.aps.anl.gov/software/qt4-x11-4.2.2/qtopiacore-testingframebuffer.html qtopiacore-testingframebuffer] All these tests worked on the Tablet. Transfer the tests to tablet using adb push&lt;br /&gt;
command.&lt;br /&gt;
&lt;br /&gt;
from Slackware shell, running under adb shell:&lt;br /&gt;
&lt;br /&gt;
    gcc fbtest.c&lt;br /&gt;
    ./a.out&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Getting back to android ====&lt;br /&gt;
  &lt;br /&gt;
Once done, go back to Slackware shell in adb, and:&lt;br /&gt;
&lt;br /&gt;
    start	&lt;br /&gt;
&lt;br /&gt;
After few seconds android display will be back on. &lt;br /&gt;
&lt;br /&gt;
=== Running evtest ===&lt;br /&gt;
&lt;br /&gt;
Download [http://cgit.freedesktop.org/~whot/evtest/tree/evtest.c evtest.c].&lt;br /&gt;
&lt;br /&gt;
   gcc -o gcc -o evtest evtest.c&lt;br /&gt;
   ./evtest&lt;br /&gt;
   see evtest.log for sample outpu&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== evtest.log ====&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gv1/SlackwareOnMT6582/blob/master/doc/evtest.log evtest.log]&lt;br /&gt;
&lt;br /&gt;
=== Running xinput ===&lt;br /&gt;
&lt;br /&gt;
    xinput --list&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
â¡ Virtual core pointer                         id=2    [master pointer  (3)]&lt;br /&gt;
â   â³ Virtual core XTEST pointer               id=4    [slave  pointer  (2)]&lt;br /&gt;
â   â³ mytouchscreen                            id=6    [slave  pointer  (2)]&lt;br /&gt;
â£ Virtual core keyboard                        id=3    [master keyboard (2)]&lt;br /&gt;
    â³ Virtual core XTEST keyboard              id=5    [slave  keyboard (3)]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== xinput log ====&lt;br /&gt;
&lt;br /&gt;
    xinput test 6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
motion a[0]=53 a[1]=58 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=53 a[1]=58 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=53 a[1]=58 &lt;br /&gt;
motion a[0]=513 a[1]=91 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=513 a[1]=91 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=513 a[1]=91 &lt;br /&gt;
motion a[0]=659 a[1]=436 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=659 a[1]=436 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=659 a[1]=436 &lt;br /&gt;
motion a[0]=624 a[1]=152 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=624 a[1]=152 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
motion a[0]=577 a[1]=174 &lt;br /&gt;
motion a[0]=501 a[1]=203 &lt;br /&gt;
motion a[0]=457 a[1]=219 &lt;br /&gt;
motion a[0]=411 a[1]=232 &lt;br /&gt;
motion a[0]=371 a[1]=240 &lt;br /&gt;
motion a[0]=341 a[1]=245 &lt;br /&gt;
button release 1 a[0]=341 a[1]=245 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</description>
			<pubDate>Sun, 07 Sep 2014 13:14:59 GMT</pubDate>
			<dc:creator>Gv</dc:creator>
			<comments>https://www.slackwiki.com/Talk:SlackwareOnMt6582Tablet</comments>
		</item>
		<item>
			<title>SlackwareOnMt6582Tablet</title>
			<link>https://www.slackwiki.com/index.php?title=SlackwareOnMt6582Tablet&amp;diff=944</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=SlackwareOnMt6582Tablet&amp;diff=944</guid>
			<description>&lt;p&gt;Gv: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Specifications of the Tablet PC which was used here ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Processor : Arm Cortex A7, 1.3 GHz dual core.&lt;br /&gt;
             : ARMv7 Processor rev 3 (v7l),&lt;br /&gt;
   Hardware  : MT8312&lt;br /&gt;
   SOC       : mt6582.&lt;br /&gt;
   Memory    : 512MB RAM&lt;br /&gt;
   Storage   : 4GB Built in storage.&lt;br /&gt;
   Micro SD  : Slot for upto 32GB&lt;br /&gt;
   Display   : 7&amp;quot; WVGA 800x480&lt;br /&gt;
   OS        : Android 4.2 Jelly Bean&lt;br /&gt;
   GPU       : Mali?&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
&lt;br /&gt;
Get [http://arm.slackware.com/getslack/ Slackware] for arm&lt;br /&gt;
&lt;br /&gt;
[http://s7.postimg.org/fww1ibfdn/image.png Screenshot] of X windows with fluxbox and wbar. And [http://s15.postimg.org/izdxddkqj/image.png another one].&lt;br /&gt;
&lt;br /&gt;
[http://www.techverse.net/fastest-root-android-phone-computer/ Framaroot-1.9.3.apk]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gv1/SlackwareOnMT6582/releases SlackwareOnMT6582] page at github, includes [https://github.com/gv1/SlackwareOnMT6582/releases StartX] apk.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Rooting the Tablet PC ==&lt;br /&gt;
&lt;br /&gt;
A tablet with root access is required. I used [http://www.techverse.net/fastest-root-android-phone-computer/ Framaroot-1.9.3.apk] to root the device. &lt;br /&gt;
&lt;br /&gt;
== Installing Linux - Slackware 14.1, sort of. ==&lt;br /&gt;
&lt;br /&gt;
With the problem of not having kernel source for the SOC, and no no bootloader unlock possible yet, next best option was to use a chroot environment. Please not that you can try command line stuff with [http://proot.me/ proot] ( which requires no root access). Xorg however requires root permission since /dev/graphics/fb0 requires root permission.&lt;br /&gt;
&lt;br /&gt;
So far, X windows using Xorg, and command line mode works fine. Here is the description of how Slackware was installed on to external micro SD Card. Was able to do some basic tests on the frame buffer display.&lt;br /&gt;
&lt;br /&gt;
=== Preparing SD Card on host computer ===&lt;br /&gt;
&lt;br /&gt;
Use fdisk to create one or two partitions, one for ext4 and other ( optional ) swap partition. Once these are created, assuming the device on host is /dev/sdc,&lt;br /&gt;
&lt;br /&gt;
    mkfs.ext4 /dev/sdc1&lt;br /&gt;
    sync&lt;br /&gt;
    eject sdc&lt;br /&gt;
    eject -t sdc&lt;br /&gt;
    mkdir slack&lt;br /&gt;
    mount /dev/sdc1 slack&lt;br /&gt;
    cd slack&lt;br /&gt;
    mkdir sl&lt;br /&gt;
    cd sl&lt;br /&gt;
&lt;br /&gt;
If you don't have Slackware installation files, [http://arm.slackware.com/getslack/ Get Slackware Arm] first. &lt;br /&gt;
&lt;br /&gt;
    mkdir slackware14.1&lt;br /&gt;
    cd slackware14.1&lt;br /&gt;
    (cd /path..to../slackware14.1 ; tar cfz - *) | (tar xfz - )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://sourceforge.net/projects/slackwareonapc8750/files/initrd-kirkwood.cpio.gz/download initrd-kirkwood.cpio] contains the setup program, but since I couldn't boot with custom initrd, sdc1 /sl area is prepared to have the installation files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    cpio -id &amp;lt; initrd-kirkwood.cpio&lt;br /&gt;
    sync&lt;br /&gt;
    umount slack&lt;br /&gt;
&lt;br /&gt;
Now that the sd card is ready for installation:&lt;br /&gt;
&lt;br /&gt;
    eject sdc&lt;br /&gt;
	&lt;br /&gt;
and plug it into the device. Once that is done,&lt;br /&gt;
&lt;br /&gt;
=== Getting installer ready ===&lt;br /&gt;
&lt;br /&gt;
Now plug the card in tablet pc, boot, from host computer,&lt;br /&gt;
&lt;br /&gt;
==== starting a adb shell with su ====&lt;br /&gt;
&lt;br /&gt;
    adb shell&lt;br /&gt;
    su&lt;br /&gt;
&lt;br /&gt;
==== chroot to installer ====&lt;br /&gt;
&lt;br /&gt;
    cd /data/local/tmp&lt;br /&gt;
    mkdir slackware&lt;br /&gt;
    mount /dev/block/mmcblk1p1 slackware&lt;br /&gt;
    cd slackware/sl&lt;br /&gt;
    export PATH=/data/local/tmp/bin:$PATH&lt;br /&gt;
    mountpoint proc || mount -t proc none proc/&lt;br /&gt;
    mountpoint sys || mount -t sysfs sys sys/&lt;br /&gt;
    mountpoint dev || mount -o bind  /dev dev/&lt;br /&gt;
    export PATH=/usr/bin:/bin:/usr/lib/setup:$PATH&lt;br /&gt;
    pushd /dev&lt;br /&gt;
    ln -s /dev/block/mmc1blk* .&lt;br /&gt;
    popd&lt;br /&gt;
    chroot . /bin/bash&lt;br /&gt;
    mount -t ext4 /dev/mmcblk1p1 mnt&lt;br /&gt;
&lt;br /&gt;
=== Running setup ===&lt;br /&gt;
&lt;br /&gt;
Install Slackware onto mmcblk1p1, from pre mounted directory, sdc1 : /slackware14.1/slackware&lt;br /&gt;
&lt;br /&gt;
    setup&lt;br /&gt;
        Proceed and select /dev/mmcblk1p1 as target, no format&lt;br /&gt;
        For source, select pre mounted directory option, /slackware14.1/slackware&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
=== Complete installation, and configuration ===&lt;br /&gt;
&lt;br /&gt;
Once the complete installation is done,&lt;br /&gt;
&lt;br /&gt;
    umount proc&lt;br /&gt;
    umount sys&lt;br /&gt;
    umount dev&lt;br /&gt;
    sync&lt;br /&gt;
    cd ../..&lt;br /&gt;
    umount slackware&lt;br /&gt;
&lt;br /&gt;
== Getting into installed Slackware: ==&lt;br /&gt;
&lt;br /&gt;
==== Running slackware su shell ====&lt;br /&gt;
&lt;br /&gt;
    adb shell&lt;br /&gt;
    su&lt;br /&gt;
    mount /dev/block/mmcblk1p1 slackware&lt;br /&gt;
    cd slackware&lt;br /&gt;
    mountpoint proc || mount -t proc none proc/&lt;br /&gt;
    mountpoint sys || mount -t sysfs sys sys/&lt;br /&gt;
    mountpoint dev || mount -o bind  /dev dev/&lt;br /&gt;
    test -d system || mkdir system&lt;br /&gt;
    mountpoint system || mount -o bind /system system&lt;br /&gt;
    export PATH=/usr/bin:/bin:/usr/lib/setup:$PATH&lt;br /&gt;
    chroot . /bin/su -	&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From here you can do &amp;quot;normal&amp;quot; Slackware activities, sort of. Main things that were lacking in my case were VTs (ttys). Compiling programs and running programs were ok. I ran couple of frame buffer tests too. Fortunately, removing the VT requirement from Xorg was pretty simple. Here is how it was done.&lt;br /&gt;
		&lt;br /&gt;
&lt;br /&gt;
== Getting Xorg up and running - kind of ==&lt;br /&gt;
&lt;br /&gt;
=== Getting Xorg compiled ===&lt;br /&gt;
&lt;br /&gt;
Ecept for Pointer ( touchscreen ) failure, Xorg seems to be working fine. evtest, xinput tests are showing touchscreen activity, but the cursor seems to be not moving. But if a window like xvkbd or xterm or so is launched, you can move the window using the touch screen!. And kvkbd input also works. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== lnx_init.c patch ====&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gv1/SlackwareOnMT6582/blob/master/lnx_init.patch lnx_init.patch]&lt;br /&gt;
&lt;br /&gt;
==== Compiling xorg-server-1.12.2 ====&lt;br /&gt;
&lt;br /&gt;
Download [http://www.x.org/releases/X11R7.7/src/everything/xorg-server-1.12.2.tar.bz2  xorg-server-1.12.2], &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    tar xf xorg-server-1.12.2.tar.bz2&lt;br /&gt;
&lt;br /&gt;
Also make changes to xorg-server-1.12.2/hw/xfree86/os-support/linux/lnx\_init.c so that VT / console related code is disabled. See the patch section.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    cd xorg-server-1.12.2&lt;br /&gt;
    export PKG_CONFIG_PATH=/opt/local/sw/share/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
    export PKG_CONFIG_PATH=/opt/local/sw/lib/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
    export LD_LIBRARY_PATH=/opt/local/sw/lib:$LD_LIBRARY_PATH&lt;br /&gt;
    export PATH=/opt/local/sw/bin:$PATH&lt;br /&gt;
    ./configure --prefix=/opt/local/sw --enable-kdrive --enable-kdrive-evdev --with-xkb-path=/opt/local/sw/share/X11/xkb --with-xkb-output=/var/lib/xkb --with-xkb-bin-directory=/opt/local/sw/bin --with-default-xkb-rules=xorg --with-default-xkb-model=pc104 --with-default-xkb-layout=us  --disable-xnest --disable-dmx --disable-xquartz --disable-xwin --disable-xephyr --disable-config-udev --enable-tslib --disable-docs  --disable-devel-docs LDFLAGS=-L/opt/local/sw/lib CFLAGS=-I/opt/local/sw/include&lt;br /&gt;
    make -j 3&lt;br /&gt;
&lt;br /&gt;
If all required packages are not on the system, compilation will fail. Download each of the requiered packags , untar, configure and install.&lt;br /&gt;
&lt;br /&gt;
    ./configure --prefix=/opt/local/sw&lt;br /&gt;
    make -j 3 install&lt;br /&gt;
&lt;br /&gt;
Once xorg-server-1.12.2 compilation is succesfull, &lt;br /&gt;
    &lt;br /&gt;
    make install&lt;br /&gt;
	&lt;br /&gt;
=== Compiling additional drivers required ===&lt;br /&gt;
&lt;br /&gt;
==== fbdev ====&lt;br /&gt;
&lt;br /&gt;
    xf86-video-fbdev-0.4.2&lt;br /&gt;
    export PKG_CONFIG_PATH=/opt/local/sw/lib/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
    ./configure --prefix=/opt/local/sw&lt;br /&gt;
&lt;br /&gt;
In src/fbdev.c xf86-video-fbdev-0.4.2/src/fbdev.c, comment:&lt;br /&gt;
&lt;br /&gt;
    // #include &amp;quot;mibstore.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    make -j 3&lt;br /&gt;
    make install&lt;br /&gt;
&lt;br /&gt;
==== evdev ====&lt;br /&gt;
&lt;br /&gt;
    xf86-input-evdev-2.7.0&lt;br /&gt;
    ./configure --prefix=/opt/local/sw&lt;br /&gt;
&lt;br /&gt;
    src/Makefile:&lt;br /&gt;
    evdev_drv_la_LIBADD = $(MTDEV_LIBS) $(UDEV_LIBS)&lt;br /&gt;
    ( if not done, causes evdev_drv.so: undefined symbol: udev_new when Xorg is ran)&lt;br /&gt;
&lt;br /&gt;
    make -j 3 &lt;br /&gt;
    make install&lt;br /&gt;
&lt;br /&gt;
Once installed make an xorg.conf [ see xorg.conf section ] in /etc/X11/&lt;br /&gt;
and run startx as described below.&lt;br /&gt;
&lt;br /&gt;
=== xorg.conf ===&lt;br /&gt;
&lt;br /&gt;
Copy this file to /etc/X11&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gv1/SlackwareOnMT6582/blob/master/xorg.conf xorg.conf]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Running X ===&lt;br /&gt;
&lt;br /&gt;
In the final setup, these manual steps to switch between X and Android is&lt;br /&gt;
not required, StartX app and wbar button &amp;quot;Back to Android&amp;quot; does these tasks.&lt;br /&gt;
&lt;br /&gt;
make sure display is on,&lt;br /&gt;
From slackware chroot environment in adb shell [ see section ]:&lt;br /&gt;
&lt;br /&gt;
    /system/bin/stop&lt;br /&gt;
    startx -- /opt/local/sw/bin/Xorg :0&lt;br /&gt;
  &lt;br /&gt;
    Try disown / nohup to keep X running when disconnected from PC.&lt;br /&gt;
&lt;br /&gt;
Or&lt;br /&gt;
    Touch and run &amp;quot;StartX&amp;quot; app. &lt;br /&gt;
&lt;br /&gt;
Once Finished,&lt;br /&gt;
&lt;br /&gt;
run: &lt;br /&gt;
&lt;br /&gt;
    /system/bin/start&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Or touch the &amp;quot;back to android&amp;quot; icon on wbar. to return to Android.&lt;br /&gt;
&lt;br /&gt;
=== Virtual Keyboard ===&lt;br /&gt;
&lt;br /&gt;
==== xvkbd ====&lt;br /&gt;
&lt;br /&gt;
Download [http://homepage3.nifty.com/tsato/xvkbd/ xvkbd] from [http://homepage3.nifty.com/tsato/xvkbd/xvkbd-3.5.tar.gz xvkbd-3.5.tar.gz], and install:&lt;br /&gt;
&lt;br /&gt;
    xmkf&lt;br /&gt;
    make &lt;br /&gt;
    make install&lt;br /&gt;
&lt;br /&gt;
Run: &lt;br /&gt;
&lt;br /&gt;
    xvkbd&lt;br /&gt;
&lt;br /&gt;
=== An application launcher ===&lt;br /&gt;
&lt;br /&gt;
==== wbar ====&lt;br /&gt;
&lt;br /&gt;
Download [https://github.com/warlockcc/wbar wbar] from [https://code.google.com/p/wbar/downloads/detail?name=wbar-2.3.4.tgz&amp;amp;can=2&amp;amp;q= wbar-2.3.4.tgz] at [https://code.google.com/p/wbar/downloads/list wbar downloads at code.google.com]&lt;br /&gt;
&lt;br /&gt;
==== .wbar ====&lt;br /&gt;
&lt;br /&gt;
Copy this file to /root/.wbar :&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gv1/SlackwareOnMT6582/blob/master/wbar .wbar]&lt;br /&gt;
&lt;br /&gt;
== Android app to launch X Windows directly from Android ==&lt;br /&gt;
&lt;br /&gt;
=== Install apk ====&lt;br /&gt;
&lt;br /&gt;
Install [https://github.com/gv1/SlackwareOnMT6582/releases/download/v0.1-alpha/StartXActivity-release.apk StartXActivity-release.apk] for starting X&lt;br /&gt;
windows from Android. You may use adb to install StartX after downloading it.&lt;br /&gt;
    &lt;br /&gt;
    adb install ./StartXActivity-release.apk&lt;br /&gt;
&lt;br /&gt;
Or if you prefer,&lt;br /&gt;
&lt;br /&gt;
=== Create StartX project ===&lt;br /&gt;
&lt;br /&gt;
To build the the apk from scratch, check [https://github.com/gv1/SlackwareOnMT6582 SlackwareOnMT6582] project at github&lt;br /&gt;
&lt;br /&gt;
Create a project:&lt;br /&gt;
&lt;br /&gt;
    android  create project -n StartX -k com.startx.android -a StartXActivity -t 1 -p .&lt;br /&gt;
&lt;br /&gt;
Copy [https://github.com/gv1/SlackwareOnMT6582/blob/master/StartXActivity.java StartXActivity.java] to  src/com/startx/android&lt;br /&gt;
&lt;br /&gt;
If required,&lt;br /&gt;
&lt;br /&gt;
    keytool -genkey -v -keystore gv.keystore \&lt;br /&gt;
     -alias gv_ks -keyalg RSA -keysize 2048 -validity 10000&lt;br /&gt;
&lt;br /&gt;
Add to project properties:&lt;br /&gt;
    key.store=./gv.keystore&lt;br /&gt;
    key.alias=gv_ks&lt;br /&gt;
&lt;br /&gt;
Build and install:&lt;br /&gt;
     ant release install&lt;br /&gt;
&lt;br /&gt;
==== StartXActivity.java ====&lt;br /&gt;
Copy this file to StartX/src/com/startx/android before build.&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gv1/SlackwareOnMT6582/blob/master/StartXActivity.java StartXActivity.java]&lt;br /&gt;
&lt;br /&gt;
==== chroot2slackware.sh ====&lt;br /&gt;
&lt;br /&gt;
Copy [https://github.com/gv1/SlackwareOnMT6582/blob/master/chroot2slackware.sh chroot2slackware.sh] to /data/local/tmp/ along with &lt;br /&gt;
&lt;br /&gt;
==== exitfromslackware.sh ====&lt;br /&gt;
&lt;br /&gt;
This file is called when &amp;quot;Back to Android&amp;quot; wbar button is touched. &lt;br /&gt;
&lt;br /&gt;
Copy [https://github.com/gv1/SlackwareOnMT6582/blob/master/exitfromslackware.sh exitfromslackware.sh] to /data/local/tmp/&lt;br /&gt;
&lt;br /&gt;
Thse files are used by StartX app to launch X windows.&lt;br /&gt;
&lt;br /&gt;
== Running some tests ==&lt;br /&gt;
&lt;br /&gt;
=== Testing the framebuffer ===		&lt;br /&gt;
&lt;br /&gt;
For these tests, I stopped android &amp;quot;SurfaceFlinger&amp;quot; and freed up /dev/graphics/fb0. by running &amp;quot;stop&amp;quot; command. Before running stop, make sure that the display is on ( not blank ).&lt;br /&gt;
&lt;br /&gt;
==== Stopping android - sort of ====&lt;br /&gt;
&lt;br /&gt;
Here is how to stop the SurfaceFlinger and get framebuffer free:&lt;br /&gt;
&lt;br /&gt;
From Slackware shell in adb:&lt;br /&gt;
&lt;br /&gt;
    stop&lt;br /&gt;
&lt;br /&gt;
Now the display goes blank, with backlight on.&lt;br /&gt;
&lt;br /&gt;
Get one of these tests.&lt;br /&gt;
[https://gist.githubusercontent.com/rafalrusin/1482697/raw/32c6c0d79b870ffb618aa7b7c664736ca5e150fe/fbtest.c  fbtest] or &lt;br /&gt;
[http://stackoverflow.com/questions/4996777/paint-pixels-to-screen-via-linux-framebuffer Paint-pixels-to-screen-  via-linux-framebuffer] or &lt;br /&gt;
[http://cep.xray.aps.anl.gov/software/qt4-x11-4.2.2/qtopiacore-testingframebuffer.html qtopiacore-testingframebuffer] All these tests worked on the Tablet. Transfer the tests to tablet using adb push&lt;br /&gt;
command.&lt;br /&gt;
&lt;br /&gt;
from Slackware shell, running under adb shell:&lt;br /&gt;
&lt;br /&gt;
    gcc fbtest.c&lt;br /&gt;
    ./a.out&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Getting back to android ====&lt;br /&gt;
  &lt;br /&gt;
Once done, go back to Slackware shell in adb, and:&lt;br /&gt;
&lt;br /&gt;
    start	&lt;br /&gt;
&lt;br /&gt;
After few seconds android display will be back on. &lt;br /&gt;
&lt;br /&gt;
=== Running evtest ===&lt;br /&gt;
&lt;br /&gt;
Download [http://cgit.freedesktop.org/~whot/evtest/tree/evtest.c evtest.c].&lt;br /&gt;
&lt;br /&gt;
   gcc -o gcc -o evtest evtest.c&lt;br /&gt;
   ./evtest&lt;br /&gt;
   see evtest.log for sample outpu&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== evtest.log ====&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gv1/SlackwareOnMT6582/blob/master/doc/evtest.log evtest.log]&lt;br /&gt;
&lt;br /&gt;
=== Running xinput ===&lt;br /&gt;
&lt;br /&gt;
    xinput --list&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
â¡ Virtual core pointer                         id=2    [master pointer  (3)]&lt;br /&gt;
â   â³ Virtual core XTEST pointer               id=4    [slave  pointer  (2)]&lt;br /&gt;
â   â³ mytouchscreen                            id=6    [slave  pointer  (2)]&lt;br /&gt;
â£ Virtual core keyboard                        id=3    [master keyboard (2)]&lt;br /&gt;
    â³ Virtual core XTEST keyboard              id=5    [slave  keyboard (3)]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== xinput log ====&lt;br /&gt;
&lt;br /&gt;
    xinput test 6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
motion a[0]=53 a[1]=58 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=53 a[1]=58 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=53 a[1]=58 &lt;br /&gt;
motion a[0]=513 a[1]=91 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=513 a[1]=91 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=513 a[1]=91 &lt;br /&gt;
motion a[0]=659 a[1]=436 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=659 a[1]=436 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=659 a[1]=436 &lt;br /&gt;
motion a[0]=624 a[1]=152 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=624 a[1]=152 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
motion a[0]=577 a[1]=174 &lt;br /&gt;
motion a[0]=501 a[1]=203 &lt;br /&gt;
motion a[0]=457 a[1]=219 &lt;br /&gt;
motion a[0]=411 a[1]=232 &lt;br /&gt;
motion a[0]=371 a[1]=240 &lt;br /&gt;
motion a[0]=341 a[1]=245 &lt;br /&gt;
button release 1 a[0]=341 a[1]=245 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</description>
			<pubDate>Sun, 07 Sep 2014 13:14:06 GMT</pubDate>
			<dc:creator>Gv</dc:creator>
			<comments>https://www.slackwiki.com/Talk:SlackwareOnMt6582Tablet</comments>
		</item>
		<item>
			<title>SlackwareOnMt6582Tablet</title>
			<link>https://www.slackwiki.com/index.php?title=SlackwareOnMt6582Tablet&amp;diff=943</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=SlackwareOnMt6582Tablet&amp;diff=943</guid>
			<description>&lt;p&gt;Gv: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Specifications of the Tablet PC which was used here ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Processor : Arm Cortex A7, 1.3 GHz dual core.&lt;br /&gt;
             : ARMv7 Processor rev 3 (v7l),&lt;br /&gt;
   Hardware  : MT8312&lt;br /&gt;
   SOC       : mt6582.&lt;br /&gt;
   Memory    : 512MB RAM&lt;br /&gt;
   Storage   : 4GB Built in storage.&lt;br /&gt;
   Micro SD  : Slot for upto 32GB&lt;br /&gt;
   Display   : 7&amp;quot; WVGA 800x480&lt;br /&gt;
   OS        : Android 4.2 Jelly Bean&lt;br /&gt;
   GPU       : Mali?&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
&lt;br /&gt;
Get [http://arm.slackware.com/getslack/ Slackware] for arm&lt;br /&gt;
&lt;br /&gt;
[http://s7.postimg.org/fww1ibfdn/image.png Screenshot] of X windows with fluxbox and wbar. And [http://s15.postimg.org/izdxddkqj/image.png another one].&lt;br /&gt;
&lt;br /&gt;
[http://www.techverse.net/fastest-root-android-phone-computer/ Framaroot-1.9.3.apk]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gv1/SlackwareOnMT6582/releases SlackwareOnMT6582] page at github, includes [https://github.com/gv1/SlackwareOnMT6582/releases StartX] apk.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Rooting the Tablet PC ==&lt;br /&gt;
&lt;br /&gt;
A tablet with root access is required. I used [http://www.techverse.net/fastest-root-android-phone-computer/ Framaroot-1.9.3.apk] to root the device. &lt;br /&gt;
&lt;br /&gt;
== Installing Linux - Slackware 14.1, sort of. ==&lt;br /&gt;
&lt;br /&gt;
With the problem of not having kernel source for the SOC, and no no bootloader unlock possible yet, next best option was to use a chroot environment. Please not that you can try command line stuff with [http://proot.me/ proot] ( which requires no root access). Xorg however requires root permission since /dev/graphics/fb0 requires root permission.&lt;br /&gt;
&lt;br /&gt;
So far, X windows using Xorg, and command line mode works fine. Here is the description of how Slackware was installed on to external micro SD Card. Was able to do some basic tests on the frame buffer display.&lt;br /&gt;
&lt;br /&gt;
=== Preparing SD Card on host computer ===&lt;br /&gt;
&lt;br /&gt;
Use fdisk to create one or two partitions, one for ext4 and other ( optional ) swap partition. Once these are created, assuming the device on host is /dev/sdc,&lt;br /&gt;
&lt;br /&gt;
    mkfs.ext4 /dev/sdc1&lt;br /&gt;
    sync&lt;br /&gt;
    eject sdc&lt;br /&gt;
    eject -t sdc&lt;br /&gt;
    mkdir slack&lt;br /&gt;
    mount /dev/sdc1 slack&lt;br /&gt;
    cd slack&lt;br /&gt;
    mkdir sl&lt;br /&gt;
    cd sl&lt;br /&gt;
&lt;br /&gt;
If you don't have Slackware installation files, [http://arm.slackware.com/getslack/ Get Slackware Arm] first. &lt;br /&gt;
&lt;br /&gt;
    mkdir slackware14.1&lt;br /&gt;
    cd slackware14.1&lt;br /&gt;
    (cd /path..to../slackware14.1 ; tar cfz - *) | (tar xfz - )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://sourceforge.net/projects/slackwareonapc8750/files/initrd-kirkwood.cpio.gz/download initrd-kirkwood.cpio] contains the setup program, but since I couldn't boot with custom initrd, sdc1 /sl area is prepared to have the installation files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    cpio -id &amp;lt; initrd-kirkwood.cpio&lt;br /&gt;
    sync&lt;br /&gt;
    umount slack&lt;br /&gt;
&lt;br /&gt;
Now that the sd card is ready for installation:&lt;br /&gt;
&lt;br /&gt;
    eject sdc&lt;br /&gt;
	&lt;br /&gt;
and plug it into the device. Once that is done,&lt;br /&gt;
&lt;br /&gt;
=== Getting installer ready ===&lt;br /&gt;
&lt;br /&gt;
Now plug the card in tablet pc, boot, from host computer,&lt;br /&gt;
&lt;br /&gt;
==== starting a adb shell with su ====&lt;br /&gt;
&lt;br /&gt;
    adb shell&lt;br /&gt;
    su&lt;br /&gt;
&lt;br /&gt;
==== chroot to installer ====&lt;br /&gt;
&lt;br /&gt;
    cd /data/local/tmp&lt;br /&gt;
    mkdir slackware&lt;br /&gt;
    mount /dev/block/mmcblk1p1 slackware&lt;br /&gt;
    cd slackware/sl&lt;br /&gt;
    export PATH=/data/local/tmp/bin:$PATH&lt;br /&gt;
    mountpoint proc || mount -t proc none proc/&lt;br /&gt;
    mountpoint sys || mount -t sysfs sys sys/&lt;br /&gt;
    mountpoint dev || mount -o bind  /dev dev/&lt;br /&gt;
    export PATH=/usr/bin:/bin:/usr/lib/setup:$PATH&lt;br /&gt;
    pushd /dev&lt;br /&gt;
    ln -s /dev/block/mmc1blk* .&lt;br /&gt;
    popd&lt;br /&gt;
    chroot . /bin/bash&lt;br /&gt;
    mount -t ext4 /dev/mmcblk1p1 mnt&lt;br /&gt;
&lt;br /&gt;
=== Running setup ===&lt;br /&gt;
&lt;br /&gt;
Install Slackware onto mmcblk1p1, from pre mounted directory, sdc1 : /slackware14.1/slackware&lt;br /&gt;
&lt;br /&gt;
    setup&lt;br /&gt;
        Proceed and select /dev/mmcblk1p1 as target, no format&lt;br /&gt;
        For source, select pre mounted directory option, /slackware14.1/slackware&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
=== Complete installation, and configuration ===&lt;br /&gt;
&lt;br /&gt;
Once the complete installation is done,&lt;br /&gt;
&lt;br /&gt;
    umount proc&lt;br /&gt;
    umount sys&lt;br /&gt;
    umount dev&lt;br /&gt;
    sync&lt;br /&gt;
    cd ../..&lt;br /&gt;
    umount slackware&lt;br /&gt;
&lt;br /&gt;
== Getting into installed Slackware: ==&lt;br /&gt;
&lt;br /&gt;
==== Running slackware su shell ====&lt;br /&gt;
&lt;br /&gt;
    adb shell&lt;br /&gt;
    su&lt;br /&gt;
    mount /dev/block/mmcblk1p1 slackware&lt;br /&gt;
    cd slackware&lt;br /&gt;
    mountpoint proc || mount -t proc none proc/&lt;br /&gt;
    mountpoint sys || mount -t sysfs sys sys/&lt;br /&gt;
    mountpoint dev || mount -o bind  /dev dev/&lt;br /&gt;
    test -d system || mkdir system&lt;br /&gt;
    mountpoint system || mount -o bind /system system&lt;br /&gt;
    export PATH=/usr/bin:/bin:/usr/lib/setup:$PATH&lt;br /&gt;
    chroot . /bin/su -	&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From here you can do &amp;quot;normal&amp;quot; Slackware activities, sort of. Main things that were lacking in my case were VTs (ttys). Compiling programs and running programs were ok. I ran couple of frame buffer tests too. Fortunately, removing the VT requirement from Xorg was pretty simple. Here is how it was done.&lt;br /&gt;
		&lt;br /&gt;
&lt;br /&gt;
== Getting Xorg up and running - kind of ==&lt;br /&gt;
&lt;br /&gt;
=== Getting Xorg compiled ===&lt;br /&gt;
&lt;br /&gt;
Ecept for Pointer ( touchscreen ) failure, Xorg seems to be working fine. evtest, xinput tests are showing touchscreen activity, but the cursor seems to be not moving. But if a window like xvkbd or xterm or so is launched, you can move the window using the touch screen!. And kvkbd input also works. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== lnx_init.c patch ====&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gv1/SlackwareOnMT6582/blob/master/lnx_init.patch lnx_init.patch]&lt;br /&gt;
&lt;br /&gt;
==== Compiling xorg-server-1.12.2 ====&lt;br /&gt;
&lt;br /&gt;
Download [http://www.x.org/releases/X11R7.7/src/everything/xorg-server-1.12.2.tar.bz2  xorg-server-1.12.2], &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    tar xf xorg-server-1.12.2.tar.bz2&lt;br /&gt;
&lt;br /&gt;
Also make changes to xorg-server-1.12.2/hw/xfree86/os-support/linux/lnx\_init.c so that VT / console related code is disabled. See the patch section.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    cd xorg-server-1.12.2&lt;br /&gt;
    export PKG_CONFIG_PATH=/opt/local/sw/share/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
    export PKG_CONFIG_PATH=/opt/local/sw/lib/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
    export LD_LIBRARY_PATH=/opt/local/sw/lib:$LD_LIBRARY_PATH&lt;br /&gt;
    export PATH=/opt/local/sw/bin:$PATH&lt;br /&gt;
    ./configure --prefix=/opt/local/sw --enable-kdrive --enable-kdrive-evdev --with-xkb-path=/opt/local/sw/share/X11/xkb --with-xkb-output=/var/lib/xkb --with-xkb-bin-directory=/opt/local/sw/bin --with-default-xkb-rules=xorg --with-default-xkb-model=pc104 --with-default-xkb-layout=us  --disable-xnest --disable-dmx --disable-xquartz --disable-xwin --disable-xephyr --disable-config-udev --enable-tslib --disable-docs  --disable-devel-docs LDFLAGS=-L/opt/local/sw/lib CFLAGS=-I/opt/local/sw/include&lt;br /&gt;
    make -j 3&lt;br /&gt;
&lt;br /&gt;
If all required packages are not on the system, compilation will fail. Download each of the requiered packags , untar, configure and install.&lt;br /&gt;
&lt;br /&gt;
    ./configure --prefix=/opt/local/sw&lt;br /&gt;
    make -j 3 install&lt;br /&gt;
&lt;br /&gt;
Once xorg-server-1.12.2 compilation is succesfull, &lt;br /&gt;
    &lt;br /&gt;
    make install&lt;br /&gt;
	&lt;br /&gt;
=== Compiling additional drivers required ===&lt;br /&gt;
&lt;br /&gt;
==== fbdev ====&lt;br /&gt;
&lt;br /&gt;
    xf86-video-fbdev-0.4.2&lt;br /&gt;
    export PKG_CONFIG_PATH=/opt/local/sw/lib/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
    ./configure --prefix=/opt/local/sw&lt;br /&gt;
&lt;br /&gt;
In src/fbdev.c xf86-video-fbdev-0.4.2/src/fbdev.c, comment:&lt;br /&gt;
&lt;br /&gt;
    // #include &amp;quot;mibstore.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    make -j 3&lt;br /&gt;
    make install&lt;br /&gt;
&lt;br /&gt;
==== evdev ====&lt;br /&gt;
&lt;br /&gt;
    xf86-input-evdev-2.7.0&lt;br /&gt;
    ./configure --prefix=/opt/local/sw&lt;br /&gt;
&lt;br /&gt;
    src/Makefile:&lt;br /&gt;
    evdev_drv_la_LIBADD = $(MTDEV_LIBS) $(UDEV_LIBS)&lt;br /&gt;
    ( if not done, causes evdev_drv.so: undefined symbol: udev_new when Xorg is ran)&lt;br /&gt;
&lt;br /&gt;
    make -j 3 &lt;br /&gt;
    make install&lt;br /&gt;
&lt;br /&gt;
Once installed make an xorg.conf [ see xorg.conf section ] in /etc/X11/&lt;br /&gt;
and run startx as described below.&lt;br /&gt;
&lt;br /&gt;
=== xorg.conf ===&lt;br /&gt;
&lt;br /&gt;
Copy this file to /etc/X11&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gv1/SlackwareOnMT6582/blob/master/xorg.conf xorg.conf]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Running X ===&lt;br /&gt;
&lt;br /&gt;
In the final setup, these manual steps to switch between X and Android is&lt;br /&gt;
not required, StartX app and wbar button &amp;quot;Back to Android&amp;quot; does these tasks.&lt;br /&gt;
&lt;br /&gt;
make sure display is on,&lt;br /&gt;
From slackware chroot environment in adb shell [ see section ]:&lt;br /&gt;
&lt;br /&gt;
    /system/bin/stop&lt;br /&gt;
    startx -- /opt/local/sw/bin/Xorg :0&lt;br /&gt;
  &lt;br /&gt;
    Try disown / nohup to keep X running when disconnected from PC.&lt;br /&gt;
&lt;br /&gt;
Or&lt;br /&gt;
    Touch and run &amp;quot;StartX&amp;quot; app. &lt;br /&gt;
&lt;br /&gt;
Once Finished,&lt;br /&gt;
&lt;br /&gt;
run: &lt;br /&gt;
&lt;br /&gt;
    /system/bin/start&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Or touch the &amp;quot;back to android&amp;quot; icon on wbar. to return to Android.&lt;br /&gt;
&lt;br /&gt;
=== Virtual Keyboard ===&lt;br /&gt;
&lt;br /&gt;
==== xvkbd ====&lt;br /&gt;
&lt;br /&gt;
Download [http://homepage3.nifty.com/tsato/xvkbd/ xvkbd] from [http://homepage3.nifty.com/tsato/xvkbd/xvkbd-3.5.tar.gz xvkbd-3.5.tar.gz], and install:&lt;br /&gt;
&lt;br /&gt;
    xmkf&lt;br /&gt;
    make &lt;br /&gt;
    make install&lt;br /&gt;
&lt;br /&gt;
Run: &lt;br /&gt;
&lt;br /&gt;
    xvkbd&lt;br /&gt;
&lt;br /&gt;
=== An application launcher ===&lt;br /&gt;
&lt;br /&gt;
==== wbar ====&lt;br /&gt;
&lt;br /&gt;
Download [https://github.com/warlockcc/wbar wbar] from [https://code.google.com/p/wbar/downloads/detail?name=wbar-2.3.4.tgz&amp;amp;can=2&amp;amp;q= wbar-2.3.4.tgz] at [https://code.google.com/p/wbar/downloads/list wbar downloads at code.google.com]&lt;br /&gt;
&lt;br /&gt;
==== .wbar ====&lt;br /&gt;
&lt;br /&gt;
Copy this file to /root/.wbar :&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gv1/SlackwareOnMT6582/blob/master/wbar .wbar]&lt;br /&gt;
&lt;br /&gt;
== Android app to launch X Windows directly from Android ==&lt;br /&gt;
&lt;br /&gt;
Install [https://github.com/gv1/SlackwareOnMT6582/releases/download/v0.1-alpha/StartXActivity-release.apk StartXActivity-release.apk] for starting X&lt;br /&gt;
windows from Android. You may use adb to install StartX after downloading it.&lt;br /&gt;
    &lt;br /&gt;
    adb install ./StartXActivity-release.apk&lt;br /&gt;
&lt;br /&gt;
=== Create StartX projec ===&lt;br /&gt;
&lt;br /&gt;
To build the the apk from scratch, check [https://github.com/gv1/SlackwareOnMT6582 SlackwareOnMT6582] project at github&lt;br /&gt;
&lt;br /&gt;
Create a project:&lt;br /&gt;
&lt;br /&gt;
    android  create project -n StartX -k com.startx.android -a StartXActivity -t 1 -p .&lt;br /&gt;
&lt;br /&gt;
Copy [https://github.com/gv1/SlackwareOnMT6582/blob/master/StartXActivity.java StartXActivity.java] to  src/com/startx/android&lt;br /&gt;
&lt;br /&gt;
If required,&lt;br /&gt;
&lt;br /&gt;
    keytool -genkey -v -keystore gv.keystore \&lt;br /&gt;
     -alias gv_ks -keyalg RSA -keysize 2048 -validity 10000&lt;br /&gt;
&lt;br /&gt;
Add to project properties:&lt;br /&gt;
    key.store=./gv.keystore&lt;br /&gt;
    key.alias=gv_ks&lt;br /&gt;
&lt;br /&gt;
Build and install:&lt;br /&gt;
     ant release install&lt;br /&gt;
&lt;br /&gt;
==== StartXActivity.java ====&lt;br /&gt;
Copy this file to StartX/src/com/startx/android before build.&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gv1/SlackwareOnMT6582/blob/master/StartXActivity.java StartXActivity.java]&lt;br /&gt;
&lt;br /&gt;
==== chroot2slackware.sh ====&lt;br /&gt;
&lt;br /&gt;
Copy [https://github.com/gv1/SlackwareOnMT6582/blob/master/chroot2slackware.sh chroot2slackware.sh] to /data/local/tmp/ along with &lt;br /&gt;
&lt;br /&gt;
==== exitfromslackware.sh ====&lt;br /&gt;
&lt;br /&gt;
This file is called when &amp;quot;Back to Android&amp;quot; wbar button is touched. &lt;br /&gt;
&lt;br /&gt;
Copy [https://github.com/gv1/SlackwareOnMT6582/blob/master/exitfromslackware.sh exitfromslackware.sh] to /data/local/tmp/&lt;br /&gt;
&lt;br /&gt;
Thse files are used by StartX app to launch X windows.&lt;br /&gt;
&lt;br /&gt;
== Running some tests ==&lt;br /&gt;
&lt;br /&gt;
=== Testing the framebuffer ===		&lt;br /&gt;
&lt;br /&gt;
For these tests, I stopped android &amp;quot;SurfaceFlinger&amp;quot; and freed up /dev/graphics/fb0. by running &amp;quot;stop&amp;quot; command. Before running stop, make sure that the display is on ( not blank ).&lt;br /&gt;
&lt;br /&gt;
==== Stopping android - sort of ====&lt;br /&gt;
&lt;br /&gt;
Here is how to stop the SurfaceFlinger and get framebuffer free:&lt;br /&gt;
&lt;br /&gt;
From Slackware shell in adb:&lt;br /&gt;
&lt;br /&gt;
    stop&lt;br /&gt;
&lt;br /&gt;
Now the display goes blank, with backlight on.&lt;br /&gt;
&lt;br /&gt;
Get one of these tests.&lt;br /&gt;
[https://gist.githubusercontent.com/rafalrusin/1482697/raw/32c6c0d79b870ffb618aa7b7c664736ca5e150fe/fbtest.c  fbtest] or &lt;br /&gt;
[http://stackoverflow.com/questions/4996777/paint-pixels-to-screen-via-linux-framebuffer Paint-pixels-to-screen-  via-linux-framebuffer] or &lt;br /&gt;
[http://cep.xray.aps.anl.gov/software/qt4-x11-4.2.2/qtopiacore-testingframebuffer.html qtopiacore-testingframebuffer] All these tests worked on the Tablet. Transfer the tests to tablet using adb push&lt;br /&gt;
command.&lt;br /&gt;
&lt;br /&gt;
from Slackware shell, running under adb shell:&lt;br /&gt;
&lt;br /&gt;
    gcc fbtest.c&lt;br /&gt;
    ./a.out&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Getting back to android ====&lt;br /&gt;
  &lt;br /&gt;
Once done, go back to Slackware shell in adb, and:&lt;br /&gt;
&lt;br /&gt;
    start	&lt;br /&gt;
&lt;br /&gt;
After few seconds android display will be back on. &lt;br /&gt;
&lt;br /&gt;
=== Running evtest ===&lt;br /&gt;
&lt;br /&gt;
Download [http://cgit.freedesktop.org/~whot/evtest/tree/evtest.c evtest.c].&lt;br /&gt;
&lt;br /&gt;
   gcc -o gcc -o evtest evtest.c&lt;br /&gt;
   ./evtest&lt;br /&gt;
   see evtest.log for sample outpu&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== evtest.log ====&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gv1/SlackwareOnMT6582/blob/master/doc/evtest.log evtest.log]&lt;br /&gt;
&lt;br /&gt;
=== Running xinput ===&lt;br /&gt;
&lt;br /&gt;
    xinput --list&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
â¡ Virtual core pointer                         id=2    [master pointer  (3)]&lt;br /&gt;
â   â³ Virtual core XTEST pointer               id=4    [slave  pointer  (2)]&lt;br /&gt;
â   â³ mytouchscreen                            id=6    [slave  pointer  (2)]&lt;br /&gt;
â£ Virtual core keyboard                        id=3    [master keyboard (2)]&lt;br /&gt;
    â³ Virtual core XTEST keyboard              id=5    [slave  keyboard (3)]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== xinput log ====&lt;br /&gt;
&lt;br /&gt;
    xinput test 6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
motion a[0]=53 a[1]=58 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=53 a[1]=58 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=53 a[1]=58 &lt;br /&gt;
motion a[0]=513 a[1]=91 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=513 a[1]=91 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=513 a[1]=91 &lt;br /&gt;
motion a[0]=659 a[1]=436 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=659 a[1]=436 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=659 a[1]=436 &lt;br /&gt;
motion a[0]=624 a[1]=152 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=624 a[1]=152 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
motion a[0]=577 a[1]=174 &lt;br /&gt;
motion a[0]=501 a[1]=203 &lt;br /&gt;
motion a[0]=457 a[1]=219 &lt;br /&gt;
motion a[0]=411 a[1]=232 &lt;br /&gt;
motion a[0]=371 a[1]=240 &lt;br /&gt;
motion a[0]=341 a[1]=245 &lt;br /&gt;
button release 1 a[0]=341 a[1]=245 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</description>
			<pubDate>Sun, 07 Sep 2014 13:10:49 GMT</pubDate>
			<dc:creator>Gv</dc:creator>
			<comments>https://www.slackwiki.com/Talk:SlackwareOnMt6582Tablet</comments>
		</item>
		<item>
			<title>SlackwareOnMt6582Tablet</title>
			<link>https://www.slackwiki.com/index.php?title=SlackwareOnMt6582Tablet&amp;diff=942</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=SlackwareOnMt6582Tablet&amp;diff=942</guid>
			<description>&lt;p&gt;Gv: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Specifications of the Tablet PC which was used here ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Processor : Arm Cortex A7, 1.3 GHz dual core.&lt;br /&gt;
             : ARMv7 Processor rev 3 (v7l),&lt;br /&gt;
   Hardware  : MT8312&lt;br /&gt;
   SOC       : mt6582.&lt;br /&gt;
   Memory    : 512MB RAM&lt;br /&gt;
   Storage   : 4GB Built in storage.&lt;br /&gt;
   Micro SD  : Slot for upto 32GB&lt;br /&gt;
   Display   : 7&amp;quot; WVGA 800x480&lt;br /&gt;
   OS        : Android 4.2 Jelly Bean&lt;br /&gt;
   GPU       : Mali?&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
&lt;br /&gt;
[http://arm.slackware.com/getslack/ Slackware] for arm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://s7.postimg.org/fww1ibfdn/image.png Screenshot] of X windows with fluxbox and wbar. And [http://s15.postimg.org/izdxddkqj/image.png another one].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://www.techverse.net/fastest-root-android-phone-computer/ Framaroot-1.9.3.apk]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gv1/SlackwareOnMT6582/releases SlackwareOnMT6582] page at github, includes StartX apk.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Rooting the Tablet PC ==&lt;br /&gt;
&lt;br /&gt;
I used [http://www.techverse.net/fastest-root-android-phone-computer/ Framaroot-1.9.3.apk] to root the device. &lt;br /&gt;
&lt;br /&gt;
== Installing Linux - Slackware 14.1, sort of. ==&lt;br /&gt;
&lt;br /&gt;
With the problem of not having kernel source for the SOC, and no no bootloader unlock possible yet, next best option was to use a chroot environment.&lt;br /&gt;
&lt;br /&gt;
So far, command line mode works fine. Here is the description of how Slackware was installed on to external micro SD Card. Was able to do some basic tests on the frame buffer display. Since there is no VTs available was not able to test Xorg, though could get Mali module compiled and loaded. More details below.&lt;br /&gt;
&lt;br /&gt;
=== Preparing SD Card on host computer ===&lt;br /&gt;
&lt;br /&gt;
Use fdisk to create one or two partitions, one for ext4 and other ( optional ) swap partition. Once these are created, assuming the device on host is /dev/sdc,&lt;br /&gt;
&lt;br /&gt;
    mkfs.ext4 /dev/sdc1&lt;br /&gt;
    sync&lt;br /&gt;
    eject sdc&lt;br /&gt;
    eject -t sdc&lt;br /&gt;
    mkdir slack&lt;br /&gt;
    mount /dev/sdc1 slack&lt;br /&gt;
    cd slack&lt;br /&gt;
    mkdir sl&lt;br /&gt;
    cd sl&lt;br /&gt;
&lt;br /&gt;
If you don't have Slackware installation files, [http://arm.slackware.com/getslack/ Get Slackware Arm] first. &lt;br /&gt;
&lt;br /&gt;
    mkdir slackware14.1&lt;br /&gt;
    cd slackware14.1&lt;br /&gt;
    (cd /path..to../slackware14.1 ; tar cfz - *) | (tar xfz - )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://sourceforge.net/projects/slackwareonapc8750/files/initrd-kirkwood.cpio.gz/download initrd-kirkwood.cpio] contains the setup program, but since I couldn't boot with custom initrd, sdc1 /sl area is prepared to have the installation files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    cpio -id &amp;lt; initrd-kirkwood.cpio&lt;br /&gt;
    sync&lt;br /&gt;
    umount slack&lt;br /&gt;
&lt;br /&gt;
Now that the sd card is ready for installation:&lt;br /&gt;
&lt;br /&gt;
    eject sdc&lt;br /&gt;
	&lt;br /&gt;
and plug it into the device. Once that is done,&lt;br /&gt;
&lt;br /&gt;
=== Getting installer ready ===&lt;br /&gt;
&lt;br /&gt;
Now plug the card in tablet pc, boot, from host computer,&lt;br /&gt;
&lt;br /&gt;
==== starting a adb shell with su ====&lt;br /&gt;
&lt;br /&gt;
    adb shell&lt;br /&gt;
    su&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== chroot to installer ====&lt;br /&gt;
&lt;br /&gt;
    cd /data/local/tmp&lt;br /&gt;
    mkdir slackware&lt;br /&gt;
    mount /dev/block/mmcblk1p1 slackware&lt;br /&gt;
    cd slackware/sl&lt;br /&gt;
    export PATH=/data/local/tmp/bin:$PATH&lt;br /&gt;
    mountpoint proc || mount -t proc none proc/&lt;br /&gt;
    mountpoint sys || mount -t sysfs sys sys/&lt;br /&gt;
    mountpoint dev || mount -o bind  /dev dev/&lt;br /&gt;
    export PATH=/usr/bin:/bin:/usr/lib/setup:$PATH&lt;br /&gt;
    pushd /dev&lt;br /&gt;
    ln -s /dev/block/mmc1blk* .&lt;br /&gt;
    popd&lt;br /&gt;
    chroot . /bin/bash&lt;br /&gt;
    mount -t ext4 /dev/mmcblk1p1 mnt&lt;br /&gt;
&lt;br /&gt;
=== Running setup ===&lt;br /&gt;
&lt;br /&gt;
Install Slackware onto mmcblk1p1, from pre mounted directory, sdc1 : /slackware14.1/slackware&lt;br /&gt;
&lt;br /&gt;
    setup&lt;br /&gt;
        Proceed and select /dev/mmcblk1p1 as target, no format&lt;br /&gt;
        For source, select pre mounted directory option, /slackware14.1/slackware&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
=== Complete installation, and configuration ===&lt;br /&gt;
&lt;br /&gt;
Once the complete installation is done,&lt;br /&gt;
&lt;br /&gt;
    umount proc&lt;br /&gt;
    umount sys&lt;br /&gt;
    umount dev&lt;br /&gt;
    sync&lt;br /&gt;
    cd ../..&lt;br /&gt;
    umount slackware&lt;br /&gt;
&lt;br /&gt;
== Getting into installed Slackware: ==&lt;br /&gt;
&lt;br /&gt;
==== Running slackware su shell ====&lt;br /&gt;
&lt;br /&gt;
    adb shell&lt;br /&gt;
    su&lt;br /&gt;
    mount /dev/block/mmcblk1p1 slackware&lt;br /&gt;
    cd slackware&lt;br /&gt;
    mountpoint proc || mount -t proc none proc/&lt;br /&gt;
    mountpoint sys || mount -t sysfs sys sys/&lt;br /&gt;
    mountpoint dev || mount -o bind  /dev dev/&lt;br /&gt;
    test -d system || mkdir system&lt;br /&gt;
    mountpoint system || mount -o bind /system system&lt;br /&gt;
    export PATH=/usr/bin:/bin:/usr/lib/setup:$PATH&lt;br /&gt;
    chroot . /bin/su -	&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From here you can do &amp;quot;normal&amp;quot; Slackware activities, sort of. Main things that were lacking in my case were VTs (ttys). Compiling programs and running programs. I ran couple of frame buffer tests too. Fortunately, removing the VT requirement from Xorg was pretty simple. Here is how it was done.&lt;br /&gt;
		&lt;br /&gt;
&lt;br /&gt;
== Getting Xorg up and running - kind of ==&lt;br /&gt;
&lt;br /&gt;
=== Getting Xorg compiled ===&lt;br /&gt;
&lt;br /&gt;
Ecept for Pointer ( touchscreen ) failure, Xorg seems to be working fine. evtest, xinput tests are showing touchscreen activity, but the cursor seems to be not moving. But if a window like xvkbd or xterm or so is launched, you can move the window using the touch screen!. And kvkbd input also works. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== lnx_init.c patch ====&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gv1/SlackwareOnMT6582/blob/master/lnx_init.patch lnx_init.patch]&lt;br /&gt;
&lt;br /&gt;
==== Compiling xorg-server-1.12.2 ====&lt;br /&gt;
&lt;br /&gt;
Download [http://www.x.org/releases/X11R7.7/src/everything/xorg-server-1.12.2.tar.bz2  xorg-server-1.12.2], &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    tar xf xorg-server-1.12.2.tar.bz2&lt;br /&gt;
&lt;br /&gt;
Also make changes to xorg-server-1.12.2/hw/xfree86/os-support/linux/lnx\_init.c so that VT / console related code is disabled. See the patch section.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    cd xorg-server-1.12.2&lt;br /&gt;
    export PKG_CONFIG_PATH=/opt/local/sw/share/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
    export PKG_CONFIG_PATH=/opt/local/sw/lib/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
    export LD_LIBRARY_PATH=/opt/local/sw/lib:$LD_LIBRARY_PATH&lt;br /&gt;
    export PATH=/opt/local/sw/bin:$PATH&lt;br /&gt;
    ./configure --prefix=/opt/local/sw --enable-kdrive --enable-kdrive-evdev --with-xkb-path=/opt/local/sw/share/X11/xkb --with-xkb-output=/var/lib/xkb --with-xkb-bin-directory=/opt/local/sw/bin --with-default-xkb-rules=xorg --with-default-xkb-model=pc104 --with-default-xkb-layout=us  --disable-xnest --disable-dmx --disable-xquartz --disable-xwin --disable-xephyr --disable-config-udev --enable-tslib --disable-docs  --disable-devel-docs LDFLAGS=-L/opt/local/sw/lib CFLAGS=-I/opt/local/sw/include&lt;br /&gt;
    make -j 3&lt;br /&gt;
&lt;br /&gt;
If all required packages are not on the system, compilation will fail. Download each of the requiered packags , untar, configure and install.&lt;br /&gt;
&lt;br /&gt;
    ./configure --prefix=/opt/local/sw&lt;br /&gt;
    make -j 3 install&lt;br /&gt;
&lt;br /&gt;
Once xorg-server-1.12.2 compilation is succesfull, &lt;br /&gt;
    &lt;br /&gt;
    make install&lt;br /&gt;
	&lt;br /&gt;
=== Compiling additional drivers required ===&lt;br /&gt;
&lt;br /&gt;
==== fbdev ====&lt;br /&gt;
&lt;br /&gt;
    xf86-video-fbdev-0.4.2&lt;br /&gt;
    export PKG_CONFIG_PATH=/opt/local/sw/lib/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
    ./configure --prefix=/opt/local/sw&lt;br /&gt;
&lt;br /&gt;
In src/fbdev.c xf86-video-fbdev-0.4.2/src/fbdev.c, comment:&lt;br /&gt;
&lt;br /&gt;
    // #include &amp;quot;mibstore.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    make -j 3&lt;br /&gt;
    make install&lt;br /&gt;
&lt;br /&gt;
==== evdev ====&lt;br /&gt;
&lt;br /&gt;
    xf86-input-evdev-2.7.0&lt;br /&gt;
    ./configure --prefix=/opt/local/sw&lt;br /&gt;
&lt;br /&gt;
    src/Makefile:&lt;br /&gt;
    evdev_drv_la_LIBADD = $(MTDEV_LIBS) $(UDEV_LIBS)&lt;br /&gt;
    ( if not done, causes evdev_drv.so: undefined symbol: udev_new when Xorg is ran)&lt;br /&gt;
&lt;br /&gt;
    make -j 3 &lt;br /&gt;
    make install&lt;br /&gt;
&lt;br /&gt;
Once installed make an xorg.conf [ see xorg.conf section ] in /etc/X11/&lt;br /&gt;
and run startx as described below.&lt;br /&gt;
&lt;br /&gt;
=== xorg.conf ===&lt;br /&gt;
&lt;br /&gt;
Copy this file to /etc/X11&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gv1/SlackwareOnMT6582/blob/master/xorg.conf xorg.conf]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Running X ===&lt;br /&gt;
&lt;br /&gt;
In the final setup, these manual steps to switch between X and Android is&lt;br /&gt;
not required, StartX app and wbar button &amp;quot;Back to Android&amp;quot; does these tasks.&lt;br /&gt;
&lt;br /&gt;
make sure display is on,&lt;br /&gt;
From slackware chroot environment in adb shell [ see section ]:&lt;br /&gt;
&lt;br /&gt;
    /system/bin/stop&lt;br /&gt;
    startx -- /opt/local/sw/bin/Xorg :0&lt;br /&gt;
  &lt;br /&gt;
    Try disown / nohup to keep X running when disconnected from PC.&lt;br /&gt;
&lt;br /&gt;
Or&lt;br /&gt;
    Touch and run &amp;quot;StartX&amp;quot; app. &lt;br /&gt;
&lt;br /&gt;
Once Finished,&lt;br /&gt;
&lt;br /&gt;
run: &lt;br /&gt;
&lt;br /&gt;
    /system/bin/start&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Or touch the &amp;quot;back to android&amp;quot; icon on wbar. to return to Android.&lt;br /&gt;
&lt;br /&gt;
=== Virtual Keyboard ===&lt;br /&gt;
&lt;br /&gt;
==== xvkbd ====&lt;br /&gt;
&lt;br /&gt;
Download [http://homepage3.nifty.com/tsato/xvkbd/ xvkbd] from [http://homepage3.nifty.com/tsato/xvkbd/xvkbd-3.5.tar.gz xvkbd-3.5.tar.gz], and install:&lt;br /&gt;
&lt;br /&gt;
    xmkf&lt;br /&gt;
    make &lt;br /&gt;
    make install&lt;br /&gt;
&lt;br /&gt;
Run: &lt;br /&gt;
&lt;br /&gt;
    xvkbd&lt;br /&gt;
&lt;br /&gt;
=== An application launcher ===&lt;br /&gt;
&lt;br /&gt;
==== wbar ====&lt;br /&gt;
&lt;br /&gt;
Download [https://github.com/warlockcc/wbar wbar] from [https://code.google.com/p/wbar/downloads/detail?name=wbar-2.3.4.tgz&amp;amp;can=2&amp;amp;q= wbar-2.3.4.tgz] at [https://code.google.com/p/wbar/downloads/list wbar downloads at code.google.com]&lt;br /&gt;
&lt;br /&gt;
==== .wbar ====&lt;br /&gt;
&lt;br /&gt;
Copy this file to /root/.wbar :&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gv1/SlackwareOnMT6582/blob/master/wbar .wbar]&lt;br /&gt;
&lt;br /&gt;
== Android app to launch X Windows directly from Android ==&lt;br /&gt;
&lt;br /&gt;
=== Create StartX projec ===&lt;br /&gt;
&lt;br /&gt;
Check [https://github.com/gv1/SlackwareOnMT6582 SlackwareOnMT6582] project at github&lt;br /&gt;
&lt;br /&gt;
Create a project:&lt;br /&gt;
&lt;br /&gt;
    android  create project -n StartX -k com.startx.android -a StartXActivity -t 1 -p .&lt;br /&gt;
&lt;br /&gt;
Copy [https://github.com/gv1/SlackwareOnMT6582/blob/master/StartXActivity.java StartXActivity.java] to  src/com/startx/android&lt;br /&gt;
&lt;br /&gt;
If required,&lt;br /&gt;
&lt;br /&gt;
    keytool -genkey -v -keystore gv.keystore \&lt;br /&gt;
     -alias gv_ks -keyalg RSA -keysize 2048 -validity 10000&lt;br /&gt;
&lt;br /&gt;
Add to project properties:&lt;br /&gt;
    key.store=./gv.keystore&lt;br /&gt;
    key.alias=gv_ks&lt;br /&gt;
&lt;br /&gt;
Build and install:&lt;br /&gt;
     ant release install&lt;br /&gt;
&lt;br /&gt;
==== StartXActivity.java ====&lt;br /&gt;
Copy this file to StartX/src/com/startx/android&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gv1/SlackwareOnMT6582/blob/master/StartXActivity.java StartXActivity.java]&lt;br /&gt;
&lt;br /&gt;
==== chroot2slackware.sh ====&lt;br /&gt;
&lt;br /&gt;
Copy [https://github.com/gv1/SlackwareOnMT6582/blob/master/chroot2slackware.sh chroot2slackware.sh] to /data/local/tmp/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== exitfromslackware.sh ====&lt;br /&gt;
&lt;br /&gt;
This file is called when &amp;quot;Back to Android&amp;quot; wbar button is touched. &lt;br /&gt;
&lt;br /&gt;
Copy [https://github.com/gv1/SlackwareOnMT6582/blob/master/exitfromslackware.sh exitfromslackware.sh] to /data/local/tmp/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Running some tests ==&lt;br /&gt;
&lt;br /&gt;
=== Testing the framebuffer ===		&lt;br /&gt;
&lt;br /&gt;
For these tests, I stopped android &amp;quot;SurfaceFlinger&amp;quot; and freed up /dev/graphics/fb0. by running &amp;quot;stop&amp;quot; command. Before running stop, make sure that the display is on ( not blank ).&lt;br /&gt;
&lt;br /&gt;
==== Stopping android - sort of ====&lt;br /&gt;
&lt;br /&gt;
Here is how to stop the SurfaceFlinger and get framebuffer free:&lt;br /&gt;
&lt;br /&gt;
From Slackware shell in adb:&lt;br /&gt;
&lt;br /&gt;
    stop&lt;br /&gt;
&lt;br /&gt;
Now the display goes blank, with backlight on.&lt;br /&gt;
&lt;br /&gt;
Get one of these tests.&lt;br /&gt;
[https://gist.githubusercontent.com/rafalrusin/1482697/raw/32c6c0d79b870ffb618aa7b7c664736ca5e150fe/fbtest.c  fbtest] or &lt;br /&gt;
[http://stackoverflow.com/questions/4996777/paint-pixels-to-screen-via-linux-framebuffer Paint-pixels-to-screen-  via-linux-framebuffer] or &lt;br /&gt;
[http://cep.xray.aps.anl.gov/software/qt4-x11-4.2.2/qtopiacore-testingframebuffer.html qtopiacore-testingframebuffer] All these tests worked on the Tablet. Transfer the tests to tablet using adb push&lt;br /&gt;
command.&lt;br /&gt;
&lt;br /&gt;
from Slackware shell, running under adb shell:&lt;br /&gt;
&lt;br /&gt;
    gcc fbtest.c&lt;br /&gt;
    ./a.out&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Getting back to android ====&lt;br /&gt;
  &lt;br /&gt;
Once done, go back to Slackware shell in adb, and:&lt;br /&gt;
&lt;br /&gt;
    start	&lt;br /&gt;
&lt;br /&gt;
After few seconds android display will be back on. &lt;br /&gt;
&lt;br /&gt;
=== Running evtest ===&lt;br /&gt;
&lt;br /&gt;
Download [http://cgit.freedesktop.org/~whot/evtest/tree/evtest.c evtest.c].&lt;br /&gt;
&lt;br /&gt;
   gcc -o gcc -o evtest evtest.c&lt;br /&gt;
   ./evtest&lt;br /&gt;
   see evtest.log for sample outpu&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== evtest.log ====&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gv1/SlackwareOnMT6582/blob/master/doc/evtest.log evtest.log]&lt;br /&gt;
&lt;br /&gt;
=== Running xinput ===&lt;br /&gt;
&lt;br /&gt;
    xinput --list&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
â¡ Virtual core pointer                         id=2    [master pointer  (3)]&lt;br /&gt;
â   â³ Virtual core XTEST pointer               id=4    [slave  pointer  (2)]&lt;br /&gt;
â   â³ mytouchscreen                            id=6    [slave  pointer  (2)]&lt;br /&gt;
â£ Virtual core keyboard                        id=3    [master keyboard (2)]&lt;br /&gt;
    â³ Virtual core XTEST keyboard              id=5    [slave  keyboard (3)]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== xinput log ====&lt;br /&gt;
&lt;br /&gt;
    xinput test 6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
motion a[0]=53 a[1]=58 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=53 a[1]=58 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=53 a[1]=58 &lt;br /&gt;
motion a[0]=513 a[1]=91 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=513 a[1]=91 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=513 a[1]=91 &lt;br /&gt;
motion a[0]=659 a[1]=436 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=659 a[1]=436 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=659 a[1]=436 &lt;br /&gt;
motion a[0]=624 a[1]=152 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=624 a[1]=152 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
motion a[0]=577 a[1]=174 &lt;br /&gt;
motion a[0]=501 a[1]=203 &lt;br /&gt;
motion a[0]=457 a[1]=219 &lt;br /&gt;
motion a[0]=411 a[1]=232 &lt;br /&gt;
motion a[0]=371 a[1]=240 &lt;br /&gt;
motion a[0]=341 a[1]=245 &lt;br /&gt;
button release 1 a[0]=341 a[1]=245 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</description>
			<pubDate>Sun, 07 Sep 2014 11:59:41 GMT</pubDate>
			<dc:creator>Gv</dc:creator>
			<comments>https://www.slackwiki.com/Talk:SlackwareOnMt6582Tablet</comments>
		</item>
		<item>
			<title>SlackwareOnMt6582Tablet</title>
			<link>https://www.slackwiki.com/index.php?title=SlackwareOnMt6582Tablet&amp;diff=941</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=SlackwareOnMt6582Tablet&amp;diff=941</guid>
			<description>&lt;p&gt;Gv: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Specifications of the Tablet PC which was used here ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Processor : Arm Cortex A7, 1.3 GHz dual core.&lt;br /&gt;
             : ARMv7 Processor rev 3 (v7l),&lt;br /&gt;
   Hardware  : MT8312&lt;br /&gt;
   SOC       : mt6582.&lt;br /&gt;
   Memory    : 512MB RAM&lt;br /&gt;
   Storage   : 4GB Built in storage.&lt;br /&gt;
   Micro SD  : Slot for upto 32GB&lt;br /&gt;
   Display   : 7&amp;quot; WVGA 800x480&lt;br /&gt;
   OS        : Android 4.2 Jelly Bean&lt;br /&gt;
   GPU       : Mali?&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
[http://s7.postimg.org/fww1ibfdn/image.png Screenshot] of X windows with fluxbox and wbar. And [http://s15.postimg.org/izdxddkqj/image.png another one].&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gv1/SlackwareOnMT6582/releases SlackwareOnMT6582] page at github, includes StartX apk.&lt;br /&gt;
&lt;br /&gt;
== Rooting the Tablet PC ==&lt;br /&gt;
&lt;br /&gt;
I used [http://www.techverse.net/fastest-root-android-phone-computer/ Framaroot-1.9.3.apk] to root the device. &lt;br /&gt;
&lt;br /&gt;
== Installing Linux - Slackware 14.1, sort of. ==&lt;br /&gt;
&lt;br /&gt;
With the problem of not having kernel source for the SOC, and no no bootloader unlock possible yet, next best option was to use a chroot environment.&lt;br /&gt;
&lt;br /&gt;
So far, command line mode works fine. Here is the description of how Slackware was installed on to external micro SD Card. Was able to do some basic tests on the frame buffer display. Since there is no VTs available was not able to test Xorg, though could get Mali module compiled and loaded. More details below.&lt;br /&gt;
&lt;br /&gt;
=== Preparing SD Card on host computer ===&lt;br /&gt;
&lt;br /&gt;
Use fdisk to create one or two partitions, one for ext4 and other ( optional ) swap partition. Once these are created, assuming the device on host is /dev/sdc,&lt;br /&gt;
&lt;br /&gt;
    mkfs.ext4 /dev/sdc1&lt;br /&gt;
    sync&lt;br /&gt;
    eject sdc&lt;br /&gt;
    eject -t sdc&lt;br /&gt;
    mkdir slack&lt;br /&gt;
    mount /dev/sdc1 slack&lt;br /&gt;
    cd slack&lt;br /&gt;
    mkdir sl&lt;br /&gt;
    cd sl&lt;br /&gt;
&lt;br /&gt;
If you don't have Slackware installation files, [http://arm.slackware.com/getslack/ Get Slackware Arm] first. &lt;br /&gt;
&lt;br /&gt;
    mkdir slackware14.1&lt;br /&gt;
    cd slackware14.1&lt;br /&gt;
    (cd /path..to../slackware14.1 ; tar cfz - *) | (tar xfz - )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://sourceforge.net/projects/slackwareonapc8750/files/initrd-kirkwood.cpio.gz/download initrd-kirkwood.cpio] contains the setup program, but since I couldn't boot with custom initrd, sdc1 /sl area is prepared to have the installation files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    cpio -id &amp;lt; initrd-kirkwood.cpio&lt;br /&gt;
    sync&lt;br /&gt;
    umount slack&lt;br /&gt;
&lt;br /&gt;
Now that the sd card is ready for installation:&lt;br /&gt;
&lt;br /&gt;
    eject sdc&lt;br /&gt;
	&lt;br /&gt;
and plug it into the device. Once that is done,&lt;br /&gt;
&lt;br /&gt;
=== Getting installer ready ===&lt;br /&gt;
&lt;br /&gt;
Now plug the card in tablet pc, boot, from host computer,&lt;br /&gt;
&lt;br /&gt;
==== starting a adb shell with su ====&lt;br /&gt;
&lt;br /&gt;
    adb shell&lt;br /&gt;
    su&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== chroot to installer ====&lt;br /&gt;
&lt;br /&gt;
    cd /data/local/tmp&lt;br /&gt;
    mkdir slackware&lt;br /&gt;
    mount /dev/block/mmcblk1p1 slackware&lt;br /&gt;
    cd slackware/sl&lt;br /&gt;
    export PATH=/data/local/tmp/bin:$PATH&lt;br /&gt;
    mountpoint proc || mount -t proc none proc/&lt;br /&gt;
    mountpoint sys || mount -t sysfs sys sys/&lt;br /&gt;
    mountpoint dev || mount -o bind  /dev dev/&lt;br /&gt;
    export PATH=/usr/bin:/bin:/usr/lib/setup:$PATH&lt;br /&gt;
    pushd /dev&lt;br /&gt;
    ln -s /dev/block/mmc1blk* .&lt;br /&gt;
    popd&lt;br /&gt;
    chroot . /bin/bash&lt;br /&gt;
    mount -t ext4 /dev/mmcblk1p1 mnt&lt;br /&gt;
&lt;br /&gt;
=== Running setup ===&lt;br /&gt;
&lt;br /&gt;
Install Slackware onto mmcblk1p1, from pre mounted directory, sdc1 : /slackware14.1/slackware&lt;br /&gt;
&lt;br /&gt;
    setup&lt;br /&gt;
        Proceed and select /dev/mmcblk1p1 as target, no format&lt;br /&gt;
        For source, select pre mounted directory option, /slackware14.1/slackware&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
=== Complete installation, and configuration ===&lt;br /&gt;
&lt;br /&gt;
Once the complete installation is done,&lt;br /&gt;
&lt;br /&gt;
    umount proc&lt;br /&gt;
    umount sys&lt;br /&gt;
    umount dev&lt;br /&gt;
    sync&lt;br /&gt;
    cd ../..&lt;br /&gt;
    umount slackware&lt;br /&gt;
&lt;br /&gt;
== Getting into installed Slackware: ==&lt;br /&gt;
&lt;br /&gt;
==== Running slackware su shell ====&lt;br /&gt;
&lt;br /&gt;
    adb shell&lt;br /&gt;
    su&lt;br /&gt;
    mount /dev/block/mmcblk1p1 slackware&lt;br /&gt;
    cd slackware&lt;br /&gt;
    mountpoint proc || mount -t proc none proc/&lt;br /&gt;
    mountpoint sys || mount -t sysfs sys sys/&lt;br /&gt;
    mountpoint dev || mount -o bind  /dev dev/&lt;br /&gt;
    test -d system || mkdir system&lt;br /&gt;
    mountpoint system || mount -o bind /system system&lt;br /&gt;
    export PATH=/usr/bin:/bin:/usr/lib/setup:$PATH&lt;br /&gt;
    chroot . /bin/su -	&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From here you can do &amp;quot;normal&amp;quot; Slackware activities, sort of. Main things that were lacking in my case were VTs (ttys). Compiling programs and running programs. I ran couple of frame buffer tests too. Fortunately, removing the VT requirement from Xorg was pretty simple. Here is how it was done.&lt;br /&gt;
		&lt;br /&gt;
&lt;br /&gt;
== Getting Xorg up and running - kind of ==&lt;br /&gt;
&lt;br /&gt;
=== Getting Xorg compiled ===&lt;br /&gt;
&lt;br /&gt;
Ecept for Pointer ( touchscreen ) failure, Xorg seems to be working fine. evtest, xinput tests are showing touchscreen activity, but the cursor seems to be not&lt;br /&gt;
moving. But if a window like xvkbd or xterm or so is launched, you can move the window using the touch screen!. And kvkbd input also works. &lt;br /&gt;
&lt;br /&gt;
Download [http://www.x.org/releases/X11R7.7/src/everything/xorg-server-1.12.2.tar.bz2  xorg-server-1.12.2], &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	tar xf xorg-server-1.12.2.tar.bz2&lt;br /&gt;
&lt;br /&gt;
Also make changes to xorg-server-1.12.2/hw/xfree86/os-support/linux/lnx\_init.c so that VT / console related code is disabled. See the patch section.&lt;br /&gt;
&lt;br /&gt;
==== lnx_init.c patch ====&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gv1/SlackwareOnMT6582/blob/master/lnx_init.patch lnx_init.patch]&lt;br /&gt;
&lt;br /&gt;
==== Compiling xorg-server-1.12.2 ====&lt;br /&gt;
	cd xorg-server-1.12.2&lt;br /&gt;
	export PKG_CONFIG_PATH=/opt/local/sw/share/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
	export PKG_CONFIG_PATH=/opt/local/sw/lib/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
	export LD_LIBRARY_PATH=/opt/local/sw/lib:$LD_LIBRARY_PATH&lt;br /&gt;
	export PATH=/opt/local/sw/bin:$PATH&lt;br /&gt;
	./configure --prefix=/opt/local/sw --enable-kdrive --enable-kdrive-evdev --with-xkb-path=/opt/local/sw/share/X11/xkb --with-xkb-output=/var/lib/xkb --with-xkb-bin-directory=/opt/local/sw/bin --with-default-xkb-rules=xorg --with-default-xkb-model=pc104 --with-default-xkb-layout=us  --disable-xnest --disable-dmx --disable-xquartz --disable-xwin --disable-xephyr --disable-config-udev --enable-tslib --disable-docs  --disable-devel-docs LDFLAGS=-L/opt/local/sw/lib CFLAGS=-I/opt/local/sw/include&lt;br /&gt;
make -j 3&lt;br /&gt;
&lt;br /&gt;
If all required packages are not on the system, compilation will fail. Download each of the requiered packags , untar, configure and install.&lt;br /&gt;
&lt;br /&gt;
	./configure --prefix=/opt/local/sw&lt;br /&gt;
	make -j 3 install&lt;br /&gt;
&lt;br /&gt;
Once xorg-server-1.12.2 compilation is succesfull, &lt;br /&gt;
	make install&lt;br /&gt;
	&lt;br /&gt;
=== Compiling additional drivers required ===&lt;br /&gt;
&lt;br /&gt;
==== fbdev ====&lt;br /&gt;
&lt;br /&gt;
xf86-video-fbdev-0.4.2&lt;br /&gt;
export PKG_CONFIG_PATH=/opt/local/sw/lib/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
./configure --prefix=/opt/local/sw&lt;br /&gt;
&lt;br /&gt;
src/fbdev.c xf86-video-fbdev-0.4.2/src/fbdev.c&lt;br /&gt;
// #include &amp;quot;mibstore.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
make -j 3&lt;br /&gt;
make install&lt;br /&gt;
&lt;br /&gt;
==== evdev ====&lt;br /&gt;
&lt;br /&gt;
    xf86-input-evdev-2.7.0&lt;br /&gt;
    ./configure --prefix=/opt/local/sw&lt;br /&gt;
&lt;br /&gt;
    src/Makefile:&lt;br /&gt;
    evdev_drv_la_LIBADD = $(MTDEV_LIBS) $(UDEV_LIBS)&lt;br /&gt;
    ( if not done, causes evdev_drv.so: undefined symbol: udev_new when Xorg is ran)&lt;br /&gt;
&lt;br /&gt;
    make -j 3 &lt;br /&gt;
    make install&lt;br /&gt;
&lt;br /&gt;
Once installed make an xorg.conf [ see xorg.conf section ] in /etc/X11/&lt;br /&gt;
and run startx as described below.&lt;br /&gt;
&lt;br /&gt;
=== xorg.conf ===&lt;br /&gt;
&lt;br /&gt;
Copy this file to /etc/X11&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gv1/SlackwareOnMT6582/blob/master/xorg.conf xorg.conf]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Running X ===&lt;br /&gt;
&lt;br /&gt;
make sure display is on,&lt;br /&gt;
From slackware chroot environment in adb shell [ see section ]:&lt;br /&gt;
&lt;br /&gt;
    /system/bin/stop&lt;br /&gt;
    startx -- /opt/local/sw/bin/Xorg -pointer mytouchscreen :0&lt;br /&gt;
  &lt;br /&gt;
    Try disown / nohup to keep X running when disconnected from PC.&lt;br /&gt;
&lt;br /&gt;
Once Finished,&lt;br /&gt;
&lt;br /&gt;
run: &lt;br /&gt;
&lt;br /&gt;
    /system/bin/start&lt;br /&gt;
&lt;br /&gt;
Or touch the &amp;quot;back to android&amp;quot; icon on wbar. to return to Android.&lt;br /&gt;
&lt;br /&gt;
=== Virtual Keyboard ===&lt;br /&gt;
&lt;br /&gt;
==== xvkbd ====&lt;br /&gt;
&lt;br /&gt;
Download [http://homepage3.nifty.com/tsato/xvkbd/ xvkbd] from [http://homepage3.nifty.com/tsato/xvkbd/xvkbd-3.5.tar.gz xvkbd-3.5.tar.gz], and install:&lt;br /&gt;
&lt;br /&gt;
    xmkf&lt;br /&gt;
    make &lt;br /&gt;
    make install&lt;br /&gt;
&lt;br /&gt;
Run: &lt;br /&gt;
&lt;br /&gt;
    xvkbd&lt;br /&gt;
&lt;br /&gt;
=== An application launcher ===&lt;br /&gt;
&lt;br /&gt;
==== wbar ====&lt;br /&gt;
&lt;br /&gt;
Download [https://github.com/warlockcc/wbar wbar] from [https://code.google.com/p/wbar/downloads/detail?name=wbar-2.3.4.tgz&amp;amp;can=2&amp;amp;q= wbar-2.3.4.tgz] at [https://code.google.com/p/wbar/downloads/list wbar downloads at code.google.com]&lt;br /&gt;
&lt;br /&gt;
==== .wbar ====&lt;br /&gt;
&lt;br /&gt;
Copy this file to /root/.wbar :&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gv1/SlackwareOnMT6582/blob/master/wbar .wbar]&lt;br /&gt;
&lt;br /&gt;
== Android app to launch X Windows directly from Android ==&lt;br /&gt;
&lt;br /&gt;
=== Create StartX projec ===&lt;br /&gt;
&lt;br /&gt;
Check [https://github.com/gv1/SlackwareOnMT6582 SlackwareOnMT6582] project at github&lt;br /&gt;
&lt;br /&gt;
Create a project:&lt;br /&gt;
    android  create project -n StartX -k com.startx.android -a StartXActivity -t 1 -p .&lt;br /&gt;
&lt;br /&gt;
Copy [https://github.com/gv1/SlackwareOnMT6582/blob/master/StartXActivity.java StartXActivity.java] to  src/com/startx/android&lt;br /&gt;
&lt;br /&gt;
If required,&lt;br /&gt;
&lt;br /&gt;
   keytool -genkey -v -keystore gv.keystore \&lt;br /&gt;
     -alias gv_ks -keyalg RSA -keysize 2048 -validity 10000&lt;br /&gt;
&lt;br /&gt;
Add to project properties:&lt;br /&gt;
     key.store=./gv.keystore&lt;br /&gt;
     key.alias=gv_ks&lt;br /&gt;
&lt;br /&gt;
Build and install:&lt;br /&gt;
     ant release install&lt;br /&gt;
&lt;br /&gt;
==== StartXActivity.java ====&lt;br /&gt;
Copy this file to StartX/src/com/startx/android&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gv1/SlackwareOnMT6582/blob/master/StartXActivity.java StartXActivity.java]&lt;br /&gt;
&lt;br /&gt;
==== chroot2slackware.sh ====&lt;br /&gt;
&lt;br /&gt;
Copy this file to /data/local/tmp/&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gv1/SlackwareOnMT6582/blob/master/chroot2slackware.sh chroot2slackware.sh]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== exitfromslackware.sh ====&lt;br /&gt;
&lt;br /&gt;
This file is called when &amp;quot;Back to Android&amp;quot; wbar button is touched. &lt;br /&gt;
&lt;br /&gt;
Copy this file to /data/local/tmp/&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gv1/SlackwareOnMT6582/blob/master/exitfromslackware.sh exitfromslackware.sh]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Running some tests ==&lt;br /&gt;
&lt;br /&gt;
=== Testing the framebuffer ===		&lt;br /&gt;
&lt;br /&gt;
For these tests, I stopped android &amp;quot;SurfaceFlinger&amp;quot; and freed up /dev/graphics/fb0. by running &amp;quot;stop&amp;quot;&lt;br /&gt;
command. Before running stop, make sure that the display is on ( not blank ). For these tests, I had&lt;br /&gt;
two terminals up on the host PC with one of them running just adb shell with su, and other running&lt;br /&gt;
chrooted slackware shell. SurfaceFlinger was stopped from su shell, and tests from Slackware shell.&lt;br /&gt;
&lt;br /&gt;
Please not Slackware shell is also running as user root.&lt;br /&gt;
&lt;br /&gt;
==== Stopping android - sort of ====&lt;br /&gt;
&lt;br /&gt;
Here is how to stop the SurfaceFlinger and get framebuffer free:&lt;br /&gt;
&lt;br /&gt;
    adb shell&lt;br /&gt;
    su&lt;br /&gt;
    stop&lt;br /&gt;
&lt;br /&gt;
Now the display goes blank, with backlight on.&lt;br /&gt;
&lt;br /&gt;
Get one of these tests.&lt;br /&gt;
[https://gist.githubusercontent.com/rafalrusin/1482697/raw/32c6c0d79b870ffb618aa7b7c664736ca5e150fe/fbtest.c  fbtest] or &lt;br /&gt;
[http://stackoverflow.com/questions/4996777/paint-pixels-to-screen-via-linux-framebuffer Paint-pixels-to-screen-  via-linux-framebuffer] or &lt;br /&gt;
[http://cep.xray.aps.anl.gov/software/qt4-x11-4.2.2/qtopiacore-testingframebuffer.html qtopiacore-testingframebuffer] All these tests worked on the Tablet. Transfer the tests to tablet using adb push&lt;br /&gt;
command.&lt;br /&gt;
&lt;br /&gt;
from Slackware shell, running under adb shell:&lt;br /&gt;
&lt;br /&gt;
    gcc fbtest.c&lt;br /&gt;
    ./a.out&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
once done, go back to android su shell from adb, and:&lt;br /&gt;
&lt;br /&gt;
==== Getting back to android ====&lt;br /&gt;
  &lt;br /&gt;
    start&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
After few seconds android display will be back on. &lt;br /&gt;
&lt;br /&gt;
=== Running evtest ===&lt;br /&gt;
&lt;br /&gt;
Download [http://cgit.freedesktop.org/~whot/evtest/tree/evtest.c evtest.c].&lt;br /&gt;
&lt;br /&gt;
   gcc -o gcc -o evtest evtest.c&lt;br /&gt;
   ./evtest&lt;br /&gt;
   see evtest.log for sample outpu&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== evtest.log ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
No device specified, trying to scan all of /dev/input/event*&lt;br /&gt;
Available devices:&lt;br /&gt;
/dev/input/event0:	mtk-kpd&lt;br /&gt;
/dev/input/event1:	ACCDET&lt;br /&gt;
/dev/input/event2:	hwmdata&lt;br /&gt;
/dev/input/event3:	mtk-tpd&lt;br /&gt;
Select the device event number [0-3]: Input driver version is 1.0.1&lt;br /&gt;
Input device ID: bus 0x0 vendor 0x0 product 0x0 version 0x0&lt;br /&gt;
Input device name: &amp;quot;mtk-tpd&amp;quot;&lt;br /&gt;
Supported events:&lt;br /&gt;
  Event type 0 (EV_SYN)&lt;br /&gt;
  Event type 1 (EV_KEY)&lt;br /&gt;
    Event code 330 (BTN_TOUCH)&lt;br /&gt;
  Event type 3 (EV_ABS)&lt;br /&gt;
    Event code 0 (ABS_X)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      800&lt;br /&gt;
      Resolution     800&lt;br /&gt;
    Event code 1 (ABS_Y)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      480&lt;br /&gt;
      Resolution     480&lt;br /&gt;
    Event code 24 (ABS_PRESSURE)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      255&lt;br /&gt;
    Event code 48 (ABS_MT_TOUCH_MAJOR)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      100&lt;br /&gt;
    Event code 49 (ABS_MT_TOUCH_MINOR)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      100&lt;br /&gt;
    Event code 53 (ABS_MT_POSITION_X)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      800&lt;br /&gt;
    Event code 54 (ABS_MT_POSITION_Y)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      480&lt;br /&gt;
    Event code 57 (ABS_MT_TRACKING_ID)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max        0&lt;br /&gt;
Properties:&lt;br /&gt;
  Property type 1 (INPUT_PROP_DIRECT)&lt;br /&gt;
Testing ... (interrupt to exit)&lt;br /&gt;
Event: time 1409845467.116675, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845467.116682, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.116687, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.116691, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.116695, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.116699, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.116703, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1409845467.133145, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.133151, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.133155, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.133160, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.133164, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.133167, -------------- SYN_REPORT ------------&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
Event: time 1409845469.216857, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.216863, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 207&lt;br /&gt;
Event: time 1409845469.216867, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 376&lt;br /&gt;
Event: time 1409845469.216871, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.216875, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.216878, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1409845469.230419, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845469.230423, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.230426, -------------- SYN_REPORT ------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Running xinput ===&lt;br /&gt;
&lt;br /&gt;
	xinput --list&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
â¡ Virtual core pointer                         id=2    [master pointer  (3)]&lt;br /&gt;
â   â³ Virtual core XTEST pointer               id=4    [slave  pointer  (2)]&lt;br /&gt;
â   â³ mytouchscreen                            id=6    [slave  pointer  (2)]&lt;br /&gt;
â£ Virtual core keyboard                        id=3    [master keyboard (2)]&lt;br /&gt;
    â³ Virtual core XTEST keyboard              id=5    [slave  keyboard (3)]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== xinput log ====&lt;br /&gt;
&lt;br /&gt;
	xinput test 6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
motion a[0]=53 a[1]=58 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=53 a[1]=58 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=53 a[1]=58 &lt;br /&gt;
motion a[0]=513 a[1]=91 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=513 a[1]=91 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=513 a[1]=91 &lt;br /&gt;
motion a[0]=659 a[1]=436 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=659 a[1]=436 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=659 a[1]=436 &lt;br /&gt;
motion a[0]=624 a[1]=152 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=624 a[1]=152 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
motion a[0]=577 a[1]=174 &lt;br /&gt;
motion a[0]=501 a[1]=203 &lt;br /&gt;
motion a[0]=457 a[1]=219 &lt;br /&gt;
motion a[0]=411 a[1]=232 &lt;br /&gt;
motion a[0]=371 a[1]=240 &lt;br /&gt;
motion a[0]=341 a[1]=245 &lt;br /&gt;
button release 1 a[0]=341 a[1]=245 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</description>
			<pubDate>Sun, 07 Sep 2014 11:11:28 GMT</pubDate>
			<dc:creator>Gv</dc:creator>
			<comments>https://www.slackwiki.com/Talk:SlackwareOnMt6582Tablet</comments>
		</item>
		<item>
			<title>SlackwareOnMt6582Tablet</title>
			<link>https://www.slackwiki.com/index.php?title=SlackwareOnMt6582Tablet&amp;diff=940</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=SlackwareOnMt6582Tablet&amp;diff=940</guid>
			<description>&lt;p&gt;Gv: /* Specifications of the Tablet PC which was used here */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Specifications of the Tablet PC which was used here ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Processor : Arm Cortex A7, 1.3 GHz dual core.&lt;br /&gt;
             : ARMv7 Processor rev 3 (v7l),&lt;br /&gt;
   Hardware  : MT8312&lt;br /&gt;
   SOC       : mt6582.&lt;br /&gt;
   Memory    : 512MB RAM&lt;br /&gt;
   Storage   : 4GB Built in storage.&lt;br /&gt;
   Micro SD  : Slot for upto 32GB&lt;br /&gt;
   Display   : 7&amp;quot; WVGA 800x480&lt;br /&gt;
   OS        : Android 4.2 Jelly Bean&lt;br /&gt;
   GPU       : Mali?&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
[http://s7.postimg.org/fww1ibfdn/image.png Screenshot] of X windows with fluxbox and wbar. And [http://s15.postimg.org/izdxddkqj/image.png another one].&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gv1/SlackwareOnMT6582/releases SlackwareOnMT6582] page at github, includes StartX apk.&lt;br /&gt;
&lt;br /&gt;
== Rooting the Tablet PC ==&lt;br /&gt;
&lt;br /&gt;
I used [http://www.techverse.net/fastest-root-android-phone-computer/ Framaroot-1.9.3.apk] to root the device. &lt;br /&gt;
&lt;br /&gt;
== Installing Linux - Slackware 14.1, sort of. ==&lt;br /&gt;
&lt;br /&gt;
With the problem of not having kernel source for the SOC, and no no bootloader unlock possible yet, next best option was to use a chroot environment.&lt;br /&gt;
&lt;br /&gt;
So far, command line mode works fine. Here is the description of how Slackware was installed on to external micro SD Card. Was able to do some basic tests on the frame buffer display. Since there is no VTs available was not able to test Xorg, though could get Mali module compiled and loaded. More details below.&lt;br /&gt;
&lt;br /&gt;
=== Preparing SD Card on host computer ===&lt;br /&gt;
&lt;br /&gt;
Use fdisk to create one or two partitions, one for ext4 and other ( optional ) swap partition. Once these are created, assuming the device on host is /dev/sdc,&lt;br /&gt;
&lt;br /&gt;
    mkfs.ext4 /dev/sdc1&lt;br /&gt;
    sync&lt;br /&gt;
    eject sdc&lt;br /&gt;
    eject -t sdc&lt;br /&gt;
    mkdir slack&lt;br /&gt;
    mount /dev/sdc1 slack&lt;br /&gt;
    cd slack&lt;br /&gt;
    mkdir sl&lt;br /&gt;
    cd sl&lt;br /&gt;
&lt;br /&gt;
If you don't have Slackware installation files, [http://arm.slackware.com/getslack/ Get Slackware Arm] first. &lt;br /&gt;
&lt;br /&gt;
    mkdir slackware14.1&lt;br /&gt;
    cd slackware14.1&lt;br /&gt;
    (cd /path..to../slackware14.1 ; tar cfz - *) | (tar xfz - )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://sourceforge.net/projects/slackwareonapc8750/files/initrd-kirkwood.cpio.gz/download initrd-kirkwood.cpio] contains the setup program, but since I couldn't boot with custom initrd, sdc1 /sl area is prepared to have the installation files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    cpio -id &amp;lt; initrd-kirkwood.cpio&lt;br /&gt;
    sync&lt;br /&gt;
    umount slack&lt;br /&gt;
&lt;br /&gt;
Now that the sd card is ready for installation:&lt;br /&gt;
&lt;br /&gt;
    eject sdc&lt;br /&gt;
	&lt;br /&gt;
and plug it into the device. Once that is done,&lt;br /&gt;
&lt;br /&gt;
=== Getting installer ready ===&lt;br /&gt;
&lt;br /&gt;
Now plug the card in tablet pc, boot, from host computer,&lt;br /&gt;
&lt;br /&gt;
==== starting a adb shell with su ====&lt;br /&gt;
&lt;br /&gt;
    adb shell&lt;br /&gt;
    su&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== chroot to installer ====&lt;br /&gt;
&lt;br /&gt;
    cd /data/local/tmp&lt;br /&gt;
    mkdir slackware&lt;br /&gt;
    mount /dev/block/mmcblk1p1 slackware&lt;br /&gt;
    cd slackware/sl&lt;br /&gt;
    export PATH=/data/local/tmp/bin:$PATH&lt;br /&gt;
    mountpoint proc || mount -t proc none proc/&lt;br /&gt;
    mountpoint sys || mount -t sysfs sys sys/&lt;br /&gt;
    mountpoint dev || mount -o bind  /dev dev/&lt;br /&gt;
    export PATH=/usr/bin:/bin:/usr/lib/setup:$PATH&lt;br /&gt;
    pushd /dev&lt;br /&gt;
    ln -s /dev/block/mmc1blk* .&lt;br /&gt;
    popd&lt;br /&gt;
    chroot . /bin/bash&lt;br /&gt;
    mount -t ext4 /dev/mmcblk1p1 mnt&lt;br /&gt;
&lt;br /&gt;
=== Running setup ===&lt;br /&gt;
&lt;br /&gt;
Install Slackware onto mmcblk1p1, from pre mounted directory, sdc1 : /slackware14.1/slackware&lt;br /&gt;
&lt;br /&gt;
    setup&lt;br /&gt;
        Proceed and select /dev/mmcblk1p1 as target, no format&lt;br /&gt;
        For source, select pre mounted directory option, /slackware14.1/slackware&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
=== Complete installation, and configuration ===&lt;br /&gt;
&lt;br /&gt;
Once the complete installation is done,&lt;br /&gt;
&lt;br /&gt;
    umount proc&lt;br /&gt;
    umount sys&lt;br /&gt;
    umount dev&lt;br /&gt;
    sync&lt;br /&gt;
    cd ../..&lt;br /&gt;
    umount slackware&lt;br /&gt;
&lt;br /&gt;
== Getting into installed Slackware: ==&lt;br /&gt;
&lt;br /&gt;
==== Running slackware su shell ====&lt;br /&gt;
&lt;br /&gt;
    adb shell&lt;br /&gt;
    su&lt;br /&gt;
    mount /dev/block/mmcblk1p1 slackware&lt;br /&gt;
    cd slackware&lt;br /&gt;
    mountpoint proc || mount -t proc none proc/&lt;br /&gt;
    mountpoint sys || mount -t sysfs sys sys/&lt;br /&gt;
    mountpoint dev || mount -o bind  /dev dev/&lt;br /&gt;
    test -d system || mkdir system&lt;br /&gt;
    mountpoint system || mount -o bind /system system&lt;br /&gt;
    export PATH=/usr/bin:/bin:/usr/lib/setup:$PATH&lt;br /&gt;
    chroot . /bin/su -	&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From here you can do &amp;quot;normal&amp;quot; Slackware activities, sort of. Main things that were lacking in my case were VTs (ttys). Compiling programs and running programs. I ran couple of frame buffer tests too. Fortunately, removing the VT requirement from Xorg was pretty simple. Here is how it was done.&lt;br /&gt;
		&lt;br /&gt;
&lt;br /&gt;
== Getting Xorg up and running - kind of ==&lt;br /&gt;
&lt;br /&gt;
=== Getting Xorg compiled ===&lt;br /&gt;
&lt;br /&gt;
Ecept for Pointer ( touchscreen ) failure, Xorg seems to be working fine. evtest, xinput tests are showing touchscreen activity, but the cursor seems to be not&lt;br /&gt;
moving. But if a window like xvkbd or xterm or so is launched, you can move the window using the touch screen!. And kvkbd input also works. &lt;br /&gt;
&lt;br /&gt;
Download [http://www.x.org/releases/X11R7.7/src/everything/xorg-server-1.12.2.tar.bz2  xorg-server-1.12.2], &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	tar xf xorg-server-1.12.2.tar.bz2&lt;br /&gt;
&lt;br /&gt;
Also make changes to xorg-server-1.12.2/hw/xfree86/os-support/linux/lnx\_init.c so that VT / console related code is disabled. See the patch section.&lt;br /&gt;
&lt;br /&gt;
==== lnx_init.c patch ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--- xorg-server-1.12.2/hw/xfree86/os-support/linux/lnx_init.c	2014-09-04 22:53:13.450000054 +0530&lt;br /&gt;
+++ xorg-server-1.12.2.org/hw/xfree86/os-support/linux/lnx_init.c	2012-05-17 22:39:03.000000000 +0530&lt;br /&gt;
@@ -48,18 +48,15 @@&lt;br /&gt;
 static void&lt;br /&gt;
 drain_console(int fd, void *closure)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     errno = 0;&lt;br /&gt;
     if (tcflush(fd, TCIOFLUSH) == -1 &amp;amp;&amp;amp; errno == EIO) {&lt;br /&gt;
         xf86SetConsoleHandler(NULL, NULL);&lt;br /&gt;
     }&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 static void&lt;br /&gt;
 switch_to(int vt, const char *from)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     int ret;&lt;br /&gt;
 &lt;br /&gt;
     SYSCALL(ret = ioctl(xf86Info.consoleFd, VT_ACTIVATE, vt));&lt;br /&gt;
@@ -69,13 +66,11 @@&lt;br /&gt;
     SYSCALL(ret = ioctl(xf86Info.consoleFd, VT_WAITACTIVE, vt));&lt;br /&gt;
     if (ret &amp;lt; 0)&lt;br /&gt;
         FatalError(&amp;quot;%s: VT_WAITACTIVE failed: %s\n&amp;quot;, from, strerror(errno));&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void&lt;br /&gt;
 xf86OpenConsole(void)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     int i, fd = -1, ret;&lt;br /&gt;
     struct vt_mode VT;&lt;br /&gt;
     struct vt_stat vts;&lt;br /&gt;
@@ -254,13 +249,11 @@&lt;br /&gt;
             switch_to(xf86Info.vtno, &amp;quot;xf86OpenConsole&amp;quot;);&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void&lt;br /&gt;
 xf86CloseConsole(void)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     struct vt_mode VT;&lt;br /&gt;
     int ret;&lt;br /&gt;
 &lt;br /&gt;
@@ -307,7 +300,6 @@&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
     close(xf86Info.consoleFd);  /* make the vt-manager happy */&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Compiling xorg-server-1.12.2 ====&lt;br /&gt;
	cd xorg-server-1.12.2&lt;br /&gt;
	export PKG_CONFIG_PATH=/opt/local/sw/share/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
	export PKG_CONFIG_PATH=/opt/local/sw/lib/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
	export LD_LIBRARY_PATH=/opt/local/sw/lib:$LD_LIBRARY_PATH&lt;br /&gt;
	export PATH=/opt/local/sw/bin:$PATH&lt;br /&gt;
	./configure --prefix=/opt/local/sw --enable-kdrive --enable-kdrive-evdev --with-xkb-path=/opt/local/sw/share/X11/xkb --with-xkb-output=/var/lib/xkb --with-xkb-bin-directory=/opt/local/sw/bin --with-default-xkb-rules=xorg --with-default-xkb-model=pc104 --with-default-xkb-layout=us  --disable-xnest --disable-dmx --disable-xquartz --disable-xwin --disable-xephyr --disable-config-udev --enable-tslib --disable-docs  --disable-devel-docs LDFLAGS=-L/opt/local/sw/lib CFLAGS=-I/opt/local/sw/include&lt;br /&gt;
make -j 3&lt;br /&gt;
&lt;br /&gt;
If all required packages are not on the system, compilation will fail. Download each of the requiered packags , untar, configure and install.&lt;br /&gt;
&lt;br /&gt;
	./configure --prefix=/opt/local/sw&lt;br /&gt;
	make -j 3 install&lt;br /&gt;
&lt;br /&gt;
Once xorg-server-1.12.2 compilation is succesfull, &lt;br /&gt;
	make install&lt;br /&gt;
	&lt;br /&gt;
=== Compiling additional drivers required ===&lt;br /&gt;
&lt;br /&gt;
==== fbdev ====&lt;br /&gt;
&lt;br /&gt;
xf86-video-fbdev-0.4.2&lt;br /&gt;
export PKG_CONFIG_PATH=/opt/local/sw/lib/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
./configure --prefix=/opt/local/sw&lt;br /&gt;
&lt;br /&gt;
src/fbdev.c xf86-video-fbdev-0.4.2/src/fbdev.c&lt;br /&gt;
// #include &amp;quot;mibstore.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
make -j 3&lt;br /&gt;
make install&lt;br /&gt;
&lt;br /&gt;
==== evdev ====&lt;br /&gt;
&lt;br /&gt;
    xf86-input-evdev-2.7.0&lt;br /&gt;
    ./configure --prefix=/opt/local/sw&lt;br /&gt;
&lt;br /&gt;
    src/Makefile:&lt;br /&gt;
    evdev_drv_la_LIBADD = $(MTDEV_LIBS) $(UDEV_LIBS)&lt;br /&gt;
    ( if not done, causes evdev_drv.so: undefined symbol: udev_new when Xorg is ran)&lt;br /&gt;
&lt;br /&gt;
    make -j 3 &lt;br /&gt;
    make install&lt;br /&gt;
&lt;br /&gt;
Once installed make an xorg.conf [ see xorg.conf section ] in /etc/X11/&lt;br /&gt;
and run startx as described below.&lt;br /&gt;
&lt;br /&gt;
=== xorg.conf ===&lt;br /&gt;
&lt;br /&gt;
Copy this file to /etc/X11&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Section &amp;quot;ServerLayout&amp;quot;&lt;br /&gt;
Identifier	&amp;quot;myLaout&amp;quot;&lt;br /&gt;
Screen		&amp;quot;myScreen&amp;quot;&lt;br /&gt;
# InputDevice     &amp;quot;mymouse&amp;quot;&lt;br /&gt;
InputDevice	&amp;quot;mytouchscreen&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;Screen&amp;quot;&lt;br /&gt;
Identifier	&amp;quot;myScreen&amp;quot;&lt;br /&gt;
Device		&amp;quot;myfbdev&amp;quot;&lt;br /&gt;
DefaultDepth 	24&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;Device&amp;quot;&lt;br /&gt;
Identifier	&amp;quot;myFbdev&amp;quot;&lt;br /&gt;
Driver		&amp;quot;fbdev&amp;quot;&lt;br /&gt;
Option		&amp;quot;fbdev&amp;quot; &amp;quot;/dev/graphics/fb0&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;InputDevice&amp;quot;&lt;br /&gt;
 Identifier	&amp;quot;mytouchscreen&amp;quot;&lt;br /&gt;
 Driver		&amp;quot;evdev&amp;quot;&lt;br /&gt;
 # Driver 	&amp;quot;synaptics&amp;quot;&lt;br /&gt;
 Option		&amp;quot;Device&amp;quot; &amp;quot;/dev/input/event3&amp;quot;&lt;br /&gt;
 # Option	&amp;quot;Protocol&amp;quot; &amp;quot;Auto&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Running X ===&lt;br /&gt;
&lt;br /&gt;
make sure display is on,&lt;br /&gt;
From slackware chroot environment in adb shell [ see section ]:&lt;br /&gt;
&lt;br /&gt;
    /system/bin/stop&lt;br /&gt;
    startx -- /opt/local/sw/bin/Xorg -pointer mytouchscreen :0&lt;br /&gt;
  &lt;br /&gt;
    Try disown / nohup to keep X running when disconnected from PC.&lt;br /&gt;
&lt;br /&gt;
Once Finished,&lt;br /&gt;
&lt;br /&gt;
run: &lt;br /&gt;
&lt;br /&gt;
    /system/bin/start&lt;br /&gt;
&lt;br /&gt;
Or touch the &amp;quot;back to android&amp;quot; icon on wbar. to return to Android.&lt;br /&gt;
&lt;br /&gt;
=== Virtual Keyboard ===&lt;br /&gt;
&lt;br /&gt;
==== xvkbd ====&lt;br /&gt;
&lt;br /&gt;
Download [http://homepage3.nifty.com/tsato/xvkbd/ xvkbd] from [http://homepage3.nifty.com/tsato/xvkbd/xvkbd-3.5.tar.gz xvkbd-3.5.tar.gz], and install:&lt;br /&gt;
&lt;br /&gt;
    xmkf&lt;br /&gt;
    make &lt;br /&gt;
    make install&lt;br /&gt;
&lt;br /&gt;
Run: &lt;br /&gt;
&lt;br /&gt;
    xvkbd&lt;br /&gt;
&lt;br /&gt;
=== An application launcher ===&lt;br /&gt;
&lt;br /&gt;
==== wbar ====&lt;br /&gt;
&lt;br /&gt;
Download [https://github.com/warlockcc/wbar wbar] from [https://code.google.com/p/wbar/downloads/detail?name=wbar-2.3.4.tgz&amp;amp;can=2&amp;amp;q= wbar-2.3.4.tgz] at [https://code.google.com/p/wbar/downloads/list wbar downloads at code.google.com]&lt;br /&gt;
&lt;br /&gt;
==== .wbar ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
i: /opt/local/sw/share/pixmaps/wbar/dock.png&lt;br /&gt;
c: wbar --bpress --above-desk --pos bottom --isize 48 --idist 5 --nanim 4 --falfa 65&lt;br /&gt;
t: /10&lt;br /&gt;
&lt;br /&gt;
i: /opt/local/sw/share/pixmaps/wbar/wbar.png&lt;br /&gt;
c: wbar-config&lt;br /&gt;
t: Config&lt;br /&gt;
&lt;br /&gt;
i: /opt/local/sw/share/icons/wm-icons/32x32-gant/terminal.png&lt;br /&gt;
c: xterm&lt;br /&gt;
t: Xterm&lt;br /&gt;
&lt;br /&gt;
i: /opt/local/sw/share/icons/wm-icons/32x32-gant/keyboard.png&lt;br /&gt;
c: xvkbd -compact -no-repeat -geometry 800x200&lt;br /&gt;
t: Xvkbd&lt;br /&gt;
&lt;br /&gt;
i: /opt/local/sw/share/icons/wm-icons/32x32-gant/calculator.png&lt;br /&gt;
c: xcalc&lt;br /&gt;
t: XCalc&lt;br /&gt;
&lt;br /&gt;
i: /opt/local/sw/share/icons/wm-icons/32x32-gant/restart.png&lt;br /&gt;
c: LD_LIBRARY_PATH= /system/bin/sh /android.tmp/exitfromslackware.sh &lt;br /&gt;
t: Backto Android&lt;br /&gt;
&lt;br /&gt;
i: /opt/local/sw/share/icons/wm-icons/32x32-gant/window-close.png&lt;br /&gt;
c: sleep 1 &amp;amp;&amp;amp; xkill&lt;br /&gt;
t: XKill&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Android app to launch X Windows directly from Android ==&lt;br /&gt;
&lt;br /&gt;
=== Create StartX projec ===&lt;br /&gt;
&lt;br /&gt;
Check [https://github.com/gv1/SlackwareOnMT6582 SlackwareOnMT6582] project at github&lt;br /&gt;
&lt;br /&gt;
Create a project:&lt;br /&gt;
    android  create project -n StartX -k com.startx.android -a StartXActivity -t 1 -p .&lt;br /&gt;
&lt;br /&gt;
Copy StartXActivity.java to  src/com/startx/android&lt;br /&gt;
&lt;br /&gt;
If required,&lt;br /&gt;
&lt;br /&gt;
   keytool -genkey -v -keystore gv.keystore \&lt;br /&gt;
     -alias gv_ks -keyalg RSA -keysize 2048 -validity 10000&lt;br /&gt;
&lt;br /&gt;
Add to project properties:&lt;br /&gt;
     key.store=./gv.keystore&lt;br /&gt;
     key.alias=gv_ks&lt;br /&gt;
&lt;br /&gt;
Build and install:&lt;br /&gt;
     ant release install&lt;br /&gt;
&lt;br /&gt;
==== StartXActivity.java ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// http://stackoverflow.com/questions/20932102/execute-shell-command-from-android&lt;br /&gt;
package com.startx.android;&lt;br /&gt;
&lt;br /&gt;
import java.lang.*;&lt;br /&gt;
import java.io.* ;&lt;br /&gt;
&lt;br /&gt;
import android.app.Activity;&lt;br /&gt;
import android.os.Bundle;&lt;br /&gt;
import android.widget.TextView;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
public class StartXActivity extends Activity {&lt;br /&gt;
    /** Called when the activity is first created. */&lt;br /&gt;
    @Override&lt;br /&gt;
    public void onCreate(Bundle savedInstanceState) {&lt;br /&gt;
        super.onCreate(savedInstanceState);&lt;br /&gt;
        &lt;br /&gt;
	Process p=null;&lt;br /&gt;
                try {&lt;br /&gt;
        	    TextView text = new TextView(this);&lt;br /&gt;
        	    text.setText(&amp;quot;Starting X Windows...\n&amp;quot;);&lt;br /&gt;
        	    setContentView(text);&lt;br /&gt;
		    Process su = Runtime.getRuntime().exec(&amp;quot;su&amp;quot;);&lt;br /&gt;
		    DataOutputStream os = new DataOutputStream(su.getOutputStream());              &lt;br /&gt;
		    os.writeBytes(&amp;quot;sh /data/local/tmp/chroot2slackware.sh\n&amp;quot;);&lt;br /&gt;
		    text.append(&amp;quot;done\n&amp;quot;);&lt;br /&gt;
		    os.flush();		    &lt;br /&gt;
		    os.writeBytes(&amp;quot;exit\n&amp;quot;);  &lt;br /&gt;
		    text.append(&amp;quot;exit\n&amp;quot;);&lt;br /&gt;
		    os.flush();		    &lt;br /&gt;
		    try &lt;br /&gt;
 		    {&lt;br /&gt;
		      su.waitFor();&lt;br /&gt;
		    } catch(Exception e2) {&lt;br /&gt;
			e2.printStackTrace();&lt;br /&gt;
		    }&lt;br /&gt;
                } catch (IOException e) {&lt;br /&gt;
                    e.printStackTrace();&lt;br /&gt;
                } finally {&lt;br /&gt;
                    if(p!=null) p.destroy();&lt;br /&gt;
                }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== chroot2slackware.sh ====&lt;br /&gt;
&lt;br /&gt;
Copy this file to /data/local/tmp/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#!/system/bin/sh&lt;br /&gt;
export PATH=/data/local/tmp/bin:$PATH&lt;br /&gt;
test -d /data/local/tmp/sdcard || mkdir /data/local/tmp/sdcard&lt;br /&gt;
mountpoint /data/local/tmp/sdcard || mount -t ext4 /dev/block/mmcblk1p1 /data/local/tmp/sdcard&lt;br /&gt;
test -d /data/local/tmp/slackware || mkdir /data/local/tmp/slackware&lt;br /&gt;
cd /data/local/tmp/slackware&lt;br /&gt;
&lt;br /&gt;
for d in sys proc dev system usr bin sbin \&lt;br /&gt;
  etc  tmp boot home root lib \&lt;br /&gt;
  media mnt opt  run sbin srv var android.tmp ;&lt;br /&gt;
do&lt;br /&gt;
	test -d $d || mkdir $d&lt;br /&gt;
	case $d in&lt;br /&gt;
		proc)&lt;br /&gt;
			mountpoint proc || mount -t proc none proc/&lt;br /&gt;
		;;&lt;br /&gt;
		sys)&lt;br /&gt;
			mountpoint sys  || mount -t sysfs sys sys/&lt;br /&gt;
		;;&lt;br /&gt;
		dev)&lt;br /&gt;
			mountpoint dev  || mount -o bind /dev dev/&lt;br /&gt;
		;;&lt;br /&gt;
		system)&lt;br /&gt;
			mountpoint system || mount -o bind /system system&lt;br /&gt;
		;;&lt;br /&gt;
		android.tmp)	&lt;br /&gt;
			mountpoint android.tmp || mount -o bind /data/local/tmp android.tmp&lt;br /&gt;
		;;&lt;br /&gt;
		*)&lt;br /&gt;
			mountpoint $d || mount -o bind /data/local/tmp/sdcard/$d $d&lt;br /&gt;
		;;&lt;br /&gt;
	esac&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
export PATH=/usr/bin:/bin:/usr/X11R6/bin:$PATH&lt;br /&gt;
# chroot . /bin/su -&lt;br /&gt;
# if non interactive&lt;br /&gt;
# test -z $PS1 || test -x /data/local/tmp/sdcard/init &amp;amp;&amp;amp; chroot . su - -c /init&lt;br /&gt;
# if interactive&lt;br /&gt;
# test -z $PS1 &amp;amp;&amp;amp; chroot . su -&lt;br /&gt;
chroot . /bin/bash -x &amp;lt;&amp;lt;'EOF'&lt;br /&gt;
	su -&lt;br /&gt;
	LD_LIBRARY_PATH= /system/bin/setprop ctl.stop surfaceflinger&lt;br /&gt;
	export PATH=/opt/local/sw/bin:/usr/bin:/bin:$PATH&lt;br /&gt;
	export LD_LIBRARY_PATH=/opt/local/sw/lib:/usr/lib:$LD_LIBRARY_PATH&lt;br /&gt;
	killall -9 Xorg&lt;br /&gt;
	sleep 1&lt;br /&gt;
	# /usr/bin/startx -- /opt/local/sw/bin/Xorg :0 &lt;br /&gt;
	/usr/bin/xinit -- /opt/local/sw/bin/Xorg :0 &lt;br /&gt;
	wait&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== exitfromslackware.sh ====&lt;br /&gt;
&lt;br /&gt;
This file is called when &amp;quot;Back to Android&amp;quot; wbar button is touched. It doesn't &lt;br /&gt;
unmount partitions as expected, though&lt;br /&gt;
&lt;br /&gt;
Copy this file to /data/local/tmp/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#/system/bin/sh&lt;br /&gt;
export PATH=/data/local/tmp/bin:$PATH&lt;br /&gt;
&lt;br /&gt;
killall -9 fluxbox&lt;br /&gt;
killall -9 Xorg&lt;br /&gt;
killall -9 wbar&lt;br /&gt;
&lt;br /&gt;
cd /data/local/tmp/slackware&lt;br /&gt;
&lt;br /&gt;
for d in sys proc dev system usr bin sbin etc \&lt;br /&gt;
	tmp boot home root init lib media mnt opt \&lt;br /&gt;
	run sbin srv var android.tmp;&lt;br /&gt;
do&lt;br /&gt;
	echo &amp;quot;umounting $d&amp;quot;&lt;br /&gt;
	mountpoint $d &amp;amp;&amp;amp; umount $d&lt;br /&gt;
done&lt;br /&gt;
mountpoint /data/local/tmp/sdcard &amp;amp;&amp;amp; umount /data/local/tmp/sdcard&lt;br /&gt;
# setprop ctl.start is not working.&lt;br /&gt;
# LD_LIBRARY_PATH= /system/bin/setprop ctl.start surfaceflinger&lt;br /&gt;
LD_LIBRARY_PATH= /system/bin/stop&lt;br /&gt;
LD_LIBRARY_PATH= /system/bin/start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== Running some tests ==&lt;br /&gt;
&lt;br /&gt;
=== Testing the framebuffer ===		&lt;br /&gt;
&lt;br /&gt;
For these tests, I stopped android &amp;quot;SurfaceFlinger&amp;quot; and freed up /dev/graphics/fb0. by running &amp;quot;stop&amp;quot;&lt;br /&gt;
command. Before running stop, make sure that the display is on ( not blank ). For these tests, I had&lt;br /&gt;
two terminals up on the host PC with one of them running just adb shell with su, and other running&lt;br /&gt;
chrooted slackware shell. SurfaceFlinger was stopped from su shell, and tests from Slackware shell.&lt;br /&gt;
&lt;br /&gt;
Please not Slackware shell is also running as user root.&lt;br /&gt;
&lt;br /&gt;
==== Stopping android - sort of ====&lt;br /&gt;
&lt;br /&gt;
Here is how to stop the SurfaceFlinger and get framebuffer free:&lt;br /&gt;
&lt;br /&gt;
    adb shell&lt;br /&gt;
    su&lt;br /&gt;
    stop&lt;br /&gt;
&lt;br /&gt;
Now the display goes blank, with backlight on.&lt;br /&gt;
&lt;br /&gt;
Get one of these tests.&lt;br /&gt;
[https://gist.githubusercontent.com/rafalrusin/1482697/raw/32c6c0d79b870ffb618aa7b7c664736ca5e150fe/fbtest.c  fbtest] or &lt;br /&gt;
[http://stackoverflow.com/questions/4996777/paint-pixels-to-screen-via-linux-framebuffer Paint-pixels-to-screen-  via-linux-framebuffer] or &lt;br /&gt;
[http://cep.xray.aps.anl.gov/software/qt4-x11-4.2.2/qtopiacore-testingframebuffer.html qtopiacore-testingframebuffer] All these tests worked on the Tablet. Transfer the tests to tablet using adb push&lt;br /&gt;
command.&lt;br /&gt;
&lt;br /&gt;
from Slackware shell, running under adb shell:&lt;br /&gt;
&lt;br /&gt;
    gcc fbtest.c&lt;br /&gt;
    ./a.out&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
once done, go back to android su shell from adb, and:&lt;br /&gt;
&lt;br /&gt;
==== Getting back to android ====&lt;br /&gt;
  &lt;br /&gt;
    start&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
After few seconds android display will be back on. &lt;br /&gt;
&lt;br /&gt;
=== Running evtest ===&lt;br /&gt;
&lt;br /&gt;
Download [http://cgit.freedesktop.org/~whot/evtest/tree/evtest.c evtest.c].&lt;br /&gt;
&lt;br /&gt;
   gcc -o gcc -o evtest evtest.c&lt;br /&gt;
   ./evtest&lt;br /&gt;
   see evtest.log for sample outpu&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== evtest.log ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
No device specified, trying to scan all of /dev/input/event*&lt;br /&gt;
Available devices:&lt;br /&gt;
/dev/input/event0:	mtk-kpd&lt;br /&gt;
/dev/input/event1:	ACCDET&lt;br /&gt;
/dev/input/event2:	hwmdata&lt;br /&gt;
/dev/input/event3:	mtk-tpd&lt;br /&gt;
Select the device event number [0-3]: Input driver version is 1.0.1&lt;br /&gt;
Input device ID: bus 0x0 vendor 0x0 product 0x0 version 0x0&lt;br /&gt;
Input device name: &amp;quot;mtk-tpd&amp;quot;&lt;br /&gt;
Supported events:&lt;br /&gt;
  Event type 0 (EV_SYN)&lt;br /&gt;
  Event type 1 (EV_KEY)&lt;br /&gt;
    Event code 330 (BTN_TOUCH)&lt;br /&gt;
  Event type 3 (EV_ABS)&lt;br /&gt;
    Event code 0 (ABS_X)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      800&lt;br /&gt;
      Resolution     800&lt;br /&gt;
    Event code 1 (ABS_Y)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      480&lt;br /&gt;
      Resolution     480&lt;br /&gt;
    Event code 24 (ABS_PRESSURE)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      255&lt;br /&gt;
    Event code 48 (ABS_MT_TOUCH_MAJOR)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      100&lt;br /&gt;
    Event code 49 (ABS_MT_TOUCH_MINOR)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      100&lt;br /&gt;
    Event code 53 (ABS_MT_POSITION_X)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      800&lt;br /&gt;
    Event code 54 (ABS_MT_POSITION_Y)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      480&lt;br /&gt;
    Event code 57 (ABS_MT_TRACKING_ID)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max        0&lt;br /&gt;
Properties:&lt;br /&gt;
  Property type 1 (INPUT_PROP_DIRECT)&lt;br /&gt;
Testing ... (interrupt to exit)&lt;br /&gt;
Event: time 1409845467.116675, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845467.116682, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.116687, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.116691, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.116695, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.116699, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.116703, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1409845467.133145, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.133151, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.133155, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.133160, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.133164, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.133167, -------------- SYN_REPORT ------------&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
Event: time 1409845469.216857, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.216863, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 207&lt;br /&gt;
Event: time 1409845469.216867, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 376&lt;br /&gt;
Event: time 1409845469.216871, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.216875, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.216878, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1409845469.230419, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845469.230423, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.230426, -------------- SYN_REPORT ------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Running xinput ===&lt;br /&gt;
&lt;br /&gt;
	xinput --list&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
â¡ Virtual core pointer                         id=2    [master pointer  (3)]&lt;br /&gt;
â   â³ Virtual core XTEST pointer               id=4    [slave  pointer  (2)]&lt;br /&gt;
â   â³ mytouchscreen                            id=6    [slave  pointer  (2)]&lt;br /&gt;
â£ Virtual core keyboard                        id=3    [master keyboard (2)]&lt;br /&gt;
    â³ Virtual core XTEST keyboard              id=5    [slave  keyboard (3)]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== xinput log ====&lt;br /&gt;
&lt;br /&gt;
	xinput test 6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
motion a[0]=53 a[1]=58 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=53 a[1]=58 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=53 a[1]=58 &lt;br /&gt;
motion a[0]=513 a[1]=91 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=513 a[1]=91 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=513 a[1]=91 &lt;br /&gt;
motion a[0]=659 a[1]=436 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=659 a[1]=436 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=659 a[1]=436 &lt;br /&gt;
motion a[0]=624 a[1]=152 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=624 a[1]=152 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
motion a[0]=577 a[1]=174 &lt;br /&gt;
motion a[0]=501 a[1]=203 &lt;br /&gt;
motion a[0]=457 a[1]=219 &lt;br /&gt;
motion a[0]=411 a[1]=232 &lt;br /&gt;
motion a[0]=371 a[1]=240 &lt;br /&gt;
motion a[0]=341 a[1]=245 &lt;br /&gt;
button release 1 a[0]=341 a[1]=245 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</description>
			<pubDate>Sun, 07 Sep 2014 07:12:49 GMT</pubDate>
			<dc:creator>Gv</dc:creator>
			<comments>https://www.slackwiki.com/Talk:SlackwareOnMt6582Tablet</comments>
		</item>
		<item>
			<title>SlackwareOnMt6582Tablet</title>
			<link>https://www.slackwiki.com/index.php?title=SlackwareOnMt6582Tablet&amp;diff=939</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=SlackwareOnMt6582Tablet&amp;diff=939</guid>
			<description>&lt;p&gt;Gv: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Specifications of the Tablet PC which was used here ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Processor : Arm Cortex A7, 1.3 GHz dual core.&lt;br /&gt;
             : ARMv7 Processor rev 3 (v7l),&lt;br /&gt;
   Hardware  : MT8312&lt;br /&gt;
   SOC       : mt6582.&lt;br /&gt;
   Memory    : 512MB RAM&lt;br /&gt;
   Storage   : 4GB Built in storage.&lt;br /&gt;
   Micro SD  : Slot for upto 32GB&lt;br /&gt;
   Display   : 7&amp;quot; WVGA 800x480&lt;br /&gt;
   OS        : Android 4.2 Jelly Bean&lt;br /&gt;
   GPU       : Mali?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://s7.postimg.org/fww1ibfdn/image.png Screenshot] of X windows with fluxbox and wbar. And [http://s15.postimg.org/izdxddkqj/image.png another one].&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== Rooting the Tablet PC ==&lt;br /&gt;
&lt;br /&gt;
I used [http://www.techverse.net/fastest-root-android-phone-computer/ Framaroot-1.9.3.apk] to root the device. &lt;br /&gt;
&lt;br /&gt;
== Installing Linux - Slackware 14.1, sort of. ==&lt;br /&gt;
&lt;br /&gt;
With the problem of not having kernel source for the SOC, and no no bootloader unlock possible yet, next best option was to use a chroot environment.&lt;br /&gt;
&lt;br /&gt;
So far, command line mode works fine. Here is the description of how Slackware was installed on to external micro SD Card. Was able to do some basic tests on the frame buffer display. Since there is no VTs available was not able to test Xorg, though could get Mali module compiled and loaded. More details below.&lt;br /&gt;
&lt;br /&gt;
=== Preparing SD Card on host computer ===&lt;br /&gt;
&lt;br /&gt;
Use fdisk to create one or two partitions, one for ext4 and other ( optional ) swap partition. Once these are created, assuming the device on host is /dev/sdc,&lt;br /&gt;
&lt;br /&gt;
    mkfs.ext4 /dev/sdc1&lt;br /&gt;
    sync&lt;br /&gt;
    eject sdc&lt;br /&gt;
    eject -t sdc&lt;br /&gt;
    mkdir slack&lt;br /&gt;
    mount /dev/sdc1 slack&lt;br /&gt;
    cd slack&lt;br /&gt;
    mkdir sl&lt;br /&gt;
    cd sl&lt;br /&gt;
&lt;br /&gt;
If you don't have Slackware installation files, [http://arm.slackware.com/getslack/ Get Slackware Arm] first. &lt;br /&gt;
&lt;br /&gt;
    mkdir slackware14.1&lt;br /&gt;
    cd slackware14.1&lt;br /&gt;
    (cd /path..to../slackware14.1 ; tar cfz - *) | (tar xfz - )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://sourceforge.net/projects/slackwareonapc8750/files/initrd-kirkwood.cpio.gz/download initrd-kirkwood.cpio] contains the setup program, but since I couldn't boot with custom initrd, sdc1 /sl area is prepared to have the installation files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    cpio -id &amp;lt; initrd-kirkwood.cpio&lt;br /&gt;
    sync&lt;br /&gt;
    umount slack&lt;br /&gt;
&lt;br /&gt;
Now that the sd card is ready for installation:&lt;br /&gt;
&lt;br /&gt;
    eject sdc&lt;br /&gt;
	&lt;br /&gt;
and plug it into the device. Once that is done,&lt;br /&gt;
&lt;br /&gt;
=== Getting installer ready ===&lt;br /&gt;
&lt;br /&gt;
Now plug the card in tablet pc, boot, from host computer,&lt;br /&gt;
&lt;br /&gt;
==== starting a adb shell with su ====&lt;br /&gt;
&lt;br /&gt;
    adb shell&lt;br /&gt;
    su&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== chroot to installer ====&lt;br /&gt;
&lt;br /&gt;
    cd /data/local/tmp&lt;br /&gt;
    mkdir slackware&lt;br /&gt;
    mount /dev/block/mmcblk1p1 slackware&lt;br /&gt;
    cd slackware/sl&lt;br /&gt;
    export PATH=/data/local/tmp/bin:$PATH&lt;br /&gt;
    mountpoint proc || mount -t proc none proc/&lt;br /&gt;
    mountpoint sys || mount -t sysfs sys sys/&lt;br /&gt;
    mountpoint dev || mount -o bind  /dev dev/&lt;br /&gt;
    export PATH=/usr/bin:/bin:/usr/lib/setup:$PATH&lt;br /&gt;
    pushd /dev&lt;br /&gt;
    ln -s /dev/block/mmc1blk* .&lt;br /&gt;
    popd&lt;br /&gt;
    chroot . /bin/bash&lt;br /&gt;
    mount -t ext4 /dev/mmcblk1p1 mnt&lt;br /&gt;
&lt;br /&gt;
=== Running setup ===&lt;br /&gt;
&lt;br /&gt;
Install Slackware onto mmcblk1p1, from pre mounted directory, sdc1 : /slackware14.1/slackware&lt;br /&gt;
&lt;br /&gt;
    setup&lt;br /&gt;
        Proceed and select /dev/mmcblk1p1 as target, no format&lt;br /&gt;
        For source, select pre mounted directory option, /slackware14.1/slackware&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
=== Complete installation, and configuration ===&lt;br /&gt;
&lt;br /&gt;
Once the complete installation is done,&lt;br /&gt;
&lt;br /&gt;
    umount proc&lt;br /&gt;
    umount sys&lt;br /&gt;
    umount dev&lt;br /&gt;
    sync&lt;br /&gt;
    cd ../..&lt;br /&gt;
    umount slackware&lt;br /&gt;
&lt;br /&gt;
== Getting into installed Slackware: ==&lt;br /&gt;
&lt;br /&gt;
==== Running slackware su shell ====&lt;br /&gt;
&lt;br /&gt;
    adb shell&lt;br /&gt;
    su&lt;br /&gt;
    mount /dev/block/mmcblk1p1 slackware&lt;br /&gt;
    cd slackware&lt;br /&gt;
    mountpoint proc || mount -t proc none proc/&lt;br /&gt;
    mountpoint sys || mount -t sysfs sys sys/&lt;br /&gt;
    mountpoint dev || mount -o bind  /dev dev/&lt;br /&gt;
    test -d system || mkdir system&lt;br /&gt;
    mountpoint system || mount -o bind /system system&lt;br /&gt;
    export PATH=/usr/bin:/bin:/usr/lib/setup:$PATH&lt;br /&gt;
    chroot . /bin/su -	&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From here you can do &amp;quot;normal&amp;quot; Slackware activities, sort of. Main things that were lacking in my case were VTs (ttys). Compiling programs and running programs. I ran couple of frame buffer tests too. Fortunately, removing the VT requirement from Xorg was pretty simple. Here is how it was done.&lt;br /&gt;
		&lt;br /&gt;
&lt;br /&gt;
== Getting Xorg up and running - kind of ==&lt;br /&gt;
&lt;br /&gt;
=== Getting Xorg compiled ===&lt;br /&gt;
&lt;br /&gt;
Ecept for Pointer ( touchscreen ) failure, Xorg seems to be working fine. evtest, xinput tests are showing touchscreen activity, but the cursor seems to be not&lt;br /&gt;
moving. But if a window like xvkbd or xterm or so is launched, you can move the window using the touch screen!. And kvkbd input also works. &lt;br /&gt;
&lt;br /&gt;
Download [http://www.x.org/releases/X11R7.7/src/everything/xorg-server-1.12.2.tar.bz2  xorg-server-1.12.2], &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	tar xf xorg-server-1.12.2.tar.bz2&lt;br /&gt;
&lt;br /&gt;
Also make changes to xorg-server-1.12.2/hw/xfree86/os-support/linux/lnx\_init.c so that VT / console related code is disabled. See the patch section.&lt;br /&gt;
&lt;br /&gt;
==== lnx_init.c patch ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--- xorg-server-1.12.2/hw/xfree86/os-support/linux/lnx_init.c	2014-09-04 22:53:13.450000054 +0530&lt;br /&gt;
+++ xorg-server-1.12.2.org/hw/xfree86/os-support/linux/lnx_init.c	2012-05-17 22:39:03.000000000 +0530&lt;br /&gt;
@@ -48,18 +48,15 @@&lt;br /&gt;
 static void&lt;br /&gt;
 drain_console(int fd, void *closure)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     errno = 0;&lt;br /&gt;
     if (tcflush(fd, TCIOFLUSH) == -1 &amp;amp;&amp;amp; errno == EIO) {&lt;br /&gt;
         xf86SetConsoleHandler(NULL, NULL);&lt;br /&gt;
     }&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 static void&lt;br /&gt;
 switch_to(int vt, const char *from)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     int ret;&lt;br /&gt;
 &lt;br /&gt;
     SYSCALL(ret = ioctl(xf86Info.consoleFd, VT_ACTIVATE, vt));&lt;br /&gt;
@@ -69,13 +66,11 @@&lt;br /&gt;
     SYSCALL(ret = ioctl(xf86Info.consoleFd, VT_WAITACTIVE, vt));&lt;br /&gt;
     if (ret &amp;lt; 0)&lt;br /&gt;
         FatalError(&amp;quot;%s: VT_WAITACTIVE failed: %s\n&amp;quot;, from, strerror(errno));&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void&lt;br /&gt;
 xf86OpenConsole(void)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     int i, fd = -1, ret;&lt;br /&gt;
     struct vt_mode VT;&lt;br /&gt;
     struct vt_stat vts;&lt;br /&gt;
@@ -254,13 +249,11 @@&lt;br /&gt;
             switch_to(xf86Info.vtno, &amp;quot;xf86OpenConsole&amp;quot;);&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void&lt;br /&gt;
 xf86CloseConsole(void)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     struct vt_mode VT;&lt;br /&gt;
     int ret;&lt;br /&gt;
 &lt;br /&gt;
@@ -307,7 +300,6 @@&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
     close(xf86Info.consoleFd);  /* make the vt-manager happy */&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Compiling xorg-server-1.12.2 ====&lt;br /&gt;
	cd xorg-server-1.12.2&lt;br /&gt;
	export PKG_CONFIG_PATH=/opt/local/sw/share/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
	export PKG_CONFIG_PATH=/opt/local/sw/lib/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
	export LD_LIBRARY_PATH=/opt/local/sw/lib:$LD_LIBRARY_PATH&lt;br /&gt;
	export PATH=/opt/local/sw/bin:$PATH&lt;br /&gt;
	./configure --prefix=/opt/local/sw --enable-kdrive --enable-kdrive-evdev --with-xkb-path=/opt/local/sw/share/X11/xkb --with-xkb-output=/var/lib/xkb --with-xkb-bin-directory=/opt/local/sw/bin --with-default-xkb-rules=xorg --with-default-xkb-model=pc104 --with-default-xkb-layout=us  --disable-xnest --disable-dmx --disable-xquartz --disable-xwin --disable-xephyr --disable-config-udev --enable-tslib --disable-docs  --disable-devel-docs LDFLAGS=-L/opt/local/sw/lib CFLAGS=-I/opt/local/sw/include&lt;br /&gt;
make -j 3&lt;br /&gt;
&lt;br /&gt;
If all required packages are not on the system, compilation will fail. Download each of the requiered packags , untar, configure and install.&lt;br /&gt;
&lt;br /&gt;
	./configure --prefix=/opt/local/sw&lt;br /&gt;
	make -j 3 install&lt;br /&gt;
&lt;br /&gt;
Once xorg-server-1.12.2 compilation is succesfull, &lt;br /&gt;
	make install&lt;br /&gt;
	&lt;br /&gt;
=== Compiling additional drivers required ===&lt;br /&gt;
&lt;br /&gt;
==== fbdev ====&lt;br /&gt;
&lt;br /&gt;
xf86-video-fbdev-0.4.2&lt;br /&gt;
export PKG_CONFIG_PATH=/opt/local/sw/lib/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
./configure --prefix=/opt/local/sw&lt;br /&gt;
&lt;br /&gt;
src/fbdev.c xf86-video-fbdev-0.4.2/src/fbdev.c&lt;br /&gt;
// #include &amp;quot;mibstore.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
make -j 3&lt;br /&gt;
make install&lt;br /&gt;
&lt;br /&gt;
==== evdev ====&lt;br /&gt;
&lt;br /&gt;
    xf86-input-evdev-2.7.0&lt;br /&gt;
    ./configure --prefix=/opt/local/sw&lt;br /&gt;
&lt;br /&gt;
    src/Makefile:&lt;br /&gt;
    evdev_drv_la_LIBADD = $(MTDEV_LIBS) $(UDEV_LIBS)&lt;br /&gt;
    ( if not done, causes evdev_drv.so: undefined symbol: udev_new when Xorg is ran)&lt;br /&gt;
&lt;br /&gt;
    make -j 3 &lt;br /&gt;
    make install&lt;br /&gt;
&lt;br /&gt;
Once installed make an xorg.conf [ see xorg.conf section ] in /etc/X11/&lt;br /&gt;
and run startx as described below.&lt;br /&gt;
&lt;br /&gt;
=== xorg.conf ===&lt;br /&gt;
&lt;br /&gt;
Copy this file to /etc/X11&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Section &amp;quot;ServerLayout&amp;quot;&lt;br /&gt;
Identifier	&amp;quot;myLaout&amp;quot;&lt;br /&gt;
Screen		&amp;quot;myScreen&amp;quot;&lt;br /&gt;
# InputDevice     &amp;quot;mymouse&amp;quot;&lt;br /&gt;
InputDevice	&amp;quot;mytouchscreen&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;Screen&amp;quot;&lt;br /&gt;
Identifier	&amp;quot;myScreen&amp;quot;&lt;br /&gt;
Device		&amp;quot;myfbdev&amp;quot;&lt;br /&gt;
DefaultDepth 	24&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;Device&amp;quot;&lt;br /&gt;
Identifier	&amp;quot;myFbdev&amp;quot;&lt;br /&gt;
Driver		&amp;quot;fbdev&amp;quot;&lt;br /&gt;
Option		&amp;quot;fbdev&amp;quot; &amp;quot;/dev/graphics/fb0&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;InputDevice&amp;quot;&lt;br /&gt;
 Identifier	&amp;quot;mytouchscreen&amp;quot;&lt;br /&gt;
 Driver		&amp;quot;evdev&amp;quot;&lt;br /&gt;
 # Driver 	&amp;quot;synaptics&amp;quot;&lt;br /&gt;
 Option		&amp;quot;Device&amp;quot; &amp;quot;/dev/input/event3&amp;quot;&lt;br /&gt;
 # Option	&amp;quot;Protocol&amp;quot; &amp;quot;Auto&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Running X ===&lt;br /&gt;
&lt;br /&gt;
make sure display is on,&lt;br /&gt;
From slackware chroot environment in adb shell [ see section ]:&lt;br /&gt;
&lt;br /&gt;
    /system/bin/stop&lt;br /&gt;
    startx -- /opt/local/sw/bin/Xorg -pointer mytouchscreen :0&lt;br /&gt;
  &lt;br /&gt;
    Try disown / nohup to keep X running when disconnected from PC.&lt;br /&gt;
&lt;br /&gt;
Once Finished,&lt;br /&gt;
&lt;br /&gt;
run: &lt;br /&gt;
&lt;br /&gt;
    /system/bin/start&lt;br /&gt;
&lt;br /&gt;
Or touch the &amp;quot;back to android&amp;quot; icon on wbar. to return to Android.&lt;br /&gt;
&lt;br /&gt;
=== Virtual Keyboard ===&lt;br /&gt;
&lt;br /&gt;
==== xvkbd ====&lt;br /&gt;
&lt;br /&gt;
Download [http://homepage3.nifty.com/tsato/xvkbd/ xvkbd] from [http://homepage3.nifty.com/tsato/xvkbd/xvkbd-3.5.tar.gz xvkbd-3.5.tar.gz], and install:&lt;br /&gt;
&lt;br /&gt;
    xmkf&lt;br /&gt;
    make &lt;br /&gt;
    make install&lt;br /&gt;
&lt;br /&gt;
Run: &lt;br /&gt;
&lt;br /&gt;
    xvkbd&lt;br /&gt;
&lt;br /&gt;
=== An application launcher ===&lt;br /&gt;
&lt;br /&gt;
==== wbar ====&lt;br /&gt;
&lt;br /&gt;
Download [https://github.com/warlockcc/wbar wbar] from [https://code.google.com/p/wbar/downloads/detail?name=wbar-2.3.4.tgz&amp;amp;can=2&amp;amp;q= wbar-2.3.4.tgz] at [https://code.google.com/p/wbar/downloads/list wbar downloads at code.google.com]&lt;br /&gt;
&lt;br /&gt;
==== .wbar ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
i: /opt/local/sw/share/pixmaps/wbar/dock.png&lt;br /&gt;
c: wbar --bpress --above-desk --pos bottom --isize 48 --idist 5 --nanim 4 --falfa 65&lt;br /&gt;
t: /10&lt;br /&gt;
&lt;br /&gt;
i: /opt/local/sw/share/pixmaps/wbar/wbar.png&lt;br /&gt;
c: wbar-config&lt;br /&gt;
t: Config&lt;br /&gt;
&lt;br /&gt;
i: /opt/local/sw/share/icons/wm-icons/32x32-gant/terminal.png&lt;br /&gt;
c: xterm&lt;br /&gt;
t: Xterm&lt;br /&gt;
&lt;br /&gt;
i: /opt/local/sw/share/icons/wm-icons/32x32-gant/keyboard.png&lt;br /&gt;
c: xvkbd -compact -no-repeat -geometry 800x200&lt;br /&gt;
t: Xvkbd&lt;br /&gt;
&lt;br /&gt;
i: /opt/local/sw/share/icons/wm-icons/32x32-gant/calculator.png&lt;br /&gt;
c: xcalc&lt;br /&gt;
t: XCalc&lt;br /&gt;
&lt;br /&gt;
i: /opt/local/sw/share/icons/wm-icons/32x32-gant/restart.png&lt;br /&gt;
c: LD_LIBRARY_PATH= /system/bin/sh /android.tmp/exitfromslackware.sh &lt;br /&gt;
t: Backto Android&lt;br /&gt;
&lt;br /&gt;
i: /opt/local/sw/share/icons/wm-icons/32x32-gant/window-close.png&lt;br /&gt;
c: sleep 1 &amp;amp;&amp;amp; xkill&lt;br /&gt;
t: XKill&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Android app to launch X Windows directly from Android ==&lt;br /&gt;
&lt;br /&gt;
=== Create StartX projec ===&lt;br /&gt;
&lt;br /&gt;
Check [https://github.com/gv1/SlackwareOnMT6582 SlackwareOnMT6582] project at github&lt;br /&gt;
&lt;br /&gt;
Create a project:&lt;br /&gt;
    android  create project -n StartX -k com.startx.android -a StartXActivity -t 1 -p .&lt;br /&gt;
&lt;br /&gt;
Copy StartXActivity.java to  src/com/startx/android&lt;br /&gt;
&lt;br /&gt;
If required,&lt;br /&gt;
&lt;br /&gt;
   keytool -genkey -v -keystore gv.keystore \&lt;br /&gt;
     -alias gv_ks -keyalg RSA -keysize 2048 -validity 10000&lt;br /&gt;
&lt;br /&gt;
Add to project properties:&lt;br /&gt;
     key.store=./gv.keystore&lt;br /&gt;
     key.alias=gv_ks&lt;br /&gt;
&lt;br /&gt;
Build and install:&lt;br /&gt;
     ant release install&lt;br /&gt;
&lt;br /&gt;
==== StartXActivity.java ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// http://stackoverflow.com/questions/20932102/execute-shell-command-from-android&lt;br /&gt;
package com.startx.android;&lt;br /&gt;
&lt;br /&gt;
import java.lang.*;&lt;br /&gt;
import java.io.* ;&lt;br /&gt;
&lt;br /&gt;
import android.app.Activity;&lt;br /&gt;
import android.os.Bundle;&lt;br /&gt;
import android.widget.TextView;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
public class StartXActivity extends Activity {&lt;br /&gt;
    /** Called when the activity is first created. */&lt;br /&gt;
    @Override&lt;br /&gt;
    public void onCreate(Bundle savedInstanceState) {&lt;br /&gt;
        super.onCreate(savedInstanceState);&lt;br /&gt;
        &lt;br /&gt;
	Process p=null;&lt;br /&gt;
                try {&lt;br /&gt;
        	    TextView text = new TextView(this);&lt;br /&gt;
        	    text.setText(&amp;quot;Starting X Windows...\n&amp;quot;);&lt;br /&gt;
        	    setContentView(text);&lt;br /&gt;
		    Process su = Runtime.getRuntime().exec(&amp;quot;su&amp;quot;);&lt;br /&gt;
		    DataOutputStream os = new DataOutputStream(su.getOutputStream());              &lt;br /&gt;
		    os.writeBytes(&amp;quot;sh /data/local/tmp/chroot2slackware.sh\n&amp;quot;);&lt;br /&gt;
		    text.append(&amp;quot;done\n&amp;quot;);&lt;br /&gt;
		    os.flush();		    &lt;br /&gt;
		    os.writeBytes(&amp;quot;exit\n&amp;quot;);  &lt;br /&gt;
		    text.append(&amp;quot;exit\n&amp;quot;);&lt;br /&gt;
		    os.flush();		    &lt;br /&gt;
		    try &lt;br /&gt;
 		    {&lt;br /&gt;
		      su.waitFor();&lt;br /&gt;
		    } catch(Exception e2) {&lt;br /&gt;
			e2.printStackTrace();&lt;br /&gt;
		    }&lt;br /&gt;
                } catch (IOException e) {&lt;br /&gt;
                    e.printStackTrace();&lt;br /&gt;
                } finally {&lt;br /&gt;
                    if(p!=null) p.destroy();&lt;br /&gt;
                }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== chroot2slackware.sh ====&lt;br /&gt;
&lt;br /&gt;
Copy this file to /data/local/tmp/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#!/system/bin/sh&lt;br /&gt;
export PATH=/data/local/tmp/bin:$PATH&lt;br /&gt;
test -d /data/local/tmp/sdcard || mkdir /data/local/tmp/sdcard&lt;br /&gt;
mountpoint /data/local/tmp/sdcard || mount -t ext4 /dev/block/mmcblk1p1 /data/local/tmp/sdcard&lt;br /&gt;
test -d /data/local/tmp/slackware || mkdir /data/local/tmp/slackware&lt;br /&gt;
cd /data/local/tmp/slackware&lt;br /&gt;
&lt;br /&gt;
for d in sys proc dev system usr bin sbin \&lt;br /&gt;
  etc  tmp boot home root lib \&lt;br /&gt;
  media mnt opt  run sbin srv var android.tmp ;&lt;br /&gt;
do&lt;br /&gt;
	test -d $d || mkdir $d&lt;br /&gt;
	case $d in&lt;br /&gt;
		proc)&lt;br /&gt;
			mountpoint proc || mount -t proc none proc/&lt;br /&gt;
		;;&lt;br /&gt;
		sys)&lt;br /&gt;
			mountpoint sys  || mount -t sysfs sys sys/&lt;br /&gt;
		;;&lt;br /&gt;
		dev)&lt;br /&gt;
			mountpoint dev  || mount -o bind /dev dev/&lt;br /&gt;
		;;&lt;br /&gt;
		system)&lt;br /&gt;
			mountpoint system || mount -o bind /system system&lt;br /&gt;
		;;&lt;br /&gt;
		android.tmp)	&lt;br /&gt;
			mountpoint android.tmp || mount -o bind /data/local/tmp android.tmp&lt;br /&gt;
		;;&lt;br /&gt;
		*)&lt;br /&gt;
			mountpoint $d || mount -o bind /data/local/tmp/sdcard/$d $d&lt;br /&gt;
		;;&lt;br /&gt;
	esac&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
export PATH=/usr/bin:/bin:/usr/X11R6/bin:$PATH&lt;br /&gt;
# chroot . /bin/su -&lt;br /&gt;
# if non interactive&lt;br /&gt;
# test -z $PS1 || test -x /data/local/tmp/sdcard/init &amp;amp;&amp;amp; chroot . su - -c /init&lt;br /&gt;
# if interactive&lt;br /&gt;
# test -z $PS1 &amp;amp;&amp;amp; chroot . su -&lt;br /&gt;
chroot . /bin/bash -x &amp;lt;&amp;lt;'EOF'&lt;br /&gt;
	su -&lt;br /&gt;
	LD_LIBRARY_PATH= /system/bin/setprop ctl.stop surfaceflinger&lt;br /&gt;
	export PATH=/opt/local/sw/bin:/usr/bin:/bin:$PATH&lt;br /&gt;
	export LD_LIBRARY_PATH=/opt/local/sw/lib:/usr/lib:$LD_LIBRARY_PATH&lt;br /&gt;
	killall -9 Xorg&lt;br /&gt;
	sleep 1&lt;br /&gt;
	# /usr/bin/startx -- /opt/local/sw/bin/Xorg :0 &lt;br /&gt;
	/usr/bin/xinit -- /opt/local/sw/bin/Xorg :0 &lt;br /&gt;
	wait&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== exitfromslackware.sh ====&lt;br /&gt;
&lt;br /&gt;
This file is called when &amp;quot;Back to Android&amp;quot; wbar button is touched. It doesn't &lt;br /&gt;
unmount partitions as expected, though&lt;br /&gt;
&lt;br /&gt;
Copy this file to /data/local/tmp/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#/system/bin/sh&lt;br /&gt;
export PATH=/data/local/tmp/bin:$PATH&lt;br /&gt;
&lt;br /&gt;
killall -9 fluxbox&lt;br /&gt;
killall -9 Xorg&lt;br /&gt;
killall -9 wbar&lt;br /&gt;
&lt;br /&gt;
cd /data/local/tmp/slackware&lt;br /&gt;
&lt;br /&gt;
for d in sys proc dev system usr bin sbin etc \&lt;br /&gt;
	tmp boot home root init lib media mnt opt \&lt;br /&gt;
	run sbin srv var android.tmp;&lt;br /&gt;
do&lt;br /&gt;
	echo &amp;quot;umounting $d&amp;quot;&lt;br /&gt;
	mountpoint $d &amp;amp;&amp;amp; umount $d&lt;br /&gt;
done&lt;br /&gt;
mountpoint /data/local/tmp/sdcard &amp;amp;&amp;amp; umount /data/local/tmp/sdcard&lt;br /&gt;
# setprop ctl.start is not working.&lt;br /&gt;
# LD_LIBRARY_PATH= /system/bin/setprop ctl.start surfaceflinger&lt;br /&gt;
LD_LIBRARY_PATH= /system/bin/stop&lt;br /&gt;
LD_LIBRARY_PATH= /system/bin/start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== Running some tests ==&lt;br /&gt;
&lt;br /&gt;
=== Testing the framebuffer ===		&lt;br /&gt;
&lt;br /&gt;
For these tests, I stopped android &amp;quot;SurfaceFlinger&amp;quot; and freed up /dev/graphics/fb0. by running &amp;quot;stop&amp;quot;&lt;br /&gt;
command. Before running stop, make sure that the display is on ( not blank ). For these tests, I had&lt;br /&gt;
two terminals up on the host PC with one of them running just adb shell with su, and other running&lt;br /&gt;
chrooted slackware shell. SurfaceFlinger was stopped from su shell, and tests from Slackware shell.&lt;br /&gt;
&lt;br /&gt;
Please not Slackware shell is also running as user root.&lt;br /&gt;
&lt;br /&gt;
==== Stopping android - sort of ====&lt;br /&gt;
&lt;br /&gt;
Here is how to stop the SurfaceFlinger and get framebuffer free:&lt;br /&gt;
&lt;br /&gt;
    adb shell&lt;br /&gt;
    su&lt;br /&gt;
    stop&lt;br /&gt;
&lt;br /&gt;
Now the display goes blank, with backlight on.&lt;br /&gt;
&lt;br /&gt;
Get one of these tests.&lt;br /&gt;
[https://gist.githubusercontent.com/rafalrusin/1482697/raw/32c6c0d79b870ffb618aa7b7c664736ca5e150fe/fbtest.c  fbtest] or &lt;br /&gt;
[http://stackoverflow.com/questions/4996777/paint-pixels-to-screen-via-linux-framebuffer Paint-pixels-to-screen-  via-linux-framebuffer] or &lt;br /&gt;
[http://cep.xray.aps.anl.gov/software/qt4-x11-4.2.2/qtopiacore-testingframebuffer.html qtopiacore-testingframebuffer] All these tests worked on the Tablet. Transfer the tests to tablet using adb push&lt;br /&gt;
command.&lt;br /&gt;
&lt;br /&gt;
from Slackware shell, running under adb shell:&lt;br /&gt;
&lt;br /&gt;
    gcc fbtest.c&lt;br /&gt;
    ./a.out&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
once done, go back to android su shell from adb, and:&lt;br /&gt;
&lt;br /&gt;
==== Getting back to android ====&lt;br /&gt;
  &lt;br /&gt;
    start&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
After few seconds android display will be back on. &lt;br /&gt;
&lt;br /&gt;
=== Running evtest ===&lt;br /&gt;
&lt;br /&gt;
Download [http://cgit.freedesktop.org/~whot/evtest/tree/evtest.c evtest.c].&lt;br /&gt;
&lt;br /&gt;
   gcc -o gcc -o evtest evtest.c&lt;br /&gt;
   ./evtest&lt;br /&gt;
   see evtest.log for sample outpu&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== evtest.log ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
No device specified, trying to scan all of /dev/input/event*&lt;br /&gt;
Available devices:&lt;br /&gt;
/dev/input/event0:	mtk-kpd&lt;br /&gt;
/dev/input/event1:	ACCDET&lt;br /&gt;
/dev/input/event2:	hwmdata&lt;br /&gt;
/dev/input/event3:	mtk-tpd&lt;br /&gt;
Select the device event number [0-3]: Input driver version is 1.0.1&lt;br /&gt;
Input device ID: bus 0x0 vendor 0x0 product 0x0 version 0x0&lt;br /&gt;
Input device name: &amp;quot;mtk-tpd&amp;quot;&lt;br /&gt;
Supported events:&lt;br /&gt;
  Event type 0 (EV_SYN)&lt;br /&gt;
  Event type 1 (EV_KEY)&lt;br /&gt;
    Event code 330 (BTN_TOUCH)&lt;br /&gt;
  Event type 3 (EV_ABS)&lt;br /&gt;
    Event code 0 (ABS_X)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      800&lt;br /&gt;
      Resolution     800&lt;br /&gt;
    Event code 1 (ABS_Y)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      480&lt;br /&gt;
      Resolution     480&lt;br /&gt;
    Event code 24 (ABS_PRESSURE)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      255&lt;br /&gt;
    Event code 48 (ABS_MT_TOUCH_MAJOR)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      100&lt;br /&gt;
    Event code 49 (ABS_MT_TOUCH_MINOR)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      100&lt;br /&gt;
    Event code 53 (ABS_MT_POSITION_X)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      800&lt;br /&gt;
    Event code 54 (ABS_MT_POSITION_Y)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      480&lt;br /&gt;
    Event code 57 (ABS_MT_TRACKING_ID)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max        0&lt;br /&gt;
Properties:&lt;br /&gt;
  Property type 1 (INPUT_PROP_DIRECT)&lt;br /&gt;
Testing ... (interrupt to exit)&lt;br /&gt;
Event: time 1409845467.116675, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845467.116682, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.116687, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.116691, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.116695, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.116699, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.116703, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1409845467.133145, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.133151, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.133155, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.133160, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.133164, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.133167, -------------- SYN_REPORT ------------&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
Event: time 1409845469.216857, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.216863, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 207&lt;br /&gt;
Event: time 1409845469.216867, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 376&lt;br /&gt;
Event: time 1409845469.216871, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.216875, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.216878, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1409845469.230419, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845469.230423, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.230426, -------------- SYN_REPORT ------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Running xinput ===&lt;br /&gt;
&lt;br /&gt;
	xinput --list&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
â¡ Virtual core pointer                         id=2    [master pointer  (3)]&lt;br /&gt;
â   â³ Virtual core XTEST pointer               id=4    [slave  pointer  (2)]&lt;br /&gt;
â   â³ mytouchscreen                            id=6    [slave  pointer  (2)]&lt;br /&gt;
â£ Virtual core keyboard                        id=3    [master keyboard (2)]&lt;br /&gt;
    â³ Virtual core XTEST keyboard              id=5    [slave  keyboard (3)]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== xinput log ====&lt;br /&gt;
&lt;br /&gt;
	xinput test 6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
motion a[0]=53 a[1]=58 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=53 a[1]=58 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=53 a[1]=58 &lt;br /&gt;
motion a[0]=513 a[1]=91 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=513 a[1]=91 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=513 a[1]=91 &lt;br /&gt;
motion a[0]=659 a[1]=436 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=659 a[1]=436 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=659 a[1]=436 &lt;br /&gt;
motion a[0]=624 a[1]=152 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=624 a[1]=152 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
motion a[0]=577 a[1]=174 &lt;br /&gt;
motion a[0]=501 a[1]=203 &lt;br /&gt;
motion a[0]=457 a[1]=219 &lt;br /&gt;
motion a[0]=411 a[1]=232 &lt;br /&gt;
motion a[0]=371 a[1]=240 &lt;br /&gt;
motion a[0]=341 a[1]=245 &lt;br /&gt;
button release 1 a[0]=341 a[1]=245 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</description>
			<pubDate>Sun, 07 Sep 2014 05:34:21 GMT</pubDate>
			<dc:creator>Gv</dc:creator>
			<comments>https://www.slackwiki.com/Talk:SlackwareOnMt6582Tablet</comments>
		</item>
		<item>
			<title>SlackwareOnMt6582Tablet</title>
			<link>https://www.slackwiki.com/index.php?title=SlackwareOnMt6582Tablet&amp;diff=938</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=SlackwareOnMt6582Tablet&amp;diff=938</guid>
			<description>&lt;p&gt;Gv: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Specifications of the Tablet PC which was used here ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Processor : Arm Cortex A7, 1.3 GHz dual core.&lt;br /&gt;
             : ARMv7 Processor rev 3 (v7l),&lt;br /&gt;
   Hardware  : MT8312&lt;br /&gt;
   SOC       : mt6582.&lt;br /&gt;
   Memory    : 512MB RAM&lt;br /&gt;
   Storage   : 4GB Built in storage.&lt;br /&gt;
   Micro SD  : Slot for upto 32GB&lt;br /&gt;
   Display   : 7&amp;quot; WVGA 800x480&lt;br /&gt;
   OS        : Android 4.2 Jelly Bean&lt;br /&gt;
   GPU       : Mali?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://s7.postimg.org/fww1ibfdn/image.png Screenshot] of X windows with fluxbox and wbar. And [http://s15.postimg.org/izdxddkqj/image.png another one].&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== Rooting the Tablet PC ==&lt;br /&gt;
&lt;br /&gt;
I used [http://www.techverse.net/fastest-root-android-phone-computer/ Framaroot-1.9.3.apk] to root the device. &lt;br /&gt;
&lt;br /&gt;
== Installing Linux - Slackware 14.1, sort of. ==&lt;br /&gt;
&lt;br /&gt;
With the problem of not having kernel source for the SOC, and no no bootloader unlock possible yet, next best option was to use a chroot environment.&lt;br /&gt;
&lt;br /&gt;
So far, command line mode works fine. Here is the description of how Slackware was installed on to external micro SD Card. Was able to do some basic tests on the frame buffer display. Since there is no VTs available was not able to test Xorg, though could get Mali module compiled and loaded. More details below.&lt;br /&gt;
&lt;br /&gt;
=== Preparing SD Card on host computer ===&lt;br /&gt;
&lt;br /&gt;
Use fdisk to create one or two partitions, one for ext4 and other ( optional ) swap partition. Once these are created, assuming the device on host is /dev/sdc,&lt;br /&gt;
&lt;br /&gt;
    mkfs.ext4 /dev/sdc1&lt;br /&gt;
    sync&lt;br /&gt;
    eject sdc&lt;br /&gt;
    eject -t sdc&lt;br /&gt;
    mkdir slack&lt;br /&gt;
    mount /dev/sdc1 slack&lt;br /&gt;
    cd slack&lt;br /&gt;
    mkdir sl&lt;br /&gt;
    cd sl&lt;br /&gt;
&lt;br /&gt;
If you don't have Slackware installation files, [http://arm.slackware.com/getslack/ Get Slackware Arm] first. &lt;br /&gt;
&lt;br /&gt;
    mkdir slackware14.1&lt;br /&gt;
    cd slackware14.1&lt;br /&gt;
    (cd /path..to../slackware14.1 ; tar cfz - *) | (tar xfz - )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://sourceforge.net/projects/slackwareonapc8750/files/initrd-kirkwood.cpio.gz/download initrd-kirkwood.cpio] contains the setup program, but since I couldn't boot with custom initrd, sdc1 /sl area is prepared to have the installation files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    cpio -id &amp;lt; initrd-kirkwood.cpio&lt;br /&gt;
    sync&lt;br /&gt;
    umount slack&lt;br /&gt;
&lt;br /&gt;
Now that the sd card is ready for installation:&lt;br /&gt;
&lt;br /&gt;
    eject sdc&lt;br /&gt;
	&lt;br /&gt;
and plug it into the device. Once that is done,&lt;br /&gt;
&lt;br /&gt;
=== Getting installer ready ===&lt;br /&gt;
&lt;br /&gt;
Now plug the card in tablet pc, boot, from host computer,&lt;br /&gt;
&lt;br /&gt;
==== starting a adb shell with su ====&lt;br /&gt;
&lt;br /&gt;
    adb shell&lt;br /&gt;
    su&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== chroot to installer ====&lt;br /&gt;
&lt;br /&gt;
    cd /data/local/tmp&lt;br /&gt;
    mkdir slackware&lt;br /&gt;
    mount /dev/block/mmcblk1p1 slackware&lt;br /&gt;
    cd slackware/sl&lt;br /&gt;
    export PATH=/data/local/tmp/bin:$PATH&lt;br /&gt;
    mountpoint proc || mount -t proc none proc/&lt;br /&gt;
    mountpoint sys || mount -t sysfs sys sys/&lt;br /&gt;
    mountpoint dev || mount -o bind  /dev dev/&lt;br /&gt;
    export PATH=/usr/bin:/bin:/usr/lib/setup:$PATH&lt;br /&gt;
    pushd /dev&lt;br /&gt;
    ln -s /dev/block/mmc1blk* .&lt;br /&gt;
    popd&lt;br /&gt;
    chroot . /bin/bash&lt;br /&gt;
    mount -t ext4 /dev/mmcblk1p1 mnt&lt;br /&gt;
&lt;br /&gt;
=== Running setup ===&lt;br /&gt;
&lt;br /&gt;
Install Slackware onto mmcblk1p1, from pre mounted directory, sdc1 : /slackware14.1/slackware&lt;br /&gt;
&lt;br /&gt;
    setup&lt;br /&gt;
        Proceed and select /dev/mmcblk1p1 as target, no format&lt;br /&gt;
        For source, select pre mounted directory option, /slackware14.1/slackware&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
=== Complete installation, and configuration ===&lt;br /&gt;
&lt;br /&gt;
Once the complete installation is done,&lt;br /&gt;
&lt;br /&gt;
    umount proc&lt;br /&gt;
    umount sys&lt;br /&gt;
    umount dev&lt;br /&gt;
    sync&lt;br /&gt;
    cd ../..&lt;br /&gt;
    umount slackware&lt;br /&gt;
&lt;br /&gt;
== Getting into installed Slackware: ==&lt;br /&gt;
&lt;br /&gt;
==== Running slackware su shell ====&lt;br /&gt;
&lt;br /&gt;
    adb shell&lt;br /&gt;
    su&lt;br /&gt;
    mount /dev/block/mmcblk1p1 slackware&lt;br /&gt;
    cd slackware&lt;br /&gt;
    mountpoint proc || mount -t proc none proc/&lt;br /&gt;
    mountpoint sys || mount -t sysfs sys sys/&lt;br /&gt;
    mountpoint dev || mount -o bind  /dev dev/&lt;br /&gt;
    test -d system || mkdir system&lt;br /&gt;
    mountpoint system || mount -o bind /system system&lt;br /&gt;
    export PATH=/usr/bin:/bin:/usr/lib/setup:$PATH&lt;br /&gt;
    chroot . /bin/su -	&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From here you can do &amp;quot;normal&amp;quot; Slackware activities, sort of. Main things that were lacking in my case were VTs (ttys). Compiling programs and running programs. I ran couple of frame buffer tests too. Fortunately, removing the VT requirement from Xorg was pretty simple. Here is how it was done.&lt;br /&gt;
		&lt;br /&gt;
&lt;br /&gt;
== Getting Xorg up and running - kind of ==&lt;br /&gt;
&lt;br /&gt;
=== Getting Xorg compiled ===&lt;br /&gt;
&lt;br /&gt;
Ecept for Pointer ( touchscreen ) failure, Xorg seems to be working fine. evtest, xinput tests are showing touchscreen activity, but the cursor seems to be not&lt;br /&gt;
moving. But if a window like xvkbd or xterm or so is launched, you can move the window using the touch screen!. And kvkbd input also works. &lt;br /&gt;
&lt;br /&gt;
Download [http://www.x.org/releases/X11R7.7/src/everything/xorg-server-1.12.2.tar.bz2  xorg-server-1.12.2], &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	tar xf xorg-server-1.12.2.tar.bz2&lt;br /&gt;
&lt;br /&gt;
Also make changes to xorg-server-1.12.2/hw/xfree86/os-support/linux/lnx\_init.c so that VT / console related code is disabled. See the patch section.&lt;br /&gt;
&lt;br /&gt;
==== lnx_init.c patch ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--- xorg-server-1.12.2/hw/xfree86/os-support/linux/lnx_init.c	2014-09-04 22:53:13.450000054 +0530&lt;br /&gt;
+++ xorg-server-1.12.2.org/hw/xfree86/os-support/linux/lnx_init.c	2012-05-17 22:39:03.000000000 +0530&lt;br /&gt;
@@ -48,18 +48,15 @@&lt;br /&gt;
 static void&lt;br /&gt;
 drain_console(int fd, void *closure)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     errno = 0;&lt;br /&gt;
     if (tcflush(fd, TCIOFLUSH) == -1 &amp;amp;&amp;amp; errno == EIO) {&lt;br /&gt;
         xf86SetConsoleHandler(NULL, NULL);&lt;br /&gt;
     }&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 static void&lt;br /&gt;
 switch_to(int vt, const char *from)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     int ret;&lt;br /&gt;
 &lt;br /&gt;
     SYSCALL(ret = ioctl(xf86Info.consoleFd, VT_ACTIVATE, vt));&lt;br /&gt;
@@ -69,13 +66,11 @@&lt;br /&gt;
     SYSCALL(ret = ioctl(xf86Info.consoleFd, VT_WAITACTIVE, vt));&lt;br /&gt;
     if (ret &amp;lt; 0)&lt;br /&gt;
         FatalError(&amp;quot;%s: VT_WAITACTIVE failed: %s\n&amp;quot;, from, strerror(errno));&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void&lt;br /&gt;
 xf86OpenConsole(void)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     int i, fd = -1, ret;&lt;br /&gt;
     struct vt_mode VT;&lt;br /&gt;
     struct vt_stat vts;&lt;br /&gt;
@@ -254,13 +249,11 @@&lt;br /&gt;
             switch_to(xf86Info.vtno, &amp;quot;xf86OpenConsole&amp;quot;);&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void&lt;br /&gt;
 xf86CloseConsole(void)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     struct vt_mode VT;&lt;br /&gt;
     int ret;&lt;br /&gt;
 &lt;br /&gt;
@@ -307,7 +300,6 @@&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
     close(xf86Info.consoleFd);  /* make the vt-manager happy */&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Compiling xorg-server-1.12.2 ====&lt;br /&gt;
	cd xorg-server-1.12.2&lt;br /&gt;
	export PKG_CONFIG_PATH=/opt/local/sw/share/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
	export PKG_CONFIG_PATH=/opt/local/sw/lib/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
	export LD_LIBRARY_PATH=/opt/local/sw/lib:$LD_LIBRARY_PATH&lt;br /&gt;
	export PATH=/opt/local/sw/bin:$PATH&lt;br /&gt;
	./configure --prefix=/opt/local/sw --enable-kdrive --enable-kdrive-evdev --with-xkb-path=/opt/local/sw/share/X11/xkb --with-xkb-output=/var/lib/xkb --with-xkb-bin-directory=/opt/local/sw/bin --with-default-xkb-rules=xorg --with-default-xkb-model=pc104 --with-default-xkb-layout=us  --disable-xnest --disable-dmx --disable-xquartz --disable-xwin --disable-xephyr --disable-config-udev --enable-tslib --disable-docs  --disable-devel-docs LDFLAGS=-L/opt/local/sw/lib CFLAGS=-I/opt/local/sw/include&lt;br /&gt;
make -j 3&lt;br /&gt;
&lt;br /&gt;
If all required packages are not on the system, compilation will fail. Download each of the requiered packags , untar, configure and install.&lt;br /&gt;
&lt;br /&gt;
	./configure --prefix=/opt/local/sw&lt;br /&gt;
	make -j 3 install&lt;br /&gt;
&lt;br /&gt;
Once xorg-server-1.12.2 compilation is succesfull, &lt;br /&gt;
	make install&lt;br /&gt;
	&lt;br /&gt;
=== Compiling additional drivers required ===&lt;br /&gt;
&lt;br /&gt;
==== fbdev ====&lt;br /&gt;
&lt;br /&gt;
xf86-video-fbdev-0.4.2&lt;br /&gt;
export PKG_CONFIG_PATH=/opt/local/sw/lib/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
./configure --prefix=/opt/local/sw&lt;br /&gt;
&lt;br /&gt;
src/fbdev.c xf86-video-fbdev-0.4.2/src/fbdev.c&lt;br /&gt;
// #include &amp;quot;mibstore.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
make -j 3&lt;br /&gt;
make install&lt;br /&gt;
&lt;br /&gt;
==== evdev ====&lt;br /&gt;
&lt;br /&gt;
    xf86-input-evdev-2.7.0&lt;br /&gt;
    ./configure --prefix=/opt/local/sw&lt;br /&gt;
&lt;br /&gt;
    src/Makefile:&lt;br /&gt;
    evdev_drv_la_LIBADD = $(MTDEV_LIBS) $(UDEV_LIBS)&lt;br /&gt;
    ( if not done, causes evdev_drv.so: undefined symbol: udev_new when Xorg is ran)&lt;br /&gt;
&lt;br /&gt;
    make -j 3 &lt;br /&gt;
    make install&lt;br /&gt;
&lt;br /&gt;
Once installed make an xorg.conf [ see xorg.conf section ] in /etc/X11/&lt;br /&gt;
and run startx as described below.&lt;br /&gt;
&lt;br /&gt;
=== xorg.conf ===&lt;br /&gt;
&lt;br /&gt;
Copy this file to /etc/X11&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Section &amp;quot;ServerLayout&amp;quot;&lt;br /&gt;
Identifier	&amp;quot;myLaout&amp;quot;&lt;br /&gt;
Screen		&amp;quot;myScreen&amp;quot;&lt;br /&gt;
# InputDevice     &amp;quot;mymouse&amp;quot;&lt;br /&gt;
InputDevice	&amp;quot;mytouchscreen&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;Screen&amp;quot;&lt;br /&gt;
Identifier	&amp;quot;myScreen&amp;quot;&lt;br /&gt;
Device		&amp;quot;myfbdev&amp;quot;&lt;br /&gt;
DefaultDepth 	24&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;Device&amp;quot;&lt;br /&gt;
Identifier	&amp;quot;myFbdev&amp;quot;&lt;br /&gt;
Driver		&amp;quot;fbdev&amp;quot;&lt;br /&gt;
Option		&amp;quot;fbdev&amp;quot; &amp;quot;/dev/graphics/fb0&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;InputDevice&amp;quot;&lt;br /&gt;
 Identifier	&amp;quot;mytouchscreen&amp;quot;&lt;br /&gt;
 Driver		&amp;quot;evdev&amp;quot;&lt;br /&gt;
 # Driver 	&amp;quot;synaptics&amp;quot;&lt;br /&gt;
 Option		&amp;quot;Device&amp;quot; &amp;quot;/dev/input/event3&amp;quot;&lt;br /&gt;
 # Option	&amp;quot;Protocol&amp;quot; &amp;quot;Auto&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Running X ===&lt;br /&gt;
&lt;br /&gt;
make sure display is on,&lt;br /&gt;
From slackware chroot environment in adb shell [ see section ]:&lt;br /&gt;
&lt;br /&gt;
    /system/bin/stop&lt;br /&gt;
    startx -- /opt/local/sw/bin/Xorg -pointer mytouchscreen :0&lt;br /&gt;
  &lt;br /&gt;
    Try disown / nohup to keep X running when disconnected from PC.&lt;br /&gt;
&lt;br /&gt;
Once Finished,&lt;br /&gt;
&lt;br /&gt;
run: &lt;br /&gt;
&lt;br /&gt;
    /system/bin/start&lt;br /&gt;
&lt;br /&gt;
Or touch the &amp;quot;back to android&amp;quot; icon on wbar. to return to Android.&lt;br /&gt;
&lt;br /&gt;
=== Virtual Keyboard ===&lt;br /&gt;
&lt;br /&gt;
==== xvkbd ====&lt;br /&gt;
&lt;br /&gt;
Download [http://homepage3.nifty.com/tsato/xvkbd/ xvkbd] from [http://homepage3.nifty.com/tsato/xvkbd/xvkbd-3.5.tar.gz xvkbd-3.5.tar.gz], and install:&lt;br /&gt;
&lt;br /&gt;
    xmkf&lt;br /&gt;
    make &lt;br /&gt;
    make install&lt;br /&gt;
&lt;br /&gt;
Run: &lt;br /&gt;
&lt;br /&gt;
    xvkbd&lt;br /&gt;
&lt;br /&gt;
=== An application launcher ===&lt;br /&gt;
&lt;br /&gt;
==== wbar ====&lt;br /&gt;
&lt;br /&gt;
Download [https://github.com/warlockcc/wbar wbar] from [https://code.google.com/p/wbar/downloads/detail?name=wbar-2.3.4.tgz&amp;amp;can=2&amp;amp;q= wbar-2.3.4.tgz] at [https://code.google.com/p/wbar/downloads/list wbar downloads at code.google.com]&lt;br /&gt;
&lt;br /&gt;
==== .wbar ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
i: /opt/local/sw/share/pixmaps/wbar/dock.png&lt;br /&gt;
c: wbar --bpress --above-desk --pos bottom --isize 48 --idist 5 --nanim 4 --falfa 65&lt;br /&gt;
t: /10&lt;br /&gt;
&lt;br /&gt;
i: /opt/local/sw/share/pixmaps/wbar/wbar.png&lt;br /&gt;
c: wbar-config&lt;br /&gt;
t: Config&lt;br /&gt;
&lt;br /&gt;
i: /opt/local/sw/share/icons/wm-icons/32x32-gant/terminal.png&lt;br /&gt;
c: xterm&lt;br /&gt;
t: Xterm&lt;br /&gt;
&lt;br /&gt;
i: /opt/local/sw/share/icons/wm-icons/32x32-gant/keyboard.png&lt;br /&gt;
c: xvkbd -compact -no-repeat -geometry 800x200&lt;br /&gt;
t: Xvkbd&lt;br /&gt;
&lt;br /&gt;
i: /opt/local/sw/share/icons/wm-icons/32x32-gant/calculator.png&lt;br /&gt;
c: xcalc&lt;br /&gt;
t: XCalc&lt;br /&gt;
&lt;br /&gt;
i: /opt/local/sw/share/icons/wm-icons/32x32-gant/restart.png&lt;br /&gt;
c: LD_LIBRARY_PATH= /system/bin/sh /android.tmp/exitfromslackware.sh &lt;br /&gt;
t: Backto Android&lt;br /&gt;
&lt;br /&gt;
i: /opt/local/sw/share/icons/wm-icons/32x32-gant/window-close.png&lt;br /&gt;
c: sleep 1 &amp;amp;&amp;amp; xkill&lt;br /&gt;
t: XKill&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Android app to launch X Windows directly from Android ==&lt;br /&gt;
&lt;br /&gt;
=== Create StartX projec ===&lt;br /&gt;
&lt;br /&gt;
Check [https://www.github.com/gv3/StartX StartX] project at github&lt;br /&gt;
&lt;br /&gt;
Create a project:&lt;br /&gt;
    android  create project -n StartX -k com.startx.android -a StartXActivity -t 1 -p .&lt;br /&gt;
&lt;br /&gt;
Copy StartXActivity.java to  src/com/startx/android&lt;br /&gt;
&lt;br /&gt;
If required,&lt;br /&gt;
&lt;br /&gt;
   keytool -genkey -v -keystore gv.keystore \&lt;br /&gt;
     -alias gv_ks -keyalg RSA -keysize 2048 -validity 10000&lt;br /&gt;
&lt;br /&gt;
Add to project properties:&lt;br /&gt;
     key.store=./gv.keystore&lt;br /&gt;
     key.alias=gv_ks&lt;br /&gt;
&lt;br /&gt;
Build and install:&lt;br /&gt;
     ant release install&lt;br /&gt;
&lt;br /&gt;
==== StartXActivity.java ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// http://stackoverflow.com/questions/20932102/execute-shell-command-from-android&lt;br /&gt;
package com.startx.android;&lt;br /&gt;
&lt;br /&gt;
import java.lang.*;&lt;br /&gt;
import java.io.* ;&lt;br /&gt;
&lt;br /&gt;
import android.app.Activity;&lt;br /&gt;
import android.os.Bundle;&lt;br /&gt;
import android.widget.TextView;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
public class StartXActivity extends Activity {&lt;br /&gt;
    /** Called when the activity is first created. */&lt;br /&gt;
    @Override&lt;br /&gt;
    public void onCreate(Bundle savedInstanceState) {&lt;br /&gt;
        super.onCreate(savedInstanceState);&lt;br /&gt;
        &lt;br /&gt;
	Process p=null;&lt;br /&gt;
                try {&lt;br /&gt;
        	    TextView text = new TextView(this);&lt;br /&gt;
        	    text.setText(&amp;quot;Starting X Windows...\n&amp;quot;);&lt;br /&gt;
        	    setContentView(text);&lt;br /&gt;
		    Process su = Runtime.getRuntime().exec(&amp;quot;su&amp;quot;);&lt;br /&gt;
		    DataOutputStream os = new DataOutputStream(su.getOutputStream());              &lt;br /&gt;
		    os.writeBytes(&amp;quot;sh /data/local/tmp/chroot2slackware.sh\n&amp;quot;);&lt;br /&gt;
		    text.append(&amp;quot;done\n&amp;quot;);&lt;br /&gt;
		    os.flush();		    &lt;br /&gt;
		    os.writeBytes(&amp;quot;exit\n&amp;quot;);  &lt;br /&gt;
		    text.append(&amp;quot;exit\n&amp;quot;);&lt;br /&gt;
		    os.flush();		    &lt;br /&gt;
		    try &lt;br /&gt;
 		    {&lt;br /&gt;
		      su.waitFor();&lt;br /&gt;
		    } catch(Exception e2) {&lt;br /&gt;
			e2.printStackTrace();&lt;br /&gt;
		    }&lt;br /&gt;
                } catch (IOException e) {&lt;br /&gt;
                    e.printStackTrace();&lt;br /&gt;
                } finally {&lt;br /&gt;
                    if(p!=null) p.destroy();&lt;br /&gt;
                }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== chroot2slackware.sh ====&lt;br /&gt;
&lt;br /&gt;
Copy this file to /data/local/tmp/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#!/system/bin/sh&lt;br /&gt;
export PATH=/data/local/tmp/bin:$PATH&lt;br /&gt;
test -d /data/local/tmp/sdcard || mkdir /data/local/tmp/sdcard&lt;br /&gt;
mountpoint /data/local/tmp/sdcard || mount -t ext4 /dev/block/mmcblk1p1 /data/local/tmp/sdcard&lt;br /&gt;
test -d /data/local/tmp/slackware || mkdir /data/local/tmp/slackware&lt;br /&gt;
cd /data/local/tmp/slackware&lt;br /&gt;
&lt;br /&gt;
for d in sys proc dev system usr bin sbin \&lt;br /&gt;
  etc  tmp boot home root lib \&lt;br /&gt;
  media mnt opt  run sbin srv var android.tmp ;&lt;br /&gt;
do&lt;br /&gt;
	test -d $d || mkdir $d&lt;br /&gt;
	case $d in&lt;br /&gt;
		proc)&lt;br /&gt;
			mountpoint proc || mount -t proc none proc/&lt;br /&gt;
		;;&lt;br /&gt;
		sys)&lt;br /&gt;
			mountpoint sys  || mount -t sysfs sys sys/&lt;br /&gt;
		;;&lt;br /&gt;
		dev)&lt;br /&gt;
			mountpoint dev  || mount -o bind /dev dev/&lt;br /&gt;
		;;&lt;br /&gt;
		system)&lt;br /&gt;
			mountpoint system || mount -o bind /system system&lt;br /&gt;
		;;&lt;br /&gt;
		android.tmp)	&lt;br /&gt;
			mountpoint android.tmp || mount -o bind /data/local/tmp android.tmp&lt;br /&gt;
		;;&lt;br /&gt;
		*)&lt;br /&gt;
			mountpoint $d || mount -o bind /data/local/tmp/sdcard/$d $d&lt;br /&gt;
		;;&lt;br /&gt;
	esac&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
export PATH=/usr/bin:/bin:/usr/X11R6/bin:$PATH&lt;br /&gt;
# chroot . /bin/su -&lt;br /&gt;
# if non interactive&lt;br /&gt;
# test -z $PS1 || test -x /data/local/tmp/sdcard/init &amp;amp;&amp;amp; chroot . su - -c /init&lt;br /&gt;
# if interactive&lt;br /&gt;
# test -z $PS1 &amp;amp;&amp;amp; chroot . su -&lt;br /&gt;
chroot . /bin/bash -x &amp;lt;&amp;lt;'EOF'&lt;br /&gt;
	su -&lt;br /&gt;
	LD_LIBRARY_PATH= /system/bin/setprop ctl.stop surfaceflinger&lt;br /&gt;
	export PATH=/opt/local/sw/bin:/usr/bin:/bin:$PATH&lt;br /&gt;
	export LD_LIBRARY_PATH=/opt/local/sw/lib:/usr/lib:$LD_LIBRARY_PATH&lt;br /&gt;
	killall -9 Xorg&lt;br /&gt;
	sleep 1&lt;br /&gt;
	# /usr/bin/startx -- /opt/local/sw/bin/Xorg :0 &lt;br /&gt;
	/usr/bin/xinit -- /opt/local/sw/bin/Xorg :0 &lt;br /&gt;
	wait&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== exitfromslackware.sh ====&lt;br /&gt;
&lt;br /&gt;
This file is called when &amp;quot;Back to Android&amp;quot; wbar button is touched. It doesn't &lt;br /&gt;
unmount partitions as expected, though&lt;br /&gt;
&lt;br /&gt;
Copy this file to /data/local/tmp/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#/system/bin/sh&lt;br /&gt;
export PATH=/data/local/tmp/bin:$PATH&lt;br /&gt;
&lt;br /&gt;
killall -9 fluxbox&lt;br /&gt;
killall -9 Xorg&lt;br /&gt;
killall -9 wbar&lt;br /&gt;
&lt;br /&gt;
cd /data/local/tmp/slackware&lt;br /&gt;
&lt;br /&gt;
for d in sys proc dev system usr bin sbin etc \&lt;br /&gt;
	tmp boot home root init lib media mnt opt \&lt;br /&gt;
	run sbin srv var android.tmp;&lt;br /&gt;
do&lt;br /&gt;
	echo &amp;quot;umounting $d&amp;quot;&lt;br /&gt;
	mountpoint $d &amp;amp;&amp;amp; umount $d&lt;br /&gt;
done&lt;br /&gt;
mountpoint /data/local/tmp/sdcard &amp;amp;&amp;amp; umount /data/local/tmp/sdcard&lt;br /&gt;
# setprop ctl.start is not working.&lt;br /&gt;
# LD_LIBRARY_PATH= /system/bin/setprop ctl.start surfaceflinger&lt;br /&gt;
LD_LIBRARY_PATH= /system/bin/stop&lt;br /&gt;
LD_LIBRARY_PATH= /system/bin/start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== Running some tests ==&lt;br /&gt;
&lt;br /&gt;
=== Testing the framebuffer ===		&lt;br /&gt;
&lt;br /&gt;
For these tests, I stopped android &amp;quot;SurfaceFlinger&amp;quot; and freed up /dev/graphics/fb0. by running &amp;quot;stop&amp;quot;&lt;br /&gt;
command. Before running stop, make sure that the display is on ( not blank ). For these tests, I had&lt;br /&gt;
two terminals up on the host PC with one of them running just adb shell with su, and other running&lt;br /&gt;
chrooted slackware shell. SurfaceFlinger was stopped from su shell, and tests from Slackware shell.&lt;br /&gt;
&lt;br /&gt;
Please not Slackware shell is also running as user root.&lt;br /&gt;
&lt;br /&gt;
==== Stopping android - sort of ====&lt;br /&gt;
&lt;br /&gt;
Here is how to stop the SurfaceFlinger and get framebuffer free:&lt;br /&gt;
&lt;br /&gt;
    adb shell&lt;br /&gt;
    su&lt;br /&gt;
    stop&lt;br /&gt;
&lt;br /&gt;
Now the display goes blank, with backlight on.&lt;br /&gt;
&lt;br /&gt;
Get one of these tests.&lt;br /&gt;
[https://gist.githubusercontent.com/rafalrusin/1482697/raw/32c6c0d79b870ffb618aa7b7c664736ca5e150fe/fbtest.c  fbtest] or &lt;br /&gt;
[http://stackoverflow.com/questions/4996777/paint-pixels-to-screen-via-linux-framebuffer Paint-pixels-to-screen-  via-linux-framebuffer] or &lt;br /&gt;
[http://cep.xray.aps.anl.gov/software/qt4-x11-4.2.2/qtopiacore-testingframebuffer.html qtopiacore-testingframebuffer] All these tests worked on the Tablet. Transfer the tests to tablet using adb push&lt;br /&gt;
command.&lt;br /&gt;
&lt;br /&gt;
from Slackware shell, running under adb shell:&lt;br /&gt;
&lt;br /&gt;
    gcc fbtest.c&lt;br /&gt;
    ./a.out&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
once done, go back to android su shell from adb, and:&lt;br /&gt;
&lt;br /&gt;
==== Getting back to android ====&lt;br /&gt;
  &lt;br /&gt;
    start&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
After few seconds android display will be back on. &lt;br /&gt;
&lt;br /&gt;
=== Running evtest ===&lt;br /&gt;
&lt;br /&gt;
Download [http://cgit.freedesktop.org/~whot/evtest/tree/evtest.c evtest.c].&lt;br /&gt;
&lt;br /&gt;
   gcc -o gcc -o evtest evtest.c&lt;br /&gt;
   ./evtest&lt;br /&gt;
   see evtest.log for sample outpu&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== evtest.log ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
No device specified, trying to scan all of /dev/input/event*&lt;br /&gt;
Available devices:&lt;br /&gt;
/dev/input/event0:	mtk-kpd&lt;br /&gt;
/dev/input/event1:	ACCDET&lt;br /&gt;
/dev/input/event2:	hwmdata&lt;br /&gt;
/dev/input/event3:	mtk-tpd&lt;br /&gt;
Select the device event number [0-3]: Input driver version is 1.0.1&lt;br /&gt;
Input device ID: bus 0x0 vendor 0x0 product 0x0 version 0x0&lt;br /&gt;
Input device name: &amp;quot;mtk-tpd&amp;quot;&lt;br /&gt;
Supported events:&lt;br /&gt;
  Event type 0 (EV_SYN)&lt;br /&gt;
  Event type 1 (EV_KEY)&lt;br /&gt;
    Event code 330 (BTN_TOUCH)&lt;br /&gt;
  Event type 3 (EV_ABS)&lt;br /&gt;
    Event code 0 (ABS_X)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      800&lt;br /&gt;
      Resolution     800&lt;br /&gt;
    Event code 1 (ABS_Y)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      480&lt;br /&gt;
      Resolution     480&lt;br /&gt;
    Event code 24 (ABS_PRESSURE)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      255&lt;br /&gt;
    Event code 48 (ABS_MT_TOUCH_MAJOR)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      100&lt;br /&gt;
    Event code 49 (ABS_MT_TOUCH_MINOR)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      100&lt;br /&gt;
    Event code 53 (ABS_MT_POSITION_X)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      800&lt;br /&gt;
    Event code 54 (ABS_MT_POSITION_Y)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      480&lt;br /&gt;
    Event code 57 (ABS_MT_TRACKING_ID)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max        0&lt;br /&gt;
Properties:&lt;br /&gt;
  Property type 1 (INPUT_PROP_DIRECT)&lt;br /&gt;
Testing ... (interrupt to exit)&lt;br /&gt;
Event: time 1409845467.116675, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845467.116682, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.116687, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.116691, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.116695, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.116699, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.116703, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1409845467.133145, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.133151, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.133155, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.133160, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.133164, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.133167, -------------- SYN_REPORT ------------&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
Event: time 1409845469.216857, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.216863, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 207&lt;br /&gt;
Event: time 1409845469.216867, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 376&lt;br /&gt;
Event: time 1409845469.216871, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.216875, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.216878, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1409845469.230419, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845469.230423, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.230426, -------------- SYN_REPORT ------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Running xinput ===&lt;br /&gt;
&lt;br /&gt;
	xinput --list&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
â¡ Virtual core pointer                         id=2    [master pointer  (3)]&lt;br /&gt;
â   â³ Virtual core XTEST pointer               id=4    [slave  pointer  (2)]&lt;br /&gt;
â   â³ mytouchscreen                            id=6    [slave  pointer  (2)]&lt;br /&gt;
â£ Virtual core keyboard                        id=3    [master keyboard (2)]&lt;br /&gt;
    â³ Virtual core XTEST keyboard              id=5    [slave  keyboard (3)]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== xinput log ====&lt;br /&gt;
&lt;br /&gt;
	xinput test 6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
motion a[0]=53 a[1]=58 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=53 a[1]=58 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=53 a[1]=58 &lt;br /&gt;
motion a[0]=513 a[1]=91 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=513 a[1]=91 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=513 a[1]=91 &lt;br /&gt;
motion a[0]=659 a[1]=436 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=659 a[1]=436 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=659 a[1]=436 &lt;br /&gt;
motion a[0]=624 a[1]=152 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=624 a[1]=152 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
motion a[0]=577 a[1]=174 &lt;br /&gt;
motion a[0]=501 a[1]=203 &lt;br /&gt;
motion a[0]=457 a[1]=219 &lt;br /&gt;
motion a[0]=411 a[1]=232 &lt;br /&gt;
motion a[0]=371 a[1]=240 &lt;br /&gt;
motion a[0]=341 a[1]=245 &lt;br /&gt;
button release 1 a[0]=341 a[1]=245 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</description>
			<pubDate>Sun, 07 Sep 2014 05:21:37 GMT</pubDate>
			<dc:creator>Gv</dc:creator>
			<comments>https://www.slackwiki.com/Talk:SlackwareOnMt6582Tablet</comments>
		</item>
		<item>
			<title>SlackwareOnMt6582Tablet</title>
			<link>https://www.slackwiki.com/index.php?title=SlackwareOnMt6582Tablet&amp;diff=937</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=SlackwareOnMt6582Tablet&amp;diff=937</guid>
			<description>&lt;p&gt;Gv: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Specifications of the Tablet PC which was used here ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Processor : Arm Cortex A7, 1.3 GHz dual core.&lt;br /&gt;
             : ARMv7 Processor rev 3 (v7l),&lt;br /&gt;
   Hardware  : MT8312&lt;br /&gt;
   SOC       : mt6582.&lt;br /&gt;
   Memory    : 512MB RAM&lt;br /&gt;
   Storage   : 4GB Built in storage.&lt;br /&gt;
   Micro SD  : Slot for upto 32GB&lt;br /&gt;
   Display   : 7&amp;quot; WVGA 800x480&lt;br /&gt;
   OS        : Android 4.2 Jelly Bean&lt;br /&gt;
   GPU       : Mali?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://s7.postimg.org/fww1ibfdn/image.png Screenshot] of X windows with fluxbox and wbar. And [http://s15.postimg.org/izdxddkqj/image.png another one].&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== Rooting the Tablet PC ==&lt;br /&gt;
&lt;br /&gt;
I used [http://www.techverse.net/fastest-root-android-phone-computer/ Framaroot-1.9.3.apk] to root the device. &lt;br /&gt;
&lt;br /&gt;
== Installing Linux - Slackware 14.1, sort of. ==&lt;br /&gt;
&lt;br /&gt;
With the problem of not having kernel source for the SOC, and no no bootloader unlock possible yet, next best option was to use a chroot environment.&lt;br /&gt;
&lt;br /&gt;
So far, command line mode works fine. Here is the description of how Slackware was installed on to external micro SD Card. Was able to do some basic tests on the frame buffer display. Since there is no VTs available was not able to test Xorg, though could get Mali module compiled and loaded. More details below.&lt;br /&gt;
&lt;br /&gt;
=== Preparing SD Card on host computer ===&lt;br /&gt;
&lt;br /&gt;
Use fdisk to create one or two partitions, one for ext4 and other ( optional ) swap partition. Once these are created, assuming the device on host is /dev/sdc,&lt;br /&gt;
&lt;br /&gt;
    mkfs.ext4 /dev/sdc1&lt;br /&gt;
    sync&lt;br /&gt;
    eject sdc&lt;br /&gt;
    eject -t sdc&lt;br /&gt;
    mkdir slack&lt;br /&gt;
    mount /dev/sdc1 slack&lt;br /&gt;
    cd slack&lt;br /&gt;
    mkdir sl&lt;br /&gt;
    cd sl&lt;br /&gt;
&lt;br /&gt;
If you don't have Slackware installation files, [http://arm.slackware.com/getslack/ Get Slackware Arm] first. &lt;br /&gt;
&lt;br /&gt;
    mkdir slackware14.1&lt;br /&gt;
    cd slackware14.1&lt;br /&gt;
    (cd /path..to../slackware14.1 ; tar cfz - *) | (tar xfz - )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://sourceforge.net/projects/slackwareonapc8750/files/initrd-kirkwood.cpio.gz/download initrd-kirkwood.cpio] contains the setup program, but since I couldn't boot with custom initrd, sdc1 /sl area is prepared to have the installation files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    cpio -id &amp;lt; initrd-kirkwood.cpio&lt;br /&gt;
    sync&lt;br /&gt;
    umount slack&lt;br /&gt;
&lt;br /&gt;
Now that the sd card is ready for installation:&lt;br /&gt;
&lt;br /&gt;
    eject sdc&lt;br /&gt;
	&lt;br /&gt;
and plug it into the device. Once that is done,&lt;br /&gt;
&lt;br /&gt;
=== Getting installer ready ===&lt;br /&gt;
&lt;br /&gt;
Now plug the card in tablet pc, boot, from host computer,&lt;br /&gt;
&lt;br /&gt;
==== starting a adb shell with su ====&lt;br /&gt;
&lt;br /&gt;
    adb shell&lt;br /&gt;
    su&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== chroot to installer ====&lt;br /&gt;
&lt;br /&gt;
    cd /data/local/tmp&lt;br /&gt;
    mkdir slackware&lt;br /&gt;
    mount /dev/block/mmcblk1p1 slackware&lt;br /&gt;
    cd slackware/sl&lt;br /&gt;
    export PATH=/data/local/tmp/bin:$PATH&lt;br /&gt;
    mountpoint proc || mount -t proc none proc/&lt;br /&gt;
    mountpoint sys || mount -t sysfs sys sys/&lt;br /&gt;
    mountpoint dev || mount -o bind  /dev dev/&lt;br /&gt;
    export PATH=/usr/bin:/bin:/usr/lib/setup:$PATH&lt;br /&gt;
    pushd /dev&lt;br /&gt;
    ln -s /dev/block/mmc1blk* .&lt;br /&gt;
    popd&lt;br /&gt;
    chroot . /bin/bash&lt;br /&gt;
    mount -t ext4 /dev/mmcblk1p1 mnt&lt;br /&gt;
&lt;br /&gt;
=== Running setup ===&lt;br /&gt;
&lt;br /&gt;
Install Slackware onto mmcblk1p1, from pre mounted directory, sdc1 : /slackware14.1/slackware&lt;br /&gt;
&lt;br /&gt;
    setup&lt;br /&gt;
        Proceed and select /dev/mmcblk1p1 as target, no format&lt;br /&gt;
        For source, select pre mounted directory option, /slackware14.1/slackware&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
=== Complete installation, and configuration ===&lt;br /&gt;
&lt;br /&gt;
Once the complete installation is done,&lt;br /&gt;
&lt;br /&gt;
    umount proc&lt;br /&gt;
    umount sys&lt;br /&gt;
    umount dev&lt;br /&gt;
    sync&lt;br /&gt;
    cd ../..&lt;br /&gt;
    umount slackware&lt;br /&gt;
&lt;br /&gt;
== Getting into installed Slackware: ==&lt;br /&gt;
&lt;br /&gt;
==== Running slackware su shell ====&lt;br /&gt;
&lt;br /&gt;
    adb shell&lt;br /&gt;
    su&lt;br /&gt;
    mount /dev/block/mmcblk1p1 slackware&lt;br /&gt;
    cd slackware&lt;br /&gt;
    mountpoint proc || mount -t proc none proc/&lt;br /&gt;
    mountpoint sys || mount -t sysfs sys sys/&lt;br /&gt;
    mountpoint dev || mount -o bind  /dev dev/&lt;br /&gt;
    test -d system || mkdir system&lt;br /&gt;
    mountpoint system || mount -o bind /system system&lt;br /&gt;
    export PATH=/usr/bin:/bin:/usr/lib/setup:$PATH&lt;br /&gt;
    chroot . /bin/su -	&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From here you can do &amp;quot;normal&amp;quot; Slackware activities, sort of. Main things that were lacking in my case were VTs (ttys). Compiling programs and running programs. I ran couple of frame buffer tests too. Fortunately, removing the VT requirement from Xorg was pretty simple. Here is how it was done.&lt;br /&gt;
		&lt;br /&gt;
&lt;br /&gt;
== Getting Xorg up and running - kind of ==&lt;br /&gt;
&lt;br /&gt;
=== Getting Xorg compiled ===&lt;br /&gt;
&lt;br /&gt;
Ecept for Pointer ( touchscreen ) failure, Xorg seems to be working fine. evtest, xinput tests are showing touchscreen activity, but the cursor seems to be not&lt;br /&gt;
moving. But if a window like xvkbd or xterm or so is launched, you can move the window using the touch screen!. And kvkbd input also works. &lt;br /&gt;
&lt;br /&gt;
Download [http://www.x.org/releases/X11R7.7/src/everything/xorg-server-1.12.2.tar.bz2  xorg-server-1.12.2], &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	tar xf xorg-server-1.12.2.tar.bz2&lt;br /&gt;
&lt;br /&gt;
Also make changes to xorg-server-1.12.2/hw/xfree86/os-support/linux/lnx\_init.c so that VT / console related code is disabled. See the patch section.&lt;br /&gt;
&lt;br /&gt;
==== lnx_init.c patch ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--- xorg-server-1.12.2/hw/xfree86/os-support/linux/lnx_init.c	2014-09-04 22:53:13.450000054 +0530&lt;br /&gt;
+++ xorg-server-1.12.2.org/hw/xfree86/os-support/linux/lnx_init.c	2012-05-17 22:39:03.000000000 +0530&lt;br /&gt;
@@ -48,18 +48,15 @@&lt;br /&gt;
 static void&lt;br /&gt;
 drain_console(int fd, void *closure)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     errno = 0;&lt;br /&gt;
     if (tcflush(fd, TCIOFLUSH) == -1 &amp;amp;&amp;amp; errno == EIO) {&lt;br /&gt;
         xf86SetConsoleHandler(NULL, NULL);&lt;br /&gt;
     }&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 static void&lt;br /&gt;
 switch_to(int vt, const char *from)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     int ret;&lt;br /&gt;
 &lt;br /&gt;
     SYSCALL(ret = ioctl(xf86Info.consoleFd, VT_ACTIVATE, vt));&lt;br /&gt;
@@ -69,13 +66,11 @@&lt;br /&gt;
     SYSCALL(ret = ioctl(xf86Info.consoleFd, VT_WAITACTIVE, vt));&lt;br /&gt;
     if (ret &amp;lt; 0)&lt;br /&gt;
         FatalError(&amp;quot;%s: VT_WAITACTIVE failed: %s\n&amp;quot;, from, strerror(errno));&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void&lt;br /&gt;
 xf86OpenConsole(void)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     int i, fd = -1, ret;&lt;br /&gt;
     struct vt_mode VT;&lt;br /&gt;
     struct vt_stat vts;&lt;br /&gt;
@@ -254,13 +249,11 @@&lt;br /&gt;
             switch_to(xf86Info.vtno, &amp;quot;xf86OpenConsole&amp;quot;);&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void&lt;br /&gt;
 xf86CloseConsole(void)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     struct vt_mode VT;&lt;br /&gt;
     int ret;&lt;br /&gt;
 &lt;br /&gt;
@@ -307,7 +300,6 @@&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
     close(xf86Info.consoleFd);  /* make the vt-manager happy */&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Compiling xorg-server-1.12.2 ====&lt;br /&gt;
	cd xorg-server-1.12.2&lt;br /&gt;
	export PKG_CONFIG_PATH=/opt/local/sw/share/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
	export PKG_CONFIG_PATH=/opt/local/sw/lib/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
	export LD_LIBRARY_PATH=/opt/local/sw/lib:$LD_LIBRARY_PATH&lt;br /&gt;
	export PATH=/opt/local/sw/bin:$PATH&lt;br /&gt;
	./configure --prefix=/opt/local/sw --enable-kdrive --enable-kdrive-evdev --with-xkb-path=/opt/local/sw/share/X11/xkb --with-xkb-output=/var/lib/xkb --with-xkb-bin-directory=/opt/local/sw/bin --with-default-xkb-rules=xorg --with-default-xkb-model=pc104 --with-default-xkb-layout=us  --disable-xnest --disable-dmx --disable-xquartz --disable-xwin --disable-xephyr --disable-config-udev --enable-tslib --disable-docs  --disable-devel-docs LDFLAGS=-L/opt/local/sw/lib CFLAGS=-I/opt/local/sw/include&lt;br /&gt;
make -j 3&lt;br /&gt;
&lt;br /&gt;
If all required packages are not on the system, compilation will fail. Download each of the requiered packags , untar, configure and install.&lt;br /&gt;
&lt;br /&gt;
	./configure --prefix=/opt/local/sw&lt;br /&gt;
	make -j 3 install&lt;br /&gt;
&lt;br /&gt;
Once xorg-server-1.12.2 compilation is succesfull, &lt;br /&gt;
	make install&lt;br /&gt;
	&lt;br /&gt;
=== Compiling additional drivers required ===&lt;br /&gt;
&lt;br /&gt;
==== fbdev ====&lt;br /&gt;
&lt;br /&gt;
xf86-video-fbdev-0.4.2&lt;br /&gt;
export PKG_CONFIG_PATH=/opt/local/sw/lib/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
./configure --prefix=/opt/local/sw&lt;br /&gt;
&lt;br /&gt;
src/fbdev.c xf86-video-fbdev-0.4.2/src/fbdev.c&lt;br /&gt;
// #include &amp;quot;mibstore.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
make -j 3&lt;br /&gt;
make install&lt;br /&gt;
&lt;br /&gt;
==== evdev ====&lt;br /&gt;
&lt;br /&gt;
    xf86-input-evdev-2.7.0&lt;br /&gt;
    ./configure --prefix=/opt/local/sw&lt;br /&gt;
&lt;br /&gt;
    src/Makefile:&lt;br /&gt;
    evdev_drv_la_LIBADD = $(MTDEV_LIBS) $(UDEV_LIBS)&lt;br /&gt;
    ( if not done, causes evdev_drv.so: undefined symbol: udev_new when Xorg is ran)&lt;br /&gt;
&lt;br /&gt;
    make -j 3 &lt;br /&gt;
    make install&lt;br /&gt;
&lt;br /&gt;
Once installed make an xorg.conf [ see xorg.conf section ] in /etc/X11/&lt;br /&gt;
and run startx as described below.&lt;br /&gt;
&lt;br /&gt;
==== xorg.conf ====&lt;br /&gt;
&lt;br /&gt;
Copy this file to /etc/X11&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Section &amp;quot;ServerLayout&amp;quot;&lt;br /&gt;
Identifier	&amp;quot;myLaout&amp;quot;&lt;br /&gt;
Screen		&amp;quot;myScreen&amp;quot;&lt;br /&gt;
# InputDevice     &amp;quot;mymouse&amp;quot;&lt;br /&gt;
InputDevice	&amp;quot;mytouchscreen&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;Screen&amp;quot;&lt;br /&gt;
Identifier	&amp;quot;myScreen&amp;quot;&lt;br /&gt;
Device		&amp;quot;myfbdev&amp;quot;&lt;br /&gt;
DefaultDepth 	24&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;Device&amp;quot;&lt;br /&gt;
Identifier	&amp;quot;myFbdev&amp;quot;&lt;br /&gt;
Driver		&amp;quot;fbdev&amp;quot;&lt;br /&gt;
Option		&amp;quot;fbdev&amp;quot; &amp;quot;/dev/graphics/fb0&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;InputDevice&amp;quot;&lt;br /&gt;
 Identifier	&amp;quot;mytouchscreen&amp;quot;&lt;br /&gt;
 Driver		&amp;quot;evdev&amp;quot;&lt;br /&gt;
 # Driver 	&amp;quot;synaptics&amp;quot;&lt;br /&gt;
 Option		&amp;quot;Device&amp;quot; &amp;quot;/dev/input/event3&amp;quot;&lt;br /&gt;
 # Option	&amp;quot;Protocol&amp;quot; &amp;quot;Auto&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Running X ===&lt;br /&gt;
&lt;br /&gt;
make sure display is on,&lt;br /&gt;
From slackware chroot environment in adb shell [ see section ]:&lt;br /&gt;
&lt;br /&gt;
    /system/bin/stop&lt;br /&gt;
    startx -- /opt/local/sw/bin/Xorg -pointer mytouchscreen :0&lt;br /&gt;
  &lt;br /&gt;
    Try disown / nohup to keep X running when disconnected from PC.&lt;br /&gt;
&lt;br /&gt;
Once Finished,&lt;br /&gt;
&lt;br /&gt;
run: &lt;br /&gt;
&lt;br /&gt;
    /system/bin/start&lt;br /&gt;
&lt;br /&gt;
Or touch the &amp;quot;back to android&amp;quot; icon on wbar. to return to Android.&lt;br /&gt;
&lt;br /&gt;
=== Virtual Keyboard ===&lt;br /&gt;
&lt;br /&gt;
==== xvkbd ====&lt;br /&gt;
&lt;br /&gt;
Download [http://homepage3.nifty.com/tsato/xvkbd/ xvkbd] from [http://homepage3.nifty.com/tsato/xvkbd/xvkbd-3.5.tar.gz xvkbd-3.5.tar.gz], and install:&lt;br /&gt;
&lt;br /&gt;
    xmkf&lt;br /&gt;
    make &lt;br /&gt;
    make install&lt;br /&gt;
&lt;br /&gt;
Run: &lt;br /&gt;
&lt;br /&gt;
    xvkbd&lt;br /&gt;
&lt;br /&gt;
=== An application launcher ===&lt;br /&gt;
&lt;br /&gt;
==== wbar ====&lt;br /&gt;
&lt;br /&gt;
Download [https://github.com/warlockcc/wbar wbar] from [https://code.google.com/p/wbar/downloads/detail?name=wbar-2.3.4.tgz&amp;amp;can=2&amp;amp;q= wbar-2.3.4.tgz] at [https://code.google.com/p/wbar/downloads/list wbar downloads at code.google.com]&lt;br /&gt;
&lt;br /&gt;
==== .wbar ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
i: /opt/local/sw/share/pixmaps/wbar/dock.png&lt;br /&gt;
c: wbar --bpress --above-desk --pos bottom --isize 48 --idist 5 --nanim 4 --falfa 65&lt;br /&gt;
t: /10&lt;br /&gt;
&lt;br /&gt;
i: /opt/local/sw/share/pixmaps/wbar/wbar.png&lt;br /&gt;
c: wbar-config&lt;br /&gt;
t: Config&lt;br /&gt;
&lt;br /&gt;
i: /opt/local/sw/share/icons/wm-icons/32x32-gant/terminal.png&lt;br /&gt;
c: xterm&lt;br /&gt;
t: Xterm&lt;br /&gt;
&lt;br /&gt;
i: /opt/local/sw/share/icons/wm-icons/32x32-gant/keyboard.png&lt;br /&gt;
c: xvkbd -compact -no-repeat -geometry 800x200&lt;br /&gt;
t: Xvkbd&lt;br /&gt;
&lt;br /&gt;
i: /opt/local/sw/share/icons/wm-icons/32x32-gant/calculator.png&lt;br /&gt;
c: xcalc&lt;br /&gt;
t: XCalc&lt;br /&gt;
&lt;br /&gt;
i: /opt/local/sw/share/icons/wm-icons/32x32-gant/restart.png&lt;br /&gt;
c: LD_LIBRARY_PATH= /system/bin/sh /android.tmp/exitfromslackware.sh &lt;br /&gt;
t: Backto Android&lt;br /&gt;
&lt;br /&gt;
i: /opt/local/sw/share/icons/wm-icons/32x32-gant/window-close.png&lt;br /&gt;
c: sleep 1 &amp;amp;&amp;amp; xkill&lt;br /&gt;
t: XKill&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Android app to launch X Windows directly from Android ==&lt;br /&gt;
&lt;br /&gt;
=== Create StartX projec ===&lt;br /&gt;
&lt;br /&gt;
Check [https://www.github.com/gv3/StartX StartX] project at github&lt;br /&gt;
&lt;br /&gt;
Create a project:&lt;br /&gt;
    android  create project -n StartX -k com.startx.android -a StartXActivity -t 1 -p .&lt;br /&gt;
&lt;br /&gt;
Copy StartXActivity.java to  src/com/startx/android&lt;br /&gt;
&lt;br /&gt;
If required,&lt;br /&gt;
&lt;br /&gt;
   keytool -genkey -v -keystore gv.keystore \&lt;br /&gt;
     -alias gv_ks -keyalg RSA -keysize 2048 -validity 10000&lt;br /&gt;
&lt;br /&gt;
Add to project properties:&lt;br /&gt;
     key.store=./gv.keystore&lt;br /&gt;
     key.alias=gv_ks&lt;br /&gt;
&lt;br /&gt;
Build and install:&lt;br /&gt;
     ant release install&lt;br /&gt;
&lt;br /&gt;
==== StartXActivity.java ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// http://stackoverflow.com/questions/20932102/execute-shell-command-from-android&lt;br /&gt;
package com.startx.android;&lt;br /&gt;
&lt;br /&gt;
import java.lang.*;&lt;br /&gt;
import java.io.* ;&lt;br /&gt;
&lt;br /&gt;
import android.app.Activity;&lt;br /&gt;
import android.os.Bundle;&lt;br /&gt;
import android.widget.TextView;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
public class StartXActivity extends Activity {&lt;br /&gt;
    /** Called when the activity is first created. */&lt;br /&gt;
    @Override&lt;br /&gt;
    public void onCreate(Bundle savedInstanceState) {&lt;br /&gt;
        super.onCreate(savedInstanceState);&lt;br /&gt;
        &lt;br /&gt;
	Process p=null;&lt;br /&gt;
                try {&lt;br /&gt;
        	    TextView text = new TextView(this);&lt;br /&gt;
        	    text.setText(&amp;quot;Starting X Windows...\n&amp;quot;);&lt;br /&gt;
        	    setContentView(text);&lt;br /&gt;
		    Process su = Runtime.getRuntime().exec(&amp;quot;su&amp;quot;);&lt;br /&gt;
		    DataOutputStream os = new DataOutputStream(su.getOutputStream());              &lt;br /&gt;
		    os.writeBytes(&amp;quot;sh /data/local/tmp/chroot2slackware.sh\n&amp;quot;);&lt;br /&gt;
		    text.append(&amp;quot;done\n&amp;quot;);&lt;br /&gt;
		    os.flush();		    &lt;br /&gt;
		    os.writeBytes(&amp;quot;exit\n&amp;quot;);  &lt;br /&gt;
		    text.append(&amp;quot;exit\n&amp;quot;);&lt;br /&gt;
		    os.flush();		    &lt;br /&gt;
		    try &lt;br /&gt;
 		    {&lt;br /&gt;
		      su.waitFor();&lt;br /&gt;
		    } catch(Exception e2) {&lt;br /&gt;
			e2.printStackTrace();&lt;br /&gt;
		    }&lt;br /&gt;
                } catch (IOException e) {&lt;br /&gt;
                    e.printStackTrace();&lt;br /&gt;
                } finally {&lt;br /&gt;
                    if(p!=null) p.destroy();&lt;br /&gt;
                }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== chroot2slackware.sh ====&lt;br /&gt;
&lt;br /&gt;
Copy this file to /data/local/tmp/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#!/system/bin/sh&lt;br /&gt;
export PATH=/data/local/tmp/bin:$PATH&lt;br /&gt;
test -d /data/local/tmp/sdcard || mkdir /data/local/tmp/sdcard&lt;br /&gt;
mountpoint /data/local/tmp/sdcard || mount -t ext4 /dev/block/mmcblk1p1 /data/local/tmp/sdcard&lt;br /&gt;
test -d /data/local/tmp/slackware || mkdir /data/local/tmp/slackware&lt;br /&gt;
cd /data/local/tmp/slackware&lt;br /&gt;
&lt;br /&gt;
for d in sys proc dev system usr bin sbin \&lt;br /&gt;
  etc  tmp boot home root lib \&lt;br /&gt;
  media mnt opt  run sbin srv var android.tmp ;&lt;br /&gt;
do&lt;br /&gt;
	test -d $d || mkdir $d&lt;br /&gt;
	case $d in&lt;br /&gt;
		proc)&lt;br /&gt;
			mountpoint proc || mount -t proc none proc/&lt;br /&gt;
		;;&lt;br /&gt;
		sys)&lt;br /&gt;
			mountpoint sys  || mount -t sysfs sys sys/&lt;br /&gt;
		;;&lt;br /&gt;
		dev)&lt;br /&gt;
			mountpoint dev  || mount -o bind /dev dev/&lt;br /&gt;
		;;&lt;br /&gt;
		system)&lt;br /&gt;
			mountpoint system || mount -o bind /system system&lt;br /&gt;
		;;&lt;br /&gt;
		android.tmp)	&lt;br /&gt;
			mountpoint android.tmp || mount -o bind /data/local/tmp android.tmp&lt;br /&gt;
		;;&lt;br /&gt;
		*)&lt;br /&gt;
			mountpoint $d || mount -o bind /data/local/tmp/sdcard/$d $d&lt;br /&gt;
		;;&lt;br /&gt;
	esac&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
export PATH=/usr/bin:/bin:/usr/X11R6/bin:$PATH&lt;br /&gt;
# chroot . /bin/su -&lt;br /&gt;
# if non interactive&lt;br /&gt;
# test -z $PS1 || test -x /data/local/tmp/sdcard/init &amp;amp;&amp;amp; chroot . su - -c /init&lt;br /&gt;
# if interactive&lt;br /&gt;
# test -z $PS1 &amp;amp;&amp;amp; chroot . su -&lt;br /&gt;
chroot . /bin/bash -x &amp;lt;&amp;lt;'EOF'&lt;br /&gt;
	su -&lt;br /&gt;
	LD_LIBRARY_PATH= /system/bin/setprop ctl.stop surfaceflinger&lt;br /&gt;
	export PATH=/opt/local/sw/bin:/usr/bin:/bin:$PATH&lt;br /&gt;
	export LD_LIBRARY_PATH=/opt/local/sw/lib:/usr/lib:$LD_LIBRARY_PATH&lt;br /&gt;
	killall -9 Xorg&lt;br /&gt;
	sleep 1&lt;br /&gt;
	# /usr/bin/startx -- /opt/local/sw/bin/Xorg :0 &lt;br /&gt;
	/usr/bin/xinit -- /opt/local/sw/bin/Xorg :0 &lt;br /&gt;
	wait&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== exitfromslackware.sh ====&lt;br /&gt;
&lt;br /&gt;
This file is called when &amp;quot;Back to Android&amp;quot; wbar button is touched. It doesn't &lt;br /&gt;
unmount partitions as expected, though&lt;br /&gt;
&lt;br /&gt;
Copy this file to /data/local/tmp/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#/system/bin/sh&lt;br /&gt;
export PATH=/data/local/tmp/bin:$PATH&lt;br /&gt;
&lt;br /&gt;
killall -9 fluxbox&lt;br /&gt;
killall -9 Xorg&lt;br /&gt;
killall -9 wbar&lt;br /&gt;
&lt;br /&gt;
cd /data/local/tmp/slackware&lt;br /&gt;
&lt;br /&gt;
for d in sys proc dev system usr bin sbin etc \&lt;br /&gt;
	tmp boot home root init lib media mnt opt \&lt;br /&gt;
	run sbin srv var android.tmp;&lt;br /&gt;
do&lt;br /&gt;
	echo &amp;quot;umounting $d&amp;quot;&lt;br /&gt;
	mountpoint $d &amp;amp;&amp;amp; umount $d&lt;br /&gt;
done&lt;br /&gt;
mountpoint /data/local/tmp/sdcard &amp;amp;&amp;amp; umount /data/local/tmp/sdcard&lt;br /&gt;
# setprop ctl.start is not working.&lt;br /&gt;
# LD_LIBRARY_PATH= /system/bin/setprop ctl.start surfaceflinger&lt;br /&gt;
LD_LIBRARY_PATH= /system/bin/stop&lt;br /&gt;
LD_LIBRARY_PATH= /system/bin/start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== Running some tests ==&lt;br /&gt;
&lt;br /&gt;
=== Testing the framebuffer ===		&lt;br /&gt;
&lt;br /&gt;
For these tests, I stopped android &amp;quot;SurfaceFlinger&amp;quot; and freed up /dev/graphics/fb0. by running &amp;quot;stop&amp;quot;&lt;br /&gt;
command. Before running stop, make sure that the display is on ( not blank ). For these tests, I had&lt;br /&gt;
two terminals up on the host PC with one of them running just adb shell with su, and other running&lt;br /&gt;
chrooted slackware shell. SurfaceFlinger was stopped from su shell, and tests from Slackware shell.&lt;br /&gt;
&lt;br /&gt;
Please not Slackware shell is also running as user root.&lt;br /&gt;
&lt;br /&gt;
==== Stopping android - sort of ====&lt;br /&gt;
&lt;br /&gt;
Here is how to stop the SurfaceFlinger and get framebuffer free:&lt;br /&gt;
&lt;br /&gt;
    adb shell&lt;br /&gt;
    su&lt;br /&gt;
    stop&lt;br /&gt;
&lt;br /&gt;
Now the display goes blank, with backlight on.&lt;br /&gt;
&lt;br /&gt;
Get one of these tests.&lt;br /&gt;
[https://gist.githubusercontent.com/rafalrusin/1482697/raw/32c6c0d79b870ffb618aa7b7c664736ca5e150fe/fbtest.c  fbtest] or &lt;br /&gt;
[http://stackoverflow.com/questions/4996777/paint-pixels-to-screen-via-linux-framebuffer Paint-pixels-to-screen-  via-linux-framebuffer] or &lt;br /&gt;
[http://cep.xray.aps.anl.gov/software/qt4-x11-4.2.2/qtopiacore-testingframebuffer.html qtopiacore-testingframebuffer] All these tests worked on the Tablet. Transfer the tests to tablet using adb push&lt;br /&gt;
command.&lt;br /&gt;
&lt;br /&gt;
from Slackware shell, running under adb shell:&lt;br /&gt;
&lt;br /&gt;
    gcc fbtest.c&lt;br /&gt;
    ./a.out&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
once done, go back to android su shell from adb, and:&lt;br /&gt;
&lt;br /&gt;
==== Getting back to android ====&lt;br /&gt;
  &lt;br /&gt;
    start&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
After few seconds android display will be back on. &lt;br /&gt;
&lt;br /&gt;
=== Running evtest ===&lt;br /&gt;
&lt;br /&gt;
Download [http://cgit.freedesktop.org/~whot/evtest/tree/evtest.c evtest.c].&lt;br /&gt;
&lt;br /&gt;
   gcc -o gcc -o evtest evtest.c&lt;br /&gt;
   ./evtest&lt;br /&gt;
   see evtest.log for sample outpu&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== evtest.log ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
No device specified, trying to scan all of /dev/input/event*&lt;br /&gt;
Available devices:&lt;br /&gt;
/dev/input/event0:	mtk-kpd&lt;br /&gt;
/dev/input/event1:	ACCDET&lt;br /&gt;
/dev/input/event2:	hwmdata&lt;br /&gt;
/dev/input/event3:	mtk-tpd&lt;br /&gt;
Select the device event number [0-3]: Input driver version is 1.0.1&lt;br /&gt;
Input device ID: bus 0x0 vendor 0x0 product 0x0 version 0x0&lt;br /&gt;
Input device name: &amp;quot;mtk-tpd&amp;quot;&lt;br /&gt;
Supported events:&lt;br /&gt;
  Event type 0 (EV_SYN)&lt;br /&gt;
  Event type 1 (EV_KEY)&lt;br /&gt;
    Event code 330 (BTN_TOUCH)&lt;br /&gt;
  Event type 3 (EV_ABS)&lt;br /&gt;
    Event code 0 (ABS_X)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      800&lt;br /&gt;
      Resolution     800&lt;br /&gt;
    Event code 1 (ABS_Y)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      480&lt;br /&gt;
      Resolution     480&lt;br /&gt;
    Event code 24 (ABS_PRESSURE)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      255&lt;br /&gt;
    Event code 48 (ABS_MT_TOUCH_MAJOR)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      100&lt;br /&gt;
    Event code 49 (ABS_MT_TOUCH_MINOR)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      100&lt;br /&gt;
    Event code 53 (ABS_MT_POSITION_X)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      800&lt;br /&gt;
    Event code 54 (ABS_MT_POSITION_Y)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      480&lt;br /&gt;
    Event code 57 (ABS_MT_TRACKING_ID)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max        0&lt;br /&gt;
Properties:&lt;br /&gt;
  Property type 1 (INPUT_PROP_DIRECT)&lt;br /&gt;
Testing ... (interrupt to exit)&lt;br /&gt;
Event: time 1409845467.116675, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845467.116682, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.116687, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.116691, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.116695, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.116699, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.116703, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1409845467.133145, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.133151, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.133155, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.133160, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.133164, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.133167, -------------- SYN_REPORT ------------&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
Event: time 1409845469.216857, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.216863, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 207&lt;br /&gt;
Event: time 1409845469.216867, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 376&lt;br /&gt;
Event: time 1409845469.216871, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.216875, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.216878, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1409845469.230419, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845469.230423, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.230426, -------------- SYN_REPORT ------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Running xinput ===&lt;br /&gt;
&lt;br /&gt;
	xinput --list&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
â¡ Virtual core pointer                         id=2    [master pointer  (3)]&lt;br /&gt;
â   â³ Virtual core XTEST pointer               id=4    [slave  pointer  (2)]&lt;br /&gt;
â   â³ mytouchscreen                            id=6    [slave  pointer  (2)]&lt;br /&gt;
â£ Virtual core keyboard                        id=3    [master keyboard (2)]&lt;br /&gt;
    â³ Virtual core XTEST keyboard              id=5    [slave  keyboard (3)]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== xinput log ====&lt;br /&gt;
&lt;br /&gt;
	xinput test 6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
motion a[0]=53 a[1]=58 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=53 a[1]=58 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=53 a[1]=58 &lt;br /&gt;
motion a[0]=513 a[1]=91 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=513 a[1]=91 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=513 a[1]=91 &lt;br /&gt;
motion a[0]=659 a[1]=436 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=659 a[1]=436 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=659 a[1]=436 &lt;br /&gt;
motion a[0]=624 a[1]=152 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=624 a[1]=152 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
motion a[0]=577 a[1]=174 &lt;br /&gt;
motion a[0]=501 a[1]=203 &lt;br /&gt;
motion a[0]=457 a[1]=219 &lt;br /&gt;
motion a[0]=411 a[1]=232 &lt;br /&gt;
motion a[0]=371 a[1]=240 &lt;br /&gt;
motion a[0]=341 a[1]=245 &lt;br /&gt;
button release 1 a[0]=341 a[1]=245 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</description>
			<pubDate>Sun, 07 Sep 2014 05:18:19 GMT</pubDate>
			<dc:creator>Gv</dc:creator>
			<comments>https://www.slackwiki.com/Talk:SlackwareOnMt6582Tablet</comments>
		</item>
		<item>
			<title>SlackwareOnMt6582Tablet</title>
			<link>https://www.slackwiki.com/index.php?title=SlackwareOnMt6582Tablet&amp;diff=936</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=SlackwareOnMt6582Tablet&amp;diff=936</guid>
			<description>&lt;p&gt;Gv: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Specifications of the Tablet PC which was used here ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Processor : Arm Cortex A7, 1.3 GHz dual core.&lt;br /&gt;
             : ARMv7 Processor rev 3 (v7l),&lt;br /&gt;
   Hardware  : MT8312&lt;br /&gt;
   SOC       : mt6582.&lt;br /&gt;
   Memory    : 512MB RAM&lt;br /&gt;
   Storage   : 4GB Built in storage.&lt;br /&gt;
   Micro SD  : Slot for upto 32GB&lt;br /&gt;
   Display   : 7&amp;quot; WVGA 800x480&lt;br /&gt;
   OS        : Android 4.2 Jelly Bean&lt;br /&gt;
   GPU       : Mali?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://s7.postimg.org/fww1ibfdn/image.png Screenshot] of X windows with fluxbox and wbar. And [http://s15.postimg.org/izdxddkqj/image.png another one].&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== Rooting the Tablet PC ==&lt;br /&gt;
&lt;br /&gt;
I used [http://www.techverse.net/fastest-root-android-phone-computer/ Framaroot-1.9.3.apk] to root the device. &lt;br /&gt;
&lt;br /&gt;
== Installing Linux - Slackware 14.1, sort of. ==&lt;br /&gt;
&lt;br /&gt;
With the problem of not having kernel source for the SOC, and no no bootloader unlock possible yet, next best option was to use a chroot environment.&lt;br /&gt;
&lt;br /&gt;
So far, command line mode works fine. Here is the description of how Slackware was installed on to external micro SD Card. Was able to do some basic tests on the frame buffer display. Since there is no VTs available was not able to test Xorg, though could get Mali module compiled and loaded. More details below.&lt;br /&gt;
&lt;br /&gt;
=== Preparing SD Card on host computer ===&lt;br /&gt;
&lt;br /&gt;
Use fdisk to create one or two partitions, one for ext4 and other ( optional ) swap partition. Once these are created, assuming the device on host is /dev/sdc,&lt;br /&gt;
&lt;br /&gt;
    mkfs.ext4 /dev/sdc1&lt;br /&gt;
    sync&lt;br /&gt;
    eject sdc&lt;br /&gt;
    eject -t sdc&lt;br /&gt;
    mkdir slack&lt;br /&gt;
    mount /dev/sdc1 slack&lt;br /&gt;
    cd slack&lt;br /&gt;
    mkdir sl&lt;br /&gt;
    cd sl&lt;br /&gt;
&lt;br /&gt;
If you don't have Slackware installation files, [http://arm.slackware.com/getslack/ Get Slackware Arm] first. &lt;br /&gt;
&lt;br /&gt;
    mkdir slackware14.1&lt;br /&gt;
    cd slackware14.1&lt;br /&gt;
    (cd /path..to../slackware14.1 ; tar cfz - *) | (tar xfz - )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://sourceforge.net/projects/slackwareonapc8750/files/initrd-kirkwood.cpio.gz/download initrd-kirkwood.cpio] contains the setup program, but since I couldn't boot with custom initrd, sdc1 /sl area is prepared to have the installation files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    cpio -id &amp;lt; initrd-kirkwood.cpio&lt;br /&gt;
    sync&lt;br /&gt;
    umount slack&lt;br /&gt;
&lt;br /&gt;
Now that the sd card is ready for installation:&lt;br /&gt;
&lt;br /&gt;
    eject sdc&lt;br /&gt;
	&lt;br /&gt;
and plug it into the device. Once that is done,&lt;br /&gt;
&lt;br /&gt;
=== Getting installer ready ===&lt;br /&gt;
&lt;br /&gt;
Now plug the card in tablet pc, boot, from host computer,&lt;br /&gt;
&lt;br /&gt;
==== starting a adb shell with su ====&lt;br /&gt;
&lt;br /&gt;
    adb shell&lt;br /&gt;
    su&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== chroot to installer ====&lt;br /&gt;
&lt;br /&gt;
    cd /data/local/tmp&lt;br /&gt;
    mkdir slackware&lt;br /&gt;
    mount /dev/block/mmcblk1p1 slackware&lt;br /&gt;
    cd slackware/sl&lt;br /&gt;
    export PATH=/data/local/tmp/bin:$PATH&lt;br /&gt;
    mountpoint proc || mount -t proc none proc/&lt;br /&gt;
    mountpoint sys || mount -t sysfs sys sys/&lt;br /&gt;
    mountpoint dev || mount -o bind  /dev dev/&lt;br /&gt;
    export PATH=/usr/bin:/bin:/usr/lib/setup:$PATH&lt;br /&gt;
    pushd /dev&lt;br /&gt;
    ln -s /dev/block/mmc1blk* .&lt;br /&gt;
    popd&lt;br /&gt;
    chroot . /bin/bash&lt;br /&gt;
    mount -t ext4 /dev/mmcblk1p1 mnt&lt;br /&gt;
&lt;br /&gt;
=== Running setup ===&lt;br /&gt;
&lt;br /&gt;
Install Slackware onto mmcblk1p1, from pre mounted directory, sdc1 : /slackware14.1/slackware&lt;br /&gt;
&lt;br /&gt;
    setup&lt;br /&gt;
        Proceed and select /dev/mmcblk1p1 as target, no format&lt;br /&gt;
        For source, select pre mounted directory option, /slackware14.1/slackware&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
=== Complete installation, and configuration ===&lt;br /&gt;
&lt;br /&gt;
Once the complete installation is done,&lt;br /&gt;
&lt;br /&gt;
    umount proc&lt;br /&gt;
    umount sys&lt;br /&gt;
    umount dev&lt;br /&gt;
    sync&lt;br /&gt;
    cd ../..&lt;br /&gt;
    umount slackware&lt;br /&gt;
&lt;br /&gt;
== Getting into installed Slackware: ==&lt;br /&gt;
&lt;br /&gt;
==== Running slackware su shell ====&lt;br /&gt;
&lt;br /&gt;
    adb shell&lt;br /&gt;
    su&lt;br /&gt;
    mount /dev/block/mmcblk1p1 slackware&lt;br /&gt;
    cd slackware&lt;br /&gt;
    mountpoint proc || mount -t proc none proc/&lt;br /&gt;
    mountpoint sys || mount -t sysfs sys sys/&lt;br /&gt;
    mountpoint dev || mount -o bind  /dev dev/&lt;br /&gt;
    test -d system || mkdir system&lt;br /&gt;
    mountpoint system || mount -o bind /system system&lt;br /&gt;
    export PATH=/usr/bin:/bin:/usr/lib/setup:$PATH&lt;br /&gt;
    chroot . /bin/su -	&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From here you can do &amp;quot;normal&amp;quot; Slackware activities, sort of. Main things that were lacking in my case were VTs (ttys). Compiling programs and running programs. I ran couple of frame buffer tests too. Fortunately, removing the VT requirement from Xorg was pretty simple. Here is how it was done.&lt;br /&gt;
		&lt;br /&gt;
&lt;br /&gt;
== Getting Xorg up and running - kind of ==&lt;br /&gt;
&lt;br /&gt;
=== Getting Xorg compiled ===&lt;br /&gt;
&lt;br /&gt;
Ecept for Pointer ( touchscreen ) failure, Xorg seems to be working fine. evtest, xinput tests are showing touchscreen activity, but the cursor seems to be not&lt;br /&gt;
moving. But if a window like xvkbd or xterm or so is launched, you can move the window using the touch screen!. And kvkbd input also works. &lt;br /&gt;
&lt;br /&gt;
Download [http://www.x.org/releases/X11R7.7/src/everything/xorg-server-1.12.2.tar.bz2  xorg-server-1.12.2], &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	tar xf xorg-server-1.12.2.tar.bz2&lt;br /&gt;
&lt;br /&gt;
Also make changes to xorg-server-1.12.2/hw/xfree86/os-support/linux/lnx\_init.c so that VT / console related code is disabled. See the patch section.&lt;br /&gt;
&lt;br /&gt;
	cd xorg-server-1.12.2&lt;br /&gt;
	export PKG_CONFIG_PATH=/opt/local/sw/share/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
	export PKG_CONFIG_PATH=/opt/local/sw/lib/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
	export LD_LIBRARY_PATH=/opt/local/sw/lib:$LD_LIBRARY_PATH&lt;br /&gt;
	export PATH=/opt/local/sw/bin:$PATH&lt;br /&gt;
	./configure --prefix=/opt/local/sw --enable-kdrive --enable-kdrive-evdev --with-xkb-path=/opt/local/sw/share/X11/xkb --with-xkb-output=/var/lib/xkb --with-xkb-bin-directory=/opt/local/sw/bin --with-default-xkb-rules=xorg --with-default-xkb-model=pc104 --with-default-xkb-layout=us  --disable-xnest --disable-dmx --disable-xquartz --disable-xwin --disable-xephyr --disable-config-udev --enable-tslib --disable-docs  --disable-devel-docs LDFLAGS=-L/opt/local/sw/lib CFLAGS=-I/opt/local/sw/include&lt;br /&gt;
make -j 3&lt;br /&gt;
&lt;br /&gt;
If all required packages are not on the system, compilation will fail. Download each of the requiered packags , untar, configure and install.&lt;br /&gt;
&lt;br /&gt;
	./configure --prefix=/opt/local/sw&lt;br /&gt;
	make -j 3 install&lt;br /&gt;
&lt;br /&gt;
Once xorg-server-1.12.2 compilation is succesfull, &lt;br /&gt;
	make install&lt;br /&gt;
	&lt;br /&gt;
=== Compiling additional drivers required ===&lt;br /&gt;
&lt;br /&gt;
==== fbdev ====&lt;br /&gt;
&lt;br /&gt;
xf86-video-fbdev-0.4.2&lt;br /&gt;
export PKG_CONFIG_PATH=/opt/local/sw/lib/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
./configure --prefix=/opt/local/sw&lt;br /&gt;
&lt;br /&gt;
src/fbdev.c xf86-video-fbdev-0.4.2/src/fbdev.c&lt;br /&gt;
// #include &amp;quot;mibstore.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
make -j 3&lt;br /&gt;
make install&lt;br /&gt;
&lt;br /&gt;
==== evdev ====&lt;br /&gt;
&lt;br /&gt;
    xf86-input-evdev-2.7.0&lt;br /&gt;
    ./configure --prefix=/opt/local/sw&lt;br /&gt;
&lt;br /&gt;
    src/Makefile:&lt;br /&gt;
    evdev_drv_la_LIBADD = $(MTDEV_LIBS) $(UDEV_LIBS)&lt;br /&gt;
    ( if not done, causes evdev_drv.so: undefined symbol: udev_new when Xorg is ran)&lt;br /&gt;
&lt;br /&gt;
    make -j 3 &lt;br /&gt;
    make install&lt;br /&gt;
&lt;br /&gt;
Once installed make an xorg.conf [ see xorg.conf section ] in /etc/X11/&lt;br /&gt;
and run startx as described below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Running X ===&lt;br /&gt;
&lt;br /&gt;
make sure display is on,&lt;br /&gt;
From slackware chroot environment in adb shell [ see section ]:&lt;br /&gt;
&lt;br /&gt;
    /system/bin/stop&lt;br /&gt;
    startx -- /opt/local/sw/bin/Xorg -pointer mytouchscreen :0&lt;br /&gt;
  &lt;br /&gt;
    Try disown / nohup to keep X running when disconnected from PC.&lt;br /&gt;
&lt;br /&gt;
Once Finished,&lt;br /&gt;
&lt;br /&gt;
run: &lt;br /&gt;
&lt;br /&gt;
    /system/bin/start&lt;br /&gt;
&lt;br /&gt;
Or touch the &amp;quot;back to android&amp;quot; icon on wbar. to return to Android.&lt;br /&gt;
&lt;br /&gt;
=== Virtual Keyboard ===&lt;br /&gt;
&lt;br /&gt;
==== xvkbd ====&lt;br /&gt;
&lt;br /&gt;
Download [http://homepage3.nifty.com/tsato/xvkbd/ xvkbd] from [http://homepage3.nifty.com/tsato/xvkbd/xvkbd-3.5.tar.gz xvkbd-3.5.tar.gz], and install:&lt;br /&gt;
&lt;br /&gt;
    xmkf&lt;br /&gt;
    make &lt;br /&gt;
    make install&lt;br /&gt;
&lt;br /&gt;
Run: &lt;br /&gt;
&lt;br /&gt;
    xvkbd&lt;br /&gt;
&lt;br /&gt;
=== An application launcher ===&lt;br /&gt;
&lt;br /&gt;
==== wbar ====&lt;br /&gt;
&lt;br /&gt;
Download [https://github.com/warlockcc/wbar wbar] from [https://code.google.com/p/wbar/downloads/detail?name=wbar-2.3.4.tgz&amp;amp;can=2&amp;amp;q= wbar-2.3.4.tgz] at [https://code.google.com/p/wbar/downloads/list wbar downloads at code.google.com]&lt;br /&gt;
&lt;br /&gt;
==== .wbar ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
i: /opt/local/sw/share/pixmaps/wbar/dock.png&lt;br /&gt;
c: wbar --bpress --above-desk --pos bottom --isize 48 --idist 5 --nanim 4 --falfa 65&lt;br /&gt;
t: /10&lt;br /&gt;
&lt;br /&gt;
i: /opt/local/sw/share/pixmaps/wbar/wbar.png&lt;br /&gt;
c: wbar-config&lt;br /&gt;
t: Config&lt;br /&gt;
&lt;br /&gt;
i: /opt/local/sw/share/icons/wm-icons/32x32-gant/terminal.png&lt;br /&gt;
c: xterm&lt;br /&gt;
t: Xterm&lt;br /&gt;
&lt;br /&gt;
i: /opt/local/sw/share/icons/wm-icons/32x32-gant/keyboard.png&lt;br /&gt;
c: xvkbd -compact -no-repeat -geometry 800x200&lt;br /&gt;
t: Xvkbd&lt;br /&gt;
&lt;br /&gt;
i: /opt/local/sw/share/icons/wm-icons/32x32-gant/calculator.png&lt;br /&gt;
c: xcalc&lt;br /&gt;
t: XCalc&lt;br /&gt;
&lt;br /&gt;
i: /opt/local/sw/share/icons/wm-icons/32x32-gant/restart.png&lt;br /&gt;
c: LD_LIBRARY_PATH= /system/bin/sh /android.tmp/exitfromslackware.sh &lt;br /&gt;
t: Backto Android&lt;br /&gt;
&lt;br /&gt;
i: /opt/local/sw/share/icons/wm-icons/32x32-gant/window-close.png&lt;br /&gt;
c: sleep 1 &amp;amp;&amp;amp; xkill&lt;br /&gt;
t: XKill&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Android app to launch X Windows directly from Android ==&lt;br /&gt;
&lt;br /&gt;
=== Create StartX projec ===&lt;br /&gt;
&lt;br /&gt;
Check [https://www.github.com/gv3/StartX StartX] project at github&lt;br /&gt;
&lt;br /&gt;
Create a project:&lt;br /&gt;
    android  create project -n StartX -k com.startx.android -a StartXActivity -t 1 -p .&lt;br /&gt;
&lt;br /&gt;
Copy StartXActivity.java to  src/com/startx/android&lt;br /&gt;
&lt;br /&gt;
If required,&lt;br /&gt;
&lt;br /&gt;
   keytool -genkey -v -keystore gv.keystore \&lt;br /&gt;
     -alias gv_ks -keyalg RSA -keysize 2048 -validity 10000&lt;br /&gt;
&lt;br /&gt;
Add to project properties:&lt;br /&gt;
     key.store=./gv.keystore&lt;br /&gt;
     key.alias=gv_ks&lt;br /&gt;
&lt;br /&gt;
Build and install:&lt;br /&gt;
     ant release install&lt;br /&gt;
&lt;br /&gt;
==== StartXActivity.java ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// http://stackoverflow.com/questions/20932102/execute-shell-command-from-android&lt;br /&gt;
package com.startx.android;&lt;br /&gt;
&lt;br /&gt;
import java.lang.*;&lt;br /&gt;
import java.io.* ;&lt;br /&gt;
&lt;br /&gt;
import android.app.Activity;&lt;br /&gt;
import android.os.Bundle;&lt;br /&gt;
import android.widget.TextView;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
public class StartXActivity extends Activity {&lt;br /&gt;
    /** Called when the activity is first created. */&lt;br /&gt;
    @Override&lt;br /&gt;
    public void onCreate(Bundle savedInstanceState) {&lt;br /&gt;
        super.onCreate(savedInstanceState);&lt;br /&gt;
        &lt;br /&gt;
	Process p=null;&lt;br /&gt;
                try {&lt;br /&gt;
        	    TextView text = new TextView(this);&lt;br /&gt;
        	    text.setText(&amp;quot;Starting X Windows...\n&amp;quot;);&lt;br /&gt;
        	    setContentView(text);&lt;br /&gt;
		    Process su = Runtime.getRuntime().exec(&amp;quot;su&amp;quot;);&lt;br /&gt;
		    DataOutputStream os = new DataOutputStream(su.getOutputStream());              &lt;br /&gt;
		    os.writeBytes(&amp;quot;sh /data/local/tmp/chroot2slackware.sh\n&amp;quot;);&lt;br /&gt;
		    text.append(&amp;quot;done\n&amp;quot;);&lt;br /&gt;
		    os.flush();		    &lt;br /&gt;
		    os.writeBytes(&amp;quot;exit\n&amp;quot;);  &lt;br /&gt;
		    text.append(&amp;quot;exit\n&amp;quot;);&lt;br /&gt;
		    os.flush();		    &lt;br /&gt;
		    try &lt;br /&gt;
 		    {&lt;br /&gt;
		      su.waitFor();&lt;br /&gt;
		    } catch(Exception e2) {&lt;br /&gt;
			e2.printStackTrace();&lt;br /&gt;
		    }&lt;br /&gt;
                } catch (IOException e) {&lt;br /&gt;
                    e.printStackTrace();&lt;br /&gt;
                } finally {&lt;br /&gt;
                    if(p!=null) p.destroy();&lt;br /&gt;
                }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== chroot2slackware.sh ====&lt;br /&gt;
&lt;br /&gt;
Copy this file to /data/local/tmp/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#!/system/bin/sh&lt;br /&gt;
export PATH=/data/local/tmp/bin:$PATH&lt;br /&gt;
test -d /data/local/tmp/sdcard || mkdir /data/local/tmp/sdcard&lt;br /&gt;
mountpoint /data/local/tmp/sdcard || mount -t ext4 /dev/block/mmcblk1p1 /data/local/tmp/sdcard&lt;br /&gt;
test -d /data/local/tmp/slackware || mkdir /data/local/tmp/slackware&lt;br /&gt;
cd /data/local/tmp/slackware&lt;br /&gt;
&lt;br /&gt;
for d in sys proc dev system usr bin sbin \&lt;br /&gt;
  etc  tmp boot home root lib \&lt;br /&gt;
  media mnt opt  run sbin srv var android.tmp ;&lt;br /&gt;
do&lt;br /&gt;
	test -d $d || mkdir $d&lt;br /&gt;
	case $d in&lt;br /&gt;
		proc)&lt;br /&gt;
			mountpoint proc || mount -t proc none proc/&lt;br /&gt;
		;;&lt;br /&gt;
		sys)&lt;br /&gt;
			mountpoint sys  || mount -t sysfs sys sys/&lt;br /&gt;
		;;&lt;br /&gt;
		dev)&lt;br /&gt;
			mountpoint dev  || mount -o bind /dev dev/&lt;br /&gt;
		;;&lt;br /&gt;
		system)&lt;br /&gt;
			mountpoint system || mount -o bind /system system&lt;br /&gt;
		;;&lt;br /&gt;
		android.tmp)	&lt;br /&gt;
			mountpoint android.tmp || mount -o bind /data/local/tmp android.tmp&lt;br /&gt;
		;;&lt;br /&gt;
		*)&lt;br /&gt;
			mountpoint $d || mount -o bind /data/local/tmp/sdcard/$d $d&lt;br /&gt;
		;;&lt;br /&gt;
	esac&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
export PATH=/usr/bin:/bin:/usr/X11R6/bin:$PATH&lt;br /&gt;
# chroot . /bin/su -&lt;br /&gt;
# if non interactive&lt;br /&gt;
# test -z $PS1 || test -x /data/local/tmp/sdcard/init &amp;amp;&amp;amp; chroot . su - -c /init&lt;br /&gt;
# if interactive&lt;br /&gt;
# test -z $PS1 &amp;amp;&amp;amp; chroot . su -&lt;br /&gt;
chroot . /bin/bash -x &amp;lt;&amp;lt;'EOF'&lt;br /&gt;
	su -&lt;br /&gt;
	LD_LIBRARY_PATH= /system/bin/setprop ctl.stop surfaceflinger&lt;br /&gt;
	export PATH=/opt/local/sw/bin:/usr/bin:/bin:$PATH&lt;br /&gt;
	export LD_LIBRARY_PATH=/opt/local/sw/lib:/usr/lib:$LD_LIBRARY_PATH&lt;br /&gt;
	killall -9 Xorg&lt;br /&gt;
	sleep 1&lt;br /&gt;
	# /usr/bin/startx -- /opt/local/sw/bin/Xorg :0 &lt;br /&gt;
	/usr/bin/xinit -- /opt/local/sw/bin/Xorg :0 &lt;br /&gt;
	wait&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== exitfromslackware.sh ====&lt;br /&gt;
&lt;br /&gt;
This file is called when &amp;quot;Back to Android&amp;quot; wbar button is touched. It doesn't &lt;br /&gt;
unmount partitions as expected, though&lt;br /&gt;
&lt;br /&gt;
Copy this file to /data/local/tmp/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#/system/bin/sh&lt;br /&gt;
export PATH=/data/local/tmp/bin:$PATH&lt;br /&gt;
&lt;br /&gt;
killall -9 fluxbox&lt;br /&gt;
killall -9 Xorg&lt;br /&gt;
killall -9 wbar&lt;br /&gt;
&lt;br /&gt;
cd /data/local/tmp/slackware&lt;br /&gt;
&lt;br /&gt;
for d in sys proc dev system usr bin sbin etc \&lt;br /&gt;
	tmp boot home root init lib media mnt opt \&lt;br /&gt;
	run sbin srv var android.tmp;&lt;br /&gt;
do&lt;br /&gt;
	echo &amp;quot;umounting $d&amp;quot;&lt;br /&gt;
	mountpoint $d &amp;amp;&amp;amp; umount $d&lt;br /&gt;
done&lt;br /&gt;
mountpoint /data/local/tmp/sdcard &amp;amp;&amp;amp; umount /data/local/tmp/sdcard&lt;br /&gt;
# setprop ctl.start is not working.&lt;br /&gt;
# LD_LIBRARY_PATH= /system/bin/setprop ctl.start surfaceflinger&lt;br /&gt;
LD_LIBRARY_PATH= /system/bin/stop&lt;br /&gt;
LD_LIBRARY_PATH= /system/bin/start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
== Files ==&lt;br /&gt;
=== xorg.conf ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Section &amp;quot;ServerLayout&amp;quot;&lt;br /&gt;
Identifier	&amp;quot;myLaout&amp;quot;&lt;br /&gt;
Screen		&amp;quot;myScreen&amp;quot;&lt;br /&gt;
# InputDevice     &amp;quot;mymouse&amp;quot;&lt;br /&gt;
InputDevice	&amp;quot;mytouchscreen&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;Screen&amp;quot;&lt;br /&gt;
Identifier	&amp;quot;myScreen&amp;quot;&lt;br /&gt;
Device		&amp;quot;myfbdev&amp;quot;&lt;br /&gt;
DefaultDepth 	24&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;Device&amp;quot;&lt;br /&gt;
Identifier	&amp;quot;myFbdev&amp;quot;&lt;br /&gt;
Driver		&amp;quot;fbdev&amp;quot;&lt;br /&gt;
Option		&amp;quot;fbdev&amp;quot; &amp;quot;/dev/graphics/fb0&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;InputDevice&amp;quot;&lt;br /&gt;
 Identifier	&amp;quot;mytouchscreen&amp;quot;&lt;br /&gt;
 Driver		&amp;quot;evdev&amp;quot;&lt;br /&gt;
 # Driver 	&amp;quot;synaptics&amp;quot;&lt;br /&gt;
 Option		&amp;quot;Device&amp;quot; &amp;quot;/dev/input/event3&amp;quot;&lt;br /&gt;
 # Option	&amp;quot;Protocol&amp;quot; &amp;quot;Auto&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== lnx_init.c patch ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--- xorg-server-1.12.2/hw/xfree86/os-support/linux/lnx_init.c	2014-09-04 22:53:13.450000054 +0530&lt;br /&gt;
+++ xorg-server-1.12.2.org/hw/xfree86/os-support/linux/lnx_init.c	2012-05-17 22:39:03.000000000 +0530&lt;br /&gt;
@@ -48,18 +48,15 @@&lt;br /&gt;
 static void&lt;br /&gt;
 drain_console(int fd, void *closure)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     errno = 0;&lt;br /&gt;
     if (tcflush(fd, TCIOFLUSH) == -1 &amp;amp;&amp;amp; errno == EIO) {&lt;br /&gt;
         xf86SetConsoleHandler(NULL, NULL);&lt;br /&gt;
     }&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 static void&lt;br /&gt;
 switch_to(int vt, const char *from)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     int ret;&lt;br /&gt;
 &lt;br /&gt;
     SYSCALL(ret = ioctl(xf86Info.consoleFd, VT_ACTIVATE, vt));&lt;br /&gt;
@@ -69,13 +66,11 @@&lt;br /&gt;
     SYSCALL(ret = ioctl(xf86Info.consoleFd, VT_WAITACTIVE, vt));&lt;br /&gt;
     if (ret &amp;lt; 0)&lt;br /&gt;
         FatalError(&amp;quot;%s: VT_WAITACTIVE failed: %s\n&amp;quot;, from, strerror(errno));&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void&lt;br /&gt;
 xf86OpenConsole(void)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     int i, fd = -1, ret;&lt;br /&gt;
     struct vt_mode VT;&lt;br /&gt;
     struct vt_stat vts;&lt;br /&gt;
@@ -254,13 +249,11 @@&lt;br /&gt;
             switch_to(xf86Info.vtno, &amp;quot;xf86OpenConsole&amp;quot;);&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void&lt;br /&gt;
 xf86CloseConsole(void)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     struct vt_mode VT;&lt;br /&gt;
     int ret;&lt;br /&gt;
 &lt;br /&gt;
@@ -307,7 +300,6 @@&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
     close(xf86Info.consoleFd);  /* make the vt-manager happy */&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Running some tests ==&lt;br /&gt;
&lt;br /&gt;
=== Testing the framebuffer ===		&lt;br /&gt;
&lt;br /&gt;
For these tests, I stopped android &amp;quot;SurfaceFlinger&amp;quot; and freed up /dev/graphics/fb0. by running &amp;quot;stop&amp;quot;&lt;br /&gt;
command. Before running stop, make sure that the display is on ( not blank ). For these tests, I had&lt;br /&gt;
two terminals up on the host PC with one of them running just adb shell with su, and other running&lt;br /&gt;
chrooted slackware shell. SurfaceFlinger was stopped from su shell, and tests from Slackware shell.&lt;br /&gt;
&lt;br /&gt;
Please not Slackware shell is also running as user root.&lt;br /&gt;
&lt;br /&gt;
==== Stopping android - sort of ====&lt;br /&gt;
&lt;br /&gt;
Here is how to stop the SurfaceFlinger and get framebuffer free:&lt;br /&gt;
&lt;br /&gt;
    adb shell&lt;br /&gt;
    su&lt;br /&gt;
    stop&lt;br /&gt;
&lt;br /&gt;
Now the display goes blank, with backlight on.&lt;br /&gt;
&lt;br /&gt;
Get one of these tests.&lt;br /&gt;
[https://gist.githubusercontent.com/rafalrusin/1482697/raw/32c6c0d79b870ffb618aa7b7c664736ca5e150fe/fbtest.c  fbtest] or &lt;br /&gt;
[http://stackoverflow.com/questions/4996777/paint-pixels-to-screen-via-linux-framebuffer Paint-pixels-to-screen-  via-linux-framebuffer] or &lt;br /&gt;
[http://cep.xray.aps.anl.gov/software/qt4-x11-4.2.2/qtopiacore-testingframebuffer.html qtopiacore-testingframebuffer] All these tests worked on the Tablet. Transfer the tests to tablet using adb push&lt;br /&gt;
command.&lt;br /&gt;
&lt;br /&gt;
from Slackware shell, running under adb shell:&lt;br /&gt;
&lt;br /&gt;
    gcc fbtest.c&lt;br /&gt;
    ./a.out&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
once done, go back to android su shell from adb, and:&lt;br /&gt;
&lt;br /&gt;
==== Getting back to android ====&lt;br /&gt;
  &lt;br /&gt;
    start&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
After few seconds android display will be back on. &lt;br /&gt;
&lt;br /&gt;
=== Running evtest ===&lt;br /&gt;
&lt;br /&gt;
Download [http://cgit.freedesktop.org/~whot/evtest/tree/evtest.c evtest.c].&lt;br /&gt;
&lt;br /&gt;
   gcc -o gcc -o evtest evtest.c&lt;br /&gt;
   ./evtest&lt;br /&gt;
   see evtest.log for sample outpu&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== evtest.log ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
No device specified, trying to scan all of /dev/input/event*&lt;br /&gt;
Available devices:&lt;br /&gt;
/dev/input/event0:	mtk-kpd&lt;br /&gt;
/dev/input/event1:	ACCDET&lt;br /&gt;
/dev/input/event2:	hwmdata&lt;br /&gt;
/dev/input/event3:	mtk-tpd&lt;br /&gt;
Select the device event number [0-3]: Input driver version is 1.0.1&lt;br /&gt;
Input device ID: bus 0x0 vendor 0x0 product 0x0 version 0x0&lt;br /&gt;
Input device name: &amp;quot;mtk-tpd&amp;quot;&lt;br /&gt;
Supported events:&lt;br /&gt;
  Event type 0 (EV_SYN)&lt;br /&gt;
  Event type 1 (EV_KEY)&lt;br /&gt;
    Event code 330 (BTN_TOUCH)&lt;br /&gt;
  Event type 3 (EV_ABS)&lt;br /&gt;
    Event code 0 (ABS_X)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      800&lt;br /&gt;
      Resolution     800&lt;br /&gt;
    Event code 1 (ABS_Y)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      480&lt;br /&gt;
      Resolution     480&lt;br /&gt;
    Event code 24 (ABS_PRESSURE)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      255&lt;br /&gt;
    Event code 48 (ABS_MT_TOUCH_MAJOR)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      100&lt;br /&gt;
    Event code 49 (ABS_MT_TOUCH_MINOR)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      100&lt;br /&gt;
    Event code 53 (ABS_MT_POSITION_X)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      800&lt;br /&gt;
    Event code 54 (ABS_MT_POSITION_Y)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      480&lt;br /&gt;
    Event code 57 (ABS_MT_TRACKING_ID)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max        0&lt;br /&gt;
Properties:&lt;br /&gt;
  Property type 1 (INPUT_PROP_DIRECT)&lt;br /&gt;
Testing ... (interrupt to exit)&lt;br /&gt;
Event: time 1409845467.116675, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845467.116682, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.116687, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.116691, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.116695, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.116699, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.116703, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1409845467.133145, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.133151, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.133155, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.133160, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.133164, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.133167, -------------- SYN_REPORT ------------&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
Event: time 1409845469.216857, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.216863, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 207&lt;br /&gt;
Event: time 1409845469.216867, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 376&lt;br /&gt;
Event: time 1409845469.216871, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.216875, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.216878, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1409845469.230419, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845469.230423, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.230426, -------------- SYN_REPORT ------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Running xinput ===&lt;br /&gt;
&lt;br /&gt;
	xinput --list&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
â¡ Virtual core pointer                         id=2    [master pointer  (3)]&lt;br /&gt;
â   â³ Virtual core XTEST pointer               id=4    [slave  pointer  (2)]&lt;br /&gt;
â   â³ mytouchscreen                            id=6    [slave  pointer  (2)]&lt;br /&gt;
â£ Virtual core keyboard                        id=3    [master keyboard (2)]&lt;br /&gt;
    â³ Virtual core XTEST keyboard              id=5    [slave  keyboard (3)]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== xinput log ====&lt;br /&gt;
&lt;br /&gt;
	xinput test 6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
motion a[0]=53 a[1]=58 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=53 a[1]=58 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=53 a[1]=58 &lt;br /&gt;
motion a[0]=513 a[1]=91 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=513 a[1]=91 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=513 a[1]=91 &lt;br /&gt;
motion a[0]=659 a[1]=436 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=659 a[1]=436 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=659 a[1]=436 &lt;br /&gt;
motion a[0]=624 a[1]=152 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=624 a[1]=152 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
motion a[0]=577 a[1]=174 &lt;br /&gt;
motion a[0]=501 a[1]=203 &lt;br /&gt;
motion a[0]=457 a[1]=219 &lt;br /&gt;
motion a[0]=411 a[1]=232 &lt;br /&gt;
motion a[0]=371 a[1]=240 &lt;br /&gt;
motion a[0]=341 a[1]=245 &lt;br /&gt;
button release 1 a[0]=341 a[1]=245 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</description>
			<pubDate>Sun, 07 Sep 2014 05:12:09 GMT</pubDate>
			<dc:creator>Gv</dc:creator>
			<comments>https://www.slackwiki.com/Talk:SlackwareOnMt6582Tablet</comments>
		</item>
		<item>
			<title>SlackwareOnMt6582Tablet</title>
			<link>https://www.slackwiki.com/index.php?title=SlackwareOnMt6582Tablet&amp;diff=935</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=SlackwareOnMt6582Tablet&amp;diff=935</guid>
			<description>&lt;p&gt;Gv: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Specifications of the Tablet PC which was used here ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Processor : Arm Cortex A7, 1.3 GHz dual core.&lt;br /&gt;
             : ARMv7 Processor rev 3 (v7l),&lt;br /&gt;
   Hardware  : MT8312&lt;br /&gt;
   SOC       : mt6582.&lt;br /&gt;
   Memory    : 512MB RAM&lt;br /&gt;
   Storage   : 4GB Built in storage.&lt;br /&gt;
   Micro SD  : Slot for upto 32GB&lt;br /&gt;
   Display   : 7&amp;quot; WVGA 800x480&lt;br /&gt;
   OS        : Android 4.2 Jelly Bean&lt;br /&gt;
   GPU       : Mali?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://s7.postimg.org/fww1ibfdn/image.png Screenshot] of X windows with fluxbox and wbar. And [http://s15.postimg.org/izdxddkqj/image.png another one].&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== Rooting the Tablet PC ==&lt;br /&gt;
&lt;br /&gt;
I used [http://www.techverse.net/fastest-root-android-phone-computer/ Framaroot-1.9.3.apk] to root the device. &lt;br /&gt;
&lt;br /&gt;
== Installing Linux - Slackware 14.1, sort of. ==&lt;br /&gt;
&lt;br /&gt;
With the problem of not having kernel source for the SOC, and no no bootloader unlock possible yet, next best option was to use a chroot environment.&lt;br /&gt;
&lt;br /&gt;
So far, command line mode works fine. Here is the description of how Slackware was installed on to external micro SD Card. Was able to do some basic tests on the frame buffer display. Since there is no VTs available was not able to test Xorg, though could get Mali module compiled and loaded. More details below.&lt;br /&gt;
&lt;br /&gt;
=== Preparing SD Card on host computer ===&lt;br /&gt;
&lt;br /&gt;
Use fdisk to create one or two partitions, one for ext4 and other ( optional ) swap partition. Once these are created, assuming the device on host is /dev/sdc,&lt;br /&gt;
&lt;br /&gt;
    mkfs.ext4 /dev/sdc1&lt;br /&gt;
    sync&lt;br /&gt;
    eject sdc&lt;br /&gt;
    eject -t sdc&lt;br /&gt;
    mkdir slack&lt;br /&gt;
    mount /dev/sdc1 slack&lt;br /&gt;
    cd slack&lt;br /&gt;
    mkdir sl&lt;br /&gt;
    cd sl&lt;br /&gt;
&lt;br /&gt;
If you don't have Slackware installation files, [http://arm.slackware.com/getslack/ Get Slackware Arm] first. &lt;br /&gt;
&lt;br /&gt;
    mkdir slackware14.1&lt;br /&gt;
    cd slackware14.1&lt;br /&gt;
    (cd /path..to../slackware14.1 ; tar cfz - *) | (tar xfz - )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://sourceforge.net/projects/slackwareonapc8750/files/initrd-kirkwood.cpio.gz/download initrd-kirkwood.cpio] contains the setup program, but since I couldn't boot with custom initrd, sdc1 /sl area is prepared to have the installation files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    cpio -id &amp;lt; initrd-kirkwood.cpio&lt;br /&gt;
    sync&lt;br /&gt;
    umount slack&lt;br /&gt;
&lt;br /&gt;
Now that the sd card is ready for installation:&lt;br /&gt;
&lt;br /&gt;
    eject sdc&lt;br /&gt;
	&lt;br /&gt;
and plug it into the device. Once that is done,&lt;br /&gt;
&lt;br /&gt;
=== Getting installer ready ===&lt;br /&gt;
&lt;br /&gt;
Now plug the card in tablet pc, boot, from host computer,&lt;br /&gt;
&lt;br /&gt;
==== starting a adb shell with su ====&lt;br /&gt;
&lt;br /&gt;
    adb shell&lt;br /&gt;
    su&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== chroot to installer ====&lt;br /&gt;
&lt;br /&gt;
    cd /data/local/tmp&lt;br /&gt;
    mkdir slackware&lt;br /&gt;
    mount /dev/block/mmcblk1p1 slackware&lt;br /&gt;
    cd slackware/sl&lt;br /&gt;
    export PATH=/data/local/tmp/bin:$PATH&lt;br /&gt;
    mountpoint proc || mount -t proc none proc/&lt;br /&gt;
    mountpoint sys || mount -t sysfs sys sys/&lt;br /&gt;
    mountpoint dev || mount -o bind  /dev dev/&lt;br /&gt;
    export PATH=/usr/bin:/bin:/usr/lib/setup:$PATH&lt;br /&gt;
    pushd /dev&lt;br /&gt;
    ln -s /dev/block/mmc1blk* .&lt;br /&gt;
    popd&lt;br /&gt;
    chroot . /bin/bash&lt;br /&gt;
    mount -t ext4 /dev/mmcblk1p1 mnt&lt;br /&gt;
&lt;br /&gt;
=== Running setup ===&lt;br /&gt;
&lt;br /&gt;
Install Slackware onto mmcblk1p1, from pre mounted directory, sdc1 : /slackware14.1/slackware&lt;br /&gt;
&lt;br /&gt;
    setup&lt;br /&gt;
        Proceed and select /dev/mmcblk1p1 as target, no format&lt;br /&gt;
        For source, select pre mounted directory option, /slackware14.1/slackware&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
=== Complete installation, and configuration ===&lt;br /&gt;
&lt;br /&gt;
Once the complete installation is done,&lt;br /&gt;
&lt;br /&gt;
    umount proc&lt;br /&gt;
    umount sys&lt;br /&gt;
    umount dev&lt;br /&gt;
    sync&lt;br /&gt;
    cd ../..&lt;br /&gt;
    umount slackware&lt;br /&gt;
&lt;br /&gt;
== Getting into installed Slackware: ==&lt;br /&gt;
&lt;br /&gt;
==== Running slackware su shell ====&lt;br /&gt;
&lt;br /&gt;
    adb shell&lt;br /&gt;
    su&lt;br /&gt;
    mount /dev/block/mmcblk1p1 slackware&lt;br /&gt;
    cd slackware&lt;br /&gt;
    mountpoint proc || mount -t proc none proc/&lt;br /&gt;
    mountpoint sys || mount -t sysfs sys sys/&lt;br /&gt;
    mountpoint dev || mount -o bind  /dev dev/&lt;br /&gt;
    test -d system || mkdir system&lt;br /&gt;
    mountpoint system || mount -o bind /system system&lt;br /&gt;
    export PATH=/usr/bin:/bin:/usr/lib/setup:$PATH&lt;br /&gt;
    chroot . /bin/su -	&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From here you can do &amp;quot;normal&amp;quot; Slackware activities, sort of. Main things that were lacking in my case were VTs (ttys). Compiling programs and running programs. I ran couple of frame buffer tests too. Fortunately, removing the VT requirement from Xorg was pretty simple. Here is how it was done.&lt;br /&gt;
		&lt;br /&gt;
&lt;br /&gt;
== Getting Xorg up and running - kind of ==&lt;br /&gt;
&lt;br /&gt;
=== Getting Xorg compiled ===&lt;br /&gt;
&lt;br /&gt;
Ecept for Pointer ( touchscreen ) failure, Xorg seems to be working fine. evtest, xinput tests are showing touchscreen activity, but the cursor seems to be not&lt;br /&gt;
moving. But if a window like xvkbd or xterm or so is launched, you can move the window using the touch screen!. And kvkbd input also works. &lt;br /&gt;
&lt;br /&gt;
Download [http://www.x.org/releases/X11R7.7/src/everything/xorg-server-1.12.2.tar.bz2  xorg-server-1.12.2], &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	tar xf xorg-server-1.12.2.tar.bz2&lt;br /&gt;
&lt;br /&gt;
Also make changes to xorg-server-1.12.2/hw/xfree86/os-support/linux/lnx\_init.c so that VT / console related code is disabled. See the patch section.&lt;br /&gt;
&lt;br /&gt;
	cd xorg-server-1.12.2&lt;br /&gt;
	export PKG_CONFIG_PATH=/opt/local/sw/share/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
	export PKG_CONFIG_PATH=/opt/local/sw/lib/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
	export LD_LIBRARY_PATH=/opt/local/sw/lib:$LD_LIBRARY_PATH&lt;br /&gt;
	export PATH=/opt/local/sw/bin:$PATH&lt;br /&gt;
	./configure --prefix=/opt/local/sw --enable-kdrive --enable-kdrive-evdev --with-xkb-path=/opt/local/sw/share/X11/xkb --with-xkb-output=/var/lib/xkb --with-xkb-bin-directory=/opt/local/sw/bin --with-default-xkb-rules=xorg --with-default-xkb-model=pc104 --with-default-xkb-layout=us  --disable-xnest --disable-dmx --disable-xquartz --disable-xwin --disable-xephyr --disable-config-udev --enable-tslib --disable-docs  --disable-devel-docs LDFLAGS=-L/opt/local/sw/lib CFLAGS=-I/opt/local/sw/include&lt;br /&gt;
make -j 3&lt;br /&gt;
&lt;br /&gt;
If all required packages are not on the system, compilation will fail. Download each of the requiered packags , untar, configure and install.&lt;br /&gt;
&lt;br /&gt;
	./configure --prefix=/opt/local/sw&lt;br /&gt;
	make -j 3 install&lt;br /&gt;
&lt;br /&gt;
Once xorg-server-1.12.2 compilation is succesfull, &lt;br /&gt;
	make install&lt;br /&gt;
	&lt;br /&gt;
=== Compiling additional drivers required ===&lt;br /&gt;
&lt;br /&gt;
==== fbdev ====&lt;br /&gt;
&lt;br /&gt;
xf86-video-fbdev-0.4.2&lt;br /&gt;
export PKG_CONFIG_PATH=/opt/local/sw/lib/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
./configure --prefix=/opt/local/sw&lt;br /&gt;
&lt;br /&gt;
src/fbdev.c xf86-video-fbdev-0.4.2/src/fbdev.c&lt;br /&gt;
// #include &amp;quot;mibstore.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
make -j 3&lt;br /&gt;
make install&lt;br /&gt;
&lt;br /&gt;
==== evdev ====&lt;br /&gt;
&lt;br /&gt;
    xf86-input-evdev-2.7.0&lt;br /&gt;
    ./configure --prefix=/opt/local/sw&lt;br /&gt;
&lt;br /&gt;
    src/Makefile:&lt;br /&gt;
    evdev_drv_la_LIBADD = $(MTDEV_LIBS) $(UDEV_LIBS)&lt;br /&gt;
    ( if not done, causes evdev_drv.so: undefined symbol: udev_new when Xorg is ran)&lt;br /&gt;
&lt;br /&gt;
    make -j 3 &lt;br /&gt;
    make install&lt;br /&gt;
&lt;br /&gt;
Once installed make an xorg.conf [ see xorg.conf section ] in /etc/X11/&lt;br /&gt;
and run startx as described below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Running X ===&lt;br /&gt;
&lt;br /&gt;
make sure display is on,&lt;br /&gt;
From slackware chroot environment in adb shell [ see section ]:&lt;br /&gt;
&lt;br /&gt;
    /system/bin/stop&lt;br /&gt;
    startx -- /opt/local/sw/bin/Xorg -pointer mytouchscreen :0&lt;br /&gt;
  &lt;br /&gt;
    Try disown / nohup to keep X running when disconnected from PC.&lt;br /&gt;
&lt;br /&gt;
Once Finished,&lt;br /&gt;
&lt;br /&gt;
run: &lt;br /&gt;
&lt;br /&gt;
    /system/bin/start&lt;br /&gt;
&lt;br /&gt;
Or touch the &amp;quot;back to android&amp;quot; icon on wbar. to return to Android.&lt;br /&gt;
&lt;br /&gt;
=== Virtual Keyboard ===&lt;br /&gt;
&lt;br /&gt;
==== xvkbd ====&lt;br /&gt;
&lt;br /&gt;
Download [http://homepage3.nifty.com/tsato/xvkbd/ xvkbd] from [http://homepage3.nifty.com/tsato/xvkbd/xvkbd-3.5.tar.gz xvkbd-3.5.tar.gz], and install:&lt;br /&gt;
&lt;br /&gt;
    xmkf&lt;br /&gt;
    make &lt;br /&gt;
    make install&lt;br /&gt;
&lt;br /&gt;
Run: &lt;br /&gt;
&lt;br /&gt;
    xvkbd&lt;br /&gt;
&lt;br /&gt;
=== An application launcher ===&lt;br /&gt;
&lt;br /&gt;
==== wbar ====&lt;br /&gt;
&lt;br /&gt;
Download [https://github.com/warlockcc/wbar wbar] from [https://code.google.com/p/wbar/downloads/detail?name=wbar-2.3.4.tgz&amp;amp;can=2&amp;amp;q= wbar-2.3.4.tgz] at [https://code.google.com/p/wbar/downloads/list wbar downloads at code.google.com]&lt;br /&gt;
&lt;br /&gt;
==== .wbar ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
i: /opt/local/sw/share/pixmaps/wbar/dock.png&lt;br /&gt;
c: wbar --bpress --above-desk --hbar --pos bottom --isize 48 --idist 5 --nanim 4 --f&lt;br /&gt;
alfa 65&lt;br /&gt;
t: /10&lt;br /&gt;
&lt;br /&gt;
i: /opt/local/sw/share/pixmaps/wbar/wbar.png&lt;br /&gt;
c: wbar-config&lt;br /&gt;
t: Config&lt;br /&gt;
&lt;br /&gt;
i: /opt/local/sw/share/icons/wm-icons/32x32-gant/terminal.png&lt;br /&gt;
c: xterm&lt;br /&gt;
t: Xterm&lt;br /&gt;
&lt;br /&gt;
i: /opt/local/sw/share/icons/wm-icons/32x32-gant/keyboard.png&lt;br /&gt;
c: xvkbd -compact -no-repeat -geometry 800x200&lt;br /&gt;
t: Xvkbd&lt;br /&gt;
&lt;br /&gt;
i: /opt/local/sw/share/icons/wm-icons/32x32-gant/calculator.png&lt;br /&gt;
c: xcalc&lt;br /&gt;
t: XCalc&lt;br /&gt;
&lt;br /&gt;
i: /opt/local/sw/share/icons/wm-icons/32x32-gant/restart.png&lt;br /&gt;
c: /system/bin/start&lt;br /&gt;
t: Backto Android&lt;br /&gt;
&lt;br /&gt;
i: /opt/local/sw/share/icons/wm-icons/32x32-gant/window-close.png&lt;br /&gt;
c: xkill&lt;br /&gt;
t: XKill&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Files ===&lt;br /&gt;
==== xorg.conf ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Section &amp;quot;ServerLayout&amp;quot;&lt;br /&gt;
Identifier	&amp;quot;myLaout&amp;quot;&lt;br /&gt;
Screen		&amp;quot;myScreen&amp;quot;&lt;br /&gt;
# InputDevice     &amp;quot;mymouse&amp;quot;&lt;br /&gt;
InputDevice	&amp;quot;mytouchscreen&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;Screen&amp;quot;&lt;br /&gt;
Identifier	&amp;quot;myScreen&amp;quot;&lt;br /&gt;
Device		&amp;quot;myfbdev&amp;quot;&lt;br /&gt;
DefaultDepth 	24&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;Device&amp;quot;&lt;br /&gt;
Identifier	&amp;quot;myFbdev&amp;quot;&lt;br /&gt;
Driver		&amp;quot;fbdev&amp;quot;&lt;br /&gt;
Option		&amp;quot;fbdev&amp;quot; &amp;quot;/dev/graphics/fb0&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;InputDevice&amp;quot;&lt;br /&gt;
 Identifier	&amp;quot;mytouchscreen&amp;quot;&lt;br /&gt;
 Driver		&amp;quot;evdev&amp;quot;&lt;br /&gt;
 # Driver 	&amp;quot;synaptics&amp;quot;&lt;br /&gt;
 Option		&amp;quot;Device&amp;quot; &amp;quot;/dev/input/event3&amp;quot;&lt;br /&gt;
 # Option	&amp;quot;Protocol&amp;quot; &amp;quot;Auto&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== lnx_init.c patch ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--- xorg-server-1.12.2/hw/xfree86/os-support/linux/lnx_init.c	2014-09-04 22:53:13.450000054 +0530&lt;br /&gt;
+++ xorg-server-1.12.2.org/hw/xfree86/os-support/linux/lnx_init.c	2012-05-17 22:39:03.000000000 +0530&lt;br /&gt;
@@ -48,18 +48,15 @@&lt;br /&gt;
 static void&lt;br /&gt;
 drain_console(int fd, void *closure)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     errno = 0;&lt;br /&gt;
     if (tcflush(fd, TCIOFLUSH) == -1 &amp;amp;&amp;amp; errno == EIO) {&lt;br /&gt;
         xf86SetConsoleHandler(NULL, NULL);&lt;br /&gt;
     }&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 static void&lt;br /&gt;
 switch_to(int vt, const char *from)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     int ret;&lt;br /&gt;
 &lt;br /&gt;
     SYSCALL(ret = ioctl(xf86Info.consoleFd, VT_ACTIVATE, vt));&lt;br /&gt;
@@ -69,13 +66,11 @@&lt;br /&gt;
     SYSCALL(ret = ioctl(xf86Info.consoleFd, VT_WAITACTIVE, vt));&lt;br /&gt;
     if (ret &amp;lt; 0)&lt;br /&gt;
         FatalError(&amp;quot;%s: VT_WAITACTIVE failed: %s\n&amp;quot;, from, strerror(errno));&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void&lt;br /&gt;
 xf86OpenConsole(void)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     int i, fd = -1, ret;&lt;br /&gt;
     struct vt_mode VT;&lt;br /&gt;
     struct vt_stat vts;&lt;br /&gt;
@@ -254,13 +249,11 @@&lt;br /&gt;
             switch_to(xf86Info.vtno, &amp;quot;xf86OpenConsole&amp;quot;);&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void&lt;br /&gt;
 xf86CloseConsole(void)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     struct vt_mode VT;&lt;br /&gt;
     int ret;&lt;br /&gt;
 &lt;br /&gt;
@@ -307,7 +300,6 @@&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
     close(xf86Info.consoleFd);  /* make the vt-manager happy */&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Running some tests ==&lt;br /&gt;
&lt;br /&gt;
=== Testing the framebuffer ===		&lt;br /&gt;
&lt;br /&gt;
For these tests, I stopped android &amp;quot;SurfaceFlinger&amp;quot; and freed up /dev/graphics/fb0. by running &amp;quot;stop&amp;quot;&lt;br /&gt;
command. Before running stop, make sure that the display is on ( not blank ). For these tests, I had&lt;br /&gt;
two terminals up on the host PC with one of them running just adb shell with su, and other running&lt;br /&gt;
chrooted slackware shell. SurfaceFlinger was stopped from su shell, and tests from Slackware shell.&lt;br /&gt;
&lt;br /&gt;
Please not Slackware shell is also running as user root.&lt;br /&gt;
&lt;br /&gt;
==== Stopping android - sort of ====&lt;br /&gt;
&lt;br /&gt;
Here is how to stop the SurfaceFlinger and get framebuffer free:&lt;br /&gt;
&lt;br /&gt;
    adb shell&lt;br /&gt;
    su&lt;br /&gt;
    stop&lt;br /&gt;
&lt;br /&gt;
Now the display goes blank, with backlight on.&lt;br /&gt;
&lt;br /&gt;
Get one of these tests.&lt;br /&gt;
[https://gist.githubusercontent.com/rafalrusin/1482697/raw/32c6c0d79b870ffb618aa7b7c664736ca5e150fe/fbtest.c  fbtest] or &lt;br /&gt;
[http://stackoverflow.com/questions/4996777/paint-pixels-to-screen-via-linux-framebuffer Paint-pixels-to-screen-  via-linux-framebuffer] or &lt;br /&gt;
[http://cep.xray.aps.anl.gov/software/qt4-x11-4.2.2/qtopiacore-testingframebuffer.html qtopiacore-testingframebuffer] All these tests worked on the Tablet. Transfer the tests to tablet using adb push&lt;br /&gt;
command.&lt;br /&gt;
&lt;br /&gt;
from Slackware shell, running under adb shell:&lt;br /&gt;
&lt;br /&gt;
    gcc fbtest.c&lt;br /&gt;
    ./a.out&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
once done, go back to android su shell from adb, and:&lt;br /&gt;
&lt;br /&gt;
==== Getting back to android ====&lt;br /&gt;
  &lt;br /&gt;
    start&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
After few seconds android display will be back on. &lt;br /&gt;
&lt;br /&gt;
=== Running evtest ===&lt;br /&gt;
&lt;br /&gt;
Download [http://cgit.freedesktop.org/~whot/evtest/tree/evtest.c evtest.c].&lt;br /&gt;
&lt;br /&gt;
   gcc -o gcc -o evtest evtest.c&lt;br /&gt;
   ./evtest&lt;br /&gt;
   see evtest.log for sample outpu&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== evtest.log ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
No device specified, trying to scan all of /dev/input/event*&lt;br /&gt;
Available devices:&lt;br /&gt;
/dev/input/event0:	mtk-kpd&lt;br /&gt;
/dev/input/event1:	ACCDET&lt;br /&gt;
/dev/input/event2:	hwmdata&lt;br /&gt;
/dev/input/event3:	mtk-tpd&lt;br /&gt;
Select the device event number [0-3]: Input driver version is 1.0.1&lt;br /&gt;
Input device ID: bus 0x0 vendor 0x0 product 0x0 version 0x0&lt;br /&gt;
Input device name: &amp;quot;mtk-tpd&amp;quot;&lt;br /&gt;
Supported events:&lt;br /&gt;
  Event type 0 (EV_SYN)&lt;br /&gt;
  Event type 1 (EV_KEY)&lt;br /&gt;
    Event code 330 (BTN_TOUCH)&lt;br /&gt;
  Event type 3 (EV_ABS)&lt;br /&gt;
    Event code 0 (ABS_X)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      800&lt;br /&gt;
      Resolution     800&lt;br /&gt;
    Event code 1 (ABS_Y)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      480&lt;br /&gt;
      Resolution     480&lt;br /&gt;
    Event code 24 (ABS_PRESSURE)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      255&lt;br /&gt;
    Event code 48 (ABS_MT_TOUCH_MAJOR)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      100&lt;br /&gt;
    Event code 49 (ABS_MT_TOUCH_MINOR)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      100&lt;br /&gt;
    Event code 53 (ABS_MT_POSITION_X)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      800&lt;br /&gt;
    Event code 54 (ABS_MT_POSITION_Y)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      480&lt;br /&gt;
    Event code 57 (ABS_MT_TRACKING_ID)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max        0&lt;br /&gt;
Properties:&lt;br /&gt;
  Property type 1 (INPUT_PROP_DIRECT)&lt;br /&gt;
Testing ... (interrupt to exit)&lt;br /&gt;
Event: time 1409845467.116675, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845467.116682, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.116687, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.116691, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.116695, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.116699, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.116703, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1409845467.133145, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.133151, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.133155, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.133160, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.133164, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.133167, -------------- SYN_REPORT ------------&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
Event: time 1409845469.216857, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.216863, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 207&lt;br /&gt;
Event: time 1409845469.216867, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 376&lt;br /&gt;
Event: time 1409845469.216871, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.216875, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.216878, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1409845469.230419, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845469.230423, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.230426, -------------- SYN_REPORT ------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Running xinput ===&lt;br /&gt;
&lt;br /&gt;
	xinput --list&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
â¡ Virtual core pointer                         id=2    [master pointer  (3)]&lt;br /&gt;
â   â³ Virtual core XTEST pointer               id=4    [slave  pointer  (2)]&lt;br /&gt;
â   â³ mytouchscreen                            id=6    [slave  pointer  (2)]&lt;br /&gt;
â£ Virtual core keyboard                        id=3    [master keyboard (2)]&lt;br /&gt;
    â³ Virtual core XTEST keyboard              id=5    [slave  keyboard (3)]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== xinput log ====&lt;br /&gt;
&lt;br /&gt;
	xinput test 6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
motion a[0]=53 a[1]=58 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=53 a[1]=58 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=53 a[1]=58 &lt;br /&gt;
motion a[0]=513 a[1]=91 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=513 a[1]=91 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=513 a[1]=91 &lt;br /&gt;
motion a[0]=659 a[1]=436 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=659 a[1]=436 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=659 a[1]=436 &lt;br /&gt;
motion a[0]=624 a[1]=152 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=624 a[1]=152 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
motion a[0]=577 a[1]=174 &lt;br /&gt;
motion a[0]=501 a[1]=203 &lt;br /&gt;
motion a[0]=457 a[1]=219 &lt;br /&gt;
motion a[0]=411 a[1]=232 &lt;br /&gt;
motion a[0]=371 a[1]=240 &lt;br /&gt;
motion a[0]=341 a[1]=245 &lt;br /&gt;
button release 1 a[0]=341 a[1]=245 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</description>
			<pubDate>Sat, 06 Sep 2014 09:54:35 GMT</pubDate>
			<dc:creator>Gv</dc:creator>
			<comments>https://www.slackwiki.com/Talk:SlackwareOnMt6582Tablet</comments>
		</item>
		<item>
			<title>SlackwareOnMt6582Tablet</title>
			<link>https://www.slackwiki.com/index.php?title=SlackwareOnMt6582Tablet&amp;diff=934</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=SlackwareOnMt6582Tablet&amp;diff=934</guid>
			<description>&lt;p&gt;Gv: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Specifications of the Tablet PC which was used here ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Processor : Arm Cortex A7, 1.3 GHz dual core.&lt;br /&gt;
             : ARMv7 Processor rev 3 (v7l),&lt;br /&gt;
   Hardware  : MT8312&lt;br /&gt;
   SOC       : mt6582.&lt;br /&gt;
   Memory    : 512MB RAM&lt;br /&gt;
   Storage   : 4GB Built in storage.&lt;br /&gt;
   Micro SD  : Slot for upto 32GB&lt;br /&gt;
   Display   : 7&amp;quot; WVGA 800x480&lt;br /&gt;
   OS        : Android 4.2 Jelly Bean&lt;br /&gt;
   GPU       : Mali?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://s7.postimg.org/fww1ibfdn/image.png Screenshot] of X windows with fluxbox and wbar. [http://s15.postimg.org/izdxddkqj/image.png another one].&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== Rooting the Tablet PC ==&lt;br /&gt;
&lt;br /&gt;
I used [http://www.techverse.net/fastest-root-android-phone-computer/ Framaroot-1.9.3.apk] to root the device. &lt;br /&gt;
&lt;br /&gt;
== Installing Linux - Slackware 14.1 - sort of. ==&lt;br /&gt;
&lt;br /&gt;
With the problem of not having kernel source for the SOC, and no no bootloader unlock possible yet, next best option was to use a chroot environment.&lt;br /&gt;
&lt;br /&gt;
So far, command line mode works fine. Here is the description of how Slackware was installed on to external micro SD Card. Was able to do some basic tests on the frame buffer display. Since there is no VTs available was not able to test Xorg, though could get Mali module compiled and loaded. More details below.&lt;br /&gt;
&lt;br /&gt;
=== Preparing SD Card on host computer ===&lt;br /&gt;
&lt;br /&gt;
Use fdisk to create one or two partitions, one for ext4 and other ( optional ) swap partition. Once these are created, assuming the device on host is /dev/sdc,&lt;br /&gt;
&lt;br /&gt;
    mkfs.ext4 /dev/sdc1&lt;br /&gt;
    sync&lt;br /&gt;
    eject sdc&lt;br /&gt;
    eject -t sdc&lt;br /&gt;
    mkdir slack&lt;br /&gt;
    mount /dev/sdc1 slack&lt;br /&gt;
    cd slack&lt;br /&gt;
    mkdir sl&lt;br /&gt;
    cd sl&lt;br /&gt;
&lt;br /&gt;
If you don't have Slackware installation files, [http://arm.slackware.com/getslack/ Get Slackware Arm] first. &lt;br /&gt;
&lt;br /&gt;
    mkdir slackware14.1&lt;br /&gt;
    cd slackware14.1&lt;br /&gt;
    (cd /path..to../slackware14.1 ; tar cfz - *) | (tar xfz - )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://sourceforge.net/projects/slackwareonapc8750/files/initrd-kirkwood.cpio.gz/download initrd-kirkwood.cpio] contains the setup program, but since I couldn't boot with custom initrd, sdc1 /sl area is prepared to have the installation files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    cpio -id &amp;lt; initrd-kirkwood.cpio&lt;br /&gt;
    sync&lt;br /&gt;
    umount slack&lt;br /&gt;
&lt;br /&gt;
Now that the sd card is ready for installation:&lt;br /&gt;
&lt;br /&gt;
    eject sdc&lt;br /&gt;
	&lt;br /&gt;
and plug it into the device. Once that is done,&lt;br /&gt;
&lt;br /&gt;
=== Getting installer ready ===&lt;br /&gt;
&lt;br /&gt;
Now plug the card in tablet pc, boot, from host computer,&lt;br /&gt;
&lt;br /&gt;
==== starting a adb shell with su ====&lt;br /&gt;
&lt;br /&gt;
    adb shell&lt;br /&gt;
    su&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== chroot to installe ====&lt;br /&gt;
&lt;br /&gt;
    cd /data/local/tmp&lt;br /&gt;
    mkdir slackware&lt;br /&gt;
    mount /dev/block/mmcblk1p1 slackware&lt;br /&gt;
    cd slackware/sl&lt;br /&gt;
    export PATH=/data/local/tmp/bin:$PATH&lt;br /&gt;
    mountpoint proc || mount -t proc none proc/&lt;br /&gt;
    mountpoint sys || mount -t sysfs sys sys/&lt;br /&gt;
    mountpoint dev || mount -o bind  /dev dev/&lt;br /&gt;
    export PATH=/usr/bin:/bin:/usr/lib/setup:$PATH&lt;br /&gt;
    pushd /dev&lt;br /&gt;
    ln -s /dev/block/mmc1blk* .&lt;br /&gt;
    popd&lt;br /&gt;
    chroot . /bin/bash&lt;br /&gt;
    mount -t ext4 /dev/mmcblk1p1 mnt&lt;br /&gt;
&lt;br /&gt;
=== Running setup ===&lt;br /&gt;
&lt;br /&gt;
Install Slackware onto mmcblk1p1, from pre mounted directory, sdc1 : /slackware14.1/slackware&lt;br /&gt;
&lt;br /&gt;
    setup&lt;br /&gt;
        Proceed and select /dev/mmcblk1p1 as target, no format&lt;br /&gt;
        For source, select pre mounted directory option, /slackware14.1/slackware&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
=== Complete installation, and configuration ===&lt;br /&gt;
&lt;br /&gt;
Once the complete installation is done,&lt;br /&gt;
&lt;br /&gt;
    umount proc&lt;br /&gt;
    umount sys&lt;br /&gt;
    umount dev&lt;br /&gt;
    sync&lt;br /&gt;
    cd ../..&lt;br /&gt;
    umount slackware&lt;br /&gt;
&lt;br /&gt;
== Getting into installed Slackware: ==&lt;br /&gt;
&lt;br /&gt;
==== Running slackware su shell ====&lt;br /&gt;
&lt;br /&gt;
    adb shell&lt;br /&gt;
    su&lt;br /&gt;
    mount /dev/block/mmcblk1p1 slackware&lt;br /&gt;
    cd slackware&lt;br /&gt;
    mountpoint proc || mount -t proc none proc/&lt;br /&gt;
    mountpoint sys || mount -t sysfs sys sys/&lt;br /&gt;
    mountpoint dev || mount -o bind  /dev dev/&lt;br /&gt;
    test -d system || mkdir system&lt;br /&gt;
    mountpoint system || mount -o bind /system system&lt;br /&gt;
    export PATH=/usr/bin:/bin:/usr/lib/setup:$PATH&lt;br /&gt;
    chroot . /bin/su -	&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From here you can do &amp;quot;normal&amp;quot; Slackware activities, sort of. Main things that were lacking in my case were VTs (ttys). Compiling programs and running programs. I ran couple of frame buffer tests too. Fortunately, removing the VT requirement from Xorg was pretty simple. Here is how it was done.&lt;br /&gt;
		&lt;br /&gt;
&lt;br /&gt;
== Getting Xorg up and running - kind of ==&lt;br /&gt;
&lt;br /&gt;
=== Getting Xorg compiled ===&lt;br /&gt;
&lt;br /&gt;
Ecept for Pointer ( touchscreen ) failure, Xorg seems to be working fine. evtest, xinput tests are showing touchscreen activity, but the cursor seems to be not&lt;br /&gt;
moving. But if a window like xvkbd or xterm or so is launched, you can move the window using the touch screen!. And kvkbd input also works. &lt;br /&gt;
&lt;br /&gt;
Download [http://www.x.org/releases/X11R7.7/src/everything/xorg-server-1.12.2.tar.bz2  xorg-server-1.12.2], &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	tar xf xorg-server-1.12.2.tar.bz2&lt;br /&gt;
&lt;br /&gt;
Also make changes to xorg-server-1.12.2/hw/xfree86/os-support/linux/lnx\_init.c so that VT / console related code is disabled. See the patch section.&lt;br /&gt;
&lt;br /&gt;
	cd xorg-server-1.12.2&lt;br /&gt;
	export PKG_CONFIG_PATH=/opt/local/sw/share/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
	export PKG_CONFIG_PATH=/opt/local/sw/lib/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
	export LD_LIBRARY_PATH=/opt/local/sw/lib:$LD_LIBRARY_PATH&lt;br /&gt;
	export PATH=/opt/local/sw/bin:$PATH&lt;br /&gt;
	./configure --prefix=/opt/local/sw --enable-kdrive --enable-kdrive-evdev --with-xkb-path=/opt/local/sw/share/X11/xkb --with-xkb-output=/var/lib/xkb --with-xkb-bin-directory=/opt/local/sw/bin --with-default-xkb-rules=xorg --with-default-xkb-model=pc104 --with-default-xkb-layout=us  --disable-xnest --disable-dmx --disable-xquartz --disable-xwin --disable-xephyr --disable-config-udev --enable-tslib --disable-docs  --disable-devel-docs LDFLAGS=-L/opt/local/sw/lib CFLAGS=-I/opt/local/sw/include&lt;br /&gt;
make -j 3&lt;br /&gt;
&lt;br /&gt;
If all required packages are not on the system, compilation will fail. Download each of the requiered packags , untar, configure and install.&lt;br /&gt;
&lt;br /&gt;
	./configure --prefix=/opt/local/sw&lt;br /&gt;
	make -j 3 install&lt;br /&gt;
&lt;br /&gt;
Once xorg-server-1.12.2 compilation is succesfull, &lt;br /&gt;
	make install&lt;br /&gt;
	&lt;br /&gt;
=== Compiling additional drivers required ===&lt;br /&gt;
&lt;br /&gt;
==== fbdev ====&lt;br /&gt;
&lt;br /&gt;
xf86-video-fbdev-0.4.2&lt;br /&gt;
export PKG_CONFIG_PATH=/opt/local/sw/lib/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
./configure --prefix=/opt/local/sw&lt;br /&gt;
&lt;br /&gt;
src/fbdev.c xf86-video-fbdev-0.4.2/src/fbdev.c&lt;br /&gt;
// #include &amp;quot;mibstore.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
make -j 3&lt;br /&gt;
make install&lt;br /&gt;
&lt;br /&gt;
==== evdev ====&lt;br /&gt;
&lt;br /&gt;
    xf86-input-evdev-2.7.0&lt;br /&gt;
    ./configure --prefix=/opt/local/sw&lt;br /&gt;
&lt;br /&gt;
    src/Makefile:&lt;br /&gt;
    evdev_drv_la_LIBADD = $(MTDEV_LIBS) $(UDEV_LIBS)&lt;br /&gt;
    ( if not done, causes evdev_drv.so: undefined symbol: udev_new when Xorg is ran)&lt;br /&gt;
&lt;br /&gt;
    make -j 3 &lt;br /&gt;
    make install&lt;br /&gt;
&lt;br /&gt;
Once installed make an xorg.conf [ see xorg.conf section ] in /etc/X11/&lt;br /&gt;
and run startx as described below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Running X ===&lt;br /&gt;
&lt;br /&gt;
make sure display is on,&lt;br /&gt;
From slackware chroot environment in adb shell [ see section ]:&lt;br /&gt;
&lt;br /&gt;
    /system/bin/stop&lt;br /&gt;
    startx -- /opt/local/sw/bin/Xorg -pointer mytouchscreen :0&lt;br /&gt;
  &lt;br /&gt;
    Try disown / nohup to keep X running when disconnected from PC.&lt;br /&gt;
&lt;br /&gt;
Once Finished,&lt;br /&gt;
&lt;br /&gt;
run: &lt;br /&gt;
&lt;br /&gt;
    /system/bin/start&lt;br /&gt;
&lt;br /&gt;
Or touch the &amp;quot;back to android&amp;quot; icon on wbar. to return to Android.&lt;br /&gt;
&lt;br /&gt;
=== Virtual Keyboard ===&lt;br /&gt;
&lt;br /&gt;
==== http://homepage3.nifty.com/tsato/xvkbd/ ====&lt;br /&gt;
&lt;br /&gt;
Download [http://homepage3.nifty.com/tsato/xvkbd/xvkbd-3.5.tar.gz xvkbd-3.5.tar.gz], install&lt;br /&gt;
    xmkf&lt;br /&gt;
    make &lt;br /&gt;
    make install&lt;br /&gt;
&lt;br /&gt;
and run: &lt;br /&gt;
&lt;br /&gt;
    xvkbd&lt;br /&gt;
&lt;br /&gt;
=== An application launcher ===&lt;br /&gt;
==== wbar ====&lt;br /&gt;
Download [https://github.com/warlockcc/wbar wbar] from [https://code.google.com/p/wbar/downloads/detail?name=wbar-2.3.4.tgz&amp;amp;can=2&amp;amp;q= wbar-2.3.4.tgz] at [https://code.google.com/p/wbar/downloads/list wbar downloads at code.google.com]&lt;br /&gt;
&lt;br /&gt;
==== .wbar ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
i: /opt/local/sw/share/pixmaps/wbar/dock.png&lt;br /&gt;
c: wbar --bpress --above-desk --hbar --pos bottom --isize 48 --idist 5 --nanim 4 --f&lt;br /&gt;
alfa 65&lt;br /&gt;
t: /10&lt;br /&gt;
&lt;br /&gt;
i: /opt/local/sw/share/pixmaps/wbar/wbar.png&lt;br /&gt;
c: wbar-config&lt;br /&gt;
t: Config&lt;br /&gt;
&lt;br /&gt;
i: /opt/local/sw/share/icons/wm-icons/32x32-gant/terminal.png&lt;br /&gt;
c: xterm&lt;br /&gt;
t: Xterm&lt;br /&gt;
&lt;br /&gt;
i: /opt/local/sw/share/icons/wm-icons/32x32-gant/keyboard.png&lt;br /&gt;
c: xvkbd -compact -no-repeat -geometry 800x200&lt;br /&gt;
t: Xvkbd&lt;br /&gt;
&lt;br /&gt;
i: /opt/local/sw/share/icons/wm-icons/32x32-gant/calculator.png&lt;br /&gt;
c: xcalc&lt;br /&gt;
t: XCalc&lt;br /&gt;
&lt;br /&gt;
i: /opt/local/sw/share/icons/wm-icons/32x32-gant/restart.png&lt;br /&gt;
c: /system/bin/start&lt;br /&gt;
t: Backto Android&lt;br /&gt;
&lt;br /&gt;
i: /opt/local/sw/share/icons/wm-icons/32x32-gant/window-close.png&lt;br /&gt;
c: xkill&lt;br /&gt;
t: XKill&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Files ===&lt;br /&gt;
==== xorg.conf ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Section &amp;quot;ServerLayout&amp;quot;&lt;br /&gt;
Identifier	&amp;quot;myLaout&amp;quot;&lt;br /&gt;
Screen		&amp;quot;myScreen&amp;quot;&lt;br /&gt;
# InputDevice     &amp;quot;mymouse&amp;quot;&lt;br /&gt;
InputDevice	&amp;quot;mytouchscreen&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;Screen&amp;quot;&lt;br /&gt;
Identifier	&amp;quot;myScreen&amp;quot;&lt;br /&gt;
Device		&amp;quot;myfbdev&amp;quot;&lt;br /&gt;
DefaultDepth 	24&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;Device&amp;quot;&lt;br /&gt;
Identifier	&amp;quot;myFbdev&amp;quot;&lt;br /&gt;
Driver		&amp;quot;fbdev&amp;quot;&lt;br /&gt;
Option		&amp;quot;fbdev&amp;quot; &amp;quot;/dev/graphics/fb0&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;InputDevice&amp;quot;&lt;br /&gt;
 Identifier	&amp;quot;mytouchscreen&amp;quot;&lt;br /&gt;
 Driver		&amp;quot;evdev&amp;quot;&lt;br /&gt;
 # Driver 	&amp;quot;synaptics&amp;quot;&lt;br /&gt;
 Option		&amp;quot;Device&amp;quot; &amp;quot;/dev/input/event3&amp;quot;&lt;br /&gt;
 # Option	&amp;quot;Protocol&amp;quot; &amp;quot;Auto&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== lnx_init.c patch ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--- xorg-server-1.12.2/hw/xfree86/os-support/linux/lnx_init.c	2014-09-04 22:53:13.450000054 +0530&lt;br /&gt;
+++ xorg-server-1.12.2.org/hw/xfree86/os-support/linux/lnx_init.c	2012-05-17 22:39:03.000000000 +0530&lt;br /&gt;
@@ -48,18 +48,15 @@&lt;br /&gt;
 static void&lt;br /&gt;
 drain_console(int fd, void *closure)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     errno = 0;&lt;br /&gt;
     if (tcflush(fd, TCIOFLUSH) == -1 &amp;amp;&amp;amp; errno == EIO) {&lt;br /&gt;
         xf86SetConsoleHandler(NULL, NULL);&lt;br /&gt;
     }&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 static void&lt;br /&gt;
 switch_to(int vt, const char *from)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     int ret;&lt;br /&gt;
 &lt;br /&gt;
     SYSCALL(ret = ioctl(xf86Info.consoleFd, VT_ACTIVATE, vt));&lt;br /&gt;
@@ -69,13 +66,11 @@&lt;br /&gt;
     SYSCALL(ret = ioctl(xf86Info.consoleFd, VT_WAITACTIVE, vt));&lt;br /&gt;
     if (ret &amp;lt; 0)&lt;br /&gt;
         FatalError(&amp;quot;%s: VT_WAITACTIVE failed: %s\n&amp;quot;, from, strerror(errno));&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void&lt;br /&gt;
 xf86OpenConsole(void)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     int i, fd = -1, ret;&lt;br /&gt;
     struct vt_mode VT;&lt;br /&gt;
     struct vt_stat vts;&lt;br /&gt;
@@ -254,13 +249,11 @@&lt;br /&gt;
             switch_to(xf86Info.vtno, &amp;quot;xf86OpenConsole&amp;quot;);&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void&lt;br /&gt;
 xf86CloseConsole(void)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     struct vt_mode VT;&lt;br /&gt;
     int ret;&lt;br /&gt;
 &lt;br /&gt;
@@ -307,7 +300,6 @@&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
     close(xf86Info.consoleFd);  /* make the vt-manager happy */&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Running some tests ==&lt;br /&gt;
&lt;br /&gt;
=== Testing the framebuffer ===		&lt;br /&gt;
&lt;br /&gt;
For these tests, I stopped android &amp;quot;SurfaceFlinger&amp;quot; and freed up /dev/graphics/fb0. by running &amp;quot;stop&amp;quot;&lt;br /&gt;
command. Before running stop, make sure that the display is on ( not blank ). For these tests, I had&lt;br /&gt;
two terminals up on the host PC with one of them running just adb shell with su, and other running&lt;br /&gt;
chrooted slackware shell. SurfaceFlinger was stopped from su shell, and tests from Slackware shell.&lt;br /&gt;
&lt;br /&gt;
Please not Slackware shell is also running as user root.&lt;br /&gt;
&lt;br /&gt;
==== Stopping android - sort of ====&lt;br /&gt;
&lt;br /&gt;
Here is how to stop the SurfaceFlinger and get framebuffer free:&lt;br /&gt;
&lt;br /&gt;
    adb shell&lt;br /&gt;
    su&lt;br /&gt;
    stop&lt;br /&gt;
&lt;br /&gt;
Now the display goes blank, with backlight on.&lt;br /&gt;
&lt;br /&gt;
Get one of these tests.&lt;br /&gt;
[https://gist.githubusercontent.com/rafalrusin/1482697/raw/32c6c0d79b870ffb618aa7b7c664736ca5e150fe/fbtest.c  fbtest] or &lt;br /&gt;
[http://stackoverflow.com/questions/4996777/paint-pixels-to-screen-via-linux-framebuffer Paint-pixels-to-screen-  via-linux-framebuffer] or &lt;br /&gt;
[http://cep.xray.aps.anl.gov/software/qt4-x11-4.2.2/qtopiacore-testingframebuffer.html qtopiacore-testingframebuffer] All these tests worked on the Tablet. Transfer the tests to tablet using adb push&lt;br /&gt;
command.&lt;br /&gt;
&lt;br /&gt;
from Slackware shell, running under adb shell:&lt;br /&gt;
&lt;br /&gt;
    gcc fbtest.c&lt;br /&gt;
    ./a.out&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
once done, go back to android su shell from adb, and:&lt;br /&gt;
&lt;br /&gt;
==== Getting back to android ====&lt;br /&gt;
  &lt;br /&gt;
    start&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
After few seconds android display will be back on. &lt;br /&gt;
&lt;br /&gt;
=== Running evtest ===&lt;br /&gt;
&lt;br /&gt;
Download [http://cgit.freedesktop.org/~whot/evtest/tree/evtest.c evtest.c].&lt;br /&gt;
&lt;br /&gt;
   gcc -o gcc -o evtest evtest.c&lt;br /&gt;
   ./evtest&lt;br /&gt;
   see evtest.log for sample outpu&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== evtest.log ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
No device specified, trying to scan all of /dev/input/event*&lt;br /&gt;
Available devices:&lt;br /&gt;
/dev/input/event0:	mtk-kpd&lt;br /&gt;
/dev/input/event1:	ACCDET&lt;br /&gt;
/dev/input/event2:	hwmdata&lt;br /&gt;
/dev/input/event3:	mtk-tpd&lt;br /&gt;
Select the device event number [0-3]: Input driver version is 1.0.1&lt;br /&gt;
Input device ID: bus 0x0 vendor 0x0 product 0x0 version 0x0&lt;br /&gt;
Input device name: &amp;quot;mtk-tpd&amp;quot;&lt;br /&gt;
Supported events:&lt;br /&gt;
  Event type 0 (EV_SYN)&lt;br /&gt;
  Event type 1 (EV_KEY)&lt;br /&gt;
    Event code 330 (BTN_TOUCH)&lt;br /&gt;
  Event type 3 (EV_ABS)&lt;br /&gt;
    Event code 0 (ABS_X)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      800&lt;br /&gt;
      Resolution     800&lt;br /&gt;
    Event code 1 (ABS_Y)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      480&lt;br /&gt;
      Resolution     480&lt;br /&gt;
    Event code 24 (ABS_PRESSURE)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      255&lt;br /&gt;
    Event code 48 (ABS_MT_TOUCH_MAJOR)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      100&lt;br /&gt;
    Event code 49 (ABS_MT_TOUCH_MINOR)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      100&lt;br /&gt;
    Event code 53 (ABS_MT_POSITION_X)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      800&lt;br /&gt;
    Event code 54 (ABS_MT_POSITION_Y)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      480&lt;br /&gt;
    Event code 57 (ABS_MT_TRACKING_ID)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max        0&lt;br /&gt;
Properties:&lt;br /&gt;
  Property type 1 (INPUT_PROP_DIRECT)&lt;br /&gt;
Testing ... (interrupt to exit)&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845467.116675, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845467.116682, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.116687, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.116691, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.116695, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.116699, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.116703, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.133145, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.133151, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.133155, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.133160, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.133164, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.133167, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.148724, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.148730, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.148734, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.148738, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.148742, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.148745, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.164975, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.164981, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.164985, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.164989, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.164994, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.164997, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.180722, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.180727, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.180731, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.180736, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.180740, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.180743, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.196495, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.196501, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.196505, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.196510, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.196514, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.196517, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.211803, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.211809, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.211813, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.211818, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.211822, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.211825, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845467.225500, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845467.225504, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.225507, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845467.466531, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845467.466536, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.466540, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.466545, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.466549, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.466553, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.466556, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.482028, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.482033, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.482038, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.482042, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.482046, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.482049, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.497971, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.497977, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.497981, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.497986, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.497990, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.497993, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.514030, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.514036, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.514040, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.514044, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.514048, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.514051, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.530188, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.530194, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.530198, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.530202, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.530206, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.530210, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.545804, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.545809, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.545813, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.545818, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.545822, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.545825, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845467.559686, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845467.559690, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.559693, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845467.880062, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845467.880067, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.880072, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 678&lt;br /&gt;
Event: time 1409845467.880076, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 130&lt;br /&gt;
Event: time 1409845467.880080, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.880084, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.880088, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.895834, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.895839, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 678&lt;br /&gt;
Event: time 1409845467.895844, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 130&lt;br /&gt;
Event: time 1409845467.895848, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.895852, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.895855, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.911757, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.911762, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 678&lt;br /&gt;
Event: time 1409845467.911767, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 130&lt;br /&gt;
Event: time 1409845467.911771, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.911775, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.911778, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.927833, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.927838, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 680&lt;br /&gt;
Event: time 1409845467.927842, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 129&lt;br /&gt;
Event: time 1409845467.927847, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.927851, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.927854, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.944420, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.944426, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845467.944430, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 129&lt;br /&gt;
Event: time 1409845467.944434, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.944438, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.944442, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.959239, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.959244, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 683&lt;br /&gt;
Event: time 1409845467.959249, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 129&lt;br /&gt;
Event: time 1409845467.959253, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.959257, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.959260, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.974974, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.974980, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 685&lt;br /&gt;
Event: time 1409845467.974984, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 129&lt;br /&gt;
Event: time 1409845467.974988, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.974992, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.974996, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845467.989318, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845467.989321, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.989324, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845468.246567, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845468.246571, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.246576, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 659&lt;br /&gt;
Event: time 1409845468.246580, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 419&lt;br /&gt;
Event: time 1409845468.246584, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.246589, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.246592, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.262652, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.262657, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 659&lt;br /&gt;
Event: time 1409845468.262662, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 419&lt;br /&gt;
Event: time 1409845468.262666, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.262670, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.262673, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.278454, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.278460, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 659&lt;br /&gt;
Event: time 1409845468.278464, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 419&lt;br /&gt;
Event: time 1409845468.278468, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.278473, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.278476, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.293932, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.293938, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 653&lt;br /&gt;
Event: time 1409845468.293942, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 419&lt;br /&gt;
Event: time 1409845468.293946, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.293950, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.293953, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.309429, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.309434, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 639&lt;br /&gt;
Event: time 1409845468.309438, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 416&lt;br /&gt;
Event: time 1409845468.309443, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.309447, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.309450, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845468.323482, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845468.323486, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.323489, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845468.596393, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845468.596397, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.596402, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 226&lt;br /&gt;
Event: time 1409845468.596406, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 302&lt;br /&gt;
Event: time 1409845468.596410, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.596414, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.596417, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.612126, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.612132, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 226&lt;br /&gt;
Event: time 1409845468.612136, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 302&lt;br /&gt;
Event: time 1409845468.612140, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.612144, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.612147, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.628256, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.628262, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 226&lt;br /&gt;
Event: time 1409845468.628266, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 302&lt;br /&gt;
Event: time 1409845468.628271, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.628275, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.628278, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.644136, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.644142, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 226&lt;br /&gt;
Event: time 1409845468.644146, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 302&lt;br /&gt;
Event: time 1409845468.644151, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.644155, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.644158, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.659867, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.659873, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 226&lt;br /&gt;
Event: time 1409845468.659877, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 302&lt;br /&gt;
Event: time 1409845468.659882, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.659886, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.659889, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845468.673538, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845468.673541, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.673544, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845468.946001, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845468.946005, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.946010, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845468.946014, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845468.946018, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.946022, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.946025, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.962071, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.962077, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845468.962081, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845468.962085, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.962089, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.962093, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.977741, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.977747, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845468.977751, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845468.977755, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.977759, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.977762, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.993678, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.993684, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845468.993688, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845468.993692, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.993696, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.993700, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.010083, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.010089, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845469.010093, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845469.010097, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.010101, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.010104, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.026187, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.026193, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 665&lt;br /&gt;
Event: time 1409845469.026197, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 357&lt;br /&gt;
Event: time 1409845469.026201, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.026205, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.026209, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.041432, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.041437, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 640&lt;br /&gt;
Event: time 1409845469.041442, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 357&lt;br /&gt;
Event: time 1409845469.041446, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.041450, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.041453, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.057294, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.057299, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 581&lt;br /&gt;
Event: time 1409845469.057304, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 364&lt;br /&gt;
Event: time 1409845469.057308, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.057312, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.057315, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.073883, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.073889, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 540&lt;br /&gt;
Event: time 1409845469.073893, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 364&lt;br /&gt;
Event: time 1409845469.073897, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.073901, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.073905, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.089886, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.089892, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 496&lt;br /&gt;
Event: time 1409845469.089896, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 364&lt;br /&gt;
Event: time 1409845469.089900, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.089904, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.089908, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.105335, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.105340, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 450&lt;br /&gt;
Event: time 1409845469.105344, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 364&lt;br /&gt;
Event: time 1409845469.105349, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.105353, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.105356, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.121183, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.121188, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 404&lt;br /&gt;
Event: time 1409845469.121192, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845469.121197, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.121201, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.121204, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.136794, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.136799, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 360&lt;br /&gt;
Event: time 1409845469.136803, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845469.136808, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.136812, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.136815, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.152605, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.152611, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 312&lt;br /&gt;
Event: time 1409845469.152615, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845469.152619, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.152623, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.152626, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.169594, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.169599, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 270&lt;br /&gt;
Event: time 1409845469.169604, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 366&lt;br /&gt;
Event: time 1409845469.169608, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.169612, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.169615, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.185263, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.185268, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 236&lt;br /&gt;
Event: time 1409845469.185273, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 373&lt;br /&gt;
Event: time 1409845469.185277, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.185281, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.185284, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.200843, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.200848, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 207&lt;br /&gt;
Event: time 1409845469.200853, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 376&lt;br /&gt;
Event: time 1409845469.200857, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.200861, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.200864, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.216857, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.216863, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 207&lt;br /&gt;
Event: time 1409845469.216867, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 376&lt;br /&gt;
Event: time 1409845469.216871, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.216875, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.216878, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845469.230419, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845469.230423, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.230426, -------------- SYN_REPORT ------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Running xinput ===&lt;br /&gt;
&lt;br /&gt;
	xinput --list&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
â¡ Virtual core pointer                         id=2    [master pointer  (3)]&lt;br /&gt;
â   â³ Virtual core XTEST pointer               id=4    [slave  pointer  (2)]&lt;br /&gt;
â   â³ mytouchscreen                            id=6    [slave  pointer  (2)]&lt;br /&gt;
â£ Virtual core keyboard                        id=3    [master keyboard (2)]&lt;br /&gt;
    â³ Virtual core XTEST keyboard              id=5    [slave  keyboard (3)]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== xinput log ====&lt;br /&gt;
&lt;br /&gt;
	xinput test 6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
motion a[0]=53 a[1]=58 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=53 a[1]=58 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=53 a[1]=58 &lt;br /&gt;
motion a[0]=513 a[1]=91 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=513 a[1]=91 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=513 a[1]=91 &lt;br /&gt;
motion a[0]=659 a[1]=436 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=659 a[1]=436 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=659 a[1]=436 &lt;br /&gt;
motion a[0]=624 a[1]=152 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=624 a[1]=152 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
motion a[0]=577 a[1]=174 &lt;br /&gt;
motion a[0]=501 a[1]=203 &lt;br /&gt;
motion a[0]=457 a[1]=219 &lt;br /&gt;
motion a[0]=411 a[1]=232 &lt;br /&gt;
motion a[0]=371 a[1]=240 &lt;br /&gt;
motion a[0]=341 a[1]=245 &lt;br /&gt;
button release 1 a[0]=341 a[1]=245 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</description>
			<pubDate>Sat, 06 Sep 2014 09:41:11 GMT</pubDate>
			<dc:creator>Gv</dc:creator>
			<comments>https://www.slackwiki.com/Talk:SlackwareOnMt6582Tablet</comments>
		</item>
		<item>
			<title>SlackwareOnMt6582Tablet</title>
			<link>https://www.slackwiki.com/index.php?title=SlackwareOnMt6582Tablet&amp;diff=933</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=SlackwareOnMt6582Tablet&amp;diff=933</guid>
			<description>&lt;p&gt;Gv: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Specifications of the Tablet PC which was used here ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Processor : Arm Cortex A7, 1.3 GHz dual core.&lt;br /&gt;
             : ARMv7 Processor rev 3 (v7l),&lt;br /&gt;
   Hardware  : MT8312&lt;br /&gt;
   SOC       : mt6582.&lt;br /&gt;
   Memory    : 512MB RAM&lt;br /&gt;
   Storage   : 4GB Built in storage.&lt;br /&gt;
   Micro SD  : Slot for upto 32GB&lt;br /&gt;
   Display   : 7&amp;quot; WVGA 800x480&lt;br /&gt;
   OS        : Android 4.2 Jelly Bean&lt;br /&gt;
   GPU       : Mali?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://s7.postimg.org/fww1ibfdn/image.png Screenshot] of X windows with fluxbox and wbar. [http://s7.postimg.org/fww1ibfdn/image.png another one].&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== Rooting the Tablet PC ==&lt;br /&gt;
&lt;br /&gt;
I used [http://www.techverse.net/fastest-root-android-phone-computer/ Framaroot-1.9.3.apk] to root the device. &lt;br /&gt;
&lt;br /&gt;
== Installing Linux - Slackware 14.1 - sort of. ==&lt;br /&gt;
&lt;br /&gt;
With the problem of not having kernel source for the SOC, and no no bootloader unlock possible yet, next best option was to use a chroot environment.&lt;br /&gt;
&lt;br /&gt;
So far, command line mode works fine. Here is the description of how Slackware was installed on to external micro SD Card. Was able to do some basic tests on the frame buffer display. Since there is no VTs available was not able to test Xorg, though could get Mali module compiled and loaded. More details below.&lt;br /&gt;
&lt;br /&gt;
=== Preparing SD Card on host computer ===&lt;br /&gt;
&lt;br /&gt;
Use fdisk to create one or two partitions, one for ext4 and other ( optional ) swap partition. Once these are created, assuming the device on host is /dev/sdc,&lt;br /&gt;
&lt;br /&gt;
    mkfs.ext4 /dev/sdc1&lt;br /&gt;
    sync&lt;br /&gt;
    eject sdc&lt;br /&gt;
    eject -t sdc&lt;br /&gt;
    mkdir slack&lt;br /&gt;
    mount /dev/sdc1 slack&lt;br /&gt;
    cd slack&lt;br /&gt;
    mkdir sl&lt;br /&gt;
    cd sl&lt;br /&gt;
&lt;br /&gt;
If you don't have Slackware installation files, [http://arm.slackware.com/getslack/ Get Slackware Arm] first. &lt;br /&gt;
&lt;br /&gt;
    mkdir slackware14.1&lt;br /&gt;
    cd slackware14.1&lt;br /&gt;
    (cd /path..to../slackware14.1 ; tar cfz - *) | (tar xfz - )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://sourceforge.net/projects/slackwareonapc8750/files/initrd-kirkwood.cpio.gz/download initrd-kirkwood.cpio] contains the setup program, but since I couldn't boot with custom initrd, sdc1 /sl area is prepared to have the installation files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    cpio -id &amp;lt; initrd-kirkwood.cpio&lt;br /&gt;
    sync&lt;br /&gt;
    umount slack&lt;br /&gt;
&lt;br /&gt;
Now that the sd card is ready for installation:&lt;br /&gt;
&lt;br /&gt;
    eject sdc&lt;br /&gt;
	&lt;br /&gt;
and plug it into the device. Once that is done,&lt;br /&gt;
&lt;br /&gt;
=== Getting installer ready ===&lt;br /&gt;
&lt;br /&gt;
Now plug the card in tablet pc, boot, from host computer,&lt;br /&gt;
&lt;br /&gt;
==== starting a adb shell with su ====&lt;br /&gt;
&lt;br /&gt;
    adb shell&lt;br /&gt;
    su&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== chroot to installe ====&lt;br /&gt;
&lt;br /&gt;
    cd /data/local/tmp&lt;br /&gt;
    mkdir slackware&lt;br /&gt;
    mount /dev/block/mmcblk1p1 slackware&lt;br /&gt;
    cd slackware/sl&lt;br /&gt;
    export PATH=/data/local/tmp/bin:$PATH&lt;br /&gt;
    mountpoint proc || mount -t proc none proc/&lt;br /&gt;
    mountpoint sys || mount -t sysfs sys sys/&lt;br /&gt;
    mountpoint dev || mount -o bind  /dev dev/&lt;br /&gt;
    export PATH=/usr/bin:/bin:/usr/lib/setup:$PATH&lt;br /&gt;
    pushd /dev&lt;br /&gt;
    ln -s /dev/block/mmc1blk* .&lt;br /&gt;
    popd&lt;br /&gt;
    chroot . /bin/bash&lt;br /&gt;
    mount -t ext4 /dev/mmcblk1p1 mnt&lt;br /&gt;
&lt;br /&gt;
=== Running setup ===&lt;br /&gt;
&lt;br /&gt;
Install Slackware onto mmcblk1p1, from pre mounted directory, sdc1 : /slackware14.1/slackware&lt;br /&gt;
&lt;br /&gt;
    setup&lt;br /&gt;
        Proceed and select /dev/mmcblk1p1 as target, no format&lt;br /&gt;
        For source, select pre mounted directory option, /slackware14.1/slackware&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
=== Complete installation, and configuration ===&lt;br /&gt;
&lt;br /&gt;
Once the complete installation is done,&lt;br /&gt;
&lt;br /&gt;
    umount proc&lt;br /&gt;
    umount sys&lt;br /&gt;
    umount dev&lt;br /&gt;
    sync&lt;br /&gt;
    cd ../..&lt;br /&gt;
    umount slackware&lt;br /&gt;
&lt;br /&gt;
== Getting into installed Slackware: ==&lt;br /&gt;
&lt;br /&gt;
==== Running slackware su shell ====&lt;br /&gt;
&lt;br /&gt;
    adb shell&lt;br /&gt;
    su&lt;br /&gt;
    mount /dev/block/mmcblk1p1 slackware&lt;br /&gt;
    cd slackware&lt;br /&gt;
    mountpoint proc || mount -t proc none proc/&lt;br /&gt;
    mountpoint sys || mount -t sysfs sys sys/&lt;br /&gt;
    mountpoint dev || mount -o bind  /dev dev/&lt;br /&gt;
    test -d system || mkdir system&lt;br /&gt;
    mountpoint system || mount -o bind /system system&lt;br /&gt;
    export PATH=/usr/bin:/bin:/usr/lib/setup:$PATH&lt;br /&gt;
    chroot . /bin/su -	&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From here you can do &amp;quot;normal&amp;quot; Slackware activities, sort of. Main things that were lacking in my case were VTs (ttys). Compiling programs and running programs. I ran couple of frame buffer tests too. Fortunately, removing the VT requirement from Xorg was pretty simple. Here is how it was done.&lt;br /&gt;
		&lt;br /&gt;
&lt;br /&gt;
== Getting Xorg up and running - kind of ==&lt;br /&gt;
&lt;br /&gt;
=== Getting Xorg compiled ===&lt;br /&gt;
&lt;br /&gt;
Ecept for Pointer ( touchscreen ) failure, Xorg seems to be working fine. evtest, xinput tests are showing touchscreen activity, but the cursor seems to be not&lt;br /&gt;
moving. But if a window like xvkbd or xterm or so is launched, you can move the window using the touch screen!. And kvkbd input also works. &lt;br /&gt;
&lt;br /&gt;
Download [http://www.x.org/releases/X11R7.7/src/everything/xorg-server-1.12.2.tar.bz2  xorg-server-1.12.2], &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	tar xf xorg-server-1.12.2.tar.bz2&lt;br /&gt;
&lt;br /&gt;
Also make changes to xorg-server-1.12.2/hw/xfree86/os-support/linux/lnx\_init.c so that VT / console related code is disabled. See the patch section.&lt;br /&gt;
&lt;br /&gt;
	cd xorg-server-1.12.2&lt;br /&gt;
	export PKG_CONFIG_PATH=/opt/local/sw/share/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
	export PKG_CONFIG_PATH=/opt/local/sw/lib/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
	export LD_LIBRARY_PATH=/opt/local/sw/lib:$LD_LIBRARY_PATH&lt;br /&gt;
	export PATH=/opt/local/sw/bin:$PATH&lt;br /&gt;
	./configure --prefix=/opt/local/sw --enable-kdrive --enable-kdrive-evdev --with-xkb-path=/opt/local/sw/share/X11/xkb --with-xkb-output=/var/lib/xkb --with-xkb-bin-directory=/opt/local/sw/bin --with-default-xkb-rules=xorg --with-default-xkb-model=pc104 --with-default-xkb-layout=us  --disable-xnest --disable-dmx --disable-xquartz --disable-xwin --disable-xephyr --disable-config-udev --enable-tslib --disable-docs  --disable-devel-docs LDFLAGS=-L/opt/local/sw/lib CFLAGS=-I/opt/local/sw/include&lt;br /&gt;
make -j 3&lt;br /&gt;
&lt;br /&gt;
If all required packages are not on the system, compilation will fail. Download each of the requiered packags , untar, configure and install.&lt;br /&gt;
&lt;br /&gt;
	./configure --prefix=/opt/local/sw&lt;br /&gt;
	make -j 3 install&lt;br /&gt;
&lt;br /&gt;
Once xorg-server-1.12.2 compilation is succesfull, &lt;br /&gt;
	make install&lt;br /&gt;
	&lt;br /&gt;
=== Compiling additional drivers required ===&lt;br /&gt;
&lt;br /&gt;
==== fbdev ====&lt;br /&gt;
&lt;br /&gt;
xf86-video-fbdev-0.4.2&lt;br /&gt;
export PKG_CONFIG_PATH=/opt/local/sw/lib/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
./configure --prefix=/opt/local/sw&lt;br /&gt;
&lt;br /&gt;
src/fbdev.c xf86-video-fbdev-0.4.2/src/fbdev.c&lt;br /&gt;
// #include &amp;quot;mibstore.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
make -j 3&lt;br /&gt;
make install&lt;br /&gt;
&lt;br /&gt;
==== evdev ====&lt;br /&gt;
&lt;br /&gt;
    xf86-input-evdev-2.7.0&lt;br /&gt;
    ./configure --prefix=/opt/local/sw&lt;br /&gt;
&lt;br /&gt;
    src/Makefile:&lt;br /&gt;
    evdev_drv_la_LIBADD = $(MTDEV_LIBS) $(UDEV_LIBS)&lt;br /&gt;
    ( if not done, causes evdev_drv.so: undefined symbol: udev_new when Xorg is ran)&lt;br /&gt;
&lt;br /&gt;
    make -j 3 &lt;br /&gt;
    make install&lt;br /&gt;
&lt;br /&gt;
Once installed make an xorg.conf [ see xorg.conf section ] in /etc/X11/&lt;br /&gt;
and run startx as described below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Running X ===&lt;br /&gt;
&lt;br /&gt;
make sure display is on,&lt;br /&gt;
From slackware chroot environment in adb shell [ see section ]:&lt;br /&gt;
&lt;br /&gt;
    /system/bin/stop&lt;br /&gt;
    startx -- /opt/local/sw/bin/Xorg -pointer mytouchscreen :0&lt;br /&gt;
  &lt;br /&gt;
    Try disown / nohup to keep X running when disconnected from PC.&lt;br /&gt;
&lt;br /&gt;
Once Finished,&lt;br /&gt;
&lt;br /&gt;
run: &lt;br /&gt;
&lt;br /&gt;
    /system/bin/start&lt;br /&gt;
&lt;br /&gt;
Or touch the &amp;quot;back to android&amp;quot; icon on wbar. to return to Android.&lt;br /&gt;
&lt;br /&gt;
=== Virtual Keyboard ===&lt;br /&gt;
&lt;br /&gt;
==== http://homepage3.nifty.com/tsato/xvkbd/ ====&lt;br /&gt;
&lt;br /&gt;
Download [http://homepage3.nifty.com/tsato/xvkbd/xvkbd-3.5.tar.gz xvkbd-3.5.tar.gz], install&lt;br /&gt;
    xmkf&lt;br /&gt;
    make &lt;br /&gt;
    make install&lt;br /&gt;
&lt;br /&gt;
and run: &lt;br /&gt;
&lt;br /&gt;
    xvkbd&lt;br /&gt;
&lt;br /&gt;
=== An application launcher ===&lt;br /&gt;
==== wbar ====&lt;br /&gt;
Download [https://github.com/warlockcc/wbar wbar] from [https://code.google.com/p/wbar/downloads/detail?name=wbar-2.3.4.tgz&amp;amp;can=2&amp;amp;q= wbar-2.3.4.tgz] at [https://code.google.com/p/wbar/downloads/list wbar downloads at code.google.com]&lt;br /&gt;
&lt;br /&gt;
==== .wbar ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
i: /opt/local/sw/share/pixmaps/wbar/dock.png&lt;br /&gt;
c: wbar --bpress --above-desk --hbar --pos bottom --isize 48 --idist 5 --nanim 4 --f&lt;br /&gt;
alfa 65&lt;br /&gt;
t: /10&lt;br /&gt;
&lt;br /&gt;
i: /opt/local/sw/share/pixmaps/wbar/wbar.png&lt;br /&gt;
c: wbar-config&lt;br /&gt;
t: Config&lt;br /&gt;
&lt;br /&gt;
i: /opt/local/sw/share/icons/wm-icons/32x32-gant/terminal.png&lt;br /&gt;
c: xterm&lt;br /&gt;
t: Xterm&lt;br /&gt;
&lt;br /&gt;
i: /opt/local/sw/share/icons/wm-icons/32x32-gant/keyboard.png&lt;br /&gt;
c: xvkbd -compact -no-repeat -geometry 800x200&lt;br /&gt;
t: Xvkbd&lt;br /&gt;
&lt;br /&gt;
i: /opt/local/sw/share/icons/wm-icons/32x32-gant/calculator.png&lt;br /&gt;
c: xcalc&lt;br /&gt;
t: XCalc&lt;br /&gt;
&lt;br /&gt;
i: /opt/local/sw/share/icons/wm-icons/32x32-gant/restart.png&lt;br /&gt;
c: /system/bin/start&lt;br /&gt;
t: Backto Android&lt;br /&gt;
&lt;br /&gt;
i: /opt/local/sw/share/icons/wm-icons/32x32-gant/window-close.png&lt;br /&gt;
c: xkill&lt;br /&gt;
t: XKill&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Files ===&lt;br /&gt;
==== xorg.conf ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Section &amp;quot;ServerLayout&amp;quot;&lt;br /&gt;
Identifier	&amp;quot;myLaout&amp;quot;&lt;br /&gt;
Screen		&amp;quot;myScreen&amp;quot;&lt;br /&gt;
# InputDevice     &amp;quot;mymouse&amp;quot;&lt;br /&gt;
InputDevice	&amp;quot;mytouchscreen&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;Screen&amp;quot;&lt;br /&gt;
Identifier	&amp;quot;myScreen&amp;quot;&lt;br /&gt;
Device		&amp;quot;myfbdev&amp;quot;&lt;br /&gt;
DefaultDepth 	24&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;Device&amp;quot;&lt;br /&gt;
Identifier	&amp;quot;myFbdev&amp;quot;&lt;br /&gt;
Driver		&amp;quot;fbdev&amp;quot;&lt;br /&gt;
Option		&amp;quot;fbdev&amp;quot; &amp;quot;/dev/graphics/fb0&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;InputDevice&amp;quot;&lt;br /&gt;
 Identifier	&amp;quot;mytouchscreen&amp;quot;&lt;br /&gt;
 Driver		&amp;quot;evdev&amp;quot;&lt;br /&gt;
 # Driver 	&amp;quot;synaptics&amp;quot;&lt;br /&gt;
 Option		&amp;quot;Device&amp;quot; &amp;quot;/dev/input/event3&amp;quot;&lt;br /&gt;
 # Option	&amp;quot;Protocol&amp;quot; &amp;quot;Auto&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== lnx_init.c patch ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--- xorg-server-1.12.2/hw/xfree86/os-support/linux/lnx_init.c	2014-09-04 22:53:13.450000054 +0530&lt;br /&gt;
+++ xorg-server-1.12.2.org/hw/xfree86/os-support/linux/lnx_init.c	2012-05-17 22:39:03.000000000 +0530&lt;br /&gt;
@@ -48,18 +48,15 @@&lt;br /&gt;
 static void&lt;br /&gt;
 drain_console(int fd, void *closure)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     errno = 0;&lt;br /&gt;
     if (tcflush(fd, TCIOFLUSH) == -1 &amp;amp;&amp;amp; errno == EIO) {&lt;br /&gt;
         xf86SetConsoleHandler(NULL, NULL);&lt;br /&gt;
     }&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 static void&lt;br /&gt;
 switch_to(int vt, const char *from)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     int ret;&lt;br /&gt;
 &lt;br /&gt;
     SYSCALL(ret = ioctl(xf86Info.consoleFd, VT_ACTIVATE, vt));&lt;br /&gt;
@@ -69,13 +66,11 @@&lt;br /&gt;
     SYSCALL(ret = ioctl(xf86Info.consoleFd, VT_WAITACTIVE, vt));&lt;br /&gt;
     if (ret &amp;lt; 0)&lt;br /&gt;
         FatalError(&amp;quot;%s: VT_WAITACTIVE failed: %s\n&amp;quot;, from, strerror(errno));&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void&lt;br /&gt;
 xf86OpenConsole(void)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     int i, fd = -1, ret;&lt;br /&gt;
     struct vt_mode VT;&lt;br /&gt;
     struct vt_stat vts;&lt;br /&gt;
@@ -254,13 +249,11 @@&lt;br /&gt;
             switch_to(xf86Info.vtno, &amp;quot;xf86OpenConsole&amp;quot;);&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void&lt;br /&gt;
 xf86CloseConsole(void)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     struct vt_mode VT;&lt;br /&gt;
     int ret;&lt;br /&gt;
 &lt;br /&gt;
@@ -307,7 +300,6 @@&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
     close(xf86Info.consoleFd);  /* make the vt-manager happy */&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Running some tests ==&lt;br /&gt;
&lt;br /&gt;
=== Testing the framebuffer ===		&lt;br /&gt;
&lt;br /&gt;
For these tests, I stopped android &amp;quot;SurfaceFlinger&amp;quot; and freed up /dev/graphics/fb0. by running &amp;quot;stop&amp;quot;&lt;br /&gt;
command. Before running stop, make sure that the display is on ( not blank ). For these tests, I had&lt;br /&gt;
two terminals up on the host PC with one of them running just adb shell with su, and other running&lt;br /&gt;
chrooted slackware shell. SurfaceFlinger was stopped from su shell, and tests from Slackware shell.&lt;br /&gt;
&lt;br /&gt;
Please not Slackware shell is also running as user root.&lt;br /&gt;
&lt;br /&gt;
==== Stopping android - sort of ====&lt;br /&gt;
&lt;br /&gt;
Here is how to stop the SurfaceFlinger and get framebuffer free:&lt;br /&gt;
&lt;br /&gt;
    adb shell&lt;br /&gt;
    su&lt;br /&gt;
    stop&lt;br /&gt;
&lt;br /&gt;
Now the display goes blank, with backlight on.&lt;br /&gt;
&lt;br /&gt;
Get one of these tests.&lt;br /&gt;
[https://gist.githubusercontent.com/rafalrusin/1482697/raw/32c6c0d79b870ffb618aa7b7c664736ca5e150fe/fbtest.c  fbtest] or &lt;br /&gt;
[http://stackoverflow.com/questions/4996777/paint-pixels-to-screen-via-linux-framebuffer Paint-pixels-to-screen-  via-linux-framebuffer] or &lt;br /&gt;
[http://cep.xray.aps.anl.gov/software/qt4-x11-4.2.2/qtopiacore-testingframebuffer.html qtopiacore-testingframebuffer] All these tests worked on the Tablet. Transfer the tests to tablet using adb push&lt;br /&gt;
command.&lt;br /&gt;
&lt;br /&gt;
from Slackware shell, running under adb shell:&lt;br /&gt;
&lt;br /&gt;
    gcc fbtest.c&lt;br /&gt;
    ./a.out&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
once done, go back to android su shell from adb, and:&lt;br /&gt;
&lt;br /&gt;
==== Getting back to android ====&lt;br /&gt;
  &lt;br /&gt;
    start&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
After few seconds android display will be back on. &lt;br /&gt;
&lt;br /&gt;
=== Running evtest ===&lt;br /&gt;
&lt;br /&gt;
Download [http://cgit.freedesktop.org/~whot/evtest/tree/evtest.c evtest.c].&lt;br /&gt;
&lt;br /&gt;
   gcc -o gcc -o evtest evtest.c&lt;br /&gt;
   ./evtest&lt;br /&gt;
   see evtest.log for sample outpu&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== evtest.log ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
No device specified, trying to scan all of /dev/input/event*&lt;br /&gt;
Available devices:&lt;br /&gt;
/dev/input/event0:	mtk-kpd&lt;br /&gt;
/dev/input/event1:	ACCDET&lt;br /&gt;
/dev/input/event2:	hwmdata&lt;br /&gt;
/dev/input/event3:	mtk-tpd&lt;br /&gt;
Select the device event number [0-3]: Input driver version is 1.0.1&lt;br /&gt;
Input device ID: bus 0x0 vendor 0x0 product 0x0 version 0x0&lt;br /&gt;
Input device name: &amp;quot;mtk-tpd&amp;quot;&lt;br /&gt;
Supported events:&lt;br /&gt;
  Event type 0 (EV_SYN)&lt;br /&gt;
  Event type 1 (EV_KEY)&lt;br /&gt;
    Event code 330 (BTN_TOUCH)&lt;br /&gt;
  Event type 3 (EV_ABS)&lt;br /&gt;
    Event code 0 (ABS_X)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      800&lt;br /&gt;
      Resolution     800&lt;br /&gt;
    Event code 1 (ABS_Y)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      480&lt;br /&gt;
      Resolution     480&lt;br /&gt;
    Event code 24 (ABS_PRESSURE)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      255&lt;br /&gt;
    Event code 48 (ABS_MT_TOUCH_MAJOR)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      100&lt;br /&gt;
    Event code 49 (ABS_MT_TOUCH_MINOR)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      100&lt;br /&gt;
    Event code 53 (ABS_MT_POSITION_X)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      800&lt;br /&gt;
    Event code 54 (ABS_MT_POSITION_Y)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      480&lt;br /&gt;
    Event code 57 (ABS_MT_TRACKING_ID)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max        0&lt;br /&gt;
Properties:&lt;br /&gt;
  Property type 1 (INPUT_PROP_DIRECT)&lt;br /&gt;
Testing ... (interrupt to exit)&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845467.116675, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845467.116682, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.116687, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.116691, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.116695, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.116699, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.116703, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.133145, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.133151, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.133155, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.133160, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.133164, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.133167, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.148724, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.148730, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.148734, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.148738, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.148742, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.148745, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.164975, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.164981, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.164985, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.164989, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.164994, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.164997, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.180722, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.180727, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.180731, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.180736, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.180740, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.180743, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.196495, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.196501, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.196505, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.196510, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.196514, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.196517, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.211803, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.211809, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.211813, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.211818, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.211822, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.211825, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845467.225500, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845467.225504, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.225507, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845467.466531, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845467.466536, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.466540, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.466545, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.466549, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.466553, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.466556, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.482028, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.482033, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.482038, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.482042, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.482046, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.482049, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.497971, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.497977, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.497981, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.497986, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.497990, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.497993, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.514030, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.514036, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.514040, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.514044, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.514048, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.514051, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.530188, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.530194, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.530198, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.530202, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.530206, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.530210, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.545804, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.545809, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.545813, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.545818, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.545822, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.545825, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845467.559686, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845467.559690, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.559693, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845467.880062, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845467.880067, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.880072, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 678&lt;br /&gt;
Event: time 1409845467.880076, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 130&lt;br /&gt;
Event: time 1409845467.880080, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.880084, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.880088, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.895834, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.895839, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 678&lt;br /&gt;
Event: time 1409845467.895844, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 130&lt;br /&gt;
Event: time 1409845467.895848, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.895852, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.895855, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.911757, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.911762, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 678&lt;br /&gt;
Event: time 1409845467.911767, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 130&lt;br /&gt;
Event: time 1409845467.911771, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.911775, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.911778, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.927833, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.927838, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 680&lt;br /&gt;
Event: time 1409845467.927842, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 129&lt;br /&gt;
Event: time 1409845467.927847, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.927851, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.927854, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.944420, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.944426, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845467.944430, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 129&lt;br /&gt;
Event: time 1409845467.944434, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.944438, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.944442, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.959239, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.959244, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 683&lt;br /&gt;
Event: time 1409845467.959249, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 129&lt;br /&gt;
Event: time 1409845467.959253, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.959257, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.959260, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.974974, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.974980, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 685&lt;br /&gt;
Event: time 1409845467.974984, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 129&lt;br /&gt;
Event: time 1409845467.974988, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.974992, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.974996, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845467.989318, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845467.989321, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.989324, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845468.246567, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845468.246571, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.246576, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 659&lt;br /&gt;
Event: time 1409845468.246580, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 419&lt;br /&gt;
Event: time 1409845468.246584, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.246589, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.246592, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.262652, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.262657, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 659&lt;br /&gt;
Event: time 1409845468.262662, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 419&lt;br /&gt;
Event: time 1409845468.262666, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.262670, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.262673, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.278454, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.278460, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 659&lt;br /&gt;
Event: time 1409845468.278464, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 419&lt;br /&gt;
Event: time 1409845468.278468, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.278473, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.278476, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.293932, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.293938, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 653&lt;br /&gt;
Event: time 1409845468.293942, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 419&lt;br /&gt;
Event: time 1409845468.293946, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.293950, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.293953, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.309429, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.309434, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 639&lt;br /&gt;
Event: time 1409845468.309438, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 416&lt;br /&gt;
Event: time 1409845468.309443, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.309447, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.309450, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845468.323482, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845468.323486, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.323489, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845468.596393, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845468.596397, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.596402, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 226&lt;br /&gt;
Event: time 1409845468.596406, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 302&lt;br /&gt;
Event: time 1409845468.596410, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.596414, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.596417, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.612126, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.612132, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 226&lt;br /&gt;
Event: time 1409845468.612136, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 302&lt;br /&gt;
Event: time 1409845468.612140, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.612144, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.612147, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.628256, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.628262, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 226&lt;br /&gt;
Event: time 1409845468.628266, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 302&lt;br /&gt;
Event: time 1409845468.628271, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.628275, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.628278, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.644136, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.644142, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 226&lt;br /&gt;
Event: time 1409845468.644146, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 302&lt;br /&gt;
Event: time 1409845468.644151, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.644155, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.644158, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.659867, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.659873, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 226&lt;br /&gt;
Event: time 1409845468.659877, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 302&lt;br /&gt;
Event: time 1409845468.659882, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.659886, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.659889, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845468.673538, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845468.673541, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.673544, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845468.946001, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845468.946005, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.946010, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845468.946014, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845468.946018, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.946022, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.946025, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.962071, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.962077, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845468.962081, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845468.962085, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.962089, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.962093, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.977741, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.977747, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845468.977751, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845468.977755, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.977759, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.977762, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.993678, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.993684, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845468.993688, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845468.993692, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.993696, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.993700, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.010083, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.010089, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845469.010093, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845469.010097, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.010101, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.010104, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.026187, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.026193, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 665&lt;br /&gt;
Event: time 1409845469.026197, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 357&lt;br /&gt;
Event: time 1409845469.026201, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.026205, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.026209, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.041432, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.041437, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 640&lt;br /&gt;
Event: time 1409845469.041442, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 357&lt;br /&gt;
Event: time 1409845469.041446, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.041450, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.041453, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.057294, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.057299, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 581&lt;br /&gt;
Event: time 1409845469.057304, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 364&lt;br /&gt;
Event: time 1409845469.057308, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.057312, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.057315, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.073883, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.073889, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 540&lt;br /&gt;
Event: time 1409845469.073893, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 364&lt;br /&gt;
Event: time 1409845469.073897, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.073901, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.073905, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.089886, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.089892, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 496&lt;br /&gt;
Event: time 1409845469.089896, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 364&lt;br /&gt;
Event: time 1409845469.089900, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.089904, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.089908, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.105335, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.105340, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 450&lt;br /&gt;
Event: time 1409845469.105344, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 364&lt;br /&gt;
Event: time 1409845469.105349, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.105353, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.105356, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.121183, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.121188, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 404&lt;br /&gt;
Event: time 1409845469.121192, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845469.121197, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.121201, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.121204, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.136794, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.136799, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 360&lt;br /&gt;
Event: time 1409845469.136803, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845469.136808, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.136812, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.136815, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.152605, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.152611, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 312&lt;br /&gt;
Event: time 1409845469.152615, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845469.152619, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.152623, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.152626, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.169594, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.169599, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 270&lt;br /&gt;
Event: time 1409845469.169604, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 366&lt;br /&gt;
Event: time 1409845469.169608, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.169612, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.169615, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.185263, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.185268, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 236&lt;br /&gt;
Event: time 1409845469.185273, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 373&lt;br /&gt;
Event: time 1409845469.185277, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.185281, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.185284, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.200843, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.200848, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 207&lt;br /&gt;
Event: time 1409845469.200853, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 376&lt;br /&gt;
Event: time 1409845469.200857, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.200861, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.200864, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.216857, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.216863, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 207&lt;br /&gt;
Event: time 1409845469.216867, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 376&lt;br /&gt;
Event: time 1409845469.216871, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.216875, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.216878, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845469.230419, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845469.230423, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.230426, -------------- SYN_REPORT ------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Running xinput ===&lt;br /&gt;
&lt;br /&gt;
	xinput --list&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
â¡ Virtual core pointer                         id=2    [master pointer  (3)]&lt;br /&gt;
â   â³ Virtual core XTEST pointer               id=4    [slave  pointer  (2)]&lt;br /&gt;
â   â³ mytouchscreen                            id=6    [slave  pointer  (2)]&lt;br /&gt;
â£ Virtual core keyboard                        id=3    [master keyboard (2)]&lt;br /&gt;
    â³ Virtual core XTEST keyboard              id=5    [slave  keyboard (3)]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== xinput log ====&lt;br /&gt;
&lt;br /&gt;
	xinput test 6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
motion a[0]=53 a[1]=58 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=53 a[1]=58 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=53 a[1]=58 &lt;br /&gt;
motion a[0]=513 a[1]=91 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=513 a[1]=91 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=513 a[1]=91 &lt;br /&gt;
motion a[0]=659 a[1]=436 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=659 a[1]=436 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=659 a[1]=436 &lt;br /&gt;
motion a[0]=624 a[1]=152 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=624 a[1]=152 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
motion a[0]=577 a[1]=174 &lt;br /&gt;
motion a[0]=501 a[1]=203 &lt;br /&gt;
motion a[0]=457 a[1]=219 &lt;br /&gt;
motion a[0]=411 a[1]=232 &lt;br /&gt;
motion a[0]=371 a[1]=240 &lt;br /&gt;
motion a[0]=341 a[1]=245 &lt;br /&gt;
button release 1 a[0]=341 a[1]=245 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</description>
			<pubDate>Sat, 06 Sep 2014 09:36:47 GMT</pubDate>
			<dc:creator>Gv</dc:creator>
			<comments>https://www.slackwiki.com/Talk:SlackwareOnMt6582Tablet</comments>
		</item>
		<item>
			<title>SlackwareOnMt6582Tablet</title>
			<link>https://www.slackwiki.com/index.php?title=SlackwareOnMt6582Tablet&amp;diff=932</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=SlackwareOnMt6582Tablet&amp;diff=932</guid>
			<description>&lt;p&gt;Gv: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Specifications of the Tablet PC which was used here ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Processor : Arm Cortex A7, 1.3 GHz dual core.&lt;br /&gt;
             : ARMv7 Processor rev 3 (v7l),&lt;br /&gt;
   Hardware  : MT8312&lt;br /&gt;
   SOC       : mt6582.&lt;br /&gt;
   Memory    : 512MB RAM&lt;br /&gt;
   Storage   : 4GB Built in storage.&lt;br /&gt;
   Micro SD  : Slot for upto 32GB&lt;br /&gt;
   Display   : 7&amp;quot; WVGA 800x480&lt;br /&gt;
   OS        : Android 4.2 Jelly Bean&lt;br /&gt;
   GPU       : Mali?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://s7.postimg.org/fww1ibfdn/image.png Screenshot] of X windows with fluxbox and wbar. [http://s7.postimg.org/fww1ibfdn/image.png another one].&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== Rooting the Tablet PC ==&lt;br /&gt;
&lt;br /&gt;
I used [http://www.techverse.net/fastest-root-android-phone-computer/ Framaroot-1.9.3.apk] to root the device. &lt;br /&gt;
&lt;br /&gt;
== Installing Linux - Slackware 14.1 - sort of. ==&lt;br /&gt;
&lt;br /&gt;
With the problem of not having kernel source for the SOC, and no no bootloader unlock possible yet, next best option was to use a chroot environment.&lt;br /&gt;
&lt;br /&gt;
So far, command line mode works fine. Here is the description of how Slackware was installed on to external micro SD Card. Was able to do some basic tests on the frame buffer display. Since there is no VTs available was not able to test Xorg, though could get Mali module compiled and loaded. More details below.&lt;br /&gt;
&lt;br /&gt;
=== Preparing SD Card on host computer ===&lt;br /&gt;
&lt;br /&gt;
Use fdisk to create one or two partitions, one for ext4 and other ( optional ) swap partition. Once these are created, assuming the device on host is /dev/sdc,&lt;br /&gt;
&lt;br /&gt;
    mkfs.ext4 /dev/sdc1&lt;br /&gt;
    sync&lt;br /&gt;
    eject sdc&lt;br /&gt;
    eject -t sdc&lt;br /&gt;
    mkdir slack&lt;br /&gt;
    mount /dev/sdc1 slack&lt;br /&gt;
    cd slack&lt;br /&gt;
    mkdir sl&lt;br /&gt;
    cd sl&lt;br /&gt;
&lt;br /&gt;
If you don't have Slackware installation files, [http://arm.slackware.com/getslack/ Get Slackware Arm] first. &lt;br /&gt;
&lt;br /&gt;
    mkdir slackware14.1&lt;br /&gt;
    cd slackware14.1&lt;br /&gt;
    (cd /path..to../slackware14.1 ; tar cfz - *) | (tar xfz - )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://sourceforge.net/projects/slackwareonapc8750/files/initrd-kirkwood.cpio.gz/download initrd-kirkwood.cpio] contains the setup program, but since I couldn't boot with custom initrd, sdc1 /sl area is prepared to have the installation files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    cpio -id &amp;lt; initrd-kirkwood.cpio&lt;br /&gt;
    sync&lt;br /&gt;
    umount slack&lt;br /&gt;
&lt;br /&gt;
Now that the sd card is ready for installation:&lt;br /&gt;
&lt;br /&gt;
    eject sdc&lt;br /&gt;
	&lt;br /&gt;
and plug it into the device. Once that is done,&lt;br /&gt;
&lt;br /&gt;
=== Getting installer ready ===&lt;br /&gt;
&lt;br /&gt;
Now plug the card in tablet pc, boot, from host computer,&lt;br /&gt;
&lt;br /&gt;
==== starting a adb shell with su ====&lt;br /&gt;
&lt;br /&gt;
    adb shell&lt;br /&gt;
    su&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== chroot to installe ====&lt;br /&gt;
&lt;br /&gt;
    cd /data/local/tmp&lt;br /&gt;
    mkdir slackware&lt;br /&gt;
    mount /dev/block/mmcblk1p1 slackware&lt;br /&gt;
    cd slackware/sl&lt;br /&gt;
    export PATH=/data/local/tmp/bin:$PATH&lt;br /&gt;
    mountpoint proc || mount -t proc none proc/&lt;br /&gt;
    mountpoint sys || mount -t sysfs sys sys/&lt;br /&gt;
    mountpoint dev || mount -o bind  /dev dev/&lt;br /&gt;
    export PATH=/usr/bin:/bin:/usr/lib/setup:$PATH&lt;br /&gt;
    pushd /dev&lt;br /&gt;
    ln -s /dev/block/mmc1blk* .&lt;br /&gt;
    popd&lt;br /&gt;
    chroot . /bin/bash&lt;br /&gt;
    mount -t ext4 /dev/mmcblk1p1 mnt&lt;br /&gt;
&lt;br /&gt;
=== Running setup ===&lt;br /&gt;
&lt;br /&gt;
Install Slackware onto mmcblk1p1, from pre mounted directory, sdc1 : /slackware14.1/slackware&lt;br /&gt;
&lt;br /&gt;
    setup&lt;br /&gt;
        Proceed and select /dev/mmcblk1p1 as target, no format&lt;br /&gt;
        For source, select pre mounted directory option, /slackware14.1/slackware&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
=== Complete installation, and configuration ===&lt;br /&gt;
&lt;br /&gt;
Once the complete installation is done,&lt;br /&gt;
&lt;br /&gt;
    umount proc&lt;br /&gt;
    umount sys&lt;br /&gt;
    umount dev&lt;br /&gt;
    sync&lt;br /&gt;
    cd ../..&lt;br /&gt;
    umount slackware&lt;br /&gt;
&lt;br /&gt;
== Getting into installed Slackware: ==&lt;br /&gt;
&lt;br /&gt;
==== Running slackware su shell ====&lt;br /&gt;
&lt;br /&gt;
    adb shell&lt;br /&gt;
    su&lt;br /&gt;
    mount /dev/block/mmcblk1p1 slackware&lt;br /&gt;
    cd slackware&lt;br /&gt;
    mountpoint proc || mount -t proc none proc/&lt;br /&gt;
    mountpoint sys || mount -t sysfs sys sys/&lt;br /&gt;
    mountpoint dev || mount -o bind  /dev dev/&lt;br /&gt;
    test -d system || mkdir system&lt;br /&gt;
    mountpoint system || mount -o bind /system system&lt;br /&gt;
    export PATH=/usr/bin:/bin:/usr/lib/setup:$PATH&lt;br /&gt;
    chroot . /bin/su -	&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From here you can do &amp;quot;normal&amp;quot; Slackware activities, sort of. Main things that were lacking in my case&lt;br /&gt;
were VTs (ttys). Compiling programs and running programs that require no X windows worked fine. I ran&lt;br /&gt;
couple of frame buffer tests too. &lt;br /&gt;
		&lt;br /&gt;
&lt;br /&gt;
== Getting Xorg up and running - kind of ==&lt;br /&gt;
&lt;br /&gt;
=== Getting Xorg compiled ===&lt;br /&gt;
&lt;br /&gt;
Ecept for Pointer ( touchscreen ) failure, Xorg seems to be working fine. evtest, xinput tests are showing touchscreen activity, but the cursor seems to be not&lt;br /&gt;
moving. But if a window like xvkbd or xterm or so is launched, you can move the window using the touch screen!. And kvkbd input also works. &lt;br /&gt;
&lt;br /&gt;
Download [http://www.x.org/releases/X11R7.7/src/everything/xorg-server-1.12.2.tar.bz2  xorg-server-1.12.2], &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	tar xf xorg-server-1.12.2.tar.bz2&lt;br /&gt;
&lt;br /&gt;
Also make changes to xorg-server-1.12.2/hw/xfree86/os-support/linux/lnx\_init.c so that VT / console related code is disabled. See the patch section.&lt;br /&gt;
&lt;br /&gt;
	cd xorg-server-1.12.2&lt;br /&gt;
	export PKG_CONFIG_PATH=/opt/local/sw/share/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
	export PKG_CONFIG_PATH=/opt/local/sw/lib/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
	export LD_LIBRARY_PATH=/opt/local/sw/lib:$LD_LIBRARY_PATH&lt;br /&gt;
	export PATH=/opt/local/sw/bin:$PATH&lt;br /&gt;
	./configure --prefix=/opt/local/sw --enable-kdrive --enable-kdrive-evdev --with-xkb-path=/opt/local/sw/share/X11/xkb --with-xkb-output=/var/lib/xkb --with-xkb-bin-directory=/opt/local/sw/bin --with-default-xkb-rules=xorg --with-default-xkb-model=pc104 --with-default-xkb-layout=us  --disable-xnest --disable-dmx --disable-xquartz --disable-xwin --disable-xephyr --disable-config-udev --enable-tslib --disable-docs  --disable-devel-docs LDFLAGS=-L/opt/local/sw/lib CFLAGS=-I/opt/local/sw/include&lt;br /&gt;
make -j 3&lt;br /&gt;
&lt;br /&gt;
If all required packages are not on the system, compilation will fail. Download each of the requiered packags , untar, configure and install.&lt;br /&gt;
&lt;br /&gt;
	./configure --prefix=/opt/local/sw&lt;br /&gt;
	make -j 3 install&lt;br /&gt;
&lt;br /&gt;
Once xorg-server-1.12.2 compilation is succesfull, &lt;br /&gt;
	make install&lt;br /&gt;
	&lt;br /&gt;
=== Compiling additional drivers required ===&lt;br /&gt;
&lt;br /&gt;
==== fbdev ====&lt;br /&gt;
&lt;br /&gt;
xf86-video-fbdev-0.4.2&lt;br /&gt;
export PKG_CONFIG_PATH=/opt/local/sw/lib/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
./configure --prefix=/opt/local/sw&lt;br /&gt;
&lt;br /&gt;
src/fbdev.c xf86-video-fbdev-0.4.2/src/fbdev.c&lt;br /&gt;
// #include &amp;quot;mibstore.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
make -j 3&lt;br /&gt;
make install&lt;br /&gt;
&lt;br /&gt;
==== evdev ====&lt;br /&gt;
&lt;br /&gt;
    xf86-input-evdev-2.7.0&lt;br /&gt;
    ./configure --prefix=/opt/local/sw&lt;br /&gt;
&lt;br /&gt;
    src/Makefile:&lt;br /&gt;
    evdev_drv_la_LIBADD = $(MTDEV_LIBS) $(UDEV_LIBS)&lt;br /&gt;
    ( if not done, causes evdev_drv.so: undefined symbol: udev_new when Xorg is ran)&lt;br /&gt;
&lt;br /&gt;
    make -j 3 &lt;br /&gt;
    make install&lt;br /&gt;
&lt;br /&gt;
Once installed make an xorg.conf [ see xorg.conf section ] in /etc/X11/&lt;br /&gt;
and run startx as described below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Running X ===&lt;br /&gt;
&lt;br /&gt;
make sure display is on,&lt;br /&gt;
From slackware chroot environment in adb shell [ see section ]:&lt;br /&gt;
&lt;br /&gt;
    /system/bin/stop&lt;br /&gt;
    startx -- /opt/local/sw/bin/Xorg -pointer mytouchscreen :0&lt;br /&gt;
  &lt;br /&gt;
    Try disown / nohup to keep X running when disconnected from PC.&lt;br /&gt;
&lt;br /&gt;
Once Finished,&lt;br /&gt;
&lt;br /&gt;
run: &lt;br /&gt;
&lt;br /&gt;
    /system/bin/start&lt;br /&gt;
&lt;br /&gt;
Or touch the &amp;quot;back to android&amp;quot; icon on wbar. to return to Android.&lt;br /&gt;
&lt;br /&gt;
=== Virtual Keyboard ===&lt;br /&gt;
&lt;br /&gt;
==== http://homepage3.nifty.com/tsato/xvkbd/ ====&lt;br /&gt;
&lt;br /&gt;
Download [http://homepage3.nifty.com/tsato/xvkbd/xvkbd-3.5.tar.gz xvkbd-3.5.tar.gz], install&lt;br /&gt;
    xmkf&lt;br /&gt;
    make &lt;br /&gt;
    make install&lt;br /&gt;
&lt;br /&gt;
and run: &lt;br /&gt;
&lt;br /&gt;
    xvkbd&lt;br /&gt;
&lt;br /&gt;
=== An application launcher ===&lt;br /&gt;
==== wbar ====&lt;br /&gt;
Download [https://github.com/warlockcc/wbar wbar] from [https://code.google.com/p/wbar/downloads/detail?name=wbar-2.3.4.tgz&amp;amp;can=2&amp;amp;q= wbar-2.3.4.tgz] at [https://code.google.com/p/wbar/downloads/list wbar downloads at code.google.com]&lt;br /&gt;
&lt;br /&gt;
==== .wbar ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
i: /opt/local/sw/share/pixmaps/wbar/dock.png&lt;br /&gt;
c: wbar --bpress --above-desk --hbar --pos bottom --isize 48 --idist 5 --nanim 4 --f&lt;br /&gt;
alfa 65&lt;br /&gt;
t: /10&lt;br /&gt;
&lt;br /&gt;
i: /opt/local/sw/share/pixmaps/wbar/wbar.png&lt;br /&gt;
c: wbar-config&lt;br /&gt;
t: Config&lt;br /&gt;
&lt;br /&gt;
i: /opt/local/sw/share/icons/wm-icons/32x32-gant/terminal.png&lt;br /&gt;
c: xterm&lt;br /&gt;
t: Xterm&lt;br /&gt;
&lt;br /&gt;
i: /opt/local/sw/share/icons/wm-icons/32x32-gant/keyboard.png&lt;br /&gt;
c: xvkbd -compact -no-repeat -geometry 800x200&lt;br /&gt;
t: Xvkbd&lt;br /&gt;
&lt;br /&gt;
i: /opt/local/sw/share/icons/wm-icons/32x32-gant/calculator.png&lt;br /&gt;
c: xcalc&lt;br /&gt;
t: XCalc&lt;br /&gt;
&lt;br /&gt;
i: /opt/local/sw/share/icons/wm-icons/32x32-gant/restart.png&lt;br /&gt;
c: /system/bin/start&lt;br /&gt;
t: Backto Android&lt;br /&gt;
&lt;br /&gt;
i: /opt/local/sw/share/icons/wm-icons/32x32-gant/window-close.png&lt;br /&gt;
c: xkill&lt;br /&gt;
t: XKill&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Files ===&lt;br /&gt;
==== xorg.conf ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Section &amp;quot;ServerLayout&amp;quot;&lt;br /&gt;
Identifier	&amp;quot;myLaout&amp;quot;&lt;br /&gt;
Screen		&amp;quot;myScreen&amp;quot;&lt;br /&gt;
# InputDevice     &amp;quot;mymouse&amp;quot;&lt;br /&gt;
InputDevice	&amp;quot;mytouchscreen&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;Screen&amp;quot;&lt;br /&gt;
Identifier	&amp;quot;myScreen&amp;quot;&lt;br /&gt;
Device		&amp;quot;myfbdev&amp;quot;&lt;br /&gt;
DefaultDepth 	24&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;Device&amp;quot;&lt;br /&gt;
Identifier	&amp;quot;myFbdev&amp;quot;&lt;br /&gt;
Driver		&amp;quot;fbdev&amp;quot;&lt;br /&gt;
Option		&amp;quot;fbdev&amp;quot; &amp;quot;/dev/graphics/fb0&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;InputDevice&amp;quot;&lt;br /&gt;
 Identifier	&amp;quot;mytouchscreen&amp;quot;&lt;br /&gt;
 Driver		&amp;quot;evdev&amp;quot;&lt;br /&gt;
 # Driver 	&amp;quot;synaptics&amp;quot;&lt;br /&gt;
 Option		&amp;quot;Device&amp;quot; &amp;quot;/dev/input/event3&amp;quot;&lt;br /&gt;
 # Option	&amp;quot;Protocol&amp;quot; &amp;quot;Auto&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== lnx_init.c patch ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--- xorg-server-1.12.2/hw/xfree86/os-support/linux/lnx_init.c	2014-09-04 22:53:13.450000054 +0530&lt;br /&gt;
+++ xorg-server-1.12.2.org/hw/xfree86/os-support/linux/lnx_init.c	2012-05-17 22:39:03.000000000 +0530&lt;br /&gt;
@@ -48,18 +48,15 @@&lt;br /&gt;
 static void&lt;br /&gt;
 drain_console(int fd, void *closure)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     errno = 0;&lt;br /&gt;
     if (tcflush(fd, TCIOFLUSH) == -1 &amp;amp;&amp;amp; errno == EIO) {&lt;br /&gt;
         xf86SetConsoleHandler(NULL, NULL);&lt;br /&gt;
     }&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 static void&lt;br /&gt;
 switch_to(int vt, const char *from)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     int ret;&lt;br /&gt;
 &lt;br /&gt;
     SYSCALL(ret = ioctl(xf86Info.consoleFd, VT_ACTIVATE, vt));&lt;br /&gt;
@@ -69,13 +66,11 @@&lt;br /&gt;
     SYSCALL(ret = ioctl(xf86Info.consoleFd, VT_WAITACTIVE, vt));&lt;br /&gt;
     if (ret &amp;lt; 0)&lt;br /&gt;
         FatalError(&amp;quot;%s: VT_WAITACTIVE failed: %s\n&amp;quot;, from, strerror(errno));&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void&lt;br /&gt;
 xf86OpenConsole(void)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     int i, fd = -1, ret;&lt;br /&gt;
     struct vt_mode VT;&lt;br /&gt;
     struct vt_stat vts;&lt;br /&gt;
@@ -254,13 +249,11 @@&lt;br /&gt;
             switch_to(xf86Info.vtno, &amp;quot;xf86OpenConsole&amp;quot;);&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void&lt;br /&gt;
 xf86CloseConsole(void)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     struct vt_mode VT;&lt;br /&gt;
     int ret;&lt;br /&gt;
 &lt;br /&gt;
@@ -307,7 +300,6 @@&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
     close(xf86Info.consoleFd);  /* make the vt-manager happy */&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Running some tests ==&lt;br /&gt;
&lt;br /&gt;
=== Testing the framebuffer ===		&lt;br /&gt;
&lt;br /&gt;
For these tests, I stopped android &amp;quot;SurfaceFlinger&amp;quot; and freed up /dev/graphics/fb0. by running &amp;quot;stop&amp;quot;&lt;br /&gt;
command. Before running stop, make sure that the display is on ( not blank ). For these tests, I had&lt;br /&gt;
two terminals up on the host PC with one of them running just adb shell with su, and other running&lt;br /&gt;
chrooted slackware shell. SurfaceFlinger was stopped from su shell, and tests from Slackware shell.&lt;br /&gt;
&lt;br /&gt;
Please not Slackware shell is also running as user root.&lt;br /&gt;
&lt;br /&gt;
==== Stopping android - sort of ====&lt;br /&gt;
&lt;br /&gt;
Here is how to stop the SurfaceFlinger and get framebuffer free:&lt;br /&gt;
&lt;br /&gt;
    adb shell&lt;br /&gt;
    su&lt;br /&gt;
    stop&lt;br /&gt;
&lt;br /&gt;
Now the display goes blank, with backlight on.&lt;br /&gt;
&lt;br /&gt;
Get one of these tests.&lt;br /&gt;
[https://gist.githubusercontent.com/rafalrusin/1482697/raw/32c6c0d79b870ffb618aa7b7c664736ca5e150fe/fbtest.c  fbtest] or &lt;br /&gt;
[http://stackoverflow.com/questions/4996777/paint-pixels-to-screen-via-linux-framebuffer Paint-pixels-to-screen-  via-linux-framebuffer] or &lt;br /&gt;
[http://cep.xray.aps.anl.gov/software/qt4-x11-4.2.2/qtopiacore-testingframebuffer.html qtopiacore-testingframebuffer] All these tests worked on the Tablet. Transfer the tests to tablet using adb push&lt;br /&gt;
command.&lt;br /&gt;
&lt;br /&gt;
from Slackware shell, running under adb shell:&lt;br /&gt;
&lt;br /&gt;
    gcc fbtest.c&lt;br /&gt;
    ./a.out&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
once done, go back to android su shell from adb, and:&lt;br /&gt;
&lt;br /&gt;
==== Getting back to android ====&lt;br /&gt;
  &lt;br /&gt;
    start&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
After few seconds android display will be back on. &lt;br /&gt;
&lt;br /&gt;
=== Running evtest ===&lt;br /&gt;
&lt;br /&gt;
Download [http://cgit.freedesktop.org/~whot/evtest/tree/evtest.c evtest.c].&lt;br /&gt;
&lt;br /&gt;
   gcc -o gcc -o evtest evtest.c&lt;br /&gt;
   ./evtest&lt;br /&gt;
   see evtest.log for sample outpu&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== evtest.log ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
No device specified, trying to scan all of /dev/input/event*&lt;br /&gt;
Available devices:&lt;br /&gt;
/dev/input/event0:	mtk-kpd&lt;br /&gt;
/dev/input/event1:	ACCDET&lt;br /&gt;
/dev/input/event2:	hwmdata&lt;br /&gt;
/dev/input/event3:	mtk-tpd&lt;br /&gt;
Select the device event number [0-3]: Input driver version is 1.0.1&lt;br /&gt;
Input device ID: bus 0x0 vendor 0x0 product 0x0 version 0x0&lt;br /&gt;
Input device name: &amp;quot;mtk-tpd&amp;quot;&lt;br /&gt;
Supported events:&lt;br /&gt;
  Event type 0 (EV_SYN)&lt;br /&gt;
  Event type 1 (EV_KEY)&lt;br /&gt;
    Event code 330 (BTN_TOUCH)&lt;br /&gt;
  Event type 3 (EV_ABS)&lt;br /&gt;
    Event code 0 (ABS_X)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      800&lt;br /&gt;
      Resolution     800&lt;br /&gt;
    Event code 1 (ABS_Y)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      480&lt;br /&gt;
      Resolution     480&lt;br /&gt;
    Event code 24 (ABS_PRESSURE)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      255&lt;br /&gt;
    Event code 48 (ABS_MT_TOUCH_MAJOR)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      100&lt;br /&gt;
    Event code 49 (ABS_MT_TOUCH_MINOR)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      100&lt;br /&gt;
    Event code 53 (ABS_MT_POSITION_X)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      800&lt;br /&gt;
    Event code 54 (ABS_MT_POSITION_Y)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      480&lt;br /&gt;
    Event code 57 (ABS_MT_TRACKING_ID)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max        0&lt;br /&gt;
Properties:&lt;br /&gt;
  Property type 1 (INPUT_PROP_DIRECT)&lt;br /&gt;
Testing ... (interrupt to exit)&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845467.116675, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845467.116682, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.116687, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.116691, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.116695, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.116699, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.116703, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.133145, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.133151, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.133155, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.133160, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.133164, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.133167, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.148724, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.148730, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.148734, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.148738, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.148742, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.148745, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.164975, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.164981, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.164985, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.164989, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.164994, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.164997, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.180722, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.180727, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.180731, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.180736, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.180740, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.180743, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.196495, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.196501, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.196505, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.196510, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.196514, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.196517, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.211803, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.211809, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.211813, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.211818, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.211822, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.211825, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845467.225500, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845467.225504, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.225507, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845467.466531, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845467.466536, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.466540, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.466545, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.466549, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.466553, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.466556, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.482028, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.482033, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.482038, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.482042, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.482046, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.482049, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.497971, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.497977, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.497981, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.497986, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.497990, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.497993, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.514030, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.514036, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.514040, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.514044, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.514048, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.514051, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.530188, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.530194, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.530198, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.530202, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.530206, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.530210, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.545804, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.545809, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.545813, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.545818, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.545822, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.545825, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845467.559686, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845467.559690, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.559693, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845467.880062, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845467.880067, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.880072, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 678&lt;br /&gt;
Event: time 1409845467.880076, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 130&lt;br /&gt;
Event: time 1409845467.880080, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.880084, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.880088, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.895834, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.895839, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 678&lt;br /&gt;
Event: time 1409845467.895844, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 130&lt;br /&gt;
Event: time 1409845467.895848, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.895852, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.895855, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.911757, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.911762, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 678&lt;br /&gt;
Event: time 1409845467.911767, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 130&lt;br /&gt;
Event: time 1409845467.911771, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.911775, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.911778, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.927833, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.927838, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 680&lt;br /&gt;
Event: time 1409845467.927842, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 129&lt;br /&gt;
Event: time 1409845467.927847, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.927851, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.927854, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.944420, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.944426, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845467.944430, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 129&lt;br /&gt;
Event: time 1409845467.944434, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.944438, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.944442, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.959239, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.959244, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 683&lt;br /&gt;
Event: time 1409845467.959249, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 129&lt;br /&gt;
Event: time 1409845467.959253, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.959257, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.959260, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.974974, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.974980, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 685&lt;br /&gt;
Event: time 1409845467.974984, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 129&lt;br /&gt;
Event: time 1409845467.974988, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.974992, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.974996, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845467.989318, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845467.989321, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.989324, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845468.246567, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845468.246571, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.246576, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 659&lt;br /&gt;
Event: time 1409845468.246580, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 419&lt;br /&gt;
Event: time 1409845468.246584, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.246589, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.246592, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.262652, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.262657, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 659&lt;br /&gt;
Event: time 1409845468.262662, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 419&lt;br /&gt;
Event: time 1409845468.262666, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.262670, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.262673, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.278454, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.278460, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 659&lt;br /&gt;
Event: time 1409845468.278464, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 419&lt;br /&gt;
Event: time 1409845468.278468, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.278473, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.278476, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.293932, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.293938, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 653&lt;br /&gt;
Event: time 1409845468.293942, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 419&lt;br /&gt;
Event: time 1409845468.293946, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.293950, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.293953, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.309429, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.309434, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 639&lt;br /&gt;
Event: time 1409845468.309438, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 416&lt;br /&gt;
Event: time 1409845468.309443, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.309447, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.309450, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845468.323482, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845468.323486, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.323489, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845468.596393, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845468.596397, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.596402, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 226&lt;br /&gt;
Event: time 1409845468.596406, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 302&lt;br /&gt;
Event: time 1409845468.596410, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.596414, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.596417, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.612126, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.612132, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 226&lt;br /&gt;
Event: time 1409845468.612136, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 302&lt;br /&gt;
Event: time 1409845468.612140, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.612144, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.612147, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.628256, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.628262, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 226&lt;br /&gt;
Event: time 1409845468.628266, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 302&lt;br /&gt;
Event: time 1409845468.628271, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.628275, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.628278, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.644136, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.644142, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 226&lt;br /&gt;
Event: time 1409845468.644146, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 302&lt;br /&gt;
Event: time 1409845468.644151, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.644155, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.644158, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.659867, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.659873, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 226&lt;br /&gt;
Event: time 1409845468.659877, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 302&lt;br /&gt;
Event: time 1409845468.659882, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.659886, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.659889, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845468.673538, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845468.673541, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.673544, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845468.946001, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845468.946005, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.946010, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845468.946014, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845468.946018, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.946022, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.946025, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.962071, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.962077, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845468.962081, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845468.962085, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.962089, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.962093, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.977741, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.977747, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845468.977751, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845468.977755, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.977759, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.977762, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.993678, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.993684, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845468.993688, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845468.993692, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.993696, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.993700, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.010083, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.010089, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845469.010093, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845469.010097, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.010101, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.010104, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.026187, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.026193, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 665&lt;br /&gt;
Event: time 1409845469.026197, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 357&lt;br /&gt;
Event: time 1409845469.026201, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.026205, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.026209, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.041432, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.041437, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 640&lt;br /&gt;
Event: time 1409845469.041442, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 357&lt;br /&gt;
Event: time 1409845469.041446, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.041450, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.041453, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.057294, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.057299, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 581&lt;br /&gt;
Event: time 1409845469.057304, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 364&lt;br /&gt;
Event: time 1409845469.057308, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.057312, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.057315, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.073883, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.073889, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 540&lt;br /&gt;
Event: time 1409845469.073893, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 364&lt;br /&gt;
Event: time 1409845469.073897, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.073901, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.073905, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.089886, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.089892, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 496&lt;br /&gt;
Event: time 1409845469.089896, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 364&lt;br /&gt;
Event: time 1409845469.089900, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.089904, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.089908, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.105335, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.105340, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 450&lt;br /&gt;
Event: time 1409845469.105344, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 364&lt;br /&gt;
Event: time 1409845469.105349, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.105353, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.105356, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.121183, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.121188, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 404&lt;br /&gt;
Event: time 1409845469.121192, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845469.121197, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.121201, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.121204, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.136794, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.136799, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 360&lt;br /&gt;
Event: time 1409845469.136803, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845469.136808, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.136812, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.136815, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.152605, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.152611, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 312&lt;br /&gt;
Event: time 1409845469.152615, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845469.152619, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.152623, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.152626, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.169594, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.169599, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 270&lt;br /&gt;
Event: time 1409845469.169604, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 366&lt;br /&gt;
Event: time 1409845469.169608, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.169612, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.169615, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.185263, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.185268, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 236&lt;br /&gt;
Event: time 1409845469.185273, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 373&lt;br /&gt;
Event: time 1409845469.185277, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.185281, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.185284, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.200843, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.200848, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 207&lt;br /&gt;
Event: time 1409845469.200853, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 376&lt;br /&gt;
Event: time 1409845469.200857, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.200861, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.200864, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.216857, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.216863, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 207&lt;br /&gt;
Event: time 1409845469.216867, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 376&lt;br /&gt;
Event: time 1409845469.216871, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.216875, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.216878, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845469.230419, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845469.230423, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.230426, -------------- SYN_REPORT ------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Running xinput ===&lt;br /&gt;
&lt;br /&gt;
	xinput --list&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
â¡ Virtual core pointer                         id=2    [master pointer  (3)]&lt;br /&gt;
â   â³ Virtual core XTEST pointer               id=4    [slave  pointer  (2)]&lt;br /&gt;
â   â³ mytouchscreen                            id=6    [slave  pointer  (2)]&lt;br /&gt;
â£ Virtual core keyboard                        id=3    [master keyboard (2)]&lt;br /&gt;
    â³ Virtual core XTEST keyboard              id=5    [slave  keyboard (3)]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== xinput log ====&lt;br /&gt;
&lt;br /&gt;
	xinput test 6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
motion a[0]=53 a[1]=58 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=53 a[1]=58 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=53 a[1]=58 &lt;br /&gt;
motion a[0]=513 a[1]=91 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=513 a[1]=91 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=513 a[1]=91 &lt;br /&gt;
motion a[0]=659 a[1]=436 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=659 a[1]=436 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=659 a[1]=436 &lt;br /&gt;
motion a[0]=624 a[1]=152 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=624 a[1]=152 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
motion a[0]=577 a[1]=174 &lt;br /&gt;
motion a[0]=501 a[1]=203 &lt;br /&gt;
motion a[0]=457 a[1]=219 &lt;br /&gt;
motion a[0]=411 a[1]=232 &lt;br /&gt;
motion a[0]=371 a[1]=240 &lt;br /&gt;
motion a[0]=341 a[1]=245 &lt;br /&gt;
button release 1 a[0]=341 a[1]=245 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</description>
			<pubDate>Sat, 06 Sep 2014 09:32:57 GMT</pubDate>
			<dc:creator>Gv</dc:creator>
			<comments>https://www.slackwiki.com/Talk:SlackwareOnMt6582Tablet</comments>
		</item>
		<item>
			<title>SlackwareOnMt6582Tablet</title>
			<link>https://www.slackwiki.com/index.php?title=SlackwareOnMt6582Tablet&amp;diff=931</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=SlackwareOnMt6582Tablet&amp;diff=931</guid>
			<description>&lt;p&gt;Gv: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Specifications of the Tablet PC which was used here ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Processor : Arm Cortex A7, 1.3 GHz dual core.&lt;br /&gt;
             : ARMv7 Processor rev 3 (v7l),&lt;br /&gt;
   Hardware  : MT8312&lt;br /&gt;
   SOC       : mt6582.&lt;br /&gt;
   Memory    : 512MB RAM&lt;br /&gt;
   Storage   : 4GB Built in storage.&lt;br /&gt;
   Micro SD  : Slot for upto 32GB&lt;br /&gt;
   Display   : 7&amp;quot; WVGA 800x480&lt;br /&gt;
   OS        : Android 4.2 Jelly Bean&lt;br /&gt;
   GPU       : Mali?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://s28.postimg.org/bco3gbdgt/ss2.png Screenshot]  of X windows running.&lt;br /&gt;
&lt;br /&gt;
== Rooting the Tablet PC ==&lt;br /&gt;
&lt;br /&gt;
I used [http://www.techverse.net/fastest-root-android-phone-computer/ Framaroot-1.9.3.apk] to root the device. &lt;br /&gt;
&lt;br /&gt;
== Installing Linux - Slackware 14.1 - sort of. ==&lt;br /&gt;
&lt;br /&gt;
With the problem of not having kernel source for the SOC, and no no bootloader unlock possible yet, next best option was to use a chroot environment.&lt;br /&gt;
&lt;br /&gt;
So far, command line mode works fine. Here is the description of how Slackware was installed on to external micro SD Card. Was able to do some basic tests on the frame buffer display. Since there is no VTs available was not able to test Xorg, though could get Mali module compiled and loaded. More details below.&lt;br /&gt;
&lt;br /&gt;
=== Preparing SD Card on host computer ===&lt;br /&gt;
&lt;br /&gt;
Use fdisk to create one or two partitions, one for ext4 and other ( optional ) swap partition. Once these are created, assuming the device on host is /dev/sdc,&lt;br /&gt;
&lt;br /&gt;
    mkfs.ext4 /dev/sdc1&lt;br /&gt;
    sync&lt;br /&gt;
    eject sdc&lt;br /&gt;
    eject -t sdc&lt;br /&gt;
    mkdir slack&lt;br /&gt;
    mount /dev/sdc1 slack&lt;br /&gt;
    cd slack&lt;br /&gt;
    mkdir sl&lt;br /&gt;
    cd sl&lt;br /&gt;
&lt;br /&gt;
If you don't have Slackware installation files, [http://arm.slackware.com/getslack/ Get Slackware Arm] first. &lt;br /&gt;
&lt;br /&gt;
    mkdir slackware14.1&lt;br /&gt;
    cd slackware14.1&lt;br /&gt;
    (cd /path..to../slackware14.1 ; tar cfz - *) | (tar xfz - )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://sourceforge.net/projects/slackwareonapc8750/files/initrd-kirkwood.cpio.gz/download initrd-kirkwood.cpio] contains the setup program, but since I couldn't boot with custom initrd, sdc1 /sl area is prepared to have the installation files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    cpio -id &amp;lt; initrd-kirkwood.cpio&lt;br /&gt;
    sync&lt;br /&gt;
    umount slack&lt;br /&gt;
&lt;br /&gt;
Now that the sd card is ready for installation:&lt;br /&gt;
&lt;br /&gt;
    eject sdc&lt;br /&gt;
	&lt;br /&gt;
and plug it into the device. Once that is done,&lt;br /&gt;
&lt;br /&gt;
=== Getting installer ready ===&lt;br /&gt;
&lt;br /&gt;
Now plug the card in tablet pc, boot, from host computer,&lt;br /&gt;
&lt;br /&gt;
==== starting a adb shell with su ====&lt;br /&gt;
&lt;br /&gt;
    adb shell&lt;br /&gt;
    su&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== chroot to installe ====&lt;br /&gt;
&lt;br /&gt;
    cd /data/local/tmp&lt;br /&gt;
    mkdir slackware&lt;br /&gt;
    mount /dev/block/mmcblk1p1 slackware&lt;br /&gt;
    cd slackware/sl&lt;br /&gt;
    export PATH=/data/local/tmp/bin:$PATH&lt;br /&gt;
    mountpoint proc || mount -t proc none proc/&lt;br /&gt;
    mountpoint sys || mount -t sysfs sys sys/&lt;br /&gt;
    mountpoint dev || mount -o bind  /dev dev/&lt;br /&gt;
    export PATH=/usr/bin:/bin:/usr/lib/setup:$PATH&lt;br /&gt;
    pushd /dev&lt;br /&gt;
    ln -s /dev/block/mmc1blk* .&lt;br /&gt;
    popd&lt;br /&gt;
    chroot . /bin/bash&lt;br /&gt;
    mount -t ext4 /dev/mmcblk1p1 mnt&lt;br /&gt;
&lt;br /&gt;
=== Running setup ===&lt;br /&gt;
&lt;br /&gt;
Install Slackware onto mmcblk1p1, from pre mounted directory, sdc1 : /slackware14.1/slackware&lt;br /&gt;
&lt;br /&gt;
    setup&lt;br /&gt;
        Proceed and select /dev/mmcblk1p1 as target, no format&lt;br /&gt;
        For source, select pre mounted directory option, /slackware14.1/slackware&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
=== Complete installation, and configuration ===&lt;br /&gt;
&lt;br /&gt;
Once the complete installation is done,&lt;br /&gt;
&lt;br /&gt;
    umount proc&lt;br /&gt;
    umount sys&lt;br /&gt;
    umount dev&lt;br /&gt;
    sync&lt;br /&gt;
    cd ../..&lt;br /&gt;
    umount slackware&lt;br /&gt;
&lt;br /&gt;
== Getting into installed Slackware: ==&lt;br /&gt;
&lt;br /&gt;
==== Running slackware su shell ====&lt;br /&gt;
&lt;br /&gt;
    adb shell&lt;br /&gt;
    su&lt;br /&gt;
    mount /dev/block/mmcblk1p1 slackware&lt;br /&gt;
    cd slackware&lt;br /&gt;
    mountpoint proc || mount -t proc none proc/&lt;br /&gt;
    mountpoint sys || mount -t sysfs sys sys/&lt;br /&gt;
    mountpoint dev || mount -o bind  /dev dev/&lt;br /&gt;
    export PATH=/usr/bin:/bin:/usr/lib/setup:$PATH&lt;br /&gt;
    chroot . /bin/bash&lt;br /&gt;
    su -	&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From here you can do &amp;quot;normal&amp;quot; Slackware activities, sort of. Main things that were lacking in my case&lt;br /&gt;
were VTs (ttys). Compiling programs and running programs that require no X windows worked fine. I ran&lt;br /&gt;
couple of frame buffer tests too. &lt;br /&gt;
		&lt;br /&gt;
&lt;br /&gt;
== Getting Xorg up and running - kind of ==&lt;br /&gt;
&lt;br /&gt;
=== Getting Xorg compiled ===&lt;br /&gt;
&lt;br /&gt;
Ecept for Pointer ( touchscreen ) failure, Xorg seems to be working fine. evtest, xinput tests are showing touchscreen activity, but the cursor seems to be not&lt;br /&gt;
moving. But if a window like xvkbd or xterm or so is launched, you can move the window using the touch screen!. And kvkbd input also works. &lt;br /&gt;
&lt;br /&gt;
Download [http://www.x.org/releases/X11R7.7/src/everything/xorg-server-1.12.2.tar.bz2  xorg-server-1.12.2], &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	tar xf xorg-server-1.12.2.tar.bz2&lt;br /&gt;
&lt;br /&gt;
Also make changes to xorg-server-1.12.2/hw/xfree86/os-support/linux/lnx\_init.c so that VT / console related code is disabled. See the patch section.&lt;br /&gt;
&lt;br /&gt;
	cd xorg-server-1.12.2&lt;br /&gt;
	export PKG_CONFIG_PATH=/opt/local/sw/share/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
	export PKG_CONFIG_PATH=/opt/local/sw/lib/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
	export LD_LIBRARY_PATH=/opt/local/sw/lib:$LD_LIBRARY_PATH&lt;br /&gt;
	export PATH=/opt/local/sw/bin:$PATH&lt;br /&gt;
	./configure --prefix=/opt/local/sw --enable-kdrive --enable-kdrive-evdev --with-xkb-path=/opt/local/sw/share/X11/xkb --with-xkb-output=/var/lib/xkb --with-xkb-bin-directory=/opt/local/sw/bin --with-default-xkb-rules=xorg --with-default-xkb-model=pc104 --with-default-xkb-layout=us  --disable-xnest --disable-dmx --disable-xquartz --disable-xwin --disable-xephyr --disable-config-udev --enable-tslib --disable-docs  --disable-devel-docs LDFLAGS=-L/opt/local/sw/lib CFLAGS=-I/opt/local/sw/include&lt;br /&gt;
make -j 3&lt;br /&gt;
&lt;br /&gt;
If all required packages are not on the system, compilation will fail. Download each of the requiered packags , untar, configure and install.&lt;br /&gt;
&lt;br /&gt;
	./configure --prefix=/opt/local/sw&lt;br /&gt;
	make -j 3 install&lt;br /&gt;
&lt;br /&gt;
Once xorg-server-1.12.2 compilation is succesfull, &lt;br /&gt;
	make install&lt;br /&gt;
	&lt;br /&gt;
=== Compiling additional drivers required ===&lt;br /&gt;
&lt;br /&gt;
==== fbdev ====&lt;br /&gt;
&lt;br /&gt;
xf86-video-fbdev-0.4.2&lt;br /&gt;
export PKG_CONFIG_PATH=/opt/local/sw/lib/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
./configure --prefix=/opt/local/sw&lt;br /&gt;
&lt;br /&gt;
src/fbdev.c xf86-video-fbdev-0.4.2/src/fbdev.c&lt;br /&gt;
// #include &amp;quot;mibstore.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
make -j 3&lt;br /&gt;
make install&lt;br /&gt;
&lt;br /&gt;
==== evdev ====&lt;br /&gt;
&lt;br /&gt;
    xf86-input-evdev-2.7.0&lt;br /&gt;
    ./configure --prefix=/opt/local/sw&lt;br /&gt;
&lt;br /&gt;
    src/Makefile:&lt;br /&gt;
    evdev_drv_la_LIBADD = $(MTDEV_LIBS) $(UDEV_LIBS)&lt;br /&gt;
    ( if not done, causes evdev_drv.so: undefined symbol: udev_new when Xorg is ran)&lt;br /&gt;
&lt;br /&gt;
    make -j 3 &lt;br /&gt;
    make install&lt;br /&gt;
&lt;br /&gt;
Once installed make an xorg.conf [ see xorg.conf section ] in /etc/X11/&lt;br /&gt;
and run startx as described below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== synaptics ====&lt;br /&gt;
&lt;br /&gt;
synaptics driver fails with error message relating to Protocol.&lt;br /&gt;
&lt;br /&gt;
    xf86-input-synaptics-1.6.1.tar.bz2&lt;br /&gt;
    ./configure --prefix=/opt/local/sw CFLAGS=-I/opt/local/sw/include/xorg LDFLAGS=-L/opt/local/sw/lib&lt;br /&gt;
    make -j 3&lt;br /&gt;
    make install&lt;br /&gt;
&lt;br /&gt;
When running Xorg, &lt;br /&gt;
&lt;br /&gt;
    [  4784.385] (EE) synaptics: mytouchscreen: Synaptics driver unable to detect protocol&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Running X ===&lt;br /&gt;
&lt;br /&gt;
make sure display is on, and&lt;br /&gt;
&lt;br /&gt;
From adb shell as su:&lt;br /&gt;
&lt;br /&gt;
    stop&lt;br /&gt;
&lt;br /&gt;
From slackware chroot environment in adb shell [ see section ]:&lt;br /&gt;
&lt;br /&gt;
    startx -- /opt/local/sw/bin/Xorg -pointer mytouchscreen :0&lt;br /&gt;
&lt;br /&gt;
Once Finished, from adb shell as su:&lt;br /&gt;
&lt;br /&gt;
    start&lt;br /&gt;
&lt;br /&gt;
=== Virtual Keyboard ===&lt;br /&gt;
&lt;br /&gt;
==== http://homepage3.nifty.com/tsato/xvkbd/ ====&lt;br /&gt;
&lt;br /&gt;
Download [http://homepage3.nifty.com/tsato/xvkbd/xvkbd-3.5.tar.gz xvkbd-3.5.tar.gz], install&lt;br /&gt;
    xmkf&lt;br /&gt;
    make &lt;br /&gt;
    make install&lt;br /&gt;
&lt;br /&gt;
and run: &lt;br /&gt;
&lt;br /&gt;
    xvkbd&lt;br /&gt;
&lt;br /&gt;
=== An application launcher ===&lt;br /&gt;
==== http://bbdock.nethence.com/ ====&lt;br /&gt;
Download and install [http://bbdock.nethence.com/download/bbdock-0.2.9.tar.gz bbdock-0.2.9.tar.gz] or [http://bbdock.nethence.com/download/ download] &lt;br /&gt;
&lt;br /&gt;
.bbdockrc sample : &lt;br /&gt;
&lt;br /&gt;
    /root/icons/xterm-color.png:xterm::1&lt;br /&gt;
&lt;br /&gt;
Launch bbdock&lt;br /&gt;
&lt;br /&gt;
=== Files ===&lt;br /&gt;
==== xorg.conf ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Section &amp;quot;ServerLayout&amp;quot;&lt;br /&gt;
Identifier	&amp;quot;myLaout&amp;quot;&lt;br /&gt;
Screen		&amp;quot;myScreen&amp;quot;&lt;br /&gt;
# InputDevice     &amp;quot;mymouse&amp;quot;&lt;br /&gt;
InputDevice	&amp;quot;mytouchscreen&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;Screen&amp;quot;&lt;br /&gt;
Identifier	&amp;quot;myScreen&amp;quot;&lt;br /&gt;
Device		&amp;quot;myfbdev&amp;quot;&lt;br /&gt;
DefaultDepth 	24&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;Device&amp;quot;&lt;br /&gt;
Identifier	&amp;quot;myFbdev&amp;quot;&lt;br /&gt;
Driver		&amp;quot;fbdev&amp;quot;&lt;br /&gt;
Option		&amp;quot;fbdev&amp;quot; &amp;quot;/dev/graphics/fb0&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;InputDevice&amp;quot;&lt;br /&gt;
 Identifier	&amp;quot;mytouchscreen&amp;quot;&lt;br /&gt;
 Driver		&amp;quot;evdev&amp;quot;&lt;br /&gt;
 # Driver 	&amp;quot;synaptics&amp;quot;&lt;br /&gt;
 Option		&amp;quot;Device&amp;quot; &amp;quot;/dev/input/event3&amp;quot;&lt;br /&gt;
 # Option	&amp;quot;Protocol&amp;quot; &amp;quot;Auto&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== lnx_init.c patch ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--- xorg-server-1.12.2/hw/xfree86/os-support/linux/lnx_init.c	2014-09-04 22:53:13.450000054 +0530&lt;br /&gt;
+++ xorg-server-1.12.2.org/hw/xfree86/os-support/linux/lnx_init.c	2012-05-17 22:39:03.000000000 +0530&lt;br /&gt;
@@ -48,18 +48,15 @@&lt;br /&gt;
 static void&lt;br /&gt;
 drain_console(int fd, void *closure)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     errno = 0;&lt;br /&gt;
     if (tcflush(fd, TCIOFLUSH) == -1 &amp;amp;&amp;amp; errno == EIO) {&lt;br /&gt;
         xf86SetConsoleHandler(NULL, NULL);&lt;br /&gt;
     }&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 static void&lt;br /&gt;
 switch_to(int vt, const char *from)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     int ret;&lt;br /&gt;
 &lt;br /&gt;
     SYSCALL(ret = ioctl(xf86Info.consoleFd, VT_ACTIVATE, vt));&lt;br /&gt;
@@ -69,13 +66,11 @@&lt;br /&gt;
     SYSCALL(ret = ioctl(xf86Info.consoleFd, VT_WAITACTIVE, vt));&lt;br /&gt;
     if (ret &amp;lt; 0)&lt;br /&gt;
         FatalError(&amp;quot;%s: VT_WAITACTIVE failed: %s\n&amp;quot;, from, strerror(errno));&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void&lt;br /&gt;
 xf86OpenConsole(void)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     int i, fd = -1, ret;&lt;br /&gt;
     struct vt_mode VT;&lt;br /&gt;
     struct vt_stat vts;&lt;br /&gt;
@@ -254,13 +249,11 @@&lt;br /&gt;
             switch_to(xf86Info.vtno, &amp;quot;xf86OpenConsole&amp;quot;);&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void&lt;br /&gt;
 xf86CloseConsole(void)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     struct vt_mode VT;&lt;br /&gt;
     int ret;&lt;br /&gt;
 &lt;br /&gt;
@@ -307,7 +300,6 @@&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
     close(xf86Info.consoleFd);  /* make the vt-manager happy */&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Running some tests ==&lt;br /&gt;
&lt;br /&gt;
=== Testing the framebuffer ===		&lt;br /&gt;
&lt;br /&gt;
For these tests, I stopped android &amp;quot;SurfaceFlinger&amp;quot; and freed up /dev/graphics/fb0. by running &amp;quot;stop&amp;quot;&lt;br /&gt;
command. Before running stop, make sure that the display is on ( not blank ). For these tests, I had&lt;br /&gt;
two terminals up on the host PC with one of them running just adb shell with su, and other running&lt;br /&gt;
chrooted slackware shell. SurfaceFlinger was stopped from su shell, and tests from Slackware shell.&lt;br /&gt;
&lt;br /&gt;
Please not Slackware shell is also running as user root.&lt;br /&gt;
&lt;br /&gt;
==== Stopping android - sort of ====&lt;br /&gt;
&lt;br /&gt;
Here is how to stop the SurfaceFlinger and get framebuffer free:&lt;br /&gt;
&lt;br /&gt;
    adb shell&lt;br /&gt;
    su&lt;br /&gt;
    stop&lt;br /&gt;
&lt;br /&gt;
Now the display goes blank, with backlight on.&lt;br /&gt;
&lt;br /&gt;
Get one of these tests.&lt;br /&gt;
[https://gist.githubusercontent.com/rafalrusin/1482697/raw/32c6c0d79b870ffb618aa7b7c664736ca5e150fe/fbtest.c  fbtest] or &lt;br /&gt;
[http://stackoverflow.com/questions/4996777/paint-pixels-to-screen-via-linux-framebuffer Paint-pixels-to-screen-  via-linux-framebuffer] or &lt;br /&gt;
[http://cep.xray.aps.anl.gov/software/qt4-x11-4.2.2/qtopiacore-testingframebuffer.html qtopiacore-testingframebuffer] All these tests worked on the Tablet. Transfer the tests to tablet using adb push&lt;br /&gt;
command.&lt;br /&gt;
&lt;br /&gt;
from Slackware shell, running under adb shell:&lt;br /&gt;
&lt;br /&gt;
    gcc fbtest.c&lt;br /&gt;
    ./a.out&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
once done, go back to android su shell from adb, and:&lt;br /&gt;
&lt;br /&gt;
==== Getting back to android ====&lt;br /&gt;
  &lt;br /&gt;
    start&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
After few seconds android display will be back on. &lt;br /&gt;
&lt;br /&gt;
=== Running evtest ===&lt;br /&gt;
&lt;br /&gt;
Download [http://cgit.freedesktop.org/~whot/evtest/tree/evtest.c evtest.c].&lt;br /&gt;
&lt;br /&gt;
   gcc -o gcc -o evtest evtest.c&lt;br /&gt;
   ./evtest&lt;br /&gt;
   see evtest.log for sample outpu&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== evtest.log ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
No device specified, trying to scan all of /dev/input/event*&lt;br /&gt;
Available devices:&lt;br /&gt;
/dev/input/event0:	mtk-kpd&lt;br /&gt;
/dev/input/event1:	ACCDET&lt;br /&gt;
/dev/input/event2:	hwmdata&lt;br /&gt;
/dev/input/event3:	mtk-tpd&lt;br /&gt;
Select the device event number [0-3]: Input driver version is 1.0.1&lt;br /&gt;
Input device ID: bus 0x0 vendor 0x0 product 0x0 version 0x0&lt;br /&gt;
Input device name: &amp;quot;mtk-tpd&amp;quot;&lt;br /&gt;
Supported events:&lt;br /&gt;
  Event type 0 (EV_SYN)&lt;br /&gt;
  Event type 1 (EV_KEY)&lt;br /&gt;
    Event code 330 (BTN_TOUCH)&lt;br /&gt;
  Event type 3 (EV_ABS)&lt;br /&gt;
    Event code 0 (ABS_X)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      800&lt;br /&gt;
      Resolution     800&lt;br /&gt;
    Event code 1 (ABS_Y)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      480&lt;br /&gt;
      Resolution     480&lt;br /&gt;
    Event code 24 (ABS_PRESSURE)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      255&lt;br /&gt;
    Event code 48 (ABS_MT_TOUCH_MAJOR)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      100&lt;br /&gt;
    Event code 49 (ABS_MT_TOUCH_MINOR)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      100&lt;br /&gt;
    Event code 53 (ABS_MT_POSITION_X)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      800&lt;br /&gt;
    Event code 54 (ABS_MT_POSITION_Y)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      480&lt;br /&gt;
    Event code 57 (ABS_MT_TRACKING_ID)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max        0&lt;br /&gt;
Properties:&lt;br /&gt;
  Property type 1 (INPUT_PROP_DIRECT)&lt;br /&gt;
Testing ... (interrupt to exit)&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845467.116675, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845467.116682, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.116687, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.116691, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.116695, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.116699, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.116703, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.133145, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.133151, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.133155, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.133160, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.133164, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.133167, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.148724, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.148730, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.148734, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.148738, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.148742, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.148745, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.164975, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.164981, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.164985, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.164989, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.164994, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.164997, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.180722, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.180727, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.180731, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.180736, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.180740, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.180743, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.196495, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.196501, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.196505, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.196510, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.196514, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.196517, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.211803, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.211809, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.211813, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.211818, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.211822, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.211825, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845467.225500, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845467.225504, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.225507, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845467.466531, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845467.466536, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.466540, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.466545, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.466549, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.466553, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.466556, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.482028, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.482033, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.482038, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.482042, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.482046, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.482049, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.497971, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.497977, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.497981, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.497986, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.497990, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.497993, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.514030, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.514036, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.514040, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.514044, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.514048, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.514051, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.530188, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.530194, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.530198, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.530202, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.530206, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.530210, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.545804, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.545809, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.545813, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.545818, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.545822, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.545825, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845467.559686, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845467.559690, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.559693, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845467.880062, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845467.880067, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.880072, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 678&lt;br /&gt;
Event: time 1409845467.880076, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 130&lt;br /&gt;
Event: time 1409845467.880080, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.880084, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.880088, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.895834, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.895839, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 678&lt;br /&gt;
Event: time 1409845467.895844, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 130&lt;br /&gt;
Event: time 1409845467.895848, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.895852, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.895855, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.911757, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.911762, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 678&lt;br /&gt;
Event: time 1409845467.911767, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 130&lt;br /&gt;
Event: time 1409845467.911771, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.911775, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.911778, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.927833, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.927838, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 680&lt;br /&gt;
Event: time 1409845467.927842, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 129&lt;br /&gt;
Event: time 1409845467.927847, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.927851, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.927854, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.944420, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.944426, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845467.944430, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 129&lt;br /&gt;
Event: time 1409845467.944434, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.944438, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.944442, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.959239, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.959244, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 683&lt;br /&gt;
Event: time 1409845467.959249, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 129&lt;br /&gt;
Event: time 1409845467.959253, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.959257, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.959260, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.974974, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.974980, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 685&lt;br /&gt;
Event: time 1409845467.974984, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 129&lt;br /&gt;
Event: time 1409845467.974988, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.974992, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.974996, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845467.989318, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845467.989321, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.989324, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845468.246567, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845468.246571, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.246576, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 659&lt;br /&gt;
Event: time 1409845468.246580, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 419&lt;br /&gt;
Event: time 1409845468.246584, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.246589, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.246592, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.262652, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.262657, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 659&lt;br /&gt;
Event: time 1409845468.262662, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 419&lt;br /&gt;
Event: time 1409845468.262666, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.262670, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.262673, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.278454, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.278460, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 659&lt;br /&gt;
Event: time 1409845468.278464, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 419&lt;br /&gt;
Event: time 1409845468.278468, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.278473, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.278476, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.293932, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.293938, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 653&lt;br /&gt;
Event: time 1409845468.293942, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 419&lt;br /&gt;
Event: time 1409845468.293946, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.293950, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.293953, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.309429, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.309434, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 639&lt;br /&gt;
Event: time 1409845468.309438, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 416&lt;br /&gt;
Event: time 1409845468.309443, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.309447, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.309450, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845468.323482, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845468.323486, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.323489, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845468.596393, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845468.596397, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.596402, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 226&lt;br /&gt;
Event: time 1409845468.596406, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 302&lt;br /&gt;
Event: time 1409845468.596410, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.596414, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.596417, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.612126, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.612132, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 226&lt;br /&gt;
Event: time 1409845468.612136, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 302&lt;br /&gt;
Event: time 1409845468.612140, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.612144, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.612147, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.628256, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.628262, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 226&lt;br /&gt;
Event: time 1409845468.628266, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 302&lt;br /&gt;
Event: time 1409845468.628271, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.628275, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.628278, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.644136, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.644142, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 226&lt;br /&gt;
Event: time 1409845468.644146, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 302&lt;br /&gt;
Event: time 1409845468.644151, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.644155, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.644158, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.659867, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.659873, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 226&lt;br /&gt;
Event: time 1409845468.659877, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 302&lt;br /&gt;
Event: time 1409845468.659882, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.659886, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.659889, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845468.673538, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845468.673541, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.673544, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845468.946001, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845468.946005, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.946010, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845468.946014, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845468.946018, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.946022, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.946025, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.962071, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.962077, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845468.962081, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845468.962085, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.962089, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.962093, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.977741, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.977747, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845468.977751, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845468.977755, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.977759, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.977762, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.993678, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.993684, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845468.993688, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845468.993692, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.993696, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.993700, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.010083, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.010089, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845469.010093, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845469.010097, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.010101, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.010104, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.026187, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.026193, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 665&lt;br /&gt;
Event: time 1409845469.026197, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 357&lt;br /&gt;
Event: time 1409845469.026201, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.026205, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.026209, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.041432, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.041437, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 640&lt;br /&gt;
Event: time 1409845469.041442, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 357&lt;br /&gt;
Event: time 1409845469.041446, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.041450, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.041453, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.057294, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.057299, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 581&lt;br /&gt;
Event: time 1409845469.057304, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 364&lt;br /&gt;
Event: time 1409845469.057308, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.057312, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.057315, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.073883, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.073889, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 540&lt;br /&gt;
Event: time 1409845469.073893, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 364&lt;br /&gt;
Event: time 1409845469.073897, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.073901, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.073905, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.089886, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.089892, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 496&lt;br /&gt;
Event: time 1409845469.089896, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 364&lt;br /&gt;
Event: time 1409845469.089900, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.089904, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.089908, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.105335, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.105340, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 450&lt;br /&gt;
Event: time 1409845469.105344, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 364&lt;br /&gt;
Event: time 1409845469.105349, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.105353, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.105356, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.121183, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.121188, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 404&lt;br /&gt;
Event: time 1409845469.121192, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845469.121197, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.121201, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.121204, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.136794, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.136799, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 360&lt;br /&gt;
Event: time 1409845469.136803, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845469.136808, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.136812, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.136815, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.152605, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.152611, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 312&lt;br /&gt;
Event: time 1409845469.152615, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845469.152619, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.152623, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.152626, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.169594, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.169599, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 270&lt;br /&gt;
Event: time 1409845469.169604, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 366&lt;br /&gt;
Event: time 1409845469.169608, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.169612, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.169615, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.185263, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.185268, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 236&lt;br /&gt;
Event: time 1409845469.185273, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 373&lt;br /&gt;
Event: time 1409845469.185277, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.185281, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.185284, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.200843, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.200848, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 207&lt;br /&gt;
Event: time 1409845469.200853, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 376&lt;br /&gt;
Event: time 1409845469.200857, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.200861, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.200864, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.216857, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.216863, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 207&lt;br /&gt;
Event: time 1409845469.216867, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 376&lt;br /&gt;
Event: time 1409845469.216871, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.216875, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.216878, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845469.230419, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845469.230423, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.230426, -------------- SYN_REPORT ------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Running xinput ===&lt;br /&gt;
&lt;br /&gt;
	xinput --list&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
â¡ Virtual core pointer                         id=2    [master pointer  (3)]&lt;br /&gt;
â   â³ Virtual core XTEST pointer               id=4    [slave  pointer  (2)]&lt;br /&gt;
â   â³ mytouchscreen                            id=6    [slave  pointer  (2)]&lt;br /&gt;
â£ Virtual core keyboard                        id=3    [master keyboard (2)]&lt;br /&gt;
    â³ Virtual core XTEST keyboard              id=5    [slave  keyboard (3)]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== xinput log ====&lt;br /&gt;
&lt;br /&gt;
	xinput test 6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
motion a[0]=53 a[1]=58 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=53 a[1]=58 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=53 a[1]=58 &lt;br /&gt;
motion a[0]=513 a[1]=91 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=513 a[1]=91 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=513 a[1]=91 &lt;br /&gt;
motion a[0]=659 a[1]=436 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=659 a[1]=436 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=659 a[1]=436 &lt;br /&gt;
motion a[0]=624 a[1]=152 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=624 a[1]=152 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
motion a[0]=577 a[1]=174 &lt;br /&gt;
motion a[0]=501 a[1]=203 &lt;br /&gt;
motion a[0]=457 a[1]=219 &lt;br /&gt;
motion a[0]=411 a[1]=232 &lt;br /&gt;
motion a[0]=371 a[1]=240 &lt;br /&gt;
motion a[0]=341 a[1]=245 &lt;br /&gt;
button release 1 a[0]=341 a[1]=245 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</description>
			<pubDate>Fri, 05 Sep 2014 10:01:50 GMT</pubDate>
			<dc:creator>Gv</dc:creator>
			<comments>https://www.slackwiki.com/Talk:SlackwareOnMt6582Tablet</comments>
		</item>
		<item>
			<title>SlackwareOnMt6582Tablet</title>
			<link>https://www.slackwiki.com/index.php?title=SlackwareOnMt6582Tablet&amp;diff=930</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=SlackwareOnMt6582Tablet&amp;diff=930</guid>
			<description>&lt;p&gt;Gv: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Specifications of the Tablet PC which was used here ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Processor : Arm Cortex A7, 1.3 GHz dual core.&lt;br /&gt;
             : ARMv7 Processor rev 3 (v7l),&lt;br /&gt;
   Hardware  : MT8312&lt;br /&gt;
   SOC       : mt6582.&lt;br /&gt;
   Memory    : 512MB RAM&lt;br /&gt;
   Storage   : 4GB Built in storage.&lt;br /&gt;
   Micro SD  : Slot for upto 32GB&lt;br /&gt;
   Display   : 7&amp;quot; WVGA 800x480&lt;br /&gt;
   OS        : Android 4.2 Jelly Bean&lt;br /&gt;
   GPU       : Mali?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://s28.postimg.org/bco3gbdgt/ss2.png Screenshot]  of X windows running.&lt;br /&gt;
&lt;br /&gt;
== Rooting the Tablet PC ==&lt;br /&gt;
&lt;br /&gt;
I used [http://www.techverse.net/fastest-root-android-phone-computer/ Framaroot-1.9.3.apk] to root the device. &lt;br /&gt;
&lt;br /&gt;
== Installing Linux - Slackware 14.1 - sort of. ==&lt;br /&gt;
&lt;br /&gt;
With the problem of not having kernel source for the SOC, and no no bootloader unlock possible yet, next best option was to use a chroot environment.&lt;br /&gt;
&lt;br /&gt;
So far, command line mode works fine. Here is the description of how Slackware was installed on to external micro SD Card. Was able to do some basic tests on the frame buffer display. Since there is no VTs available was not able to test Xorg, though could get Mali module compiled and loaded. More details below.&lt;br /&gt;
&lt;br /&gt;
=== Preparing SD Card on host computer ===&lt;br /&gt;
&lt;br /&gt;
Use fdisk to create one or two partitions, one for ext4 and other ( optional ) swap partition. Once these are created, assuming the device on host is /dev/sdc,&lt;br /&gt;
&lt;br /&gt;
    mkfs.ext4 /dev/sdc1&lt;br /&gt;
    sync&lt;br /&gt;
    eject sdc&lt;br /&gt;
    eject -t sdc&lt;br /&gt;
    mkdir slack&lt;br /&gt;
    mount /dev/sdc1 slack&lt;br /&gt;
    cd slack&lt;br /&gt;
    mkdir sl&lt;br /&gt;
    cd sl&lt;br /&gt;
&lt;br /&gt;
If you don't have Slackware installation files, [http://arm.slackware.com/getslack/ Get Slackware Arm] first. &lt;br /&gt;
&lt;br /&gt;
    mkdir slackware14.1&lt;br /&gt;
    cd slackware14.1&lt;br /&gt;
    (cd /path..to../slackware14.1 ; tar cfz - *) | (tar xfz - )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://sourceforge.net/projects/slackwareonapc8750/files/initrd-kirkwood.cpio.gz/download initrd-kirkwood.cpio] contains the setup program, but since I couldn't boot with custom initrd, sdc1 /sl area is prepared to have the installation files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    cpio -id &amp;lt; initrd-kirkwood.cpio&lt;br /&gt;
    sync&lt;br /&gt;
    umount slack&lt;br /&gt;
&lt;br /&gt;
Now that the sd card is ready for installation:&lt;br /&gt;
&lt;br /&gt;
    eject sdc&lt;br /&gt;
	&lt;br /&gt;
and plug it into the device. Once that is done,&lt;br /&gt;
&lt;br /&gt;
=== Getting installer ready ===&lt;br /&gt;
&lt;br /&gt;
Now plug the card in tablet pc, boot, from host computer,&lt;br /&gt;
&lt;br /&gt;
==== starting a adb shell with su ====&lt;br /&gt;
&lt;br /&gt;
    adb shell&lt;br /&gt;
    su&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== chroot to installe ====&lt;br /&gt;
&lt;br /&gt;
    cd /data/local/tmp&lt;br /&gt;
    mkdir slackware&lt;br /&gt;
    mount /dev/block/mmcblk1p1 slackware&lt;br /&gt;
    cd slackware/sl&lt;br /&gt;
    export PATH=/data/local/tmp/bin:$PATH&lt;br /&gt;
    mountpoint proc || mount -t proc none proc/&lt;br /&gt;
    mountpoint sys || mount -t sysfs sys sys/&lt;br /&gt;
    mountpoint dev || mount -o bind  /dev dev/&lt;br /&gt;
    export PATH=/usr/bin:/bin:/usr/lib/setup:$PATH&lt;br /&gt;
    pushd /dev&lt;br /&gt;
    ln -s /dev/block/mmc1blk* .&lt;br /&gt;
    popd&lt;br /&gt;
    chroot . /bin/bash&lt;br /&gt;
    mount -t ext4 /dev/mmcblk1p1 mnt&lt;br /&gt;
&lt;br /&gt;
=== Running setup ===&lt;br /&gt;
&lt;br /&gt;
Install Slackware onto mmcblk1p1, from pre mounted directory, sdc1 : /slackware14.1/slackware&lt;br /&gt;
&lt;br /&gt;
    setup&lt;br /&gt;
        Proceed and select /dev/mmcblk1p1 as target, no format&lt;br /&gt;
        For source, select pre mounted directory option, /slackware14.1/slackware&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
=== Complete installation, and configuration ===&lt;br /&gt;
&lt;br /&gt;
Once the complete installation is done,&lt;br /&gt;
&lt;br /&gt;
    umount proc&lt;br /&gt;
    umount sys&lt;br /&gt;
    umount dev&lt;br /&gt;
    sync&lt;br /&gt;
    cd ../..&lt;br /&gt;
    umount slackware&lt;br /&gt;
&lt;br /&gt;
== Getting into installed Slackware: ==&lt;br /&gt;
&lt;br /&gt;
==== Running slackware su shell ====&lt;br /&gt;
&lt;br /&gt;
    adb shell&lt;br /&gt;
    su&lt;br /&gt;
    mount /dev/block/mmcblk1p1 slackware&lt;br /&gt;
    cd slackware&lt;br /&gt;
    mountpoint proc || mount -t proc none proc/&lt;br /&gt;
    mountpoint sys || mount -t sysfs sys sys/&lt;br /&gt;
    mountpoint dev || mount -o bind  /dev dev/&lt;br /&gt;
    export PATH=/usr/bin:/bin:/usr/lib/setup:$PATH&lt;br /&gt;
    chroot . /bin/bash&lt;br /&gt;
    su -	&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From here you can do &amp;quot;normal&amp;quot; Slackware activities, sort of. Main things that were lacking in my case&lt;br /&gt;
were VTs (ttys). Compiling programs and running programs that require no X windows worked fine. I ran&lt;br /&gt;
couple of frame buffer tests too. &lt;br /&gt;
		&lt;br /&gt;
&lt;br /&gt;
== Getting Xorg up and running - kind of ==&lt;br /&gt;
&lt;br /&gt;
=== Getting Xorg compiled ===&lt;br /&gt;
&lt;br /&gt;
Ecept for Pointer ( touchscreen ) failure, Xorg seems to be working fine. evtest, xinput tests are showing touchscreen activity, but the cursor seems to be not&lt;br /&gt;
moving. But if a window like xvkbd or xterm or so is launched, you can move the window using the touch screen!. And kvkbd input also works. &lt;br /&gt;
&lt;br /&gt;
Download [http://www.x.org/releases/X11R7.7/src/everything/xorg-server-1.12.2.tar.bz2  xorg-server-1.12.2], &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	tar xf xorg-server-1.12.2.tar.bz2&lt;br /&gt;
&lt;br /&gt;
Also make changes to xorg-server-1.12.2/hw/xfree86/os-support/linux/lnx\_init.c so that VT / console related code is disabled. See the patch section.&lt;br /&gt;
&lt;br /&gt;
	cd xorg-server-1.12.2&lt;br /&gt;
	export PKG_CONFIG_PATH=/opt/local/sw/share/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
	export PKG_CONFIG_PATH=/opt/local/sw/lib/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
	export LD_LIBRARY_PATH=/opt/local/sw/lib:$LD_LIBRARY_PATH&lt;br /&gt;
	export PATH=/opt/local/sw/bin:$PATH&lt;br /&gt;
	./configure --prefix=/opt/local/sw --enable-kdrive --enable-kdrive-evdev --with-xkb-path=/opt/local/sw/share/X11/xkb --with-xkb-output=/var/lib/xkb --with-xkb-bin-directory=/opt/local/sw/bin --with-default-xkb-rules=xorg --with-default-xkb-model=pc104 --with-default-xkb-layout=us  --disable-xnest --disable-dmx --disable-xquartz --disable-xwin --disable-xephyr --disable-config-udev --enable-tslib --disable-docs  --disable-devel-docs LDFLAGS=-L/opt/local/sw/lib CFLAGS=-I/opt/local/sw/include&lt;br /&gt;
make -j 3&lt;br /&gt;
&lt;br /&gt;
If all required packages are not on the system, compilation will fail. Download each of the requiered packags , untar, configure and install.&lt;br /&gt;
&lt;br /&gt;
	./configure --prefix=/opt/local/sw&lt;br /&gt;
	make -j 3 install&lt;br /&gt;
&lt;br /&gt;
Once xorg-server-1.12.2 compilation is succesfull, &lt;br /&gt;
	make install&lt;br /&gt;
	&lt;br /&gt;
=== Compiling additional drivers required ===&lt;br /&gt;
&lt;br /&gt;
==== fbdev ====&lt;br /&gt;
&lt;br /&gt;
xf86-video-fbdev-0.4.2&lt;br /&gt;
export PKG_CONFIG_PATH=/opt/local/sw/lib/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
./configure --prefix=/opt/local/sw&lt;br /&gt;
&lt;br /&gt;
src/fbdev.c xf86-video-fbdev-0.4.2/src/fbdev.c&lt;br /&gt;
// #include &amp;quot;mibstore.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
make -j 3&lt;br /&gt;
make install&lt;br /&gt;
&lt;br /&gt;
==== evdev ====&lt;br /&gt;
&lt;br /&gt;
    xf86-input-evdev-2.7.0&lt;br /&gt;
    ./configure --prefix=/opt/local/sw&lt;br /&gt;
&lt;br /&gt;
    src/Makefile:&lt;br /&gt;
    evdev_drv_la_LIBADD = $(MTDEV_LIBS) $(UDEV_LIBS)&lt;br /&gt;
    ( if not done, causes evdev_drv.so: undefined symbol: udev_new when Xorg is ran)&lt;br /&gt;
&lt;br /&gt;
    make -j 3 &lt;br /&gt;
    make install&lt;br /&gt;
&lt;br /&gt;
Once installed make an xorg.conf [ see xorg.conf section ] in /etc/X11/&lt;br /&gt;
and run startx as described below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== synaptics ====&lt;br /&gt;
&lt;br /&gt;
synaptics driver fails with error message relating to Protocol.&lt;br /&gt;
&lt;br /&gt;
    xf86-input-synaptics-1.6.1.tar.bz2&lt;br /&gt;
    ./configure --prefix=/opt/local/sw CFLAGS=-I/opt/local/sw/include/xorg LDFLAGS=-L/opt/local/sw/lib&lt;br /&gt;
    make -j 3&lt;br /&gt;
    make install&lt;br /&gt;
&lt;br /&gt;
When running Xorg, &lt;br /&gt;
&lt;br /&gt;
    [  4784.385] (EE) synaptics: mytouchscreen: Synaptics driver unable to detect protocol&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Running X ===&lt;br /&gt;
&lt;br /&gt;
make sure display is on, and&lt;br /&gt;
&lt;br /&gt;
From adb shell as su:&lt;br /&gt;
&lt;br /&gt;
    stop&lt;br /&gt;
&lt;br /&gt;
From slackware chroot environment in adb shell [ see section ]:&lt;br /&gt;
&lt;br /&gt;
    startx -- /opt/local/sw/bin/Xorg -pointer mytouchscreen :0&lt;br /&gt;
&lt;br /&gt;
Once Finished, from adb shell as su:&lt;br /&gt;
&lt;br /&gt;
    start&lt;br /&gt;
&lt;br /&gt;
=== Virtual Keyboard ===&lt;br /&gt;
&lt;br /&gt;
==== http://homepage3.nifty.com/tsato/xvkbd/ ====&lt;br /&gt;
&lt;br /&gt;
Download [http://homepage3.nifty.com/tsato/xvkbd/xvkbd-3.5.tar.gz xvkbd-3.5.tar.gz], install&lt;br /&gt;
    xmkf&lt;br /&gt;
    make &lt;br /&gt;
    make install&lt;br /&gt;
&lt;br /&gt;
and run: &lt;br /&gt;
&lt;br /&gt;
    xvkbd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Files ===&lt;br /&gt;
==== xorg.conf ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Section &amp;quot;ServerLayout&amp;quot;&lt;br /&gt;
Identifier	&amp;quot;myLaout&amp;quot;&lt;br /&gt;
Screen		&amp;quot;myScreen&amp;quot;&lt;br /&gt;
# InputDevice     &amp;quot;mymouse&amp;quot;&lt;br /&gt;
InputDevice	&amp;quot;mytouchscreen&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;Screen&amp;quot;&lt;br /&gt;
Identifier	&amp;quot;myScreen&amp;quot;&lt;br /&gt;
Device		&amp;quot;myfbdev&amp;quot;&lt;br /&gt;
DefaultDepth 	24&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;Device&amp;quot;&lt;br /&gt;
Identifier	&amp;quot;myFbdev&amp;quot;&lt;br /&gt;
Driver		&amp;quot;fbdev&amp;quot;&lt;br /&gt;
Option		&amp;quot;fbdev&amp;quot; &amp;quot;/dev/graphics/fb0&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;InputDevice&amp;quot;&lt;br /&gt;
 Identifier	&amp;quot;mytouchscreen&amp;quot;&lt;br /&gt;
 Driver		&amp;quot;evdev&amp;quot;&lt;br /&gt;
 # Driver 	&amp;quot;synaptics&amp;quot;&lt;br /&gt;
 Option		&amp;quot;Device&amp;quot; &amp;quot;/dev/input/event3&amp;quot;&lt;br /&gt;
 # Option	&amp;quot;Protocol&amp;quot; &amp;quot;Auto&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== lnx_init.c patch ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--- xorg-server-1.12.2/hw/xfree86/os-support/linux/lnx_init.c	2014-09-04 22:53:13.450000054 +0530&lt;br /&gt;
+++ xorg-server-1.12.2.org/hw/xfree86/os-support/linux/lnx_init.c	2012-05-17 22:39:03.000000000 +0530&lt;br /&gt;
@@ -48,18 +48,15 @@&lt;br /&gt;
 static void&lt;br /&gt;
 drain_console(int fd, void *closure)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     errno = 0;&lt;br /&gt;
     if (tcflush(fd, TCIOFLUSH) == -1 &amp;amp;&amp;amp; errno == EIO) {&lt;br /&gt;
         xf86SetConsoleHandler(NULL, NULL);&lt;br /&gt;
     }&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 static void&lt;br /&gt;
 switch_to(int vt, const char *from)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     int ret;&lt;br /&gt;
 &lt;br /&gt;
     SYSCALL(ret = ioctl(xf86Info.consoleFd, VT_ACTIVATE, vt));&lt;br /&gt;
@@ -69,13 +66,11 @@&lt;br /&gt;
     SYSCALL(ret = ioctl(xf86Info.consoleFd, VT_WAITACTIVE, vt));&lt;br /&gt;
     if (ret &amp;lt; 0)&lt;br /&gt;
         FatalError(&amp;quot;%s: VT_WAITACTIVE failed: %s\n&amp;quot;, from, strerror(errno));&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void&lt;br /&gt;
 xf86OpenConsole(void)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     int i, fd = -1, ret;&lt;br /&gt;
     struct vt_mode VT;&lt;br /&gt;
     struct vt_stat vts;&lt;br /&gt;
@@ -254,13 +249,11 @@&lt;br /&gt;
             switch_to(xf86Info.vtno, &amp;quot;xf86OpenConsole&amp;quot;);&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void&lt;br /&gt;
 xf86CloseConsole(void)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     struct vt_mode VT;&lt;br /&gt;
     int ret;&lt;br /&gt;
 &lt;br /&gt;
@@ -307,7 +300,6 @@&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
     close(xf86Info.consoleFd);  /* make the vt-manager happy */&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Running some tests ==&lt;br /&gt;
&lt;br /&gt;
=== Testing the framebuffer ===		&lt;br /&gt;
&lt;br /&gt;
For these tests, I stopped android &amp;quot;SurfaceFlinger&amp;quot; and freed up /dev/graphics/fb0. by running &amp;quot;stop&amp;quot;&lt;br /&gt;
command. Before running stop, make sure that the display is on ( not blank ). For these tests, I had&lt;br /&gt;
two terminals up on the host PC with one of them running just adb shell with su, and other running&lt;br /&gt;
chrooted slackware shell. SurfaceFlinger was stopped from su shell, and tests from Slackware shell.&lt;br /&gt;
&lt;br /&gt;
Please not Slackware shell is also running as user root.&lt;br /&gt;
&lt;br /&gt;
==== Stopping android - sort of ====&lt;br /&gt;
&lt;br /&gt;
Here is how to stop the SurfaceFlinger and get framebuffer free:&lt;br /&gt;
&lt;br /&gt;
    adb shell&lt;br /&gt;
    su&lt;br /&gt;
    stop&lt;br /&gt;
&lt;br /&gt;
Now the display goes blank, with backlight on.&lt;br /&gt;
&lt;br /&gt;
Get one of these tests.&lt;br /&gt;
[https://gist.githubusercontent.com/rafalrusin/1482697/raw/32c6c0d79b870ffb618aa7b7c664736ca5e150fe/fbtest.c  fbtest] or &lt;br /&gt;
[http://stackoverflow.com/questions/4996777/paint-pixels-to-screen-via-linux-framebuffer Paint-pixels-to-screen-  via-linux-framebuffer] or &lt;br /&gt;
[http://cep.xray.aps.anl.gov/software/qt4-x11-4.2.2/qtopiacore-testingframebuffer.html qtopiacore-testingframebuffer] All these tests worked on the Tablet. Transfer the tests to tablet using adb push&lt;br /&gt;
command.&lt;br /&gt;
&lt;br /&gt;
from Slackware shell, running under adb shell:&lt;br /&gt;
&lt;br /&gt;
    gcc fbtest.c&lt;br /&gt;
    ./a.out&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
once done, go back to android su shell from adb, and:&lt;br /&gt;
&lt;br /&gt;
==== Getting back to android ====&lt;br /&gt;
  &lt;br /&gt;
    start&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
After few seconds android display will be back on. &lt;br /&gt;
&lt;br /&gt;
=== Running evtest ===&lt;br /&gt;
&lt;br /&gt;
Download [http://cgit.freedesktop.org/~whot/evtest/tree/evtest.c evtest.c].&lt;br /&gt;
&lt;br /&gt;
   gcc -o gcc -o evtest evtest.c&lt;br /&gt;
   ./evtest&lt;br /&gt;
   see evtest.log for sample outpu&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== evtest.log ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
No device specified, trying to scan all of /dev/input/event*&lt;br /&gt;
Available devices:&lt;br /&gt;
/dev/input/event0:	mtk-kpd&lt;br /&gt;
/dev/input/event1:	ACCDET&lt;br /&gt;
/dev/input/event2:	hwmdata&lt;br /&gt;
/dev/input/event3:	mtk-tpd&lt;br /&gt;
Select the device event number [0-3]: Input driver version is 1.0.1&lt;br /&gt;
Input device ID: bus 0x0 vendor 0x0 product 0x0 version 0x0&lt;br /&gt;
Input device name: &amp;quot;mtk-tpd&amp;quot;&lt;br /&gt;
Supported events:&lt;br /&gt;
  Event type 0 (EV_SYN)&lt;br /&gt;
  Event type 1 (EV_KEY)&lt;br /&gt;
    Event code 330 (BTN_TOUCH)&lt;br /&gt;
  Event type 3 (EV_ABS)&lt;br /&gt;
    Event code 0 (ABS_X)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      800&lt;br /&gt;
      Resolution     800&lt;br /&gt;
    Event code 1 (ABS_Y)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      480&lt;br /&gt;
      Resolution     480&lt;br /&gt;
    Event code 24 (ABS_PRESSURE)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      255&lt;br /&gt;
    Event code 48 (ABS_MT_TOUCH_MAJOR)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      100&lt;br /&gt;
    Event code 49 (ABS_MT_TOUCH_MINOR)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      100&lt;br /&gt;
    Event code 53 (ABS_MT_POSITION_X)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      800&lt;br /&gt;
    Event code 54 (ABS_MT_POSITION_Y)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      480&lt;br /&gt;
    Event code 57 (ABS_MT_TRACKING_ID)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max        0&lt;br /&gt;
Properties:&lt;br /&gt;
  Property type 1 (INPUT_PROP_DIRECT)&lt;br /&gt;
Testing ... (interrupt to exit)&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845467.116675, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845467.116682, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.116687, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.116691, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.116695, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.116699, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.116703, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.133145, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.133151, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.133155, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.133160, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.133164, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.133167, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.148724, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.148730, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.148734, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.148738, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.148742, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.148745, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.164975, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.164981, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.164985, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.164989, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.164994, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.164997, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.180722, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.180727, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.180731, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.180736, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.180740, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.180743, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.196495, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.196501, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.196505, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.196510, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.196514, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.196517, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.211803, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.211809, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.211813, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.211818, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.211822, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.211825, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845467.225500, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845467.225504, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.225507, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845467.466531, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845467.466536, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.466540, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.466545, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.466549, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.466553, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.466556, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.482028, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.482033, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.482038, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.482042, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.482046, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.482049, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.497971, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.497977, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.497981, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.497986, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.497990, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.497993, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.514030, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.514036, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.514040, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.514044, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.514048, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.514051, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.530188, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.530194, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.530198, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.530202, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.530206, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.530210, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.545804, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.545809, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.545813, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.545818, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.545822, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.545825, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845467.559686, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845467.559690, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.559693, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845467.880062, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845467.880067, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.880072, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 678&lt;br /&gt;
Event: time 1409845467.880076, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 130&lt;br /&gt;
Event: time 1409845467.880080, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.880084, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.880088, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.895834, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.895839, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 678&lt;br /&gt;
Event: time 1409845467.895844, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 130&lt;br /&gt;
Event: time 1409845467.895848, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.895852, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.895855, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.911757, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.911762, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 678&lt;br /&gt;
Event: time 1409845467.911767, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 130&lt;br /&gt;
Event: time 1409845467.911771, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.911775, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.911778, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.927833, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.927838, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 680&lt;br /&gt;
Event: time 1409845467.927842, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 129&lt;br /&gt;
Event: time 1409845467.927847, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.927851, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.927854, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.944420, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.944426, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845467.944430, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 129&lt;br /&gt;
Event: time 1409845467.944434, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.944438, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.944442, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.959239, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.959244, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 683&lt;br /&gt;
Event: time 1409845467.959249, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 129&lt;br /&gt;
Event: time 1409845467.959253, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.959257, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.959260, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.974974, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.974980, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 685&lt;br /&gt;
Event: time 1409845467.974984, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 129&lt;br /&gt;
Event: time 1409845467.974988, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.974992, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.974996, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845467.989318, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845467.989321, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.989324, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845468.246567, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845468.246571, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.246576, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 659&lt;br /&gt;
Event: time 1409845468.246580, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 419&lt;br /&gt;
Event: time 1409845468.246584, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.246589, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.246592, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.262652, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.262657, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 659&lt;br /&gt;
Event: time 1409845468.262662, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 419&lt;br /&gt;
Event: time 1409845468.262666, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.262670, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.262673, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.278454, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.278460, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 659&lt;br /&gt;
Event: time 1409845468.278464, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 419&lt;br /&gt;
Event: time 1409845468.278468, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.278473, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.278476, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.293932, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.293938, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 653&lt;br /&gt;
Event: time 1409845468.293942, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 419&lt;br /&gt;
Event: time 1409845468.293946, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.293950, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.293953, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.309429, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.309434, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 639&lt;br /&gt;
Event: time 1409845468.309438, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 416&lt;br /&gt;
Event: time 1409845468.309443, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.309447, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.309450, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845468.323482, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845468.323486, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.323489, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845468.596393, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845468.596397, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.596402, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 226&lt;br /&gt;
Event: time 1409845468.596406, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 302&lt;br /&gt;
Event: time 1409845468.596410, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.596414, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.596417, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.612126, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.612132, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 226&lt;br /&gt;
Event: time 1409845468.612136, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 302&lt;br /&gt;
Event: time 1409845468.612140, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.612144, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.612147, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.628256, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.628262, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 226&lt;br /&gt;
Event: time 1409845468.628266, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 302&lt;br /&gt;
Event: time 1409845468.628271, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.628275, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.628278, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.644136, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.644142, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 226&lt;br /&gt;
Event: time 1409845468.644146, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 302&lt;br /&gt;
Event: time 1409845468.644151, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.644155, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.644158, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.659867, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.659873, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 226&lt;br /&gt;
Event: time 1409845468.659877, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 302&lt;br /&gt;
Event: time 1409845468.659882, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.659886, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.659889, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845468.673538, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845468.673541, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.673544, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845468.946001, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845468.946005, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.946010, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845468.946014, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845468.946018, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.946022, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.946025, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.962071, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.962077, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845468.962081, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845468.962085, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.962089, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.962093, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.977741, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.977747, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845468.977751, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845468.977755, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.977759, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.977762, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.993678, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.993684, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845468.993688, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845468.993692, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.993696, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.993700, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.010083, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.010089, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845469.010093, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845469.010097, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.010101, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.010104, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.026187, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.026193, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 665&lt;br /&gt;
Event: time 1409845469.026197, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 357&lt;br /&gt;
Event: time 1409845469.026201, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.026205, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.026209, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.041432, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.041437, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 640&lt;br /&gt;
Event: time 1409845469.041442, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 357&lt;br /&gt;
Event: time 1409845469.041446, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.041450, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.041453, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.057294, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.057299, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 581&lt;br /&gt;
Event: time 1409845469.057304, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 364&lt;br /&gt;
Event: time 1409845469.057308, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.057312, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.057315, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.073883, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.073889, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 540&lt;br /&gt;
Event: time 1409845469.073893, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 364&lt;br /&gt;
Event: time 1409845469.073897, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.073901, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.073905, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.089886, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.089892, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 496&lt;br /&gt;
Event: time 1409845469.089896, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 364&lt;br /&gt;
Event: time 1409845469.089900, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.089904, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.089908, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.105335, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.105340, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 450&lt;br /&gt;
Event: time 1409845469.105344, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 364&lt;br /&gt;
Event: time 1409845469.105349, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.105353, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.105356, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.121183, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.121188, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 404&lt;br /&gt;
Event: time 1409845469.121192, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845469.121197, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.121201, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.121204, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.136794, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.136799, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 360&lt;br /&gt;
Event: time 1409845469.136803, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845469.136808, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.136812, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.136815, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.152605, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.152611, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 312&lt;br /&gt;
Event: time 1409845469.152615, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845469.152619, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.152623, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.152626, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.169594, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.169599, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 270&lt;br /&gt;
Event: time 1409845469.169604, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 366&lt;br /&gt;
Event: time 1409845469.169608, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.169612, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.169615, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.185263, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.185268, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 236&lt;br /&gt;
Event: time 1409845469.185273, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 373&lt;br /&gt;
Event: time 1409845469.185277, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.185281, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.185284, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.200843, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.200848, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 207&lt;br /&gt;
Event: time 1409845469.200853, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 376&lt;br /&gt;
Event: time 1409845469.200857, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.200861, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.200864, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.216857, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.216863, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 207&lt;br /&gt;
Event: time 1409845469.216867, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 376&lt;br /&gt;
Event: time 1409845469.216871, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.216875, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.216878, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845469.230419, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845469.230423, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.230426, -------------- SYN_REPORT ------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Running xinput ===&lt;br /&gt;
&lt;br /&gt;
	xinput --list&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
â¡ Virtual core pointer                         id=2    [master pointer  (3)]&lt;br /&gt;
â   â³ Virtual core XTEST pointer               id=4    [slave  pointer  (2)]&lt;br /&gt;
â   â³ mytouchscreen                            id=6    [slave  pointer  (2)]&lt;br /&gt;
â£ Virtual core keyboard                        id=3    [master keyboard (2)]&lt;br /&gt;
    â³ Virtual core XTEST keyboard              id=5    [slave  keyboard (3)]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== xinput log ====&lt;br /&gt;
&lt;br /&gt;
	xinput test 6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
motion a[0]=53 a[1]=58 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=53 a[1]=58 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=53 a[1]=58 &lt;br /&gt;
motion a[0]=513 a[1]=91 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=513 a[1]=91 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=513 a[1]=91 &lt;br /&gt;
motion a[0]=659 a[1]=436 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=659 a[1]=436 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=659 a[1]=436 &lt;br /&gt;
motion a[0]=624 a[1]=152 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=624 a[1]=152 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
motion a[0]=577 a[1]=174 &lt;br /&gt;
motion a[0]=501 a[1]=203 &lt;br /&gt;
motion a[0]=457 a[1]=219 &lt;br /&gt;
motion a[0]=411 a[1]=232 &lt;br /&gt;
motion a[0]=371 a[1]=240 &lt;br /&gt;
motion a[0]=341 a[1]=245 &lt;br /&gt;
button release 1 a[0]=341 a[1]=245 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</description>
			<pubDate>Fri, 05 Sep 2014 09:26:26 GMT</pubDate>
			<dc:creator>Gv</dc:creator>
			<comments>https://www.slackwiki.com/Talk:SlackwareOnMt6582Tablet</comments>
		</item>
		<item>
			<title>SlackwareOnMt6582Tablet</title>
			<link>https://www.slackwiki.com/index.php?title=SlackwareOnMt6582Tablet&amp;diff=929</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=SlackwareOnMt6582Tablet&amp;diff=929</guid>
			<description>&lt;p&gt;Gv: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Specifications of the Tablet PC which was used here ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Processor : Arm Cortex A7, 1.3 GHz dual core.&lt;br /&gt;
             : ARMv7 Processor rev 3 (v7l),&lt;br /&gt;
   Hardware  : MT8312&lt;br /&gt;
   SOC       : mt6582.&lt;br /&gt;
   Memory    : 512MB RAM&lt;br /&gt;
   Storage   : 4GB Built in storage.&lt;br /&gt;
   Micro SD  : Slot for upto 32GB&lt;br /&gt;
   Display   : 7&amp;quot; WVGA 800x480&lt;br /&gt;
   OS        : Android 4.2 Jelly Bean&lt;br /&gt;
   GPU       : Mali?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Rooting the Tablet PC ==&lt;br /&gt;
&lt;br /&gt;
I used [http://www.techverse.net/fastest-root-android-phone-computer/ Framaroot-1.9.3.apk] to root the device. &lt;br /&gt;
&lt;br /&gt;
== Installing Linux - Slackware 14.1 - sort of. ==&lt;br /&gt;
&lt;br /&gt;
With the problem of not having kernel source for the SOC, and no no bootloader unlock possible yet, next best option was to use a chroot environment.&lt;br /&gt;
&lt;br /&gt;
So far, command line mode works fine. Here is the description of how Slackware was installed on to external micro SD Card. Was able to do some basic tests on the frame buffer display. Since there is no VTs available was not able to test Xorg, though could get Mali module compiled and loaded. More details below.&lt;br /&gt;
&lt;br /&gt;
=== Preparing SD Card on host computer ===&lt;br /&gt;
&lt;br /&gt;
Use fdisk to create one or two partitions, one for ext4 and other ( optional ) swap partition. Once these are created, assuming the device on host is /dev/sdc,&lt;br /&gt;
&lt;br /&gt;
    mkfs.ext4 /dev/sdc1&lt;br /&gt;
    sync&lt;br /&gt;
    eject sdc&lt;br /&gt;
    eject -t sdc&lt;br /&gt;
    mkdir slack&lt;br /&gt;
    mount /dev/sdc1 slack&lt;br /&gt;
    cd slack&lt;br /&gt;
    mkdir sl&lt;br /&gt;
    cd sl&lt;br /&gt;
&lt;br /&gt;
If you don't have Slackware installation files, [http://arm.slackware.com/getslack/ Get Slackware Arm] first. &lt;br /&gt;
&lt;br /&gt;
    mkdir slackware14.1&lt;br /&gt;
    cd slackware14.1&lt;br /&gt;
    (cd /path..to../slackware14.1 ; tar cfz - *) | (tar xfz - )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://sourceforge.net/projects/slackwareonapc8750/files/initrd-kirkwood.cpio.gz/download initrd-kirkwood.cpio] contains the setup program, but since I couldn't boot with custom initrd, sdc1 /sl area is prepared to have the installation files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    cpio -id &amp;lt; initrd-kirkwood.cpio&lt;br /&gt;
    sync&lt;br /&gt;
    umount slack&lt;br /&gt;
&lt;br /&gt;
Now that the sd card is ready for installation:&lt;br /&gt;
&lt;br /&gt;
    eject sdc&lt;br /&gt;
	&lt;br /&gt;
and plug it into the device. Once that is done,&lt;br /&gt;
&lt;br /&gt;
=== Getting installer ready ===&lt;br /&gt;
&lt;br /&gt;
Now plug the card in tablet pc, boot, from host computer,&lt;br /&gt;
&lt;br /&gt;
==== starting a adb shell with su ====&lt;br /&gt;
&lt;br /&gt;
    adb shell&lt;br /&gt;
    su&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== chroot to installe ====&lt;br /&gt;
&lt;br /&gt;
    cd /data/local/tmp&lt;br /&gt;
    mkdir slackware&lt;br /&gt;
    mount /dev/block/mmcblk1p1 slackware&lt;br /&gt;
    cd slackware/sl&lt;br /&gt;
    export PATH=/data/local/tmp/bin:$PATH&lt;br /&gt;
    mountpoint proc || mount -t proc none proc/&lt;br /&gt;
    mountpoint sys || mount -t sysfs sys sys/&lt;br /&gt;
    mountpoint dev || mount -o bind  /dev dev/&lt;br /&gt;
    export PATH=/usr/bin:/bin:/usr/lib/setup:$PATH&lt;br /&gt;
    pushd /dev&lt;br /&gt;
    ln -s /dev/block/mmc1blk* .&lt;br /&gt;
    popd&lt;br /&gt;
    chroot . /bin/bash&lt;br /&gt;
    mount -t ext4 /dev/mmcblk1p1 mnt&lt;br /&gt;
&lt;br /&gt;
=== Running setup ===&lt;br /&gt;
&lt;br /&gt;
Install Slackware onto mmcblk1p1, from pre mounted directory, sdc1 : /slackware14.1/slackware&lt;br /&gt;
&lt;br /&gt;
    setup&lt;br /&gt;
        Proceed and select /dev/mmcblk1p1 as target, no format&lt;br /&gt;
        For source, select pre mounted directory option, /slackware14.1/slackware&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
=== Complete installation, and configuration ===&lt;br /&gt;
&lt;br /&gt;
Once the complete installation is done,&lt;br /&gt;
&lt;br /&gt;
    umount proc&lt;br /&gt;
    umount sys&lt;br /&gt;
    umount dev&lt;br /&gt;
    sync&lt;br /&gt;
    cd ../..&lt;br /&gt;
    umount slackware&lt;br /&gt;
&lt;br /&gt;
== Getting into installed Slackware: ==&lt;br /&gt;
&lt;br /&gt;
==== Running slackware su shell ====&lt;br /&gt;
&lt;br /&gt;
    adb shell&lt;br /&gt;
    su&lt;br /&gt;
    mount /dev/block/mmcblk1p1 slackware&lt;br /&gt;
    cd slackware&lt;br /&gt;
    mountpoint proc || mount -t proc none proc/&lt;br /&gt;
    mountpoint sys || mount -t sysfs sys sys/&lt;br /&gt;
    mountpoint dev || mount -o bind  /dev dev/&lt;br /&gt;
    export PATH=/usr/bin:/bin:/usr/lib/setup:$PATH&lt;br /&gt;
    chroot . /bin/bash&lt;br /&gt;
    su -	&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From here you can do &amp;quot;normal&amp;quot; Slackware activities, sort of. Main things that were lacking in my case&lt;br /&gt;
were VTs (ttys). Compiling programs and running programs that require no X windows worked fine. I ran&lt;br /&gt;
couple of frame buffer tests too. &lt;br /&gt;
		&lt;br /&gt;
&lt;br /&gt;
== Getting Xorg up and running - kind of ==&lt;br /&gt;
&lt;br /&gt;
=== Getting Xorg compiled ===&lt;br /&gt;
&lt;br /&gt;
Ecept for Pointer ( touchscreen ) failure, Xorg seems to be working fine. evtest, xinput tests are showing touchscreen activity, but the cursor seems to be not&lt;br /&gt;
moving. But if a window like xvkbd or xterm or so is launched, you can move the window using the touch screen!. And kvkbd input also works. &lt;br /&gt;
&lt;br /&gt;
Download [http://www.x.org/releases/X11R7.7/src/everything/xorg-server-1.12.2.tar.bz2  xorg-server-1.12.2], &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	tar xf xorg-server-1.12.2.tar.bz2&lt;br /&gt;
&lt;br /&gt;
Also make changes to xorg-server-1.12.2/hw/xfree86/os-support/linux/lnx\_init.c so that VT / console related code is disabled. See the patch section.&lt;br /&gt;
&lt;br /&gt;
	cd xorg-server-1.12.2&lt;br /&gt;
	export PKG_CONFIG_PATH=/opt/local/sw/share/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
	export PKG_CONFIG_PATH=/opt/local/sw/lib/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
	export LD_LIBRARY_PATH=/opt/local/sw/lib:$LD_LIBRARY_PATH&lt;br /&gt;
	export PATH=/opt/local/sw/bin:$PATH&lt;br /&gt;
	./configure --prefix=/opt/local/sw --enable-kdrive --enable-kdrive-evdev --with-xkb-path=/opt/local/sw/share/X11/xkb --with-xkb-output=/var/lib/xkb --with-xkb-bin-directory=/opt/local/sw/bin --with-default-xkb-rules=xorg --with-default-xkb-model=pc104 --with-default-xkb-layout=us  --disable-xnest --disable-dmx --disable-xquartz --disable-xwin --disable-xephyr --disable-config-udev --enable-tslib --disable-docs  --disable-devel-docs LDFLAGS=-L/opt/local/sw/lib CFLAGS=-I/opt/local/sw/include&lt;br /&gt;
make -j 3&lt;br /&gt;
&lt;br /&gt;
If all required packages are not on the system, compilation will fail. Download each of the requiered packags , untar, configure and install.&lt;br /&gt;
&lt;br /&gt;
	./configure --prefix=/opt/local/sw&lt;br /&gt;
	make -j 3 install&lt;br /&gt;
&lt;br /&gt;
Once xorg-server-1.12.2 compilation is succesfull, &lt;br /&gt;
	make install&lt;br /&gt;
	&lt;br /&gt;
=== Compiling additional drivers required ===&lt;br /&gt;
&lt;br /&gt;
==== fbdev ====&lt;br /&gt;
&lt;br /&gt;
xf86-video-fbdev-0.4.2&lt;br /&gt;
export PKG_CONFIG_PATH=/opt/local/sw/lib/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
./configure --prefix=/opt/local/sw&lt;br /&gt;
&lt;br /&gt;
src/fbdev.c xf86-video-fbdev-0.4.2/src/fbdev.c&lt;br /&gt;
// #include &amp;quot;mibstore.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
make -j 3&lt;br /&gt;
make install&lt;br /&gt;
&lt;br /&gt;
==== evdev ====&lt;br /&gt;
&lt;br /&gt;
    xf86-input-evdev-2.7.0&lt;br /&gt;
    ./configure --prefix=/opt/local/sw&lt;br /&gt;
&lt;br /&gt;
    src/Makefile:&lt;br /&gt;
    evdev_drv_la_LIBADD = $(MTDEV_LIBS) $(UDEV_LIBS)&lt;br /&gt;
    ( if not done, causes evdev_drv.so: undefined symbol: udev_new when Xorg is ran)&lt;br /&gt;
&lt;br /&gt;
    make -j 3 &lt;br /&gt;
    make install&lt;br /&gt;
&lt;br /&gt;
Once installed make an xorg.conf [ see xorg.conf section ] in /etc/X11/&lt;br /&gt;
and run startx as described below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== synaptics ====&lt;br /&gt;
&lt;br /&gt;
synaptics driver fails with error message relating to Protocol.&lt;br /&gt;
&lt;br /&gt;
    xf86-input-synaptics-1.6.1.tar.bz2&lt;br /&gt;
    ./configure --prefix=/opt/local/sw CFLAGS=-I/opt/local/sw/include/xorg LDFLAGS=-L/opt/local/sw/lib&lt;br /&gt;
    make -j 3&lt;br /&gt;
    make install&lt;br /&gt;
&lt;br /&gt;
When running Xorg, &lt;br /&gt;
&lt;br /&gt;
    [  4784.385] (EE) synaptics: mytouchscreen: Synaptics driver unable to detect protocol&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Running X ===&lt;br /&gt;
&lt;br /&gt;
make sure display is on, and&lt;br /&gt;
&lt;br /&gt;
From adb shell as su:&lt;br /&gt;
&lt;br /&gt;
    stop&lt;br /&gt;
&lt;br /&gt;
From slackware chroot environment in adb shell [ see section ]:&lt;br /&gt;
&lt;br /&gt;
    startx -- /opt/local/sw/bin/Xorg -pointer mytouchscreen :0&lt;br /&gt;
&lt;br /&gt;
Once Finished, from adb shell as su:&lt;br /&gt;
&lt;br /&gt;
    start&lt;br /&gt;
&lt;br /&gt;
=== Virtual Keyboard ===&lt;br /&gt;
&lt;br /&gt;
==== http://homepage3.nifty.com/tsato/xvkbd/ ====&lt;br /&gt;
&lt;br /&gt;
Download [http://homepage3.nifty.com/tsato/xvkbd/xvkbd-3.5.tar.gz xvkbd-3.5.tar.gz], install&lt;br /&gt;
    xmkf&lt;br /&gt;
    make &lt;br /&gt;
    make install&lt;br /&gt;
&lt;br /&gt;
and run: &lt;br /&gt;
&lt;br /&gt;
    xvkbd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Files ===&lt;br /&gt;
==== xorg.conf ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Section &amp;quot;ServerLayout&amp;quot;&lt;br /&gt;
Identifier	&amp;quot;myLaout&amp;quot;&lt;br /&gt;
Screen		&amp;quot;myScreen&amp;quot;&lt;br /&gt;
# InputDevice     &amp;quot;mymouse&amp;quot;&lt;br /&gt;
InputDevice	&amp;quot;mytouchscreen&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;Screen&amp;quot;&lt;br /&gt;
Identifier	&amp;quot;myScreen&amp;quot;&lt;br /&gt;
Device		&amp;quot;myfbdev&amp;quot;&lt;br /&gt;
DefaultDepth 	24&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;Device&amp;quot;&lt;br /&gt;
Identifier	&amp;quot;myFbdev&amp;quot;&lt;br /&gt;
Driver		&amp;quot;fbdev&amp;quot;&lt;br /&gt;
Option		&amp;quot;fbdev&amp;quot; &amp;quot;/dev/graphics/fb0&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;InputDevice&amp;quot;&lt;br /&gt;
 Identifier	&amp;quot;mytouchscreen&amp;quot;&lt;br /&gt;
 Driver		&amp;quot;evdev&amp;quot;&lt;br /&gt;
 # Driver 	&amp;quot;synaptics&amp;quot;&lt;br /&gt;
 Option		&amp;quot;Device&amp;quot; &amp;quot;/dev/input/event3&amp;quot;&lt;br /&gt;
 # Option	&amp;quot;Protocol&amp;quot; &amp;quot;Auto&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== lnx_init.c patch ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--- xorg-server-1.12.2/hw/xfree86/os-support/linux/lnx_init.c	2014-09-04 22:53:13.450000054 +0530&lt;br /&gt;
+++ xorg-server-1.12.2.org/hw/xfree86/os-support/linux/lnx_init.c	2012-05-17 22:39:03.000000000 +0530&lt;br /&gt;
@@ -48,18 +48,15 @@&lt;br /&gt;
 static void&lt;br /&gt;
 drain_console(int fd, void *closure)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     errno = 0;&lt;br /&gt;
     if (tcflush(fd, TCIOFLUSH) == -1 &amp;amp;&amp;amp; errno == EIO) {&lt;br /&gt;
         xf86SetConsoleHandler(NULL, NULL);&lt;br /&gt;
     }&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 static void&lt;br /&gt;
 switch_to(int vt, const char *from)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     int ret;&lt;br /&gt;
 &lt;br /&gt;
     SYSCALL(ret = ioctl(xf86Info.consoleFd, VT_ACTIVATE, vt));&lt;br /&gt;
@@ -69,13 +66,11 @@&lt;br /&gt;
     SYSCALL(ret = ioctl(xf86Info.consoleFd, VT_WAITACTIVE, vt));&lt;br /&gt;
     if (ret &amp;lt; 0)&lt;br /&gt;
         FatalError(&amp;quot;%s: VT_WAITACTIVE failed: %s\n&amp;quot;, from, strerror(errno));&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void&lt;br /&gt;
 xf86OpenConsole(void)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     int i, fd = -1, ret;&lt;br /&gt;
     struct vt_mode VT;&lt;br /&gt;
     struct vt_stat vts;&lt;br /&gt;
@@ -254,13 +249,11 @@&lt;br /&gt;
             switch_to(xf86Info.vtno, &amp;quot;xf86OpenConsole&amp;quot;);&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void&lt;br /&gt;
 xf86CloseConsole(void)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     struct vt_mode VT;&lt;br /&gt;
     int ret;&lt;br /&gt;
 &lt;br /&gt;
@@ -307,7 +300,6 @@&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
     close(xf86Info.consoleFd);  /* make the vt-manager happy */&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Running some tests ==&lt;br /&gt;
&lt;br /&gt;
=== Testing the framebuffer ===		&lt;br /&gt;
&lt;br /&gt;
For these tests, I stopped android &amp;quot;SurfaceFlinger&amp;quot; and freed up /dev/graphics/fb0. by running &amp;quot;stop&amp;quot;&lt;br /&gt;
command. Before running stop, make sure that the display is on ( not blank ). For these tests, I had&lt;br /&gt;
two terminals up on the host PC with one of them running just adb shell with su, and other running&lt;br /&gt;
chrooted slackware shell. SurfaceFlinger was stopped from su shell, and tests from Slackware shell.&lt;br /&gt;
&lt;br /&gt;
Please not Slackware shell is also running as user root.&lt;br /&gt;
&lt;br /&gt;
==== Stopping android - sort of ====&lt;br /&gt;
&lt;br /&gt;
Here is how to stop the SurfaceFlinger and get framebuffer free:&lt;br /&gt;
&lt;br /&gt;
    adb shell&lt;br /&gt;
    su&lt;br /&gt;
    stop&lt;br /&gt;
&lt;br /&gt;
Now the display goes blank, with backlight on.&lt;br /&gt;
&lt;br /&gt;
Get one of these tests.&lt;br /&gt;
[https://gist.githubusercontent.com/rafalrusin/1482697/raw/32c6c0d79b870ffb618aa7b7c664736ca5e150fe/fbtest.c  fbtest] or &lt;br /&gt;
[http://stackoverflow.com/questions/4996777/paint-pixels-to-screen-via-linux-framebuffer Paint-pixels-to-screen-  via-linux-framebuffer] or &lt;br /&gt;
[http://cep.xray.aps.anl.gov/software/qt4-x11-4.2.2/qtopiacore-testingframebuffer.html qtopiacore-testingframebuffer] All these tests worked on the Tablet. Transfer the tests to tablet using adb push&lt;br /&gt;
command.&lt;br /&gt;
&lt;br /&gt;
from Slackware shell, running under adb shell:&lt;br /&gt;
&lt;br /&gt;
    gcc fbtest.c&lt;br /&gt;
    ./a.out&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
once done, go back to android su shell from adb, and:&lt;br /&gt;
&lt;br /&gt;
==== Getting back to android ====&lt;br /&gt;
  &lt;br /&gt;
    start&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
After few seconds android display will be back on. &lt;br /&gt;
&lt;br /&gt;
=== Running evtest ===&lt;br /&gt;
&lt;br /&gt;
Download [http://cgit.freedesktop.org/~whot/evtest/tree/evtest.c evtest.c].&lt;br /&gt;
&lt;br /&gt;
   gcc -o gcc -o evtest evtest.c&lt;br /&gt;
   ./evtest&lt;br /&gt;
   see evtest.log for sample outpu&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== evtest.log ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
No device specified, trying to scan all of /dev/input/event*&lt;br /&gt;
Available devices:&lt;br /&gt;
/dev/input/event0:	mtk-kpd&lt;br /&gt;
/dev/input/event1:	ACCDET&lt;br /&gt;
/dev/input/event2:	hwmdata&lt;br /&gt;
/dev/input/event3:	mtk-tpd&lt;br /&gt;
Select the device event number [0-3]: Input driver version is 1.0.1&lt;br /&gt;
Input device ID: bus 0x0 vendor 0x0 product 0x0 version 0x0&lt;br /&gt;
Input device name: &amp;quot;mtk-tpd&amp;quot;&lt;br /&gt;
Supported events:&lt;br /&gt;
  Event type 0 (EV_SYN)&lt;br /&gt;
  Event type 1 (EV_KEY)&lt;br /&gt;
    Event code 330 (BTN_TOUCH)&lt;br /&gt;
  Event type 3 (EV_ABS)&lt;br /&gt;
    Event code 0 (ABS_X)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      800&lt;br /&gt;
      Resolution     800&lt;br /&gt;
    Event code 1 (ABS_Y)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      480&lt;br /&gt;
      Resolution     480&lt;br /&gt;
    Event code 24 (ABS_PRESSURE)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      255&lt;br /&gt;
    Event code 48 (ABS_MT_TOUCH_MAJOR)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      100&lt;br /&gt;
    Event code 49 (ABS_MT_TOUCH_MINOR)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      100&lt;br /&gt;
    Event code 53 (ABS_MT_POSITION_X)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      800&lt;br /&gt;
    Event code 54 (ABS_MT_POSITION_Y)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      480&lt;br /&gt;
    Event code 57 (ABS_MT_TRACKING_ID)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max        0&lt;br /&gt;
Properties:&lt;br /&gt;
  Property type 1 (INPUT_PROP_DIRECT)&lt;br /&gt;
Testing ... (interrupt to exit)&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845467.116675, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845467.116682, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.116687, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.116691, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.116695, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.116699, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.116703, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.133145, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.133151, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.133155, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.133160, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.133164, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.133167, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.148724, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.148730, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.148734, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.148738, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.148742, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.148745, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.164975, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.164981, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.164985, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.164989, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.164994, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.164997, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.180722, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.180727, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.180731, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.180736, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.180740, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.180743, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.196495, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.196501, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.196505, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.196510, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.196514, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.196517, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.211803, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.211809, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.211813, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.211818, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.211822, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.211825, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845467.225500, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845467.225504, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.225507, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845467.466531, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845467.466536, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.466540, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.466545, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.466549, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.466553, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.466556, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.482028, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.482033, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.482038, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.482042, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.482046, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.482049, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.497971, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.497977, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.497981, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.497986, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.497990, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.497993, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.514030, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.514036, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.514040, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.514044, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.514048, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.514051, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.530188, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.530194, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.530198, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.530202, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.530206, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.530210, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.545804, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.545809, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.545813, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.545818, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.545822, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.545825, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845467.559686, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845467.559690, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.559693, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845467.880062, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845467.880067, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.880072, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 678&lt;br /&gt;
Event: time 1409845467.880076, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 130&lt;br /&gt;
Event: time 1409845467.880080, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.880084, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.880088, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.895834, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.895839, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 678&lt;br /&gt;
Event: time 1409845467.895844, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 130&lt;br /&gt;
Event: time 1409845467.895848, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.895852, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.895855, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.911757, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.911762, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 678&lt;br /&gt;
Event: time 1409845467.911767, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 130&lt;br /&gt;
Event: time 1409845467.911771, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.911775, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.911778, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.927833, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.927838, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 680&lt;br /&gt;
Event: time 1409845467.927842, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 129&lt;br /&gt;
Event: time 1409845467.927847, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.927851, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.927854, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.944420, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.944426, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845467.944430, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 129&lt;br /&gt;
Event: time 1409845467.944434, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.944438, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.944442, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.959239, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.959244, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 683&lt;br /&gt;
Event: time 1409845467.959249, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 129&lt;br /&gt;
Event: time 1409845467.959253, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.959257, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.959260, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.974974, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.974980, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 685&lt;br /&gt;
Event: time 1409845467.974984, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 129&lt;br /&gt;
Event: time 1409845467.974988, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.974992, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.974996, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845467.989318, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845467.989321, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.989324, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845468.246567, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845468.246571, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.246576, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 659&lt;br /&gt;
Event: time 1409845468.246580, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 419&lt;br /&gt;
Event: time 1409845468.246584, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.246589, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.246592, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.262652, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.262657, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 659&lt;br /&gt;
Event: time 1409845468.262662, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 419&lt;br /&gt;
Event: time 1409845468.262666, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.262670, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.262673, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.278454, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.278460, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 659&lt;br /&gt;
Event: time 1409845468.278464, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 419&lt;br /&gt;
Event: time 1409845468.278468, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.278473, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.278476, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.293932, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.293938, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 653&lt;br /&gt;
Event: time 1409845468.293942, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 419&lt;br /&gt;
Event: time 1409845468.293946, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.293950, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.293953, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.309429, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.309434, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 639&lt;br /&gt;
Event: time 1409845468.309438, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 416&lt;br /&gt;
Event: time 1409845468.309443, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.309447, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.309450, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845468.323482, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845468.323486, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.323489, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845468.596393, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845468.596397, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.596402, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 226&lt;br /&gt;
Event: time 1409845468.596406, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 302&lt;br /&gt;
Event: time 1409845468.596410, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.596414, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.596417, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.612126, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.612132, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 226&lt;br /&gt;
Event: time 1409845468.612136, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 302&lt;br /&gt;
Event: time 1409845468.612140, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.612144, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.612147, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.628256, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.628262, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 226&lt;br /&gt;
Event: time 1409845468.628266, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 302&lt;br /&gt;
Event: time 1409845468.628271, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.628275, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.628278, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.644136, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.644142, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 226&lt;br /&gt;
Event: time 1409845468.644146, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 302&lt;br /&gt;
Event: time 1409845468.644151, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.644155, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.644158, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.659867, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.659873, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 226&lt;br /&gt;
Event: time 1409845468.659877, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 302&lt;br /&gt;
Event: time 1409845468.659882, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.659886, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.659889, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845468.673538, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845468.673541, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.673544, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845468.946001, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845468.946005, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.946010, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845468.946014, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845468.946018, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.946022, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.946025, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.962071, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.962077, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845468.962081, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845468.962085, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.962089, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.962093, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.977741, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.977747, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845468.977751, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845468.977755, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.977759, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.977762, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.993678, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.993684, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845468.993688, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845468.993692, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.993696, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.993700, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.010083, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.010089, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845469.010093, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845469.010097, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.010101, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.010104, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.026187, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.026193, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 665&lt;br /&gt;
Event: time 1409845469.026197, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 357&lt;br /&gt;
Event: time 1409845469.026201, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.026205, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.026209, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.041432, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.041437, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 640&lt;br /&gt;
Event: time 1409845469.041442, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 357&lt;br /&gt;
Event: time 1409845469.041446, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.041450, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.041453, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.057294, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.057299, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 581&lt;br /&gt;
Event: time 1409845469.057304, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 364&lt;br /&gt;
Event: time 1409845469.057308, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.057312, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.057315, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.073883, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.073889, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 540&lt;br /&gt;
Event: time 1409845469.073893, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 364&lt;br /&gt;
Event: time 1409845469.073897, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.073901, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.073905, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.089886, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.089892, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 496&lt;br /&gt;
Event: time 1409845469.089896, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 364&lt;br /&gt;
Event: time 1409845469.089900, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.089904, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.089908, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.105335, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.105340, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 450&lt;br /&gt;
Event: time 1409845469.105344, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 364&lt;br /&gt;
Event: time 1409845469.105349, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.105353, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.105356, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.121183, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.121188, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 404&lt;br /&gt;
Event: time 1409845469.121192, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845469.121197, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.121201, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.121204, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.136794, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.136799, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 360&lt;br /&gt;
Event: time 1409845469.136803, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845469.136808, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.136812, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.136815, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.152605, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.152611, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 312&lt;br /&gt;
Event: time 1409845469.152615, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845469.152619, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.152623, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.152626, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.169594, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.169599, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 270&lt;br /&gt;
Event: time 1409845469.169604, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 366&lt;br /&gt;
Event: time 1409845469.169608, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.169612, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.169615, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.185263, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.185268, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 236&lt;br /&gt;
Event: time 1409845469.185273, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 373&lt;br /&gt;
Event: time 1409845469.185277, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.185281, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.185284, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.200843, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.200848, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 207&lt;br /&gt;
Event: time 1409845469.200853, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 376&lt;br /&gt;
Event: time 1409845469.200857, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.200861, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.200864, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.216857, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.216863, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 207&lt;br /&gt;
Event: time 1409845469.216867, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 376&lt;br /&gt;
Event: time 1409845469.216871, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.216875, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.216878, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845469.230419, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845469.230423, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.230426, -------------- SYN_REPORT ------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Running xinput ===&lt;br /&gt;
&lt;br /&gt;
	xinput --list&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
â¡ Virtual core pointer                         id=2    [master pointer  (3)]&lt;br /&gt;
â   â³ Virtual core XTEST pointer               id=4    [slave  pointer  (2)]&lt;br /&gt;
â   â³ mytouchscreen                            id=6    [slave  pointer  (2)]&lt;br /&gt;
â£ Virtual core keyboard                        id=3    [master keyboard (2)]&lt;br /&gt;
    â³ Virtual core XTEST keyboard              id=5    [slave  keyboard (3)]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== xinput log ====&lt;br /&gt;
&lt;br /&gt;
	xinput test 6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
motion a[0]=53 a[1]=58 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=53 a[1]=58 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=53 a[1]=58 &lt;br /&gt;
motion a[0]=513 a[1]=91 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=513 a[1]=91 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=513 a[1]=91 &lt;br /&gt;
motion a[0]=659 a[1]=436 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=659 a[1]=436 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=659 a[1]=436 &lt;br /&gt;
motion a[0]=624 a[1]=152 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=624 a[1]=152 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
motion a[0]=577 a[1]=174 &lt;br /&gt;
motion a[0]=501 a[1]=203 &lt;br /&gt;
motion a[0]=457 a[1]=219 &lt;br /&gt;
motion a[0]=411 a[1]=232 &lt;br /&gt;
motion a[0]=371 a[1]=240 &lt;br /&gt;
motion a[0]=341 a[1]=245 &lt;br /&gt;
button release 1 a[0]=341 a[1]=245 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</description>
			<pubDate>Fri, 05 Sep 2014 09:00:58 GMT</pubDate>
			<dc:creator>Gv</dc:creator>
			<comments>https://www.slackwiki.com/Talk:SlackwareOnMt6582Tablet</comments>
		</item>
		<item>
			<title>SlackwareOnMt6582Tablet</title>
			<link>https://www.slackwiki.com/index.php?title=SlackwareOnMt6582Tablet&amp;diff=928</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=SlackwareOnMt6582Tablet&amp;diff=928</guid>
			<description>&lt;p&gt;Gv: /* xorg.conf */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Specifications of the Tablet PC which was used here ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Processor : Arm Cortex A7, 1.3 GHz dual core.&lt;br /&gt;
             : ARMv7 Processor rev 3 (v7l),&lt;br /&gt;
   Hardware  : MT8312&lt;br /&gt;
   SOC       : mt6582.&lt;br /&gt;
   Memory    : 512MB RAM&lt;br /&gt;
   Storage   : 4GB Built in storage.&lt;br /&gt;
   Micro SD  : Slot for upto 32GB&lt;br /&gt;
   Display   : 7&amp;quot; WVGA 800x480&lt;br /&gt;
   OS        : Android 4.2 Jelly Bean&lt;br /&gt;
   GPU       : Mali?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Rooting the Tablet PC ==&lt;br /&gt;
&lt;br /&gt;
I used [http://www.techverse.net/fastest-root-android-phone-computer/ Framaroot-1.9.3.apk] to root the device. &lt;br /&gt;
&lt;br /&gt;
== Installing Linux - Slackware 14.1 - sort of. ==&lt;br /&gt;
&lt;br /&gt;
With the problem of not having kernel source for the SOC, and no no bootloader unlock possible yet, next best option was to use a chroot environment.&lt;br /&gt;
&lt;br /&gt;
So far, command line mode works fine. Here is the description of how Slackware was installed on to external micro SD Card. Was able to do some basic tests on the frame buffer display. Since there is no VTs available was not able to test Xorg, though could get Mali module compiled and loaded. More details below.&lt;br /&gt;
&lt;br /&gt;
=== Preparing SD Card on host computer ===&lt;br /&gt;
&lt;br /&gt;
Use fdisk to create one or two partitions, one for ext4 and other ( optional ) swap partition. Once these are created, assuming the device on host is /dev/sdc,&lt;br /&gt;
&lt;br /&gt;
    mkfs.ext4 /dev/sdc1&lt;br /&gt;
    sync&lt;br /&gt;
    eject sdc&lt;br /&gt;
    eject -t sdc&lt;br /&gt;
    mkdir slack&lt;br /&gt;
    mount /dev/sdc1 slack&lt;br /&gt;
    cd slack&lt;br /&gt;
    mkdir sl&lt;br /&gt;
    cd sl&lt;br /&gt;
&lt;br /&gt;
If you don't have Slackware installation files, [http://arm.slackware.com/getslack/ Get Slackware Arm] first. &lt;br /&gt;
&lt;br /&gt;
    mkdir slackware14.1&lt;br /&gt;
    cd slackware14.1&lt;br /&gt;
    (cd /path..to../slackware14.1 ; tar cfz - *) | (tar xfz - )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://sourceforge.net/projects/slackwareonapc8750/files/initrd-kirkwood.cpio.gz/download initrd-kirkwood.cpio] contains the setup program, but since I couldn't boot with custom initrd, sdc1 /sl area is prepared to have the installation files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    cpio -id &amp;lt; initrd-kirkwood.cpio&lt;br /&gt;
    sync&lt;br /&gt;
    umount slack&lt;br /&gt;
&lt;br /&gt;
Now that the sd card is ready for installation:&lt;br /&gt;
&lt;br /&gt;
    eject sdc&lt;br /&gt;
	&lt;br /&gt;
and plug it into the device. Once that is done,&lt;br /&gt;
&lt;br /&gt;
=== Getting installer ready ===&lt;br /&gt;
&lt;br /&gt;
Now plug the card in tablet pc, boot, from host computer,&lt;br /&gt;
&lt;br /&gt;
==== starting a adb shell with su ====&lt;br /&gt;
&lt;br /&gt;
    adb shell&lt;br /&gt;
    su&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== chroot to installe ====&lt;br /&gt;
&lt;br /&gt;
    cd /data/local/tmp&lt;br /&gt;
    mkdir slackware&lt;br /&gt;
    mount /dev/block/mmcblk1p1 slackware&lt;br /&gt;
    cd slackware/sl&lt;br /&gt;
    export PATH=/data/local/tmp/bin:$PATH&lt;br /&gt;
    mountpoint proc || mount -t proc none proc/&lt;br /&gt;
    mountpoint sys || mount -t sysfs sys sys/&lt;br /&gt;
    mountpoint dev || mount -o bind  /dev dev/&lt;br /&gt;
    export PATH=/usr/bin:/bin:/usr/lib/setup:$PATH&lt;br /&gt;
    pushd /dev&lt;br /&gt;
    ln -s /dev/block/mmc1blk* .&lt;br /&gt;
    popd&lt;br /&gt;
    chroot . /bin/bash&lt;br /&gt;
    mount -t ext4 /dev/mmcblk1p1 mnt&lt;br /&gt;
&lt;br /&gt;
=== Running setup ===&lt;br /&gt;
&lt;br /&gt;
Install Slackware onto mmcblk1p1, from pre mounted directory, sdc1 : /slackware14.1/slackware&lt;br /&gt;
&lt;br /&gt;
    setup&lt;br /&gt;
        Proceed and select /dev/mmcblk1p1 as target, no format&lt;br /&gt;
        For source, select pre mounted directory option, /slackware14.1/slackware&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
=== Complete installation, and configuration ===&lt;br /&gt;
&lt;br /&gt;
Once the complete installation is done,&lt;br /&gt;
&lt;br /&gt;
    umount proc&lt;br /&gt;
    umount sys&lt;br /&gt;
    umount dev&lt;br /&gt;
    sync&lt;br /&gt;
    cd ../..&lt;br /&gt;
    umount slackware&lt;br /&gt;
&lt;br /&gt;
== Getting into installed Slackware: ==&lt;br /&gt;
&lt;br /&gt;
==== Running slackware su shell ====&lt;br /&gt;
&lt;br /&gt;
    adb shell&lt;br /&gt;
    su&lt;br /&gt;
    mount /dev/block/mmcblk1p1 slackware&lt;br /&gt;
    cd slackware&lt;br /&gt;
    mountpoint proc || mount -t proc none proc/&lt;br /&gt;
    mountpoint sys || mount -t sysfs sys sys/&lt;br /&gt;
    mountpoint dev || mount -o bind  /dev dev/&lt;br /&gt;
    export PATH=/usr/bin:/bin:/usr/lib/setup:$PATH&lt;br /&gt;
    chroot . /bin/bash&lt;br /&gt;
    su -	&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From here you can do &amp;quot;normal&amp;quot; Slackware activities, sort of. Main things that were lacking in my case&lt;br /&gt;
were VTs (ttys). Compiling programs and running programs that require no X windows worked fine. I ran&lt;br /&gt;
couple of frame buffer tests too. &lt;br /&gt;
		&lt;br /&gt;
== Testing the framebuffer ==		&lt;br /&gt;
&lt;br /&gt;
For these tests, I stopped android &amp;quot;SurfaceFlinger&amp;quot; and freed up /dev/graphics/fb0. by running &amp;quot;stop&amp;quot;&lt;br /&gt;
command. Before running stop, make sure that the display is on ( not blank ). For these tests, I had&lt;br /&gt;
two terminals up on the host PC with one of them running just adb shell with su, and other running&lt;br /&gt;
chrooted slackware shell. SurfaceFlinger was stopped from su shell, and tests from Slackware shell.&lt;br /&gt;
&lt;br /&gt;
Please not Slackware shell is also running as user root.&lt;br /&gt;
&lt;br /&gt;
==== Stopping android - sort of ====&lt;br /&gt;
&lt;br /&gt;
Here is how to stop the SurfaceFlinger and get framebuffer free:&lt;br /&gt;
&lt;br /&gt;
    adb shell&lt;br /&gt;
    su&lt;br /&gt;
    stop&lt;br /&gt;
&lt;br /&gt;
Now the display goes blank, with backlight on.&lt;br /&gt;
&lt;br /&gt;
Get one of these tests.&lt;br /&gt;
[https://gist.githubusercontent.com/rafalrusin/1482697/raw/32c6c0d79b870ffb618aa7b7c664736ca5e150fe/fbtest.c  fbtest] or &lt;br /&gt;
[http://stackoverflow.com/questions/4996777/paint-pixels-to-screen-via-linux-framebuffer Paint-pixels-to-screen-  via-linux-framebuffer] or &lt;br /&gt;
[http://cep.xray.aps.anl.gov/software/qt4-x11-4.2.2/qtopiacore-testingframebuffer.html qtopiacore-testingframebuffer] All these tests worked on the Tablet. Transfer the tests to tablet using adb push&lt;br /&gt;
command.&lt;br /&gt;
&lt;br /&gt;
from Slackware shell, running under adb shell:&lt;br /&gt;
&lt;br /&gt;
    gcc fbtest.c&lt;br /&gt;
    ./a.out&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
once done, go back to android su shell from adb, and:&lt;br /&gt;
&lt;br /&gt;
==== Getting back to android ====&lt;br /&gt;
  &lt;br /&gt;
    start&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
After few seconds android display will be back on. &lt;br /&gt;
&lt;br /&gt;
== Getting Xorg up and running - kind of ==&lt;br /&gt;
&lt;br /&gt;
=== Getting Xorg compiled ===&lt;br /&gt;
&lt;br /&gt;
Ecept for Pointer ( touchscreen ) failure, Xorg seems to be working fine. evtest, xinput tests are showing touchscreen activity, but the cursor seems to be not&lt;br /&gt;
moving. But if a window like xvkbd or xterm or so is launched, you can move the window using the touch screen!. And kvkbd input also works. &lt;br /&gt;
&lt;br /&gt;
Download [http://www.x.org/releases/X11R7.7/src/everything/xorg-server-1.12.2.tar.bz2  xorg-server-1.12.2], &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	tar xf xorg-server-1.12.2.tar.bz2&lt;br /&gt;
&lt;br /&gt;
Also make changes to xorg-server-1.12.2/hw/xfree86/os-support/linux/lnx\_init.c so that VT / console related code is disabled. See the patch section.&lt;br /&gt;
&lt;br /&gt;
	cd xorg-server-1.12.2&lt;br /&gt;
	export PKG_CONFIG_PATH=/opt/local/sw/share/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
	export PKG_CONFIG_PATH=/opt/local/sw/lib/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
	export LD_LIBRARY_PATH=/opt/local/sw/lib:$LD_LIBRARY_PATH&lt;br /&gt;
	export PATH=/opt/local/sw/bin:$PATH&lt;br /&gt;
	./configure --prefix=/opt/local/sw --enable-kdrive --enable-kdrive-evdev --with-xkb-path=/opt/local/sw/share/X11/xkb --with-xkb-output=/var/lib/xkb --with-xkb-bin-directory=/opt/local/sw/bin --with-default-xkb-rules=xorg --with-default-xkb-model=pc104 --with-default-xkb-layout=us  --disable-xnest --disable-dmx --disable-xquartz --disable-xwin --disable-xephyr --disable-config-udev --enable-tslib --disable-docs  --disable-devel-docs LDFLAGS=-L/opt/local/sw/lib CFLAGS=-I/opt/local/sw/include&lt;br /&gt;
make -j 3&lt;br /&gt;
&lt;br /&gt;
If all required packages are not on the system, compilation will fail. Download each of the requiered packags , untar, configure and install.&lt;br /&gt;
&lt;br /&gt;
	./configure --prefix=/opt/local/sw&lt;br /&gt;
	make -j 3 install&lt;br /&gt;
&lt;br /&gt;
Once xorg-server-1.12.2 compilation is succesfull, &lt;br /&gt;
	make install&lt;br /&gt;
	&lt;br /&gt;
=== Compiling additional drivers required ===&lt;br /&gt;
&lt;br /&gt;
==== fbdev ====&lt;br /&gt;
&lt;br /&gt;
xf86-video-fbdev-0.4.2&lt;br /&gt;
export PKG_CONFIG_PATH=/opt/local/sw/lib/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
./configure --prefix=/opt/local/sw&lt;br /&gt;
&lt;br /&gt;
src/fbdev.c xf86-video-fbdev-0.4.2/src/fbdev.c&lt;br /&gt;
// #include &amp;quot;mibstore.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
make -j 3&lt;br /&gt;
make install&lt;br /&gt;
&lt;br /&gt;
==== evdev ====&lt;br /&gt;
&lt;br /&gt;
    xf86-input-evdev-2.7.0&lt;br /&gt;
    ./configure --prefix=/opt/local/sw&lt;br /&gt;
&lt;br /&gt;
    src/Makefile:&lt;br /&gt;
    evdev_drv_la_LIBADD = $(MTDEV_LIBS) $(UDEV_LIBS)&lt;br /&gt;
    ( if not done, causes evdev_drv.so: undefined symbol: udev_new when Xorg is ran)&lt;br /&gt;
&lt;br /&gt;
    make -j 3 &lt;br /&gt;
    make install&lt;br /&gt;
&lt;br /&gt;
Once installed make an xorg.conf [ see xorg.conf section ] in /etc/X11/&lt;br /&gt;
and run startx as described below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== synaptics ====&lt;br /&gt;
&lt;br /&gt;
synaptics driver fails with error message relating to Protocol.&lt;br /&gt;
&lt;br /&gt;
    xf86-input-synaptics-1.6.1.tar.bz2&lt;br /&gt;
    ./configure --prefix=/opt/local/sw CFLAGS=-I/opt/local/sw/include/xorg LDFLAGS=-L/opt/local/sw/lib&lt;br /&gt;
    make -j 3&lt;br /&gt;
    make install&lt;br /&gt;
&lt;br /&gt;
When running Xorg, &lt;br /&gt;
&lt;br /&gt;
    [  4784.385] (EE) synaptics: mytouchscreen: Synaptics driver unable to detect protocol&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Running X ===&lt;br /&gt;
&lt;br /&gt;
make sure display is on, and&lt;br /&gt;
&lt;br /&gt;
From adb shell as su:&lt;br /&gt;
&lt;br /&gt;
    stop&lt;br /&gt;
&lt;br /&gt;
From slackware chroot environment in adb shell [ see section ]:&lt;br /&gt;
&lt;br /&gt;
    startx -- /opt/local/sw/bin/Xorg -pointer mytouchscreen :0&lt;br /&gt;
&lt;br /&gt;
Once Finished, from adb shell as su:&lt;br /&gt;
&lt;br /&gt;
    start&lt;br /&gt;
&lt;br /&gt;
=== Virtual Keyboard ===&lt;br /&gt;
&lt;br /&gt;
==== http://homepage3.nifty.com/tsato/xvkbd/ ====&lt;br /&gt;
&lt;br /&gt;
Download [http://homepage3.nifty.com/tsato/xvkbd/xvkbd-3.5.tar.gz xvkbd-3.5.tar.gz], install&lt;br /&gt;
    xmkf&lt;br /&gt;
    make &lt;br /&gt;
    make install&lt;br /&gt;
&lt;br /&gt;
and run: &lt;br /&gt;
&lt;br /&gt;
    xvkbd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Files ===&lt;br /&gt;
==== xorg.conf ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Section &amp;quot;ServerLayout&amp;quot;&lt;br /&gt;
Identifier	&amp;quot;myLaout&amp;quot;&lt;br /&gt;
Screen		&amp;quot;myScreen&amp;quot;&lt;br /&gt;
# InputDevice     &amp;quot;mymouse&amp;quot;&lt;br /&gt;
InputDevice	&amp;quot;mytouchscreen&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;Screen&amp;quot;&lt;br /&gt;
Identifier	&amp;quot;myScreen&amp;quot;&lt;br /&gt;
Device		&amp;quot;myfbdev&amp;quot;&lt;br /&gt;
DefaultDepth 	24&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;Device&amp;quot;&lt;br /&gt;
Identifier	&amp;quot;myFbdev&amp;quot;&lt;br /&gt;
Driver		&amp;quot;fbdev&amp;quot;&lt;br /&gt;
Option		&amp;quot;fbdev&amp;quot; &amp;quot;/dev/graphics/fb0&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;InputDevice&amp;quot;&lt;br /&gt;
 Identifier	&amp;quot;mytouchscreen&amp;quot;&lt;br /&gt;
 Driver		&amp;quot;evdev&amp;quot;&lt;br /&gt;
 # Driver 	&amp;quot;synaptics&amp;quot;&lt;br /&gt;
 Option		&amp;quot;Device&amp;quot; &amp;quot;/dev/input/event3&amp;quot;&lt;br /&gt;
 # Option	&amp;quot;Protocol&amp;quot; &amp;quot;Auto&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== lnx_init.c patch ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--- xorg-server-1.12.2/hw/xfree86/os-support/linux/lnx_init.c	2014-09-04 22:53:13.450000054 +0530&lt;br /&gt;
+++ xorg-server-1.12.2.org/hw/xfree86/os-support/linux/lnx_init.c	2012-05-17 22:39:03.000000000 +0530&lt;br /&gt;
@@ -48,18 +48,15 @@&lt;br /&gt;
 static void&lt;br /&gt;
 drain_console(int fd, void *closure)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     errno = 0;&lt;br /&gt;
     if (tcflush(fd, TCIOFLUSH) == -1 &amp;amp;&amp;amp; errno == EIO) {&lt;br /&gt;
         xf86SetConsoleHandler(NULL, NULL);&lt;br /&gt;
     }&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 static void&lt;br /&gt;
 switch_to(int vt, const char *from)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     int ret;&lt;br /&gt;
 &lt;br /&gt;
     SYSCALL(ret = ioctl(xf86Info.consoleFd, VT_ACTIVATE, vt));&lt;br /&gt;
@@ -69,13 +66,11 @@&lt;br /&gt;
     SYSCALL(ret = ioctl(xf86Info.consoleFd, VT_WAITACTIVE, vt));&lt;br /&gt;
     if (ret &amp;lt; 0)&lt;br /&gt;
         FatalError(&amp;quot;%s: VT_WAITACTIVE failed: %s\n&amp;quot;, from, strerror(errno));&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void&lt;br /&gt;
 xf86OpenConsole(void)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     int i, fd = -1, ret;&lt;br /&gt;
     struct vt_mode VT;&lt;br /&gt;
     struct vt_stat vts;&lt;br /&gt;
@@ -254,13 +249,11 @@&lt;br /&gt;
             switch_to(xf86Info.vtno, &amp;quot;xf86OpenConsole&amp;quot;);&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void&lt;br /&gt;
 xf86CloseConsole(void)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     struct vt_mode VT;&lt;br /&gt;
     int ret;&lt;br /&gt;
 &lt;br /&gt;
@@ -307,7 +300,6 @@&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
     close(xf86Info.consoleFd);  /* make the vt-manager happy */&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Running some tests ==&lt;br /&gt;
&lt;br /&gt;
=== Running evtest ===&lt;br /&gt;
&lt;br /&gt;
Download [http://cgit.freedesktop.org/~whot/evtest/tree/evtest.c evtest.c].&lt;br /&gt;
&lt;br /&gt;
   gcc -o gcc -o evtest evtest.c&lt;br /&gt;
   ./evtest&lt;br /&gt;
   see evtest.log for sample outpu&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== evtest.log ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
No device specified, trying to scan all of /dev/input/event*&lt;br /&gt;
Available devices:&lt;br /&gt;
/dev/input/event0:	mtk-kpd&lt;br /&gt;
/dev/input/event1:	ACCDET&lt;br /&gt;
/dev/input/event2:	hwmdata&lt;br /&gt;
/dev/input/event3:	mtk-tpd&lt;br /&gt;
Select the device event number [0-3]: Input driver version is 1.0.1&lt;br /&gt;
Input device ID: bus 0x0 vendor 0x0 product 0x0 version 0x0&lt;br /&gt;
Input device name: &amp;quot;mtk-tpd&amp;quot;&lt;br /&gt;
Supported events:&lt;br /&gt;
  Event type 0 (EV_SYN)&lt;br /&gt;
  Event type 1 (EV_KEY)&lt;br /&gt;
    Event code 330 (BTN_TOUCH)&lt;br /&gt;
  Event type 3 (EV_ABS)&lt;br /&gt;
    Event code 0 (ABS_X)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      800&lt;br /&gt;
      Resolution     800&lt;br /&gt;
    Event code 1 (ABS_Y)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      480&lt;br /&gt;
      Resolution     480&lt;br /&gt;
    Event code 24 (ABS_PRESSURE)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      255&lt;br /&gt;
    Event code 48 (ABS_MT_TOUCH_MAJOR)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      100&lt;br /&gt;
    Event code 49 (ABS_MT_TOUCH_MINOR)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      100&lt;br /&gt;
    Event code 53 (ABS_MT_POSITION_X)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      800&lt;br /&gt;
    Event code 54 (ABS_MT_POSITION_Y)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      480&lt;br /&gt;
    Event code 57 (ABS_MT_TRACKING_ID)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max        0&lt;br /&gt;
Properties:&lt;br /&gt;
  Property type 1 (INPUT_PROP_DIRECT)&lt;br /&gt;
Testing ... (interrupt to exit)&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845467.116675, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845467.116682, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.116687, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.116691, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.116695, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.116699, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.116703, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.133145, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.133151, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.133155, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.133160, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.133164, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.133167, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.148724, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.148730, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.148734, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.148738, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.148742, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.148745, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.164975, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.164981, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.164985, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.164989, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.164994, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.164997, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.180722, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.180727, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.180731, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.180736, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.180740, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.180743, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.196495, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.196501, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.196505, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.196510, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.196514, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.196517, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.211803, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.211809, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.211813, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.211818, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.211822, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.211825, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845467.225500, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845467.225504, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.225507, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845467.466531, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845467.466536, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.466540, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.466545, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.466549, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.466553, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.466556, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.482028, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.482033, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.482038, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.482042, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.482046, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.482049, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.497971, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.497977, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.497981, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.497986, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.497990, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.497993, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.514030, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.514036, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.514040, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.514044, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.514048, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.514051, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.530188, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.530194, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.530198, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.530202, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.530206, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.530210, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.545804, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.545809, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.545813, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.545818, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.545822, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.545825, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845467.559686, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845467.559690, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.559693, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845467.880062, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845467.880067, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.880072, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 678&lt;br /&gt;
Event: time 1409845467.880076, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 130&lt;br /&gt;
Event: time 1409845467.880080, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.880084, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.880088, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.895834, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.895839, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 678&lt;br /&gt;
Event: time 1409845467.895844, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 130&lt;br /&gt;
Event: time 1409845467.895848, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.895852, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.895855, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.911757, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.911762, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 678&lt;br /&gt;
Event: time 1409845467.911767, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 130&lt;br /&gt;
Event: time 1409845467.911771, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.911775, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.911778, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.927833, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.927838, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 680&lt;br /&gt;
Event: time 1409845467.927842, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 129&lt;br /&gt;
Event: time 1409845467.927847, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.927851, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.927854, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.944420, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.944426, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845467.944430, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 129&lt;br /&gt;
Event: time 1409845467.944434, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.944438, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.944442, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.959239, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.959244, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 683&lt;br /&gt;
Event: time 1409845467.959249, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 129&lt;br /&gt;
Event: time 1409845467.959253, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.959257, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.959260, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.974974, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.974980, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 685&lt;br /&gt;
Event: time 1409845467.974984, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 129&lt;br /&gt;
Event: time 1409845467.974988, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.974992, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.974996, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845467.989318, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845467.989321, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.989324, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845468.246567, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845468.246571, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.246576, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 659&lt;br /&gt;
Event: time 1409845468.246580, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 419&lt;br /&gt;
Event: time 1409845468.246584, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.246589, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.246592, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.262652, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.262657, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 659&lt;br /&gt;
Event: time 1409845468.262662, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 419&lt;br /&gt;
Event: time 1409845468.262666, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.262670, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.262673, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.278454, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.278460, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 659&lt;br /&gt;
Event: time 1409845468.278464, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 419&lt;br /&gt;
Event: time 1409845468.278468, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.278473, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.278476, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.293932, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.293938, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 653&lt;br /&gt;
Event: time 1409845468.293942, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 419&lt;br /&gt;
Event: time 1409845468.293946, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.293950, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.293953, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.309429, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.309434, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 639&lt;br /&gt;
Event: time 1409845468.309438, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 416&lt;br /&gt;
Event: time 1409845468.309443, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.309447, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.309450, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845468.323482, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845468.323486, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.323489, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845468.596393, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845468.596397, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.596402, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 226&lt;br /&gt;
Event: time 1409845468.596406, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 302&lt;br /&gt;
Event: time 1409845468.596410, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.596414, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.596417, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.612126, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.612132, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 226&lt;br /&gt;
Event: time 1409845468.612136, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 302&lt;br /&gt;
Event: time 1409845468.612140, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.612144, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.612147, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.628256, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.628262, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 226&lt;br /&gt;
Event: time 1409845468.628266, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 302&lt;br /&gt;
Event: time 1409845468.628271, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.628275, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.628278, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.644136, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.644142, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 226&lt;br /&gt;
Event: time 1409845468.644146, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 302&lt;br /&gt;
Event: time 1409845468.644151, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.644155, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.644158, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.659867, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.659873, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 226&lt;br /&gt;
Event: time 1409845468.659877, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 302&lt;br /&gt;
Event: time 1409845468.659882, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.659886, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.659889, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845468.673538, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845468.673541, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.673544, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845468.946001, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845468.946005, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.946010, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845468.946014, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845468.946018, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.946022, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.946025, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.962071, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.962077, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845468.962081, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845468.962085, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.962089, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.962093, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.977741, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.977747, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845468.977751, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845468.977755, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.977759, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.977762, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.993678, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.993684, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845468.993688, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845468.993692, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.993696, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.993700, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.010083, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.010089, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845469.010093, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845469.010097, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.010101, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.010104, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.026187, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.026193, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 665&lt;br /&gt;
Event: time 1409845469.026197, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 357&lt;br /&gt;
Event: time 1409845469.026201, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.026205, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.026209, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.041432, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.041437, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 640&lt;br /&gt;
Event: time 1409845469.041442, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 357&lt;br /&gt;
Event: time 1409845469.041446, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.041450, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.041453, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.057294, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.057299, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 581&lt;br /&gt;
Event: time 1409845469.057304, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 364&lt;br /&gt;
Event: time 1409845469.057308, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.057312, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.057315, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.073883, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.073889, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 540&lt;br /&gt;
Event: time 1409845469.073893, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 364&lt;br /&gt;
Event: time 1409845469.073897, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.073901, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.073905, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.089886, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.089892, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 496&lt;br /&gt;
Event: time 1409845469.089896, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 364&lt;br /&gt;
Event: time 1409845469.089900, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.089904, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.089908, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.105335, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.105340, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 450&lt;br /&gt;
Event: time 1409845469.105344, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 364&lt;br /&gt;
Event: time 1409845469.105349, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.105353, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.105356, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.121183, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.121188, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 404&lt;br /&gt;
Event: time 1409845469.121192, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845469.121197, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.121201, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.121204, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.136794, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.136799, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 360&lt;br /&gt;
Event: time 1409845469.136803, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845469.136808, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.136812, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.136815, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.152605, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.152611, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 312&lt;br /&gt;
Event: time 1409845469.152615, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845469.152619, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.152623, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.152626, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.169594, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.169599, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 270&lt;br /&gt;
Event: time 1409845469.169604, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 366&lt;br /&gt;
Event: time 1409845469.169608, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.169612, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.169615, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.185263, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.185268, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 236&lt;br /&gt;
Event: time 1409845469.185273, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 373&lt;br /&gt;
Event: time 1409845469.185277, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.185281, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.185284, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.200843, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.200848, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 207&lt;br /&gt;
Event: time 1409845469.200853, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 376&lt;br /&gt;
Event: time 1409845469.200857, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.200861, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.200864, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.216857, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.216863, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 207&lt;br /&gt;
Event: time 1409845469.216867, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 376&lt;br /&gt;
Event: time 1409845469.216871, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.216875, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.216878, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845469.230419, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845469.230423, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.230426, -------------- SYN_REPORT ------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Running xinput ===&lt;br /&gt;
&lt;br /&gt;
	xinput --list&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
â¡ Virtual core pointer                         id=2    [master pointer  (3)]&lt;br /&gt;
â   â³ Virtual core XTEST pointer               id=4    [slave  pointer  (2)]&lt;br /&gt;
â   â³ mytouchscreen                            id=6    [slave  pointer  (2)]&lt;br /&gt;
â£ Virtual core keyboard                        id=3    [master keyboard (2)]&lt;br /&gt;
    â³ Virtual core XTEST keyboard              id=5    [slave  keyboard (3)]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== xinput log ====&lt;br /&gt;
&lt;br /&gt;
	xinput test 6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
motion a[0]=53 a[1]=58 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=53 a[1]=58 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=53 a[1]=58 &lt;br /&gt;
motion a[0]=513 a[1]=91 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=513 a[1]=91 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=513 a[1]=91 &lt;br /&gt;
motion a[0]=659 a[1]=436 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=659 a[1]=436 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=659 a[1]=436 &lt;br /&gt;
motion a[0]=624 a[1]=152 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=624 a[1]=152 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
motion a[0]=577 a[1]=174 &lt;br /&gt;
motion a[0]=501 a[1]=203 &lt;br /&gt;
motion a[0]=457 a[1]=219 &lt;br /&gt;
motion a[0]=411 a[1]=232 &lt;br /&gt;
motion a[0]=371 a[1]=240 &lt;br /&gt;
motion a[0]=341 a[1]=245 &lt;br /&gt;
button release 1 a[0]=341 a[1]=245 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</description>
			<pubDate>Fri, 05 Sep 2014 08:58:36 GMT</pubDate>
			<dc:creator>Gv</dc:creator>
			<comments>https://www.slackwiki.com/Talk:SlackwareOnMt6582Tablet</comments>
		</item>
		<item>
			<title>SlackwareOnMt6582Tablet</title>
			<link>https://www.slackwiki.com/index.php?title=SlackwareOnMt6582Tablet&amp;diff=927</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=SlackwareOnMt6582Tablet&amp;diff=927</guid>
			<description>&lt;p&gt;Gv: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Specifications of the Tablet PC which was used here ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Processor : Arm Cortex A7, 1.3 GHz dual core.&lt;br /&gt;
             : ARMv7 Processor rev 3 (v7l),&lt;br /&gt;
   Hardware  : MT8312&lt;br /&gt;
   SOC       : mt6582.&lt;br /&gt;
   Memory    : 512MB RAM&lt;br /&gt;
   Storage   : 4GB Built in storage.&lt;br /&gt;
   Micro SD  : Slot for upto 32GB&lt;br /&gt;
   Display   : 7&amp;quot; WVGA 800x480&lt;br /&gt;
   OS        : Android 4.2 Jelly Bean&lt;br /&gt;
   GPU       : Mali?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Rooting the Tablet PC ==&lt;br /&gt;
&lt;br /&gt;
I used [http://www.techverse.net/fastest-root-android-phone-computer/ Framaroot-1.9.3.apk] to root the device. &lt;br /&gt;
&lt;br /&gt;
== Installing Linux - Slackware 14.1 - sort of. ==&lt;br /&gt;
&lt;br /&gt;
With the problem of not having kernel source for the SOC, and no no bootloader unlock possible yet, next best option was to use a chroot environment.&lt;br /&gt;
&lt;br /&gt;
So far, command line mode works fine. Here is the description of how Slackware was installed on to external micro SD Card. Was able to do some basic tests on the frame buffer display. Since there is no VTs available was not able to test Xorg, though could get Mali module compiled and loaded. More details below.&lt;br /&gt;
&lt;br /&gt;
=== Preparing SD Card on host computer ===&lt;br /&gt;
&lt;br /&gt;
Use fdisk to create one or two partitions, one for ext4 and other ( optional ) swap partition. Once these are created, assuming the device on host is /dev/sdc,&lt;br /&gt;
&lt;br /&gt;
    mkfs.ext4 /dev/sdc1&lt;br /&gt;
    sync&lt;br /&gt;
    eject sdc&lt;br /&gt;
    eject -t sdc&lt;br /&gt;
    mkdir slack&lt;br /&gt;
    mount /dev/sdc1 slack&lt;br /&gt;
    cd slack&lt;br /&gt;
    mkdir sl&lt;br /&gt;
    cd sl&lt;br /&gt;
&lt;br /&gt;
If you don't have Slackware installation files, [http://arm.slackware.com/getslack/ Get Slackware Arm] first. &lt;br /&gt;
&lt;br /&gt;
    mkdir slackware14.1&lt;br /&gt;
    cd slackware14.1&lt;br /&gt;
    (cd /path..to../slackware14.1 ; tar cfz - *) | (tar xfz - )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://sourceforge.net/projects/slackwareonapc8750/files/initrd-kirkwood.cpio.gz/download initrd-kirkwood.cpio] contains the setup program, but since I couldn't boot with custom initrd, sdc1 /sl area is prepared to have the installation files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    cpio -id &amp;lt; initrd-kirkwood.cpio&lt;br /&gt;
    sync&lt;br /&gt;
    umount slack&lt;br /&gt;
&lt;br /&gt;
Now that the sd card is ready for installation:&lt;br /&gt;
&lt;br /&gt;
    eject sdc&lt;br /&gt;
	&lt;br /&gt;
and plug it into the device. Once that is done,&lt;br /&gt;
&lt;br /&gt;
=== Getting installer ready ===&lt;br /&gt;
&lt;br /&gt;
Now plug the card in tablet pc, boot, from host computer,&lt;br /&gt;
&lt;br /&gt;
==== starting a adb shell with su ====&lt;br /&gt;
&lt;br /&gt;
    adb shell&lt;br /&gt;
    su&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== chroot to installe ====&lt;br /&gt;
&lt;br /&gt;
    cd /data/local/tmp&lt;br /&gt;
    mkdir slackware&lt;br /&gt;
    mount /dev/block/mmcblk1p1 slackware&lt;br /&gt;
    cd slackware/sl&lt;br /&gt;
    export PATH=/data/local/tmp/bin:$PATH&lt;br /&gt;
    mountpoint proc || mount -t proc none proc/&lt;br /&gt;
    mountpoint sys || mount -t sysfs sys sys/&lt;br /&gt;
    mountpoint dev || mount -o bind  /dev dev/&lt;br /&gt;
    export PATH=/usr/bin:/bin:/usr/lib/setup:$PATH&lt;br /&gt;
    pushd /dev&lt;br /&gt;
    ln -s /dev/block/mmc1blk* .&lt;br /&gt;
    popd&lt;br /&gt;
    chroot . /bin/bash&lt;br /&gt;
    mount -t ext4 /dev/mmcblk1p1 mnt&lt;br /&gt;
&lt;br /&gt;
=== Running setup ===&lt;br /&gt;
&lt;br /&gt;
Install Slackware onto mmcblk1p1, from pre mounted directory, sdc1 : /slackware14.1/slackware&lt;br /&gt;
&lt;br /&gt;
    setup&lt;br /&gt;
        Proceed and select /dev/mmcblk1p1 as target, no format&lt;br /&gt;
        For source, select pre mounted directory option, /slackware14.1/slackware&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
=== Complete installation, and configuration ===&lt;br /&gt;
&lt;br /&gt;
Once the complete installation is done,&lt;br /&gt;
&lt;br /&gt;
    umount proc&lt;br /&gt;
    umount sys&lt;br /&gt;
    umount dev&lt;br /&gt;
    sync&lt;br /&gt;
    cd ../..&lt;br /&gt;
    umount slackware&lt;br /&gt;
&lt;br /&gt;
== Getting into installed Slackware: ==&lt;br /&gt;
&lt;br /&gt;
==== Running slackware su shell ====&lt;br /&gt;
&lt;br /&gt;
    adb shell&lt;br /&gt;
    su&lt;br /&gt;
    mount /dev/block/mmcblk1p1 slackware&lt;br /&gt;
    cd slackware&lt;br /&gt;
    mountpoint proc || mount -t proc none proc/&lt;br /&gt;
    mountpoint sys || mount -t sysfs sys sys/&lt;br /&gt;
    mountpoint dev || mount -o bind  /dev dev/&lt;br /&gt;
    export PATH=/usr/bin:/bin:/usr/lib/setup:$PATH&lt;br /&gt;
    chroot . /bin/bash&lt;br /&gt;
    su -	&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From here you can do &amp;quot;normal&amp;quot; Slackware activities, sort of. Main things that were lacking in my case&lt;br /&gt;
were VTs (ttys). Compiling programs and running programs that require no X windows worked fine. I ran&lt;br /&gt;
couple of frame buffer tests too. &lt;br /&gt;
		&lt;br /&gt;
== Testing the framebuffer ==		&lt;br /&gt;
&lt;br /&gt;
For these tests, I stopped android &amp;quot;SurfaceFlinger&amp;quot; and freed up /dev/graphics/fb0. by running &amp;quot;stop&amp;quot;&lt;br /&gt;
command. Before running stop, make sure that the display is on ( not blank ). For these tests, I had&lt;br /&gt;
two terminals up on the host PC with one of them running just adb shell with su, and other running&lt;br /&gt;
chrooted slackware shell. SurfaceFlinger was stopped from su shell, and tests from Slackware shell.&lt;br /&gt;
&lt;br /&gt;
Please not Slackware shell is also running as user root.&lt;br /&gt;
&lt;br /&gt;
==== Stopping android - sort of ====&lt;br /&gt;
&lt;br /&gt;
Here is how to stop the SurfaceFlinger and get framebuffer free:&lt;br /&gt;
&lt;br /&gt;
    adb shell&lt;br /&gt;
    su&lt;br /&gt;
    stop&lt;br /&gt;
&lt;br /&gt;
Now the display goes blank, with backlight on.&lt;br /&gt;
&lt;br /&gt;
Get one of these tests.&lt;br /&gt;
[https://gist.githubusercontent.com/rafalrusin/1482697/raw/32c6c0d79b870ffb618aa7b7c664736ca5e150fe/fbtest.c  fbtest] or &lt;br /&gt;
[http://stackoverflow.com/questions/4996777/paint-pixels-to-screen-via-linux-framebuffer Paint-pixels-to-screen-  via-linux-framebuffer] or &lt;br /&gt;
[http://cep.xray.aps.anl.gov/software/qt4-x11-4.2.2/qtopiacore-testingframebuffer.html qtopiacore-testingframebuffer] All these tests worked on the Tablet. Transfer the tests to tablet using adb push&lt;br /&gt;
command.&lt;br /&gt;
&lt;br /&gt;
from Slackware shell, running under adb shell:&lt;br /&gt;
&lt;br /&gt;
    gcc fbtest.c&lt;br /&gt;
    ./a.out&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
once done, go back to android su shell from adb, and:&lt;br /&gt;
&lt;br /&gt;
==== Getting back to android ====&lt;br /&gt;
  &lt;br /&gt;
    start&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
After few seconds android display will be back on. &lt;br /&gt;
&lt;br /&gt;
== Getting Xorg up and running - kind of ==&lt;br /&gt;
&lt;br /&gt;
=== Getting Xorg compiled ===&lt;br /&gt;
&lt;br /&gt;
Ecept for Pointer ( touchscreen ) failure, Xorg seems to be working fine. evtest, xinput tests are showing touchscreen activity, but the cursor seems to be not&lt;br /&gt;
moving. But if a window like xvkbd or xterm or so is launched, you can move the window using the touch screen!. And kvkbd input also works. &lt;br /&gt;
&lt;br /&gt;
Download [http://www.x.org/releases/X11R7.7/src/everything/xorg-server-1.12.2.tar.bz2  xorg-server-1.12.2], &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	tar xf xorg-server-1.12.2.tar.bz2&lt;br /&gt;
&lt;br /&gt;
Also make changes to xorg-server-1.12.2/hw/xfree86/os-support/linux/lnx\_init.c so that VT / console related code is disabled. See the patch section.&lt;br /&gt;
&lt;br /&gt;
	cd xorg-server-1.12.2&lt;br /&gt;
	export PKG_CONFIG_PATH=/opt/local/sw/share/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
	export PKG_CONFIG_PATH=/opt/local/sw/lib/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
	export LD_LIBRARY_PATH=/opt/local/sw/lib:$LD_LIBRARY_PATH&lt;br /&gt;
	export PATH=/opt/local/sw/bin:$PATH&lt;br /&gt;
	./configure --prefix=/opt/local/sw --enable-kdrive --enable-kdrive-evdev --with-xkb-path=/opt/local/sw/share/X11/xkb --with-xkb-output=/var/lib/xkb --with-xkb-bin-directory=/opt/local/sw/bin --with-default-xkb-rules=xorg --with-default-xkb-model=pc104 --with-default-xkb-layout=us  --disable-xnest --disable-dmx --disable-xquartz --disable-xwin --disable-xephyr --disable-config-udev --enable-tslib --disable-docs  --disable-devel-docs LDFLAGS=-L/opt/local/sw/lib CFLAGS=-I/opt/local/sw/include&lt;br /&gt;
make -j 3&lt;br /&gt;
&lt;br /&gt;
If all required packages are not on the system, compilation will fail. Download each of the requiered packags , untar, configure and install.&lt;br /&gt;
&lt;br /&gt;
	./configure --prefix=/opt/local/sw&lt;br /&gt;
	make -j 3 install&lt;br /&gt;
&lt;br /&gt;
Once xorg-server-1.12.2 compilation is succesfull, &lt;br /&gt;
	make install&lt;br /&gt;
	&lt;br /&gt;
=== Compiling additional drivers required ===&lt;br /&gt;
&lt;br /&gt;
==== fbdev ====&lt;br /&gt;
&lt;br /&gt;
xf86-video-fbdev-0.4.2&lt;br /&gt;
export PKG_CONFIG_PATH=/opt/local/sw/lib/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
./configure --prefix=/opt/local/sw&lt;br /&gt;
&lt;br /&gt;
src/fbdev.c xf86-video-fbdev-0.4.2/src/fbdev.c&lt;br /&gt;
// #include &amp;quot;mibstore.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
make -j 3&lt;br /&gt;
make install&lt;br /&gt;
&lt;br /&gt;
==== evdev ====&lt;br /&gt;
&lt;br /&gt;
    xf86-input-evdev-2.7.0&lt;br /&gt;
    ./configure --prefix=/opt/local/sw&lt;br /&gt;
&lt;br /&gt;
    src/Makefile:&lt;br /&gt;
    evdev_drv_la_LIBADD = $(MTDEV_LIBS) $(UDEV_LIBS)&lt;br /&gt;
    ( if not done, causes evdev_drv.so: undefined symbol: udev_new when Xorg is ran)&lt;br /&gt;
&lt;br /&gt;
    make -j 3 &lt;br /&gt;
    make install&lt;br /&gt;
&lt;br /&gt;
Once installed make an xorg.conf [ see xorg.conf section ] in /etc/X11/&lt;br /&gt;
and run startx as described below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== synaptics ====&lt;br /&gt;
&lt;br /&gt;
synaptics driver fails with error message relating to Protocol.&lt;br /&gt;
&lt;br /&gt;
    xf86-input-synaptics-1.6.1.tar.bz2&lt;br /&gt;
    ./configure --prefix=/opt/local/sw CFLAGS=-I/opt/local/sw/include/xorg LDFLAGS=-L/opt/local/sw/lib&lt;br /&gt;
    make -j 3&lt;br /&gt;
    make install&lt;br /&gt;
&lt;br /&gt;
When running Xorg, &lt;br /&gt;
&lt;br /&gt;
    [  4784.385] (EE) synaptics: mytouchscreen: Synaptics driver unable to detect protocol&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Running X ===&lt;br /&gt;
&lt;br /&gt;
make sure display is on, and&lt;br /&gt;
&lt;br /&gt;
From adb shell as su:&lt;br /&gt;
&lt;br /&gt;
    stop&lt;br /&gt;
&lt;br /&gt;
From slackware chroot environment in adb shell [ see section ]:&lt;br /&gt;
&lt;br /&gt;
    startx -- /opt/local/sw/bin/Xorg -pointer mytouchscreen :0&lt;br /&gt;
&lt;br /&gt;
Once Finished, from adb shell as su:&lt;br /&gt;
&lt;br /&gt;
    start&lt;br /&gt;
&lt;br /&gt;
=== Virtual Keyboard ===&lt;br /&gt;
&lt;br /&gt;
==== http://homepage3.nifty.com/tsato/xvkbd/ ====&lt;br /&gt;
&lt;br /&gt;
Download [http://homepage3.nifty.com/tsato/xvkbd/xvkbd-3.5.tar.gz xvkbd-3.5.tar.gz], install&lt;br /&gt;
    xmkf&lt;br /&gt;
    make &lt;br /&gt;
    make install&lt;br /&gt;
&lt;br /&gt;
and run: &lt;br /&gt;
&lt;br /&gt;
    xvkbd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Files ===&lt;br /&gt;
==== xorg.conf ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Section &amp;quot;ServerLayout&amp;quot;&lt;br /&gt;
Identifier	&amp;quot;myLaout&amp;quot;&lt;br /&gt;
Screen		&amp;quot;myScreen&amp;quot;&lt;br /&gt;
# InputDevice     &amp;quot;mymouse&amp;quot;&lt;br /&gt;
InputDevice	&amp;quot;mytouchscreen&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;Screen&amp;quot;&lt;br /&gt;
Identifier	&amp;quot;myScreen&amp;quot;&lt;br /&gt;
Device		&amp;quot;myfbdev&amp;quot;&lt;br /&gt;
DefaultDepth 	24&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;Device&amp;quot;&lt;br /&gt;
Identifier	&amp;quot;myFbdev&amp;quot;&lt;br /&gt;
Driver		&amp;quot;fbdev&amp;quot;&lt;br /&gt;
Option		&amp;quot;fbdev&amp;quot; &amp;quot;/dev/graphics/fb0&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;InputDevice&amp;quot;&lt;br /&gt;
 Identifier	&amp;quot;mytouchscreen&amp;quot;&lt;br /&gt;
 Driver		&amp;quot;evdev&amp;quot;&lt;br /&gt;
 # Driver 	&amp;quot;synaptics&amp;quot;&lt;br /&gt;
 Option		&amp;quot;Device&amp;quot; &amp;quot;/dev/input/event3&amp;quot;&lt;br /&gt;
 Option	&amp;quot;Protocol&amp;quot; &amp;quot;Auto&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== lnx_init.c patch ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--- xorg-server-1.12.2/hw/xfree86/os-support/linux/lnx_init.c	2014-09-04 22:53:13.450000054 +0530&lt;br /&gt;
+++ xorg-server-1.12.2.org/hw/xfree86/os-support/linux/lnx_init.c	2012-05-17 22:39:03.000000000 +0530&lt;br /&gt;
@@ -48,18 +48,15 @@&lt;br /&gt;
 static void&lt;br /&gt;
 drain_console(int fd, void *closure)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     errno = 0;&lt;br /&gt;
     if (tcflush(fd, TCIOFLUSH) == -1 &amp;amp;&amp;amp; errno == EIO) {&lt;br /&gt;
         xf86SetConsoleHandler(NULL, NULL);&lt;br /&gt;
     }&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 static void&lt;br /&gt;
 switch_to(int vt, const char *from)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     int ret;&lt;br /&gt;
 &lt;br /&gt;
     SYSCALL(ret = ioctl(xf86Info.consoleFd, VT_ACTIVATE, vt));&lt;br /&gt;
@@ -69,13 +66,11 @@&lt;br /&gt;
     SYSCALL(ret = ioctl(xf86Info.consoleFd, VT_WAITACTIVE, vt));&lt;br /&gt;
     if (ret &amp;lt; 0)&lt;br /&gt;
         FatalError(&amp;quot;%s: VT_WAITACTIVE failed: %s\n&amp;quot;, from, strerror(errno));&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void&lt;br /&gt;
 xf86OpenConsole(void)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     int i, fd = -1, ret;&lt;br /&gt;
     struct vt_mode VT;&lt;br /&gt;
     struct vt_stat vts;&lt;br /&gt;
@@ -254,13 +249,11 @@&lt;br /&gt;
             switch_to(xf86Info.vtno, &amp;quot;xf86OpenConsole&amp;quot;);&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void&lt;br /&gt;
 xf86CloseConsole(void)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     struct vt_mode VT;&lt;br /&gt;
     int ret;&lt;br /&gt;
 &lt;br /&gt;
@@ -307,7 +300,6 @@&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
     close(xf86Info.consoleFd);  /* make the vt-manager happy */&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Running some tests ==&lt;br /&gt;
&lt;br /&gt;
=== Running evtest ===&lt;br /&gt;
&lt;br /&gt;
Download [http://cgit.freedesktop.org/~whot/evtest/tree/evtest.c evtest.c].&lt;br /&gt;
&lt;br /&gt;
   gcc -o gcc -o evtest evtest.c&lt;br /&gt;
   ./evtest&lt;br /&gt;
   see evtest.log for sample outpu&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== evtest.log ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
No device specified, trying to scan all of /dev/input/event*&lt;br /&gt;
Available devices:&lt;br /&gt;
/dev/input/event0:	mtk-kpd&lt;br /&gt;
/dev/input/event1:	ACCDET&lt;br /&gt;
/dev/input/event2:	hwmdata&lt;br /&gt;
/dev/input/event3:	mtk-tpd&lt;br /&gt;
Select the device event number [0-3]: Input driver version is 1.0.1&lt;br /&gt;
Input device ID: bus 0x0 vendor 0x0 product 0x0 version 0x0&lt;br /&gt;
Input device name: &amp;quot;mtk-tpd&amp;quot;&lt;br /&gt;
Supported events:&lt;br /&gt;
  Event type 0 (EV_SYN)&lt;br /&gt;
  Event type 1 (EV_KEY)&lt;br /&gt;
    Event code 330 (BTN_TOUCH)&lt;br /&gt;
  Event type 3 (EV_ABS)&lt;br /&gt;
    Event code 0 (ABS_X)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      800&lt;br /&gt;
      Resolution     800&lt;br /&gt;
    Event code 1 (ABS_Y)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      480&lt;br /&gt;
      Resolution     480&lt;br /&gt;
    Event code 24 (ABS_PRESSURE)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      255&lt;br /&gt;
    Event code 48 (ABS_MT_TOUCH_MAJOR)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      100&lt;br /&gt;
    Event code 49 (ABS_MT_TOUCH_MINOR)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      100&lt;br /&gt;
    Event code 53 (ABS_MT_POSITION_X)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      800&lt;br /&gt;
    Event code 54 (ABS_MT_POSITION_Y)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      480&lt;br /&gt;
    Event code 57 (ABS_MT_TRACKING_ID)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max        0&lt;br /&gt;
Properties:&lt;br /&gt;
  Property type 1 (INPUT_PROP_DIRECT)&lt;br /&gt;
Testing ... (interrupt to exit)&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845467.116675, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845467.116682, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.116687, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.116691, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.116695, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.116699, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.116703, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.133145, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.133151, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.133155, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.133160, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.133164, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.133167, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.148724, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.148730, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.148734, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.148738, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.148742, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.148745, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.164975, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.164981, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.164985, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.164989, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.164994, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.164997, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.180722, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.180727, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.180731, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.180736, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.180740, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.180743, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.196495, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.196501, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.196505, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.196510, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.196514, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.196517, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.211803, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.211809, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.211813, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.211818, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.211822, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.211825, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845467.225500, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845467.225504, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.225507, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845467.466531, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845467.466536, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.466540, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.466545, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.466549, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.466553, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.466556, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.482028, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.482033, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.482038, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.482042, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.482046, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.482049, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.497971, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.497977, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.497981, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.497986, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.497990, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.497993, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.514030, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.514036, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.514040, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.514044, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.514048, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.514051, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.530188, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.530194, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.530198, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.530202, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.530206, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.530210, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.545804, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.545809, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.545813, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.545818, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.545822, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.545825, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845467.559686, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845467.559690, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.559693, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845467.880062, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845467.880067, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.880072, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 678&lt;br /&gt;
Event: time 1409845467.880076, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 130&lt;br /&gt;
Event: time 1409845467.880080, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.880084, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.880088, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.895834, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.895839, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 678&lt;br /&gt;
Event: time 1409845467.895844, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 130&lt;br /&gt;
Event: time 1409845467.895848, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.895852, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.895855, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.911757, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.911762, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 678&lt;br /&gt;
Event: time 1409845467.911767, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 130&lt;br /&gt;
Event: time 1409845467.911771, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.911775, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.911778, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.927833, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.927838, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 680&lt;br /&gt;
Event: time 1409845467.927842, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 129&lt;br /&gt;
Event: time 1409845467.927847, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.927851, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.927854, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.944420, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.944426, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845467.944430, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 129&lt;br /&gt;
Event: time 1409845467.944434, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.944438, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.944442, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.959239, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.959244, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 683&lt;br /&gt;
Event: time 1409845467.959249, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 129&lt;br /&gt;
Event: time 1409845467.959253, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.959257, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.959260, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.974974, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.974980, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 685&lt;br /&gt;
Event: time 1409845467.974984, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 129&lt;br /&gt;
Event: time 1409845467.974988, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.974992, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.974996, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845467.989318, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845467.989321, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.989324, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845468.246567, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845468.246571, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.246576, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 659&lt;br /&gt;
Event: time 1409845468.246580, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 419&lt;br /&gt;
Event: time 1409845468.246584, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.246589, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.246592, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.262652, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.262657, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 659&lt;br /&gt;
Event: time 1409845468.262662, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 419&lt;br /&gt;
Event: time 1409845468.262666, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.262670, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.262673, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.278454, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.278460, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 659&lt;br /&gt;
Event: time 1409845468.278464, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 419&lt;br /&gt;
Event: time 1409845468.278468, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.278473, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.278476, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.293932, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.293938, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 653&lt;br /&gt;
Event: time 1409845468.293942, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 419&lt;br /&gt;
Event: time 1409845468.293946, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.293950, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.293953, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.309429, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.309434, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 639&lt;br /&gt;
Event: time 1409845468.309438, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 416&lt;br /&gt;
Event: time 1409845468.309443, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.309447, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.309450, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845468.323482, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845468.323486, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.323489, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845468.596393, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845468.596397, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.596402, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 226&lt;br /&gt;
Event: time 1409845468.596406, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 302&lt;br /&gt;
Event: time 1409845468.596410, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.596414, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.596417, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.612126, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.612132, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 226&lt;br /&gt;
Event: time 1409845468.612136, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 302&lt;br /&gt;
Event: time 1409845468.612140, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.612144, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.612147, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.628256, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.628262, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 226&lt;br /&gt;
Event: time 1409845468.628266, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 302&lt;br /&gt;
Event: time 1409845468.628271, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.628275, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.628278, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.644136, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.644142, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 226&lt;br /&gt;
Event: time 1409845468.644146, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 302&lt;br /&gt;
Event: time 1409845468.644151, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.644155, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.644158, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.659867, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.659873, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 226&lt;br /&gt;
Event: time 1409845468.659877, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 302&lt;br /&gt;
Event: time 1409845468.659882, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.659886, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.659889, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845468.673538, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845468.673541, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.673544, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845468.946001, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845468.946005, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.946010, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845468.946014, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845468.946018, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.946022, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.946025, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.962071, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.962077, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845468.962081, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845468.962085, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.962089, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.962093, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.977741, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.977747, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845468.977751, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845468.977755, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.977759, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.977762, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.993678, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.993684, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845468.993688, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845468.993692, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.993696, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.993700, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.010083, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.010089, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845469.010093, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845469.010097, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.010101, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.010104, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.026187, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.026193, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 665&lt;br /&gt;
Event: time 1409845469.026197, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 357&lt;br /&gt;
Event: time 1409845469.026201, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.026205, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.026209, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.041432, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.041437, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 640&lt;br /&gt;
Event: time 1409845469.041442, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 357&lt;br /&gt;
Event: time 1409845469.041446, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.041450, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.041453, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.057294, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.057299, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 581&lt;br /&gt;
Event: time 1409845469.057304, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 364&lt;br /&gt;
Event: time 1409845469.057308, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.057312, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.057315, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.073883, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.073889, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 540&lt;br /&gt;
Event: time 1409845469.073893, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 364&lt;br /&gt;
Event: time 1409845469.073897, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.073901, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.073905, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.089886, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.089892, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 496&lt;br /&gt;
Event: time 1409845469.089896, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 364&lt;br /&gt;
Event: time 1409845469.089900, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.089904, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.089908, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.105335, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.105340, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 450&lt;br /&gt;
Event: time 1409845469.105344, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 364&lt;br /&gt;
Event: time 1409845469.105349, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.105353, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.105356, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.121183, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.121188, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 404&lt;br /&gt;
Event: time 1409845469.121192, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845469.121197, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.121201, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.121204, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.136794, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.136799, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 360&lt;br /&gt;
Event: time 1409845469.136803, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845469.136808, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.136812, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.136815, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.152605, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.152611, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 312&lt;br /&gt;
Event: time 1409845469.152615, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845469.152619, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.152623, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.152626, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.169594, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.169599, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 270&lt;br /&gt;
Event: time 1409845469.169604, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 366&lt;br /&gt;
Event: time 1409845469.169608, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.169612, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.169615, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.185263, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.185268, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 236&lt;br /&gt;
Event: time 1409845469.185273, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 373&lt;br /&gt;
Event: time 1409845469.185277, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.185281, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.185284, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.200843, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.200848, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 207&lt;br /&gt;
Event: time 1409845469.200853, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 376&lt;br /&gt;
Event: time 1409845469.200857, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.200861, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.200864, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.216857, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.216863, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 207&lt;br /&gt;
Event: time 1409845469.216867, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 376&lt;br /&gt;
Event: time 1409845469.216871, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.216875, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.216878, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845469.230419, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845469.230423, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.230426, -------------- SYN_REPORT ------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Running xinput ===&lt;br /&gt;
&lt;br /&gt;
	xinput --list&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
â¡ Virtual core pointer                         id=2    [master pointer  (3)]&lt;br /&gt;
â   â³ Virtual core XTEST pointer               id=4    [slave  pointer  (2)]&lt;br /&gt;
â   â³ mytouchscreen                            id=6    [slave  pointer  (2)]&lt;br /&gt;
â£ Virtual core keyboard                        id=3    [master keyboard (2)]&lt;br /&gt;
    â³ Virtual core XTEST keyboard              id=5    [slave  keyboard (3)]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== xinput log ====&lt;br /&gt;
&lt;br /&gt;
	xinput test 6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
motion a[0]=53 a[1]=58 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=53 a[1]=58 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=53 a[1]=58 &lt;br /&gt;
motion a[0]=513 a[1]=91 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=513 a[1]=91 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=513 a[1]=91 &lt;br /&gt;
motion a[0]=659 a[1]=436 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=659 a[1]=436 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=659 a[1]=436 &lt;br /&gt;
motion a[0]=624 a[1]=152 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=624 a[1]=152 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
motion a[0]=577 a[1]=174 &lt;br /&gt;
motion a[0]=501 a[1]=203 &lt;br /&gt;
motion a[0]=457 a[1]=219 &lt;br /&gt;
motion a[0]=411 a[1]=232 &lt;br /&gt;
motion a[0]=371 a[1]=240 &lt;br /&gt;
motion a[0]=341 a[1]=245 &lt;br /&gt;
button release 1 a[0]=341 a[1]=245 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</description>
			<pubDate>Fri, 05 Sep 2014 08:43:50 GMT</pubDate>
			<dc:creator>Gv</dc:creator>
			<comments>https://www.slackwiki.com/Talk:SlackwareOnMt6582Tablet</comments>
		</item>
		<item>
			<title>SlackwareOnMt6582Tablet</title>
			<link>https://www.slackwiki.com/index.php?title=SlackwareOnMt6582Tablet&amp;diff=926</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=SlackwareOnMt6582Tablet&amp;diff=926</guid>
			<description>&lt;p&gt;Gv: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Specifications of the Tablet PC which was used here ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Processor : Arm Cortex A7, 1.3 GHz dual core.&lt;br /&gt;
             : ARMv7 Processor rev 3 (v7l),&lt;br /&gt;
   Hardware  : MT8312&lt;br /&gt;
   SOC       : mt6582.&lt;br /&gt;
   Memory    : 512MB RAM&lt;br /&gt;
   Storage   : 4GB Built in storage.&lt;br /&gt;
   Micro SD  : Slot for upto 32GB&lt;br /&gt;
   Display   : 7&amp;quot; WVGA 800x480&lt;br /&gt;
   OS        : Android 4.2 Jelly Bean&lt;br /&gt;
   GPU       : Mali?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Rooting the Tablet PC ==&lt;br /&gt;
&lt;br /&gt;
I used [http://www.techverse.net/fastest-root-android-phone-computer/ Framaroot-1.9.3.apk] to root the device. &lt;br /&gt;
&lt;br /&gt;
== Installing Linux - Slackware 14.1 - sort of. ==&lt;br /&gt;
&lt;br /&gt;
With the problem of not having kernel source for the SOC, and no no bootloader unlock possible yet, next best option was to use a chroot environment.&lt;br /&gt;
&lt;br /&gt;
So far, command line mode works fine. Here is the description of how Slackware was installed on to external micro SD Card. Was able to do some basic tests on the frame buffer display. Since there is no VTs available was not able to test Xorg, though could get Mali module compiled and loaded. More details below.&lt;br /&gt;
&lt;br /&gt;
=== Preparing SD Card on host computer ===&lt;br /&gt;
&lt;br /&gt;
Use fdisk to create one or two partitions, one for ext4 and other ( optional ) swap partition. Once these are created, assuming the device on host is /dev/sdc,&lt;br /&gt;
&lt;br /&gt;
    mkfs.ext4 /dev/sdc1&lt;br /&gt;
    sync&lt;br /&gt;
    eject sdc&lt;br /&gt;
    eject -t sdc&lt;br /&gt;
    mkdir slack&lt;br /&gt;
    mount /dev/sdc1 slack&lt;br /&gt;
    cd slack&lt;br /&gt;
    mkdir sl&lt;br /&gt;
    cd sl&lt;br /&gt;
&lt;br /&gt;
If you don't have Slackware installation files, [http://arm.slackware.com/getslack/ Get Slackware Arm] first. &lt;br /&gt;
&lt;br /&gt;
    mkdir slackware14.1&lt;br /&gt;
    cd slackware14.1&lt;br /&gt;
    (cd /path..to../slackware14.1 ; tar cfz - *) | (tar xfz - )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://sourceforge.net/projects/slackwareonapc8750/files/initrd-kirkwood.cpio.gz/download initrd-kirkwood.cpio] contains the setup program, but since I couldn't boot with custom initrd, sdc1 /sl area is prepared to have the installation files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    cpio -id &amp;lt; initrd-kirkwood.cpio&lt;br /&gt;
    sync&lt;br /&gt;
    umount slack&lt;br /&gt;
&lt;br /&gt;
Now that the sd card is ready for installation:&lt;br /&gt;
&lt;br /&gt;
    eject sdc&lt;br /&gt;
	&lt;br /&gt;
and plug it into the device. Once that is done,&lt;br /&gt;
&lt;br /&gt;
=== Getting installer ready ===&lt;br /&gt;
&lt;br /&gt;
Now plug the card in tablet pc, boot, from host computer,&lt;br /&gt;
&lt;br /&gt;
==== starting a adb shell with su ====&lt;br /&gt;
&lt;br /&gt;
    adb shell&lt;br /&gt;
    su&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== chroot to installe ====&lt;br /&gt;
&lt;br /&gt;
    cd /data/local/tmp&lt;br /&gt;
    mkdir slackware&lt;br /&gt;
    mount /dev/block/mmcblk1p1 slackware&lt;br /&gt;
    cd slackware/sl&lt;br /&gt;
    export PATH=/data/local/tmp/bin:$PATH&lt;br /&gt;
    mountpoint proc || mount -t proc none proc/&lt;br /&gt;
    mountpoint sys || mount -t sysfs sys sys/&lt;br /&gt;
    mountpoint dev || mount -o bind  /dev dev/&lt;br /&gt;
    export PATH=/usr/bin:/bin:/usr/lib/setup:$PATH&lt;br /&gt;
    pushd /dev&lt;br /&gt;
    ln -s /dev/block/mmc1blk* .&lt;br /&gt;
    popd&lt;br /&gt;
    chroot . /bin/bash&lt;br /&gt;
    mount -t ext4 /dev/mmcblk1p1 mnt&lt;br /&gt;
&lt;br /&gt;
=== Running setup ===&lt;br /&gt;
&lt;br /&gt;
Install Slackware onto mmcblk1p1, from pre mounted directory, sdc1 : /slackware14.1/slackware&lt;br /&gt;
&lt;br /&gt;
    setup&lt;br /&gt;
        Proceed and select /dev/mmcblk1p1 as target, no format&lt;br /&gt;
        For source, select pre mounted directory option, /slackware14.1/slackware&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
=== Complete installation, and configuration ===&lt;br /&gt;
&lt;br /&gt;
Once the complete installation is done,&lt;br /&gt;
&lt;br /&gt;
    umount proc&lt;br /&gt;
    umount sys&lt;br /&gt;
    umount dev&lt;br /&gt;
    sync&lt;br /&gt;
    cd ../..&lt;br /&gt;
    umount slackware&lt;br /&gt;
&lt;br /&gt;
== Getting into installed Slackware: ==&lt;br /&gt;
&lt;br /&gt;
==== Running slackware su shell ====&lt;br /&gt;
&lt;br /&gt;
    adb shell&lt;br /&gt;
    su&lt;br /&gt;
    mount /dev/block/mmcblk1p1 slackware&lt;br /&gt;
    cd slackware&lt;br /&gt;
    mountpoint proc || mount -t proc none proc/&lt;br /&gt;
    mountpoint sys || mount -t sysfs sys sys/&lt;br /&gt;
    mountpoint dev || mount -o bind  /dev dev/&lt;br /&gt;
    export PATH=/usr/bin:/bin:/usr/lib/setup:$PATH&lt;br /&gt;
    chroot . /bin/bash&lt;br /&gt;
    su -	&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From here you can do &amp;quot;normal&amp;quot; Slackware activities, sort of. Main things that were lacking in my case&lt;br /&gt;
were VTs (ttys). Compiling programs and running programs that require no X windows worked fine. I ran&lt;br /&gt;
couple of frame buffer tests too. &lt;br /&gt;
		&lt;br /&gt;
== Testing the framebuffer ==		&lt;br /&gt;
&lt;br /&gt;
For these tests, I stopped android &amp;quot;SurfaceFlinger&amp;quot; and freed up /dev/graphics/fb0. by running &amp;quot;stop&amp;quot;&lt;br /&gt;
command. Before running stop, make sure that the display is on ( not blank ). For these tests, I had&lt;br /&gt;
two terminals up on the host PC with one of them running just adb shell with su, and other running&lt;br /&gt;
chrooted slackware shell. SurfaceFlinger was stopped from su shell, and tests from Slackware shell.&lt;br /&gt;
&lt;br /&gt;
Please not Slackware shell is also running as user root.&lt;br /&gt;
&lt;br /&gt;
==== Stopping android - sort of ====&lt;br /&gt;
&lt;br /&gt;
Here is how to stop the SurfaceFlinger and get framebuffer free:&lt;br /&gt;
&lt;br /&gt;
    adb shell&lt;br /&gt;
    su&lt;br /&gt;
    stop&lt;br /&gt;
&lt;br /&gt;
Now the display goes blank, with backlight on.&lt;br /&gt;
&lt;br /&gt;
Get one of these tests.&lt;br /&gt;
[https://gist.githubusercontent.com/rafalrusin/1482697/raw/32c6c0d79b870ffb618aa7b7c664736ca5e150fe/fbtest.c  fbtest] or &lt;br /&gt;
[http://stackoverflow.com/questions/4996777/paint-pixels-to-screen-via-linux-framebuffer Paint-pixels-to-screen-  via-linux-framebuffer] or &lt;br /&gt;
[http://cep.xray.aps.anl.gov/software/qt4-x11-4.2.2/qtopiacore-testingframebuffer.html qtopiacore-testingframebuffer] All these tests worked on the Tablet. Transfer the tests to tablet using adb push&lt;br /&gt;
command.&lt;br /&gt;
&lt;br /&gt;
from Slackware shell, running under adb shell:&lt;br /&gt;
&lt;br /&gt;
    gcc fbtest.c&lt;br /&gt;
    ./a.out&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
once done, go back to android su shell from adb, and:&lt;br /&gt;
&lt;br /&gt;
==== Getting back to android ====&lt;br /&gt;
  &lt;br /&gt;
    start&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
After few seconds android display will be back on. &lt;br /&gt;
&lt;br /&gt;
== Getting Xorg up - at least partially ==&lt;br /&gt;
&lt;br /&gt;
=== Getting Xorg compiled ===&lt;br /&gt;
&lt;br /&gt;
Ecept for Pointer ( touchscreen ) failure, Xorg seems to be working fine. evtest, xinput tests are showing touchscreen activity, but the cursor seems to be not&lt;br /&gt;
moving. &lt;br /&gt;
&lt;br /&gt;
Download [http://www.x.org/releases/X11R7.7/src/everything/xorg-server-1.12.2.tar.bz2  xorg-server-1.12.2], &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	tar xf xorg-server-1.12.2.tar.bz2&lt;br /&gt;
&lt;br /&gt;
Also make changes to xorg-server-1.12.2/hw/xfree86/os-support/linux/lnx\_init.c so that VT / console related code is disabled. See the patch section.&lt;br /&gt;
&lt;br /&gt;
	cd xorg-server-1.12.2&lt;br /&gt;
	export PKG_CONFIG_PATH=/opt/local/sw/share/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
	export PKG_CONFIG_PATH=/opt/local/sw/lib/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
	export LD_LIBRARY_PATH=/opt/local/sw/lib:$LD_LIBRARY_PATH&lt;br /&gt;
	export PATH=/opt/local/sw/bin:$PATH&lt;br /&gt;
	./configure --prefix=/opt/local/sw --enable-kdrive --enable-kdrive-evdev --with-xkb-path=/opt/local/sw/share/X11/xkb --with-xkb-output=/var/lib/xkb --with-xkb-bin-directory=/opt/local/sw/bin --with-default-xkb-rules=xorg --with-default-xkb-model=pc104 --with-default-xkb-layout=us  --disable-xnest --disable-dmx --disable-xquartz --disable-xwin --disable-xephyr --disable-config-udev --enable-tslib --disable-docs  --disable-devel-docs LDFLAGS=-L/opt/local/sw/lib CFLAGS=-I/opt/local/sw/include&lt;br /&gt;
make -j 3&lt;br /&gt;
&lt;br /&gt;
If all required packages are not on the system, compilation will fail. Download each of the requiered packags , untar, configure and install.&lt;br /&gt;
&lt;br /&gt;
	./configure --prefix=/opt/local/sw&lt;br /&gt;
	make -j 3 install&lt;br /&gt;
&lt;br /&gt;
Once xorg-server-1.12.2 compilation is succesfull, &lt;br /&gt;
	make install&lt;br /&gt;
	&lt;br /&gt;
=== Compiling additional drivers required ===&lt;br /&gt;
&lt;br /&gt;
==== fbdev ====&lt;br /&gt;
&lt;br /&gt;
xf86-video-fbdev-0.4.2&lt;br /&gt;
export PKG_CONFIG_PATH=/opt/local/sw/lib/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
./configure --prefix=/opt/local/sw&lt;br /&gt;
&lt;br /&gt;
src/fbdev.c xf86-video-fbdev-0.4.2/src/fbdev.c&lt;br /&gt;
// #include &amp;quot;mibstore.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
make -j 3&lt;br /&gt;
make install&lt;br /&gt;
&lt;br /&gt;
==== evdev ====&lt;br /&gt;
&lt;br /&gt;
    xf86-input-evdev-2.7.0&lt;br /&gt;
    ./configure --prefix=/opt/local/sw&lt;br /&gt;
&lt;br /&gt;
    src/Makefile:&lt;br /&gt;
    evdev_drv_la_LIBADD = $(MTDEV_LIBS) $(UDEV_LIBS)&lt;br /&gt;
    ( if not done, causes evdev_drv.so: undefined symbol: udev_new when Xorg is ran)&lt;br /&gt;
&lt;br /&gt;
    make -j 3 &lt;br /&gt;
    make install&lt;br /&gt;
&lt;br /&gt;
Once installed make an xorg.conf [ see xorg.conf section ] in /etc/X11/&lt;br /&gt;
and run startx as described below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== synaptics ====&lt;br /&gt;
&lt;br /&gt;
synaptics driver fails with error message relating to Protocol.&lt;br /&gt;
&lt;br /&gt;
    xf86-input-synaptics-1.6.1.tar.bz2&lt;br /&gt;
    ./configure --prefix=/opt/local/sw CFLAGS=-I/opt/local/sw/include/xorg LDFLAGS=-L/opt/local/sw/lib&lt;br /&gt;
    make -j 3&lt;br /&gt;
    make install&lt;br /&gt;
&lt;br /&gt;
When running Xorg, &lt;br /&gt;
&lt;br /&gt;
    [  4784.385] (EE) synaptics: mytouchscreen: Synaptics driver unable to detect protocol&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Running X ===&lt;br /&gt;
&lt;br /&gt;
make sure display is on, and&lt;br /&gt;
&lt;br /&gt;
From adb shell as su:&lt;br /&gt;
&lt;br /&gt;
    stop&lt;br /&gt;
&lt;br /&gt;
From slackware chroot environment in adb shell [ see section ]:&lt;br /&gt;
&lt;br /&gt;
    startx -- /opt/local/sw/bin/Xorg -pointer mytouchscreen :0&lt;br /&gt;
&lt;br /&gt;
Once Finished, from adb shell as su:&lt;br /&gt;
&lt;br /&gt;
    start&lt;br /&gt;
&lt;br /&gt;
=== Virtual Keyboard ===&lt;br /&gt;
&lt;br /&gt;
==== http://homepage3.nifty.com/tsato/xvkbd/ ====&lt;br /&gt;
&lt;br /&gt;
Download [http://homepage3.nifty.com/tsato/xvkbd/xvkbd-3.5.tar.gz xvkbd-3.5.tar.gz], install&lt;br /&gt;
    xmkf&lt;br /&gt;
    make &lt;br /&gt;
    make install&lt;br /&gt;
&lt;br /&gt;
and run: &lt;br /&gt;
&lt;br /&gt;
    xvkbd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Files ===&lt;br /&gt;
==== xorg.conf ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Section &amp;quot;ServerLayout&amp;quot;&lt;br /&gt;
Identifier	&amp;quot;myLaout&amp;quot;&lt;br /&gt;
Screen		&amp;quot;myScreen&amp;quot;&lt;br /&gt;
# InputDevice     &amp;quot;mymouse&amp;quot;&lt;br /&gt;
InputDevice	&amp;quot;mytouchscreen&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;Screen&amp;quot;&lt;br /&gt;
Identifier	&amp;quot;myScreen&amp;quot;&lt;br /&gt;
Device		&amp;quot;myfbdev&amp;quot;&lt;br /&gt;
DefaultDepth 	24&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;Device&amp;quot;&lt;br /&gt;
Identifier	&amp;quot;myFbdev&amp;quot;&lt;br /&gt;
Driver		&amp;quot;fbdev&amp;quot;&lt;br /&gt;
Option		&amp;quot;fbdev&amp;quot; &amp;quot;/dev/graphics/fb0&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;InputDevice&amp;quot;&lt;br /&gt;
 Identifier	&amp;quot;mytouchscreen&amp;quot;&lt;br /&gt;
 Driver		&amp;quot;evdev&amp;quot;&lt;br /&gt;
 # Driver 	&amp;quot;synaptics&amp;quot;&lt;br /&gt;
 Option		&amp;quot;Device&amp;quot; &amp;quot;/dev/input/event3&amp;quot;&lt;br /&gt;
 Option	&amp;quot;Protocol&amp;quot; &amp;quot;Auto&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== lnx_init.c patch ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--- xorg-server-1.12.2/hw/xfree86/os-support/linux/lnx_init.c	2014-09-04 22:53:13.450000054 +0530&lt;br /&gt;
+++ xorg-server-1.12.2.org/hw/xfree86/os-support/linux/lnx_init.c	2012-05-17 22:39:03.000000000 +0530&lt;br /&gt;
@@ -48,18 +48,15 @@&lt;br /&gt;
 static void&lt;br /&gt;
 drain_console(int fd, void *closure)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     errno = 0;&lt;br /&gt;
     if (tcflush(fd, TCIOFLUSH) == -1 &amp;amp;&amp;amp; errno == EIO) {&lt;br /&gt;
         xf86SetConsoleHandler(NULL, NULL);&lt;br /&gt;
     }&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 static void&lt;br /&gt;
 switch_to(int vt, const char *from)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     int ret;&lt;br /&gt;
 &lt;br /&gt;
     SYSCALL(ret = ioctl(xf86Info.consoleFd, VT_ACTIVATE, vt));&lt;br /&gt;
@@ -69,13 +66,11 @@&lt;br /&gt;
     SYSCALL(ret = ioctl(xf86Info.consoleFd, VT_WAITACTIVE, vt));&lt;br /&gt;
     if (ret &amp;lt; 0)&lt;br /&gt;
         FatalError(&amp;quot;%s: VT_WAITACTIVE failed: %s\n&amp;quot;, from, strerror(errno));&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void&lt;br /&gt;
 xf86OpenConsole(void)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     int i, fd = -1, ret;&lt;br /&gt;
     struct vt_mode VT;&lt;br /&gt;
     struct vt_stat vts;&lt;br /&gt;
@@ -254,13 +249,11 @@&lt;br /&gt;
             switch_to(xf86Info.vtno, &amp;quot;xf86OpenConsole&amp;quot;);&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void&lt;br /&gt;
 xf86CloseConsole(void)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     struct vt_mode VT;&lt;br /&gt;
     int ret;&lt;br /&gt;
 &lt;br /&gt;
@@ -307,7 +300,6 @@&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
     close(xf86Info.consoleFd);  /* make the vt-manager happy */&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Running some tests ==&lt;br /&gt;
&lt;br /&gt;
=== Running evtest ===&lt;br /&gt;
&lt;br /&gt;
Download [http://cgit.freedesktop.org/~whot/evtest/tree/evtest.c evtest.c].&lt;br /&gt;
&lt;br /&gt;
   gcc -o gcc -o evtest evtest.c&lt;br /&gt;
   ./evtest&lt;br /&gt;
   see evtest.log for sample outpu&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== evtest.log ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
No device specified, trying to scan all of /dev/input/event*&lt;br /&gt;
Available devices:&lt;br /&gt;
/dev/input/event0:	mtk-kpd&lt;br /&gt;
/dev/input/event1:	ACCDET&lt;br /&gt;
/dev/input/event2:	hwmdata&lt;br /&gt;
/dev/input/event3:	mtk-tpd&lt;br /&gt;
Select the device event number [0-3]: Input driver version is 1.0.1&lt;br /&gt;
Input device ID: bus 0x0 vendor 0x0 product 0x0 version 0x0&lt;br /&gt;
Input device name: &amp;quot;mtk-tpd&amp;quot;&lt;br /&gt;
Supported events:&lt;br /&gt;
  Event type 0 (EV_SYN)&lt;br /&gt;
  Event type 1 (EV_KEY)&lt;br /&gt;
    Event code 330 (BTN_TOUCH)&lt;br /&gt;
  Event type 3 (EV_ABS)&lt;br /&gt;
    Event code 0 (ABS_X)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      800&lt;br /&gt;
      Resolution     800&lt;br /&gt;
    Event code 1 (ABS_Y)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      480&lt;br /&gt;
      Resolution     480&lt;br /&gt;
    Event code 24 (ABS_PRESSURE)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      255&lt;br /&gt;
    Event code 48 (ABS_MT_TOUCH_MAJOR)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      100&lt;br /&gt;
    Event code 49 (ABS_MT_TOUCH_MINOR)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      100&lt;br /&gt;
    Event code 53 (ABS_MT_POSITION_X)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      800&lt;br /&gt;
    Event code 54 (ABS_MT_POSITION_Y)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      480&lt;br /&gt;
    Event code 57 (ABS_MT_TRACKING_ID)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max        0&lt;br /&gt;
Properties:&lt;br /&gt;
  Property type 1 (INPUT_PROP_DIRECT)&lt;br /&gt;
Testing ... (interrupt to exit)&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845467.116675, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845467.116682, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.116687, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.116691, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.116695, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.116699, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.116703, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.133145, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.133151, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.133155, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.133160, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.133164, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.133167, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.148724, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.148730, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.148734, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.148738, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.148742, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.148745, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.164975, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.164981, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.164985, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.164989, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.164994, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.164997, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.180722, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.180727, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.180731, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.180736, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.180740, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.180743, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.196495, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.196501, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.196505, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.196510, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.196514, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.196517, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.211803, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.211809, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.211813, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.211818, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.211822, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.211825, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845467.225500, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845467.225504, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.225507, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845467.466531, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845467.466536, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.466540, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.466545, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.466549, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.466553, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.466556, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.482028, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.482033, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.482038, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.482042, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.482046, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.482049, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.497971, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.497977, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.497981, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.497986, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.497990, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.497993, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.514030, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.514036, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.514040, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.514044, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.514048, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.514051, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.530188, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.530194, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.530198, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.530202, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.530206, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.530210, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.545804, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.545809, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.545813, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.545818, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.545822, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.545825, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845467.559686, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845467.559690, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.559693, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845467.880062, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845467.880067, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.880072, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 678&lt;br /&gt;
Event: time 1409845467.880076, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 130&lt;br /&gt;
Event: time 1409845467.880080, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.880084, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.880088, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.895834, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.895839, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 678&lt;br /&gt;
Event: time 1409845467.895844, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 130&lt;br /&gt;
Event: time 1409845467.895848, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.895852, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.895855, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.911757, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.911762, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 678&lt;br /&gt;
Event: time 1409845467.911767, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 130&lt;br /&gt;
Event: time 1409845467.911771, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.911775, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.911778, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.927833, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.927838, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 680&lt;br /&gt;
Event: time 1409845467.927842, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 129&lt;br /&gt;
Event: time 1409845467.927847, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.927851, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.927854, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.944420, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.944426, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845467.944430, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 129&lt;br /&gt;
Event: time 1409845467.944434, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.944438, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.944442, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.959239, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.959244, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 683&lt;br /&gt;
Event: time 1409845467.959249, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 129&lt;br /&gt;
Event: time 1409845467.959253, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.959257, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.959260, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.974974, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.974980, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 685&lt;br /&gt;
Event: time 1409845467.974984, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 129&lt;br /&gt;
Event: time 1409845467.974988, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.974992, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.974996, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845467.989318, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845467.989321, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.989324, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845468.246567, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845468.246571, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.246576, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 659&lt;br /&gt;
Event: time 1409845468.246580, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 419&lt;br /&gt;
Event: time 1409845468.246584, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.246589, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.246592, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.262652, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.262657, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 659&lt;br /&gt;
Event: time 1409845468.262662, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 419&lt;br /&gt;
Event: time 1409845468.262666, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.262670, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.262673, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.278454, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.278460, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 659&lt;br /&gt;
Event: time 1409845468.278464, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 419&lt;br /&gt;
Event: time 1409845468.278468, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.278473, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.278476, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.293932, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.293938, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 653&lt;br /&gt;
Event: time 1409845468.293942, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 419&lt;br /&gt;
Event: time 1409845468.293946, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.293950, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.293953, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.309429, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.309434, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 639&lt;br /&gt;
Event: time 1409845468.309438, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 416&lt;br /&gt;
Event: time 1409845468.309443, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.309447, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.309450, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845468.323482, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845468.323486, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.323489, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845468.596393, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845468.596397, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.596402, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 226&lt;br /&gt;
Event: time 1409845468.596406, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 302&lt;br /&gt;
Event: time 1409845468.596410, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.596414, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.596417, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.612126, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.612132, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 226&lt;br /&gt;
Event: time 1409845468.612136, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 302&lt;br /&gt;
Event: time 1409845468.612140, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.612144, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.612147, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.628256, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.628262, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 226&lt;br /&gt;
Event: time 1409845468.628266, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 302&lt;br /&gt;
Event: time 1409845468.628271, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.628275, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.628278, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.644136, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.644142, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 226&lt;br /&gt;
Event: time 1409845468.644146, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 302&lt;br /&gt;
Event: time 1409845468.644151, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.644155, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.644158, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.659867, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.659873, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 226&lt;br /&gt;
Event: time 1409845468.659877, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 302&lt;br /&gt;
Event: time 1409845468.659882, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.659886, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.659889, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845468.673538, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845468.673541, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.673544, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845468.946001, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845468.946005, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.946010, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845468.946014, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845468.946018, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.946022, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.946025, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.962071, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.962077, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845468.962081, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845468.962085, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.962089, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.962093, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.977741, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.977747, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845468.977751, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845468.977755, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.977759, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.977762, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.993678, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.993684, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845468.993688, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845468.993692, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.993696, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.993700, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.010083, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.010089, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845469.010093, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845469.010097, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.010101, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.010104, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.026187, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.026193, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 665&lt;br /&gt;
Event: time 1409845469.026197, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 357&lt;br /&gt;
Event: time 1409845469.026201, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.026205, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.026209, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.041432, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.041437, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 640&lt;br /&gt;
Event: time 1409845469.041442, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 357&lt;br /&gt;
Event: time 1409845469.041446, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.041450, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.041453, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.057294, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.057299, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 581&lt;br /&gt;
Event: time 1409845469.057304, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 364&lt;br /&gt;
Event: time 1409845469.057308, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.057312, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.057315, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.073883, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.073889, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 540&lt;br /&gt;
Event: time 1409845469.073893, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 364&lt;br /&gt;
Event: time 1409845469.073897, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.073901, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.073905, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.089886, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.089892, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 496&lt;br /&gt;
Event: time 1409845469.089896, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 364&lt;br /&gt;
Event: time 1409845469.089900, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.089904, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.089908, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.105335, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.105340, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 450&lt;br /&gt;
Event: time 1409845469.105344, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 364&lt;br /&gt;
Event: time 1409845469.105349, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.105353, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.105356, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.121183, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.121188, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 404&lt;br /&gt;
Event: time 1409845469.121192, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845469.121197, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.121201, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.121204, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.136794, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.136799, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 360&lt;br /&gt;
Event: time 1409845469.136803, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845469.136808, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.136812, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.136815, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.152605, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.152611, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 312&lt;br /&gt;
Event: time 1409845469.152615, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845469.152619, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.152623, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.152626, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.169594, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.169599, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 270&lt;br /&gt;
Event: time 1409845469.169604, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 366&lt;br /&gt;
Event: time 1409845469.169608, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.169612, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.169615, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.185263, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.185268, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 236&lt;br /&gt;
Event: time 1409845469.185273, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 373&lt;br /&gt;
Event: time 1409845469.185277, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.185281, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.185284, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.200843, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.200848, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 207&lt;br /&gt;
Event: time 1409845469.200853, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 376&lt;br /&gt;
Event: time 1409845469.200857, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.200861, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.200864, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.216857, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.216863, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 207&lt;br /&gt;
Event: time 1409845469.216867, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 376&lt;br /&gt;
Event: time 1409845469.216871, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.216875, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.216878, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845469.230419, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845469.230423, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.230426, -------------- SYN_REPORT ------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Running xinput ===&lt;br /&gt;
&lt;br /&gt;
	xinput --list&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
â¡ Virtual core pointer                         id=2    [master pointer  (3)]&lt;br /&gt;
â   â³ Virtual core XTEST pointer               id=4    [slave  pointer  (2)]&lt;br /&gt;
â   â³ mytouchscreen                            id=6    [slave  pointer  (2)]&lt;br /&gt;
â£ Virtual core keyboard                        id=3    [master keyboard (2)]&lt;br /&gt;
    â³ Virtual core XTEST keyboard              id=5    [slave  keyboard (3)]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== xinput log ====&lt;br /&gt;
&lt;br /&gt;
	xinput test 6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
motion a[0]=53 a[1]=58 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=53 a[1]=58 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=53 a[1]=58 &lt;br /&gt;
motion a[0]=513 a[1]=91 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=513 a[1]=91 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=513 a[1]=91 &lt;br /&gt;
motion a[0]=659 a[1]=436 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=659 a[1]=436 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=659 a[1]=436 &lt;br /&gt;
motion a[0]=624 a[1]=152 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=624 a[1]=152 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
motion a[0]=577 a[1]=174 &lt;br /&gt;
motion a[0]=501 a[1]=203 &lt;br /&gt;
motion a[0]=457 a[1]=219 &lt;br /&gt;
motion a[0]=411 a[1]=232 &lt;br /&gt;
motion a[0]=371 a[1]=240 &lt;br /&gt;
motion a[0]=341 a[1]=245 &lt;br /&gt;
button release 1 a[0]=341 a[1]=245 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</description>
			<pubDate>Fri, 05 Sep 2014 08:34:14 GMT</pubDate>
			<dc:creator>Gv</dc:creator>
			<comments>https://www.slackwiki.com/Talk:SlackwareOnMt6582Tablet</comments>
		</item>
		<item>
			<title>SlackwareOnMt6582Tablet</title>
			<link>https://www.slackwiki.com/index.php?title=SlackwareOnMt6582Tablet&amp;diff=925</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=SlackwareOnMt6582Tablet&amp;diff=925</guid>
			<description>&lt;p&gt;Gv: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Specifications of the Tablet PC which was used here ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Processor : Arm Cortex A7, 1.3 GHz dual core.&lt;br /&gt;
             : ARMv7 Processor rev 3 (v7l),&lt;br /&gt;
   Hardware  : MT8312&lt;br /&gt;
   SOC       : mt6582.&lt;br /&gt;
   Memory    : 512MB RAM&lt;br /&gt;
   Storage   : 4GB Built in storage.&lt;br /&gt;
   Micro SD  : Slot for upto 32GB&lt;br /&gt;
   Display   : 7&amp;quot; WVGA 800x480&lt;br /&gt;
   OS        : Android 4.2 Jelly Bean&lt;br /&gt;
   GPU       : Mali?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Rooting the Tablet PC ==&lt;br /&gt;
&lt;br /&gt;
I used [http://www.techverse.net/fastest-root-android-phone-computer/ Framaroot-1.9.3.apk] to root the device. &lt;br /&gt;
&lt;br /&gt;
== Installing Linux - Slackware 14.1 - sort of. ==&lt;br /&gt;
&lt;br /&gt;
With the problem of not having kernel source for the SOC, and no no bootloader unlock possible yet, next best option was to use a chroot environment.&lt;br /&gt;
&lt;br /&gt;
So far, command line mode works fine. Here is the description of how Slackware was installed on to external micro SD Card. Was able to do some basic tests on the frame buffer display. Since there is no VTs available was not able to test Xorg, though could get Mali module compiled and loaded. More details below.&lt;br /&gt;
&lt;br /&gt;
=== Preparing SD Card on host computer ===&lt;br /&gt;
&lt;br /&gt;
Use fdisk to create one or two partitions, one for ext4 and other ( optional ) swap partition. Once these are created, assuming the device on host is /dev/sdc,&lt;br /&gt;
&lt;br /&gt;
    mkfs.ext4 /dev/sdc1&lt;br /&gt;
    sync&lt;br /&gt;
    eject sdc&lt;br /&gt;
    eject -t sdc&lt;br /&gt;
    mkdir slack&lt;br /&gt;
    mount /dev/sdc1 slack&lt;br /&gt;
    cd slack&lt;br /&gt;
    mkdir sl&lt;br /&gt;
    cd sl&lt;br /&gt;
&lt;br /&gt;
If you don't have Slackware installation files, [http://arm.slackware.com/getslack/ Get Slackware Arm] first. &lt;br /&gt;
&lt;br /&gt;
    mkdir slackware14.1&lt;br /&gt;
    cd slackware14.1&lt;br /&gt;
    (cd /path..to../slackware14.1 ; tar cfz - *) | (tar xfz - )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://sourceforge.net/projects/slackwareonapc8750/files/initrd-kirkwood.cpio.gz/download initrd-kirkwood.cpio] contains the setup program, but since I couldn't boot with custom initrd, sdc1 /sl area is prepared to have the installation files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    cpio -id &amp;lt; initrd-kirkwood.cpio&lt;br /&gt;
    sync&lt;br /&gt;
    umount slack&lt;br /&gt;
&lt;br /&gt;
Now that the sd card is ready for installation:&lt;br /&gt;
&lt;br /&gt;
    eject sdc&lt;br /&gt;
	&lt;br /&gt;
and plug it into the device. Once that is done,&lt;br /&gt;
&lt;br /&gt;
=== Getting installer ready ===&lt;br /&gt;
&lt;br /&gt;
Now plug the card in tablet pc, boot, from host computer,&lt;br /&gt;
&lt;br /&gt;
==== starting a adb shell with su ====&lt;br /&gt;
&lt;br /&gt;
    adb shell&lt;br /&gt;
    su&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== chroot to installe ====&lt;br /&gt;
&lt;br /&gt;
    cd /data/local/tmp&lt;br /&gt;
    mkdir slackware&lt;br /&gt;
    mount /dev/block/mmcblk1p1 slackware&lt;br /&gt;
    cd slackware/sl&lt;br /&gt;
    export PATH=/data/local/tmp/bin:$PATH&lt;br /&gt;
    mountpoint proc || mount -t proc none proc/&lt;br /&gt;
    mountpoint sys || mount -t sysfs sys sys/&lt;br /&gt;
    mountpoint dev || mount -o bind  /dev dev/&lt;br /&gt;
    export PATH=/usr/bin:/bin:/usr/lib/setup:$PATH&lt;br /&gt;
    pushd /dev&lt;br /&gt;
    ln -s /dev/block/mmc1blk* .&lt;br /&gt;
    popd&lt;br /&gt;
    chroot . /bin/bash&lt;br /&gt;
    mount -t ext4 /dev/mmcblk1p1 mnt&lt;br /&gt;
&lt;br /&gt;
=== Running setup ===&lt;br /&gt;
&lt;br /&gt;
Install Slackware onto mmcblk1p1, from pre mounted directory, sdc1 : /slackware14.1/slackware&lt;br /&gt;
&lt;br /&gt;
    setup&lt;br /&gt;
        Proceed and select /dev/mmcblk1p1 as target, no format&lt;br /&gt;
        For source, select pre mounted directory option, /slackware14.1/slackware&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
=== Complete installation, and configuration ===&lt;br /&gt;
&lt;br /&gt;
Once the complete installation is done,&lt;br /&gt;
&lt;br /&gt;
    umount proc&lt;br /&gt;
    umount sys&lt;br /&gt;
    umount dev&lt;br /&gt;
    sync&lt;br /&gt;
    cd ../..&lt;br /&gt;
    umount slackware&lt;br /&gt;
&lt;br /&gt;
== Getting into installed Slackware: ==&lt;br /&gt;
&lt;br /&gt;
==== Running slackware su shell ====&lt;br /&gt;
&lt;br /&gt;
    adb shell&lt;br /&gt;
    su&lt;br /&gt;
    mount /dev/block/mmcblk1p1 slackware&lt;br /&gt;
    cd slackware&lt;br /&gt;
    mountpoint proc || mount -t proc none proc/&lt;br /&gt;
    mountpoint sys || mount -t sysfs sys sys/&lt;br /&gt;
    mountpoint dev || mount -o bind  /dev dev/&lt;br /&gt;
    export PATH=/usr/bin:/bin:/usr/lib/setup:$PATH&lt;br /&gt;
    chroot . /bin/bash&lt;br /&gt;
    su -	&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From here you can do &amp;quot;normal&amp;quot; Slackware activities, sort of. Main things that were lacking in my case&lt;br /&gt;
were VTs (ttys). Compiling programs and running programs that require no X windows worked fine. I ran&lt;br /&gt;
couple of frame buffer tests too. &lt;br /&gt;
		&lt;br /&gt;
== Testing the framebuffer ==		&lt;br /&gt;
&lt;br /&gt;
For these tests, I stopped android &amp;quot;SurfaceFlinger&amp;quot; and freed up /dev/graphics/fb0. by running &amp;quot;stop&amp;quot;&lt;br /&gt;
command. Before running stop, make sure that the display is on ( not blank ). For these tests, I had&lt;br /&gt;
two terminals up on the host PC with one of them running just adb shell with su, and other running&lt;br /&gt;
chrooted slackware shell. SurfaceFlinger was stopped from su shell, and tests from Slackware shell.&lt;br /&gt;
&lt;br /&gt;
Please not Slackware shell is also running as user root.&lt;br /&gt;
&lt;br /&gt;
==== Stopping android - sort of ====&lt;br /&gt;
&lt;br /&gt;
Here is how to stop the SurfaceFlinger and get framebuffer free:&lt;br /&gt;
&lt;br /&gt;
    adb shell&lt;br /&gt;
    su&lt;br /&gt;
    stop&lt;br /&gt;
&lt;br /&gt;
Now the display goes blank, with backlight on.&lt;br /&gt;
&lt;br /&gt;
Get one of these tests.&lt;br /&gt;
[https://gist.githubusercontent.com/rafalrusin/1482697/raw/32c6c0d79b870ffb618aa7b7c664736ca5e150fe/fbtest.c  fbtest] or &lt;br /&gt;
[http://stackoverflow.com/questions/4996777/paint-pixels-to-screen-via-linux-framebuffer Paint-pixels-to-screen-  via-linux-framebuffer] or &lt;br /&gt;
[http://cep.xray.aps.anl.gov/software/qt4-x11-4.2.2/qtopiacore-testingframebuffer.html qtopiacore-testingframebuffer] All these tests worked on the Tablet. Transfer the tests to tablet using adb push&lt;br /&gt;
command.&lt;br /&gt;
&lt;br /&gt;
from Slackware shell, running under adb shell:&lt;br /&gt;
&lt;br /&gt;
    gcc fbtest.c&lt;br /&gt;
    ./a.out&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
once done, go back to android su shell from adb, and:&lt;br /&gt;
&lt;br /&gt;
==== Getting back to android ====&lt;br /&gt;
  &lt;br /&gt;
    start&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
After few seconds android display will be back on. &lt;br /&gt;
&lt;br /&gt;
== Getting Xorg up - at least partially ==&lt;br /&gt;
&lt;br /&gt;
=== Getting Xorg compiled ===&lt;br /&gt;
&lt;br /&gt;
Ecept for Pointer ( touchscreen ) failure, Xorg seems to be working fine. evtest, xinput tests are showing touchscreen activity, but the cursor seems to be not&lt;br /&gt;
moving. &lt;br /&gt;
&lt;br /&gt;
Download [http://www.x.org/releases/X11R7.7/src/everything/xorg-server-1.12.2.tar.bz2  xorg-server-1.12.2], &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	tar xf xorg-server-1.12.2.tar.bz2&lt;br /&gt;
&lt;br /&gt;
Also make changes to xorg-server-1.12.2/hw/xfree86/os-support/linux/lnx\_init.c so that VT / console related code is disabled. See the patch section.&lt;br /&gt;
&lt;br /&gt;
	cd xorg-server-1.12.2&lt;br /&gt;
	export PKG_CONFIG_PATH=/opt/local/sw/share/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
	export PKG_CONFIG_PATH=/opt/local/sw/lib/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
	export LD_LIBRARY_PATH=/opt/local/sw/lib:$LD_LIBRARY_PATH&lt;br /&gt;
	export PATH=/opt/local/sw/bin:$PATH&lt;br /&gt;
	./configure --prefix=/opt/local/sw --enable-kdrive --enable-kdrive-evdev --with-xkb-path=/opt/local/sw/share/X11/xkb --with-xkb-output=/var/lib/xkb --with-xkb-bin-directory=/opt/local/sw/bin --with-default-xkb-rules=xorg --with-default-xkb-model=pc104 --with-default-xkb-layout=us  --disable-xnest --disable-dmx --disable-xquartz --disable-xwin --disable-xephyr --disable-config-udev --enable-tslib --disable-docs  --disable-devel-docs LDFLAGS=-L/opt/local/sw/lib CFLAGS=-I/opt/local/sw/include&lt;br /&gt;
make -j 3&lt;br /&gt;
&lt;br /&gt;
If all required packages are not on the system, compilation will fail. Download each of the requiered packags , untar, configure and install.&lt;br /&gt;
&lt;br /&gt;
	./configure --prefix=/opt/local/sw&lt;br /&gt;
	make -j 3 install&lt;br /&gt;
&lt;br /&gt;
Once xorg-server-1.12.2 compilation is succesfull, &lt;br /&gt;
	make install&lt;br /&gt;
	&lt;br /&gt;
=== Compiling additional drivers required ===&lt;br /&gt;
&lt;br /&gt;
==== fbdev ====&lt;br /&gt;
&lt;br /&gt;
xf86-video-fbdev-0.4.2&lt;br /&gt;
export PKG_CONFIG_PATH=/opt/local/sw/lib/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
./configure --prefix=/opt/local/sw&lt;br /&gt;
&lt;br /&gt;
src/fbdev.c xf86-video-fbdev-0.4.2/src/fbdev.c&lt;br /&gt;
// #include &amp;quot;mibstore.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
make -j 3&lt;br /&gt;
make install&lt;br /&gt;
&lt;br /&gt;
==== evdev ====&lt;br /&gt;
&lt;br /&gt;
    xf86-input-evdev-2.7.0&lt;br /&gt;
    ./configure --prefix=/opt/local/sw&lt;br /&gt;
&lt;br /&gt;
    src/Makefile:&lt;br /&gt;
    evdev_drv_la_LIBADD = $(MTDEV_LIBS) $(UDEV_LIBS)&lt;br /&gt;
    ( if not done, causes evdev_drv.so: undefined symbol: udev_new when Xorg is ran)&lt;br /&gt;
&lt;br /&gt;
    make -j 3 &lt;br /&gt;
    make install&lt;br /&gt;
&lt;br /&gt;
Once installed make an xorg.conf [ see xorg.conf section ] in /etc/X11/&lt;br /&gt;
and run startx as described below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== synaptics ====&lt;br /&gt;
&lt;br /&gt;
synaptics driver fails with error message relating to Protocol.&lt;br /&gt;
&lt;br /&gt;
    xf86-input-synaptics-1.6.1.tar.bz2&lt;br /&gt;
    ./configure --prefix=/opt/local/sw CFLAGS=-I/opt/local/sw/include/xorg LDFLAGS=-L/opt/local/sw/lib&lt;br /&gt;
    make -j 3&lt;br /&gt;
    make install&lt;br /&gt;
&lt;br /&gt;
When running Xorg, &lt;br /&gt;
&lt;br /&gt;
    [  4784.385] (EE) synaptics: mytouchscreen: Synaptics driver unable to detect protocol&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Running X ===&lt;br /&gt;
&lt;br /&gt;
make sure display is on, and&lt;br /&gt;
&lt;br /&gt;
From adb shell as su:&lt;br /&gt;
&lt;br /&gt;
    stop&lt;br /&gt;
&lt;br /&gt;
From slackware chroot environment in adb shell [ see section ]:&lt;br /&gt;
&lt;br /&gt;
    startx -- /opt/local/sw/bin/Xorg -pointer mytouchscreen :0&lt;br /&gt;
&lt;br /&gt;
Once Finished, from adb shell as su:&lt;br /&gt;
&lt;br /&gt;
    start&lt;br /&gt;
&lt;br /&gt;
=== Files ===&lt;br /&gt;
==== xorg.conf ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Section &amp;quot;ServerLayout&amp;quot;&lt;br /&gt;
Identifier	&amp;quot;myLaout&amp;quot;&lt;br /&gt;
Screen		&amp;quot;myScreen&amp;quot;&lt;br /&gt;
# InputDevice     &amp;quot;mymouse&amp;quot;&lt;br /&gt;
InputDevice	&amp;quot;mytouchscreen&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;Screen&amp;quot;&lt;br /&gt;
Identifier	&amp;quot;myScreen&amp;quot;&lt;br /&gt;
Device		&amp;quot;myfbdev&amp;quot;&lt;br /&gt;
DefaultDepth 	24&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;Device&amp;quot;&lt;br /&gt;
Identifier	&amp;quot;myFbdev&amp;quot;&lt;br /&gt;
Driver		&amp;quot;fbdev&amp;quot;&lt;br /&gt;
Option		&amp;quot;fbdev&amp;quot; &amp;quot;/dev/graphics/fb0&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;InputDevice&amp;quot;&lt;br /&gt;
 Identifier	&amp;quot;mytouchscreen&amp;quot;&lt;br /&gt;
 Driver		&amp;quot;evdev&amp;quot;&lt;br /&gt;
 # Driver 	&amp;quot;synaptics&amp;quot;&lt;br /&gt;
 Option		&amp;quot;Device&amp;quot; &amp;quot;/dev/input/event3&amp;quot;&lt;br /&gt;
 Option	&amp;quot;Protocol&amp;quot; &amp;quot;Auto&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== lnx_init.c patch ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--- xorg-server-1.12.2/hw/xfree86/os-support/linux/lnx_init.c	2014-09-04 22:53:13.450000054 +0530&lt;br /&gt;
+++ xorg-server-1.12.2.org/hw/xfree86/os-support/linux/lnx_init.c	2012-05-17 22:39:03.000000000 +0530&lt;br /&gt;
@@ -48,18 +48,15 @@&lt;br /&gt;
 static void&lt;br /&gt;
 drain_console(int fd, void *closure)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     errno = 0;&lt;br /&gt;
     if (tcflush(fd, TCIOFLUSH) == -1 &amp;amp;&amp;amp; errno == EIO) {&lt;br /&gt;
         xf86SetConsoleHandler(NULL, NULL);&lt;br /&gt;
     }&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 static void&lt;br /&gt;
 switch_to(int vt, const char *from)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     int ret;&lt;br /&gt;
 &lt;br /&gt;
     SYSCALL(ret = ioctl(xf86Info.consoleFd, VT_ACTIVATE, vt));&lt;br /&gt;
@@ -69,13 +66,11 @@&lt;br /&gt;
     SYSCALL(ret = ioctl(xf86Info.consoleFd, VT_WAITACTIVE, vt));&lt;br /&gt;
     if (ret &amp;lt; 0)&lt;br /&gt;
         FatalError(&amp;quot;%s: VT_WAITACTIVE failed: %s\n&amp;quot;, from, strerror(errno));&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void&lt;br /&gt;
 xf86OpenConsole(void)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     int i, fd = -1, ret;&lt;br /&gt;
     struct vt_mode VT;&lt;br /&gt;
     struct vt_stat vts;&lt;br /&gt;
@@ -254,13 +249,11 @@&lt;br /&gt;
             switch_to(xf86Info.vtno, &amp;quot;xf86OpenConsole&amp;quot;);&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void&lt;br /&gt;
 xf86CloseConsole(void)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     struct vt_mode VT;&lt;br /&gt;
     int ret;&lt;br /&gt;
 &lt;br /&gt;
@@ -307,7 +300,6 @@&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
     close(xf86Info.consoleFd);  /* make the vt-manager happy */&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Running some tests ==&lt;br /&gt;
&lt;br /&gt;
=== Running evtest ===&lt;br /&gt;
&lt;br /&gt;
Download [http://cgit.freedesktop.org/~whot/evtest/tree/evtest.c evtest.c].&lt;br /&gt;
&lt;br /&gt;
   gcc -o gcc -o evtest evtest.c&lt;br /&gt;
   ./evtest&lt;br /&gt;
   see evtest.log for sample outpu&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== evtest.log ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
No device specified, trying to scan all of /dev/input/event*&lt;br /&gt;
Available devices:&lt;br /&gt;
/dev/input/event0:	mtk-kpd&lt;br /&gt;
/dev/input/event1:	ACCDET&lt;br /&gt;
/dev/input/event2:	hwmdata&lt;br /&gt;
/dev/input/event3:	mtk-tpd&lt;br /&gt;
Select the device event number [0-3]: Input driver version is 1.0.1&lt;br /&gt;
Input device ID: bus 0x0 vendor 0x0 product 0x0 version 0x0&lt;br /&gt;
Input device name: &amp;quot;mtk-tpd&amp;quot;&lt;br /&gt;
Supported events:&lt;br /&gt;
  Event type 0 (EV_SYN)&lt;br /&gt;
  Event type 1 (EV_KEY)&lt;br /&gt;
    Event code 330 (BTN_TOUCH)&lt;br /&gt;
  Event type 3 (EV_ABS)&lt;br /&gt;
    Event code 0 (ABS_X)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      800&lt;br /&gt;
      Resolution     800&lt;br /&gt;
    Event code 1 (ABS_Y)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      480&lt;br /&gt;
      Resolution     480&lt;br /&gt;
    Event code 24 (ABS_PRESSURE)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      255&lt;br /&gt;
    Event code 48 (ABS_MT_TOUCH_MAJOR)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      100&lt;br /&gt;
    Event code 49 (ABS_MT_TOUCH_MINOR)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      100&lt;br /&gt;
    Event code 53 (ABS_MT_POSITION_X)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      800&lt;br /&gt;
    Event code 54 (ABS_MT_POSITION_Y)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      480&lt;br /&gt;
    Event code 57 (ABS_MT_TRACKING_ID)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max        0&lt;br /&gt;
Properties:&lt;br /&gt;
  Property type 1 (INPUT_PROP_DIRECT)&lt;br /&gt;
Testing ... (interrupt to exit)&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845467.116675, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845467.116682, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.116687, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.116691, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.116695, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.116699, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.116703, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.133145, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.133151, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.133155, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.133160, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.133164, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.133167, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.148724, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.148730, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.148734, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.148738, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.148742, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.148745, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.164975, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.164981, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.164985, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.164989, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.164994, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.164997, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.180722, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.180727, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.180731, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.180736, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.180740, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.180743, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.196495, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.196501, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.196505, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.196510, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.196514, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.196517, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.211803, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.211809, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.211813, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.211818, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.211822, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.211825, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845467.225500, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845467.225504, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.225507, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845467.466531, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845467.466536, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.466540, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.466545, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.466549, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.466553, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.466556, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.482028, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.482033, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.482038, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.482042, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.482046, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.482049, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.497971, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.497977, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.497981, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.497986, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.497990, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.497993, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.514030, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.514036, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.514040, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.514044, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.514048, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.514051, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.530188, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.530194, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.530198, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.530202, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.530206, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.530210, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.545804, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.545809, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.545813, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.545818, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.545822, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.545825, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845467.559686, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845467.559690, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.559693, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845467.880062, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845467.880067, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.880072, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 678&lt;br /&gt;
Event: time 1409845467.880076, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 130&lt;br /&gt;
Event: time 1409845467.880080, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.880084, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.880088, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.895834, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.895839, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 678&lt;br /&gt;
Event: time 1409845467.895844, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 130&lt;br /&gt;
Event: time 1409845467.895848, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.895852, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.895855, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.911757, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.911762, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 678&lt;br /&gt;
Event: time 1409845467.911767, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 130&lt;br /&gt;
Event: time 1409845467.911771, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.911775, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.911778, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.927833, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.927838, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 680&lt;br /&gt;
Event: time 1409845467.927842, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 129&lt;br /&gt;
Event: time 1409845467.927847, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.927851, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.927854, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.944420, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.944426, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845467.944430, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 129&lt;br /&gt;
Event: time 1409845467.944434, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.944438, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.944442, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.959239, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.959244, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 683&lt;br /&gt;
Event: time 1409845467.959249, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 129&lt;br /&gt;
Event: time 1409845467.959253, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.959257, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.959260, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.974974, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.974980, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 685&lt;br /&gt;
Event: time 1409845467.974984, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 129&lt;br /&gt;
Event: time 1409845467.974988, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.974992, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.974996, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845467.989318, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845467.989321, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.989324, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845468.246567, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845468.246571, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.246576, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 659&lt;br /&gt;
Event: time 1409845468.246580, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 419&lt;br /&gt;
Event: time 1409845468.246584, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.246589, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.246592, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.262652, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.262657, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 659&lt;br /&gt;
Event: time 1409845468.262662, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 419&lt;br /&gt;
Event: time 1409845468.262666, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.262670, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.262673, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.278454, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.278460, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 659&lt;br /&gt;
Event: time 1409845468.278464, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 419&lt;br /&gt;
Event: time 1409845468.278468, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.278473, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.278476, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.293932, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.293938, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 653&lt;br /&gt;
Event: time 1409845468.293942, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 419&lt;br /&gt;
Event: time 1409845468.293946, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.293950, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.293953, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.309429, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.309434, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 639&lt;br /&gt;
Event: time 1409845468.309438, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 416&lt;br /&gt;
Event: time 1409845468.309443, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.309447, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.309450, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845468.323482, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845468.323486, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.323489, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845468.596393, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845468.596397, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.596402, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 226&lt;br /&gt;
Event: time 1409845468.596406, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 302&lt;br /&gt;
Event: time 1409845468.596410, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.596414, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.596417, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.612126, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.612132, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 226&lt;br /&gt;
Event: time 1409845468.612136, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 302&lt;br /&gt;
Event: time 1409845468.612140, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.612144, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.612147, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.628256, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.628262, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 226&lt;br /&gt;
Event: time 1409845468.628266, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 302&lt;br /&gt;
Event: time 1409845468.628271, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.628275, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.628278, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.644136, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.644142, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 226&lt;br /&gt;
Event: time 1409845468.644146, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 302&lt;br /&gt;
Event: time 1409845468.644151, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.644155, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.644158, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.659867, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.659873, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 226&lt;br /&gt;
Event: time 1409845468.659877, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 302&lt;br /&gt;
Event: time 1409845468.659882, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.659886, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.659889, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845468.673538, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845468.673541, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.673544, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845468.946001, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845468.946005, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.946010, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845468.946014, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845468.946018, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.946022, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.946025, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.962071, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.962077, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845468.962081, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845468.962085, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.962089, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.962093, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.977741, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.977747, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845468.977751, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845468.977755, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.977759, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.977762, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.993678, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.993684, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845468.993688, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845468.993692, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.993696, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.993700, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.010083, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.010089, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845469.010093, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845469.010097, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.010101, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.010104, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.026187, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.026193, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 665&lt;br /&gt;
Event: time 1409845469.026197, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 357&lt;br /&gt;
Event: time 1409845469.026201, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.026205, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.026209, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.041432, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.041437, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 640&lt;br /&gt;
Event: time 1409845469.041442, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 357&lt;br /&gt;
Event: time 1409845469.041446, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.041450, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.041453, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.057294, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.057299, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 581&lt;br /&gt;
Event: time 1409845469.057304, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 364&lt;br /&gt;
Event: time 1409845469.057308, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.057312, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.057315, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.073883, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.073889, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 540&lt;br /&gt;
Event: time 1409845469.073893, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 364&lt;br /&gt;
Event: time 1409845469.073897, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.073901, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.073905, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.089886, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.089892, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 496&lt;br /&gt;
Event: time 1409845469.089896, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 364&lt;br /&gt;
Event: time 1409845469.089900, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.089904, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.089908, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.105335, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.105340, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 450&lt;br /&gt;
Event: time 1409845469.105344, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 364&lt;br /&gt;
Event: time 1409845469.105349, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.105353, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.105356, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.121183, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.121188, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 404&lt;br /&gt;
Event: time 1409845469.121192, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845469.121197, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.121201, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.121204, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.136794, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.136799, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 360&lt;br /&gt;
Event: time 1409845469.136803, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845469.136808, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.136812, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.136815, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.152605, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.152611, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 312&lt;br /&gt;
Event: time 1409845469.152615, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845469.152619, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.152623, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.152626, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.169594, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.169599, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 270&lt;br /&gt;
Event: time 1409845469.169604, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 366&lt;br /&gt;
Event: time 1409845469.169608, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.169612, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.169615, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.185263, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.185268, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 236&lt;br /&gt;
Event: time 1409845469.185273, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 373&lt;br /&gt;
Event: time 1409845469.185277, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.185281, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.185284, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.200843, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.200848, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 207&lt;br /&gt;
Event: time 1409845469.200853, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 376&lt;br /&gt;
Event: time 1409845469.200857, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.200861, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.200864, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.216857, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.216863, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 207&lt;br /&gt;
Event: time 1409845469.216867, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 376&lt;br /&gt;
Event: time 1409845469.216871, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.216875, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.216878, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845469.230419, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845469.230423, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.230426, -------------- SYN_REPORT ------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Running xinput ===&lt;br /&gt;
&lt;br /&gt;
	xinput --list&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
â¡ Virtual core pointer                         id=2    [master pointer  (3)]&lt;br /&gt;
â   â³ Virtual core XTEST pointer               id=4    [slave  pointer  (2)]&lt;br /&gt;
â   â³ mytouchscreen                            id=6    [slave  pointer  (2)]&lt;br /&gt;
â£ Virtual core keyboard                        id=3    [master keyboard (2)]&lt;br /&gt;
    â³ Virtual core XTEST keyboard              id=5    [slave  keyboard (3)]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== xinput log ====&lt;br /&gt;
&lt;br /&gt;
	xinput test 6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
motion a[0]=53 a[1]=58 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=53 a[1]=58 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=53 a[1]=58 &lt;br /&gt;
motion a[0]=513 a[1]=91 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=513 a[1]=91 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=513 a[1]=91 &lt;br /&gt;
motion a[0]=659 a[1]=436 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=659 a[1]=436 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=659 a[1]=436 &lt;br /&gt;
motion a[0]=624 a[1]=152 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=624 a[1]=152 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
motion a[0]=577 a[1]=174 &lt;br /&gt;
motion a[0]=501 a[1]=203 &lt;br /&gt;
motion a[0]=457 a[1]=219 &lt;br /&gt;
motion a[0]=411 a[1]=232 &lt;br /&gt;
motion a[0]=371 a[1]=240 &lt;br /&gt;
motion a[0]=341 a[1]=245 &lt;br /&gt;
button release 1 a[0]=341 a[1]=245 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</description>
			<pubDate>Fri, 05 Sep 2014 06:57:06 GMT</pubDate>
			<dc:creator>Gv</dc:creator>
			<comments>https://www.slackwiki.com/Talk:SlackwareOnMt6582Tablet</comments>
		</item>
		<item>
			<title>SlackwareOnMt6582Tablet</title>
			<link>https://www.slackwiki.com/index.php?title=SlackwareOnMt6582Tablet&amp;diff=924</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=SlackwareOnMt6582Tablet&amp;diff=924</guid>
			<description>&lt;p&gt;Gv: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Specifications of the Tablet PC which was used here ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	Processor : Arm Cortex A7, 1.3 GHz dual core.&lt;br /&gt;
		: ARMv7 Processor rev 3 (v7l),&lt;br /&gt;
	Hardware  : MT8312&lt;br /&gt;
	SOC       : mt6582.&lt;br /&gt;
	Memory    : 512MB RAM&lt;br /&gt;
	Storage   : 4GB Built in storage.&lt;br /&gt;
	Micro SD  : Slot for upto 32GB&lt;br /&gt;
	Display   : 7&amp;quot; WVGA 800x480&lt;br /&gt;
	OS        : Android 4.2 Jelly Bean&lt;br /&gt;
	GPU       : Mali?&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rooting the Tablet PC ==&lt;br /&gt;
&lt;br /&gt;
I used [http://www.techverse.net/fastest-root-android-phone-computer/ Framaroot-1.9.3.apk] to root the device. &lt;br /&gt;
&lt;br /&gt;
== Installing Linux - Slackware 14.1 - sort of. ==&lt;br /&gt;
&lt;br /&gt;
With the problem of not having kernel source for the SOC, and no no bootloader unlock possible yet, next best option was to use a chroot environment.&lt;br /&gt;
&lt;br /&gt;
So far, command line mode works fine. Here is the description of how Slackware was installed on to external micro SD Card. Was able to do some basic tests on the frame buffer display. Since there is no VTs available was not able to test Xorg, though could get Mali module compiled and loaded. More details below.&lt;br /&gt;
&lt;br /&gt;
=== Preparing SD Card on host computer ===&lt;br /&gt;
&lt;br /&gt;
Use fdisk to create one or two partitions, one for ext4 and other ( optional ) swap partition. Once these are created, assuming the device on host is /dev/sdc,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	mkfs.ext4 /dev/sdc1&lt;br /&gt;
	sync&lt;br /&gt;
	eject sdc&lt;br /&gt;
	eject -t sdc&lt;br /&gt;
	mkdir slack&lt;br /&gt;
	mount /dev/sdc1 slack&lt;br /&gt;
	cd slack&lt;br /&gt;
	mkdir sl&lt;br /&gt;
	cd sl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you don't have Slackware installation files, [http://arm.slackware.com/getslack/ Get Slackware Arm] first. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        mkdir slackware14.1&lt;br /&gt;
        cd slackware14.1&lt;br /&gt;
	(cd /path..to../slackware14.1 ; tar cfz - *) | (tar xfz - )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://sourceforge.net/projects/slackwareonapc8750/files/initrd-kirkwood.cpio.gz/download initrd-kirkwood.cpio] contains the setup program, but since I couldn't boot with custom initrd, sdc1 /sl area is prepared to have the installation files.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	cpio -id &amp;lt; initrd-kirkwood.cpio&lt;br /&gt;
	sync&lt;br /&gt;
	umount slack&lt;br /&gt;
&lt;br /&gt;
Now that the sd card is ready for installation:&lt;br /&gt;
&lt;br /&gt;
	eject sdc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
and plug it into the device. Once that is done,&lt;br /&gt;
&lt;br /&gt;
=== Getting installer ready ===&lt;br /&gt;
&lt;br /&gt;
Now plug the card in tablet pc, boot, from host computer,&lt;br /&gt;
&lt;br /&gt;
==== starting a adb shell with su ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	adb shell&lt;br /&gt;
	su&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== chroot to installe ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	cd /data/local/tmp&lt;br /&gt;
	mkdir slackware&lt;br /&gt;
	mount /dev/block/mmcblk1p1 slackware&lt;br /&gt;
	cd slackware/sl&lt;br /&gt;
	export PATH=/data/local/tmp/bin:$PATH&lt;br /&gt;
	mountpoint proc || mount -t proc none proc/&lt;br /&gt;
	mountpoint sys || mount -t sysfs sys sys/&lt;br /&gt;
	mountpoint dev || mount -o bind  /dev dev/&lt;br /&gt;
	export PATH=/usr/bin:/bin:/usr/lib/setup:$PATH&lt;br /&gt;
	pushd /dev&lt;br /&gt;
	ln -s /dev/block/mmc1blk* .&lt;br /&gt;
	popd&lt;br /&gt;
	chroot . /bin/bash&lt;br /&gt;
	mount -t ext4 /dev/mmcblk1p1 mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Running setup ===&lt;br /&gt;
&lt;br /&gt;
Install Slackware onto mmcblk1p1, from pre mounted directory, sdc1 : /slackware14.1/slackware&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
	setup&lt;br /&gt;
	&lt;br /&gt;
		Proceed and select /dev/mmcblk1p1 as target, no format&lt;br /&gt;
		For source, select pre mounted directory option, /slackware14.1/slackware&lt;br /&gt;
&amp;lt;/pre&amp;gt;	&lt;br /&gt;
&lt;br /&gt;
=== Complete installation, and configuration ===&lt;br /&gt;
&lt;br /&gt;
Once the complete installation is done,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	umount proc&lt;br /&gt;
	umount sys&lt;br /&gt;
	umount dev&lt;br /&gt;
	sync&lt;br /&gt;
	cd ../..&lt;br /&gt;
	umount slackware&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Getting into installed Slackware: ==&lt;br /&gt;
&lt;br /&gt;
==== Running slackware su shell ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	adb shell&lt;br /&gt;
	su&lt;br /&gt;
	mount /dev/block/mmcblk1p1 slackware&lt;br /&gt;
	cd slackware&lt;br /&gt;
	mountpoint proc || mount -t proc none proc/&lt;br /&gt;
        mountpoint sys || mount -t sysfs sys sys/&lt;br /&gt;
        mountpoint dev || mount -o bind  /dev dev/&lt;br /&gt;
        export PATH=/usr/bin:/bin:/usr/lib/setup:$PATH&lt;br /&gt;
	chroot . /bin/bash&lt;br /&gt;
	su -	&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From here you can do &amp;quot;normal&amp;quot; Slackware activities, sort of. Main things that were lacking in my case&lt;br /&gt;
were VTs (ttys). Compiling programs and running programs that require no X windows worked fine. I ran&lt;br /&gt;
couple of frame buffer tests too. &lt;br /&gt;
		&lt;br /&gt;
== Testing the framebuffer ==		&lt;br /&gt;
&lt;br /&gt;
For these tests, I stopped android &amp;quot;SurfaceFlinger&amp;quot; and freed up /dev/graphics/fb0. by running &amp;quot;stop&amp;quot;&lt;br /&gt;
command. Before running stop, make sure that the display is on ( not blank ). For these tests, I had&lt;br /&gt;
two terminals up on the host PC with one of them running just adb shell with su, and other running&lt;br /&gt;
chrooted slackware shell. SurfaceFlinger was stopped from su shell, and tests from Slackware shell.&lt;br /&gt;
&lt;br /&gt;
Please not Slackware shell is also running as user root.&lt;br /&gt;
&lt;br /&gt;
==== Stopping android - sort of ====&lt;br /&gt;
&lt;br /&gt;
Here is how to stop the SurfaceFlinger and get framebuffer free:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	adb shell&lt;br /&gt;
	su&lt;br /&gt;
	stop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the display goes blank, with backlight on.&lt;br /&gt;
&lt;br /&gt;
Get one of these tests.&lt;br /&gt;
[https://gist.githubusercontent.com/rafalrusin/1482697/raw/32c6c0d79b870ffb618aa7b7c664736ca5e150fe/fbtest.c  fbtest] or &lt;br /&gt;
[http://stackoverflow.com/questions/4996777/paint-pixels-to-screen-via-linux-framebuffer Paint-pixels-to-screen-  via-linux-framebuffer] or &lt;br /&gt;
[http://cep.xray.aps.anl.gov/software/qt4-x11-4.2.2/qtopiacore-testingframebuffer.html qtopiacore-testingframebuffer] All these tests worked on the Tablet. Transfer the tests to tablet using adb push&lt;br /&gt;
command.&lt;br /&gt;
&lt;br /&gt;
from Slackware shell, running under adb shell:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   gcc fbtest.c&lt;br /&gt;
   ./a.out&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
once done, go back to android su shell from adb, and:&lt;br /&gt;
&lt;br /&gt;
==== Getting back to android ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	start&lt;br /&gt;
&amp;lt;/pre&amp;gt;	&lt;br /&gt;
&lt;br /&gt;
After few seconds android display will be back on. &lt;br /&gt;
&lt;br /&gt;
== Getting Xorg up - at least partially ==&lt;br /&gt;
&lt;br /&gt;
=== Getting Xorg compiled ===&lt;br /&gt;
&lt;br /&gt;
Ecept for Pointer ( touchscreen ) failure, Xorg seems to be working fine. evtest, xinput tests are showing touchscreen activity, but the cursor seems to be not&lt;br /&gt;
moving. &lt;br /&gt;
&lt;br /&gt;
Download [http://www.x.org/releases/X11R7.7/src/everything/xorg-server-1.12.2.tar.bz2  xorg-server-1.12.2], &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	tar xf xorg-server-1.12.2.tar.bz2&lt;br /&gt;
&lt;br /&gt;
Also make changes to xorg-server-1.12.2/hw/xfree86/os-support/linux/lnx\_init.c so that VT / console related code is disabled. See the patch section.&lt;br /&gt;
&lt;br /&gt;
	cd xorg-server-1.12.2&lt;br /&gt;
	export PKG_CONFIG_PATH=/opt/local/sw/share/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
	export PKG_CONFIG_PATH=/opt/local/sw/lib/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
	export LD_LIBRARY_PATH=/opt/local/sw/lib:$LD_LIBRARY_PATH&lt;br /&gt;
	export PATH=/opt/local/sw/bin:$PATH&lt;br /&gt;
	./configure --prefix=/opt/local/sw --enable-kdrive --enable-kdrive-evdev --with-xkb-path=/opt/local/sw/share/X11/xkb --with-xkb-output=/var/lib/xkb --with-xkb-bin-directory=/opt/local/sw/bin --with-default-xkb-rules=xorg --with-default-xkb-model=pc104 --with-default-xkb-layout=us  --disable-xnest --disable-dmx --disable-xquartz --disable-xwin --disable-xephyr --disable-config-udev --enable-tslib --disable-docs  --disable-devel-docs LDFLAGS=-L/opt/local/sw/lib CFLAGS=-I/opt/local/sw/include&lt;br /&gt;
make -j 3&lt;br /&gt;
&lt;br /&gt;
If all required packages are not on the system, compilation will fail. Download each of the requiered packags , untar, configure and install.&lt;br /&gt;
&lt;br /&gt;
	./configure --prefix=/opt/local/sw&lt;br /&gt;
	make -j 3 install&lt;br /&gt;
&lt;br /&gt;
Once xorg-server-1.12.2 compilation is succesfull, &lt;br /&gt;
	make install&lt;br /&gt;
	&lt;br /&gt;
=== Compiling additional drivers required ===&lt;br /&gt;
&lt;br /&gt;
==== fbdev ====&lt;br /&gt;
&lt;br /&gt;
xf86-video-fbdev-0.4.2&lt;br /&gt;
export PKG_CONFIG_PATH=/opt/local/sw/lib/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
./configure --prefix=/opt/local/sw&lt;br /&gt;
&lt;br /&gt;
src/fbdev.c xf86-video-fbdev-0.4.2/src/fbdev.c&lt;br /&gt;
// #include &amp;quot;mibstore.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
make -j 3&lt;br /&gt;
make install&lt;br /&gt;
&lt;br /&gt;
==== evdev ====&lt;br /&gt;
&lt;br /&gt;
    xf86-input-evdev-2.7.0&lt;br /&gt;
    ./configure --prefix=/opt/local/sw&lt;br /&gt;
&lt;br /&gt;
    src/Makefile:&lt;br /&gt;
    evdev_drv_la_LIBADD = $(MTDEV_LIBS) $(UDEV_LIBS)&lt;br /&gt;
    ( if not done, causes evdev_drv.so: undefined symbol: udev_new when Xorg is ran)&lt;br /&gt;
&lt;br /&gt;
    make -j 3 &lt;br /&gt;
    make install&lt;br /&gt;
&lt;br /&gt;
Once installed make an xorg.conf [ see xorg.conf section ] in /etc/X11/&lt;br /&gt;
and run startx as described below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== synaptics ====&lt;br /&gt;
&lt;br /&gt;
synaptics driver fails with error message relating to Protocol.&lt;br /&gt;
&lt;br /&gt;
    xf86-input-synaptics-1.6.1.tar.bz2&lt;br /&gt;
    ./configure --prefix=/opt/local/sw CFLAGS=-I/opt/local/sw/include/xorg LDFLAGS=-L/opt/local/sw/lib&lt;br /&gt;
    make -j 3&lt;br /&gt;
    make install&lt;br /&gt;
&lt;br /&gt;
When running Xorg, &lt;br /&gt;
&lt;br /&gt;
    [  4784.385] (EE) synaptics: mytouchscreen: Synaptics driver unable to detect protocol&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Running X ===&lt;br /&gt;
&lt;br /&gt;
make sure display is on, and&lt;br /&gt;
&lt;br /&gt;
From adb shell as su:&lt;br /&gt;
&lt;br /&gt;
    stop&lt;br /&gt;
&lt;br /&gt;
From slackware chroot environment in adb shell [ see section ]:&lt;br /&gt;
&lt;br /&gt;
    startx -- /opt/local/sw/bin/Xorg -pointer mytouchscreen :0&lt;br /&gt;
&lt;br /&gt;
Once Finished, from adb shell as su:&lt;br /&gt;
&lt;br /&gt;
    start&lt;br /&gt;
&lt;br /&gt;
=== Files ===&lt;br /&gt;
==== xorg.conf ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Section &amp;quot;ServerLayout&amp;quot;&lt;br /&gt;
Identifier	&amp;quot;myLaout&amp;quot;&lt;br /&gt;
Screen		&amp;quot;myScreen&amp;quot;&lt;br /&gt;
\# InputDevice     &amp;quot;mymouse&amp;quot;&lt;br /&gt;
InputDevice	&amp;quot;mytouchscreen&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;Screen&amp;quot;&lt;br /&gt;
Identifier	&amp;quot;myScreen&amp;quot;&lt;br /&gt;
Device		&amp;quot;myfbdev&amp;quot;&lt;br /&gt;
DefaultDepth 	24&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;Device&amp;quot;&lt;br /&gt;
Identifier	&amp;quot;myFbdev&amp;quot;&lt;br /&gt;
Driver		&amp;quot;fbdev&amp;quot;&lt;br /&gt;
Option		&amp;quot;fbdev&amp;quot; &amp;quot;/dev/graphics/fb0&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;InputDevice&amp;quot;&lt;br /&gt;
 Identifier	&amp;quot;mytouchscreen&amp;quot;&lt;br /&gt;
 Driver		&amp;quot;evdev&amp;quot;&lt;br /&gt;
 # Driver 	&amp;quot;synaptics&amp;quot;&lt;br /&gt;
 Option		&amp;quot;Device&amp;quot; &amp;quot;/dev/input/event3&amp;quot;&lt;br /&gt;
 Option	&amp;quot;Protocol&amp;quot; &amp;quot;Auto&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== lnx_init.c patch ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--- xorg-server-1.12.2/hw/xfree86/os-support/linux/lnx_init.c	2014-09-04 22:53:13.450000054 +0530&lt;br /&gt;
+++ xorg-server-1.12.2.org/hw/xfree86/os-support/linux/lnx_init.c	2012-05-17 22:39:03.000000000 +0530&lt;br /&gt;
@@ -48,18 +48,15 @@&lt;br /&gt;
 static void&lt;br /&gt;
 drain_console(int fd, void *closure)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     errno = 0;&lt;br /&gt;
     if (tcflush(fd, TCIOFLUSH) == -1 &amp;amp;&amp;amp; errno == EIO) {&lt;br /&gt;
         xf86SetConsoleHandler(NULL, NULL);&lt;br /&gt;
     }&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 static void&lt;br /&gt;
 switch_to(int vt, const char *from)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     int ret;&lt;br /&gt;
 &lt;br /&gt;
     SYSCALL(ret = ioctl(xf86Info.consoleFd, VT_ACTIVATE, vt));&lt;br /&gt;
@@ -69,13 +66,11 @@&lt;br /&gt;
     SYSCALL(ret = ioctl(xf86Info.consoleFd, VT_WAITACTIVE, vt));&lt;br /&gt;
     if (ret &amp;lt; 0)&lt;br /&gt;
         FatalError(&amp;quot;%s: VT_WAITACTIVE failed: %s\n&amp;quot;, from, strerror(errno));&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void&lt;br /&gt;
 xf86OpenConsole(void)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     int i, fd = -1, ret;&lt;br /&gt;
     struct vt_mode VT;&lt;br /&gt;
     struct vt_stat vts;&lt;br /&gt;
@@ -254,13 +249,11 @@&lt;br /&gt;
             switch_to(xf86Info.vtno, &amp;quot;xf86OpenConsole&amp;quot;);&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void&lt;br /&gt;
 xf86CloseConsole(void)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     struct vt_mode VT;&lt;br /&gt;
     int ret;&lt;br /&gt;
 &lt;br /&gt;
@@ -307,7 +300,6 @@&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
     close(xf86Info.consoleFd);  /* make the vt-manager happy */&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Running some tests ==&lt;br /&gt;
&lt;br /&gt;
=== Running evtest ===&lt;br /&gt;
&lt;br /&gt;
Download [http://cgit.freedesktop.org/~whot/evtest/tree/evtest.c evtest.c].&lt;br /&gt;
&lt;br /&gt;
   gcc -o gcc -o evtest evtest.c&lt;br /&gt;
   ./evtest&lt;br /&gt;
   see evtest.log for sample outpu&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== evtest.log ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
No device specified, trying to scan all of /dev/input/event*&lt;br /&gt;
Available devices:&lt;br /&gt;
/dev/input/event0:	mtk-kpd&lt;br /&gt;
/dev/input/event1:	ACCDET&lt;br /&gt;
/dev/input/event2:	hwmdata&lt;br /&gt;
/dev/input/event3:	mtk-tpd&lt;br /&gt;
Select the device event number [0-3]: Input driver version is 1.0.1&lt;br /&gt;
Input device ID: bus 0x0 vendor 0x0 product 0x0 version 0x0&lt;br /&gt;
Input device name: &amp;quot;mtk-tpd&amp;quot;&lt;br /&gt;
Supported events:&lt;br /&gt;
  Event type 0 (EV_SYN)&lt;br /&gt;
  Event type 1 (EV_KEY)&lt;br /&gt;
    Event code 330 (BTN_TOUCH)&lt;br /&gt;
  Event type 3 (EV_ABS)&lt;br /&gt;
    Event code 0 (ABS_X)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      800&lt;br /&gt;
      Resolution     800&lt;br /&gt;
    Event code 1 (ABS_Y)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      480&lt;br /&gt;
      Resolution     480&lt;br /&gt;
    Event code 24 (ABS_PRESSURE)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      255&lt;br /&gt;
    Event code 48 (ABS_MT_TOUCH_MAJOR)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      100&lt;br /&gt;
    Event code 49 (ABS_MT_TOUCH_MINOR)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      100&lt;br /&gt;
    Event code 53 (ABS_MT_POSITION_X)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      800&lt;br /&gt;
    Event code 54 (ABS_MT_POSITION_Y)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max      480&lt;br /&gt;
    Event code 57 (ABS_MT_TRACKING_ID)&lt;br /&gt;
      Value      0&lt;br /&gt;
      Min        0&lt;br /&gt;
      Max        0&lt;br /&gt;
Properties:&lt;br /&gt;
  Property type 1 (INPUT_PROP_DIRECT)&lt;br /&gt;
Testing ... (interrupt to exit)&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845467.116675, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845467.116682, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.116687, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.116691, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.116695, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.116699, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.116703, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.133145, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.133151, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.133155, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.133160, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.133164, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.133167, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.148724, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.148730, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.148734, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.148738, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.148742, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.148745, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.164975, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.164981, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.164985, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.164989, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.164994, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.164997, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.180722, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.180727, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.180731, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.180736, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.180740, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.180743, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.196495, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.196501, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.196505, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.196510, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.196514, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.196517, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.211803, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.211809, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 115&lt;br /&gt;
Event: time 1409845467.211813, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 96&lt;br /&gt;
Event: time 1409845467.211818, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.211822, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.211825, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845467.225500, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845467.225504, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.225507, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845467.466531, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845467.466536, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.466540, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.466545, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.466549, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.466553, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.466556, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.482028, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.482033, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.482038, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.482042, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.482046, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.482049, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.497971, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.497977, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.497981, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.497986, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.497990, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.497993, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.514030, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.514036, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.514040, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.514044, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.514048, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.514051, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.530188, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.530194, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.530198, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.530202, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.530206, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.530210, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.545804, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.545809, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 341&lt;br /&gt;
Event: time 1409845467.545813, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 151&lt;br /&gt;
Event: time 1409845467.545818, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.545822, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.545825, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845467.559686, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845467.559690, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.559693, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845467.880062, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845467.880067, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.880072, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 678&lt;br /&gt;
Event: time 1409845467.880076, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 130&lt;br /&gt;
Event: time 1409845467.880080, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.880084, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.880088, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.895834, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.895839, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 678&lt;br /&gt;
Event: time 1409845467.895844, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 130&lt;br /&gt;
Event: time 1409845467.895848, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.895852, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.895855, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.911757, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.911762, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 678&lt;br /&gt;
Event: time 1409845467.911767, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 130&lt;br /&gt;
Event: time 1409845467.911771, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.911775, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.911778, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.927833, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.927838, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 680&lt;br /&gt;
Event: time 1409845467.927842, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 129&lt;br /&gt;
Event: time 1409845467.927847, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.927851, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.927854, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.944420, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.944426, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845467.944430, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 129&lt;br /&gt;
Event: time 1409845467.944434, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.944438, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.944442, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.959239, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.959244, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 683&lt;br /&gt;
Event: time 1409845467.959249, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 129&lt;br /&gt;
Event: time 1409845467.959253, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.959257, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.959260, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845467.974974, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845467.974980, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 685&lt;br /&gt;
Event: time 1409845467.974984, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 129&lt;br /&gt;
Event: time 1409845467.974988, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845467.974992, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.974996, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845467.989318, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845467.989321, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845467.989324, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845468.246567, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845468.246571, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.246576, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 659&lt;br /&gt;
Event: time 1409845468.246580, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 419&lt;br /&gt;
Event: time 1409845468.246584, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.246589, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.246592, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.262652, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.262657, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 659&lt;br /&gt;
Event: time 1409845468.262662, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 419&lt;br /&gt;
Event: time 1409845468.262666, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.262670, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.262673, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.278454, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.278460, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 659&lt;br /&gt;
Event: time 1409845468.278464, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 419&lt;br /&gt;
Event: time 1409845468.278468, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.278473, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.278476, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.293932, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.293938, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 653&lt;br /&gt;
Event: time 1409845468.293942, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 419&lt;br /&gt;
Event: time 1409845468.293946, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.293950, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.293953, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.309429, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.309434, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 639&lt;br /&gt;
Event: time 1409845468.309438, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 416&lt;br /&gt;
Event: time 1409845468.309443, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.309447, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.309450, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845468.323482, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845468.323486, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.323489, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845468.596393, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845468.596397, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.596402, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 226&lt;br /&gt;
Event: time 1409845468.596406, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 302&lt;br /&gt;
Event: time 1409845468.596410, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.596414, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.596417, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.612126, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.612132, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 226&lt;br /&gt;
Event: time 1409845468.612136, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 302&lt;br /&gt;
Event: time 1409845468.612140, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.612144, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.612147, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.628256, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.628262, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 226&lt;br /&gt;
Event: time 1409845468.628266, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 302&lt;br /&gt;
Event: time 1409845468.628271, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.628275, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.628278, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.644136, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.644142, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 226&lt;br /&gt;
Event: time 1409845468.644146, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 302&lt;br /&gt;
Event: time 1409845468.644151, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.644155, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.644158, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.659867, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.659873, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 226&lt;br /&gt;
Event: time 1409845468.659877, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 302&lt;br /&gt;
Event: time 1409845468.659882, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.659886, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.659889, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845468.673538, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845468.673541, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.673544, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 112&lt;br /&gt;
Event: time 1409845468.946001, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1&lt;br /&gt;
Event: time 1409845468.946005, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.946010, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845468.946014, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845468.946018, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.946022, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.946025, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.962071, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.962077, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845468.962081, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845468.962085, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.962089, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.962093, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.977741, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.977747, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845468.977751, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845468.977755, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.977759, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.977762, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845468.993678, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845468.993684, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845468.993688, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845468.993692, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845468.993696, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845468.993700, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.010083, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.010089, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 681&lt;br /&gt;
Event: time 1409845469.010093, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845469.010097, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.010101, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.010104, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.026187, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.026193, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 665&lt;br /&gt;
Event: time 1409845469.026197, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 357&lt;br /&gt;
Event: time 1409845469.026201, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.026205, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.026209, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.041432, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.041437, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 640&lt;br /&gt;
Event: time 1409845469.041442, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 357&lt;br /&gt;
Event: time 1409845469.041446, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.041450, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.041453, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.057294, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.057299, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 581&lt;br /&gt;
Event: time 1409845469.057304, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 364&lt;br /&gt;
Event: time 1409845469.057308, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.057312, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.057315, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.073883, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.073889, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 540&lt;br /&gt;
Event: time 1409845469.073893, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 364&lt;br /&gt;
Event: time 1409845469.073897, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.073901, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.073905, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.089886, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.089892, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 496&lt;br /&gt;
Event: time 1409845469.089896, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 364&lt;br /&gt;
Event: time 1409845469.089900, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.089904, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.089908, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.105335, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.105340, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 450&lt;br /&gt;
Event: time 1409845469.105344, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 364&lt;br /&gt;
Event: time 1409845469.105349, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.105353, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.105356, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.121183, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.121188, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 404&lt;br /&gt;
Event: time 1409845469.121192, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845469.121197, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.121201, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.121204, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.136794, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.136799, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 360&lt;br /&gt;
Event: time 1409845469.136803, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845469.136808, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.136812, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.136815, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.152605, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.152611, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 312&lt;br /&gt;
Event: time 1409845469.152615, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 360&lt;br /&gt;
Event: time 1409845469.152619, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.152623, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.152626, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.169594, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.169599, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 270&lt;br /&gt;
Event: time 1409845469.169604, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 366&lt;br /&gt;
Event: time 1409845469.169608, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.169612, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.169615, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.185263, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.185268, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 236&lt;br /&gt;
Event: time 1409845469.185273, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 373&lt;br /&gt;
Event: time 1409845469.185277, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.185281, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.185284, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.200843, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.200848, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 207&lt;br /&gt;
Event: time 1409845469.200853, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 376&lt;br /&gt;
Event: time 1409845469.200857, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.200861, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.200864, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 96&lt;br /&gt;
Event: time 1409845469.216857, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1&lt;br /&gt;
Event: time 1409845469.216863, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 207&lt;br /&gt;
Event: time 1409845469.216867, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 376&lt;br /&gt;
Event: time 1409845469.216871, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1&lt;br /&gt;
Event: time 1409845469.216875, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.216878, -------------- SYN_REPORT ------------&lt;br /&gt;
GV: read 48&lt;br /&gt;
Event: time 1409845469.230419, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0&lt;br /&gt;
Event: time 1409845469.230423, ++++++++++++++ SYN_MT_REPORT ++++++++++++&lt;br /&gt;
Event: time 1409845469.230426, -------------- SYN_REPORT ------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Running xinput ===&lt;br /&gt;
&lt;br /&gt;
	xinput --list&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
â¡ Virtual core pointer                         id=2    [master pointer  (3)]&lt;br /&gt;
â   â³ Virtual core XTEST pointer               id=4    [slave  pointer  (2)]&lt;br /&gt;
â   â³ mytouchscreen                            id=6    [slave  pointer  (2)]&lt;br /&gt;
â£ Virtual core keyboard                        id=3    [master keyboard (2)]&lt;br /&gt;
    â³ Virtual core XTEST keyboard              id=5    [slave  keyboard (3)]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== xinput log ====&lt;br /&gt;
&lt;br /&gt;
	xinput test 6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
motion a[0]=53 a[1]=58 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=53 a[1]=58 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=53 a[1]=58 &lt;br /&gt;
motion a[0]=513 a[1]=91 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=513 a[1]=91 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=513 a[1]=91 &lt;br /&gt;
motion a[0]=659 a[1]=436 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=659 a[1]=436 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button release 1 a[0]=659 a[1]=436 &lt;br /&gt;
motion a[0]=624 a[1]=152 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
button press   1 a[0]=624 a[1]=152 a[2]=0 a[3]=1 a[4]=0 &lt;br /&gt;
motion a[0]=577 a[1]=174 &lt;br /&gt;
motion a[0]=501 a[1]=203 &lt;br /&gt;
motion a[0]=457 a[1]=219 &lt;br /&gt;
motion a[0]=411 a[1]=232 &lt;br /&gt;
motion a[0]=371 a[1]=240 &lt;br /&gt;
motion a[0]=341 a[1]=245 &lt;br /&gt;
button release 1 a[0]=341 a[1]=245 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</description>
			<pubDate>Fri, 05 Sep 2014 06:45:24 GMT</pubDate>
			<dc:creator>Gv</dc:creator>
			<comments>https://www.slackwiki.com/Talk:SlackwareOnMt6582Tablet</comments>
		</item>
		<item>
			<title>SlackwareOnMt6582Tablet</title>
			<link>https://www.slackwiki.com/index.php?title=SlackwareOnMt6582Tablet&amp;diff=923</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=SlackwareOnMt6582Tablet&amp;diff=923</guid>
			<description>&lt;p&gt;Gv: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Specifications of the Tablet PC which was used here ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	Processor : Arm Cortex A7, 1.3 GHz dual core.&lt;br /&gt;
		  : ARMv7 Processor rev 3 (v7l),&lt;br /&gt;
	Hardware  : MT8312&lt;br /&gt;
	SOC       : mt6582.&lt;br /&gt;
	Memory    : 512MB RAM&lt;br /&gt;
	Storage   : 4GB Built in storage.&lt;br /&gt;
	Micro SD  : Slot for upto 32GB&lt;br /&gt;
	Display   : 7&amp;quot; WVGA 800x480&lt;br /&gt;
	OS        : Android 4.2 Jelly Bean&lt;br /&gt;
        GPU       : Mali?&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rooting the Tablet PC ==&lt;br /&gt;
&lt;br /&gt;
I used [http://www.techverse.net/fastest-root-android-phone-computer/ Framaroot-1.9.3.apk] to root the device. &lt;br /&gt;
&lt;br /&gt;
== Installing Linux - Slackware 14.1 - sort of. ==&lt;br /&gt;
&lt;br /&gt;
With the problem of not having kernel source for the SOC, and no no bootloader unlock possible yet, next best option was to use a chroot environment.&lt;br /&gt;
&lt;br /&gt;
So far, command line mode works fine. Here is the description of how Slackware was installed on to external micro SD Card. Was able to do some basic tests on the frame buffer display. Since there is no VTs available was not able to test Xorg, though could get Mali module compiled and loaded. More details below.&lt;br /&gt;
&lt;br /&gt;
=== Preparing SD Card on host computer ===&lt;br /&gt;
&lt;br /&gt;
Use fdisk to create one or two partitions, one for ext4 and other ( optional ) swap partition. Once these are created, assuming the device on host is /dev/sdc,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	mkfs.ext4 /dev/sdc1&lt;br /&gt;
	sync&lt;br /&gt;
	eject sdc&lt;br /&gt;
	eject -t sdc&lt;br /&gt;
	mkdir slack&lt;br /&gt;
	mount /dev/sdc1 slack&lt;br /&gt;
	cd slack&lt;br /&gt;
	mkdir sl&lt;br /&gt;
	cd sl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you don't have Slackware installation files, [http://arm.slackware.com/getslack/ Get Slackware Arm] first. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        mkdir slackware14.1&lt;br /&gt;
        cd slackware14.1&lt;br /&gt;
	(cd /path..to../slackware14.1 ; tar cfz - *) | (tar xfz - )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://sourceforge.net/projects/slackwareonapc8750/files/initrd-kirkwood.cpio.gz/download initrd-kirkwood.cpio] contains the setup program, but since I couldn't boot with custom initrd, sdc1 /sl area is prepared to have the installation files.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	cpio -id &amp;lt; initrd-kirkwood.cpio&lt;br /&gt;
	sync&lt;br /&gt;
	umount slack&lt;br /&gt;
&lt;br /&gt;
Now that the sd card is ready for installation:&lt;br /&gt;
&lt;br /&gt;
	eject sdc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
and plug it into the device. Once that is done,&lt;br /&gt;
&lt;br /&gt;
=== chroot to installer: ===&lt;br /&gt;
&lt;br /&gt;
Now plug the card in tablet pc, boot, from host computer, &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	adb shell&lt;br /&gt;
	su&lt;br /&gt;
	cd /data/local/tmp&lt;br /&gt;
	mkdir slackware&lt;br /&gt;
	mount /dev/block/mmcblk1p1 slackware&lt;br /&gt;
	cd slackware/sl&lt;br /&gt;
	export PATH=/data/local/tmp/bin:$PATH&lt;br /&gt;
	mountpoint proc || mount -t proc none proc/&lt;br /&gt;
	mountpoint sys || mount -t sysfs sys sys/&lt;br /&gt;
	mountpoint dev || mount -o bind  /dev dev/&lt;br /&gt;
	export PATH=/usr/bin:/bin:/usr/lib/setup:$PATH&lt;br /&gt;
	pushd /dev&lt;br /&gt;
	ln -s /dev/block/mmc1blk* .&lt;br /&gt;
	popd&lt;br /&gt;
	chroot . /bin/bash&lt;br /&gt;
	mount -t ext4 /dev/mmcblk1p1 mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Running setup ===&lt;br /&gt;
&lt;br /&gt;
Install Slackware onto mmcblk1p1, from pre mounted directory, sdc1 : /slackware14.1/slackware&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
	setup&lt;br /&gt;
	&lt;br /&gt;
		Proceed and select /dev/mmcblk1p1 as target, no format&lt;br /&gt;
		For source, select pre mounted directory option, /slackware14.1/slackware&lt;br /&gt;
&amp;lt;/pre&amp;gt;	&lt;br /&gt;
&lt;br /&gt;
=== Complete installation, and configuration ===&lt;br /&gt;
&lt;br /&gt;
Once the complete installation is done,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	umount proc&lt;br /&gt;
	umount sys&lt;br /&gt;
	umount dev&lt;br /&gt;
	sync&lt;br /&gt;
	cd ../..&lt;br /&gt;
	umount slackware&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Getting into installed Slackware: ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	mount /dev/block/mmcblk1p1 slackware&lt;br /&gt;
	cd slackware&lt;br /&gt;
	mountpoint proc || mount -t proc none proc/&lt;br /&gt;
        mountpoint sys || mount -t sysfs sys sys/&lt;br /&gt;
        mountpoint dev || mount -o bind  /dev dev/&lt;br /&gt;
        export PATH=/usr/bin:/bin:/usr/lib/setup:$PATH&lt;br /&gt;
	chroot . /bin/bash&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From here you can do &amp;quot;normal&amp;quot; Slackware activities, sort of. Main things that were lacking in my case&lt;br /&gt;
were VTs (ttys). Compiling programs and running programs that require no X windows worked fine. I ran&lt;br /&gt;
couple of frame buffer tests too. &lt;br /&gt;
		&lt;br /&gt;
== Testing the framebuffer ==		&lt;br /&gt;
&lt;br /&gt;
For these tests, I stopped android &amp;quot;SurfaceFlinger&amp;quot; and freed up /dev/graphics/fb0. by running &amp;quot;stop&amp;quot;&lt;br /&gt;
command. Before running stop, make sure that the display is on ( not blank ). For these tests, I had&lt;br /&gt;
two terminals up on the host PC with one of them running just adb shell with su, and other running&lt;br /&gt;
chrooted slackware shell. SurfaceFlinger was stopped from su shell, and tests from Slackware shell.&lt;br /&gt;
Please not Slackware shell is also running as user root.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	adb shell&lt;br /&gt;
	su&lt;br /&gt;
	stop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the display goes blank, with backlight on.&lt;br /&gt;
&lt;br /&gt;
Get one of these tests.&lt;br /&gt;
[https://gist.githubusercontent.com/rafalrusin/1482697/raw/32c6c0d79b870ffb618aa7b7c664736ca5e150fe/fbtest.c  fbtest] or &lt;br /&gt;
[http://stackoverflow.com/questions/4996777/paint-pixels-to-screen-via-linux-framebuffer Paint-pixels-to-screen-  via-linux-framebuffer] or &lt;br /&gt;
[http://cep.xray.aps.anl.gov/software/qt4-x11-4.2.2/qtopiacore-testingframebuffer.html qtopiacore-testingframebuffer] All these tests worked on the Tablet. Transfer the tests to tablet using adb push&lt;br /&gt;
command.&lt;br /&gt;
&lt;br /&gt;
from Slackware shell, running under adb shell:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   gcc fbtest.c&lt;br /&gt;
   ./a.out&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
once done, go back to android su shell from adb, and:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	start&lt;br /&gt;
&amp;lt;/pre&amp;gt;	&lt;br /&gt;
&lt;br /&gt;
After few seconds android display will be back on. &lt;br /&gt;
&lt;br /&gt;
== Failed test of running an Xorg session ==&lt;br /&gt;
&lt;br /&gt;
=== Getting Mali driver for Xorg ===&lt;br /&gt;
&lt;br /&gt;
All these compilations are done under the chrooted Slackware environment on the Tablet PC, using gcc&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	gcc version 4.8.2 (GCC) ( arm-slackware-linux-gnueabi-gcc )&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://malideveloper.arm.com/downloads/drivers/DX910 Open Source Mali-200/300/400/450 GPU Kernel Dev]&lt;br /&gt;
[http://malideveloper.arm.com/develop-for-mali/drivers/open-source-mali-gpus-linux-exadri2-and-x11-display-drivers/ Open Source Mali GPUs Linux EXA/DRI2 and X11 Display Drivers]&lt;br /&gt;
&lt;br /&gt;
Get [http://malideveloper.arm.com/downloads/drivers/DX910/r4p1-01rel0/DX910-SW-99003-r4p1-01rel0.tgz DX910-SW-99003-r4p1-01rel0] or choose another version&lt;br /&gt;
&lt;br /&gt;
Once downloaded, and adb pushed to tablet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	tar xf DX910-SW-99003-r4p1-01rel0.tgz&lt;br /&gt;
	cd DX910-SW-99003-r4p1-01rel0/x11/xf86-video-mali-0.0.1&lt;br /&gt;
	./autogen.sh&lt;br /&gt;
	in src/Makefile:&lt;br /&gt;
	# mali_drv_la_LDFLAGS = -module -avoid-version -L$(MALI_DDK)/lib -lMali -lUMP -lpthread&lt;br /&gt;
	for now.&lt;br /&gt;
	mali_drv_la_LDFLAGS = -module -avoid-version -L$(MALI_DDK)/lib -lUMP -lpthread&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	also get [http://malideveloper.arm.com/develop-for-mali/drivers/open-source-mali-gpus-ump-user-space-drivers-source-code-2 ump]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	make and install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once make/install is done for both,&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	cp src/.libs/mali_drv.* /usr/lib/xorg/modules/drivers/&lt;br /&gt;
	ldconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Run Xorg ===&lt;br /&gt;
&lt;br /&gt;
And run startx, which fails with the following error.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[  9131.458] (II) LoadModule: &amp;quot;mali&amp;quot;&lt;br /&gt;
[  9131.461] (II) Loading /usr/lib/xorg/modules/drivers/mali_drv.so&lt;br /&gt;
[  9131.461] (II) Module mali: vendor=&amp;quot;X.Org Foundation&amp;quot;&lt;br /&gt;
[  9131.462]    compiled for 1.14.3, module version = 0.4.2&lt;br /&gt;
[  9131.462]    ABI class: X.Org Video Driver, version 14.1&lt;br /&gt;
[  9131.462] (II) MALI: driver for Mali Framebuffer: mali&lt;br /&gt;
[  9131.462] (EE)&lt;br /&gt;
Fatal server error:&lt;br /&gt;
[  9131.462] (EE) xf86OpenConsole: Cannot open /dev/tty0 (No such file or direct&lt;br /&gt;
ory)&lt;br /&gt;
[  9131.463] (EE)&lt;br /&gt;
[  9131.463] (EE)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Compiling and getting Xfbdev running! - Partially ==&lt;br /&gt;
&lt;br /&gt;
Finally I found that the X VT requirement can be removed. &lt;br /&gt;
In the first test, No keyboard and mouse, but startx opens a nice fluxbox window.&lt;br /&gt;
I can set DISPLAY=:0, and run xterm and other applications from adb shell onto the&lt;br /&gt;
X windows running on LCD. Here is what I did:&lt;br /&gt;
&lt;br /&gt;
Procedure:&lt;br /&gt;
&lt;br /&gt;
Get xorg-server-1.12.2 and required files from : &lt;br /&gt;
http://xorg.freedesktop.org/archive/X11R7.7/&lt;br /&gt;
&lt;br /&gt;
Apply patch to hw/kdrive/linux/linux.c ( As first step, basically make most of the functions &lt;br /&gt;
just empty, so that no tty open etc are done.) Refer to the patch at the end.&lt;br /&gt;
&lt;br /&gt;
configure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export PKG_CONFIG_PATH=/opt/local/sw/share/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
export PKG_CONFIG_PATH=/opt/local/sw/lib/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
export PKG_CONFIG_PATH=/usr/lib/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
export LD_LIBRARY_PATH=/opt/local/sw/lib:$LD_LIBRARY_PATH&lt;br /&gt;
export PATH=/opt/local/sw/bin:$PATH&lt;br /&gt;
&lt;br /&gt;
# autoreconf --force -v --install || exit 1&lt;br /&gt;
&lt;br /&gt;
./configure --prefix=/opt/local/sw --enable-kdrive --enable-kdrive-evdev --disab&lt;br /&gt;
le-aiglx --disable-glx --disable-dri --disable-dri2 --disable-libdrm --disable-r&lt;br /&gt;
ecord --with-xkb-path=/opt/local/sw/share/X11/xkb --with-xkb-output=/var/lib/xkb&lt;br /&gt;
 --with-xkb-bin-directory=/opt/local/sw/bin --with-default-xkb-rules=xorg --with&lt;br /&gt;
-default-xkb-model=pc104 --with-default-xkb-layout=us  --disable-xorg --enable-x&lt;br /&gt;
nest --disable-dmx --disable-xquartz --disable-xwin --disable-xephyr --enable-co&lt;br /&gt;
nfig-udev --enable-tslib LDFLAGS=-L/opt/local/sw/lib CFLAGS=-I/opt/local/sw/incl&lt;br /&gt;
ude&lt;br /&gt;
&lt;br /&gt;
make -j 3&lt;br /&gt;
make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also install xkeyboard-config-2.11.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once it is installed:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd  /opt/local/sw/share/X11/xkb/rules/&lt;br /&gt;
ln -s base /opt/local/sw/share/X11/xkb/rules/base xorg&lt;br /&gt;
If this is not done, you will get error:&lt;br /&gt;
        XKB: Failed to compile keymap&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once installed, run X:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Makesure the display is on.&lt;br /&gt;
Stop Surfaceflinger from adb shell ( as root ):&lt;br /&gt;
        stop&lt;br /&gt;
&lt;br /&gt;
If &amp;quot;stop&amp;quot; step is not done, X will show up, but as soon as the screen is touched,&lt;br /&gt;
it will disappear.&lt;br /&gt;
&lt;br /&gt;
From Slackware shell ( as root ), run:&lt;br /&gt;
        startx -- /opt/local/sw/bin/Xfbdev -fb /dev/graphics/fb0&lt;br /&gt;
 &lt;br /&gt;
Once done, restart Surfaceflinger from adb shell ( as root ):&lt;br /&gt;
        start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See the frame grab with scrot&lt;br /&gt;
&lt;br /&gt;
x.png&lt;br /&gt;
x2.png&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== /hw/kdrive/linux/linux.c patch: ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--- linux.c.org	2012-05-17 22:39:03.000000000 +0530&lt;br /&gt;
+++ linux.c	2014-09-03 08:29:11.000000000 +0530&lt;br /&gt;
@@ -65,6 +65,7 @@&lt;br /&gt;
 static void&lt;br /&gt;
 LinuxCheckChown(char *file)&lt;br /&gt;
 {&lt;br /&gt;
+#ifdef GV&lt;br /&gt;
     struct stat st;&lt;br /&gt;
     __uid_t u;&lt;br /&gt;
     __gid_t g;&lt;br /&gt;
@@ -75,11 +76,13 @@&lt;br /&gt;
     g = getgid();&lt;br /&gt;
     if (st.st_uid != u || st.st_gid != g)&lt;br /&gt;
         chown(file, u, g);&lt;br /&gt;
+#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 static int&lt;br /&gt;
 LinuxInit(void)&lt;br /&gt;
 {&lt;br /&gt;
+#ifdef GV&lt;br /&gt;
     int fd = -1;&lt;br /&gt;
     char vtname[11];&lt;br /&gt;
     struct vt_stat vts;&lt;br /&gt;
@@ -127,13 +130,14 @@&lt;br /&gt;
     if (ioctl(LinuxConsoleFd, VT_GETSTATE, &amp;amp;vts) == 0) {&lt;br /&gt;
         activeVT = vts.v_active;&lt;br /&gt;
     }&lt;br /&gt;
-&lt;br /&gt;
+#endif&lt;br /&gt;
     return 1;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 static void&lt;br /&gt;
 LinuxSetSwitchMode(int mode)&lt;br /&gt;
 {&lt;br /&gt;
+#ifdef GV&lt;br /&gt;
     struct sigaction act;&lt;br /&gt;
     struct vt_mode VT;&lt;br /&gt;
 &lt;br /&gt;
@@ -164,6 +168,7 @@&lt;br /&gt;
     if (ioctl(LinuxConsoleFd, VT_SETMODE, &amp;amp;VT) &amp;lt; 0) {&lt;br /&gt;
         FatalError(&amp;quot;LinuxInit: VT_SETMODE failed\n&amp;quot;);&lt;br /&gt;
     }&lt;br /&gt;
+#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 static void&lt;br /&gt;
@@ -176,6 +181,7 @@&lt;br /&gt;
 static void&lt;br /&gt;
 LinuxApmWakeup(pointer blockData, int result, pointer pReadmask)&lt;br /&gt;
 {&lt;br /&gt;
+#ifdef GV&lt;br /&gt;
     fd_set *readmask = (fd_set *) pReadmask;&lt;br /&gt;
 &lt;br /&gt;
     if (result &amp;gt; 0 &amp;amp;&amp;amp; LinuxApmFd &amp;gt;= 0 &amp;amp;&amp;amp; FD_ISSET(LinuxApmFd, readmask)) {&lt;br /&gt;
@@ -213,6 +219,7 @@&lt;br /&gt;
             ioctl(LinuxApmFd, cmd, 0);&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
+#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 #ifdef FNONBLOCK&lt;br /&gt;
@@ -224,6 +231,7 @@&lt;br /&gt;
 static void&lt;br /&gt;
 LinuxEnable(void)&lt;br /&gt;
 {&lt;br /&gt;
+#ifdef GV&lt;br /&gt;
     if (enabled)&lt;br /&gt;
         return;&lt;br /&gt;
     if (kdSwitchPending) {&lt;br /&gt;
@@ -257,12 +265,14 @@&lt;br /&gt;
     if (ioctl(LinuxConsoleFd, KDSETMODE, KD_GRAPHICS) &amp;lt; 0) {&lt;br /&gt;
         FatalError(&amp;quot;LinuxInit: KDSETMODE KD_GRAPHICS failed\n&amp;quot;);&lt;br /&gt;
     }&lt;br /&gt;
+#endif&lt;br /&gt;
     enabled = TRUE;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 static void&lt;br /&gt;
 LinuxDisable(void)&lt;br /&gt;
 {&lt;br /&gt;
+#ifdef GV&lt;br /&gt;
     ioctl(LinuxConsoleFd, KDSETMODE, KD_TEXT);  /* Back to text mode ... */&lt;br /&gt;
     if (kdSwitchPending) {&lt;br /&gt;
         kdSwitchPending = FALSE;&lt;br /&gt;
@@ -275,11 +285,13 @@&lt;br /&gt;
         close(LinuxApmFd);&lt;br /&gt;
         LinuxApmFd = -1;&lt;br /&gt;
     }&lt;br /&gt;
+#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 static void&lt;br /&gt;
 LinuxFini(void)&lt;br /&gt;
 {&lt;br /&gt;
+#ifdef GV&lt;br /&gt;
     struct vt_mode VT;&lt;br /&gt;
     struct vt_stat vts;&lt;br /&gt;
     int fd;&lt;br /&gt;
@@ -327,6 +339,7 @@&lt;br /&gt;
         close(fd);&lt;br /&gt;
     }&lt;br /&gt;
     return;&lt;br /&gt;
+#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void&lt;br /&gt;
@@ -352,9 +365,11 @@&lt;br /&gt;
 static void&lt;br /&gt;
 LinuxBell(int volume, int pitch, int duration)&lt;br /&gt;
 {&lt;br /&gt;
+#ifdef GV&lt;br /&gt;
     if (volume &amp;amp;&amp;amp; pitch)&lt;br /&gt;
         ioctl(LinuxConsoleFd, KDMKTONE, ((1193190 / pitch) &amp;amp; 0xffff) |&lt;br /&gt;
               (((unsigned long) duration * volume / 50) &amp;lt;&amp;lt; 16));&lt;br /&gt;
+#endif&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 KdOsFuncs LinuxFuncs = {&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</description>
			<pubDate>Wed, 03 Sep 2014 12:36:44 GMT</pubDate>
			<dc:creator>Gv</dc:creator>
			<comments>https://www.slackwiki.com/Talk:SlackwareOnMt6582Tablet</comments>
		</item>
		<item>
			<title>SlackwareOnMt6582Tablet</title>
			<link>https://www.slackwiki.com/index.php?title=SlackwareOnMt6582Tablet&amp;diff=922</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=SlackwareOnMt6582Tablet&amp;diff=922</guid>
			<description>&lt;p&gt;Gv: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Specifications of the Tablet PC which was used here ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	Processor : Arm Cortex A7, 1.3 GHz dual core.&lt;br /&gt;
		  : ARMv7 Processor rev 3 (v7l),&lt;br /&gt;
	Hardware  : MT8312&lt;br /&gt;
	SOC       : mt6582.&lt;br /&gt;
	Memory    : 512MB RAM&lt;br /&gt;
	Storage   : 4GB Built in storage.&lt;br /&gt;
	Micro SD  : Slot for upto 32GB&lt;br /&gt;
	Display   : 7&amp;quot; WVGA 800x480&lt;br /&gt;
	OS        : Android 4.2 Jelly Bean&lt;br /&gt;
        GPU       : Mali?&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rooting the Tablet PC ==&lt;br /&gt;
&lt;br /&gt;
I used [http://www.techverse.net/fastest-root-android-phone-computer/ Framaroot-1.9.3.apk] to root the device. &lt;br /&gt;
&lt;br /&gt;
== Installing Linux - Slackware 14.1 - sort of. ==&lt;br /&gt;
&lt;br /&gt;
With the problem of not having kernel source for the SOC, and no no bootloader unlock possible yet, next best option was to use a chroot environment.&lt;br /&gt;
&lt;br /&gt;
So far, command line mode works fine. Here is the description of how Slackware was installed on to external micro SD Card. Was able to do some basic tests on the frame buffer display. Since there is no VTs available was not able to test Xorg, though could get Mali module compiled and loaded. More details below.&lt;br /&gt;
&lt;br /&gt;
=== Preparing SD Card on host computer ===&lt;br /&gt;
&lt;br /&gt;
Use fdisk to create one or two partitions, one for ext4 and other ( optional ) swap partition. Once these are created, assuming the device on host is /dev/sdc,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	mkfs.ext4 /dev/sdc1&lt;br /&gt;
	sync&lt;br /&gt;
	eject sdc&lt;br /&gt;
	eject -t sdc&lt;br /&gt;
	mkdir slack&lt;br /&gt;
	mount /dev/sdc1 slack&lt;br /&gt;
	cd slack&lt;br /&gt;
	mkdir sl&lt;br /&gt;
	cd sl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you don't have Slackware installation files, [http://arm.slackware.com/getslack/ Get Slackware Arm] first. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        mkdir slackware14.1&lt;br /&gt;
        cd slackware14.1&lt;br /&gt;
	(cd /path..to../slackware14.1 ; tar cfz - *) | (tar xfz - )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://sourceforge.net/projects/slackwareonapc8750/files/initrd-kirkwood.cpio.gz/download initrd-kirkwood.cpio] contains the setup program, but since I couldn't boot with custom initrd, sdc1 /sl area is prepared to have the installation files.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	cpio -id &amp;lt; initrd-kirkwood.cpio&lt;br /&gt;
	sync&lt;br /&gt;
	umount slack&lt;br /&gt;
&lt;br /&gt;
Now that the sd card is ready for installation:&lt;br /&gt;
&lt;br /&gt;
	eject sdc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
and plug it into the device. Once that is done,&lt;br /&gt;
&lt;br /&gt;
=== chroot to installer: ===&lt;br /&gt;
&lt;br /&gt;
Now plug the card in tablet pc, boot, from host computer, &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	adb shell&lt;br /&gt;
	su&lt;br /&gt;
	cd /data/local/tmp&lt;br /&gt;
	mkdir slackware&lt;br /&gt;
	mount /dev/block/mmcblk1p1 slackware&lt;br /&gt;
	cd slackware/sl&lt;br /&gt;
	export PATH=/data/local/tmp/bin:$PATH&lt;br /&gt;
	mountpoint proc || mount -t proc none proc/&lt;br /&gt;
	mountpoint sys || mount -t sysfs sys sys/&lt;br /&gt;
	mountpoint dev || mount -o bind  /dev dev/&lt;br /&gt;
	export PATH=/usr/bin:/bin:/usr/lib/setup:$PATH&lt;br /&gt;
	pushd /dev&lt;br /&gt;
	ln -s /dev/block/mmc1blk* .&lt;br /&gt;
	popd&lt;br /&gt;
	chroot . /bin/bash&lt;br /&gt;
	mount -t ext4 /dev/mmcblk1p1 mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Running setup ===&lt;br /&gt;
&lt;br /&gt;
Install Slackware onto mmcblk1p1, from pre mounted directory, sdc1 : /slackware14.1/slackware&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
	setup&lt;br /&gt;
	&lt;br /&gt;
		Proceed and select /dev/mmcblk1p1 as target, no format&lt;br /&gt;
		For source, select pre mounted directory option, /slackware14.1/slackware&lt;br /&gt;
&amp;lt;/pre&amp;gt;	&lt;br /&gt;
&lt;br /&gt;
=== Complete installation, and configuration ===&lt;br /&gt;
&lt;br /&gt;
Once the complete installation is done,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	umount proc&lt;br /&gt;
	umount sys&lt;br /&gt;
	umount dev&lt;br /&gt;
	sync&lt;br /&gt;
	cd ../..&lt;br /&gt;
	umount slackware&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Getting into installed Slackware: ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	mount /dev/block/mmcblk1p1 slackware&lt;br /&gt;
	cd slackware&lt;br /&gt;
	mountpoint proc || mount -t proc none proc/&lt;br /&gt;
        mountpoint sys || mount -t sysfs sys sys/&lt;br /&gt;
        mountpoint dev || mount -o bind  /dev dev/&lt;br /&gt;
        export PATH=/usr/bin:/bin:/usr/lib/setup:$PATH&lt;br /&gt;
	chroot . /bin/bash&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From here you can do &amp;quot;normal&amp;quot; Slackware activities, sort of. Main things that were lacking in my case&lt;br /&gt;
were VTs (ttys). Compiling programs and running programs that require no X windows worked fine. I ran&lt;br /&gt;
couple of frame buffer tests too. &lt;br /&gt;
		&lt;br /&gt;
== Testing the framebuffer ==		&lt;br /&gt;
&lt;br /&gt;
For these tests, I stopped android &amp;quot;SurfaceFlinger&amp;quot; and freed up /dev/graphics/fb0. by running &amp;quot;stop&amp;quot;&lt;br /&gt;
command. Before running stop, make sure that the display is on ( not blank ). For these tests, I had&lt;br /&gt;
two terminals up on the host PC with one of them running just adb shell with su, and other running&lt;br /&gt;
chrooted slackware shell. SurfaceFlinger was stopped from su shell, and tests from Slackware shell.&lt;br /&gt;
Please not Slackware shell is also running as user root.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	adb shell&lt;br /&gt;
	su&lt;br /&gt;
	stop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the display goes blank, with backlight on.&lt;br /&gt;
&lt;br /&gt;
Get one of these tests.&lt;br /&gt;
[https://gist.githubusercontent.com/rafalrusin/1482697/raw/32c6c0d79b870ffb618aa7b7c664736ca5e150fe/fbtest.c  fbtest] or &lt;br /&gt;
[http://stackoverflow.com/questions/4996777/paint-pixels-to-screen-via-linux-framebuffer Paint-pixels-to-screen-  via-linux-framebuffer] or &lt;br /&gt;
[http://cep.xray.aps.anl.gov/software/qt4-x11-4.2.2/qtopiacore-testingframebuffer.html qtopiacore-testingframebuffer] All these tests worked on the Tablet. Transfer the tests to tablet using adb push&lt;br /&gt;
command.&lt;br /&gt;
&lt;br /&gt;
from Slackware shell, running under adb shell:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   gcc fbtest.c&lt;br /&gt;
   ./a.out&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
once done, go back to android su shell from adb, and:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	start&lt;br /&gt;
&amp;lt;/pre&amp;gt;	&lt;br /&gt;
&lt;br /&gt;
After few seconds android display will be back on. &lt;br /&gt;
&lt;br /&gt;
== Failed test of running an Xorg session ==&lt;br /&gt;
&lt;br /&gt;
=== Getting Mali driver for Xorg ===&lt;br /&gt;
&lt;br /&gt;
All these compilations are done under the chrooted Slackware environment on the Tablet PC, using gcc&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	gcc version 4.8.2 (GCC) ( arm-slackware-linux-gnueabi-gcc )&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://malideveloper.arm.com/downloads/drivers/DX910 Open Source Mali-200/300/400/450 GPU Kernel Dev]&lt;br /&gt;
[http://malideveloper.arm.com/develop-for-mali/drivers/open-source-mali-gpus-linux-exadri2-and-x11-display-drivers/ Open Source Mali GPUs Linux EXA/DRI2 and X11 Display Drivers]&lt;br /&gt;
&lt;br /&gt;
Get [http://malideveloper.arm.com/downloads/drivers/DX910/r4p1-01rel0/DX910-SW-99003-r4p1-01rel0.tgz DX910-SW-99003-r4p1-01rel0] or choose another version&lt;br /&gt;
&lt;br /&gt;
Once downloaded, and adb pushed to tablet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	tar xf DX910-SW-99003-r4p1-01rel0.tgz&lt;br /&gt;
	cd DX910-SW-99003-r4p1-01rel0/x11/xf86-video-mali-0.0.1&lt;br /&gt;
	./autogen.sh&lt;br /&gt;
	in src/Makefile:&lt;br /&gt;
	# mali_drv_la_LDFLAGS = -module -avoid-version -L$(MALI_DDK)/lib -lMali -lUMP -lpthread&lt;br /&gt;
	for now.&lt;br /&gt;
	mali_drv_la_LDFLAGS = -module -avoid-version -L$(MALI_DDK)/lib -lUMP -lpthread&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	also get [http://malideveloper.arm.com/develop-for-mali/drivers/open-source-mali-gpus-ump-user-space-drivers-source-code-2 ump]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	make and install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once make/install is done for both,&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	cp src/.libs/mali_drv.* /usr/lib/xorg/modules/drivers/&lt;br /&gt;
	ldconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Run Xorg ===&lt;br /&gt;
&lt;br /&gt;
And run startx, which fails with the following error.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[  9131.458] (II) LoadModule: &amp;quot;mali&amp;quot;&lt;br /&gt;
[  9131.461] (II) Loading /usr/lib/xorg/modules/drivers/mali_drv.so&lt;br /&gt;
[  9131.461] (II) Module mali: vendor=&amp;quot;X.Org Foundation&amp;quot;&lt;br /&gt;
[  9131.462]    compiled for 1.14.3, module version = 0.4.2&lt;br /&gt;
[  9131.462]    ABI class: X.Org Video Driver, version 14.1&lt;br /&gt;
[  9131.462] (II) MALI: driver for Mali Framebuffer: mali&lt;br /&gt;
[  9131.462] (EE)&lt;br /&gt;
Fatal server error:&lt;br /&gt;
[  9131.462] (EE) xf86OpenConsole: Cannot open /dev/tty0 (No such file or direct&lt;br /&gt;
ory)&lt;br /&gt;
[  9131.463] (EE)&lt;br /&gt;
[  9131.463] (EE)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Compiling and getting Xfbdev running! - Partially ==&lt;br /&gt;
&lt;br /&gt;
Finally I found that the X VT requirement can be removed. &lt;br /&gt;
In the first test, No keyboard and mouse, but startx opens a nice fluxbox window.&lt;br /&gt;
I can set DISPLAY=:0, and run xterm and other applications from adb shell onto the&lt;br /&gt;
X windows running on LCD. Here is what I did:&lt;br /&gt;
&lt;br /&gt;
Procedure:&lt;br /&gt;
&lt;br /&gt;
Get xorg-server-1.12.2 and required files from : http://xorg.freedesktop.org/archive&lt;br /&gt;
/X11R7.7/&lt;br /&gt;
&lt;br /&gt;
Apply patch to hw/kdrive/linux/linux.c ( basically make most of the functions just e&lt;br /&gt;
mpty, so that no tty open etc are done - first step to test :-) ) refer to the patch &lt;br /&gt;
at the end.&lt;br /&gt;
&lt;br /&gt;
configure:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export PKG_CONFIG_PATH=/opt/local/sw/share/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
export PKG_CONFIG_PATH=/opt/local/sw/lib/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
export PKG_CONFIG_PATH=/usr/lib/pkgconfig:$PKG_CONFIG_PATH&lt;br /&gt;
export LD_LIBRARY_PATH=/opt/local/sw/lib:$LD_LIBRARY_PATH&lt;br /&gt;
export PATH=/opt/local/sw/bin:$PATH&lt;br /&gt;
# autoreconf --force -v --install || exit 1&lt;br /&gt;
./configure --prefix=/opt/local/sw --enable-kdrive --enable-kdrive-evdev --enabl&lt;br /&gt;
e-config-udev --disable-aiglx --disable-glx --disable-dri --disable-dri2 --disab&lt;br /&gt;
le-libdrm --disable-record --with-xkb-path=/opt/local/sw/share/X11/xkb --with-xk&lt;br /&gt;
b-output=/var/lib/xkb --with-xkb-bin-directory=/opt/local/sw/bin --with-default-&lt;br /&gt;
xkb-rules=xorg --with-default-xkb-model=pc104 --with-default-xkb-layout=us  --di&lt;br /&gt;
sable-xorg --enable-xnest --disable-dmx --disable-xquartz --disable-xwin --disab&lt;br /&gt;
le-xephyr --disable-config-udev&lt;br /&gt;
&lt;br /&gt;
make -j 3&lt;br /&gt;
make install&lt;br /&gt;
&lt;br /&gt;
Also install&lt;br /&gt;
&lt;br /&gt;
xkeyboard-config-2.11&lt;br /&gt;
cd  /opt/local/sw/share/X11/xkb/rules/&lt;br /&gt;
ln -s base /opt/local/sw/share/X11/xkb/rules/base xorg&lt;br /&gt;
If this is not done, you will get:&lt;br /&gt;
        XKB: Failed to compile keymap&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once installed, run:&lt;br /&gt;
        startx -- ./Xfbdev -fb /dev/graphics/fb0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See the frame grab with scrot&lt;br /&gt;
&lt;br /&gt;
x.png&lt;br /&gt;
x2.png&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== /hw/kdrive/linux/linux.c patch: ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--- linux.c     2014-09-03 08:29:11.000000000 +0530&lt;br /&gt;
+++ linux.c.org 2012-05-17 22:39:03.000000000 +0530&lt;br /&gt;
@@ -65,7 +65,6 @@&lt;br /&gt;
 static void&lt;br /&gt;
 LinuxCheckChown(char *file)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     struct stat st;&lt;br /&gt;
     __uid_t u;&lt;br /&gt;
     __gid_t g;&lt;br /&gt;
@@ -76,13 +75,11 @@&lt;br /&gt;
     g = getgid();&lt;br /&gt;
     if (st.st_uid != u || st.st_gid != g)&lt;br /&gt;
         chown(file, u, g);&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 static int&lt;br /&gt;
 LinuxInit(void)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     int fd = -1;&lt;br /&gt;
     char vtname[11];&lt;br /&gt;
     struct vt_stat vts;&lt;br /&gt;
@@ -130,14 +127,13 @@&lt;br /&gt;
     if (ioctl(LinuxConsoleFd, VT_GETSTATE, &amp;amp;vts) == 0) {&lt;br /&gt;
         activeVT = vts.v_active;&lt;br /&gt;
     }&lt;br /&gt;
-#endif&lt;br /&gt;
+&lt;br /&gt;
     return 1;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 static void&lt;br /&gt;
 LinuxSetSwitchMode(int mode)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     struct sigaction act;&lt;br /&gt;
     struct vt_mode VT;&lt;br /&gt;
&lt;br /&gt;
@@ -168,7 +164,6 @@&lt;br /&gt;
     if (ioctl(LinuxConsoleFd, VT_SETMODE, &amp;amp;VT) &amp;lt; 0) {&lt;br /&gt;
         FatalError(&amp;quot;LinuxInit: VT_SETMODE failed\n&amp;quot;);&lt;br /&gt;
     }&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 static void&lt;br /&gt;
@@ -181,7 +176,6 @@&lt;br /&gt;
 static void&lt;br /&gt;
 LinuxApmWakeup(pointer blockData, int result, pointer pReadmask)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     fd_set *readmask = (fd_set *) pReadmask;&lt;br /&gt;
&lt;br /&gt;
     if (result &amp;gt; 0 &amp;amp;&amp;amp; LinuxApmFd &amp;gt;= 0 &amp;amp;&amp;amp; FD_ISSET(LinuxApmFd, readmask)) {&lt;br /&gt;
@@ -219,7 +213,6 @@&lt;br /&gt;
             ioctl(LinuxApmFd, cmd, 0);&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 #ifdef FNONBLOCK&lt;br /&gt;
@@ -231,7 +224,6 @@&lt;br /&gt;
 static void&lt;br /&gt;
 LinuxEnable(void)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     if (enabled)&lt;br /&gt;
         return;&lt;br /&gt;
     if (kdSwitchPending) {&lt;br /&gt;
@@ -265,14 +257,12 @@&lt;br /&gt;
     if (ioctl(LinuxConsoleFd, KDSETMODE, KD_GRAPHICS) &amp;lt; 0) {&lt;br /&gt;
         FatalError(&amp;quot;LinuxInit: KDSETMODE KD_GRAPHICS failed\n&amp;quot;);&lt;br /&gt;
     }&lt;br /&gt;
-#endif&lt;br /&gt;
     enabled = TRUE;&lt;br /&gt;
 }&lt;br /&gt;
 static void&lt;br /&gt;
 LinuxDisable(void)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     ioctl(LinuxConsoleFd, KDSETMODE, KD_TEXT);  /* Back to text mode ... */&lt;br /&gt;
     if (kdSwitchPending) {&lt;br /&gt;
         kdSwitchPending = FALSE;&lt;br /&gt;
@@ -285,13 +275,11 @@&lt;br /&gt;
         close(LinuxApmFd);&lt;br /&gt;
         LinuxApmFd = -1;&lt;br /&gt;
     }&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 static void&lt;br /&gt;
 LinuxFini(void)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     struct vt_mode VT;&lt;br /&gt;
     struct vt_stat vts;&lt;br /&gt;
     int fd;&lt;br /&gt;
@@ -339,7 +327,6 @@&lt;br /&gt;
         close(fd);&lt;br /&gt;
     }&lt;br /&gt;
     return;&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 void&lt;br /&gt;
@@ -365,11 +352,9 @@&lt;br /&gt;
 static void&lt;br /&gt;
 LinuxBell(int volume, int pitch, int duration)&lt;br /&gt;
 {&lt;br /&gt;
-#ifdef GV&lt;br /&gt;
     if (volume &amp;amp;&amp;amp; pitch)&lt;br /&gt;
         ioctl(LinuxConsoleFd, KDMKTONE, ((1193190 / pitch) &amp;amp; 0xffff) |&lt;br /&gt;
               (((unsigned long) duration * volume / 50) &amp;lt;&amp;lt; 16));&lt;br /&gt;
-#endif&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 KdOsFuncs LinuxFuncs = {&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</description>
			<pubDate>Wed, 03 Sep 2014 07:36:56 GMT</pubDate>
			<dc:creator>Gv</dc:creator>
			<comments>https://www.slackwiki.com/Talk:SlackwareOnMt6582Tablet</comments>
		</item>
		<item>
			<title>SlackwareOnMt6582Tablet</title>
			<link>https://www.slackwiki.com/index.php?title=SlackwareOnMt6582Tablet&amp;diff=921</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=SlackwareOnMt6582Tablet&amp;diff=921</guid>
			<description>&lt;p&gt;Gv: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Specifications of the Tablet PC which was used here ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	Processor : Arm Cortex A7, 1.3 GHz dual core.&lt;br /&gt;
		  : ARMv7 Processor rev 3 (v7l),&lt;br /&gt;
	Hardware  : MT8312&lt;br /&gt;
	SOC       : mt6582.&lt;br /&gt;
	Memory    : 512MB RAM&lt;br /&gt;
	Storage   : 4GB Built in storage.&lt;br /&gt;
	Micro SD  : Slot for upto 32GB&lt;br /&gt;
	Display   : 7&amp;quot; WVGA 800x480&lt;br /&gt;
	OS        : Android 4.2 Jelly Bean&lt;br /&gt;
        GPU       : Mali?&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rooting the Tablet PC ==&lt;br /&gt;
&lt;br /&gt;
I used [http://www.techverse.net/fastest-root-android-phone-computer/ Framaroot-1.9.3.apk] to root the device. &lt;br /&gt;
&lt;br /&gt;
== Installing Linux - Slackware 14.1 - sort of. ==&lt;br /&gt;
&lt;br /&gt;
With the problem of not having kernel source for the SOC, and no no bootloader unlock possible yet, next best option was to use a chroot environment.&lt;br /&gt;
&lt;br /&gt;
So far, command line mode works fine. Here is the description of how Slackware was installed on to external micro SD Card. Was able to do some basic tests on the frame buffer display. Since there is no VTs available was not able to test Xorg, though could get Mali module compiled and loaded. More details below.&lt;br /&gt;
&lt;br /&gt;
=== Preparing SD Card on host computer ===&lt;br /&gt;
&lt;br /&gt;
Use fdisk to create one or two partitions, one for ext4 and other ( optional ) swap partition. Once these are created, assuming the device on host is /dev/sdc,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	mkfs.ext4 /dev/sdc1&lt;br /&gt;
	sync&lt;br /&gt;
	eject sdc&lt;br /&gt;
	eject -t sdc&lt;br /&gt;
	mkdir slack&lt;br /&gt;
	mount /dev/sdc1 slack&lt;br /&gt;
	cd slack&lt;br /&gt;
	mkdir sl&lt;br /&gt;
	cd sl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you don't have Slackware installation files, [http://arm.slackware.com/getslack/ Get Slackware Arm] first. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        mkdir slackware14.1&lt;br /&gt;
        cd slackware14.1&lt;br /&gt;
	(cd /path..to../slackware14.1 ; tar cfz - *) | (tar xfz - )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://sourceforge.net/projects/slackwareonapc8750/files/initrd-kirkwood.cpio.gz/download initrd-kirkwood.cpio] contains the setup program, but since I couldn't boot with custom initrd, sdc1 /sl area is prepared to have the installation files.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	cpio -id &amp;lt; initrd-kirkwood.cpio&lt;br /&gt;
	sync&lt;br /&gt;
	umount slack&lt;br /&gt;
&lt;br /&gt;
Now that the sd card is ready for installation:&lt;br /&gt;
&lt;br /&gt;
	eject sdc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
and plug it into the device. Once that is done,&lt;br /&gt;
&lt;br /&gt;
=== chroot to installer: ===&lt;br /&gt;
&lt;br /&gt;
Now plug the card in tablet pc, boot, from host computer, &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	adb shell&lt;br /&gt;
	su&lt;br /&gt;
	cd /data/local/tmp&lt;br /&gt;
	mkdir slackware&lt;br /&gt;
	mount /dev/block/mmcblk1p1 slackware&lt;br /&gt;
	cd slackware/sl&lt;br /&gt;
	export PATH=/data/local/tmp/bin:$PATH&lt;br /&gt;
	mountpoint proc || mount -t proc none proc/&lt;br /&gt;
	mountpoint sys || mount -t sysfs sys sys/&lt;br /&gt;
	mountpoint dev || mount -o bind  /dev dev/&lt;br /&gt;
	export PATH=/usr/bin:/bin:/usr/lib/setup:$PATH&lt;br /&gt;
	pushd /dev&lt;br /&gt;
	ln -s /dev/block/mmc1blk* .&lt;br /&gt;
	popd&lt;br /&gt;
	chroot . /bin/bash&lt;br /&gt;
	mount -t ext4 /dev/mmcblk1p1 mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Running setup ===&lt;br /&gt;
&lt;br /&gt;
Install Slackware onto mmcblk1p1, from pre mounted directory, sdc1 : /slackware14.1/slackware&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
	setup&lt;br /&gt;
	&lt;br /&gt;
		Proceed and select /dev/mmcblk1p1 as target, no format&lt;br /&gt;
		For source, select pre mounted directory option, /slackware14.1/slackware&lt;br /&gt;
&amp;lt;/pre&amp;gt;	&lt;br /&gt;
&lt;br /&gt;
=== Complete installation, and configuration ===&lt;br /&gt;
&lt;br /&gt;
Once the complete installation is done,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	umount proc&lt;br /&gt;
	umount sys&lt;br /&gt;
	umount dev&lt;br /&gt;
	sync&lt;br /&gt;
	cd ../..&lt;br /&gt;
	umount slackware&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Getting into installed Slackware: ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	mount /dev/block/mmcblk1p1 slackware&lt;br /&gt;
	cd slackware&lt;br /&gt;
	mountpoint proc || mount -t proc none proc/&lt;br /&gt;
        mountpoint sys || mount -t sysfs sys sys/&lt;br /&gt;
        mountpoint dev || mount -o bind  /dev dev/&lt;br /&gt;
        export PATH=/usr/bin:/bin:/usr/lib/setup:$PATH&lt;br /&gt;
	chroot . /bin/bash&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From here you can do &amp;quot;normal&amp;quot; Slackware activities, sort of. Main things that were lacking in my case&lt;br /&gt;
were VTs (ttys). Compiling programs and running programs that require no X windows worked fine. I ran&lt;br /&gt;
couple of frame buffer tests too. &lt;br /&gt;
		&lt;br /&gt;
== Testing the framebuffer ==		&lt;br /&gt;
&lt;br /&gt;
For these tests, I stopped android &amp;quot;SurfaceFlinger&amp;quot; and freed up /dev/graphics/fb0. by running &amp;quot;stop&amp;quot;&lt;br /&gt;
command. Before running stop, make sure that the display is on ( not blank ). For these tests, I had&lt;br /&gt;
two terminals up on the host PC with one of them running just adb shell with su, and other running&lt;br /&gt;
chrooted slackware shell. SurfaceFlinger was stopped from su shell, and tests from Slackware shell.&lt;br /&gt;
Please not Slackware shell is also running as user root.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	adb shell&lt;br /&gt;
	su&lt;br /&gt;
	stop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the display goes blank, with backlight on.&lt;br /&gt;
&lt;br /&gt;
Get one of these tests.&lt;br /&gt;
[https://gist.githubusercontent.com/rafalrusin/1482697/raw/32c6c0d79b870ffb618aa7b7c664736ca5e150fe/fbtest.c  fbtest] or &lt;br /&gt;
[http://stackoverflow.com/questions/4996777/paint-pixels-to-screen-via-linux-framebuffer Paint-pixels-to-screen-  via-linux-framebuffer] or &lt;br /&gt;
[http://cep.xray.aps.anl.gov/software/qt4-x11-4.2.2/qtopiacore-testingframebuffer.html qtopiacore-testingframebuffer] All these tests worked on the Tablet. Transfer the tests to tablet using adb push&lt;br /&gt;
command.&lt;br /&gt;
&lt;br /&gt;
from Slackware shell, running under adb shell:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   gcc fbtest.c&lt;br /&gt;
   ./a.out&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
once done, go back to android su shell from adb, and:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	start&lt;br /&gt;
&amp;lt;/pre&amp;gt;	&lt;br /&gt;
&lt;br /&gt;
After few seconds android display will be back on. &lt;br /&gt;
&lt;br /&gt;
== Failed test of running an Xorg session ==&lt;br /&gt;
&lt;br /&gt;
=== Getting Mali driver for Xorg ===&lt;br /&gt;
&lt;br /&gt;
All these compilations are done under the chrooted Slackware environment on the Tablet PC, using gcc&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	gcc version 4.8.2 (GCC) ( arm-slackware-linux-gnueabi-gcc )&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://malideveloper.arm.com/downloads/drivers/DX910 Open Source Mali-200/300/400/450 GPU Kernel Dev]&lt;br /&gt;
[http://malideveloper.arm.com/develop-for-mali/drivers/open-source-mali-gpus-linux-exadri2-and-x11-display-drivers/ Open Source Mali GPUs Linux EXA/DRI2 and X11 Display Drivers]&lt;br /&gt;
&lt;br /&gt;
Get [http://malideveloper.arm.com/downloads/drivers/DX910/r4p1-01rel0/DX910-SW-99003-r4p1-01rel0.tgz DX910-SW-99003-r4p1-01rel0] or choose another version&lt;br /&gt;
&lt;br /&gt;
Once downloaded, and adb pushed to tablet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	tar xf DX910-SW-99003-r4p1-01rel0.tgz&lt;br /&gt;
	cd DX910-SW-99003-r4p1-01rel0/x11/xf86-video-mali-0.0.1&lt;br /&gt;
	./autogen.sh&lt;br /&gt;
	in src/Makefile:&lt;br /&gt;
	# mali_drv_la_LDFLAGS = -module -avoid-version -L$(MALI_DDK)/lib -lMali -lUMP -lpthread&lt;br /&gt;
	for now.&lt;br /&gt;
	mali_drv_la_LDFLAGS = -module -avoid-version -L$(MALI_DDK)/lib -lUMP -lpthread&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	also get [http://malideveloper.arm.com/develop-for-mali/drivers/open-source-mali-gpus-ump-user-space-drivers-source-code-2 ump]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	make and install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once make/install is done for both,&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	cp src/.libs/mali_drv.* /usr/lib/xorg/modules/drivers/&lt;br /&gt;
	ldconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Run Xorg ===&lt;br /&gt;
&lt;br /&gt;
And run startx, which fails with the following error.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[  9131.458] (II) LoadModule: &amp;quot;mali&amp;quot;&lt;br /&gt;
[  9131.461] (II) Loading /usr/lib/xorg/modules/drivers/mali_drv.so&lt;br /&gt;
[  9131.461] (II) Module mali: vendor=&amp;quot;X.Org Foundation&amp;quot;&lt;br /&gt;
[  9131.462]    compiled for 1.14.3, module version = 0.4.2&lt;br /&gt;
[  9131.462]    ABI class: X.Org Video Driver, version 14.1&lt;br /&gt;
[  9131.462] (II) MALI: driver for Mali Framebuffer: mali&lt;br /&gt;
[  9131.462] (EE)&lt;br /&gt;
Fatal server error:&lt;br /&gt;
[  9131.462] (EE) xf86OpenConsole: Cannot open /dev/tty0 (No such file or direct&lt;br /&gt;
ory)&lt;br /&gt;
[  9131.463] (EE)&lt;br /&gt;
[  9131.463] (EE)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No further tests until I get to unlock bootloader or get a X server which requires no ttys!&lt;/div&gt;</description>
			<pubDate>Mon, 25 Aug 2014 11:29:50 GMT</pubDate>
			<dc:creator>Gv</dc:creator>
			<comments>https://www.slackwiki.com/Talk:SlackwareOnMt6582Tablet</comments>
		</item>
		<item>
			<title>SlackwareOnMt6582Tablet</title>
			<link>https://www.slackwiki.com/index.php?title=SlackwareOnMt6582Tablet&amp;diff=920</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=SlackwareOnMt6582Tablet&amp;diff=920</guid>
			<description>&lt;p&gt;Gv: Created page with &amp;quot; == specifications for the Tablet PC which was used here : ==  &amp;lt;pre&amp;gt; 	Processor : Arm Cortex A7, 1.3 GHz dual core. 		  : ARMv7 Processor rev 3 (v7l), 	Hardware  : MT8312 	SOC...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== specifications for the Tablet PC which was used here : ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	Processor : Arm Cortex A7, 1.3 GHz dual core.&lt;br /&gt;
		  : ARMv7 Processor rev 3 (v7l),&lt;br /&gt;
	Hardware  : MT8312&lt;br /&gt;
	SOC       : mt6582.&lt;br /&gt;
	Memory    : 512MB RAM&lt;br /&gt;
	Storage   : 4GB Built in storage.&lt;br /&gt;
	Micro SD  : Slot for upto 32GB&lt;br /&gt;
	Display   : 7&amp;quot; WVGA 800x480&lt;br /&gt;
	OS        : Android 4.2 Jelly Bean&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Rooting the Tablet PC ==&lt;br /&gt;
&lt;br /&gt;
I used [http://www.techverse.net/fastest-root-android-phone-computer/ Framaroot-1.9.3.apk] to root the device. &lt;br /&gt;
&lt;br /&gt;
== Installing Linux - Slackware 14.1 - sort of. ==&lt;br /&gt;
&lt;br /&gt;
With the problem of not having kernel source for the SOC, and no no bootloader unlock possible yet, next best option was to use a chroot environment.&lt;br /&gt;
&lt;br /&gt;
So far, command line mode works fine. Here is the description of how Slackware was installed on to external micro SD Card. Was able to do some basic tests on the frame buffer display. Since there is no VTs available was not able to test Xorg, though could get Mali module compiled and loaded. More details below.&lt;br /&gt;
&lt;br /&gt;
=== Preparing SD Card on host computer ===&lt;br /&gt;
&lt;br /&gt;
Use fdisk to create one or two partitions, one for ext4 and other ( optional ) swap partition. Once these are created, assuming the device on host is /dev/sdc,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	mkfs.ext4 /dev/sdc1&lt;br /&gt;
	sync&lt;br /&gt;
	eject sdc&lt;br /&gt;
	eject -t sdc&lt;br /&gt;
	mkdir slack&lt;br /&gt;
	mount /dev/sdc1 slack&lt;br /&gt;
	cd slack&lt;br /&gt;
	mkdir sl&lt;br /&gt;
	cd sl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you don't have Slackware installation files, [http://arm.slackware.com/getslack/ Get Slackware Arm] first. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	(cd /path..to../slackware14.1 ; tar cfz - *) | (tar xfz - )&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://sourceforge.net/projects/slackwareonapc8750/files/initrd-kirkwood.cpio.gz/download initrd-kirkwood.cpio] contains the setup program, but since I couldn't boot with custom initrd, sdc1 /sl area is prepared to have the installation files.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	cpio -id &amp;lt; initrd-kirkwood.cpio&lt;br /&gt;
	sync&lt;br /&gt;
	umount slack&lt;br /&gt;
&lt;br /&gt;
Now that the sd card is ready for installation:&lt;br /&gt;
&lt;br /&gt;
	eject sdc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
and plug it into the device. Once that is done,&lt;br /&gt;
&lt;br /&gt;
=== chroot to installer: ===&lt;br /&gt;
&lt;br /&gt;
Now plug the card in tablet pc, boot, from host computer, &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	adb shell&lt;br /&gt;
	su&lt;br /&gt;
	cd /data/local/tmp&lt;br /&gt;
	mkdir slackware&lt;br /&gt;
	mount /dev/block/mmcblk1p1 slackware&lt;br /&gt;
	cd slackware/sl&lt;br /&gt;
	export PATH=/data/local/tmp/bin:$PATH&lt;br /&gt;
	mountpoint proc || mount -t proc none proc/&lt;br /&gt;
	mountpoint sys || mount -t sysfs sys sys/&lt;br /&gt;
	mountpoint dev || mount -o bind  /dev dev/&lt;br /&gt;
	export PATH=/usr/bin:/bin:/usr/lib/setup:$PATH&lt;br /&gt;
	pushd /dev&lt;br /&gt;
	ln -s /dev/block/mmc1blk* .&lt;br /&gt;
	popd&lt;br /&gt;
	chroot . /bin/bash&lt;br /&gt;
	mount -t ext4 /dev/mmcblk1p1 mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Running setup ===&lt;br /&gt;
&lt;br /&gt;
Install Slackware onto mmcblk1p1, from pre mounted directory, sdc1 : /slackware/slackware&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
	setup&lt;br /&gt;
	&lt;br /&gt;
		Proceed and select /dev/mmcblk1p1 as target, no format&lt;br /&gt;
		For source, select pre mounted directory option, /slackware/slackware&lt;br /&gt;
&amp;lt;/pre&amp;gt;	&lt;br /&gt;
=== Complete installation, and configure. Once the installation is done, ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	umount proc&lt;br /&gt;
	umount sys&lt;br /&gt;
	umount dev&lt;br /&gt;
	sync&lt;br /&gt;
	cd ../..&lt;br /&gt;
	umount slackware&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Getting into installed Slackware: ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	mount /dev/block/mmcblk1p1 slackware&lt;br /&gt;
	cd slackware&lt;br /&gt;
	mountpoint proc || mount -t proc none proc/&lt;br /&gt;
        mountpoint sys || mount -t sysfs sys sys/&lt;br /&gt;
        mountpoint dev || mount -o bind  /dev dev/&lt;br /&gt;
        export PATH=/usr/bin:/bin:/usr/lib/setup:$PATH&lt;br /&gt;
	chroot . /bin/bash&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
From here you can do normal Slackware activities.&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
== Testing the framebuffer	==		&lt;br /&gt;
&lt;br /&gt;
Stop android &amp;quot;Surfaceflinger&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
make sure the display is on ( not blank ) and issue:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	adb shell&lt;br /&gt;
	su&lt;br /&gt;
	stop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now the display goes blank, still with backlight on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Get one of these tests.&lt;br /&gt;
[https://gist.githubusercontent.com/rafalrusin/1482697/raw/32c6c0d79b870ffb618aa7b7c664736ca5e150fe/fbtest.c  fbtest] or &lt;br /&gt;
[http://stackoverflow.com/questions/4996777/paint-pixels-to-screen-via-linux-framebuffer Paint-pixels-to-screen-  via-linux-framebuffer] or &lt;br /&gt;
[http://cep.xray.aps.anl.gov/software/qt4-x11-4.2.2/qtopiacore-testingframebuffer.html qtopiacore-testingframebuffer] All these tests worked on the Tablet.&lt;br /&gt;
&lt;br /&gt;
from Slackware shell:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   gcc fbtest.c&lt;br /&gt;
   ./a.out&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
once done, go back to android su shell from adb, and:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	start&lt;br /&gt;
&amp;lt;/pre&amp;gt;	&lt;br /&gt;
After few seconds android display will be back on. &lt;br /&gt;
&lt;br /&gt;
== Getting mali driver for Xorg ==&lt;br /&gt;
&lt;br /&gt;
All these compilations are done under the chrooted slackware environment on the Tablet PC, using gcc&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	gcc version 4.8.2 (GCC) ( arm-slackware-linux-gnueabi-gcc )&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[http://malideveloper.arm.com/downloads/drivers/DX910 Open Source Mali-200/300/400/450 GPU Kernel Dev]&lt;br /&gt;
[http://malideveloper.arm.com/develop-for-mali/drivers/open-source-mali-gpus-linux-exadri2-and-x11-display-drivers/ Open Source Mali GPUs Linux EXA/DRI2 and X11 Display Drivers]&lt;br /&gt;
&lt;br /&gt;
Get [http://malideveloper.arm.com/downloads/drivers/DX910/r4p1-01rel0/DX910-SW-99003-r4p1-01rel0.tgz DX910-SW-99003-r4p1-01rel0] or choose another version&lt;br /&gt;
&lt;br /&gt;
Once downloaded:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	tar xf DX910-SW-99003-r4p1-01rel0.tgz&lt;br /&gt;
	cd DX910-SW-99003-r4p1-01rel0/x11/xf86-video-mali-0.0.1&lt;br /&gt;
	./autogen.sh&lt;br /&gt;
	in src/Makefile:&lt;br /&gt;
	# mali_drv_la_LDFLAGS = -module -avoid-version -L$(MALI_DDK)/lib -lMali -lUMP -lpthread&lt;br /&gt;
	for now.&lt;br /&gt;
	mali_drv_la_LDFLAGS = -module -avoid-version -L$(MALI_DDK)/lib -lUMP -lpthread&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	also get [http://malideveloper.arm.com/develop-for-mali/drivers/open-source-mali-gpus-ump-user-space-drivers-source-code-2 ] [http://malideveloper.arm.com/downloads/drivers/DX910/r4p1-01rel0/DX910-SW-99006-r4p1-01rel0.tgz].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	make/install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once make/install is done for both,&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	cp src/.libs/mali_drv.* /usr/lib/xorg/modules/drivers/&lt;br /&gt;
	ldconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And do startx ( fails with following error ).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[  9131.458] (II) LoadModule: &amp;quot;mali&amp;quot;&lt;br /&gt;
[  9131.461] (II) Loading /usr/lib/xorg/modules/drivers/mali_drv.so&lt;br /&gt;
[  9131.461] (II) Module mali: vendor=&amp;quot;X.Org Foundation&amp;quot;&lt;br /&gt;
[  9131.462]    compiled for 1.14.3, module version = 0.4.2&lt;br /&gt;
[  9131.462]    ABI class: X.Org Video Driver, version 14.1&lt;br /&gt;
[  9131.462] (II) MALI: driver for Mali Framebuffer: mali&lt;br /&gt;
[  9131.462] (EE)&lt;br /&gt;
Fatal server error:&lt;br /&gt;
[  9131.462] (EE) xf86OpenConsole: Cannot open /dev/tty0 (No such file or direct&lt;br /&gt;
ory)&lt;br /&gt;
[  9131.463] (EE)&lt;br /&gt;
[  9131.463] (EE)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
No further tests until I get to unlock bootloader or get a X server which requires no ttys!&lt;/div&gt;</description>
			<pubDate>Mon, 25 Aug 2014 07:56:17 GMT</pubDate>
			<dc:creator>Gv</dc:creator>
			<comments>https://www.slackwiki.com/Talk:SlackwareOnMt6582Tablet</comments>
		</item>
		<item>
			<title>Apc8750</title>
			<link>https://www.slackwiki.com/index.php?title=Apc8750&amp;diff=917</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=Apc8750&amp;diff=917</guid>
			<description>&lt;p&gt;Gv: /* Installing Slackware on APC-8750 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Installing Slackware on APC-8750 ==&lt;br /&gt;
&lt;br /&gt;
[[Image:http://apc.io/media/apc/img/apc-products-8750.jpg|APC 8750]]&amp;lt;br /&amp;gt;[http://apc.io/media/apc/img/apc-angle.jpg Another photograph of APC 8750]&lt;br /&gt;
&lt;br /&gt;
[https://sourceforge.net/p/slackwareonapc8750 Project Area]&lt;br /&gt;
&lt;br /&gt;
[http://sourceforge.net/p/slackwareonapc8750/wiki/Home/ wiki @ sourceforge] Check this for latest updates&lt;br /&gt;
  &lt;br /&gt;
[http://sourceforge.net/p/slackwareonapc8750/code/ helper scripts] / [https://github.com/gv1/apc8750 helper scripts]  &lt;br /&gt;
&lt;br /&gt;
Mainline Linux kernel lacks support for [http://www.wondermedia.com.tw/en/products/platform/soc/wm8750/ Wondermedia WM 8750] currently. However [https://github.com/linux-wmt/linux-vtwm linux-vtwm-testing] kernel available at github has support for Wondermedia 8750 SOC. Since the kernel failed to load initrd cpio archive the normal way, a special method was used for loading the Slackware setup image. ( Installer Kernel booting from embedded initramfs image creates a filesystem on ramdisk, extracts Slackware setup initrd image and chroots to the filesystem on ramdisk ). Briefly, the steps followed in installing Slackware on APC 8750 are :&lt;br /&gt;
&lt;br /&gt;
# '''Installing Slackware.'''&lt;br /&gt;
## Prepare boot media: Create three partitions, first bootable vfat, second reiserfs and third Linux swap.&lt;br /&gt;
## Copy installer boot files: Download and copy uzImage.bin and initrd-kirkwood.cpio to first vfat partition.&lt;br /&gt;
## Download and copy Slackware installation files over to second partition.&lt;br /&gt;
## Boot from the micro sd card prepared, install, and configure Slackware.&lt;br /&gt;
# '''Making new installtion bootable.'''&lt;br /&gt;
## Download and replace the installer kernel with new uzImage.bin for booting from second partition.&lt;br /&gt;
## Reboot.&lt;br /&gt;
&lt;br /&gt;
=== Creating a bootable micro sd card for installation ===&lt;br /&gt;
&lt;br /&gt;
For this you need a custom built kernel and a initramfs image from Slackware for arm distribution - [http://ftp.arm.slackware.com/slackwarearm/slackwarearm-14.1/isolinux/uinitrd-kirkwood.img uinitrd-kirkwood.img].&lt;br /&gt;
&lt;br /&gt;
* [http://sourceforge.net/projects/slackwareonapc8750/files/install/vga/uzImage.bin/download uzImage.bin] for console on VGA monitor.&amp;lt;br /&amp;gt;If this kernel is chosen boot messages will appear on VGA monitor. or&lt;br /&gt;
* [http://sourceforge.net/projects/slackwareonapc8750/files/install/ttyWMT0/uzImage.bin/download uzImage.bin] for console on serial port.&amp;lt;br /&amp;gt;If this kernel is chosen boot messages will appear on the serial port.&lt;br /&gt;
* [http://sourceforge.net/projects/slackwareonapc8750/files/initrd-kirkwood.cpio.gz/download initrd-kirkwood.cpio.gz] initramfs cpio archive.&amp;lt;br /&amp;gt;Download and gunzip this image file.&lt;br /&gt;
* Download [http://arm.slackware.com/getslack/ Slackware 14.1 for arm].&amp;lt;br /&amp;gt;If you prefer, you may download this to micro sd card directly, under slackware14.1 directory.&lt;br /&gt;
&lt;br /&gt;
Download and keep these ready.&lt;br /&gt;
&lt;br /&gt;
==== Preparing the micro sd card. ====&lt;br /&gt;
&lt;br /&gt;
You need at least three partitions, one vfat, one or more Linux partitions, and a Linux swap partition for this method of installation. Here is how the partitions I used look like under fdisk ran on host.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Disk /dev/sdc: 15.9 GB, 15931539456 bytes&lt;br /&gt;
64 heads, 32 sectors/track, 15193 cylinders, total 31116288 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
Disk identifier: 0x00000000&lt;br /&gt;
&lt;br /&gt;
   Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/sdc1   *        2048      206847      102400    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/sdc2          206848    28878847    14336000   83  Linux&lt;br /&gt;
/dev/sdc3        28878848    31116287     1118720   82  Linux swap&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Creating filesystems. ====&lt;br /&gt;
&lt;br /&gt;
* 1st partition - make it bootable, and create a file system using mkfs.vfat&lt;br /&gt;
* 2nd partition - create a reiserfs file system using mkreiserfs ( or other tools for other types )&lt;br /&gt;
&lt;br /&gt;
==== Copying Slackware install files onto second partition. ====&lt;br /&gt;
&lt;br /&gt;
Create a slackware14.1 directory in the reiserfs partition of the micro sd card. Copy Slackware for arm distribution to the slackware14.1 directory, from http://arm.slackware.com/getslack/. Once the preparation is over,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sdc1: &lt;br /&gt;
    /uzImage.bin  &lt;br /&gt;
    /initrd-kirkwood.cpio&lt;br /&gt;
&lt;br /&gt;
sdc2:&lt;br /&gt;
    /slackware14.1/&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== Booting with the installer and installing Slackware. ====&lt;br /&gt;
&lt;br /&gt;
Now you are ready to boot from the new disk just prepared, and install Slackware from the pre mounted directory under /mnt/slackware14.1/slackware ( which is automounted as the selection for target is done ). Put the newly prepared micro sd card in the slot and reboot APC-8750. Once you get the Slackware login prompt, proceed for installation as usual.&lt;br /&gt;
&lt;br /&gt;
==== Configuration ====&lt;br /&gt;
&lt;br /&gt;
For X Windows, use a lightweight window manager like Fluxbox.&lt;br /&gt;
&lt;br /&gt;
=== Post installation preparation. ===&lt;br /&gt;
&lt;br /&gt;
After the installation is done, you need to replace the kernel uzImage.bin with a new one, this time with no initramfs_data.cpio.gz, and CONFIG_CMDLINE= changed for booting from partition 2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;CONFIG_CMDLINE=&amp;amp;quot; mem=460M root=/dev/mmcblk0p2 rootwait nonitrd ro console=tty0&amp;amp;quot;&lt;br /&gt;
CONFIG_CMDLINE_FORCE=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
For this, download one of&lt;br /&gt;
&lt;br /&gt;
* [http://sourceforge.net/projects/slackwareonapc8750/files/boot/vga/uzImage.bin/download uzImage.bin] for console on VGA. Or&lt;br /&gt;
* [http://sourceforge.net/projects/slackwareonapc8750/files/boot/ttyWMT0/uzImage.bin/download uzImage.bin] for console on serial port.&lt;br /&gt;
&lt;br /&gt;
and copy over to the first partition ( bootable vfat one ).&lt;br /&gt;
&lt;br /&gt;
Once Slackware is installed, and the new uzImage.bin is copied over,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sdc1:&lt;br /&gt;
    /uzImage.bin&lt;br /&gt;
    /initrd-kirkwood.cpio  =&amp;amp;gt; not required anymore&lt;br /&gt;
&lt;br /&gt;
sdc2:&lt;br /&gt;
    /bin&lt;br /&gt;
    /boot&lt;br /&gt;
    /cdrom&lt;br /&gt;
    /dev/&lt;br /&gt;
    /etc/&lt;br /&gt;
    /home/&lt;br /&gt;
    /proc/&lt;br /&gt;
    /slackware14.1  =&amp;amp;gt; not required anymore&lt;br /&gt;
    /usr/&lt;br /&gt;
    /var/&amp;lt;/pre&amp;gt;&lt;br /&gt;
You may remove files which are not required anymore, and free up some space. Once that is done, reboot APC-8750 to get Slackware up and running.&lt;br /&gt;
&lt;br /&gt;
=== Information on building kernel and other images. ===&lt;br /&gt;
&lt;br /&gt;
Please also refer to [http://sourceforge.net/projects/slackwareonapc8750/files/build.sh/download build.sh] script used to help the build procedure.&lt;br /&gt;
&lt;br /&gt;
==== Detailed description of how Slackware install kernel was prepared. ====&lt;br /&gt;
&lt;br /&gt;
===== Getting the Kernel source code. =====&lt;br /&gt;
&lt;br /&gt;
I used [https://github.com/linux-wmt/linux-vtwm linux-vtwm-testing]. Zipfile you download from the site may cause problem when extracting on Linux. In my case couple of files were missing. One option is to use p7zip or other unzip program instead of the default zip utility in Slackware. You may also get a tar.gz file using:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;wget --no-check-certificate \&lt;br /&gt;
    https://github.com/linux-wmt/linux-vtwm/archive/testing.tar.gz&amp;lt;/pre&amp;gt;&lt;br /&gt;
Please refer to the link [http://sourceforge.net/projects/slackwareonapc8750/files/configs/config.slackinst.vga/download config.slackinst.vga] or [http://sourceforge.net/projects/slackwareonapc8750/files/configs/config.slackinst.ttyWMT0/download config.slackinst.ttyWMT0] for the config file which was used.&lt;br /&gt;
&lt;br /&gt;
===== Details of how initramfs_data.cpio.gz was prepared. =====&lt;br /&gt;
&lt;br /&gt;
This method also require a small initramfs image prepared from the boot media available at [http://apc.io/library/ apc.io library]. Download it from here [http://sourceforge.net/projects/slackwareonapc8750/files/initramfs_data.cpio.gz/download initramfs_data.cpio.gz]&amp;lt;br /&amp;gt;or&amp;lt;br /&amp;gt;Use the following init scrip with a stripped down version of initrd.gz in [http://apc.io/media/apc/library/8750/apc-firmware-v1.0.2.zip apc-firmware-v1.0.2] from [http://apc.io/library/ apc.io library].&lt;br /&gt;
&lt;br /&gt;
init:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/busybox sh&lt;br /&gt;
/bin/busybox mount -t proc /proc&lt;br /&gt;
/bin/busybox mount -t sys /sys&lt;br /&gt;
/bin/busybox echo /sbin/mdev &amp;amp;gt; /proc/sys/kernel/hotplug&lt;br /&gt;
/bin/busybox mdev -s&lt;br /&gt;
/bin/busybox --install&lt;br /&gt;
mkfs.ext2 /dev/ram0&lt;br /&gt;
mkdir /root&lt;br /&gt;
mount /dev/ram0 /root&lt;br /&gt;
cd /root&lt;br /&gt;
mkdir /flash&lt;br /&gt;
mount /dev/mmcblk0p1 /flash     &lt;br /&gt;
cpio -id &amp;amp;lt; /flash/initrd-kirkwood.cpio&lt;br /&gt;
umount /flash&lt;br /&gt;
exec chroot /root /bin/busybox init&lt;br /&gt;
exec /bin/busybox init&amp;lt;/pre&amp;gt;&lt;br /&gt;
Commands to build initramfs_data.cpio.gz:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;gunzip initrd.gz&lt;br /&gt;
mkdir initramfs_data&lt;br /&gt;
mount -o loop initrd initramfs_data&lt;br /&gt;
# create initramfs_data/init as shown above&lt;br /&gt;
sh build.sh init&lt;br /&gt;
chmod a+x initramfs_data/init&lt;br /&gt;
sync&lt;br /&gt;
(cd initramfs_data ; find . | cpio -o -H newc | gzip  &amp;amp;gt; ../initramfs_data.cpio.gz )&amp;lt;/pre&amp;gt;&lt;br /&gt;
Copy [http://sourceforge.net/projects/slackwareonapc8750/files/initramfs_data.cpio.gz/download initramfs_data.cpio.gz] cpio archive to $KERNEL_SRC/usr area.&lt;br /&gt;
&lt;br /&gt;
Please note that the kernel uses a CONFIG_CMDLINE= for VGA:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;CONFIG_CMDLINE=&amp;amp;quot; mem=440M console=tty0 mbtotal=52M&amp;amp;quot;&lt;br /&gt;
CONFIG_CMDLINE_FORCE=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
for serial:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;CONFIG_CMDLINE=&amp;amp;quot; mem=440M console=ttyWMT0,115200n8 mbtotal=52M&amp;amp;quot;&lt;br /&gt;
CONFIG_CMDLINE_FORCE=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
kernel is compiled on the host, using a cross compiler [http://www.elinux.org/ARMCompilers Sourcery CodeBench Lite 2014.05-28] for [http://www.arm.com/ arm]. For mkimage tool refer to [http://github.com/apc-io/apc-8750 Kernel and Bootloader] link at apc-io page at github.&lt;br /&gt;
&lt;br /&gt;
===== kernel build procedure: =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;export OBJ=/src/apc.io/obj.testing&lt;br /&gt;
export KERNEL_SRC=/src/apc.io/linux-vtwm-testing&lt;br /&gt;
export PATH=~/apc.io/apc-8750-master/u-boot/tools:$PATH&lt;br /&gt;
export PATH=/opt/local/arm/arm-2014.05/bin:$PATH&lt;br /&gt;
cp config.slackinst.vga $OBJ/.config&lt;br /&gt;
cp initramfs_data.cpio.gz $KERNEL_SRC/usr&lt;br /&gt;
&lt;br /&gt;
make -C $KERNEL_SRC O=$OBJ ARCH=arm CROSS_COMPILE=arm-none-eabi- zImage -j 3&lt;br /&gt;
mv $OBJ/arch/arm/boot/zImage $1/$2/ ;&lt;br /&gt;
make -C $KERNEL_SRC O=$OBJ ARCH=arm CROSS_COMPILE=arm-none-eabi- dtbs&lt;br /&gt;
cat $1/$2/zImage $OBJ/arch/arm/boot/dts/wm8750-apc8750.dtb &amp;amp;gt; $1/$2/zImage_w_dtb&lt;br /&gt;
mkimage -A arm -O linux -T kernel -C none -a 0x8000 \&lt;br /&gt;
       -e 0x8000 -n &amp;amp;quot;My Linux&amp;amp;quot; -d $1/$2/zImage_w_dtb $1/$2/uzImage.bin&amp;lt;/pre&amp;gt;&lt;br /&gt;
===== Preparing the cpio archive: =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;wget -c http://ftp.arm.slackware.com/slackwarearm/slackwarearm-14.1/isolinux/uinitrd-kirkwood.img  &lt;br /&gt;
dd if=./uinitrd-kirkwood.img bs=64 skip=1 of=initrd-kirkwood.cpio.gz  &lt;br /&gt;
gunzip initrd-kirkwood.cpio.gz  &amp;lt;/pre&amp;gt;&lt;br /&gt;
==== Procedure used for preparing the Slackware boot kernel. ====&lt;br /&gt;
&lt;br /&gt;
Please refer to the link [http://sourceforge.net/projects/slackwareonapc8750/files/configs/config.slackboot.vga/download config.slackboot.vga] or [http://sourceforge.net/projects/slackwareonapc8750/files/configs/config.slackboot.ttyWMT0/download config.slackboot.ttyWMT0] for the config file which was used. Download and copy this file as .config in $OBJ area before starting the build&lt;br /&gt;
&lt;br /&gt;
===== Kernel build procedure: =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;export OBJ=/src/apc.io/obj.testing&lt;br /&gt;
export KERNEL_SRC=/src/apc.io/linux-vtwm-testing&lt;br /&gt;
export PATH=~/apc.io/apc-8750-master/u-boot/tools:$PATH&lt;br /&gt;
export PATH=/opt/local/arm/arm-2014.05/bin:$PATH&lt;br /&gt;
cp config.slackboot.vga $OBJ/.config&lt;br /&gt;
rm $KERNEL_SRC/usr/initramfs_data.cpio.g&lt;br /&gt;
&lt;br /&gt;
make -C $KERNEL_SRC O=$OBJ ARCH=arm CROSS_COMPILE=arm-none-eabi- zImage -j 3&lt;br /&gt;
mv $OBJ/arch/arm/boot/zImage $1/$2/ ;&lt;br /&gt;
make -C $KERNEL_SRC O=$OBJ ARCH=arm CROSS_COMPILE=arm-none-eabi- dtbs&lt;br /&gt;
cat $1/$2/zImage $OBJ/arch/arm/boot/dts/wm8750-apc8750.dtb &amp;amp;gt; $1/$2/zImage_w_dtb&lt;br /&gt;
mkimage -A arm -O linux -T kernel -C none -a 0x8000 \&lt;br /&gt;
  -e 0x8000 -n &amp;amp;quot;My Linux&amp;amp;quot; -d $1/$2/zImage_w_dtb $1/$2/uzImage.bin&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Additional info ===&lt;br /&gt;
From Slackware-14.1 boot messages:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Linux version 3.13.0-rc8 (ahoh@tampa) (gcc version 4.8.3 20140320 (prerelease) (Sourcery CodeBench Lite 2014.05-28) ) #23 Mon Aug 4 07 :40:48 IST 2014 &lt;br /&gt;
Kernel command line:  mem=460M root=/dev/mmcblk0p2 rootwait nonitrd ro console=tty0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From original boot messages on ttyS0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Linux version 2.6.32.9-default (root@Ryan-VM-Ubuntu) (gcc version 4.5.2 (Sourcery G++ Lite 2011.03-41) ) #1 Wed Dec 5 19:29:52 CST 2012&lt;br /&gt;
Kernel command line: mem=460M root=/dev/mtdblock11 noinitrd rootfstype=yaffs2 rw console=ttyS0,115200n8 mbtotal=52M init=/init&lt;br /&gt;
CPU: ARMv6-compatible processor [410fb767] revision 7 (ARMv7), cr=00c5387f&lt;br /&gt;
...&lt;br /&gt;
Memory: 460MB = 460MB total&lt;br /&gt;
Memory: 460288KB available (5188K code, 1069K data, 136K init, 0K highmem)&lt;br /&gt;
...&lt;br /&gt;
Creating 6 MTD partitions on &amp;amp;quot;mtdsf device&amp;amp;quot;:&lt;br /&gt;
0x000000000000-0x000000d00000 : &amp;amp;quot;filesystem-SF&amp;amp;quot;&lt;br /&gt;
0x000000d00000-0x000000f80000 : &amp;amp;quot;kernel-SF&amp;amp;quot;&lt;br /&gt;
0x000000f80000-0x000000fd0000 : &amp;amp;quot;u-boot-SF&amp;amp;quot;&lt;br /&gt;
0x000000fd0000-0x000000fe0000 : &amp;amp;quot;u-boot env. cfg. 1-SF&amp;amp;quot;&lt;br /&gt;
0x000000fe0000-0x000000ff0000 : &amp;amp;quot;u-boot env. cfg. 2-SF&amp;amp;quot;&lt;br /&gt;
0x000000ff0000-0x000001000000 : &amp;amp;quot;w-load-SF&amp;amp;quot;&lt;br /&gt;
wmt sf controller initial ok&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
NAND device: Manufacturer ID: 0xec, Chip ID: 0xd59476 (Samsung K9GAG08U0F)&lt;br /&gt;
Bad block at 16&lt;br /&gt;
Bad block at 17&lt;br /&gt;
Bad block at 89&lt;br /&gt;
Bad block at 613&lt;br /&gt;
Bad block at 880&lt;br /&gt;
Bad block at 1583&lt;br /&gt;
WMT_nand: uboot no dynamic partitions defined, use default static&lt;br /&gt;
Creating 11 MTD partitions on &amp;amp;quot;WMT.nand&amp;amp;quot;:&lt;br /&gt;
0x000000000000-0x000000100000 : &amp;amp;quot;w-load-NAND&amp;amp;quot;&lt;br /&gt;
0x000000100000-0x000000a00000 : &amp;amp;quot;u-boot env. cfg. 1-NAND&amp;amp;quot;&lt;br /&gt;
0x000000a00000-0x000001300000 : &amp;amp;quot;u-boot-NAND&amp;amp;quot;&lt;br /&gt;
0x000001300000-0x000001b00000 : &amp;amp;quot;kernel-NAND&amp;amp;quot;&lt;br /&gt;
0x000001b00000-0x000002100000 : &amp;amp;quot;initrd-NAND&amp;amp;quot;&lt;br /&gt;
0x000002100000-0x000012100000 : &amp;amp;quot;filesystem-NAND&amp;amp;quot;&lt;br /&gt;
0x000012100000-0x000012300000 : &amp;amp;quot;u-boot-logo&amp;amp;quot;&lt;br /&gt;
0x000012300000-0x000012700000 : &amp;amp;quot;kernel-logo&amp;amp;quot;&lt;br /&gt;
0x000012700000-0x000052700000 : &amp;amp;quot;android-data&amp;amp;quot;&lt;br /&gt;
0x000052700000-0x00005a700000 : &amp;amp;quot;android-cache&amp;amp;quot;&lt;br /&gt;
0x00005a700000-0x000080000000 : &amp;amp;quot;LocalDisk&amp;amp;quot;&lt;br /&gt;
nand initialised ok&lt;br /&gt;
...&lt;br /&gt;
VIA Networking Velocity Family Gigabit Ethernet Adapter Driver Ver. 1.14&lt;br /&gt;
...&lt;br /&gt;
eth0: VIA Networking Velocity Family Gigabit Ethernet Adapter&lt;br /&gt;
...&lt;br /&gt;
WMT_SOC: dai_name=i2s, codec_name=vt1603&lt;br /&gt;
WMT_SOC: single, wmt_i2s_rate=44100&lt;br /&gt;
...&lt;br /&gt;
VT1603 Audio Codec 0.10&lt;br /&gt;
wmt.audio.i2s = vt1603:f2:f2:f1:f1:100&lt;br /&gt;
...&amp;lt;/pre&amp;gt;&lt;/div&gt;</description>
			<pubDate>Sat, 09 Aug 2014 06:33:30 GMT</pubDate>
			<dc:creator>Gv</dc:creator>
			<comments>https://www.slackwiki.com/Talk:Apc8750</comments>
		</item>
		<item>
			<title>Apc8750</title>
			<link>https://www.slackwiki.com/index.php?title=Apc8750&amp;diff=916</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=Apc8750&amp;diff=916</guid>
			<description>&lt;p&gt;Gv: /* Additional info */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Installing Slackware on APC-8750 ==&lt;br /&gt;
&lt;br /&gt;
[[Image:http://apc.io/media/apc/img/apc-products-8750.jpg|APC 8750]]&amp;lt;br /&amp;gt;[http://apc.io/media/apc/img/apc-angle.jpg Another photograph of APC 8750]&lt;br /&gt;
&lt;br /&gt;
[https://sourceforge.net/p/slackwareonapc8750 Project Area]&lt;br /&gt;
&lt;br /&gt;
Mainline Linux kernel lacks support for [http://www.wondermedia.com.tw/en/products/platform/soc/wm8750/ Wondermedia WM 8750] currently. However [https://github.com/linux-wmt/linux-vtwm linux-vtwm-testing] kernel available at github has support for Wondermedia 8750 SOC. Since the kernel failed to load initrd cpio archive the normal way, a special method was used for loading the Slackware setup image. ( Installer Kernel booting from embedded initramfs image creates a filesystem on ramdisk, extracts Slackware setup initrd image and chroots to the filesystem on ramdisk ). Briefly, the steps followed in installing Slackware on APC 8750 are :&lt;br /&gt;
&lt;br /&gt;
# '''Installing Slackware.'''&lt;br /&gt;
## Prepare boot media: Create three partitions, first bootable vfat, second reiserfs and third Linux swap.&lt;br /&gt;
## Copy installer boot files: Download and copy uzImage.bin and initrd-kirkwood.cpio to first vfat partition.&lt;br /&gt;
## Download and copy Slackware installation files over to second partition.&lt;br /&gt;
## Boot from the micro sd card prepared, install, and configure Slackware.&lt;br /&gt;
# '''Making new installtion bootable.'''&lt;br /&gt;
## Download and replace the installer kernel with new uzImage.bin for booting from second partition.&lt;br /&gt;
## Reboot.&lt;br /&gt;
&lt;br /&gt;
=== Creating a bootable micro sd card for installation ===&lt;br /&gt;
&lt;br /&gt;
For this you need a custom built kernel and a initramfs image from Slackware for arm distribution - [http://ftp.arm.slackware.com/slackwarearm/slackwarearm-14.1/isolinux/uinitrd-kirkwood.img uinitrd-kirkwood.img].&lt;br /&gt;
&lt;br /&gt;
* [http://sourceforge.net/projects/slackwareonapc8750/files/install/vga/uzImage.bin/download uzImage.bin] for console on VGA monitor.&amp;lt;br /&amp;gt;If this kernel is chosen boot messages will appear on VGA monitor. or&lt;br /&gt;
* [http://sourceforge.net/projects/slackwareonapc8750/files/install/ttyWMT0/uzImage.bin/download uzImage.bin] for console on serial port.&amp;lt;br /&amp;gt;If this kernel is chosen boot messages will appear on the serial port.&lt;br /&gt;
* [http://sourceforge.net/projects/slackwareonapc8750/files/initrd-kirkwood.cpio.gz/download initrd-kirkwood.cpio.gz] initramfs cpio archive.&amp;lt;br /&amp;gt;Download and gunzip this image file.&lt;br /&gt;
* Download [http://arm.slackware.com/getslack/ Slackware 14.1 for arm].&amp;lt;br /&amp;gt;If you prefer, you may download this to micro sd card directly, under slackware14.1 directory.&lt;br /&gt;
&lt;br /&gt;
Download and keep these ready.&lt;br /&gt;
&lt;br /&gt;
==== Preparing the micro sd card. ====&lt;br /&gt;
&lt;br /&gt;
You need at least three partitions, one vfat, one or more Linux partitions, and a Linux swap partition for this method of installation. Here is how the partitions I used look like under fdisk ran on host.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Disk /dev/sdc: 15.9 GB, 15931539456 bytes&lt;br /&gt;
64 heads, 32 sectors/track, 15193 cylinders, total 31116288 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
Disk identifier: 0x00000000&lt;br /&gt;
&lt;br /&gt;
   Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/sdc1   *        2048      206847      102400    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/sdc2          206848    28878847    14336000   83  Linux&lt;br /&gt;
/dev/sdc3        28878848    31116287     1118720   82  Linux swap&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Creating filesystems. ====&lt;br /&gt;
&lt;br /&gt;
* 1st partition - make it bootable, and create a file system using mkfs.vfat&lt;br /&gt;
* 2nd partition - create a reiserfs file system using mkreiserfs ( or other tools for other types )&lt;br /&gt;
&lt;br /&gt;
==== Copying Slackware install files onto second partition. ====&lt;br /&gt;
&lt;br /&gt;
Create a slackware14.1 directory in the reiserfs partition of the micro sd card. Copy Slackware for arm distribution to the slackware14.1 directory, from http://arm.slackware.com/getslack/. Once the preparation is over,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sdc1: &lt;br /&gt;
    /uzImage.bin  &lt;br /&gt;
    /initrd-kirkwood.cpio&lt;br /&gt;
&lt;br /&gt;
sdc2:&lt;br /&gt;
    /slackware14.1/&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== Booting with the installer and installing Slackware. ====&lt;br /&gt;
&lt;br /&gt;
Now you are ready to boot from the new disk just prepared, and install Slackware from the pre mounted directory under /mnt/slackware14.1/slackware ( which is automounted as the selection for target is done ). Put the newly prepared micro sd card in the slot and reboot APC-8750. Once you get the Slackware login prompt, proceed for installation as usual.&lt;br /&gt;
&lt;br /&gt;
==== Configuration ====&lt;br /&gt;
&lt;br /&gt;
For X Windows, use a lightweight window manager like Fluxbox.&lt;br /&gt;
&lt;br /&gt;
=== Post installation preparation. ===&lt;br /&gt;
&lt;br /&gt;
After the installation is done, you need to replace the kernel uzImage.bin with a new one, this time with no initramfs_data.cpio.gz, and CONFIG_CMDLINE= changed for booting from partition 2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;CONFIG_CMDLINE=&amp;amp;quot; mem=460M root=/dev/mmcblk0p2 rootwait nonitrd ro console=tty0&amp;amp;quot;&lt;br /&gt;
CONFIG_CMDLINE_FORCE=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
For this, download one of&lt;br /&gt;
&lt;br /&gt;
* [http://sourceforge.net/projects/slackwareonapc8750/files/boot/vga/uzImage.bin/download uzImage.bin] for console on VGA. Or&lt;br /&gt;
* [http://sourceforge.net/projects/slackwareonapc8750/files/boot/ttyWMT0/uzImage.bin/download uzImage.bin] for console on serial port.&lt;br /&gt;
&lt;br /&gt;
and copy over to the first partition ( bootable vfat one ).&lt;br /&gt;
&lt;br /&gt;
Once Slackware is installed, and the new uzImage.bin is copied over,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sdc1:&lt;br /&gt;
    /uzImage.bin&lt;br /&gt;
    /initrd-kirkwood.cpio  =&amp;amp;gt; not required anymore&lt;br /&gt;
&lt;br /&gt;
sdc2:&lt;br /&gt;
    /bin&lt;br /&gt;
    /boot&lt;br /&gt;
    /cdrom&lt;br /&gt;
    /dev/&lt;br /&gt;
    /etc/&lt;br /&gt;
    /home/&lt;br /&gt;
    /proc/&lt;br /&gt;
    /slackware14.1  =&amp;amp;gt; not required anymore&lt;br /&gt;
    /usr/&lt;br /&gt;
    /var/&amp;lt;/pre&amp;gt;&lt;br /&gt;
You may remove files which are not required anymore, and free up some space. Once that is done, reboot APC-8750 to get Slackware up and running.&lt;br /&gt;
&lt;br /&gt;
=== Information on building kernel and other images. ===&lt;br /&gt;
&lt;br /&gt;
Please also refer to [http://sourceforge.net/projects/slackwareonapc8750/files/build.sh/download build.sh] script used to help the build procedure.&lt;br /&gt;
&lt;br /&gt;
==== Detailed description of how Slackware install kernel was prepared. ====&lt;br /&gt;
&lt;br /&gt;
===== Getting the Kernel source code. =====&lt;br /&gt;
&lt;br /&gt;
I used [https://github.com/linux-wmt/linux-vtwm linux-vtwm-testing]. Zipfile you download from the site may cause problem when extracting on Linux. In my case couple of files were missing. One option is to use p7zip or other unzip program instead of the default zip utility in Slackware. You may also get a tar.gz file using:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;wget --no-check-certificate \&lt;br /&gt;
    https://github.com/linux-wmt/linux-vtwm/archive/testing.tar.gz&amp;lt;/pre&amp;gt;&lt;br /&gt;
Please refer to the link [http://sourceforge.net/projects/slackwareonapc8750/files/configs/config.slackinst.vga/download config.slackinst.vga] or [http://sourceforge.net/projects/slackwareonapc8750/files/configs/config.slackinst.ttyWMT0/download config.slackinst.ttyWMT0] for the config file which was used.&lt;br /&gt;
&lt;br /&gt;
===== Details of how initramfs_data.cpio.gz was prepared. =====&lt;br /&gt;
&lt;br /&gt;
This method also require a small initramfs image prepared from the boot media available at [http://apc.io/library/ apc.io library]. Download it from here [http://sourceforge.net/projects/slackwareonapc8750/files/initramfs_data.cpio.gz/download initramfs_data.cpio.gz]&amp;lt;br /&amp;gt;or&amp;lt;br /&amp;gt;Use the following init scrip with a stripped down version of initrd.gz in [http://apc.io/media/apc/library/8750/apc-firmware-v1.0.2.zip apc-firmware-v1.0.2] from [http://apc.io/library/ apc.io library].&lt;br /&gt;
&lt;br /&gt;
init:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/busybox sh&lt;br /&gt;
/bin/busybox mount -t proc /proc&lt;br /&gt;
/bin/busybox mount -t sys /sys&lt;br /&gt;
/bin/busybox echo /sbin/mdev &amp;amp;gt; /proc/sys/kernel/hotplug&lt;br /&gt;
/bin/busybox mdev -s&lt;br /&gt;
/bin/busybox --install&lt;br /&gt;
mkfs.ext2 /dev/ram0&lt;br /&gt;
mkdir /root&lt;br /&gt;
mount /dev/ram0 /root&lt;br /&gt;
cd /root&lt;br /&gt;
mkdir /flash&lt;br /&gt;
mount /dev/mmcblk0p1 /flash     &lt;br /&gt;
cpio -id &amp;amp;lt; /flash/initrd-kirkwood.cpio&lt;br /&gt;
umount /flash&lt;br /&gt;
exec chroot /root /bin/busybox init&lt;br /&gt;
exec /bin/busybox init&amp;lt;/pre&amp;gt;&lt;br /&gt;
Commands to build initramfs_data.cpio.gz:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;gunzip initrd.gz&lt;br /&gt;
mkdir initramfs_data&lt;br /&gt;
mount -o loop initrd initramfs_data&lt;br /&gt;
# create initramfs_data/init as shown above&lt;br /&gt;
sh build.sh init&lt;br /&gt;
chmod a+x initramfs_data/init&lt;br /&gt;
sync&lt;br /&gt;
(cd initramfs_data ; find . | cpio -o -H newc | gzip  &amp;amp;gt; ../initramfs_data.cpio.gz )&amp;lt;/pre&amp;gt;&lt;br /&gt;
Copy [http://sourceforge.net/projects/slackwareonapc8750/files/initramfs_data.cpio.gz/download initramfs_data.cpio.gz] cpio archive to $KERNEL_SRC/usr area.&lt;br /&gt;
&lt;br /&gt;
Please note that the kernel uses a CONFIG_CMDLINE= for VGA:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;CONFIG_CMDLINE=&amp;amp;quot; mem=440M console=tty0 mbtotal=52M&amp;amp;quot;&lt;br /&gt;
CONFIG_CMDLINE_FORCE=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
for serial:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;CONFIG_CMDLINE=&amp;amp;quot; mem=440M console=ttyWMT0,115200n8 mbtotal=52M&amp;amp;quot;&lt;br /&gt;
CONFIG_CMDLINE_FORCE=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
kernel is compiled on the host, using a cross compiler [http://www.elinux.org/ARMCompilers Sourcery CodeBench Lite 2014.05-28] for [http://www.arm.com/ arm]. For mkimage tool refer to [http://github.com/apc-io/apc-8750 Kernel and Bootloader] link at apc-io page at github.&lt;br /&gt;
&lt;br /&gt;
===== kernel build procedure: =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;export OBJ=/src/apc.io/obj.testing&lt;br /&gt;
export KERNEL_SRC=/src/apc.io/linux-vtwm-testing&lt;br /&gt;
export PATH=~/apc.io/apc-8750-master/u-boot/tools:$PATH&lt;br /&gt;
export PATH=/opt/local/arm/arm-2014.05/bin:$PATH&lt;br /&gt;
cp config.slackinst.vga $OBJ/.config&lt;br /&gt;
cp initramfs_data.cpio.gz $KERNEL_SRC/usr&lt;br /&gt;
&lt;br /&gt;
make -C $KERNEL_SRC O=$OBJ ARCH=arm CROSS_COMPILE=arm-none-eabi- zImage -j 3&lt;br /&gt;
mv $OBJ/arch/arm/boot/zImage $1/$2/ ;&lt;br /&gt;
make -C $KERNEL_SRC O=$OBJ ARCH=arm CROSS_COMPILE=arm-none-eabi- dtbs&lt;br /&gt;
cat $1/$2/zImage $OBJ/arch/arm/boot/dts/wm8750-apc8750.dtb &amp;amp;gt; $1/$2/zImage_w_dtb&lt;br /&gt;
mkimage -A arm -O linux -T kernel -C none -a 0x8000 \&lt;br /&gt;
       -e 0x8000 -n &amp;amp;quot;My Linux&amp;amp;quot; -d $1/$2/zImage_w_dtb $1/$2/uzImage.bin&amp;lt;/pre&amp;gt;&lt;br /&gt;
===== Preparing the cpio archive: =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;wget -c http://ftp.arm.slackware.com/slackwarearm/slackwarearm-14.1/isolinux/uinitrd-kirkwood.img  &lt;br /&gt;
dd if=./uinitrd-kirkwood.img bs=64 skip=1 of=initrd-kirkwood.cpio.gz  &lt;br /&gt;
gunzip initrd-kirkwood.cpio.gz  &amp;lt;/pre&amp;gt;&lt;br /&gt;
==== Procedure used for preparing the Slackware boot kernel. ====&lt;br /&gt;
&lt;br /&gt;
Please refer to the link [http://sourceforge.net/projects/slackwareonapc8750/files/configs/config.slackboot.vga/download config.slackboot.vga] or [http://sourceforge.net/projects/slackwareonapc8750/files/configs/config.slackboot.ttyWMT0/download config.slackboot.ttyWMT0] for the config file which was used. Download and copy this file as .config in $OBJ area before starting the build&lt;br /&gt;
&lt;br /&gt;
===== Kernel build procedure: =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;export OBJ=/src/apc.io/obj.testing&lt;br /&gt;
export KERNEL_SRC=/src/apc.io/linux-vtwm-testing&lt;br /&gt;
export PATH=~/apc.io/apc-8750-master/u-boot/tools:$PATH&lt;br /&gt;
export PATH=/opt/local/arm/arm-2014.05/bin:$PATH&lt;br /&gt;
cp config.slackboot.vga $OBJ/.config&lt;br /&gt;
rm $KERNEL_SRC/usr/initramfs_data.cpio.g&lt;br /&gt;
&lt;br /&gt;
make -C $KERNEL_SRC O=$OBJ ARCH=arm CROSS_COMPILE=arm-none-eabi- zImage -j 3&lt;br /&gt;
mv $OBJ/arch/arm/boot/zImage $1/$2/ ;&lt;br /&gt;
make -C $KERNEL_SRC O=$OBJ ARCH=arm CROSS_COMPILE=arm-none-eabi- dtbs&lt;br /&gt;
cat $1/$2/zImage $OBJ/arch/arm/boot/dts/wm8750-apc8750.dtb &amp;amp;gt; $1/$2/zImage_w_dtb&lt;br /&gt;
mkimage -A arm -O linux -T kernel -C none -a 0x8000 \&lt;br /&gt;
  -e 0x8000 -n &amp;amp;quot;My Linux&amp;amp;quot; -d $1/$2/zImage_w_dtb $1/$2/uzImage.bin&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Additional info ===&lt;br /&gt;
From Slackware-14.1 boot messages:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Linux version 3.13.0-rc8 (ahoh@tampa) (gcc version 4.8.3 20140320 (prerelease) (Sourcery CodeBench Lite 2014.05-28) ) #23 Mon Aug 4 07 :40:48 IST 2014 &lt;br /&gt;
Kernel command line:  mem=460M root=/dev/mmcblk0p2 rootwait nonitrd ro console=tty0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From original boot messages on ttyS0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Linux version 2.6.32.9-default (root@Ryan-VM-Ubuntu) (gcc version 4.5.2 (Sourcery G++ Lite 2011.03-41) ) #1 Wed Dec 5 19:29:52 CST 2012&lt;br /&gt;
Kernel command line: mem=460M root=/dev/mtdblock11 noinitrd rootfstype=yaffs2 rw console=ttyS0,115200n8 mbtotal=52M init=/init&lt;br /&gt;
CPU: ARMv6-compatible processor [410fb767] revision 7 (ARMv7), cr=00c5387f&lt;br /&gt;
...&lt;br /&gt;
Memory: 460MB = 460MB total&lt;br /&gt;
Memory: 460288KB available (5188K code, 1069K data, 136K init, 0K highmem)&lt;br /&gt;
...&lt;br /&gt;
Creating 6 MTD partitions on &amp;amp;quot;mtdsf device&amp;amp;quot;:&lt;br /&gt;
0x000000000000-0x000000d00000 : &amp;amp;quot;filesystem-SF&amp;amp;quot;&lt;br /&gt;
0x000000d00000-0x000000f80000 : &amp;amp;quot;kernel-SF&amp;amp;quot;&lt;br /&gt;
0x000000f80000-0x000000fd0000 : &amp;amp;quot;u-boot-SF&amp;amp;quot;&lt;br /&gt;
0x000000fd0000-0x000000fe0000 : &amp;amp;quot;u-boot env. cfg. 1-SF&amp;amp;quot;&lt;br /&gt;
0x000000fe0000-0x000000ff0000 : &amp;amp;quot;u-boot env. cfg. 2-SF&amp;amp;quot;&lt;br /&gt;
0x000000ff0000-0x000001000000 : &amp;amp;quot;w-load-SF&amp;amp;quot;&lt;br /&gt;
wmt sf controller initial ok&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
NAND device: Manufacturer ID: 0xec, Chip ID: 0xd59476 (Samsung K9GAG08U0F)&lt;br /&gt;
Bad block at 16&lt;br /&gt;
Bad block at 17&lt;br /&gt;
Bad block at 89&lt;br /&gt;
Bad block at 613&lt;br /&gt;
Bad block at 880&lt;br /&gt;
Bad block at 1583&lt;br /&gt;
WMT_nand: uboot no dynamic partitions defined, use default static&lt;br /&gt;
Creating 11 MTD partitions on &amp;amp;quot;WMT.nand&amp;amp;quot;:&lt;br /&gt;
0x000000000000-0x000000100000 : &amp;amp;quot;w-load-NAND&amp;amp;quot;&lt;br /&gt;
0x000000100000-0x000000a00000 : &amp;amp;quot;u-boot env. cfg. 1-NAND&amp;amp;quot;&lt;br /&gt;
0x000000a00000-0x000001300000 : &amp;amp;quot;u-boot-NAND&amp;amp;quot;&lt;br /&gt;
0x000001300000-0x000001b00000 : &amp;amp;quot;kernel-NAND&amp;amp;quot;&lt;br /&gt;
0x000001b00000-0x000002100000 : &amp;amp;quot;initrd-NAND&amp;amp;quot;&lt;br /&gt;
0x000002100000-0x000012100000 : &amp;amp;quot;filesystem-NAND&amp;amp;quot;&lt;br /&gt;
0x000012100000-0x000012300000 : &amp;amp;quot;u-boot-logo&amp;amp;quot;&lt;br /&gt;
0x000012300000-0x000012700000 : &amp;amp;quot;kernel-logo&amp;amp;quot;&lt;br /&gt;
0x000012700000-0x000052700000 : &amp;amp;quot;android-data&amp;amp;quot;&lt;br /&gt;
0x000052700000-0x00005a700000 : &amp;amp;quot;android-cache&amp;amp;quot;&lt;br /&gt;
0x00005a700000-0x000080000000 : &amp;amp;quot;LocalDisk&amp;amp;quot;&lt;br /&gt;
nand initialised ok&lt;br /&gt;
...&lt;br /&gt;
VIA Networking Velocity Family Gigabit Ethernet Adapter Driver Ver. 1.14&lt;br /&gt;
...&lt;br /&gt;
eth0: VIA Networking Velocity Family Gigabit Ethernet Adapter&lt;br /&gt;
...&lt;br /&gt;
WMT_SOC: dai_name=i2s, codec_name=vt1603&lt;br /&gt;
WMT_SOC: single, wmt_i2s_rate=44100&lt;br /&gt;
...&lt;br /&gt;
VT1603 Audio Codec 0.10&lt;br /&gt;
wmt.audio.i2s = vt1603:f2:f2:f1:f1:100&lt;br /&gt;
...&amp;lt;/pre&amp;gt;&lt;/div&gt;</description>
			<pubDate>Thu, 07 Aug 2014 08:22:11 GMT</pubDate>
			<dc:creator>Gv</dc:creator>
			<comments>https://www.slackwiki.com/Talk:Apc8750</comments>
		</item>
		<item>
			<title>Apc8750</title>
			<link>https://www.slackwiki.com/index.php?title=Apc8750&amp;diff=915</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=Apc8750&amp;diff=915</guid>
			<description>&lt;p&gt;Gv: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Installing Slackware on APC-8750 ==&lt;br /&gt;
&lt;br /&gt;
[[Image:http://apc.io/media/apc/img/apc-products-8750.jpg|APC 8750]]&amp;lt;br /&amp;gt;[http://apc.io/media/apc/img/apc-angle.jpg Another photograph of APC 8750]&lt;br /&gt;
&lt;br /&gt;
[https://sourceforge.net/p/slackwareonapc8750 Project Area]&lt;br /&gt;
&lt;br /&gt;
Mainline Linux kernel lacks support for [http://www.wondermedia.com.tw/en/products/platform/soc/wm8750/ Wondermedia WM 8750] currently. However [https://github.com/linux-wmt/linux-vtwm linux-vtwm-testing] kernel available at github has support for Wondermedia 8750 SOC. Since the kernel failed to load initrd cpio archive the normal way, a special method was used for loading the Slackware setup image. ( Installer Kernel booting from embedded initramfs image creates a filesystem on ramdisk, extracts Slackware setup initrd image and chroots to the filesystem on ramdisk ). Briefly, the steps followed in installing Slackware on APC 8750 are :&lt;br /&gt;
&lt;br /&gt;
# '''Installing Slackware.'''&lt;br /&gt;
## Prepare boot media: Create three partitions, first bootable vfat, second reiserfs and third Linux swap.&lt;br /&gt;
## Copy installer boot files: Download and copy uzImage.bin and initrd-kirkwood.cpio to first vfat partition.&lt;br /&gt;
## Download and copy Slackware installation files over to second partition.&lt;br /&gt;
## Boot from the micro sd card prepared, install, and configure Slackware.&lt;br /&gt;
# '''Making new installtion bootable.'''&lt;br /&gt;
## Download and replace the installer kernel with new uzImage.bin for booting from second partition.&lt;br /&gt;
## Reboot.&lt;br /&gt;
&lt;br /&gt;
=== Creating a bootable micro sd card for installation ===&lt;br /&gt;
&lt;br /&gt;
For this you need a custom built kernel and a initramfs image from Slackware for arm distribution - [http://ftp.arm.slackware.com/slackwarearm/slackwarearm-14.1/isolinux/uinitrd-kirkwood.img uinitrd-kirkwood.img].&lt;br /&gt;
&lt;br /&gt;
* [http://sourceforge.net/projects/slackwareonapc8750/files/install/vga/uzImage.bin/download uzImage.bin] for console on VGA monitor.&amp;lt;br /&amp;gt;If this kernel is chosen boot messages will appear on VGA monitor. or&lt;br /&gt;
* [http://sourceforge.net/projects/slackwareonapc8750/files/install/ttyWMT0/uzImage.bin/download uzImage.bin] for console on serial port.&amp;lt;br /&amp;gt;If this kernel is chosen boot messages will appear on the serial port.&lt;br /&gt;
* [http://sourceforge.net/projects/slackwareonapc8750/files/initrd-kirkwood.cpio.gz/download initrd-kirkwood.cpio.gz] initramfs cpio archive.&amp;lt;br /&amp;gt;Download and gunzip this image file.&lt;br /&gt;
* Download [http://arm.slackware.com/getslack/ Slackware 14.1 for arm].&amp;lt;br /&amp;gt;If you prefer, you may download this to micro sd card directly, under slackware14.1 directory.&lt;br /&gt;
&lt;br /&gt;
Download and keep these ready.&lt;br /&gt;
&lt;br /&gt;
==== Preparing the micro sd card. ====&lt;br /&gt;
&lt;br /&gt;
You need at least three partitions, one vfat, one or more Linux partitions, and a Linux swap partition for this method of installation. Here is how the partitions I used look like under fdisk ran on host.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Disk /dev/sdc: 15.9 GB, 15931539456 bytes&lt;br /&gt;
64 heads, 32 sectors/track, 15193 cylinders, total 31116288 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
Disk identifier: 0x00000000&lt;br /&gt;
&lt;br /&gt;
   Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/sdc1   *        2048      206847      102400    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/sdc2          206848    28878847    14336000   83  Linux&lt;br /&gt;
/dev/sdc3        28878848    31116287     1118720   82  Linux swap&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Creating filesystems. ====&lt;br /&gt;
&lt;br /&gt;
* 1st partition - make it bootable, and create a file system using mkfs.vfat&lt;br /&gt;
* 2nd partition - create a reiserfs file system using mkreiserfs ( or other tools for other types )&lt;br /&gt;
&lt;br /&gt;
==== Copying Slackware install files onto second partition. ====&lt;br /&gt;
&lt;br /&gt;
Create a slackware14.1 directory in the reiserfs partition of the micro sd card. Copy Slackware for arm distribution to the slackware14.1 directory, from http://arm.slackware.com/getslack/. Once the preparation is over,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sdc1: &lt;br /&gt;
    /uzImage.bin  &lt;br /&gt;
    /initrd-kirkwood.cpio&lt;br /&gt;
&lt;br /&gt;
sdc2:&lt;br /&gt;
    /slackware14.1/&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== Booting with the installer and installing Slackware. ====&lt;br /&gt;
&lt;br /&gt;
Now you are ready to boot from the new disk just prepared, and install Slackware from the pre mounted directory under /mnt/slackware14.1/slackware ( which is automounted as the selection for target is done ). Put the newly prepared micro sd card in the slot and reboot APC-8750. Once you get the Slackware login prompt, proceed for installation as usual.&lt;br /&gt;
&lt;br /&gt;
==== Configuration ====&lt;br /&gt;
&lt;br /&gt;
For X Windows, use a lightweight window manager like Fluxbox.&lt;br /&gt;
&lt;br /&gt;
=== Post installation preparation. ===&lt;br /&gt;
&lt;br /&gt;
After the installation is done, you need to replace the kernel uzImage.bin with a new one, this time with no initramfs_data.cpio.gz, and CONFIG_CMDLINE= changed for booting from partition 2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;CONFIG_CMDLINE=&amp;amp;quot; mem=460M root=/dev/mmcblk0p2 rootwait nonitrd ro console=tty0&amp;amp;quot;&lt;br /&gt;
CONFIG_CMDLINE_FORCE=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
For this, download one of&lt;br /&gt;
&lt;br /&gt;
* [http://sourceforge.net/projects/slackwareonapc8750/files/boot/vga/uzImage.bin/download uzImage.bin] for console on VGA. Or&lt;br /&gt;
* [http://sourceforge.net/projects/slackwareonapc8750/files/boot/ttyWMT0/uzImage.bin/download uzImage.bin] for console on serial port.&lt;br /&gt;
&lt;br /&gt;
and copy over to the first partition ( bootable vfat one ).&lt;br /&gt;
&lt;br /&gt;
Once Slackware is installed, and the new uzImage.bin is copied over,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sdc1:&lt;br /&gt;
    /uzImage.bin&lt;br /&gt;
    /initrd-kirkwood.cpio  =&amp;amp;gt; not required anymore&lt;br /&gt;
&lt;br /&gt;
sdc2:&lt;br /&gt;
    /bin&lt;br /&gt;
    /boot&lt;br /&gt;
    /cdrom&lt;br /&gt;
    /dev/&lt;br /&gt;
    /etc/&lt;br /&gt;
    /home/&lt;br /&gt;
    /proc/&lt;br /&gt;
    /slackware14.1  =&amp;amp;gt; not required anymore&lt;br /&gt;
    /usr/&lt;br /&gt;
    /var/&amp;lt;/pre&amp;gt;&lt;br /&gt;
You may remove files which are not required anymore, and free up some space. Once that is done, reboot APC-8750 to get Slackware up and running.&lt;br /&gt;
&lt;br /&gt;
=== Information on building kernel and other images. ===&lt;br /&gt;
&lt;br /&gt;
Please also refer to [http://sourceforge.net/projects/slackwareonapc8750/files/build.sh/download build.sh] script used to help the build procedure.&lt;br /&gt;
&lt;br /&gt;
==== Detailed description of how Slackware install kernel was prepared. ====&lt;br /&gt;
&lt;br /&gt;
===== Getting the Kernel source code. =====&lt;br /&gt;
&lt;br /&gt;
I used [https://github.com/linux-wmt/linux-vtwm linux-vtwm-testing]. Zipfile you download from the site may cause problem when extracting on Linux. In my case couple of files were missing. One option is to use p7zip or other unzip program instead of the default zip utility in Slackware. You may also get a tar.gz file using:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;wget --no-check-certificate \&lt;br /&gt;
    https://github.com/linux-wmt/linux-vtwm/archive/testing.tar.gz&amp;lt;/pre&amp;gt;&lt;br /&gt;
Please refer to the link [http://sourceforge.net/projects/slackwareonapc8750/files/configs/config.slackinst.vga/download config.slackinst.vga] or [http://sourceforge.net/projects/slackwareonapc8750/files/configs/config.slackinst.ttyWMT0/download config.slackinst.ttyWMT0] for the config file which was used.&lt;br /&gt;
&lt;br /&gt;
===== Details of how initramfs_data.cpio.gz was prepared. =====&lt;br /&gt;
&lt;br /&gt;
This method also require a small initramfs image prepared from the boot media available at [http://apc.io/library/ apc.io library]. Download it from here [http://sourceforge.net/projects/slackwareonapc8750/files/initramfs_data.cpio.gz/download initramfs_data.cpio.gz]&amp;lt;br /&amp;gt;or&amp;lt;br /&amp;gt;Use the following init scrip with a stripped down version of initrd.gz in [http://apc.io/media/apc/library/8750/apc-firmware-v1.0.2.zip apc-firmware-v1.0.2] from [http://apc.io/library/ apc.io library].&lt;br /&gt;
&lt;br /&gt;
init:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/busybox sh&lt;br /&gt;
/bin/busybox mount -t proc /proc&lt;br /&gt;
/bin/busybox mount -t sys /sys&lt;br /&gt;
/bin/busybox echo /sbin/mdev &amp;amp;gt; /proc/sys/kernel/hotplug&lt;br /&gt;
/bin/busybox mdev -s&lt;br /&gt;
/bin/busybox --install&lt;br /&gt;
mkfs.ext2 /dev/ram0&lt;br /&gt;
mkdir /root&lt;br /&gt;
mount /dev/ram0 /root&lt;br /&gt;
cd /root&lt;br /&gt;
mkdir /flash&lt;br /&gt;
mount /dev/mmcblk0p1 /flash     &lt;br /&gt;
cpio -id &amp;amp;lt; /flash/initrd-kirkwood.cpio&lt;br /&gt;
umount /flash&lt;br /&gt;
exec chroot /root /bin/busybox init&lt;br /&gt;
exec /bin/busybox init&amp;lt;/pre&amp;gt;&lt;br /&gt;
Commands to build initramfs_data.cpio.gz:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;gunzip initrd.gz&lt;br /&gt;
mkdir initramfs_data&lt;br /&gt;
mount -o loop initrd initramfs_data&lt;br /&gt;
# create initramfs_data/init as shown above&lt;br /&gt;
sh build.sh init&lt;br /&gt;
chmod a+x initramfs_data/init&lt;br /&gt;
sync&lt;br /&gt;
(cd initramfs_data ; find . | cpio -o -H newc | gzip  &amp;amp;gt; ../initramfs_data.cpio.gz )&amp;lt;/pre&amp;gt;&lt;br /&gt;
Copy [http://sourceforge.net/projects/slackwareonapc8750/files/initramfs_data.cpio.gz/download initramfs_data.cpio.gz] cpio archive to $KERNEL_SRC/usr area.&lt;br /&gt;
&lt;br /&gt;
Please note that the kernel uses a CONFIG_CMDLINE= for VGA:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;CONFIG_CMDLINE=&amp;amp;quot; mem=440M console=tty0 mbtotal=52M&amp;amp;quot;&lt;br /&gt;
CONFIG_CMDLINE_FORCE=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
for serial:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;CONFIG_CMDLINE=&amp;amp;quot; mem=440M console=ttyWMT0,115200n8 mbtotal=52M&amp;amp;quot;&lt;br /&gt;
CONFIG_CMDLINE_FORCE=y&amp;lt;/pre&amp;gt;&lt;br /&gt;
kernel is compiled on the host, using a cross compiler [http://www.elinux.org/ARMCompilers Sourcery CodeBench Lite 2014.05-28] for [http://www.arm.com/ arm]. For mkimage tool refer to [http://github.com/apc-io/apc-8750 Kernel and Bootloader] link at apc-io page at github.&lt;br /&gt;
&lt;br /&gt;
===== kernel build procedure: =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;export OBJ=/src/apc.io/obj.testing&lt;br /&gt;
export KERNEL_SRC=/src/apc.io/linux-vtwm-testing&lt;br /&gt;
export PATH=~/apc.io/apc-8750-master/u-boot/tools:$PATH&lt;br /&gt;
export PATH=/opt/local/arm/arm-2014.05/bin:$PATH&lt;br /&gt;
cp config.slackinst.vga $OBJ/.config&lt;br /&gt;
cp initramfs_data.cpio.gz $KERNEL_SRC/usr&lt;br /&gt;
&lt;br /&gt;
make -C $KERNEL_SRC O=$OBJ ARCH=arm CROSS_COMPILE=arm-none-eabi- zImage -j 3&lt;br /&gt;
mv $OBJ/arch/arm/boot/zImage $1/$2/ ;&lt;br /&gt;
make -C $KERNEL_SRC O=$OBJ ARCH=arm CROSS_COMPILE=arm-none-eabi- dtbs&lt;br /&gt;
cat $1/$2/zImage $OBJ/arch/arm/boot/dts/wm8750-apc8750.dtb &amp;amp;gt; $1/$2/zImage_w_dtb&lt;br /&gt;
mkimage -A arm -O linux -T kernel -C none -a 0x8000 \&lt;br /&gt;
       -e 0x8000 -n &amp;amp;quot;My Linux&amp;amp;quot; -d $1/$2/zImage_w_dtb $1/$2/uzImage.bin&amp;lt;/pre&amp;gt;&lt;br /&gt;
===== Preparing the cpio archive: =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;wget -c http://ftp.arm.slackware.com/slackwarearm/slackwarearm-14.1/isolinux/uinitrd-kirkwood.img  &lt;br /&gt;
dd if=./uinitrd-kirkwood.img bs=64 skip=1 of=initrd-kirkwood.cpio.gz  &lt;br /&gt;
gunzip initrd-kirkwood.cpio.gz  &amp;lt;/pre&amp;gt;&lt;br /&gt;
==== Procedure used for preparing the Slackware boot kernel. ====&lt;br /&gt;
&lt;br /&gt;
Please refer to the link [http://sourceforge.net/projects/slackwareonapc8750/files/configs/config.slackboot.vga/download config.slackboot.vga] or [http://sourceforge.net/projects/slackwareonapc8750/files/configs/config.slackboot.ttyWMT0/download config.slackboot.ttyWMT0] for the config file which was used. Download and copy this file as .config in $OBJ area before starting the build&lt;br /&gt;
&lt;br /&gt;
===== Kernel build procedure: =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;export OBJ=/src/apc.io/obj.testing&lt;br /&gt;
export KERNEL_SRC=/src/apc.io/linux-vtwm-testing&lt;br /&gt;
export PATH=~/apc.io/apc-8750-master/u-boot/tools:$PATH&lt;br /&gt;
export PATH=/opt/local/arm/arm-2014.05/bin:$PATH&lt;br /&gt;
cp config.slackboot.vga $OBJ/.config&lt;br /&gt;
rm $KERNEL_SRC/usr/initramfs_data.cpio.g&lt;br /&gt;
&lt;br /&gt;
make -C $KERNEL_SRC O=$OBJ ARCH=arm CROSS_COMPILE=arm-none-eabi- zImage -j 3&lt;br /&gt;
mv $OBJ/arch/arm/boot/zImage $1/$2/ ;&lt;br /&gt;
make -C $KERNEL_SRC O=$OBJ ARCH=arm CROSS_COMPILE=arm-none-eabi- dtbs&lt;br /&gt;
cat $1/$2/zImage $OBJ/arch/arm/boot/dts/wm8750-apc8750.dtb &amp;amp;gt; $1/$2/zImage_w_dtb&lt;br /&gt;
mkimage -A arm -O linux -T kernel -C none -a 0x8000 \&lt;br /&gt;
  -e 0x8000 -n &amp;amp;quot;My Linux&amp;amp;quot; -d $1/$2/zImage_w_dtb $1/$2/uzImage.bin&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Additional info ===&lt;br /&gt;
&lt;br /&gt;
From original boot messages on ttyS0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Kernel command line: mem=460M root=/dev/mtdblock11 noinitrd rootfstype=yaffs2 rw console=ttyS0,115200n8 mbtotal=52M init=/init&lt;br /&gt;
Linux version 2.6.32.9-default (root@Ryan-VM-Ubuntu) (gcc version 4.5.2 (Sourcery G++ Lite 2011.03-41) ) #1 Wed Dec 5 19:29:52 CST 2012&lt;br /&gt;
CPU: ARMv6-compatible processor [410fb767] revision 7 (ARMv7), cr=00c5387f&lt;br /&gt;
...&lt;br /&gt;
Memory: 460MB = 460MB total&lt;br /&gt;
Memory: 460288KB available (5188K code, 1069K data, 136K init, 0K highmem)&lt;br /&gt;
...&lt;br /&gt;
Creating 6 MTD partitions on &amp;amp;quot;mtdsf device&amp;amp;quot;:&lt;br /&gt;
0x000000000000-0x000000d00000 : &amp;amp;quot;filesystem-SF&amp;amp;quot;&lt;br /&gt;
0x000000d00000-0x000000f80000 : &amp;amp;quot;kernel-SF&amp;amp;quot;&lt;br /&gt;
0x000000f80000-0x000000fd0000 : &amp;amp;quot;u-boot-SF&amp;amp;quot;&lt;br /&gt;
0x000000fd0000-0x000000fe0000 : &amp;amp;quot;u-boot env. cfg. 1-SF&amp;amp;quot;&lt;br /&gt;
0x000000fe0000-0x000000ff0000 : &amp;amp;quot;u-boot env. cfg. 2-SF&amp;amp;quot;&lt;br /&gt;
0x000000ff0000-0x000001000000 : &amp;amp;quot;w-load-SF&amp;amp;quot;&lt;br /&gt;
wmt sf controller initial ok&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
NAND device: Manufacturer ID: 0xec, Chip ID: 0xd59476 (Samsung K9GAG08U0F)&lt;br /&gt;
Bad block at 16&lt;br /&gt;
Bad block at 17&lt;br /&gt;
Bad block at 89&lt;br /&gt;
Bad block at 613&lt;br /&gt;
Bad block at 880&lt;br /&gt;
Bad block at 1583&lt;br /&gt;
WMT_nand: uboot no dynamic partitions defined, use default static&lt;br /&gt;
Creating 11 MTD partitions on &amp;amp;quot;WMT.nand&amp;amp;quot;:&lt;br /&gt;
0x000000000000-0x000000100000 : &amp;amp;quot;w-load-NAND&amp;amp;quot;&lt;br /&gt;
0x000000100000-0x000000a00000 : &amp;amp;quot;u-boot env. cfg. 1-NAND&amp;amp;quot;&lt;br /&gt;
0x000000a00000-0x000001300000 : &amp;amp;quot;u-boot-NAND&amp;amp;quot;&lt;br /&gt;
0x000001300000-0x000001b00000 : &amp;amp;quot;kernel-NAND&amp;amp;quot;&lt;br /&gt;
0x000001b00000-0x000002100000 : &amp;amp;quot;initrd-NAND&amp;amp;quot;&lt;br /&gt;
0x000002100000-0x000012100000 : &amp;amp;quot;filesystem-NAND&amp;amp;quot;&lt;br /&gt;
0x000012100000-0x000012300000 : &amp;amp;quot;u-boot-logo&amp;amp;quot;&lt;br /&gt;
0x000012300000-0x000012700000 : &amp;amp;quot;kernel-logo&amp;amp;quot;&lt;br /&gt;
0x000012700000-0x000052700000 : &amp;amp;quot;android-data&amp;amp;quot;&lt;br /&gt;
0x000052700000-0x00005a700000 : &amp;amp;quot;android-cache&amp;amp;quot;&lt;br /&gt;
0x00005a700000-0x000080000000 : &amp;amp;quot;LocalDisk&amp;amp;quot;&lt;br /&gt;
nand initialised ok&lt;br /&gt;
...&lt;br /&gt;
VIA Networking Velocity Family Gigabit Ethernet Adapter Driver Ver. 1.14&lt;br /&gt;
...&lt;br /&gt;
eth0: VIA Networking Velocity Family Gigabit Ethernet Adapter&lt;br /&gt;
...&lt;br /&gt;
WMT_SOC: dai_name=i2s, codec_name=vt1603&lt;br /&gt;
WMT_SOC: single, wmt_i2s_rate=44100&lt;br /&gt;
...&lt;br /&gt;
VT1603 Audio Codec 0.10&lt;br /&gt;
wmt.audio.i2s = vt1603:f2:f2:f1:f1:100&lt;br /&gt;
...&amp;lt;/pre&amp;gt;&lt;/div&gt;</description>
			<pubDate>Thu, 07 Aug 2014 07:37:54 GMT</pubDate>
			<dc:creator>Gv</dc:creator>
			<comments>https://www.slackwiki.com/Talk:Apc8750</comments>
		</item>
		<item>
			<title>Apc8750</title>
			<link>https://www.slackwiki.com/index.php?title=Apc8750&amp;diff=914</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=Apc8750&amp;diff=914</guid>
			<description>&lt;p&gt;Gv: /* links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Installing Slackware on apc-8750 ==&lt;br /&gt;
&lt;br /&gt;
Mainline linux kernel lacks support for Wondermedia 8750 currently. &lt;br /&gt;
However linux-vtwm kernel available at github has support for Wondermedia 8750 SOC.&lt;br /&gt;
Since the kernel failed to load initrd cpio archive the normal way, a special method&lt;br /&gt;
was used for loading the setup image. &lt;br /&gt;
&lt;br /&gt;
* Create three partitions, first bootable vfat, second reiserfs and third Linux swap.&lt;br /&gt;
* Download and copy uzImage.bin and initrd-kirkwood.cpio to first vfat partition&lt;br /&gt;
* Download and copy Slackware installation files over to second partition&lt;br /&gt;
* Boot from the micro sd card prepared, install, and configure Slackware&lt;br /&gt;
* Download and replace the boot kernel with new uzImage.bin for booting from &lt;br /&gt;
second partition.&lt;br /&gt;
&lt;br /&gt;
== Creating a bootable micro sd card ==&lt;br /&gt;
  &lt;br /&gt;
For this you need a custom built kernel and a initramfs image from Slackware for &lt;br /&gt;
arm distribution - uinitrd-kirkwood.img&lt;br /&gt;
 &lt;br /&gt;
             * uzImage.bin&lt;br /&gt;
                   [[Detailed description of how uzImage.bin was prepared.]]&lt;br /&gt;
&lt;br /&gt;
             * initrd-kirkwood.cpio&lt;br /&gt;
                   [[Detailed description of how initrd-kirkwood.cpio was prepared.]]&lt;br /&gt;
&lt;br /&gt;
Download and keep these files ready&lt;br /&gt;
&lt;br /&gt;
=== Preparing the micro sd card ===&lt;br /&gt;
&lt;br /&gt;
You need at least three partitions, one vfat, one or more Linux partitions, and a &lt;br /&gt;
Linux swap partition for this method of installation. Here is how the partitions I&lt;br /&gt;
used look like under fdisk ran on host.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Disk /dev/sdc: 15.9 GB, 15931539456 bytes&lt;br /&gt;
64 heads, 32 sectors/track, 15193 cylinders, total 31116288 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
Disk identifier: 0x00000000&lt;br /&gt;
&lt;br /&gt;
   Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/sdc1   *        2048      206847      102400    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/sdc2          206848    28878847    14336000   83  Linux&lt;br /&gt;
/dev/sdc3        28878848    31116287     1118720   82  Linux swap&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Creating filesystem:&lt;br /&gt;
&lt;br /&gt;
* 1st partition: make it bootable, and create a file system using mkfs.vfat&lt;br /&gt;
* 2nd partition: create a reiserfs ( or other ) file system using mkreiserfs&lt;br /&gt;
&lt;br /&gt;
==== Detailed description of how Slackware install kernel was prepared. ====&lt;br /&gt;
&lt;br /&gt;
I used linux-vtwm-testing available at https://github.com/linux-wmt/linux-vtwm&lt;br /&gt;
Zipfile you download from the site may cause problem when extracting - few files&lt;br /&gt;
may be missing!. One option is to use p7zip or other unzip program instead of the&lt;br /&gt;
default zip utility in Slackware. You may also get a tar.gz file using&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget --no-check-certificate \&lt;br /&gt;
    https://github.com/linux-wmt/linux-vtwm/archive/testing.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please refer to the link [[config.slackinstall.vga]] for the config file which was used. This method also require a small initramfs image prepared from the boot media available at apc.io library. download it from here : [[initramfs_data.cpio.gz]] or&lt;br /&gt;
use the following init scrip with the initrd.gz from apc.io library.&lt;br /&gt;
&lt;br /&gt;
init:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        #!/bin/busybox sh&lt;br /&gt;
        /bin/busybox mount -t proc /proc&lt;br /&gt;
        /bin/busybox mount -t sys /sys&lt;br /&gt;
        /bin/busybox echo /sbin/mdev &amp;gt; /proc/sys/kernel/hotplug&lt;br /&gt;
        /bin/busybox mdev -s&lt;br /&gt;
        /bin/busybox --install&lt;br /&gt;
        mkfs.ext2 /dev/ram0&lt;br /&gt;
        mkdir /root&lt;br /&gt;
        mount /dev/ram0 /root&lt;br /&gt;
        cd /root&lt;br /&gt;
        mkdir /flash&lt;br /&gt;
        mount /dev/mmcblk0p1 /flash&lt;br /&gt;
        cpio -id &amp;lt; /flash/initrd-kirkwood.cpio&lt;br /&gt;
        exec chroot /root /bin/busybox init&lt;br /&gt;
        exec /bin/busybox init&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy the initramfs_data.cpio.gz for to $KERNEL_SRC/usr area.&lt;br /&gt;
&lt;br /&gt;
===== Details of how initramfs_data.cpio.gz was prepared. =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
gunzip initrd.gz&lt;br /&gt;
mkdir initramfs_data&lt;br /&gt;
mount -o loop initrd initramfs_data&lt;br /&gt;
&lt;br /&gt;
create initramfs_data/init as shown above&lt;br /&gt;
&lt;br /&gt;
chmod a+x initramfs_data/init&lt;br /&gt;
sync&lt;br /&gt;
(cd initramfs_data ; find . | cpio -o -H newc | gzip  &amp;gt; ../initramfs_data.cpio.gz )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note that the kernel uses a CONFIG_CMDLINE=&lt;br /&gt;
for vga:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONFIG_CMDLINE=&amp;quot; mem=440M console=tty0 mbtotal=52M&amp;quot;&lt;br /&gt;
CONFIG_CMDLINE_FORCE=y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
for serial:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONFIG_CMDLINE=&amp;quot; mem=440M console=ttyWMT0,115200n8 mbtotal=52M&amp;quot;&lt;br /&gt;
CONFIG_CMDLINE_FORCE=y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
kernel is compiled on the host, using arm-2014.05 from arm.&lt;br /&gt;
&lt;br /&gt;
kernel build procedure:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OBJ=/src/apc.io/obj.testing&lt;br /&gt;
export KERNEL_SRC=/src/apc.io/linux-vtwm-testing&lt;br /&gt;
export PATH=~/apc.io/apc-8750-master/u-boot/tools:$PATH&lt;br /&gt;
export PATH=/opt/local/arm/arm-2014.05/bin:$PATH&lt;br /&gt;
cp config.slackinst.vga $OBJ/.config&lt;br /&gt;
cp initramfs_data.cpio.gz $KERNEL_SRC/usr&lt;br /&gt;
&lt;br /&gt;
make -C $KERNEL_SRC O=$OBJ ARCH=arm CROSS_COMPILE=arm-none-eabi- zImage -j 3&lt;br /&gt;
mv $OBJ/arch/arm/boot/zImage $1/$2/ ;&lt;br /&gt;
make -C $KERNEL_SRC O=$OBJ ARCH=arm CROSS_COMPILE=arm-none-eabi- dtbs&lt;br /&gt;
cat $1/$2/zImage $OBJ/arch/arm/boot/dts/wm8750-apc8750.dtb &amp;gt; $1/$2/zImage_w_dtb&lt;br /&gt;
mkimage -A arm -O linux -T kernel -C none -a 0x8000 \&lt;br /&gt;
     -e 0x8000 -n &amp;quot;My Linux&amp;quot; -d $1/$2/zImage_w_dtb $1/$2/uzImage.bin&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Preparing the cpio archive:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        download http://ftp.arm.slackware.com/slackwarearm/slackwarearm-14.1/isolinux/uinitrd-kirkwood.img&lt;br /&gt;
        dd if=./uinitrd-kirkwood.img bs=64 skip=1 of=initrd-kirkwood.cpio.gz&lt;br /&gt;
        gunzip initrd-kirkwood.cpio.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Copying Slackware install files onto second partition ==&lt;br /&gt;
&lt;br /&gt;
Create a slackware14.1 directory in the reiserfs partition of the micro sd card.&lt;br /&gt;
Copy Slackware for arm distribution to the slackware14.1 directory, from  http://ftp.arm.slackware.com/slackwarearm/slackwarearm-14.1/&lt;br /&gt;
&lt;br /&gt;
      sdc1:&lt;br /&gt;
                /uzImage.bin&lt;br /&gt;
                /initrd-kirkwood.cpio&lt;br /&gt;
      sdc2:&lt;br /&gt;
                /slackware14.1/&lt;br /&gt;
&lt;br /&gt;
== Booting with the installer and installing Slackware ==&lt;br /&gt;
&lt;br /&gt;
Now you are ready to boot the from the new disk just prepared, and install Slackware from the pre mounted directory under /mnt/slackware14.1/slackware ( which is automounted as the selection for target is done ). Put the newly prepared micro sd card in the slot and reboot apc-8750. Once you get the Slackware login prompt, proceed as usual.&lt;br /&gt;
&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
&lt;br /&gt;
For X Windows, use a window manager like fluxbox.&lt;br /&gt;
&lt;br /&gt;
== Post installation preparation ==&lt;br /&gt;
&lt;br /&gt;
After the installation is done, you need to replace the kernel uzImage.bin with a new&lt;br /&gt;
one, this time with no initramfs_data.cpio.gz, and CONFIG_CMDLINE= changed for bootin from partition 2. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONFIG_CMDLINE=&amp;quot; mem=460M root=/dev/mmcblk0p2 rootwait nonitrd ro console=tty0&amp;quot;&lt;br /&gt;
CONFIG_CMDLINE_FORCE=y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For this, download uzImage.bin from here, and copy over&lt;br /&gt;
to the first partition ( bootable vfat one ). Once that is done reboot the machine once again, to get Slackware going!&lt;br /&gt;
&lt;br /&gt;
=== Procedure used for preparing the Slackware boot kernel ===&lt;br /&gt;
&lt;br /&gt;
Please refer to the link [[config.slackboot.vga]] for the config file which was used.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OBJ=/src/apc.io/obj.testing&lt;br /&gt;
export KERNEL_SRC=/src/apc.io/linux-vtwm-testing&lt;br /&gt;
export PATH=~/apc.io/apc-8750-master/u-boot/tools:$PATH&lt;br /&gt;
export PATH=/opt/local/arm/arm-2014.05/bin:$PATH&lt;br /&gt;
cp config.slackboot.vga $OBJ/.config&lt;br /&gt;
rm $KERNEL_SRC/usr/initramfs_data.cpio.g&lt;br /&gt;
&lt;br /&gt;
make -C $KERNEL_SRC O=$OBJ ARCH=arm CROSS_COMPILE=arm-none-eabi- zImage -j 3&lt;br /&gt;
mv $OBJ/arch/arm/boot/zImage $1/$2/ ;&lt;br /&gt;
make -C $KERNEL_SRC O=$OBJ ARCH=arm CROSS_COMPILE=arm-none-eabi- dtbs&lt;br /&gt;
cat $1/$2/zImage $OBJ/arch/arm/boot/dts/wm8750-apc8750.dtb &amp;gt; $1/$2/zImage_w_dtb&lt;br /&gt;
mkimage -A arm -O linux -T kernel -C none -a 0x8000 \&lt;br /&gt;
     -e 0x8000 -n &amp;quot;My Linux&amp;quot; -d $1/$2/zImage_w_dtb $1/$2/uzImage.bin&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once Slackware is installed, and the  new uzImage.bin is copied over&lt;br /&gt;
&lt;br /&gt;
    sdc1:&lt;br /&gt;
              /uzImage.bin&lt;br /&gt;
              /initrd-kirkwood.cpio  =&amp;gt; not required anymore&lt;br /&gt;
&lt;br /&gt;
    sdc2:&lt;br /&gt;
&lt;br /&gt;
              /bin&lt;br /&gt;
              /boot&lt;br /&gt;
              /cdrom&lt;br /&gt;
              /dev/&lt;br /&gt;
              /etc/&lt;br /&gt;
              /home/&lt;br /&gt;
              /proc/&lt;br /&gt;
              /slackware14.1  =&amp;gt; not required anymore&lt;br /&gt;
              /usr/&lt;br /&gt;
              /var/&lt;br /&gt;
&lt;br /&gt;
You may remove files which are not required anymore, and free up some space. Once that is done, reboot apc-8750. &lt;br /&gt;
== links ==&lt;br /&gt;
&lt;br /&gt;
http://apc.io/products/8750a/&lt;br /&gt;
&lt;br /&gt;
http://apc.io/library/&lt;br /&gt;
&lt;br /&gt;
https://github.com/linux-wmt/linux-vtwm&lt;br /&gt;
&lt;br /&gt;
http://arm.slackware.com/getslack/&lt;br /&gt;
&lt;br /&gt;
http://ftp.arm.slackware.com/slackwarearm/&lt;br /&gt;
&lt;br /&gt;
http://sourceforge.net/projects/slackwareonapc8750/files/&lt;br /&gt;
&lt;br /&gt;
http://sourceforge.net/projects/slackwareonapc8750/files/initrd-kirkwood.cpio.gz/download&lt;br /&gt;
&lt;br /&gt;
http://sourceforge.net/projects/slackwareonapc8750/files/install/vga/uzImage.bin/download&lt;br /&gt;
&lt;br /&gt;
http://sourceforge.net/projects/slackwareonapc8750/files/boot/vga/uzImage.bin/download&lt;br /&gt;
&lt;br /&gt;
http://sourceforge.net/projects/slackwareonapc8750/files/configs/config.slackinst.vga/download&lt;br /&gt;
&lt;br /&gt;
http://sourceforge.net/projects/slackwareonapc8750/files/configs/config.slackboot.vga/download&lt;br /&gt;
&lt;br /&gt;
http://sourceforge.net/projects/slackwareonapc8750/files/configs/config.slackinst.ttyWMT0/download&lt;br /&gt;
&lt;br /&gt;
http://sourceforge.net/projects/slackwareonapc8750/files/configs/config.slackboot.ttyWMT0/download&lt;br /&gt;
&lt;br /&gt;
http://sourceforge.net/projects/slackwareonapc8750/files/initramfs_data.cpio.gz/download&lt;/div&gt;</description>
			<pubDate>Mon, 04 Aug 2014 03:11:36 GMT</pubDate>
			<dc:creator>Gv</dc:creator>
			<comments>https://www.slackwiki.com/Talk:Apc8750</comments>
		</item>
		<item>
			<title>Apc8750</title>
			<link>https://www.slackwiki.com/index.php?title=Apc8750&amp;diff=913</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=Apc8750&amp;diff=913</guid>
			<description>&lt;p&gt;Gv: /* links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Installing Slackware on apc-8750 ==&lt;br /&gt;
&lt;br /&gt;
Mainline linux kernel lacks support for Wondermedia 8750 currently. &lt;br /&gt;
However linux-vtwm kernel available at github has support for Wondermedia 8750 SOC.&lt;br /&gt;
Since the kernel failed to load initrd cpio archive the normal way, a special method&lt;br /&gt;
was used for loading the setup image. &lt;br /&gt;
&lt;br /&gt;
* Create three partitions, first bootable vfat, second reiserfs and third Linux swap.&lt;br /&gt;
* Download and copy uzImage.bin and initrd-kirkwood.cpio to first vfat partition&lt;br /&gt;
* Download and copy Slackware installation files over to second partition&lt;br /&gt;
* Boot from the micro sd card prepared, install, and configure Slackware&lt;br /&gt;
* Download and replace the boot kernel with new uzImage.bin for booting from &lt;br /&gt;
second partition.&lt;br /&gt;
&lt;br /&gt;
== Creating a bootable micro sd card ==&lt;br /&gt;
  &lt;br /&gt;
For this you need a custom built kernel and a initramfs image from Slackware for &lt;br /&gt;
arm distribution - uinitrd-kirkwood.img&lt;br /&gt;
 &lt;br /&gt;
             * uzImage.bin&lt;br /&gt;
                   [[Detailed description of how uzImage.bin was prepared.]]&lt;br /&gt;
&lt;br /&gt;
             * initrd-kirkwood.cpio&lt;br /&gt;
                   [[Detailed description of how initrd-kirkwood.cpio was prepared.]]&lt;br /&gt;
&lt;br /&gt;
Download and keep these files ready&lt;br /&gt;
&lt;br /&gt;
=== Preparing the micro sd card ===&lt;br /&gt;
&lt;br /&gt;
You need at least three partitions, one vfat, one or more Linux partitions, and a &lt;br /&gt;
Linux swap partition for this method of installation. Here is how the partitions I&lt;br /&gt;
used look like under fdisk ran on host.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Disk /dev/sdc: 15.9 GB, 15931539456 bytes&lt;br /&gt;
64 heads, 32 sectors/track, 15193 cylinders, total 31116288 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
Disk identifier: 0x00000000&lt;br /&gt;
&lt;br /&gt;
   Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/sdc1   *        2048      206847      102400    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/sdc2          206848    28878847    14336000   83  Linux&lt;br /&gt;
/dev/sdc3        28878848    31116287     1118720   82  Linux swap&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Creating filesystem:&lt;br /&gt;
&lt;br /&gt;
* 1st partition: make it bootable, and create a file system using mkfs.vfat&lt;br /&gt;
* 2nd partition: create a reiserfs ( or other ) file system using mkreiserfs&lt;br /&gt;
&lt;br /&gt;
==== Detailed description of how Slackware install kernel was prepared. ====&lt;br /&gt;
&lt;br /&gt;
I used linux-vtwm-testing available at https://github.com/linux-wmt/linux-vtwm&lt;br /&gt;
Zipfile you download from the site may cause problem when extracting - few files&lt;br /&gt;
may be missing!. One option is to use p7zip or other unzip program instead of the&lt;br /&gt;
default zip utility in Slackware. You may also get a tar.gz file using&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget --no-check-certificate \&lt;br /&gt;
    https://github.com/linux-wmt/linux-vtwm/archive/testing.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please refer to the link [[config.slackinstall.vga]] for the config file which was used. This method also require a small initramfs image prepared from the boot media available at apc.io library. download it from here : [[initramfs_data.cpio.gz]] or&lt;br /&gt;
use the following init scrip with the initrd.gz from apc.io library.&lt;br /&gt;
&lt;br /&gt;
init:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        #!/bin/busybox sh&lt;br /&gt;
        /bin/busybox mount -t proc /proc&lt;br /&gt;
        /bin/busybox mount -t sys /sys&lt;br /&gt;
        /bin/busybox echo /sbin/mdev &amp;gt; /proc/sys/kernel/hotplug&lt;br /&gt;
        /bin/busybox mdev -s&lt;br /&gt;
        /bin/busybox --install&lt;br /&gt;
        mkfs.ext2 /dev/ram0&lt;br /&gt;
        mkdir /root&lt;br /&gt;
        mount /dev/ram0 /root&lt;br /&gt;
        cd /root&lt;br /&gt;
        mkdir /flash&lt;br /&gt;
        mount /dev/mmcblk0p1 /flash&lt;br /&gt;
        cpio -id &amp;lt; /flash/initrd-kirkwood.cpio&lt;br /&gt;
        exec chroot /root /bin/busybox init&lt;br /&gt;
        exec /bin/busybox init&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy the initramfs_data.cpio.gz for to $KERNEL_SRC/usr area.&lt;br /&gt;
&lt;br /&gt;
===== Details of how initramfs_data.cpio.gz was prepared. =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
gunzip initrd.gz&lt;br /&gt;
mkdir initramfs_data&lt;br /&gt;
mount -o loop initrd initramfs_data&lt;br /&gt;
&lt;br /&gt;
create initramfs_data/init as shown above&lt;br /&gt;
&lt;br /&gt;
chmod a+x initramfs_data/init&lt;br /&gt;
sync&lt;br /&gt;
(cd initramfs_data ; find . | cpio -o -H newc | gzip  &amp;gt; ../initramfs_data.cpio.gz )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note that the kernel uses a CONFIG_CMDLINE=&lt;br /&gt;
for vga:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONFIG_CMDLINE=&amp;quot; mem=440M console=tty0 mbtotal=52M&amp;quot;&lt;br /&gt;
CONFIG_CMDLINE_FORCE=y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
for serial:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONFIG_CMDLINE=&amp;quot; mem=440M console=ttyWMT0,115200n8 mbtotal=52M&amp;quot;&lt;br /&gt;
CONFIG_CMDLINE_FORCE=y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
kernel is compiled on the host, using arm-2014.05 from arm.&lt;br /&gt;
&lt;br /&gt;
kernel build procedure:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OBJ=/src/apc.io/obj.testing&lt;br /&gt;
export KERNEL_SRC=/src/apc.io/linux-vtwm-testing&lt;br /&gt;
export PATH=~/apc.io/apc-8750-master/u-boot/tools:$PATH&lt;br /&gt;
export PATH=/opt/local/arm/arm-2014.05/bin:$PATH&lt;br /&gt;
cp config.slackinst.vga $OBJ/.config&lt;br /&gt;
cp initramfs_data.cpio.gz $KERNEL_SRC/usr&lt;br /&gt;
&lt;br /&gt;
make -C $KERNEL_SRC O=$OBJ ARCH=arm CROSS_COMPILE=arm-none-eabi- zImage -j 3&lt;br /&gt;
mv $OBJ/arch/arm/boot/zImage $1/$2/ ;&lt;br /&gt;
make -C $KERNEL_SRC O=$OBJ ARCH=arm CROSS_COMPILE=arm-none-eabi- dtbs&lt;br /&gt;
cat $1/$2/zImage $OBJ/arch/arm/boot/dts/wm8750-apc8750.dtb &amp;gt; $1/$2/zImage_w_dtb&lt;br /&gt;
mkimage -A arm -O linux -T kernel -C none -a 0x8000 \&lt;br /&gt;
     -e 0x8000 -n &amp;quot;My Linux&amp;quot; -d $1/$2/zImage_w_dtb $1/$2/uzImage.bin&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Preparing the cpio archive:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        download http://ftp.arm.slackware.com/slackwarearm/slackwarearm-14.1/isolinux/uinitrd-kirkwood.img&lt;br /&gt;
        dd if=./uinitrd-kirkwood.img bs=64 skip=1 of=initrd-kirkwood.cpio.gz&lt;br /&gt;
        gunzip initrd-kirkwood.cpio.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Copying Slackware install files onto second partition ==&lt;br /&gt;
&lt;br /&gt;
Create a slackware14.1 directory in the reiserfs partition of the micro sd card.&lt;br /&gt;
Copy Slackware for arm distribution to the slackware14.1 directory, from  http://ftp.arm.slackware.com/slackwarearm/slackwarearm-14.1/&lt;br /&gt;
&lt;br /&gt;
      sdc1:&lt;br /&gt;
                /uzImage.bin&lt;br /&gt;
                /initrd-kirkwood.cpio&lt;br /&gt;
      sdc2:&lt;br /&gt;
                /slackware14.1/&lt;br /&gt;
&lt;br /&gt;
== Booting with the installer and installing Slackware ==&lt;br /&gt;
&lt;br /&gt;
Now you are ready to boot the from the new disk just prepared, and install Slackware from the pre mounted directory under /mnt/slackware14.1/slackware ( which is automounted as the selection for target is done ). Put the newly prepared micro sd card in the slot and reboot apc-8750. Once you get the Slackware login prompt, proceed as usual.&lt;br /&gt;
&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
&lt;br /&gt;
For X Windows, use a window manager like fluxbox.&lt;br /&gt;
&lt;br /&gt;
== Post installation preparation ==&lt;br /&gt;
&lt;br /&gt;
After the installation is done, you need to replace the kernel uzImage.bin with a new&lt;br /&gt;
one, this time with no initramfs_data.cpio.gz, and CONFIG_CMDLINE= changed for bootin from partition 2. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONFIG_CMDLINE=&amp;quot; mem=460M root=/dev/mmcblk0p2 rootwait nonitrd ro console=tty0&amp;quot;&lt;br /&gt;
CONFIG_CMDLINE_FORCE=y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For this, download uzImage.bin from here, and copy over&lt;br /&gt;
to the first partition ( bootable vfat one ). Once that is done reboot the machine once again, to get Slackware going!&lt;br /&gt;
&lt;br /&gt;
=== Procedure used for preparing the Slackware boot kernel ===&lt;br /&gt;
&lt;br /&gt;
Please refer to the link [[config.slackboot.vga]] for the config file which was used.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OBJ=/src/apc.io/obj.testing&lt;br /&gt;
export KERNEL_SRC=/src/apc.io/linux-vtwm-testing&lt;br /&gt;
export PATH=~/apc.io/apc-8750-master/u-boot/tools:$PATH&lt;br /&gt;
export PATH=/opt/local/arm/arm-2014.05/bin:$PATH&lt;br /&gt;
cp config.slackboot.vga $OBJ/.config&lt;br /&gt;
rm $KERNEL_SRC/usr/initramfs_data.cpio.g&lt;br /&gt;
&lt;br /&gt;
make -C $KERNEL_SRC O=$OBJ ARCH=arm CROSS_COMPILE=arm-none-eabi- zImage -j 3&lt;br /&gt;
mv $OBJ/arch/arm/boot/zImage $1/$2/ ;&lt;br /&gt;
make -C $KERNEL_SRC O=$OBJ ARCH=arm CROSS_COMPILE=arm-none-eabi- dtbs&lt;br /&gt;
cat $1/$2/zImage $OBJ/arch/arm/boot/dts/wm8750-apc8750.dtb &amp;gt; $1/$2/zImage_w_dtb&lt;br /&gt;
mkimage -A arm -O linux -T kernel -C none -a 0x8000 \&lt;br /&gt;
     -e 0x8000 -n &amp;quot;My Linux&amp;quot; -d $1/$2/zImage_w_dtb $1/$2/uzImage.bin&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once Slackware is installed, and the  new uzImage.bin is copied over&lt;br /&gt;
&lt;br /&gt;
    sdc1:&lt;br /&gt;
              /uzImage.bin&lt;br /&gt;
              /initrd-kirkwood.cpio  =&amp;gt; not required anymore&lt;br /&gt;
&lt;br /&gt;
    sdc2:&lt;br /&gt;
&lt;br /&gt;
              /bin&lt;br /&gt;
              /boot&lt;br /&gt;
              /cdrom&lt;br /&gt;
              /dev/&lt;br /&gt;
              /etc/&lt;br /&gt;
              /home/&lt;br /&gt;
              /proc/&lt;br /&gt;
              /slackware14.1  =&amp;gt; not required anymore&lt;br /&gt;
              /usr/&lt;br /&gt;
              /var/&lt;br /&gt;
&lt;br /&gt;
You may remove files which are not required anymore, and free up some space. Once that is done, reboot apc-8750. &lt;br /&gt;
== links ==&lt;br /&gt;
&lt;br /&gt;
http://apc.io/products/8750a/&lt;br /&gt;
&lt;br /&gt;
http://apc.io/library/&lt;br /&gt;
&lt;br /&gt;
https://github.com/linux-wmt/linux-vtwm&lt;br /&gt;
&lt;br /&gt;
http://arm.slackware.com/getslack/&lt;br /&gt;
&lt;br /&gt;
http://ftp.arm.slackware.com/slackwarearm/&lt;br /&gt;
&lt;br /&gt;
https://github.com/gv1/apc8750&lt;/div&gt;</description>
			<pubDate>Sun, 03 Aug 2014 18:21:24 GMT</pubDate>
			<dc:creator>Gv</dc:creator>
			<comments>https://www.slackwiki.com/Talk:Apc8750</comments>
		</item>
		<item>
			<title>Apc8750</title>
			<link>https://www.slackwiki.com/index.php?title=Apc8750&amp;diff=912</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=Apc8750&amp;diff=912</guid>
			<description>&lt;p&gt;Gv: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Installing Slackware on apc-8750 ==&lt;br /&gt;
&lt;br /&gt;
Mainline linux kernel lacks support for Wondermedia 8750 currently. &lt;br /&gt;
However linux-vtwm kernel available at github has support for Wondermedia 8750 SOC.&lt;br /&gt;
Since the kernel failed to load initrd cpio archive the normal way, a special method&lt;br /&gt;
was used for loading the setup image. &lt;br /&gt;
&lt;br /&gt;
* Create three partitions, first bootable vfat, second reiserfs and third Linux swap.&lt;br /&gt;
* Download and copy uzImage.bin and initrd-kirkwood.cpio to first vfat partition&lt;br /&gt;
* Download and copy Slackware installation files over to second partition&lt;br /&gt;
* Boot from the micro sd card prepared, install, and configure Slackware&lt;br /&gt;
* Download and replace the boot kernel with new uzImage.bin for booting from &lt;br /&gt;
second partition.&lt;br /&gt;
&lt;br /&gt;
== Creating a bootable micro sd card ==&lt;br /&gt;
  &lt;br /&gt;
For this you need a custom built kernel and a initramfs image from Slackware for &lt;br /&gt;
arm distribution - uinitrd-kirkwood.img&lt;br /&gt;
 &lt;br /&gt;
             * uzImage.bin&lt;br /&gt;
                   [[Detailed description of how uzImage.bin was prepared.]]&lt;br /&gt;
&lt;br /&gt;
             * initrd-kirkwood.cpio&lt;br /&gt;
                   [[Detailed description of how initrd-kirkwood.cpio was prepared.]]&lt;br /&gt;
&lt;br /&gt;
Download and keep these files ready&lt;br /&gt;
&lt;br /&gt;
=== Preparing the micro sd card ===&lt;br /&gt;
&lt;br /&gt;
You need at least three partitions, one vfat, one or more Linux partitions, and a &lt;br /&gt;
Linux swap partition for this method of installation. Here is how the partitions I&lt;br /&gt;
used look like under fdisk ran on host.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Disk /dev/sdc: 15.9 GB, 15931539456 bytes&lt;br /&gt;
64 heads, 32 sectors/track, 15193 cylinders, total 31116288 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
Disk identifier: 0x00000000&lt;br /&gt;
&lt;br /&gt;
   Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/sdc1   *        2048      206847      102400    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/sdc2          206848    28878847    14336000   83  Linux&lt;br /&gt;
/dev/sdc3        28878848    31116287     1118720   82  Linux swap&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Creating filesystem:&lt;br /&gt;
&lt;br /&gt;
* 1st partition: make it bootable, and create a file system using mkfs.vfat&lt;br /&gt;
* 2nd partition: create a reiserfs ( or other ) file system using mkreiserfs&lt;br /&gt;
&lt;br /&gt;
==== Detailed description of how Slackware install kernel was prepared. ====&lt;br /&gt;
&lt;br /&gt;
I used linux-vtwm-testing available at https://github.com/linux-wmt/linux-vtwm&lt;br /&gt;
Zipfile you download from the site may cause problem when extracting - few files&lt;br /&gt;
may be missing!. One option is to use p7zip or other unzip program instead of the&lt;br /&gt;
default zip utility in Slackware. You may also get a tar.gz file using&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget --no-check-certificate \&lt;br /&gt;
    https://github.com/linux-wmt/linux-vtwm/archive/testing.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please refer to the link [[config.slackinstall.vga]] for the config file which was used. This method also require a small initramfs image prepared from the boot media available at apc.io library. download it from here : [[initramfs_data.cpio.gz]] or&lt;br /&gt;
use the following init scrip with the initrd.gz from apc.io library.&lt;br /&gt;
&lt;br /&gt;
init:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        #!/bin/busybox sh&lt;br /&gt;
        /bin/busybox mount -t proc /proc&lt;br /&gt;
        /bin/busybox mount -t sys /sys&lt;br /&gt;
        /bin/busybox echo /sbin/mdev &amp;gt; /proc/sys/kernel/hotplug&lt;br /&gt;
        /bin/busybox mdev -s&lt;br /&gt;
        /bin/busybox --install&lt;br /&gt;
        mkfs.ext2 /dev/ram0&lt;br /&gt;
        mkdir /root&lt;br /&gt;
        mount /dev/ram0 /root&lt;br /&gt;
        cd /root&lt;br /&gt;
        mkdir /flash&lt;br /&gt;
        mount /dev/mmcblk0p1 /flash&lt;br /&gt;
        cpio -id &amp;lt; /flash/initrd-kirkwood.cpio&lt;br /&gt;
        exec chroot /root /bin/busybox init&lt;br /&gt;
        exec /bin/busybox init&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy the initramfs_data.cpio.gz for to $KERNEL_SRC/usr area.&lt;br /&gt;
&lt;br /&gt;
===== Details of how initramfs_data.cpio.gz was prepared. =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
gunzip initrd.gz&lt;br /&gt;
mkdir initramfs_data&lt;br /&gt;
mount -o loop initrd initramfs_data&lt;br /&gt;
&lt;br /&gt;
create initramfs_data/init as shown above&lt;br /&gt;
&lt;br /&gt;
chmod a+x initramfs_data/init&lt;br /&gt;
sync&lt;br /&gt;
(cd initramfs_data ; find . | cpio -o -H newc | gzip  &amp;gt; ../initramfs_data.cpio.gz )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note that the kernel uses a CONFIG_CMDLINE=&lt;br /&gt;
for vga:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONFIG_CMDLINE=&amp;quot; mem=440M console=tty0 mbtotal=52M&amp;quot;&lt;br /&gt;
CONFIG_CMDLINE_FORCE=y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
for serial:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONFIG_CMDLINE=&amp;quot; mem=440M console=ttyWMT0,115200n8 mbtotal=52M&amp;quot;&lt;br /&gt;
CONFIG_CMDLINE_FORCE=y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
kernel is compiled on the host, using arm-2014.05 from arm.&lt;br /&gt;
&lt;br /&gt;
kernel build procedure:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OBJ=/src/apc.io/obj.testing&lt;br /&gt;
export KERNEL_SRC=/src/apc.io/linux-vtwm-testing&lt;br /&gt;
export PATH=~/apc.io/apc-8750-master/u-boot/tools:$PATH&lt;br /&gt;
export PATH=/opt/local/arm/arm-2014.05/bin:$PATH&lt;br /&gt;
cp config.slackinst.vga $OBJ/.config&lt;br /&gt;
cp initramfs_data.cpio.gz $KERNEL_SRC/usr&lt;br /&gt;
&lt;br /&gt;
make -C $KERNEL_SRC O=$OBJ ARCH=arm CROSS_COMPILE=arm-none-eabi- zImage -j 3&lt;br /&gt;
mv $OBJ/arch/arm/boot/zImage $1/$2/ ;&lt;br /&gt;
make -C $KERNEL_SRC O=$OBJ ARCH=arm CROSS_COMPILE=arm-none-eabi- dtbs&lt;br /&gt;
cat $1/$2/zImage $OBJ/arch/arm/boot/dts/wm8750-apc8750.dtb &amp;gt; $1/$2/zImage_w_dtb&lt;br /&gt;
mkimage -A arm -O linux -T kernel -C none -a 0x8000 \&lt;br /&gt;
     -e 0x8000 -n &amp;quot;My Linux&amp;quot; -d $1/$2/zImage_w_dtb $1/$2/uzImage.bin&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Preparing the cpio archive:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        download http://ftp.arm.slackware.com/slackwarearm/slackwarearm-14.1/isolinux/uinitrd-kirkwood.img&lt;br /&gt;
        dd if=./uinitrd-kirkwood.img bs=64 skip=1 of=initrd-kirkwood.cpio.gz&lt;br /&gt;
        gunzip initrd-kirkwood.cpio.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Copying Slackware install files onto second partition ==&lt;br /&gt;
&lt;br /&gt;
Create a slackware14.1 directory in the reiserfs partition of the micro sd card.&lt;br /&gt;
Copy Slackware for arm distribution to the slackware14.1 directory, from  http://ftp.arm.slackware.com/slackwarearm/slackwarearm-14.1/&lt;br /&gt;
&lt;br /&gt;
      sdc1:&lt;br /&gt;
                /uzImage.bin&lt;br /&gt;
                /initrd-kirkwood.cpio&lt;br /&gt;
      sdc2:&lt;br /&gt;
                /slackware14.1/&lt;br /&gt;
&lt;br /&gt;
== Booting with the installer and installing Slackware ==&lt;br /&gt;
&lt;br /&gt;
Now you are ready to boot the from the new disk just prepared, and install Slackware from the pre mounted directory under /mnt/slackware14.1/slackware ( which is automounted as the selection for target is done ). Put the newly prepared micro sd card in the slot and reboot apc-8750. Once you get the Slackware login prompt, proceed as usual.&lt;br /&gt;
&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
&lt;br /&gt;
For X Windows, use a window manager like fluxbox.&lt;br /&gt;
&lt;br /&gt;
== Post installation preparation ==&lt;br /&gt;
&lt;br /&gt;
After the installation is done, you need to replace the kernel uzImage.bin with a new&lt;br /&gt;
one, this time with no initramfs_data.cpio.gz, and CONFIG_CMDLINE= changed for bootin from partition 2. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONFIG_CMDLINE=&amp;quot; mem=460M root=/dev/mmcblk0p2 rootwait nonitrd ro console=tty0&amp;quot;&lt;br /&gt;
CONFIG_CMDLINE_FORCE=y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For this, download uzImage.bin from here, and copy over&lt;br /&gt;
to the first partition ( bootable vfat one ). Once that is done reboot the machine once again, to get Slackware going!&lt;br /&gt;
&lt;br /&gt;
=== Procedure used for preparing the Slackware boot kernel ===&lt;br /&gt;
&lt;br /&gt;
Please refer to the link [[config.slackboot.vga]] for the config file which was used.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OBJ=/src/apc.io/obj.testing&lt;br /&gt;
export KERNEL_SRC=/src/apc.io/linux-vtwm-testing&lt;br /&gt;
export PATH=~/apc.io/apc-8750-master/u-boot/tools:$PATH&lt;br /&gt;
export PATH=/opt/local/arm/arm-2014.05/bin:$PATH&lt;br /&gt;
cp config.slackboot.vga $OBJ/.config&lt;br /&gt;
rm $KERNEL_SRC/usr/initramfs_data.cpio.g&lt;br /&gt;
&lt;br /&gt;
make -C $KERNEL_SRC O=$OBJ ARCH=arm CROSS_COMPILE=arm-none-eabi- zImage -j 3&lt;br /&gt;
mv $OBJ/arch/arm/boot/zImage $1/$2/ ;&lt;br /&gt;
make -C $KERNEL_SRC O=$OBJ ARCH=arm CROSS_COMPILE=arm-none-eabi- dtbs&lt;br /&gt;
cat $1/$2/zImage $OBJ/arch/arm/boot/dts/wm8750-apc8750.dtb &amp;gt; $1/$2/zImage_w_dtb&lt;br /&gt;
mkimage -A arm -O linux -T kernel -C none -a 0x8000 \&lt;br /&gt;
     -e 0x8000 -n &amp;quot;My Linux&amp;quot; -d $1/$2/zImage_w_dtb $1/$2/uzImage.bin&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once Slackware is installed, and the  new uzImage.bin is copied over&lt;br /&gt;
&lt;br /&gt;
    sdc1:&lt;br /&gt;
              /uzImage.bin&lt;br /&gt;
              /initrd-kirkwood.cpio  =&amp;gt; not required anymore&lt;br /&gt;
&lt;br /&gt;
    sdc2:&lt;br /&gt;
&lt;br /&gt;
              /bin&lt;br /&gt;
              /boot&lt;br /&gt;
              /cdrom&lt;br /&gt;
              /dev/&lt;br /&gt;
              /etc/&lt;br /&gt;
              /home/&lt;br /&gt;
              /proc/&lt;br /&gt;
              /slackware14.1  =&amp;gt; not required anymore&lt;br /&gt;
              /usr/&lt;br /&gt;
              /var/&lt;br /&gt;
&lt;br /&gt;
You may remove files which are not required anymore, and free up some space. Once that is done, reboot apc-8750. &lt;br /&gt;
== links ==&lt;br /&gt;
&lt;br /&gt;
http://apc.io/products/8750a/&lt;br /&gt;
&lt;br /&gt;
http://apc.io/library/&lt;br /&gt;
&lt;br /&gt;
https://github.com/linux-wmt/linux-vtwm&lt;br /&gt;
&lt;br /&gt;
http://arm.slackware.com/getslack/&lt;br /&gt;
&lt;br /&gt;
http://ftp.arm.slackware.com/slackwarearm/&lt;/div&gt;</description>
			<pubDate>Sun, 03 Aug 2014 17:58:39 GMT</pubDate>
			<dc:creator>Gv</dc:creator>
			<comments>https://www.slackwiki.com/Talk:Apc8750</comments>
		</item>
		<item>
			<title>Apc8750</title>
			<link>https://www.slackwiki.com/index.php?title=Apc8750&amp;diff=911</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=Apc8750&amp;diff=911</guid>
			<description>&lt;p&gt;Gv: /* Creating a bootable micro sd card */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Trial Edition ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Installing Slackware on apc-8750 ==&lt;br /&gt;
&lt;br /&gt;
== Creating a bootable micro sd card ==&lt;br /&gt;
  &lt;br /&gt;
For this you need a custom built kernel and a initramfs image from slackware for arm distribution - uinitrd-kirkwood.img&lt;br /&gt;
 &lt;br /&gt;
             * uzImage.bin&lt;br /&gt;
                   [[Detailed description of how uzImage.bin was prepared.]]&lt;br /&gt;
&lt;br /&gt;
             * initrd-kirkwood.cpio&lt;br /&gt;
                   [[Detailed description of how initrd-kirkwood.cpio was prepared.]]&lt;br /&gt;
&lt;br /&gt;
Download and keep these files ready&lt;br /&gt;
&lt;br /&gt;
=== Preparing the micro sd card ===&lt;br /&gt;
&lt;br /&gt;
You need at least three partitions, one vfat, one or more Linux partitions, and a Linux swap partition for this method of installation. Here is how the partitions I used look like under fdisk ran on host.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Disk /dev/sdc: 15.9 GB, 15931539456 bytes&lt;br /&gt;
64 heads, 32 sectors/track, 15193 cylinders, total 31116288 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
Disk identifier: 0x00000000&lt;br /&gt;
&lt;br /&gt;
   Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/sdc1   *        2048      206847      102400    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/sdc2          206848    28878847    14336000   83  Linux&lt;br /&gt;
/dev/sdc3        28878848    31116287     1118720   82  Linux swap&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Creating filesystem:&lt;br /&gt;
&lt;br /&gt;
* 1st partition: make it bootable, and create a file system using mkfs.vfat&lt;br /&gt;
* 2nd partition: create a reiserfs ( or other ) file system using mkreiserfs&lt;br /&gt;
&lt;br /&gt;
==== Detailed description of how uzImage.bin was prepared. ====&lt;br /&gt;
&lt;br /&gt;
I used linux-vtwm-testing available at https://github.com/linux-wmt/linux-vtwm&lt;br /&gt;
Please refer to the link [[config.slackinstall.vga]] for the config file which was used. This method also require a small initramfs image prepared from the boot media aviable at apc.io library. download it from here : [[initramfs_data.cpio.gz]] or&lt;br /&gt;
use the following init scrip with the initrd.gz from apc.io library.&lt;br /&gt;
&lt;br /&gt;
init:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        #!/bin/busybox sh&lt;br /&gt;
        /bin/busybox mount -t proc /proc&lt;br /&gt;
        /bin/busybox mount -t sys /sys&lt;br /&gt;
        /bin/busybox echo /sbin/mdev &amp;gt; /proc/sys/kernel/hotplug&lt;br /&gt;
        /bin/busybox mdev -s&lt;br /&gt;
        /bin/busybox --install&lt;br /&gt;
        mkfs.ext2 /dev/ram0&lt;br /&gt;
        mkdir /root&lt;br /&gt;
        mount /dev/ram0 /root&lt;br /&gt;
        cd /root&lt;br /&gt;
        mkdir /flash&lt;br /&gt;
        mount /dev/mmcblk0p1 /flash&lt;br /&gt;
        cpio -id &amp;lt; /flash/initrd-kirkwood.cpio&lt;br /&gt;
        exec chroot /root /bin/busybox init&lt;br /&gt;
        exec /bin/busybox init&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy the initramfs_data.cpio.gz for to $KERNEL_SRC/usr area.&lt;br /&gt;
&lt;br /&gt;
===== Details of how initramfs_data.cpio.gz was prepared. =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
gunzip initrd.gz&lt;br /&gt;
mkdir initramfs_data&lt;br /&gt;
mount -o loop initrd initramfs_data&lt;br /&gt;
&lt;br /&gt;
create initramfs_data/init as shown above&lt;br /&gt;
&lt;br /&gt;
chmod a+x initramfs_data/init&lt;br /&gt;
sync&lt;br /&gt;
(cd initramfs_data ; find . | cpio -o -H newc | gzip  &amp;gt; ../initramfs_data.cpio.gz )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note that the kernel uses a CONFIG_CMDLINE=&lt;br /&gt;
for vga:&lt;br /&gt;
* CONFIG_CMDLINE=&amp;quot; mem=440M console=tty0 mbtotal=52M&amp;quot;&lt;br /&gt;
for serial:&lt;br /&gt;
* CONFIG_CMDLINE=&amp;quot; mem=440M console=ttyWMT0,115200n8 mbtotal=52M&amp;quot;&lt;br /&gt;
kernel is compiled on the host, using arm-2014.05 from arm.&lt;br /&gt;
&lt;br /&gt;
kernel build procedure:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OBJ=/src/apc.io/obj.testing&lt;br /&gt;
export KERNEL_SRC=/src/apc.io/linux-vtwm-testing&lt;br /&gt;
export PATH=~/apc.io/apc-8750-master/u-boot/tools:$PATH&lt;br /&gt;
export PATH=/opt/local/arm/arm-2014.05/bin:$PATH&lt;br /&gt;
cp config.slackinst.vga $OBJ/.config&lt;br /&gt;
cp initramfs_data.cpio.gz $KERNEL_SRC/usr&lt;br /&gt;
&lt;br /&gt;
make -C $KERNEL_SRC O=$OBJ ARCH=arm CROSS_COMPILE=arm-none-eabi- zImage -j 3&lt;br /&gt;
mv $OBJ/arch/arm/boot/zImage $1/$2/ ;&lt;br /&gt;
make -C $KERNEL_SRC O=$OBJ ARCH=arm CROSS_COMPILE=arm-none-eabi- dtbs&lt;br /&gt;
cat $1/$2/zImage $OBJ/arch/arm/boot/dts/wm8750-apc8750.dtb &amp;gt; $1/$2/zImage_w_dtb&lt;br /&gt;
mkimage -A arm -O linux -T kernel -C none -a 0x8000 \&lt;br /&gt;
     -e 0x8000 -n &amp;quot;My Linux&amp;quot; -d $1/$2/zImage_w_dtb $1/$2/uzImage.bin&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Preparing the cpio archive:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        download uinitrd-kirkwood.img&lt;br /&gt;
        dd if=./uinitrd-kirkwood.img bs=64 skip=1 of=initrd-kirkwood.cpio.gz&lt;br /&gt;
        gunzip initrd-kirkwood.cpio.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Copying slackware install files onto second partition ===&lt;br /&gt;
&lt;br /&gt;
Create a slackware14.1 directory in the reiserfs partition of the micro sd card.&lt;br /&gt;
Copy slackware for arm distribution to the slackware14.1 directory. &lt;br /&gt;
&lt;br /&gt;
=== Booting and installing slackware ===&lt;br /&gt;
&lt;br /&gt;
Now you are ready to boot the new disk, and install slackware from the pre mounted directory under /mnt/slackware14.1/slackware ( which is automounted as the selection for target is done ).&lt;br /&gt;
&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
&lt;br /&gt;
For X Windows, use a window manager like fluxbox.&lt;br /&gt;
&lt;br /&gt;
== links ==&lt;br /&gt;
&lt;br /&gt;
http://apc.io/products/8750a/&lt;br /&gt;
&lt;br /&gt;
http://apc.io/library/&lt;br /&gt;
&lt;br /&gt;
https://github.com/linux-wmt/linux-vtwm&lt;br /&gt;
&lt;br /&gt;
http://arm.slackware.com/getslack/&lt;br /&gt;
&lt;br /&gt;
http://ftp.arm.slackware.com/slackwarearm/&lt;/div&gt;</description>
			<pubDate>Sun, 03 Aug 2014 17:05:42 GMT</pubDate>
			<dc:creator>Gv</dc:creator>
			<comments>https://www.slackwiki.com/Talk:Apc8750</comments>
		</item>
		<item>
			<title>Apc8750</title>
			<link>https://www.slackwiki.com/index.php?title=Apc8750&amp;diff=910</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=Apc8750&amp;diff=910</guid>
			<description>&lt;p&gt;Gv: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Trial Edition ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Installing Slackware on apc-8750 ==&lt;br /&gt;
&lt;br /&gt;
== Creating a bootable micro sd card ==&lt;br /&gt;
  &lt;br /&gt;
For this you need a custom built kernel and a initramfs image from slackware for arm distribution - uinitrd-kirkwood.img&lt;br /&gt;
&lt;br /&gt;
=== Preparing the micro sd card ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You need at least three partitions, one vfat, one or more Linux partitions, and a Linux swap partition. Here is how the partitions I used look like under fdisk ran on host.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Disk /dev/sdc: 15.9 GB, 15931539456 bytes&lt;br /&gt;
64 heads, 32 sectors/track, 15193 cylinders, total 31116288 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
Disk identifier: 0x00000000&lt;br /&gt;
&lt;br /&gt;
   Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/sdc1   *        2048      206847      102400    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/sdc2          206848    28878847    14336000   83  Linux&lt;br /&gt;
/dev/sdc3        28878848    31116287     1118720   82  Linux swap&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Creating filesystem:&lt;br /&gt;
&lt;br /&gt;
* 1st partition: make it bootable, and create a file system using mkfs.vfat&lt;br /&gt;
* 2nd partition: create a reiserfs ( or other ) file system using mkreiserfs&lt;br /&gt;
&lt;br /&gt;
Now you need to make a custom kernel for booting into. I used linux-vtwm-testing&lt;br /&gt;
available at https://github.com/linux-wmt/linux-vtwm&lt;br /&gt;
Please refer to the link: for the config file which was used.&lt;br /&gt;
also require a small initramfs image prepared from the boot media aviable at apc.io library. download it from here : initramfs_data.cpio.gz or&lt;br /&gt;
use the following init scrip with the initrd.gz from apc.io library.&lt;br /&gt;
&lt;br /&gt;
init:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        #!/bin/busybox sh&lt;br /&gt;
        /bin/busybox mount -t proc /proc&lt;br /&gt;
        /bin/busybox mount -t sys /sys&lt;br /&gt;
        /bin/busybox echo /sbin/mdev &amp;gt; /proc/sys/kernel/hotplug&lt;br /&gt;
        /bin/busybox mdev -s&lt;br /&gt;
        /bin/busybox --install&lt;br /&gt;
        mkfs.ext2 /dev/ram0&lt;br /&gt;
        mkdir /root&lt;br /&gt;
        mount /dev/ram0 /root&lt;br /&gt;
        cd /root&lt;br /&gt;
        mkdir /flash&lt;br /&gt;
        mount /dev/mmcblk0p1 /flash&lt;br /&gt;
        cpio -id &amp;lt; /flash/initrd-kirkwood.cpio&lt;br /&gt;
        exec chroot /root /bin/busybox init&lt;br /&gt;
        exec /bin/busybox init&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy the initramfs_data.cpio.gz for to $KERNEL_SRC/usr area.&lt;br /&gt;
In case you are building it on your own:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
gunzip initrd.gz&lt;br /&gt;
mkdir initramfs_dat&lt;br /&gt;
mountpoint initramfs_data || mount -o loop initrd fs&lt;br /&gt;
create initramfs_data/init as shown above&lt;br /&gt;
chmod a+x initramfs_data/init&lt;br /&gt;
sync&lt;br /&gt;
(cd initramfs_data ; find . | cpio -o -H newc | gzip  &amp;gt; ../initramfs_data.cpio.gz )&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note that the kernel uses a CONFIG_CMDLINE=&lt;br /&gt;
for vga:&lt;br /&gt;
* CONFIG_CMDLINE=&amp;quot; mem=440M console=tty0 mbtotal=52M&amp;quot;&lt;br /&gt;
for serial:&lt;br /&gt;
* CONFIG_CMDLINE=&amp;quot; mem=440M console=ttyWMT0,115200n8 mbtotal=52M&amp;quot;&lt;br /&gt;
kernel is compiled on the host, using arm-2014.05 from arm.&lt;br /&gt;
&lt;br /&gt;
Eg:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OBJ=/src/apc.io/obj.testing&lt;br /&gt;
export KERNEL_SRC=/src/apc.io/linux-vtwm-testing&lt;br /&gt;
export PATH=~/apc.io/apc-8750-master/u-boot/tools:$PATH&lt;br /&gt;
export PATH=/opt/local/arm/arm-2014.05/bin:$PATH&lt;br /&gt;
cp config.slackinst.vga $OBJ/.config&lt;br /&gt;
cp initramfs_data.cpio.gz $KERNEL_SRC/usr&lt;br /&gt;
&lt;br /&gt;
make -C $KERNEL_SRC O=$OBJ ARCH=arm CROSS_COMPILE=arm-none-eabi- zImage -j 3&lt;br /&gt;
mv $OBJ/arch/arm/boot/zImage $1/$2/ ;&lt;br /&gt;
make -C $KERNEL_SRC O=$OBJ ARCH=arm CROSS_COMPILE=arm-none-eabi- dtbs&lt;br /&gt;
cat $1/$2/zImage $OBJ/arch/arm/boot/dts/wm8750-apc8750.dtb &amp;gt; $1/$2/zImage_w_dtb&lt;br /&gt;
mkimage -A arm -O linux -T kernel -C none -a 0x8000 \&lt;br /&gt;
     -e 0x8000 -n &amp;quot;My Linux&amp;quot; -d $1/$2/zImage_w_dtb $1/$2/uzImage.bin&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Preparing the cpio archive:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        dd if=./uinitrd-kirkwood.img bs=64 skip=1 of=initrd-kirkwood.cpio.gz&lt;br /&gt;
        gunzip initrd-kirkwood.cpio.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Once both uzImage.bin and initrd-kirkwood.cpio copy them to the bootable vfat partition. &lt;br /&gt;
&lt;br /&gt;
Create a slackware14.1 directory in the reiserfs partition of the micro sd card.&lt;br /&gt;
Copy slackware for arm distribution to the slackware14.1 directory. Now you &lt;br /&gt;
are ready to boot the new disk, and install slackware from the pre mounted directory&lt;br /&gt;
under /mnt/slackware14.1/slackware ( which is automounted as the selection for target is done ).&lt;br /&gt;
&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
&lt;br /&gt;
For X Windows, use a window manager like fluxbox.&lt;br /&gt;
&lt;br /&gt;
== links ==&lt;br /&gt;
&lt;br /&gt;
http://apc.io/products/8750a/&lt;br /&gt;
&lt;br /&gt;
http://apc.io/library/&lt;br /&gt;
&lt;br /&gt;
https://github.com/linux-wmt/linux-vtwm&lt;br /&gt;
&lt;br /&gt;
http://arm.slackware.com/getslack/&lt;br /&gt;
&lt;br /&gt;
http://ftp.arm.slackware.com/slackwarearm/&lt;/div&gt;</description>
			<pubDate>Sun, 03 Aug 2014 14:45:20 GMT</pubDate>
			<dc:creator>Gv</dc:creator>
			<comments>https://www.slackwiki.com/Talk:Apc8750</comments>
		</item>
		<item>
			<title>Apc8750</title>
			<link>https://www.slackwiki.com/index.php?title=Apc8750&amp;diff=909</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=Apc8750&amp;diff=909</guid>
			<description>&lt;p&gt;Gv: Created page with &amp;quot;   JUST PREPARING THE PAGE   Installing Slackware on apc-8750 http://apc.io/products/8750a/ http://apc.io/library/ https://github.com/linux-wmt/linux-vtwm http://arm.slackware...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
JUST PREPARING THE PAGE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Installing Slackware on apc-8750&lt;br /&gt;
http://apc.io/products/8750a/&lt;br /&gt;
http://apc.io/library/&lt;br /&gt;
https://github.com/linux-wmt/linux-vtwm&lt;br /&gt;
http://arm.slackware.com/getslack/&lt;br /&gt;
http://ftp.arm.slackware.com/slackwarearm/&lt;br /&gt;
&lt;br /&gt;
Creating a bootable micro sd card&lt;br /&gt;
   problem&lt;br /&gt;
   solution&lt;br /&gt;
&lt;br /&gt;
Installing slackware&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Creating a bootable micro sd card&lt;br /&gt;
  For this you need a custom built kernel and a initramfs image from slackware for arm distribution - uinitrd-kirkwood.img&lt;br /&gt;
&lt;br /&gt;
Preparing the micro sd card&lt;br /&gt;
  You need at least three partitions, one vfat, one or more Linux partitions, and a Linux swap partition. Here is how the partitions I used look like under fdisk ran on host.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Disk /dev/sdc: 15.9 GB, 15931539456 bytes&lt;br /&gt;
64 heads, 32 sectors/track, 15193 cylinders, total 31116288 sectors&lt;br /&gt;
Units = sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
Disk identifier: 0x00000000&lt;br /&gt;
&lt;br /&gt;
   Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
/dev/sdc1   *        2048      206847      102400    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/sdc2          206848    28878847    14336000   83  Linux&lt;br /&gt;
/dev/sdc3        28878848    31116287     1118720   82  Linux swap&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1st partition: make it bootable, and create a file system using mkfs.vfat&lt;br /&gt;
2nd partition: create a reiserfs ( or other ) file system using mkreiserfs&lt;br /&gt;
&lt;br /&gt;
Now you need to make a custom kernel for booting into. I used linux-vtwm-testing&lt;br /&gt;
available at https://github.com/linux-wmt/linux-vtwm&lt;br /&gt;
Please refer to the link: for the config file which was used.&lt;br /&gt;
also require a small initramfs image prepared from the boot media aviable at apc.io library. download it from here : initramfs_data.cpio.gz or&lt;br /&gt;
use the following init scrip with the initrd.gz from apc.io library.&lt;br /&gt;
init:&lt;br /&gt;
&lt;br /&gt;
        #!/bin/busybox sh&lt;br /&gt;
        /bin/busybox mount -t proc /proc&lt;br /&gt;
        /bin/busybox mount -t sys /sys&lt;br /&gt;
        /bin/busybox echo /sbin/mdev &amp;gt; /proc/sys/kernel/hotplug&lt;br /&gt;
        /bin/busybox mdev -s&lt;br /&gt;
        /bin/busybox --install&lt;br /&gt;
        mkfs.ext2 /dev/ram0&lt;br /&gt;
        mkdir /root&lt;br /&gt;
        mount /dev/ram0 /root&lt;br /&gt;
        cd /root&lt;br /&gt;
        mkdir /flash&lt;br /&gt;
        mount /dev/mmcblk0p1 /flash&lt;br /&gt;
        cpio -id &amp;lt; /flash/initrd-kirkwood.cpio&lt;br /&gt;
        exec chroot /root /bin/busybox init&lt;br /&gt;
        exec /bin/busybox init&lt;br /&gt;
&lt;br /&gt;
Copy the initramfs_data.cpio.gz for to $KERNEL_SRC/usr area.&lt;br /&gt;
In case you are building it on your own:&lt;br /&gt;
gunzip initrd.gz&lt;br /&gt;
mkdir initramfs_dat&lt;br /&gt;
mountpoint initramfs_data || mount -o loop initrd fs&lt;br /&gt;
create initramfs_data/init as shown above&lt;br /&gt;
chmod a+x initramfs_data/init&lt;br /&gt;
sync&lt;br /&gt;
(cd initramfs_data ; find . | cpio -o -H newc | gzip  &amp;gt; ../initramfs_data.cpio.gz )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please note that the kernel uses a CONFIG_CMDLINE=&lt;br /&gt;
for vga:&lt;br /&gt;
CONFIG_CMDLINE=&amp;quot; mem=440M console=tty0 mbtotal=52M&amp;quot;&lt;br /&gt;
for serial:&lt;br /&gt;
CONFIG_CMDLINE=&amp;quot; mem=440M console=ttyWMT0,115200n8 mbtotal=52M&amp;quot;&lt;br /&gt;
kernel is compiled on the host, using arm-2014.05 from arm.&lt;br /&gt;
&lt;br /&gt;
Eg:&lt;br /&gt;
export OBJ=/src/apc.io/obj.testing&lt;br /&gt;
export KERNEL_SRC=/src/apc.io/linux-vtwm-testing&lt;br /&gt;
export PATH=~/apc.io/apc-8750-master/u-boot/tools:$PATH&lt;br /&gt;
export PATH=/opt/local/arm/arm-2014.05/bin:$PATH&lt;br /&gt;
cp config.slackinst.vga $OBJ/.config&lt;br /&gt;
cp initramfs_data.cpio.gz $KERNEL_SRC/usr&lt;br /&gt;
&lt;br /&gt;
make -C $KERNEL_SRC O=$OBJ ARCH=arm CROSS_COMPILE=arm-none-eabi- zImage -j 3&lt;br /&gt;
mv $OBJ/arch/arm/boot/zImage $1/$2/ ;&lt;br /&gt;
make -C $KERNEL_SRC O=$OBJ ARCH=arm CROSS_COMPILE=arm-none-eabi- dtbs&lt;br /&gt;
cat $1/$2/zImage $OBJ/arch/arm/boot/dts/wm8750-apc8750.dtb &amp;gt; $1/$2/zImage_w_dtb&lt;br /&gt;
mkimage -A arm -O linux -T kernel -C none -a 0x8000 \&lt;br /&gt;
     -e 0x8000 -n &amp;quot;My Linux&amp;quot; -d $1/$2/zImage_w_dtb $1/$2/uzImage.bin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Preparing the cpio archive:&lt;br /&gt;
&lt;br /&gt;
        dd if=./uinitrd-kirkwood.img bs=64 skip=1 of=initrd-kirkwood.cpio.gz&lt;br /&gt;
        gunzip initrd-kirkwood.cpio.gz&lt;br /&gt;
&lt;br /&gt;
Once both uzImage.bin and initrd-kirkwood.cpio copy them to the bootable vfat partition. &lt;br /&gt;
create a slackware14.1 directory in the reiserfs partition of the micro sd card.&lt;br /&gt;
copy slackware for arm distribution to the slackware14.1 directory. Now you &lt;br /&gt;
are ready to boot the new disk, and install slackware from the pre mounted directory&lt;br /&gt;
under /mnt/slackware14.1/slackware ( which is automounted as the selection for target is done ).&lt;/div&gt;</description>
			<pubDate>Sun, 03 Aug 2014 14:17:24 GMT</pubDate>
			<dc:creator>Gv</dc:creator>
			<comments>https://www.slackwiki.com/Talk:Apc8750</comments>
		</item>
</channel></rss>