Android Tablets Forum banner
21 - 40 of 59 Posts

·
Registered
Joined
·
75 Posts
Hi,
First, Check that "Settings -> Location & Security -> Use GPS Satellites" option is marked. I think if it isn't marked the systen doesn't start the Gps thread.
Second, Make sure that your Gps is plug in and reboot the tablet.

You can use the little program attached bellow to test if the android system is receiving the NMEA updates.... (Mainly is a simple NMEA Listener )

Well, i take a look to that url.... Actually i'm looking for a reliable way to plug-in and plug-out the Gps device without reboot the tablet...

Good look with it...
Thanks, i'll check this. Somehow your library works for my GPS after few reboots. There are some issues using it with Novo 7A, cause 3G dongles also uses /dev/ttyUSB0 and RIL/PPP scripts tryed to communicate with GPS at the same time. I made symlink on boot from /dev/ttyUSB0 to /dev/gps and set "ro.kernel.android.gps" "gps", this works... Also, tryed to compile gps_serial.c from naobsd git, got library, but there are some parse NMEA tokens errors (seen in logcat with debug enabled gps_serial.c version). Can you share your code to play with it? I think we need to modify some code to parse "Use GPS Satellites" Android property in library for hotplug...
 

·
Registered
Joined
·
21 Posts
Discussion Starter · #22 ·
Thanks, i'll check this. Somehow your library works for my GPS after few reboots. There are some issues using it with Novo 7A, cause 3G dongles also uses /dev/ttyUSB0 and RIL/PPP scripts tryed to communicate with GPS at the same time. I made symlink on boot from /dev/ttyUSB0 to /dev/gps and set "ro.kernel.android.gps" "gps", this works... Also, tryed to compile gps_serial.c from naobsd git, got library, but there are some parse NMEA tokens errors (seen in logcat with debug enabled gps_serial.c version). Can you share your code to play with it? I think we need to modify some code to parse "Use GPS Satellites" Android property in library for hotplug...
Hi,
I took a look to gps_serial.c from naosbsd ... but several NMEA sentences and callbacks (i.e. GSV ) are not implemented...
I'm cleaning and polishing the code a bit (too quick and dirty) before sharing...
 

·
Registered
Joined
·
21 Posts
Discussion Starter · #24 ·
Is there any reason that this would not work on a MID7 tablet with WonderMedia froyo 2.2?
This HAL driver is intent for AllWinner A10 Cortex A8 CPU Tablets with Ginger Bread 2.3 .....
... this driver is "generic" because it should work in almost tablet brands or model with an Allwinner A10 CPU...
 

·
Registered
Joined
·
55 Posts
Is there any chance to get this working on ICS 4.0.3 and Novo7 Aurora? Would be very nice, as there is no solution at this time.

Cheers doc
 

·
Registered
Joined
·
75 Posts
Is there any chance to get this working on ICS 4.0.3 and Novo7 Aurora? Would be very nice, as there is no solution at this time.

Cheers doc
This driver will not work on 4.0 firmwares. For make it work on 4.0.x it's source must be released by manufacturers 1st. Just use Android 2.3.4 with Aurora, and you'll have working GPS ;-)
 

·
Registered
Joined
·
9 Posts
This source have instructions only for 2.6.36 kernel and Android 2.3.4. I used it for make my custom fw with Bluetooth, GPS and FM support. But it's not 4.0. It's 2.3.4.
The instructions may be for 2.6.36, but there are links for the 3.0+ kernel used in Allwinner ICS devices. Compiling the 3.0+ kernel should be similar to 2.6.36.

