[HOWTO] tun.ko to run OpenVPN on Froyo xxJPK Galaxy S I9000 - Galaxy S I9000 Android Development

NOTE: there is no guarantee this will work, because without access to the corresponding kernel source I can't be sure. It may wipe out your device if there's memory corruption! You're warned, use it only at your risk!!
Over the last weekend I wanted to familiarize with the arm assembly, buildsystem, SDK so I created a tun.ko module for kernel running in the JPK ROM. But lots of the time was also wasted trying to guess their config (things like disabled DMABOUNCE and removal of the dummy they added in 2.6.29 from struct net_device, I hope I got it all right).
I encourage to release the kernel source along with the ROM images in the future (it'd be much simpler if there was a git tree that they can just tag with the name of the ROM), and to include the tun device into the modules/tun/tun.c (as in the tarball) so that it is included by default in the future. I won't be doing this process again.
I had to install openvpn with the openvpn installer a second time with openvpn in xbin, busybox in xbin/bb and I created the bb directory and two symlinks from xbin/bb/{ifconfig,route} to xbin/busybox (after mounting /system rw). The DNS to change during VPN must be set by long pressing on the left of the openvpn config slot in the OpenVPN settings GUI.
The tun.ko I keep it in /sdcard/openvpn/tun.ko and the path has to be configured in the openvpn settings advanced settings menu and I choose to load it with insmod.
This JPK rom works great for me, so I'll likely keep using it for a long while now that I've got openvpn running fine.
252ae6e655fa08774f32f67dd76dad3a tun.ko
EDIT: the same tun.ko module works for JPM too

Great job!!!
I use vpnc daily, so I couldn't even think to upgrade to JPK without an available tun module.. now I can!
Would you share your .config, so other devs can use it? Maybe we can hope in a Froyo-voodoo in a short time..

I'm confirming that it works.
Here is how I did it (I garantee that THIS IS NOT THE MOST ELEGANT WAY to make it work)
Install Openvpn from Openvpn Installer
openvpn in /system/xbin
route and ifconfig in /system/bin
At this point, Openvpn could connect and create a tun device, but route are not pushed so it's not very usefull
So, I downloaded this version of Openvpn
http://github.com/downloads/fries/android-external-openvpn/openvpn-static-2.1.1.bz2
As superuser
Code:
su
I remounted in rw /system
Code:
mount -o remount,rw /system
I renamed /system/xbin/openvpn into openvpn_old
Code:
mv /system/xbin/openvpn /system/xbin/openvpn_old
I put that new openvpn binary in /system/xbin
I created symlinks from /system/bin/route and ifconfig to /system/xbin
Code:
ln -s /system/bin/route /system/xbin/route
ln -s /system/bin/ifconfig /system/xbin/ifconfig
I also created a symlink os /system/xbin to /system/xbin/bb, just in case
Code:
ln -s /system/xbin /system/xbin/bb
Here we go

captive said:
Would you share your .config, so other devs can use it?
Click to expand...
Click to collapse
+1
i tried to complie cifs.ko and tun.ko for the JPC kernel and couldnt get it to work. i ultimately went back to eclair because of this so would like to be able to compile modules and other filesystem support.
thanks.

kanemari said:
+1
i tried to complie cifs.ko and tun.ko for the JPC kernel and couldnt get it to work. i ultimately went back to eclair because of this so would like to be able to compile modules and other filesystem support.
thanks.
Click to expand...
Click to collapse
config attached, but the config is not enough and it may not be fully correct (it is enough as far as the data structures used by tun.ko are concerned, I checked them all against the zImage assembly). The diff of the v2.1 image, has to be applied too but with DMABOUNCE removed from Kconfig of the subarch of the galaxy as far as I can tell and the placeholder added to struct net_device in their v2.1 diff, has to be removed too. cifs.ko may be more complicated than tun, good luck. Unless you've personal interest to familiarize with the enviroment and the arm assmbly like I had, I would wait the source to released, it has to be released eventually to comply with the GPLv2.

Thankyou Newmail!!
I've tryed VPNC 0.99 and works great!!
You have only to type from terminal: insmod /system/folder/tun.ko
After that you can use VPNC...
I've found an issue with the FQDN of the VPN gateway... solved setting the IP address
Just a question:
when I'll update my JPK.. what I have to do to recompile the tun.ko?
Can you write here the procedure?
Cheers
Paolo

newmail said:
config attached, but the config is not enough and it may not be fully correct (it is enough as far as the data structures used by tun.ko are concerned, I checked them all against the zImage assembly). The diff of the v2.1 image, has to be applied too but with DMABOUNCE removed from Kconfig of the subarch of the galaxy as far as I can tell and the placeholder added to struct net_device in their v2.1 diff, has to be removed too. cifs.ko may be more complicated than tun, good luck. Unless you've personal interest to familiarize with the enviroment and the arm assmbly like I had, I would wait the source to released, it has to be released eventually to comply with the GPLv2.
Click to expand...
Click to collapse
OK, but is the placeholder field at the end of the net_device struct?
If so it shouldn't matter and a module cross compiled from the 2.6.29 source should be OK. The absence of DMABOUNCE shouldn't matter for tun.ko either.
In theory you should be able to clone the AOSP git kernel repo and use that kernel for building a module, as long as the module itself doesn't actually use changes that have been made by Samsung (unlikely).
The .config used probably does deserve some attention though, as you have done.

foloap said:
Thankyou Newmail!!
I've tryed VPNC 0.99 and works great!!
You have only to type from terminal: insmod /system/folder/tun.ko
After that you can use VPNC...
I've found an issue with the FQDN of the VPN gateway... solved setting the IP address
Just a question:
when I'll update my JPK.. what I have to do to recompile the tun.ko?
Can you write here the procedure?
Cheers
Paolo
Click to expand...
Click to collapse
Glad it works great for you too. So the tun.ko has to be recompiled if they alter .config. It may work but it's not guaranteed. The procedure is nasty and hard to document and I don't have enough time for that sorry. But I'm sure we'll get the source when there will be an official Froyo release that is shipped to all phones so I wouldn't worry.

raven-au said:
OK, but is the placeholder field at the end of the net_device struct?
If so it shouldn't matter and a module cross compiled from the 2.6.29 source should be OK. The absence of DMABOUNCE shouldn't matter for tun.ko either.
In theory you should be able to clone the AOSP git kernel repo and use that kernel for building a module, as long as the module itself doesn't actually use changes that have been made by Samsung (unlikely).
The .config used probably does deserve some attention though, as you have done.
Click to expand...
Click to collapse
The .config is the fundamental part, and it may be enough I'm not sure. There was a placeholder was a samsung customization done in the middle of net_device and that was removed in the Froyo ROM (initially I applied it). the DMABOUNCE removal affects the struct device that is part of net_device so a lot of stuff goes off by 4 bytes by tweaking that arch config option. That gets set in some Kconfig patched in by samsung. You're right that probably tun isn't affected by the DMABOUNCE but I tried to get the net_device size right (just in case) and it may affect other net modules.

Hi newmail, thanks so much for the tun.ko file, this is the first time I've managed to get VPNC working on my SGS!! One question though, I find I'm having to run insmod everytime I reboot the phone to make tun.ko available again, does anyone know if there's a way around this please so it stays permanently available? Many thanks!!

@bdl1969
I made a subdir in /system/lib called "modules" and placed my tun.ko there.
Now it's insmodded automagically..

newmail said:
The .config is the fundamental part, and it may be enough I'm not sure. There was a placeholder was a samsung customization done in the middle of net_device and that was removed in the Froyo ROM (initially I applied it). the DMABOUNCE removal affects the struct device that is part of net_device so a lot of stuff goes off by 4 bytes by tweaking that arch config option. That gets set in some Kconfig patched in by samsung. You're right that probably tun isn't affected by the DMABOUNCE but I tried to get the net_device size right (just in case) and it may affect other net modules.
Click to expand...
Click to collapse
Oh crap, that is bad news.
Then both the DMABOUNCE and the net_device are likely a problem.
That's a stupid way of doing things.

raven-au said:
Oh crap, that is bad news.
Then both the DMABOUNCE and the net_device are likely a problem.
That's a stupid way of doing things.
Click to expand...
Click to collapse
The smart way of doing things I already mentioned in the first post (public git tree tagged at every ROM release .

captive said:
@bdl1969
I made a subdir in /system/lib called "modules" and placed my tun.ko there.
Now it's insmodded automagically..
Click to expand...
Click to collapse
hmm I tried and it didn't work for me... are you sure? openvpn GUI runs insmod for me so it's no big deal.

That worked great for me, thanks for the suggestion! The only problem I found was that it caused my Good for Enterprise app to crash so I uninstalled and reinstalled it and then it was all fine. Only problem I'm left with now is when using VPNC, I make the VPN connection fine but I can't disconnect via the app, I have to bounce the network connection (eg. toggle WiFi) to drop the tunnel!

I compiled tun.ko using the 2.6.32 kernel from android git and your .config, but it won't load with dmesg saying "Unknown symbol mem_map". May I ask which kernel version did you use, and what arm toolchain are you using?

sztupy said:
I compiled tun.ko using the 2.6.32 kernel from android git and your .config, but it won't load with dmesg saying "Unknown symbol mem_map". May I ask which kernel version did you use, and what arm toolchain are you using?
Click to expand...
Click to collapse
Probably you have discontigmem off in the .config. The platform of the galaxy isn't in the android kernel, it's in arch/arm/plat-s5pc11x (it's the thing that sets DMABOUNCE in v2.1 roms and I guess it doesn't on the JPK kernel).
You need to make a diff between android 2.6.29 and their tree, and apply it to the 2.6.32 kernel, then you need to solve enough rejects so that it can build external module. I didn't port the whole diff of course, just enough so make can start with the headers and .config all right. Then I built the module externally (adding the tun/ directory to their modules/ directory) but it should also work with just make modules setting CONFIG_TUN=m if you want to build it in-tree.
It's a bit tricky.. If you really need I can give you the broken diff to apply to the 2.6.32.9 android kernel. That is enough to build some module including tun.ko

newmail said:
Probably you have discontigmem off in the .config. The platform of the galaxy isn't in the android kernel, it's in arch/arm/plat-s5pc11x (it's the thing that sets DMABOUNCE in v2.1 roms and I guess it doesn't on the JPK kernel).
You need to make a diff between android 2.6.29 and their tree, and apply it to the 2.6.32 kernel, then you need to solve enough rejects so that it can build external module. I didn't port the whole diff of course, just enough so make can start with the headers and .config all right. Then I built the module externally (adding the tun/ directory to their modules/ directory) but it should also work with just make modules setting CONFIG_TUN=m if you want to build it in-tree.
It's a bit tricky.. If you really need I can give you the broken diff to apply to the 2.6.32.9 android kernel. That is enough to build some module including tun.ko
Click to expand...
Click to collapse
It'd be great. I've already tried to do the patching. It compiles, but crashes the phone when loaded. Maybe your version is a bit better.

sztupy said:
It'd be great. I've already tried to do the patching. It compiles, but crashes the phone when loaded. Maybe your version is a bit better.
Click to expand...
Click to collapse
Did you find the source now that JPM has been released officially with Kies? I upgraded to JPM now, in the hope we get the source....
BTW, my tun.ko and my rfs_async.ko also works fine on JPM. I don't know about my ext4 build but I assume that will work too.
I used one CSC of this thread http://forum.xda-developers.com/showthread.php?t=802909 and I deleted the KOR /efs/nv_data* created by the JPK ROM (leaving the .nv_data.bak*). So with this combination of CSC from that thread, and MODEM and PDA from the JPM rar, I apparently restored the original product_id (SGSToolbox also says I'm back to the original product_id). Not that product_id matters but I thought I'd try that next time I flashed and apparently it worked fine...

newmail said:
Did you find the source now that JPM has been released officially with Kies? I upgraded to JPM now, in the hope we get the source....
BTW, my tun.ko and my rfs_async.ko also works fine on JPM. I don't know about my ext4 build but I assume that will work too.
I used one CSC of this thread http://forum.xda-developers.com/showthread.php?t=802909 and I deleted the KOR /efs/nv_data* created by the JPK ROM (leaving the .nv_data.bak*). So with this combination of CSC from that thread, and MODEM and PDA from the JPM rar, I apparently restored the original product_id (SGSToolbox also says I'm back to the original product_id). Not that product_id matters but I thought I'd try that next time I flashed and apparently it worked fine...
Click to expand...
Click to collapse
The JPM source was avialable for a few hours on the samsung's site, did grap it. You can find it on megaupload somewhere. I couldn't manage to compile a working module from that source either (it now loads fine, but does a kernel panic when I try to mount a loop device formatted with ext4), but I'm sure that's my fault.

Related

openvpn anyone?

hi,
did anyone find a way to use openvpn on htc hero?
Catscrash said:
hi,
did anyone find a way to use openvpn on htc hero?
Click to expand...
Click to collapse
Not yet, but I am using the CyanogenMod 4.0.1 on my Dream and I have seen Donut on the HTC Click -- in both cases, Settings --> Wireless Controls is showing an option for VPN Settings, so I'm guessing that it would be a matter of time before this is available on the Hero and Magic firmware
Be patient, or wait for someone to cook a ROM with this feature
VPN wil be in Donut.
For now, it seems possible to implement it.
For the program GUI, it should good to extand that program to support openvpn and pptp vpn.
First of all tun driver is needed, you'll find it here.
Install and, as root, type:
# insmod /system/lib/modules/tun.ko
lsmod command should give you:
tun 11300 0 - Live 0xbf000000
That should load the tun kernel module.
I think we should then have to compile openvpn using android ndk.
A guy did it for the dream. Worth trying it. Maybe someone else could tell if binaries compiled for Dream can work on Hero
OpenVPN ist working on hero. I used the binaries for the G1. But the CIPHER is different: AES-256-CBC. I'm now testing it and if it's stable, perhaps I'm gonna compile openvpn with complete static openssl, so all functions should work.
If someone is interested, I can post my scripts and settings.
gogh57 said:
OpenVPN ist working on hero. I used the binaries for the G1. But the CIPHER is different: AES-256-CBC. I'm now testing it and if it's stable, perhaps I'm gonna compile openvpn with complete static openssl, so all functions should work.
If someone is interested, I can post my scripts and settings.
Click to expand...
Click to collapse
I am REALLY interested to now how you compiled it.
Hi!
I haven't compiled openvpn until now. I used this one:
https://www.digital-bit.ch/wiki/OpenVPN_auf_dem_G1
Just tried, may work. But i can't connect to my astaro because the key needs auth wit user and pw.
This Version hasnt been compiled with --auth-ask-pass. And reading from commandline doesn't work either..
I did compile it on my G1 with CyanogenMod ROM.
As far as I can see, it is working perfectly: I'm using it with certificates for 3 different VPNs.
Only issue: I wasn't able to complile a shared version of liblzo, so the binary is statically linked against liblzo.a (751 KB... )
Ah, yes, of course no GUI interface, shell only...
Hi!
Cool, could you post the binary? Could you give me a hint how you did it? I had several problems.
Would be perfect if someone could compile openvpn with " --enable-password-save"
Please post it, when a OpenVPN GUI for the HTC Hero / Magic is available.
Thans alot
wolfiedk said:
Please post it, when a OpenVPN GUI for the HTC Hero / Magic is available.
Thans alot
Click to expand...
Click to collapse
The great spam protection measures in this forum deny posting links for new users, so you have to manually follow them.
See: github.com/fries/android-external-openvpn
There is also an app and a statically linked openvpn binary at github.com/fries/android-external-openvpn/downloads
The openvpn binary has the following features:
* --enable-password-save
* statically linked against a blowfish enabled openssl
* statically linked against liblzo
Build:
* openvpn-static.bz2 was build on a donut-tree (1.6) for htc-magic
* openvpn-android-2.1.tar.bz2 was build on a cupcake (1.5) tree for htc-magic
* should run on a verity of (rooted) phones, please try it an give feedback.
A dynamically linked version is also available. The above git repo integrates seamless into the android build system. Some instructions may be found here: wiki.github.com/fries/android-external-openvpn/
Any feedback is welcome. Enjoy.
read this first -> http://sourceforge.net/projects/tunneldroid/files/README/download
First make sure kernel is compile with tun module
install tunneldroid from market
binary download -> http://sourceforge.net/projects/tunneldroid/files/openvpn-binary.zip/download
The newest version of my 'OpenVPN Settings' app is available at github.com/fries/android-external-openvpn/downloads

Extracting kernel config from I9000XXJP3

Dear all,
Did anyone succeed extracting kernel configuration from I9000XXJP3? Kernel version is 2.6.32.9, the vermagic is "2.6.32.9 mod_unload ARMv7"
extract-ikconfig doesn't work on it.
I succeeded extracting a zImage gzipped payload, but it seems not to contain any configuration in it (see attached).
/proc/config.gz doesn't exist, Samsung open source package (downloaded from Samsung open source site) contains only Android 2.1 Eclair or previous versions.
My target is to build tun.ko and, eventually, ext3/ext4 modules to make them working in Samsung Galaxy S I9000 with rooted I9000XXJP3.
Any idea?
Without froyo source code or a good Samsung Kernel (es. for himem capable) I think is impossible to play good with theses beta roms.
Ciao
Any news? I need tun.ko for jp3 too..
I have tried to compile the 2.6.32.9 kernel editing the .config in 2.6.9, the module tun.ko is accepted by the device, but I get a kernel panic!
redsh said:
I have tried to compile the 2.6.32.9 kernel editing the .config in 2.6.9, the module tun.ko is accepted by the device, but I get a kernel panic!
Click to expand...
Click to collapse
Did you use the stock linux kernel? Or the common from android.kernel.org?
I'm trying the same thing actually. Isn't there any default config for the processor that might work? I tried with the config from .29 but when loading the module it says wrong format.
try to build 2.6.32 with the 2.6.29 config ("yes" all missing stuff)
turn on your galaxy, adb push the tun.ko
try to load it, it will say "missing symbols" blabla
find the config options that match those symbols, enable them, recompile, try again
Great to see some people who are hacking the kernel! Keep it up!
But I'm afraid it is not going to be as easy as dropping aries_rev03_defconfig as .config in a 2.6.32 kernel tree and doing 'make oldconfig'. That's because many of Samsung's changes have not been included in the newer mainline kernel versions yet.
Samsung added quite a lot of low-level board support for their dev boards (and for the SGS, of course), did some customization and added a few drivers which you will need to forward-port to the newer kernel.
Please have a look at this thread, in which I've started a breakdown of the Samsung patches against Android Eclair's 2.6.29 kernel.
The best course of action I think is to git clone Android's kernel from AOSP, checkout the android-2.6.29 branch, apply Samsung's patches to that, then attempt to rebase your tree to a newer kernel version. (Note, you may want to start with small steps, to get a feel for what you're up against )
Note that there probably will be lots of merge conflicts which you need to resolve, and after dealing with all those, you also have to make sure that everything else that's merged still works as expected, but at least that will show you the amount of work involved. You will basically be doing all the work that Samsung is doing right now for their kernel for FroYo. It will be interesting to follow their progress on the mailing lists and on IRC.
bilboa1 said:
try to build 2.6.32 with the 2.6.29 config ("yes" all missing stuff)
turn on your galaxy, adb push the tun.ko
try to load it, it will say "missing symbols" blabla
find the config options that match those symbols, enable them, recompile, try again
Click to expand...
Click to collapse
Thats exactly what I did, but I got wrong module format... which is a fatal error. I need to invest further in the used config... maybe i did not pick up the right one properly..
miki4242 said:
Great to see some people who are hacking the kernel! Keep it up!
But I'm afraid it is not going to be as easy as dropping aries_rev03_defconfig as .config in a 2.6.32 kernel tree and doing 'make oldconfig'. That's because many of Samsung's changes have not been included in the newer mainline kernel versions yet.
Samsung added quite a lot of low-level board support for their dev boards (and for the SGS, of course), did some customization and added a few drivers which you will need to forward-port to the newer kernel.
Please have a look at this thread, in which I've started a breakdown of the Samsung patches against Android Eclair's 2.6.29 kernel.
The best course of action I think is to git clone Android's kernel from AOSP, checkout the android-2.6.29 branch, apply Samsung's patches to that, then attempt to rebase your tree to a newer kernel version. (Note, you may want to start with small steps, to get a feel for what you're up against )
Note that there probably will be lots of merge conflicts which you need to resolve, and after dealing with all those, you also have to make sure that everything else that's merged still works as expected, but at least that will show you the amount of work involved. You will basically be doing all the work that Samsung is doing right now for their kernel for FroYo. It will be interesting to follow their progress on the mailing lists and on IRC.
Click to expand...
Click to collapse
Yes that would be a lot of work. Maybe its better to just wait until they release the kernel from froyo. I read that they release their opensource stuff rather fast. But just for adding a module like ext4 I don't think you need those patches, because imho they didn't touch the fs of the kernel. We just need an adaquate kernel config and adding modules should be possible.
Phlogiston said:
Thats exactly what I did, but I got wrong module format... which is a fatal error. I need to invest further in the used config... maybe i did not pick up the right one properly..
Click to expand...
Click to collapse
Make sure you're using the same kernel version number and build number, because samsung kernels do not have the option to load incorrect module versions
Yes i've set the subversion as well but without the patches from samsung its impossible it seems. We need to wait and hope that they release the froyo kernel sources soon....
bilboa1 said:
Make sure you're using the same kernel version number and build number, because samsung kernels do not have the option to load incorrect module versions
Click to expand...
Click to collapse
Are you sure they set CONFIG_MODVERSIONS? It's off in the downloadable sources.
Just compare the output of `modinfo -F vermagic <yourmodule>` to `modinfo -F vermagic <modulewhichloads>` or to /proc/version .
did this get solved yet? I google'd for the tun.ko file for my i9000 using jp3 but nothing yet... if you have a proper one for the MoDaCo version here please attach it! ~
I think I saw someone's post with tun.ko for FroYo beta somewhere in these forums, I mean i9000 Android Dev. One of the guys here has found a way to compile kernel for jp* here. I am sure.
I actually found it attached somewhere in the forum and it was 1,5447 mb big I think it was... but it still didn't work for me so I presumed the kernel or something must have been wrong.

[REF] cifs.ko for samsung galaxy s [including froyo 2.2]

This is the kernel module for smb/cifs mount.(windows shares)
You need it for example for this: hxxp://forum.xda-developers.com/showthread.php?t=756158
I didn't found a compatible cifs.ko for samsung s anywhere so I had to compile it.
[recommended] cifs.zip - Eclair(2.1)
[recommended] froyo.zip - Froyo(2.2) - cifs.ko & slow-work.ko (insmod slow-work.ko first)
cifs_froyo_slow_work.zip - Froyo(2.2) - cifs & slow_work in one .ko Do NOT use this because its buggy (slow, reboots when rmmod)
could you pls explain what is this for? Experts needn't, but there're lots of newbies hangin aroud here, like me . Thanks
It's a kind of file system like ext2/3/4, for example.
Sent from my GT-I9000 using Tapatalk
This is the kernel module for smb/cifs mount.(windows shares)
You need it for example for this: hxxp://forum.xda-developers.com/showthread.php?t=756158
I didn't found a compatible cifs.ko for samsung s anywhere so I had to compile it.
Awsome. We can now mount samba shares! Freakin awsome
Sent from my Apple Newton 2100
You have my gratitude
Very usefull! thank you!
i'm back, when i'm trying an insmod i have cifs.ko : invalid module format
i use a jm5 samset 1.9f roms.
I use jm5 (mimocam's fix + root) and I've compiled the module from source-code provided by samsung (opensource.samsung.com) using arm-none-eabi-(Sourcery G++ from codesourcery.com). Maybe samset used something else which is incompatible.
ickyboo said:
Sent from my Apple Newton 2100
Click to expand...
Click to collapse
Bwahahahaha
ethanfel said:
i'm back, when i'm trying an insmod i have cifs.ko : invalid module format
i use a jm5 samset 1.9f roms.
Click to expand...
Click to collapse
Setenza said he'll add Cifs in the next SamSet release.
can you make one that is compatible with the Vibrant version? Either stock Vibrant kernel or any working kernel compatible.
Greatly appreciated
I've tried the module, but also get the "invalid module format" message.
However, I'm using JM5 + root using kernel 2.6.29 built on Fri Jul 30 15:12:44 KST 2010 armv71 GNU/Linux
Can you tell us for which kernel you've build this module?
thoriam said:
I've tried the module, but also get the "invalid module format" message.
However, I'm using JM5 + root using kernel 2.6.29 built on Fri Jul 30 15:12:44 KST 2010 armv71 GNU/Linux
Can you tell us for which kernel you've build this module?
Click to expand...
Click to collapse
I've compiled for kernel 2.6.29.2 using samsung's sources
my phone says he has kernel 2.6.29 [email protected] #1
I'm attaching the module compiled with latest toolchain I could find(binutils-2.20.1, gcc-4.5.1,newlib-1.18.0)
ctran81 said:
can you make one that is compatible with the Vibrant version? Either stock Vibrant kernel or any working kernel compatible.
Greatly appreciated
Click to expand...
Click to collapse
No idea if will work bc I don't have a Vibrant.
In the mean time I've also compiled my own version of the cifs.ko module.
I've used the Samsung sources and used the Sourcery G++ Lite 2010q1-188 for ARM EABI toolchain.
I've only enabled cifs in the kernel config and compiled the module.
I've attached the compiled result.
Thanks for your effort. I'm using JM5 +samset1.9f and couldn't get the cifsmanager to work with all 3 of your cif.ko . I've just dont know why the size the last 2 versions are huge compare to the first one? Thanks anyway. Hope you can come up with something.
thoriam said:
In the mean time I've also compiled my own version of the cifs.ko module.
I've used the Samsung sources and used the Sourcery G++ Lite 2010q1-188 for ARM EABI toolchain.
I've only enabled cifs in the kernel config and compiled the module.
I've attached the compiled result.
Click to expand...
Click to collapse
darkbyt3 said:
no idea if will work bc i don't have a vibrant.
Click to expand...
Click to collapse
thank you very much. It's working on my stock vibrant kernel! YOU ROCK SIR! (using attached vibrant.zip)
Now I can stream all my media files!
(I'm vary curious how you did this, if you can point me to some guides that would be awesome, (I can write some C/C++ code))
Works great for me - had been looking around to see if anybody had compiled the CIFS module for the Galaxy S. I started reading up on how to cross compile kernel modules myself but didn't get very far.
Anyway; I have a slight problem. while mounting and browsing from the terminal as root and through adb as non-root work, I can't seem to browse in any mounted folders actually on the device using either the stock 'My Files' or Astro which was what I was aiming to do.
What I do to mount said:
\\\\192.168.0.0\\Directory /sdcard/smbshare -o user=Username,pass=password,uid=1000,gid=1015
Click to expand...
Click to collapse
Without setting the user and group settings I can't browse unprivileged as everything in the share is 'owned' by root.
I also tried using mount -t smbfs //192.168.0.0/Directory /sdcard/smbshare with the same result.
Anybody else having a similar problem? Maybe it's just something obscure about my setup.
thoriam said:
In the mean time I've also compiled my own version of the cifs.ko module.
I've used the Samsung sources and used the Sourcery G++ Lite 2010q1-188 for ARM EABI toolchain.
I've only enabled cifs in the kernel config and compiled the module.
I've attached the compiled result.
Click to expand...
Click to collapse
Sorry for the noob questions:
- Can you please give more details on how to enable cifs in the kernel config?
- Is there a specific plate to copy the cifs.ko module?
- Is there a simple (one-click) way to install this?
- is the module dependent on the kernel version? has to be exactly the same?
- is there a easy way to check if it's working (I'm using cifsmanager and get some error saying cannot access device / folder not found -not sure about the exact message text)
Thanks in advance

[Request] tun.ko for kernel 2.6.32.15-ge2fb08e

Will someone please make a tun.ko for the new released kernel or send links on how to and the tools needed? Thanks in advanced.
until HTC releases the source for kernel 2.6.32.15-ge2fb08e
we can not compile a "Real" tun.ko
I modified the version string on the current released code 2.6.32.15-g746f4f0 to ge2fb08e and am compiling it right now.
This will allow it to load and as long as there are no major changes in the kernel it could work for you. It will at least load so you can test it.
I will up load it as soon as it is done compiling
Bill Tedeski
dwertz said:
Will someone please make a tun.ko for the new released kernel or send links on how to and the tools needed? Thanks in advanced.
Click to expand...
Click to collapse
That would be great. Thank you
btedeski said:
until HTC releases the source for kernel 2.6.32.15-ge2fb08e
we can not compile a "Real" tun.ko
I modified the version string on the current released code 2.6.32.15-g746f4f0 to ge2fb08e and am compiling it right now.
This will allow it to load and as long as there are no major changes in the kernel it could work for you. It will at least load so you can test it.
I will up load it as soon as it is done compiling
Bill Tedeski
Click to expand...
Click to collapse
to build it yourself
you can get instructions for an android build system here
http://source.android.com/source/download.html
download the source from HTC http://developer.htc.com/
you will need a .config file should be /proc/config.gz on your phone, uncompress and rename to .config
http://code.google.com/p/android/issues/detail?id=3803
you will need to setup your path to include the build environment you download from source.android.com I will put mine at the end of this
edit the Makefile and change EXTRAVERSION = .15-ge2fb08e to contain version string you need
do a make modules
as long as the kernel has not changed to much from the base source HTC has provided it should work.....
I added the folllowing path statements to my .bash_profile
PATH=$PATH:$HOME/bin
PATH=$PATH:/opt/mydroid/prebuilt/linux-x86/
PATH=$PATH:/opt/mydroid/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/
PATH=$PATH:/opt/mydroid/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/arm-eabi/bin/
PATH=$PATH:/opt/mydroid/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/arm-eabi/lib/
PATH=$PATH:/opt/mydroid/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/
PATH=$PATH:/opt/mydroid/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/lib/
PATH=$PATH:/opt/mydroid/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/lib32/
PATH=$PATH:/opt/mydroid/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/libexec/
PATH=$PATH:/opt/mydroid/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/share/
PATH=$PATH:/user/lib/gcc/i686-redhat-linux/4.4.4./libgcc.a
dwertz said:
Will someone please make a tun.ko for the new released kernel or send links on how to and the tools needed? Thanks in advanced.
Click to expand...
Click to collapse
Tun.ko vermagic=2.6.32.15-ge2fb08e
the attached tun.ko is build from the released HTC source with the version string changed to ge2fb08e
as long as the kernel has not changed much on the leaked kernels this should load and work
[[email protected] net]$ strings tun.ko | grep magic
vermagic=2.6.32.15-ge2fb08e preempt mod_unload ARMv7
You are awesome. Thanks
update - The tun.ko does work so it looks like the leaked kernel did not change much.
I will try and learn how to make one. I have ubuntu in vmware to use. Does this have to be a linux box or can it be done on a MacOSX?
Do you have the cifs.ko and nls_utf8.ko for 2.6.32.15-ge2fb08e?
I am trying to get cifs working on my evo.
Never mind. Thanks for everyone's help.
Here is what I did to get the cifs.ko and nls_utf8.ko (from here http://forum.xda-developers.com/showthread.php?t=754793) to work for my kernel.
I took the cifs.ko and nls_utf8.ko created by "snq-" and used a hex editor to edit the kernel number to match mine.
That was all, no re-compile needed. then I followed the rest of the steps laid out by snq- to install the files and test them.
Lastly I installed CifsManager which is available on Market and everything worked.
I am able to connect to my network only locally. Comcast seems to be blocking ports so I cannot access smb from outside my network.
please post link for cifs.ko
If you have a working cifs.ko for this kernel, please post a link!
Thanks!
Any Suggestions
Any where else to go for a tun.ko for ge2fb08e? I've almost exhausted my searching. Thanks!
i am trying to set up OpenVPN on my Evo with the same ge2fb08e kernel version. i installed the pre-requisites, but do not have the tun driver. can you send me a copy of the tun.ko zip? TheEdge88
SR, You can download the tun.ko file in the previous post, but you need to post 9 more times before you can access it. It worked for me and now I can connect to the OpenVPN server. I think I still have a problem with routing though.

[Q] Google goggles ipv6

Hi all,
I have Fat Free Froyo installed with the latest 14th Jan 2011 kernel voguimg-240x320-2.6.32-froyo-14-01-11_14.nbh edited to froyo & panel type 2 from t029000.massey.ac.nz but Google Goggles needs ipv6 support.
Is this a kernel problem or a problem with the build itself? I am experienced in linux, so can modprobe or insmod the ipv6.ko but I don't know where to get it from
Any help would be appreciated!
(message for kernel's developers) take this man! he can dev ipv6!
Jumping the gun there a bit
I triage bugs and work on stuff for Ubuntu. Have also ported a few linux bits to ppc64 (PlayStation 3).
I'm pinching the ipv6.ko from slayhers latest kernel build, hopefully that will work insmod-ding or modprobing it into the kernel thru the terminal on the Kaiser itself.
So, fingers crossed, this may be solved in 5 minutes!!
Didn't work, it must be compiled for a different platform...
Anyone have or know where to get a kernel for the Kaiser with ipv6 support, or failing that the correctly built ipv6.ko for the Kaiser so that it can be insmodded?
Getting it compiled in the kernel is the easy bit, although it does use up a lot of space which is limited in the kaiser's kernel so a little tweaking is needed. Getting it to work with the Kaiser's modem and the builds we currently use is a different matter unfortunately. It will take a bit of modding for it to work but it's more then achievable with a bit of free time. Wish i could buy that stuff!!If i get a chance i will get you the ipv6 module for the kaiser's kernel or a kernel with support for it so you can have a play.
I definitely look forward to it! If I knew how and what to modify I'd do it myself, but I thought arch-specific kernels had to be compiled on the arch itself? If that's the case, I can see how free time would be needed, it'd take hours or days to compile the linux kernel at 400MHz
I have compiled kernels before so if/when I learn how to do it myself, I could start to use my own git repo for more recent daily builds or something.
I'm also thinking about starting working on some *buntu stuff (I know Ubuntu is there for the Kaiser, but soem tweaks would help if I get a chance.)
Hmm, a little Googling goes a long way http://www.androidonhtc.com/wiki/Get_Involved << was hard to find that,so hopefully I can add ipv6 somewhere in the 'make menuconfig' options for the kernel.
Are the standard kernel options used by "make vogue_defconfig" ok to use, i.e. will it build a normal useable kernel so that everything works?
xteejx said:
Hmm, a little Googling goes a long way http://www.androidonhtc.com/wiki/Get_Involved << was hard to find that,so hopefully I can add ipv6 somewhere in the 'make menuconfig' options for the kernel.
Are the standard kernel options used by "make vogue_defconfig" ok to use, i.e. will it build a normal useable kernel so that everything works?
Click to expand...
Click to collapse
Yes, that is th correct make file to use. I have built the kernel with IPV6 support, haven't tested it but have attached the module to the post for you to try
Brilliant! I'll try it sometime within the next couple of days, although I might myself be working on a blazing fast kernel specifically for the HTC Kaiser, and it is SERIOUSLY!!!! fast, even at 400MHz I can notice a massive increase in speed with the exact same build, but I haven't economised too much.
I can see the the options for ipv6 in the ncurses menuconfig, so I guess it's just a case of enabling it and building the zImage right?
I seem to be having the old problem with the wifi though, and I know it's kernel related, but there are only patches for it, i.e. the wlan.ko, but can't see how to implement it myself so it's an all-in-one solution
When I get the hang of the Kaiser hardware properly, I might just push through a newer kernel from the armlinux site so watch this space
xteejx said:
I might myself be working on a blazing fast kernel specifically for the HTC Kaiser, and it is SERIOUSLY!!!! fast, even at 400MHz I can notice a massive increase in speed with the exact same build
Click to expand...
Click to collapse
How have you managed that??? What have you done?
I have no idea how it happened, perhaps the other devs add a load of useless options, but all I did was follow the instructions at that link above and compiled a zImage from the 2.6.32 arm branch, using the 2010 arm tools. Used NBHeditor to edit it for Kaiser, panel 2, froyo, flashed it and bang (not literally thank god).
I can't answer any better than that. I used the default options (for now at least) that the vogue build script uses for the kernel, but bluetooth, camera and gps work. No internet connection as yet either through the network or wifi, dumno what I've missed there, and no ipv6 (but can add that easily enough). Wifi doesn't work either, but I'm working on it, although that MAY be the reason why it's so fast...maybe it's missing a few options...still unsure at this point.
I notice that although this is an open community, and people attach NBHs, there are no changelogs or anything showing what the people have done with the kernel to implement some options, so it's kinda holding me back at the minute.
xteejx said:
I notice that although this is an open community, and people attach NBHs, there are no changelogs or anything showing what the people have done with the kernel to implement some options, so it's kinda holding me back at the minute.
Click to expand...
Click to collapse
That isn't true, all tested changes are pushed to git, you can see what has been changed and how from here: http://androidhtc.git.sourceforge.n....git;a=shortlog;h=refs/heads/htc-vogue-2.6.32
*facepalm!*
Didn't see that, will bookmark it and keep an eye on it, perhaps work with it. Thanks for the link
the androidhtc.com site is not related directly to the develop project because no developer is connected to it. Also the git repository it not hosted in linux to go but on sourceforge (so download the correct git). That site is very outdated.
wifi works if you use the correct branch (on sourceforge) and modules.
Am I right in thinking that http://androidhtc.git.sourceforge.n...7c0bf5edc4f5c6d64ce4df29254e8332ce26b;hb=HEAD is the prebuilt kernels and nbhs from the source at http://androidhtc.git.sourceforge.n...og;h=62f075ddd13f378fd252be94c77e4f93d12584fb ??
I think I'm looking at the right tree now.
Flashing the latest NBH: VOGUIMG-320-FROYO-01-16-11.NBH still gives me the wifi error. Do I need to manually add the wlan.ko to it or ??
I could've sworn that an NBH I flashed before had all that in the NBH and it worked fine.
Ok, got it back to how I had it:
Flashed latest.NBH from http://androidhtc.git.sourceforge.n...7c0bf5edc4f5c6d64ce4df29254e8332ce26b;hb=HEAD and dropped androidupdate.tgz to the /andboot folder of the SD card, installed update thru the boot menu and done.
So in reality there's nothing stopping me grabbing the same kernel source, building it and adding ipv6 support in the ncurses kernel config menu and making an NBH from it and flashing that over, and then doing the androidupdate.tgz, although I think with HTCFlasherGUI you can flash a zImage directly right??
Is there something wrong with the git at http://androidhtc.git.sourceforge.net/git/gitweb.cgi?p=androidhtc/kernel.git;a=summary I can't get access, it's showing old stuff. It looks closed since git clone rejects me
xteejx said:
Is there something wrong with the git at http://androidhtc.git.sourceforge.net/git/gitweb.cgi?p=androidhtc/kernel.git;a=summary I can't get access, it's showing old stuff. It looks closed since git clone rejects me
Click to expand...
Click to collapse
No, nothing wrong with it. Just do:
git clone git://androidhtc.git.sourceforge.net/androidhtc/kernel.git
You then need to set it to the correct branch using 'git checkout -b <branch you want> '
It's the 2.6.32 branch you are interested in, you can find out exactly what it's called using 'git branch -a' which will list the available branches.
Cool. Knew something went wrong somewhere, had to be me lol!
I added that ipv6.ko to the NAND via a androidupdate.tgz (only way I could do it), and it didn't work, something about incorrect module format (or something like that).
Are there any prebuilt kernels or NBHs for the Kaiser that include ipv6? Either as a module that I can insmod it in the terminal or built-in?
I hate being upstaged by people that can use Goggles without any problems.
I know slayher's kernels have ipv6, but I flashed the new stock one from http://forum.cyanogenmod.com/topic/4434-froyo-kernels-by-slayher/ and it didn't work. I mean the kernel did, but Goggles didn't - couldn't insmod it either - same invalid module format as the ipv6.ko scooter did for me
Also the git clone didn't work:
Initialized empty Git repository in /home/name/android-git/kernel/.git/
fatal: The remote end hung up unexpectedly

Categories

Resources