[Q] Can I develop/put my own drivers onto Android. (To get USB peripherials working) - Eee Pad Transformer Q&A, Help & Troubleshooting

So I have many many things I want to do with (Specifically) USB devices on my TF101. It's my baby and I use it for almost everything now, but there's still a few problems I haven't been able to shake or get other answers too.
I have a USB-MIDI cable that doesn't work (isn't detected, I think driver issue/isn't supported) Could I make a driver to do this so I can connect my keyboard to my tf and record some jams?
More Important
I have a USB - 3.5 mm converter/cable, usb in, headphone port out. It's by logitech and works fine on computer to plug any 3.5mm headphones into, not at all on android though. My headphone port is broken so this would be an amazing thing to get working properly.
Any help or guidance would be greatly appreciated, even workarounds to get these things working.

Well actually when you are rooted, you can anything!
If nothing helps, you can write your own kernel module since you can compile yourself a custom kernel.
Therefore: yes, we can

conizius said:
Well actually when you are rooted, you can anything!
Click to expand...
Click to collapse
Alright then step 1 is complete I suppose! xD I am rooted and running the tastymehICS kernel.

Gratz good luck for everything else - access to the whole system is open now!
In my opinion guvours kernel is a bit better (got less - not to say no - SoD).
Sent from my HTC Vision using XDA

I've tried both and guevor's seemed a bit more unstable for long periods of usage --just my preference, but that's beside the point xD"
So does anyone know how I could go about creating + adding drivers to the system?

You need download kernel source from asus site and prepare build environment according google andriod development site. Then you can build your kernel a start to add new features and write new kernel modules
Sent from my HTC Desire S using xda premium

I have windows drivers, all I'd need to do is port them, not necessarily write a whole new kernel X3

you don't need write whole kernel, source code for current stock kernel are on asus web site. And you don't have sources for guevor or other kernel. Is not possible to port windows driver to andriod without source code.
Try find if linux driver for you device exist. If yes, it is easy to add it to asus kerenel for transformer. And later is possible to combine your device driver (module) with some other custom kernel.
(I have working USB dvb-t stick on my transformer)

Thanks, I misread what I thought you read when I posted (if that makes any sense x.x")
Ok, it's plug and play on my linux machine too, where could I find the driver to import? So how would I make a module + combine with the guevor/tastymehics kernel?

ok, if your device is plug and play in linux, install any terminal emulation application into transformer (if you not have now) and use "lsusb" then plug your device into usb and use lsusb command again.
You should see something like BUS 001 Device 001: ID 1a4b:0003.
Then use google and try find what module is needed for device 1a4b:0003
then you need environment for building kernel and use some comamnd to build yout kernel module.
1) make menuconfig - choice module needed for your device
2) make ARCH=arm CROSS_COMPILE=mydroid/prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin/arm-eabi- modules
this comple kernel modules for your device. Or you can ask for help from one of developer of custom kernel what you use to comile module what you need from his suource. Kernel and kernel modules musbe compiled from same version.
then copy modules to transformer and use insmod command to load it into kernel. Then you can plug in your device and it should work. (use dmesg to check if device driver is loaded)
Please post "dmesg" output after you plug your device in.(e.g last 10 lines) and output from lsusb.

Take a look in the thread http://forum.xda-developers.com/showthread.php?t=1513490
There is a lot of possibilities to play with usb drivers.

crossik1 said:
Please post "dmesg" output after you plug your device in.(e.g last 10 lines) and output from lsusb.
Click to expand...
Click to collapse
Dmesg (relevant lines):
usb 1-1.2: new full speed USB device number 28 using tegra-ehci
usb 1-1.2: new usb device found, idvendor=046d, idproduct=0a17
usb 1-1.2: new usb device strings: mfr=1, product=2, Serialnumber=0
usb 1-1.2: Product: Logitech g330 Headset
usb 1-1.2: Manufacturer: Logitech
Lsusb:
Bus 001 Device 001: ID 1d6b:0002 <-- These were here already
Bus 001 Device 026: ID 05e3: 0610<-- These were here already
Bus 001 Device 028: ID 046d:0a17 <--- this is the new entry after plugging in
These are the log results asked for. I'm looking into the module now, thanks