Code:
git clone [URL=git://anonscm.debian.org/arm-netbook/arm-netbook]git://anonscm.debian.org/arm-netbook/arm-netbook[/URL].git<br />
git checkout lichee/for-next
OR

Code:
git clone [URL=https://github]https://github[/URL].com/amery/linux-allwinner<br />
git checkout allwinner-v3.0-android
 

·
Registered
Joined
·
75 Posts
The instructions may be for 2.6.36, but there are links for the 3.0+ kernel used in Allwinner ICS devices. Compiling the 3.0+ kernel should be similar to 2.6.36.

Code:
git clone [URL=git://anonscm.debian.org/arm-netbook/arm-netbook]git://anonscm.debian.org/arm-netbook/arm-netbook[/URL].git<br />
git checkout lichee/for-next
OR

Code:
git clone [URL=https://github]https://github[/URL].com/amery/linux-allwinner<br />
git checkout allwinner-v3.0-android
It's not the kernel, used in current 4.0.x Ainol firmwares. They used (as I know) 3.0.8. Links above are community development versions, may not boot even. And, GPS hal driver in general related to Android ICS source, not kernel at all. And it's not public yet.
 

·
Registered
Joined
·
106 Posts
I was able to build the pl2303.ko for ISC kernel 3.0.8+

Tablet: QWare 7" pro 3 (an allwinner a10 clone) sold in the Netherlands
Stock rom: andoid: 4.0.3 kernel: 3.0.8+
Kernel sources used: https://github.com/amery/linux-allwinner/tree/allwinner-v3.0-android

They are not the original sources so it was allot of thinkering to get them working.
* The sources have a sun4i_defconfig

* The sources dont compile all the way (so i had to disable the sun4i specific video and audio parts)

* I used IDA to disassemble the kernel to find out specific kernel settings
P.S. i and jkpjj used the same method to get btusb.ko working on rk29xx devices
for more details on that process www.slatedroid.com/topic/22388-kernel-discussion-for-fview-7-pro-lanyu-910-tablets/

* I also noticed that the stock kernel used version checks on kernel modules
- This means that the kernel checks if the version of the symbol table of the kernel module are identical to the internal versions of the running kernel. if not then it wont load the module
As a symbol version is actualy the crc of the compiled binary code of that specific kernel function, the only way to create a "compatible" kernel module is
update:
32bit checksum of the function signature including all of the definition of the types used by the function signature, and the return type
a: have the exact kernel souce (we dont have it,because its not released)
b: have the exact used configuration (.config) (we also dont have)
c: you even have to use the same compiler (because different compilers can result in diferent opject code)

In short, without the official sources etc its impossible

Luckaly there is a trick

My rom comes with a file Module.symvers (its located in the modules directory /system/vendor/modules)

So after building the kernel module pl2303.ko i use a progra that replaces the symbolversions of the kernel module with the symbol versions found in the Module.symvers file.
After allot of tweaking / trying an disassembling i was able to build a working pl2303.ko for my kernel

the .config file that works for my tablet/kernel
- p.s. i only tested it with pl2303.ko
View attachment dot_config.zip

a php program that replaces the symbol versions with the symbol version of Module.symvers
- p.s it probably requires some tweaking to get it use the installed NDK
- p.s. it probably only works on linux
Update: upload the correct file
View attachment fixmod.zip

Summary steps
* in kernel directory
- have a working cross compile environment
- make sun4i_defconfig
- make menu_config (and exit)
- repace the .config with the dot_config
- make menu_config (and exit)
- make modules
* create a workdir
- copy Module.symvers from divice to PC
- copy pl2303.ko
- php fixmod.php pk2303.ko (pl2303.ko.fix will be created)
* copy pl2303.ko.fix to tabled and try inmodding
use dmesg to check for kernel errors

if it doens't load or if it doest work when attaching the pl2303 USB device then
the kernel will proballby OEPS or segfault
if your luky you can still do dmesg to look for some details

But it will mean than the kernel configuration is not identical enough to you running kernel
The only way to try to solv it is by
- decompileing the kernel and checking more parameters (see rk29xx subforum post of me and jkpjj)

I if found that the following kernel data stuctures are the most likely candidate to me different
- hci_dev
- sk_buff
- tasklet_struct
Kernel config parameter that are likely to infuence these are
- kernel debuggin parts
-
important configure parameter that infuence the above and most other kernel structures are
memory model (slab/slub etc)
debugging part in kernel hacking
netfilter and IPV6 configs
 

Attachments

·
Registered
Joined
·
9 Posts
Thanks Aiah!

I can confirm that I was able to use your dot_config and php program to build an FTDI driver for the EKEN T01 that loaded. The step I took were 1) overwrite the .config with dot_config 2) add the FTDI module in the menuconfig
Code:
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- menuconfig
3) build the whole kernel (if I don't Module.symvers is not generated so the module will lack the symbols)
Code:
 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- all
4) copy ftdi_sio.ko and Module.symvers from the device to a working directory 5) run fixmod on ftdi_sio.ko 6) install on device with insmod

