Related
The SGS2 supports USB OTG which means it can play host to certain low-powered USB devices. Unfortunately the kernel is configured with a whitelist that means it will only connect to HIDs, printers, PTP cameras and mass storage devices.
I wanted to begin developing an application using custom (vendor specific) USB hardware and so started experimenting to see if it was possible. There is a full description of how I went about it on my blog. To summarise, one of the ways to enable vendor specific USB devices is to edit the file "drivers/usb/core/sec_whitelist.h" and add the following to both whitelist tables:
Code:
{ USB_DEVICE_INFO(0xff, 0x0, 0x0) }, /* vendor specific USB devices */
There are two reasons for this post, the first is to provide information to help others that may want to do the same thing. The second is to try and encourage kernel modders to include my changes (or disable the whitelists altogether) thereby providing application developers the means with which to communicate with custom hardware.
Regards,
Dan
Nice idea, I may be completely wrong, but if you remove the white list it, will accept other hardware? or is it dependant on it being there?
Sent from my GT-I9100 using Tapatalk
Does you also test Google ADK ??
Do you know if it would work with the S2 ?
@MacaronyMax: As I mentioned in my blog post, it is possible to disable the whitelist entirely via the kernel options which I assume would allow any device to connect, but I have not tested this and so am unsure.
@xlanhackerx: The ADK relies on accessories that have been designed to act as host and use an Android specific protocol, whereas I am interested in the SGS2 acting as host so that I can connect custom third-party slave devices to it. Therefore I have not looked at the ADK at all and I do not have the hardware available to even play with it.
Regards,
Dan
Thank you. Maybe a custom ROM has it built in?
Thank you so much terranim for this discovery, and for posting it.
I have been struggling on that for a week now, not understanding why my driver was apparently not even called.
I was thinking it could exist a ROM that has this whitelist removed... anyone has a clue? (Lite'ning 6.1 / ninphetamin 2.0.5 or .11 have is using sec_whitelist.h)
I don't think that any kernel developers have disabled this whitelist yet! However there is now another major problem: In the latest ROM from Samsung it is reported that they have removed the USB host related libraries in the Android SDK!
My hack to the kernel will still work and allow devices to be connected, but we will no longer be able to communicate with custom USB devices via an Android application (unless we write a C library to talk to the devices directly or via libusb).
Hopefully developers will restore these libraries in their own custom ROMS.
I guess I am not too far from running this whitelist with your new line on a home compiled version of ninphetamine... see http://forum.xda-developers.com/showpost.php?p=18123923&postcount=2828 and http://forum.xda-developers.com/showpost.php?p=18123923&postcount=2833
I just got to to compile completely a minute ago, and will test it on Thursday.
I think I will stick to custom ROMs / kernel now... and possibly some I compile myself.
Did you read about libftdi? That could help you. Also that Samsung removed USB API might not harm as long as you use a serial port created by the serialusb driver.
edit / ps: nice to work in a team
guys,
is there any chance this USB Host mode could work with a headphones USB DAC/Amp like the FiiO E7?
I really envy the iPod/Pad/Phone users and their ability to have pure sound of their devices while on the go. I know we have HDMI/MHL but sadly there are no headphones amps using this link
I would be interested in this as well.
it is correct that Samsung have removed the USB Host API,
As far as I can tell, they never intended to leave it there to begin with, but I do know that the particular API was introduced in API 11 (Honeycomb).
Sent from my GT-I9100 using Tapatalk
What kernel options are required for this and what is needed to test connectivity? I have an older Galaxy S device and I'm trying to reproduce what you've done here. I just got an ADK for christmas and I've been working with Cyanogenmod kernel source in an attempt to get things operating. From what I can see I need a kernel driver. It would appear that it's begining to recognize that *something* is plugged in, but it's not enumerating.
Anything you can show me would be helpful. What do you see in dmesg when ADK or any other device is connected?
Hi. I know this is an old thread but I want to know if there is some patch to enable USB DACs on the S2. I can not find anything that can enable this like the S3. If some one knows some thing please reply.
Thanks
I got fed up with crappy wireless reception in a hotel and decided to use my RTL8187 based Alfa USB wireless adapter with my Prime. Here's how it works, pretty rough and open to improvement but it works.
Set up a chroot (ubuntu/debian will work); everything is done within that chroot
Compile and install the drivers for your usb adapter (see the Kernel modules thread for instructions)
apt-get install wicd-curses (or wicd-cli if you prefer), wpasupplicant and dbus plus any of its dependancies
Turn off the broadcom wifi that's controlled by android
insmod your modules (in my case eeprom_93cx6.ko, mac80211.ko, rtl8187)
start dbus and wicd (/etc/init.d/dbus start; /etc/init.d/wicd start)
run wicd-curses (or wicd-cli), refresh the network list and connect to your network
configure dns for android to your dns or to googles (setprop net.dns1 8.8.8.8)
???
Profit
To stop using external usb wifi, reverse the steps; basically:
stop wicd and dbus (/etc/init.d/wicd stop; /etc/init.d/dbus stop)
kill any running dhcp clients (killall dhclient)
rmmod your modules (in my case eeprom_93cx6.ko, mac80211.ko, rtl8187)
To be able to insert mac80211 without it complaining about missing symbols for ewma_init and ewma_add, I had to add lib/average.c to the mac80211 module; it's pretty simple, here's how i did that:
Go to your prime kernel source tree (e.g. /usr/src/linux)
cp lib/average.c net/mac80211/
Edit net/mac80211/Makefile and add average.o to the list of objects for mac80211-y (don't miss the trailing backslash if you add it halfway)
For simplicity sake I've added the modules for an rtl8187 based usb nic to this post. These are built against the 9.4.2.7 kernel source, and work fine for the 9.4.2.11 release (current ICS release as of Feb 07 2012).
Oh and I don't recommend doing this with androids wifi turned on, it kind of breaks it until you reboot your tab. So if you're smart you'll script the above and spit out a nice warning that your broadcom module is still loaded and then exit. I had no problems switching between external USB wifi and built-in wifi as long as I only turned one of them on exclusively.
Enjoy solid wifi on your prime
,can you show screenshots of how much of an improvement it was using a USB wifi device vs. Stock wifi. You should relay this info in the kernel modules thread n SaturnDe can probably clean it up or simplify more or make it easier to implement. He could add it to his driver packs and make a new ATP tweaks version. For quick app enabling of this USB wifi method. This is very cool. I really would like to see how much of an improvement in reception thisngives.
You can't use the external wifi together with the android wifi control, it isn't compatible. So screenshots make no sense. This is why you need the chroot and wicd-curses; that's where you configure your wifi connection, not in android.
As for the increase in reception, it depends on your usb adapter. If you have one with an external antenna that is 6 feet long, you can figure out how much of an improvement that would be. Nothing is stopping you from connecting an even bigger wifi antenna if you want. So, reception increase could be anywhere from a few dB up to long range 5km wifi using powerful long range antennas.
infernix said:
You can't use the external wifi together with the android wifi control, it isn't compatible. So screenshots make no sense. This is why you need the chroot and wicd-curses; that's where you configure your wifi connection, not in android.
As for the increase in reception, it depends on your usb adapter. If you have one with an external antenna that is 6 feet long, you can figure out how much of an improvement that would be. Nothing is stopping you from connecting an even bigger wifi antenna if you want. So, reception increase could be anywhere from a few dB up to long range 5km wifi using powerful long range antennas.
Click to expand...
Click to collapse
Lol, I believe you're being told to do it yourself 'darin. I have a nice little wifi usb adapter, I'll give this all a whirl later on after work.
Certainly not a solution for myself, but a simple workaround for those uncomfortable with modding and who don't mind annoying sticks coming from their tablets/laptops. Not saying anything against this, I just always hated using older laptops with usb adapters and don't see me liking it more on a smaller, more stream-lined device.
buxtahuda said:
Certainly not a solution for myself, but a simple workaround for those uncomfortable with modding and who don't mind annoying sticks coming from their tablets/laptops. Not saying anything against this, I just always hated using older laptops with usb adapters and don't see me liking it more on a smaller, more stream-lined device.
Click to expand...
Click to collapse
FWIW, this can also be used to run aircrack or other wifi security analysis tools with, which aren't able to ever run with the builtin broadcom adapter. So it has other uses too
infernix said:
FWIW, this can also be used to run aircrack or other wifi security analysis tools with, which aren't able to ever run with the builtin broadcom adapter. So it has other uses too
Click to expand...
Click to collapse
Has anyone tried doing so with their ATP? I'd be very interested to know. I've had a bunch of problems with the build-in card in terms of using the bt5 pentest suite so this might potentially solve some of those problems
Yeap, done with BT5 for arm and ALFA AWUS036H (Rtl8187), apt-get the aircrack tool and bang! : monitoring mode enables
Thanks a lot to the OP for the modules !
what version of linux are you guys using? I was trying to install wicd-cli and wicd-curses through my bt5 and had no success. wicd-curses just can't install on arm bt5 for some reason stating that some dependant libraries are incompatible. wicd-cli gives me an fopen error during install and then craps out when I try to run it.
Thanks for the info, one question tho.
Did you have to do anything special to get the wicd client to run, I get the error 'cannot connect to dbus socket' or something to that effect..
I have tried wicd-cli, -curses, and -gtk
Any help would be appreciated.
Dear Sirs,
This may be newbish, but where can I get the source for the kernel modules the op mentioned. I have obtained my kernel source for my phone, but can't seem to find the source I actually need to compile, rtl8187, etc.
Update:
Alright, I found them, they are part of the compat-wireless package. http://www.aircrack-ng.org/doku.php?id=compat-wireless
I still can get it to compile, but I guess I need to learn a little about cross compiling.
I did find a kernel for my device with the modules already built in, used and voila. Cracked a wep key in about 5-10 minutes. I was happy, happy, happy. Then, a ruinous moment occurred. Almost the very second aircrack-ng finished cracking the key, my phone came up with a low battery warning, I was using a awus036h wifi adapter and it was draining my battery fast, I had about 50% to begin and had the 14% warning hit me about 10 minutes in, funny thing is the warning is usually 14%, but this time was 13%, go figure? Anyway seconds after the warning my phone just blanks, turns off. I plug it in and reboot and the battery is at 0% and stuck there, so a word of warning:
An external wifi adapter my require more usb host juice then the battery can safely supply. I have seen people using powered hubs to circumvent draining the phone battery, I would defintiely recommend the practice.
Ok, if the last poster was noobish then i dont even know where i would be because i need help just deciphering wtf OP said.
I realize the drivers for each wireless adapter are going to be a little different... because each wireless adapter is different, but can someone translate this into non geek? I dont even know where to begin.
Can this work using the ubuntu/backtrack/linux installers from the market? Ive muddled my way through that and got linux working that way, or is this completely different?
I just wanted to say THANKS! I now have my Alpha card working in Monitor mode on my TF300T Transformer PAD and man it feels good! I have never been able to get this to work and have been trying to use an external card in backtrack for a loooong time! Thank you 1 million times!
Hi! Thanks for instructions. I got compile and install driver for my G-Sky (rtl8187) on AllWinner A10 (Ainol Aurora II) with android 4.0.4 and 3.0.8 kernel. All network settings were done with tablet's terminal (without PC). Only one problem remains - I can't undestant connecting to wpa networks - it's too difficult. Here: http_://nuzhen-sovet.ru/content/podklyuchenie-vneshnego-wi-fi-adaptera-k-planshetu-na-android-4 you can read my manual with connection to nonWPA networks on russian (read with google translate).
I am wondering if something like this could be used for the folks concerned with bt\wifi fallout. There are plenty of bluetooth dongles out there that are small enough to leave in the dock full time. I have the fallout I just dont use bluetooth enough to care.
BlackUbuntu 12.04 V4: http://kat.ph/blackubuntu-12-04v4-for-android-s3-tested-t7252750.html
So how would I go about this on the galaxy s3 l710.
My alfa card reads on pcap app.
Hi everyone.
I plan on using the Bolse adapter : http://www.mybolse.com/products_more.asp?id=96 that has an Android driver with my Galaxy Note2.
Do I have to go through all these steps with it considering it has an Android driver?
Thanks
infernix said:
I got fed up with crappy wireless reception in a hotel and decided to use my RTL8187 based Alfa USB wireless adapter with my Prime. Here's how it works, pretty rough and open to improvement but it works.
Set up a chroot (ubuntu/debian will work); everything is done within that chroot
Compile and install the drivers for your usb adapter (see the Kernel modules thread for instructions)
apt-get install wicd-curses (or wicd-cli if you prefer), wpasupplicant and dbus plus any of its dependancies
Turn off the broadcom wifi that's controlled by android
insmod your modules (in my case eeprom_93cx6.ko, mac80211.ko, rtl8187)
start dbus and wicd (/etc/init.d/dbus start; /etc/init.d/wicd start)
run wicd-curses (or wicd-cli), refresh the network list and connect to your network
configure dns for android to your dns or to googles (setprop net.dns1 8.8.8.8)
???
Profit
To stop using external usb wifi, reverse the steps; basically:
stop wicd and dbus (/etc/init.d/wicd stop; /etc/init.d/dbus stop)
kill any running dhcp clients (killall dhclient)
rmmod your modules (in my case eeprom_93cx6.ko, mac80211.ko, rtl8187)
To be able to insert mac80211 without it complaining about missing symbols for ewma_init and ewma_add, I had to add lib/average.c to the mac80211 module; it's pretty simple, here's how i did that:
Go to your prime kernel source tree (e.g. /usr/src/linux)
cp lib/average.c net/mac80211/
Edit net/mac80211/Makefile and add average.o to the list of objects for mac80211-y (don't miss the trailing backslash if you add it halfway)
For simplicity sake I've added the modules for an rtl8187 based usb nic to this post. These are built against the 9.4.2.7 kernel source, and work fine for the 9.4.2.11 release (current ICS release as of Feb 07 2012).
Oh and I don't recommend doing this with androids wifi turned on, it kind of breaks it until you reboot your tab. So if you're smart you'll script the above and spit out a nice warning that your broadcom module is still loaded and then exit. I had no problems switching between external USB wifi and built-in wifi as long as I only turned one of them on exclusively.
Enjoy solid wifi on your prime
Click to expand...
Click to collapse
Well, after i read most replies, most don't understand how to get things set up, please describe it a bit more, organize things, like section for requirements, etc.
Explain to Kernel and Kernel Modules and how to build them
For everyone who didn't Understand Step 2, I Will explain and tell you how to do that, Please read it all to Understand:highfive::
What is Kernel?
A Kernel is Simply a Bridge Between Software and Hardware.
So The Drivers are Inside the Kernel itself?
For Short, Yes. In Linux Overall (Android, Ubuntu, etc.), Drivers are Included Inside the Kernel it self, Some say for Performance Improvements.
Your Phone's Android Kernel Include all the Drivers required for your phone to function, And for the Devices that Support USB-OTG there are a Plenty of Drivers Included, However, Drivers like the one's for the RTL8187 Most likely won't be included.
What are Kernel Modules?
Kernel Modules are Files that have *KO Extension That can be loaded Through insmod and Unloaded through rmmod Command-Line Commands, These files is to Extend the Functionality of the Kernel Without Touching/Editing it at all,It Just does some effect Until the Modules are Unloaded/Device Rebooted, Kernel Modules useful Either by Adding a Driver or by adding other things..[/B]
What are the Disadvantages of Kernel Modules?
Well, There's no Difference Expect you need to reload the Kernel Modules after a Reboot or Module Unload, Some Tutorials Show you how can you add a command to load these Modules after each boot up
So A Kernel Module is the Solution for adding a driver without modifying the kernel?
Yes, Kernel Modules is the Solution here, Each USB Device needs it's own Kernel Modules, so you can't Download a Module and Use it, You need to Compile yours.
What is the Requirements to build a Kernel Modules?
1.You need Linux Environment, Use either the Chrooted Linux On you phone, or, better use Ubuntu or any linux Distro on a Computer, Build the Module, and load it on the Chrooted Linux on your phone,
2.You need an Internet Connection in the Linux Environment.
3.You need the Driver Source code for your USB Device. Get them from the Manufacturer if he offer them, if he doesn't, You need to Look in the internet until you find one, if you were unable to find the Source code for you Device but found similar Devices Driver source code, see if the Other Device Driver is Compatible with yours usually a Single Driver work on many Devices, you need to look by your own way
4.You Also need some Programs to install in Order to be able to Compile the Kernel Module, Enter these Commands in a Terminal, Pressing Enter after each Line, and make sure you have the Internet Connection:
HTML:
sudo apt-get install fakeroot
sudo apt-get install build-essential
sudo apt-get install dpkg-dev
sudo apt-get install linux-headers-$(uname -r)
For the most Important Part, make the Kernel Module?
1.Unpack the Kernel source code, if it's Extension is bz2 then use:
HTML:
tar jxvf <package-name>
Where <package-name> is the Compressed File name, and make sure you put it in the Home Folder, if it's Extension is gz or tgz the Unpack it with:
HTML:
tar zxvf <package-name>
2. Second, Find config.mk and Open it with gedit or whatever Text editor you like, at first, there is two lines about WPA Support, make sure they end with y rather than n, Save and close.
3.Third, and last, is to Compile the Kernel Module, Open Terminal and use cd command to get inside the folder that contains the Source code, and Simply Execute:
HTML:
sudo make
And now you own the Kernel module, Now copy the Kernel Module to the root of your Internal Storage, Open up a Terminal and Type:
HTML:
cd /mnt/sdcard
insmod <kernel-module-name>.ko
And make sure Internal Wi-Fi is OFF and now your Kernel Module works, Follow the Guys steps to get it working on Chrooted distro
Troubleshooting:
If you find a similar Device Driver Source Code and after Compiling it doesn't work plug the Device in, Open a Terminal and type:
HTML:
sudo lsusb
and Find your Device in the Output and you should find Numbers for it Looks Like 0x148F,0x2070 or whatever, Write them down.
After Step 2 Follow These Steps:
Find usb_main_dev.c and Under #ifdef Section add the Following Line:
HTML:
{USB_DEVICE(0x148F,0x2070)}, /* Your Device name, this is just a Comment. */
Where You should replace 0x148F,0x2070 with the String you just wrote down.
And then Continue Other Steps and it should work.
Please Click "Thanks" Button if i Helped you
Also, if you had any Problems and fixed them Just tell me so i can add them to Troubleshooting Section.
Hi! Im going on vacation in 2 weeks and I want this to work on my Nexus 5. I run CM12. I think I can manage the kernel part myself (there are a lot of nexus 5 kernels which include the driver of my wifi dongle: TP-Link WN722N). but I don't know how to do the next steps (for example step 4 and 5). Can someone give me a detailed tutorial with command lines? I am familiar with terminal.
My step again:
Nexus 5 running CM12
Wifi dongle: TP-Link WN722N
thanks in advance!
Sorry for the extremely noob question, but will this make the wifi adapter work in the chroot or on the entire device?
I'm trying to get together all the files I need to have a go at getting a DVB-T tuner working with the Tablet S - I have all the DVB-T modules, but for a lower kernel revision, and from what I've read they probably wont work with this kernel.
I'm really not looking forward to compiling these myself as I use Windows 7 and am aware that there are issues with compiling Linux on a Windows system and being new to Android/Linux cross compiling I could cause myself more problems than I solve.
So the question is, has anyone got info on a repository for these modules compiled for ICS at our kernel revision?
Have you seen this?
http://forum.xda-developers.com/showthread.php?t=1870077
TUN, NTFS, CIFS, usbserial, fuse kernel modules for 2.6.39.4, attached
You could post your request there. And if you manage to get it working could youshare a solution please?
Sent from my Sony Tablet S using xda app-developers app
could you please explain what is needed to make this work?
post some links perhaps.
Hi there,
I've uploaded a bunch of dvb files to forum.xda-developers.com/showthread.php?t=1870077 for you.
I'm not sure if those are the ones you need, but if you post there what you are trying to do and what specific modules you need, then perhaps I can help further.
A
praed0r said:
I'm trying to get together all the files I need to have a go at getting a DVB-T tuner working with the Tablet S - I have all the DVB-T modules, but for a lower kernel revision, and from what I've read they probably wont work with this kernel.
I'm really not looking forward to compiling these myself as I use Windows 7 and am aware that there are issues with compiling Linux on a Windows system and being new to Android/Linux cross compiling I could cause myself more problems than I solve.
So the question is, has anyone got info on a repository for these modules compiled for ICS at our kernel revision?
Click to expand...
Click to collapse
@abactor_xda: your link directs to general section of tablet s forum. I guess you should put a link to your modules post.
could you, please provide more information about those files you uploaded.
where did you get them from? what software is used with? do I insmod them the same way as other kernel modules?
this is what I find promising, but development seems to be stopped: https://github.com/chrulri/droidtv
when I install this app it says something about needing kernel modules and drivers or something like that. are this those modules and drivers. how do I chose which of them I need?
I have this usb tuner: http://www.avermedia.com/avertv/Support/Download.aspx?Type=Software&id=31&tab=APDriver
Can somebody please help me or point me in right direction
thank you
Hi Kulen,
Thanks, I'll fix that link. The files i uploaded are just more compiled kernel modules, you'll need to use the tar -xvzf flag to unzip them as it was a bigger tar file than xda would allow. They're compiled from the kernel sources available from Sony...I don't have the link to the sources at the moment, but if you search the forums you'll be able to find it. The modules are loaded with insmod, the same way as before, yes. I have no idea how one would go about putting these to use but it seems like in addition to the kernel module you'll need a driver and perhaps more kernel modules for an ARM architecture that will work with the 2.6.39.4 kernel version. Looking at the avermedia's website, the support they give is for an x86 architecture so you may be out of luck unless somebody can help you out over here:
linuxtv.org/wiki/index.php/AVerMedia_A828
Have you ever gotten this usb tuner to work with a real linux box?
Good luck,
a
kulen said:
@abactor_xda: your link directs to general section of tablet s forum. I guess you should put a link to your modules post.
could you, please provide more information about those files you uploaded.
where did you get them from? what software is used with? do I insmod them the same way as other kernel modules?
this is what I find promising, but development seems to be stopped: https://github.com/chrulri/droidtv
when I install this app it says something about needing kernel modules and drivers or something like that. are this those modules and drivers. how do I chose which of them I need?
I have this usb tuner: http://www.avermedia.com/avertv/Support/Download.aspx?Type=Software&id=31&tab=APDriver
Can somebody please help me or point me in right direction
thank you
Click to expand...
Click to collapse
Sent from my Sony Tablet S using xda app-developers app
Well, thank you.
You are really fast and willing to help.
I did make this tuner work with linux mint on x86. Actually my friend Google did it mostly, so I'm not sure what I did any more. It was a long time before and I'm not very familiar with linux.
This is what Avermedia site says for both x86 and x64 driver:
"The following distributions, with their stock kernel, are officially tested and supported:
1. Open SuSE Linux 10.3
2. Mandriva Linux 2008
3. Fedora Core Release 6
4. Fedora Core Release 7
5. Ubuntu 7.10
6. Ubuntu 8.10
7. Ubuntu 9.04
8. Ubuntu 9.10
9. Mandriva Linux 2009
Sent from my Sony Tablet S using xda app-developers app"
I guess I should find some generic ARM driver that works with my tuner?
Is there a way to batch insmod (all at once) all this modules? something like insmod *.ko?
Do I need all those modules? How do I find that out?
Hi there,
You're welcome, I'm happy to help.
In order to load all modules within a directory (and its respective sub-directories), try:
Code:
su
cd /data/local/kmods
find . -name "*.ko" -exec insmod {} \;
[\CODE]
Or just
[CODE]
su
find /data/local/kmods/ -name "*.ko" -exec insmod {} \;
[\CODE]
I'm not sure what kernel modules you'll need, but I would look at the #include files in the driver and/or ask the people over in the forum that you listed who work on these tuners specifically. Perhaps some people from the arm-based rasperry pi community might be working on this type of thing too.
Good luck,
A
Sent from my Sony Tablet S using xda app-developers app
Thanks for answer, again!
I already solved problem "insmoding" them all at once by making a script for them all as you showed me in your kernel modules thread.
At first it seems not all of them are insmoded. "no such file or directory" error. But at second script run it seems they are insmoded. I guess they are dependent on each other and need to be insmoded at right order? I also guess "file exists" means it's already insmoded?
Some of them return "exec format error" which, Google suggests, mean they are not for ARM?
anyhow nothing happens when I plug in my tuner.
I'll have to do a research starting where you sugessted but I'm setting my expectations low.
Terminal transcript of running script 3 times is in attachment. (I'll upload it later, can't do it from xda app - DONE)
Sent from my Sony Tablet S using xda app-developers app
Hey there,
maybe we can get DVB-T-Sticks working on Tablet S. Some devs got the "WinTV Nova-T"-stick working on Odys Loox. Kernel modules they used were:
dib0070.ko
dib3000.ko
dib7000m.ko
dib7000p.ko
dib8000.ko
dibx000_common.ko
dvb-core.ko
dvb-usb.ko
dvb-usb-dib0700.ko
If abactor can provide us these files we're maybe able to get it working. But I don't know if other sticks are working, too.
kulen said:
Thanks for answer, again!
I already solved problem "insmoding" them all at once by making a script for them all as you showed me in your kernel modules thread.
At first it seems not all of them are insmoded. "no such file or directory" error. But at second script run it seems they are insmoded. I guess they are dependent on each other and need to be insmoded at right order? I also guess "file exists" means it's already insmoded?
Some of them return "exec format error" which, Google suggests, mean they are not for ARM?
anyhow nothing happens when I plug in my tuner.
I'll have to do a research starting where you sugessted but I'm setting my expectations low.
Terminal transcript of running script 3 times is in attachment. (I'll upload it later, can't do it from xda app - DONE)
Sent from my Sony Tablet S using xda app-developers app
Click to expand...
Click to collapse
some of them have dependencies and others may not be compatible with our hardware even if we can build them. all of the modules are built in the same way but there may be issues due to some modules being built-in to the kernel - I don't know how those sorts of conflicts are resolved. another way to go would be to build the whole kernel again.
I would keep loading the modules until the output from insmod stops changing as you've done...or look up the dependency tree and load them in order. your way is easier.
---------- Post added at 12:56 PM ---------- Previous post was at 12:25 PM ----------
djlars said:
Hey there,
maybe we can get DVB-T-Sticks working on Tablet S. Some devs got the "WinTV Nova-T"-stick working on Odys Loox. Kernel modules they used were:
dib0070.ko
dib3000.ko
dib7000m.ko
dib7000p.ko
dib8000.ko
dibx000_common.ko
dvb-core.ko
dvb-usb.ko
dvb-usb-dib0700.ko
If abactor can provide us these files we're maybe able to get it working. But I don't know if other sticks are working, too.
Click to expand...
Click to collapse
I finally managed to get the dvb-usb.ko built with some manual editing. I'm going to post them to the other thread with all the other kernel modules. The link is posted above. let me know if this does or does not work for you guys.
If you guys are having trouble loading the dvb-usb.ko module, it may be contained within the dvb-core.ko module it seems...
kulen said:
could you please explain what is needed to make this work?
post some links perhaps.
Click to expand...
Click to collapse
Hi Kulen,
I managed to get my dongle working in Ubuntu with the correct kernel revision after a lot of hair pulling - when i tried to cross compile the modules for ARM, the compiler crashed and trashed my Linux installation, after trying for days to restore my system, i had to resort to a re-install and have not attempted anything since.
I got all my info here :-
http://linuxtv.org/wiki/index.php/Main_Page
Sorry I can not be more helpful, but I see a lot of guys on here chipping in with very useful information - hopefully you'll succeed where I failed.
PS - I might just get back into this again.
I can't say thanks enough for all help I got here.
@abactor_xda
I tried all modules you posted. since some of them are in both archives I tried first those from one archive, then from another. I extracted all and then I copied ones and other over them, and then the other way. I wanted to be sure they all are there. And then I used commands you taught me. I insmoded them 5-6 times to be sure, but some modules were not insmoded. some with that exec error and some with no file error.
and nothing happened in any case.
but here we come to another problem. I'm not sure how to check it. I use Droid TV app and it says:
" Sorry, no device found or device acces denied. This application NEEDS a working DVB device, plugged into your Android device and set up with drivers, firmware and correct permissions. Make sure that these prerequirements are met and try again."
I also get some massage from android system that connected USB device is unsupported or unreckognized or something like that.
any idea how could I see which modules are/are not activated when I plug DVB tuner?
and thanks for your help again.
@praed0r
which DVB tuner do you have?
compiling and all the other programming stuff is, unfortunately, way too much for me, so I have to rely to help from good people.
Hey Kulen,
I'm sorry to hear that didn't work. Though I had a feeling that would be the case as I also had issues trying to load those modules.
I have a feeling the modules need to be adapted somewhat before being compiled or a special driver written.
Otherwise run "dmesg" from the terminal after you plug in the device. Maybe this info would be useful to someone who knows about this stuff (unfortunately that's not me
If you do find out how to adapt these modules, I can try to compile them.
A
Sent from my Sony Tablet S using xda app-developers app
well thanks again.
I can make dmesg by help of google. but that's about maximum of my developing competence.
I guess I have to give up on this, unless some "good soul" shows up here and give us a solution.
I will post dmesg in cca. 10 days, cause I don't have tablet with me now and wait...
it'll be a pity if all abactor_xda's unselfish work was for nothing
I'm attempting to compile and load kernel modules to make my Nova-T Stick USB DVB-T dongle work with my TF201 Asus TFP. Any one have a step-by-step guide for doing this?
I first attempted to go down the cross-compile on ubuntu host machine, then I went to chrooted ubuntu on the target, now back to ubuntu host. I have managed to build a number of .ko's, and insmod'ed some of them on the TFP. When doing a lsmod, I get:
dib7000m 12318 0 - Live 0xbf1cc000
dib7000p 23027 0 - Live 0xbf1b9000
dvb_ttusb_budget 12571 0 - Live 0xbf11a000
dibx000_common 4990 2 dib7000m,dib7000p, Live 0xbf113000
dib0070 6585 0 - Live 0xbf0fc000
dvb_pll 7922 0 - Live 0xbf0cc000
dvb_core 77241 2 dib7000p,dvb_ttusb_budget, Live 0xbf0b7000
bcm4329 207334 0 - Live 0xbf082000
Click to expand...
Click to collapse
But when I plug in USB dongle, I don't get any dvb-usb messages in dmesg. Only the standard usb ones.
To compile them, I took the kernel from Asus website, built using prebuilt ARM cross-compiler from AOSP (make menuconfig, and then make modules).
Any ideas anyone?
More info
Also,
cat /proc/devices
Click to expand...
Click to collapse
gives me amoung other things: 212 DVB, which looks good to me. Just no dvb-usb messages in dmesg still.
Anyone have the ko's for all DVB tuners, and the correct order to insmod them? This will be useful for many people surely...
And yet more info
After inserting the USB Tuner into an Ubuntu laptop, I can see using lsmod that some modules used are dvb_usb_dib0700, and dvb_usb.
However when I build the Asus Kernel after changing the .config, I cannot for the life of me get these 2 missing ko's built. Any one know of the options required in make menuconfig to get this working?
solution
OK, I didn't realise that Remote Control stuff needs to be enabled (to get rc-core) in make menuconfig before stuff relating the USB DVB shows up. Now I've got my kernel modules.
Modprobe in chroot ubuntu doesn't seem to work, so I insmod a whole load of them in a certain order and finally the USB stick is recoginised as DVB-T.
Now for some reason I get ActivityManager: Segmentation Fault on my Prime when installing APKs from my host machine. Life is never easy...
More detail?
Hi
Thanks for posting this as I am interested in doing the same thing. Can you outline your process in a bit more detail so I could followsuit. Or maybe share the modules you created?
Thanks
robb001 said:
Hi
Thanks for posting this as I am interested in doing the same thing. Can you outline your process in a bit more detail so I could followsuit. Or maybe share the modules you created?
Thanks
Click to expand...
Click to collapse
I think I managed to build the kernel modules and insmod them in the end. If you plug tuner into a host machine and do an lsmod before and after, you will find the dependency order for all the kernel modules you need. You need to generate all of these .ko files and insmod all of them in exactly the correct order. Search through make menuconfig to find all the required modules components including any related remote control ones, general DVB and USB ones too. It is possible to do it this way using insmod.... however....
I also did it a different way in the end to get some other benefits. Build Cyanogenmod 10 from source, and modify the kernel (as before), and just boot this custom ROM with all the required ko's already in place - seems to be an easier path with more help available on forums etc...
After this you need to make sure that after you plug in the DVB adapter, you change the permissions of the dvb nodes to 777 (or similar) before you can use them from an app.
Good luck! It is all possible!
Thanks for your very prompt reply. I am fairly familiar with linux and command line but not heavily in to compiling modules and kernels.
barkside said:
You need to generate all of these .ko files and insmod all of them in exactly the correct order.
Click to expand...
Click to collapse
To do this don't I need to have the kernel sources, headers and some tools like "make" available and carry all of this out on the actual target hardware with the appropriate kernel version? I.e. not on a host machine?
barkside said:
I also did it a different way in the end to get some other benefits. Build Cyanogenmod 10 from source, and modify the kernel (as before), and just boot this custom ROM with all the required ko's already in place - seems to be an easier path with more help available on forums etc...
Click to expand...
Click to collapse
This sounds like a good way to go but first have to do the above generating of module files?
I think perhaps I need to do some more research on this subject.
robb001 said:
I.e. not on a host machine?
Click to expand...
Click to collapse
No you need to do it all on a host linux machine. Do do it with insmoding, you need to download the kernel from Asus for your corresponding target kernel version. This includes everything you need. Then you need to just enable the building of the new DVB stuff by modifying the kernel config (use make menuconfig), then build the kernel - this gives you a lot of stuff including the ko files.
robb001 said:
This sounds like a good way to go but first have to do the above generating of module files?
I think perhaps I need to do some more research on this subject.
Click to expand...
Click to collapse
More research is a good idea. It is not simple. But cyanogenmod has lots of help available - read its wiki on building from source etc. So to clarify - you either 1) build kernel modules when building the kernel and insmod them onto the target, or 2) build the entire CM10 source and flash this new custom ROM (which will be complete with the DVB stuff once you enable them in CM10 kernel config). Go with 2) and see how you get on.
I've been through all the relevant threads on AskUbuntu and they are either outdated, conflicting and/or dont work.
My Nexus10 sees the atheros AR9271 device on Bus 001 USB but does not create an additional WLAN for it.(wlan0 is the normal integrated wifi) I assume I need the ath9k or ath9k_htc driver? I installed backports 4.4.2-1 and unzipped it. If I try to do a 'make' or 'make clean' I get:'your kernel headers are incomplete/not installed'. I've already got the latest version of build-essential. If I try to install 'firmware-atheros', it cannot find the package. I've been through several other things to no avail.
I've read the driver is installed with 15.x+ anyway, true? and if so how to install it? If someone could do a step-by-step wifi driver install for a U-touch or at least Ubuntu 15.x I'd be very very grateful.
I do not want to bridge the 722n, I want to use it instead of the integrated card. Not even there yet, but just in case it matters.
Thanks!
roninisc said:
I've been through all the relevant threads on AskUbuntu and they are either outdated, conflicting and/or dont work.
My Nexus10 sees the atheros AR9271 device on Bus 001 USB but does not create an additional WLAN for it.(wlan0 is the normal integrated wifi) I assume I need the ath9k or ath9k_htc driver? I installed backports 4.4.2-1 and unzipped it. If I try to do a 'make' or 'make clean' I get:'your kernel headers are incomplete/not installed'. I've already got the latest version of build-essential. If I try to install 'firmware-atheros', it cannot find the package. I've been through several other things to no avail.
I've read the driver is installed with 15.x+ anyway, true? and if so how to install it? If someone could do a step-by-step wifi driver install for a U-touch or at least Ubuntu 15.x I'd be very very grateful.
I do not want to bridge the 722n, I want to use it instead of the integrated card. Not even there yet, but just in case it matters.
Thanks!
Click to expand...
Click to collapse
anyone anyone, Beuller...
Hey, saw this was unanswered and figured I could help. First off, you will not be able to compile or install headers in the Ubuntu Touch system, as /lib/modules/<kernel version> is a bind-mount into the read-only LXC system image, one way to work around this issue on device is to mount the LXC container's system image read-write somewhere, move out the lib/modules directory to someplace else, umount, reboot and then link your moved lib/modules back into /lib/modules. You will need to do this compilation outside of your Nexus 10 in a cross-compilation environment or in an armhf chroot (imho, a chroot running the ARM build of Ubuntu works very well for this).
Once you have that, you can install the kernel package for your device (which I believe are labeled linux-headers-manta and linux-image-manta respectively) and build the driver you seek. However the kernel already comes with backports 4.4.2 in it's tree, so you may be able to apt-get source linux-image-manta and build the driver and/or the kernel itself if you wish. (I believe building the kernel builds the firmware needed for the drivers as well, but I have no way of knowing as I haven't actually rebuilt any drivers with firmware yet in my foray into linux-image-flo's source.)
One piece of advice: Make sure to join together the config.*.ubuntu files under the debian.flo and debian.master folders to get the working .config for your device. The defconfig from arch/arm/configs doesn't have all the needed options for uTouch and won't boot it.
Your 'thanks meter' improved, and big thanks for answering, but this is beyond my level. Was hoping I could run an external wifi stick on a tablet with some flavor of linux, but looks like a no go for mortal users.
roninisc said:
Your 'thanks meter' improved, and big thanks for answering, but this is beyond my level. Was hoping I could run an external wifi stick on a tablet with some flavor of linux, but looks like a no go for mortal users.
Click to expand...
Click to collapse
Sadly at this time, it definitely seems to be. The normal linux way of building drivers doesn't work on here because the modules directory (/lib/modules/3.4.0-5-flo) is read-only, also due to this kernel headers cannot be installed, this can be worked around, but it is definitely not something that the casual user can do easily. I hope this will change so I could start compiling modules and NOT need to rebuild the entire kernel for it.
Glad I could be of help and I love answering questions, I am currently using Ubuntu Touch as my main OS on my Nexus 7 as I'm trying to make it into my own portable workstation. So I'm constantly digging into the system and learning what I can, and I love to share.