At this point I have 4 options to fix my headphone port (that I know of)
1. Open it and try to sauter the port back together (best but, dangerous :/)
2. Get this driver stuff to work so I can use my adapter (great)
3. Bluetooth headphones (meh sound quality from my experience, but good if they work, also expensive)
4. HDMI-Out to Rca to 3.5mm to headphones. (UGH CABLES, but all I would need is the hdmi-rca cable.)

Related

Minicom and USB to serial adapter

Im looking to test and potentially develop support for usb to serial adapters and for console connectivity with an app similar to or with Minicom. I'm a network administrator and would be able to use my Asus Transformer or other Android tablets with USB connectors to console into the equipment I manage.
Does anyone else have interest in a project like this?
Does anyone else know of a similar project?
Thanks
Sent from my Transformer TF101 using XDA Premium App
I think its a great idea.
Sent from my Transformer TF101 using Tapatalk
^x2
Sent from my SCH-I500 using Tapatalk
I've been searching around and have found that there are Bluetooth serial apadpters with software that should allow for connectivity. Reading reviews I get mixed results.
https://market.android.com/details?id=com.magicandroidapps.bluetoothterm&feature=search_result
http://www.magicandroidapps.com/wiki//index.php?title=Bluetooth_Serial_Adapters
Sent from my Transformer TF101 using XDA Premium App
that would be pretty cool, i am also a network manager and will proably buy also a transformer (just waiting for the new archos to see if they are anything good).
I think the rs323 cable approach would be better as there would be no power drain from the Bluetooth (i know its minumal but...).
I am new to android development (i am going to do my university final thesis based on a android software) but i would like to help
PS - if you connect a usb-rs232 adapter to the transformer and do "dmesg | tail" on a shell does it appear.
Also see if the last answer on this post helps htxxp://stackoverflow.com/questions/4621580/using-serial-port-rs-232-in-android
This is something I would pay a couple of english pounds for from the market.
My USB->Serial port adapter is based around the Prolific PL2303 chip which I think is pretty common, so may be a good place to start.
That would be amazing.
I am a network administrator and would love to see this on my device. Although I have an Acer A500 and not the Asus Transformer.
I plugged in my usb to serial adapter and ran dmesg. Here was the output :
Code:
usb 1-1: pl2303 converter now attached to ttyUSB0
Any idea of what app I could use to connect to that to test it out?
ipigi said:
I plugged in my usb to serial adapter and ran dmesg. Here was the output :
Code:
usb 1-1: pl2303 converter now attached to ttyUSB0
Any idea of what app I could use to connect to that to test it out?
Click to expand...
Click to collapse
If we had full GNU utilities on Android, you could use screen against /dev/ttyUSB0 and that should connect to the serial device.
Unfortunately, I don't know of any direct serial communication applications on Android.
I'm also an IT administration and could use a working rs232 solution for my tablet.
Asus Transformer 3.1 pwnd
www.MiiWiiChat.com
www.SnapSiteAdmins.com
Keyspan usb-serial adapters have drivers available in the kernel. Seems to me easiest thing to do would be to build the required kernel modules, install debian to a parition on the SD card, setup a chroot environment and install minicom/screen/serial terminal of choice. Alternatively instead of debian chroot, you could build a serial terminal client for use in the android linux environment.
Hi guys, I am a Acer Iconia A500 user but found this topic yesterday while trying to find a way to use my usb/rs232 adapter for my linux boxes at work. It seems like the only thing you need is kernel modules for the adapter you have (either prolific or ftdi) and busybox 1.19. I wrote a quick how-to for my Acer (http://forum.xda-developers.com/showpost.php?p=16703609&postcount=23) which I am also copying below. As long as you can find the kernel modules it should apply to Transformer as well:
Thanks to celsoffraga and also thor2002ro for the kernel modules, I can confirm that A500 can run a usb/serial (rs232) perfectly fine on the stock 3.1 kernel/rom.
Ingredients: Rooted, A500, kernel modules for your adapter, a terminal emulator, and busybox 1.19 which has a tool called microcom in it.
Install busybox 1.19 through this application (the other busybox installer app on the market installs a slightly different version of 1.19 that does not have microcom):
https://market.android.com/details?i...ybox.installer
Download usb2serial package for your kernel from the first post of (you can check your kernel version from Settings - About Tablet):
http://forum.xda-developers.com/show....php?t=1058713
Extract that usb2serial zip to somewhere in the tablet (I used /mnt/sdcard/modules/). There should be two files, one for Prolific chipset serial converter, pl2303.ko which is the most common one, the other one for the Fidi chipset, ftdi_sio.ko, which is what I had.
Now open your favorite terminal emulator (Both terminal emulator and connectbot works) and load the module you need, or you can load both:
Code:
insmod /mnt/sdcard/modules/ftdi_sio.ko
Now plug your usb/serial converter to the USB port, and type "dmesg" in terminal. You should see something like "FTDI USB Serial Device converter now attached to ttyUSB0" , which means everything is detected fine and attached to the correct device point in linux.
Now comes the serial terminal emulator, which is called "microcom".
In terminal, just type microcom and it should return a short help text. Our device name (TTY) is /dev/ttyUSB0 . So if I want to connect to a rs232 port with 9600 baud rate, the command should be:
Code:
microcom -s 9600 /dev/ttyUSB0
Tadaaa!​
If it means I no longer have to undock and lug my massive work laptop down to the datacentre every time, I'm all for it.
fincan - awesome, can't wait to get my dock to test that out. Thank you.
Very interested in ur app, keep me posted...
Thanks
Sent from my Transformer TF101 using Tapatalk
Tr
fincan said:
Hi guys, I am a Acer Iconia A500 user but found this topic yesterday while trying to find a way to use my usb/rs232 adapter for my linux boxes at work. It seems like the only thing you need is kernel modules for the adapter you have (either prolific or ftdi) and busybox 1.19. I wrote a quick how-to for my Acer (http://forum.xda-developers.com/showpost.php?p=16703609&postcount=23) which I am also copying below. As long as you can find the kernel modules it should apply to Transformer as well:
Thanks to celsoffraga and also thor2002ro for the kernel modules, I can confirm that A500 can run a usb/serial (rs232) perfectly fine on the stock 3.1 kernel/rom.
Ingredients: Rooted, A500, kernel modules for your adapter, a terminal emulator, and busybox 1.19 which has a tool called microcom in it.
Install busybox 1.19 through this application (the other busybox installer app on the market installs a slightly different version of 1.19 that does not have microcom):
https://market.android.com/details?i...ybox.installer
Download usb2serial package for your kernel from the first post of (you can check your kernel version from Settings - About Tablet):
http://forum.xda-developers.com/show....php?t=1058713
Extract that usb2serial zip to somewhere in the tablet (I used /mnt/sdcard/modules/). There should be two files, one for Prolific chipset serial converter, pl2303.ko which is the most common one, the other one for the Fidi chipset, ftdi_sio.ko, which is what I had.
Now open your favorite terminal emulator (Both terminal emulator and connectbot works) and load the module you need, or you can load both:
Code:
insmod /mnt/sdcard/modules/ftdi_sio.ko
Now plug your usb/serial converter to the USB port, and type "dmesg" in terminal. You should see something like "FTDI USB Serial Device converter now attached to ttyUSB0" , which means everything is detected fine and attached to the correct device point in linux.
Now comes the serial terminal emulator, which is called "microcom".
In terminal, just type microcom and it should return a short help text. Our device name (TTY) is /dev/ttyUSB0 . So if I want to connect to a rs232 port with 9600 baud rate, the command should be:
Code:
microcom -s 9600 /dev/ttyUSB0
Tadaaa!​
Click to expand...
Click to collapse
Tried on my Trasformer with Revolution 3.5 nd it work great. Now I can control my PLC application from tablet.
Thanks a lot.
fincan said:
Hi guys, I am a Acer Iconia A500 user but found this topic yesterday while trying to find a way to use my usb/rs232 adapter for my linux boxes at work. It seems like the only thing you need is kernel modules for the adapter you have (either prolific or ftdi) and busybox 1.19. I wrote a quick how-to for my Acer (http://forum.xda-developers.com/showpost.php?p=16703609&postcount=23) which I am also copying below. As long as you can find the kernel modules it should apply to Transformer as well:
Click to expand...
Click to collapse
Thanks for the tip and the links. I'm now able to connect my old Garmin GPS device to my Asus Transformer and use "pygarmin" Python scripts on SL4A : no need to carry a PC for my next vacations!
I was able to connect to a Oracle / SUN /T5220 server serial management port with the BlueTooth adaptor.
Ebay HC-06-D, Bluetooth to RS232 serial communication converter module, slave mode
DIYGSM Wholesale
I converted it from a DB9 serial to RJ45
DB9 PIN 2 TXD to RJ45 PIN 3 RXD
DB9 PIN 2 RXD to RJ45 PIN 6 TXD
Ground and black wire for the USB to PIN 5 of the RJ45.
USB connector supplies the DC to run the module.
Don't for get to pair the module with your Transformor password 1234.
Running ASUS Transformer TF101 B1 32GB Tablet Honeycomb ver. 3.2.1
Terminal Application SENA BTerm found on the Google market.
Hi
kerenoc01 said:
Thanks for the tip and the links. I'm now able to connect my old Garmin GPS device to my Asus Transformer and use "pygarmin" Python scripts on SL4A : no need to carry a PC for my next vacations!
Click to expand...
Click to collapse
Unfortunately, my video on demand provider (in France) uses an application that checks if the tablet is rooted. I had to unroot to be able to download and watch films and catchup TV.
Is there any hope to control a FTDI interface from user space (libusb, libftdi)?
Or could I install the .ko driver so that is survive the unroot process (using the Universal script)?
Regards
ICS update?
Has anyone got this to work in ICS? If so what kernel module are you using? Tried the one from the A500 link but I get an "Invalid Argument" while running insmod

galaxySII-I9100 Usbhost mode with external wifi card & Backtrack5 (Chroot & usb help)

galaxySII-I9100 Usbhost mode with external wifi card & Backtrack5 (Chroot & usb help)
I finally got this working very well with backtrack5 lxde.
i'm trying to take advantage of usb host mode on my device. I want to hook up a alfa network card(AWUS036h) because the wireless card on my phone doesnt allow layer-2 transfers or packet injection. (useless)
i've made a cable that grounds pin 4 (making it a host cable) and powers the card with DC.
the phone recognizes the card as unknown (obviously because android os doesnt have the nessesary drivers)
when I use lsusb: (with host unplugged)
bus 001 device 001:ID 1d6b:0002
bus 001 device 002:ID 1519:0020
when I use lsusb: (with host plugged)
bus 001 device 001:ID 1d6b:0002
bus 001 device 002:ID 1519:0020
bus 002 device 001:ID 1d6b:0002
bus 002 device 002:ID 05e3:0608
So Definitely recognized.
my question is how can I bind the USB device in android to the backtrack chroot session.
once it's in backtrack i can install the driver.
any update .....
you got me in since the first post of this amazing idea, looking forward for the progress.
update
Hey yeah i got it bound properly! but i'm now working on cross compiling the driver for the ARM processor
new thread over here:
http://forum.xda-developers.com/showthread.php?p=16333147
if you have any experience cross compiling, any help would be awesome, definitively never done this before

USB GPS On Tablet

Hi,
I’ve been working on trying to connect my USB GPS dongle (Chipset: Ublox 6) to my tablet through USB OTG Cable. Since my tablet isn’t popular (Can’t find on the forum’s list), I had to do it myself.
(My knowledge about Linux isn’t that good (I’m a high school student who is on summer vacation), please forgive me if I made a mistake )
1.Ublox said the driver for Linux is cdc-acm, so I downloaded from a website and tried to install the kernel module (cdc-acm.ko) through insmod, but a vermagic error came up, said that the module’s version is 3.0.8 and mine is 3.0.8+, I tried using insmod –f , still no good luck.
2.Then I tried to modify the module’s vermagic with a HexEditor, install it again, but I got a “Segmentation falut” error.
3.Then I tried to use “busybox modprobe cdc-acm”, but it says “cannot parse modules.dep”, so I tried to create the folder “/lib/modules/3.0.8+” manually (I know this could be silly), then “busybox depmod”, finally run “busybox modprobe cdc-acm” again, but still the same error.
4.Then I remember that when I plug in the device, dmesg said
“usb 1-1: new full speed USB device using….”
“usb 1-1: New USB device found, idVendor=1546, idProduct=01a6”
Then nothing happened.
5.At last, I found out that I have “usb_modeswitch.d” in /etc
And my device profile isn’t listed there, but how could I know my device’s profile?
I know the vendor, the product, but how about the “MessageContent”?
By the way, what’s the difference between “DefaultVendor” and “TargetVendor”, “DefaultProduct” and “TargetProduct”
I know the post may be too long,
But to sum up, Is it possibly going to work if I create my Device Profile and everything will work out?
I still doesn’t have “cdc-acm.ko” install yet. (Though I already put it in /system/lib/modules)
By the way, I don’t have the folder /dev/ttyusb0 /dev/usb/tty0
I only have /dev/bus/usb/001 with nothing in it.
Sorry again for my bad Linux knowledge.
Thanks A Lot!!!
Golden Chang

USB-Networkadapter driver

Hello everybody,
I want to connect my iconia A700 with wired network. So i plugged in my usb network adapter.
And this is what dmesg has showed
<6>[46753.465362] tegra-ehci tegra-ehci.0: new USB bus registered, assigned bus number 1
<6>[46753.491903] tegra-ehci tegra-ehci.0: irq 52, io mem 0x7d000000
<6>[46753.514954] tegra-ehci tegra-ehci.0: USB 2.0 started, EHCI 1.00
<6>[46753.516316] utmi_phy_irq: usb device plugged-in
<6>[46753.517581] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
<6>[46753.518916] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
<6>[46753.519656] usb usb1: Product: Tegra EHCI Host Controller
<6>[46753.521311] usb usb1: Manufacturer: Linux 3.1.10+ ehci_hcd
<6>[46753.522243] usb usb1: SerialNumber: tegra-ehci.0
<6>[46753.532426] hub 1-0:1.0: USB hub found
<6>[46753.533294] hub 1-0:1.0: 1 port detected
<6>[46753.855044] usb 1-1: new full speed USB device number 2 using tegra-ehci
<6>[46753.940886] usb 1-1: New USB device found, idVendor=0bda, idProduct=8150
<6>[46753.942477] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
<6>[46753.943250] usb 1-1: Product: USB 10/100 LAN
<6>[46753.944526] usb 1-1: Manufacturer: REALTEK
<6>[46753.945240] usb 1-1: SerialNumber: 0219
Click to expand...
Click to collapse
is there a possible solution for my problem? Or has anyone a working driver?
1) This should go in general.
2) You can try loading the attached module using insmod or modprobe.
pawitp said:
1) This should go in general.
2) You can try loading the attached module using insmod or modprobe.
Click to expand...
Click to collapse
Is there also a driver for the Delock 61147 (MOdule need is mcs7830.ko)?
elhennig said:
Is there also a driver for the Delock 61147 (MOdule need is mcs7830.ko)?
Click to expand...
Click to collapse
All compiled from Acer's released kernel source. (Note: don't use these on CyanogenMod, the drivers are already built into the kernel)
asix.ko
cdc_eem.ko
cx82310_eth.ko
dm9601.ko
gl620a.ko
hso.ko
int51x1.ko
ipheth.ko
kalmia.ko
lg-vl600.ko
mcs7830.ko
net1080.ko
plusb.ko
sierra_net.ko
smsc75xx.ko
zaurus.ko
Pawitp, while you're at it, maybe you can compile md4.ko? In your CM10 rom, no md4.ko - cifs manager doesn't work without it on stock rom...
zeer said:
Pawitp, while you're at it, maybe you can compile md4.ko? In your CM10 rom, no md4.ko - cifs manager doesn't work without it on stock rom...
Click to expand...
Click to collapse
MD4 has been built into the CM kernel for maximum compatibility. Anyway, here's the md4.ko if you want to use stock.
Hi pawit, thanks a lot for the module pack.
One question comes up as the module loads perfectly: How can I route traffic like for the standard mail client through eth0 device? The mail client and the play store app seem to need a wlan device
I don't know. The standard android is supposed to recognize eth0 as a valid internet connection and route automatically. CM does, I'm not sure how Acer configured it.
Sent from my GT-I9000 using xda app-developers app
how does one implement this into stock?
Please, could someone help me!
Iam on Icianian 2.4 and try to get the dm9601.ko work!
But every time, i load the kernel module, the tap froze!
any idea?
Could the kernel module wrong?
PLEASE help me
djsven said:
Please, could someone help me!
Iam on Icianian 2.4 and try to get the dm9601.ko work!
But every time, i load the kernel module, the tap froze!
any idea?
Could the kernel module wrong?
PLEASE help me
Click to expand...
Click to collapse
I'm working on this for iconiaN
It's going to require more than just kernel modules to work
Hi,
not realy!
I can tell you, it work!
But you have to plugin, get on terminal and configer the eth0.
netcfg eth0 dhcp
setprop net.dns1 8.8.8.8
and it work
I've got it working now without having to use terminal.
Tested using a Galaxy S Mini USB Tether.
It uses usb0 instead of eth0 but it worked without issues.
I have built the kernel with the network modules built-in and also patched framework files.
Bamm your are the best.This would realy nice.
Please could you build the right mount points inside the kernel?
Think about sdcard.This is /Removeable/xxx
I guess its /mnt/external_usb
Can we point the uab device to eth0?
So Android Firewall would work.
Gesendet von meinem GT-I9100 mit Tapatalk 2
pawitp said:
All compiled from Acer's released kernel source. (Note: don't use these on CyanogenMod, the drivers are already built into the kernel)
asix.ko
cdc_eem.ko
cx82310_eth.ko
dm9601.ko
gl620a.ko
hso.ko
int51x1.ko
ipheth.ko
kalmia.ko
lg-vl600.ko
mcs7830.ko
net1080.ko
plusb.ko
sierra_net.ko
smsc75xx.ko
zaurus.ko
Click to expand...
Click to collapse
Hi, i have A700 with original Acer software. I made it to the "root" description: http://forum.xda-developers.com/showthread.php?t=1953917 , and i ave unlocked bootloader (http://forum.xda-developers.com/showthread.php?t=1710755).
I want to use the tablet Asix AX88772 with, but when they want linked asix.ko was inserted, I get this message:
[email protected]:/system/lib/modules # modprobe asix.ko
modprobe: chdir(/lib/modules): No such file or directory
We could be the problem? Can you help me?
The correct sw version (Settings menu/ About tablet):
Android version: 4.1.1
Kernel version: 3.1.10+
Image version: Acer_AV051_A700_RV16RC02_WW_GEN1
Build number: Acer_AV051_A700_1.050.00_WW_GEN1
Image P/N: FM.S1MA0.0.40

[Q] need usb to ethernet drivers for Micromax A117

i have a usb to Ethernet adapter 10/100 which cabe with its CD. I hooked it up with my device but no luck. :crying:
could not see eth0 in terminal using netcfg .
after reading some posts about usb to Ethernet on xda , I rooted the phone, ran the makefile provided in the CD. still no luck.
So finally after reading for 2 days, I have options to
Install Ethernet drivers (don't know how)
Install kernel with Ethernet drivers (will change my phone config completely, maybe need to recalibrate later)
Flash a new ROM with Ethernet drivers (will need to reinstall everything)
Don't know the best option. Kinda stuck.
I don't want to loose the current config of cpu speed, etc. provided in the current Android
FYI: The device is detected on the device using usb host controller. Usb to Ethernet Model "Terabyte USB To Lan Card Ethernet Adapter Speed 10/100" found on Amazon. Manufacturer CH9100 Make CH9200. drivers provided has a "ch9x00.c" dunno what to do with it. (I mean after cross compiling).
attached the .c file for refrence.

Categories

Resources