My first try actually rebooted the device when I loaded it, but I cleaned and tried again and it worked. However FTDI devices are still not recognized by my tablewt. I don't get any dmesg traffic when a device is plugged in so I think this tablet is missing some more fundamental drivers.
 

·
Registered
Joined
·
106 Posts
Thanks Aiah!

I can confirm that I was able to use your dot_config and php program to build an FTDI driver for the EKEN T01 that loaded. The step I took were 1) overwrite the .config with dot_config 2) add the FTDI module in the menuconfig
Code:
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- menuconfig
3) build the whole kernel (if I don't Module.symvers is not generated so the module will lack the symbols)
Code:
 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- all
4) copy ftdi_sio.ko and Module.symvers from the device to a working directory 5) run fixmod on ftdi_sio.ko 6) install on device with insmod

My first try actually rebooted the device when I loaded it, but I cleaned and tried again and it worked. However FTDI devices are still not recognized by my tablewt. I don't get any dmesg traffic when a device is plugged in so I think this tablet is missing some more fundamental drivers.
I have no acces to the kernel sources atm,so im guessing a bit

I'm assuming the FTDIdriver is implemented in the ftd_sio.c sources
You could add some debuggin printk to the __init_ftdi_init sources and check if it registers to the serial usb stack (aka returvalue of usb_serial_register)

During my fview work i had the same problam allot, USB devices not registering or plain reboots.
It always turn out to be that varois kernel structures in the rom kernel where still not identical to the sources version. (aka .config not good enough).
 

·
Registered
Joined
·
1 Posts
I was able to build the pl2303.ko for ISC kernel 3.0.8+

Tablet: QWare 7" pro 3 (an allwinner a10 clone) sold in the Netherlands
Stock rom: andoid: 4.0.3 kernel: 3.0.8+
Kernel sources used: https://github.com/amery/linux-allwinner/tree/allwinner-v3.0-android

They are not the original sources so it was allot of thinkering to get them working.
* The sources have a sun4i_defconfig

* The sources dont compile all the way (so i had to disable the sun4i specific video and audio parts)

* I used IDA to disassemble the kernel to find out specific kernel settings
P.S. i and jkpjj used the same method to get btusb.ko working on rk29xx devices
for more details on that process www.slatedroid.com/topic/22388-kernel-discussion-for-fview-7-pro-lanyu-910-tablets/

* I also noticed that the stock kernel used version checks on kernel modules
- This means that the kernel checks if the version of the symbol table of the kernel module are identical to the internal versions of the running kernel. if not then it wont load the module
As a symbol version is actualy the crc of the compiled binary code of that specific kernel function, the only way to create a "compatible" kernel module is
update:

a: have the exact kernel souce (we dont have it,because its not released)
b: have the exact used configuration (.config) (we also dont have)
c: you even have to use the same compiler (because different compilers can result in diferent opject code)

In short, without the official sources etc its impossible

Luckaly there is a trick

My rom comes with a file Module.symvers (its located in the modules directory /system/vendor/modules)

So after building the kernel module pl2303.ko i use a progra that replaces the symbolversions of the kernel module with the symbol versions found in the Module.symvers file.
After allot of tweaking / trying an disassembling i was able to build a working pl2303.ko for my kernel

the .config file that works for my tablet/kernel
- p.s. i only tested it with pl2303.ko
View attachment 4961

a php program that replaces the symbol versions with the symbol version of Module.symvers
- p.s it probably requires some tweaking to get it use the installed NDK
- p.s. it probably only works on linux
Update: upload the correct file
View attachment 4964

Summary steps
* in kernel directory
- have a working cross compile environment
- make sun4i_defconfig
- make menu_config (and exit)
- repace the .config with the dot_config
- make menu_config (and exit)
- make modules
* create a workdir
- copy Module.symvers from divice to PC
- copy pl2303.ko
- php fixmod.php pk2303.ko (pl2303.ko.fix will be created)
* copy pl2303.ko.fix to tabled and try inmodding
use dmesg to check for kernel errors

if it doens't load or if it doest work when attaching the pl2303 USB device then
the kernel will proballby OEPS or segfault
if your luky you can still do dmesg to look for some details

But it will mean than the kernel configuration is not identical enough to you running kernel
The only way to try to solv it is by
- decompileing the kernel and checking more parameters (see rk29xx subforum post of me and jkpjj)

I if found that the following kernel data stuctures are the most likely candidate to me different
- hci_dev
- sk_buff
- tasklet_struct
Kernel config parameter that are likely to infuence these are
- kernel debuggin parts
-
important configure parameter that infuence the above and most other kernel structures are
memory model (slab/slub etc)
debugging part in kernel hacking
netfilter and IPV6 configs
Thanks Aiah
The above method deos not work on my tab
as my tab is ainol novo 7 advanced ii, 4.0.3 and linux kernel version 3.0.8
 

·
Registered
Joined
·
1 Posts
Hi I too have some success with a710 tablet using pl2303 Prolific GPS dongle.
If I insmod system/vendor/modules/pl2303.ko and stty -F /dev/ttyUSB0 4800 to change baud rate I get data if i cat ttyUSB0.
I then use GPS4Droid app to point data stream to mock locations & Google map or other mapping software picks it up fine as it thinks its talking to a bluetooth device. What I need is to find a way to insmod the pl2303 driver at boot. Any ideas appreciated
 

·
Registered
Joined
·
106 Posts
Hi I too have some success with a710 tablet using pl2303 Prolific GPS dongle.
If I insmod system/vendor/modules/pl2303.ko and stty -F /dev/ttyUSB0 4800 to change baud rate I get data if i cat ttyUSB0.
I then use GPS4Droid app to point data stream to mock locations & Google map or other mapping software picks it up fine as it thinks its talking to a bluetooth device. What I need is to find a way to insmod the pl2303 driver at boot. Any ideas appreciated
The ideal way to load it on boot is by modifying /init.rc

* look in /init.rc for insmod /somepath/somemodule.ko
Add a new line insmod /mymodpath/pl2303.ko

P.S. be sure to put pl2303.ko in a spot that is availabel at boot time
P.S. most roms load /init.rc from ROM, so regular changes to /init.rc are lost o reboot
you will have to find a way to make permanant changes to /init.rc

An alternative way is to use an app like "script manager" it supports loading user scripts at boot time
* install the app
* create a script that loads the pl2303.ko
* flag the script to run as root and at boot time
 

·
Registered
Joined
·
106 Posts
Thanks Aiah
The above method deos not work on my tab
as my tab is ainol novo 7 advanced ii, 4.0.3 and linux kernel version 3.0.8
What part does not work ?
* are you able to compile the kernel module pl2303.ko
If this step fails your build environment is probably setup incorrectly

* are you able to load the build pl2303.ko
If this steps fails then the .config file is not compatible enough with your OS version
if so there is no other way then to start hacking/trial-and-error to find you the correct .config settings for your kernel

aiah said:
* I used IDA to disassemble the kernel to find out specific kernel settings
P.S. i and jkpjj used the same method to get btusb.ko working on rk29xx devices
for more details on that process www.slatedroid.com/topic/22388-kernel-discussion-for-fview-7-pro-lanyu-910-tablets/
 

·
Registered
Joined
·
3 Posts
I was able to build the pl2303.ko for ISC kernel 3.0.8+

Tablet: QWare 7" pro 3 (an allwinner a10 clone) sold in the Netherlands
Stock rom: andoid: 4.0.3 kernel: 3.0.8+
Kernel sources used: https://github.com/amery/linux-allwinner/tree/allwinner-v3.0-android

They are not the original sources so it was allot of thinkering to get them working.
* The sources have a sun4i_defconfig

* The sources dont compile all the way (so i had to disable the sun4i specific video and audio parts)

* I used IDA to disassemble the kernel to find out specific kernel settings
P.S. i and jkpjj used the same method to get btusb.ko working on rk29xx devices
for more details on that process www.slatedroid.com/topic/22388-kernel-discussion-for-fview-7-pro-lanyu-910-tablets/

* I also noticed that the stock kernel used version checks on kernel modules
- This means that the kernel checks if the version of the symbol table of the kernel module are identical to the internal versions of the running kernel. if not then it wont load the module
As a symbol version is actualy the crc of the compiled binary code of that specific kernel function, the only way to create a "compatible" kernel module is
update:

a: have the exact kernel souce (we dont have it,because its not released)
b: have the exact used configuration (.config) (we also dont have)
c: you even have to use the same compiler (because different compilers can result in diferent opject code)

In short, without the official sources etc its impossible

Luckaly there is a trick

My rom comes with a file Module.symvers (its located in the modules directory /system/vendor/modules)

So after building the kernel module pl2303.ko i use a progra that replaces the symbolversions of the kernel module with the symbol versions found in the Module.symvers file.
After allot of tweaking / trying an disassembling i was able to build a working pl2303.ko for my kernel

the .config file that works for my tablet/kernel
- p.s. i only tested it with pl2303.ko
View attachment 4961

a php program that replaces the symbol versions with the symbol version of Module.symvers
- p.s it probably requires some tweaking to get it use the installed NDK
- p.s. it probably only works on linux
Update: upload the correct file
View attachment 4964

Summary steps
* in kernel directory
- have a working cross compile environment
- make sun4i_defconfig
- make menu_config (and exit)
- repace the .config with the dot_config
- make menu_config (and exit)
- make modules
* create a workdir
- copy Module.symvers from divice to PC
- copy pl2303.ko
- php fixmod.php pk2303.ko (pl2303.ko.fix will be created)
* copy pl2303.ko.fix to tabled and try inmodding
use dmesg to check for kernel errors

if it doens't load or if it doest work when attaching the pl2303 USB device then
the kernel will proballby OEPS or segfault
if your luky you can still do dmesg to look for some details

But it will mean than the kernel configuration is not identical enough to you running kernel
The only way to try to solv it is by
- decompileing the kernel and checking more parameters (see rk29xx subforum post of me and jkpjj)

I if found that the following kernel data stuctures are the most likely candidate to me different
- hci_dev
- sk_buff
- tasklet_struct
Kernel config parameter that are likely to infuence these are
- kernel debuggin parts
-
important configure parameter that infuence the above and most other kernel structures are
memory model (slab/slub etc)
debugging part in kernel hacking
netfilter and IPV6 configs
Hi AiaH,
I have tablet OnePAD 970 with android 4.0.3 and kernel 3.0.8+
my ploblem is pl2303.ko (vermagic=2.6.34) and . . . insmod pl2303.ko "failed (Exec format error)"

Please, could you pass me the pl2303.ko for kernel 3.0.8+

In any case, I'll try to convert pl2303.ko from 2.6.34 to 3.0.8+
. . . with your guide and the file wlan.ko (3.0.8+)
thanks
 

·
Registered
Joined
·
113 Posts
Hi, I need help compiling 3.0.8(+) 4.0.3(4) for a Ramos w22pro it needs Bluetooth if possible and what I really need is usbnet,usbserial, stdi_sio,cp210x,pl3203

Thanks
 
21 - 40 of 59 Posts
Top