[Q] about cifs.ko and nls_utf8.ko - Desire HD Q&A, Help & Troubleshooting

Is there any method to get these 2 files?
Some kernal has these 2,but some miss nls_utf8.ko.
Is it necessary if I use the command iocharset=utf8?
And how can I get nls_utf8.ko if it is necessary?

trakanon said:
Is there any method to get these 2 files?
Some kernal has these 2,but some miss nls_utf8.ko.
Is it necessary if I use the command iocharset=utf8?
And how can I get nls_utf8.ko if it is necessary?
Click to expand...
Click to collapse
Go to Settings -> About phone -> Software information and let us know your:
Kernel version
Software number
Example:
Code:
2.6.32.21-g66cfb7a
1.32.178.5
I might be able to compile these modules for you. You'll also need another module "slow-work.ko" to use cifs.ko.
Mike

Tkanks for ur help,mike
Is there any easy guide to learn about how to compile?
I usually use Apache14's Buzz oc kernal for HTC Desire HD. There is cifs.ko included in the kernal,but it seems to lack nls_utf8.ko. Without nls_utf8.ko, I cant read specific language character.

trakanon said:
I usually use Apache14's Buzz oc kernal for HTC Desire HD. There is cifs.ko included in the kernel, but it seems to lack nls_utf8.ko. Without nls_utf8.ko, I can't read specific language character.
Click to expand...
Click to collapse
I can't compile modules for you then. It would be best to ask other users running the same kernel whether they have the nls_utf8.ko module already.
trakanon said:
Is there any easy guide to learn about how to compile?
Click to expand...
Click to collapse
You would need to get the source code for the exact Buzz kernel that you are running.
You would also need to download the Android NDK http://developer.android.com/sdk/ndk/index.html
You would then edit the .config file within the kernel source directory, and set CONFIG_NLS_UTF8=m
Then run the following at the Linux command line:
export CROSS_COMPILE=arm-eabi-
export ARCH=arm
export PATH=$PATH:/path/to/android-ndk-r5b/toolchains/arm-eabi-4.4.0/prebuilt/linux-x86/bin/
cd /path/to/kernel/source
make clean
make prepare
make modules
/path/to/android-ndk-r5b/toolchains/arm-eabi-4.4.0/prebuilt/linux-x86/bin/arm-eabi-strip --strip-debug /path/to/kernel/source/fs/nls/nls_utf8.ko
The nls_utf8.ko file will be inside /path/to/kernel/source/fs/nls/
Note with all of the above commands, the bold text should be adjusted to match the locations where you extracted the Android NDK and kernel source to.
As for easy guides - I wouldn't know where to look - maybe try Google.
Mike

Related

[Dev] Building a 2.6.29 kernel for the Hero

Hello,
I would like to build a 2.6.29 kernel for Hero for us to run properly Donut roms.
Here is my progress so far:
- I have sync the android kernel msm from git.
# git clone git://android.git.kernel.org/kernel/msm.git
# cd msm
# git checkout --track -b android-msm-2.6.29 origin/android-msm-2.6.27
- then:
# adb pull config.gz ./
# gunzip config.gz && mv config .config
# make PATH=$PATH:android-1.6_r1/prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin ARCH=arm SUBARCH=arm CROSS_COMPILE=arm-eabi-
But no luck: it asks me questions to configure the kernel (error in .config?)
I have attached some useful files.
Try running make menuconfig and manually load the .config file. What happens?
kernel sources for hero is not available on http://developer.htc.com/ then no hero support in android.git.kernel.org/kernel/msm.git
Z!L0G80 said:
kernel sources for hero is not available on http://developer.htc.com/ then no hero support in android.git.kernel.org/kernel/msm.git
Click to expand...
Click to collapse
Well this guy did it here for sapphire before Htc released kernel sources.... So I think we can.
erikwt said:
Try running make menuconfig and manually load the .config file. What happens?
Click to expand...
Click to collapse
I copied the hero .config file to kernel root, then "make menuconfig" and loaded .config, then exit and yes to "write .config" question.
Make failed, output attached (make1.txt)
I then applied TigerTael sapphire patch as he "tends to think the memory locations may be correct". Tried to manually load hero's .config and got attached error (error.txt)
I then "make msm_defconfig" and could compile a kernel witch I added to ADP-1.6 boot.img. But no luck it does not work and adb logcat waits for device.... while I am waiting for advices
Regards
Was the downloaded config copied from a build of the same kernel version? If not do "make oldconfig" before commencing with "make menuconfig" or other build.
phel21 said:
Was the downloaded config copied from a build of the same kernel version? If not do "make oldconfig" before commencing with "make menuconfig" or other build.
Click to expand...
Click to collapse
'make oldconfig' asks me the questions to configure the kernel.....
Edit:
If that could help:
cat /proc/iomem
00700000-0079afff : msm_panel.1
007a0000-007bffff : ram_console
19200000-257fffff : System RAM
19223000-19513fff : Kernel text
19514000-195ebf7f : Kernel data
a0200000-a0200fff : msm_serial_hs.0
a0400000-a0400fff : msm_sdcc.1
a0500000-a0500fff : msm_sdcc.2
a0800000-a0800fff : msm_hsusb
a9900000-a9900fff : msm_i2c.0
a9900000-a9900fff : msm_i2c
a9c00000-a9c00fff : msm_serial.2
a9c00000-a9c00fff : msm_serial
aa200000-aa2effff : mdp
aa600000-aa600fff : msm_mddi.0
Yes. It will ask you questions as the kernel has added new capabilities - which you will need to configure. Use the help for the new options to guide your choices, although usually the default is the best way to go. Not doing "oldconfig" step will leave you with a busted build configuration.
I assume you're using the config options from /proc/config.gz on the phone?
CombinedEffort said:
I assume you're using the config options from /proc/config.gz on the phone?
Click to expand...
Click to collapse
of course I do
gecka said:
of course I do
Click to expand...
Click to collapse
Godspeed! (sorry, i cannot contribute anything as I am a total noob, but I'll read your progress regardless!)
(edit: i could beta test though..^_^)
http://forum.xda-developers.com/showpost.php?p=4737995&postcount=37
maybe this could be of any help?
E2K said:
http://forum.xda-developers.com/showpost.php?p=4737995&postcount=37
maybe this could be of any help?
Click to expand...
Click to collapse
please read first post
Now that kernel sources are out, it is time to port changes to 2.6.29.
Hey guys what would be the best? Apply HTC Hero kernel changes to 2.6.29 or apply 2.6.29 changes from 2.6.27 to hero kernel ?
I have applied HTC changes (3.4Mo patch!) to android2.6.29msm and I can compile it. When I run it it says it is a 2.6.27-dirty kernel... Why dirty ?
Lox, it probably means that some of your kernel changes from 2.6.27? or coded for 2.6.27 are not valid in the newer build, hence the 'dirty' reference.
Dirty here meaning spoilt or wrong.
I don't code, and i don't know exactly how much experience you have yourself, but do you reckon Cyanogen or maybe Drizzy could help some of you Hero ROM chefs out with some tips? I'm sure they'd love to give some pointers as to how they've gone about cooking on the Sapphire and Magic.
maybe you did a dirty trick
Lox_Dev said:
Hey guys what would be the best? Apply HTC Hero kernel changes to 2.6.29 or apply 2.6.29 changes from 2.6.27 to hero kernel ?
I have applied HTC changes (3.4Mo patch!) to android2.6.29msm and I can compile it. When I run it it says it is a 2.6.27-dirty kernel... Why dirty ?
Click to expand...
Click to collapse
You can get dirty tagged when you change owner of the files compared to the user who pulled them from git.
packetlss said:
You can get dirty tagged when you change owner of the files compared to the user who pulled them from git.
Click to expand...
Click to collapse
Well I understand that but I don't understand why it is not 2.6.29 ?
I have done:
git checkout --track -b android-msm-2.6.29 origin/android-msm-2.6.27
Why start with 2.6.29 and not the latest stable kernel (2.6.31.x) now that HTC-patches just have been released. According to the changelogs there's quite a few interesting android-specific improvements in those later revisions.
Is the intention to match kernel version for android 1.6 source? I'd expect generic android kernel-enhancements to be integrated into the kernel.org kernel. In that case it should be fairly easy to use a more recent kernel than that included in an official android release.
Lox, is this a dead project? Are you focusing on your optimized .27 kernel for our devices?

Flashing Galaxy S kernel from update.zip : template update.zip

NEWS :
Koush's bmlunlock (a simple IOCTL send to the bml device) is just out and can replace redbend_ua !
http://github.com/CyanogenMod/android_device_samsung_bmlunlock
Hey
Is Flashing from update.zip the new trend ?
'Don't know but here is how you can do it quite easily using this template.
If you target a GT-I9000 on Eclair, you'll need to customize one thing :
In build-update-zip.sh, set DROID_HOME to the source code path for your local Android repository.
If you target another Galaxy S phone or another version of Android, you'll need to adjust ro.hardware and ro.build.id properties accordingly.
This template is done for Linux/Unixes/OSX.
If Linux cost too much for you or your employer, please contribute by sending a .bat equivalent to the .sh
Of course, you also need to put a valid zImage to replace the template's empty zImage
Feel free to adjust to your needs. License is WTFPL
Note : requirement are Java and Android source repo, already build.
Looks awesome!
I have a question though... why do you need to flash the kernel in an update.zip at boot?
As far as I know, the system will read the kernel at boot up time and load it into ram. It won't access the on-disk file again until the next boot. If that is true, then flashing while running should be 100% safe, right?
RyanZA it's an update.zip, not a ramdisk.
The point is getting an easy flashing method, requiring no computer.
And you don't even need to root your phone !
curio, as i see this script is quite simple, so dont u think this all could actually be done on the phone directly? i mean if people cant afford a linux machine...
edit:
sorry for major dumbness, but do you think this could also somehow be used to reflash a nandroid backup?
FadeFx said:
curio, as i see this script is quite simple, so dont u think this all could actually be done on the phone directly? i mean if people cant afford a linux machine...
Click to expand...
Click to collapse
I don't think the signing tool works on android -- maybe it does? Anyway editing scripts on a phone seems a bit silly!
FadeFx said:
curio, as i see this script is quite simple, so dont u think this all could actually be done on the phone directly? i mean if people cant afford a linux machine...
edit:
sorry for major dumbness, but do you think this could also somehow be used to reflash a nandroid backup?
Click to expand...
Click to collapse
Nope actually this is not dumb at all
Yes the flashing part run in updater-script can be started manually.
In the script :
Code:
"redbend_ua", "restore", "zImage", "/dev/block/bml7"
The update.zip presented here mainly targets custom kernel creators in order to give them another way to distribute their work.
This is a working example of how to use redbend_ua programmatically, hopefully it may help new ideas coming. redbend_ua usage is not limited at all to kernel flashing.
PS : you can use this template with windows as well, you'll just need to translate the ulta-basic .sh to a .bat script, or do the signing part manually.
supercurio said:
Hey
If you target a GT-I9000 on Eclair, you'll need to customize one thing :
In build-update-zip.sh, set DROID_HOME to the source code path for your local Android repository.
Click to expand...
Click to collapse
quick question, the build-update-zip.sh is not a must if i only want to flash zImage, rite?
looks like that, I need to modify updater-script (if needed), as well as putting a zImage into ur zip file, and finally remove the build-update-zip.sh from ur zip attached
then, ur zip file can be used for flashing
is it correct?
thx
So this will let people flash any rom from an update.zip (once the ROM makers take this into account) via RomManager without ever having to use Odin to get off stock?
Awesome!
Thanks for the update script curio! this looks great.
One quick question - ive noticed several update.zip scripts for the galaxy S
have update-binary included.
Does anyone know what that does?? where did you get yours?
ive had success in using update.zips without that file at all.
Could anyone post information on what that binary is/does?
supercurio said:
Hey
Is Flashing from update.zip the new trend ?
'Don't know but here is how you can do it quite easily using this template.
If you target a GT-I9000 on Eclair, you'll need to customize one thing :
In build-update-zip.sh, set DROID_HOME to the source code path for your local Android repository.
If you target another Galaxy S phone or another version of Android, you'll need to adjust ro.hardware and ro.build.id properties accordingly.
This template is done for Linux/Unixes/OSX.
If Linux cost too much for you or your employer, please contribute by sending a .bat equivalent to the .sh
Of course, you also need to put a valid zImage to replace the template's empty zImage
Feel free to adjust to your needs. License is BSD anyway.
Note : requirement are Java and Android source repo, already build.
I'll add some documentation later.
Click to expand...
Click to collapse
dseo80 said:
Thanks for the update script curio! this looks great.
One quick question - ive noticed several update.zip scripts for the galaxy S
have update-binary included.
Does anyone know what that does?? where did you get yours?
ive had success in using update.zips without that file at all.
Could anyone post information on what that binary is/does?
Click to expand...
Click to collapse
Thats for the updater-script i believe. In most cases, theres a update-script in the zip's as well and the recovery picks that up in which case it doesn't need the binary and hence works.
Okay !
Answers hour
ykk_five said:
quick question, the build-update-zip.sh is not a must if i only want to flash zImage, rite?
looks like that, I need to modify updater-script (if needed), as well as putting a zImage into ur zip file, and finally remove the build-update-zip.sh from ur zip attached
then, ur zip file can be used for flashing
Click to expand...
Click to collapse
When you run ./build-update-zip.sh,
- it produce a temp zip file containing appropriate files in it.
- then there'is the signature part, building another .zip, ready to be used.
- this "final" update.zip is put in the same current directory and you can use it as it is.
No further complication
Brantyr said:
So this will let people flash any rom from an update.zip (once the ROM makers take this into account) via RomManager without ever having to use Odin to get off stock?
Awesome!
Click to expand...
Click to collapse
Yes, to flash a complete ROM (several partitions) one more thing is needed.
On command line, redbend_ua accept only one command.
In order to run several commands successively (ie flash multiple partition like Odin does), you'll need to write them in a file.
The file /cache/ota/command should do the trick, but it's untested right now.
There may be other method to prevent rebooting after flashing (hacking the redbend_ua binary, finding the appropriate command line option or removing the reboot command temporary)
dseo80 said:
Thanks for the update script curio! this looks great.
One quick question - ive noticed several update.zip scripts for the galaxy S
have update-binary included.
Does anyone know what that does?? where did you get yours?
ive had success in using update.zips without that file at all.
Could anyone post information on what that binary is/does?
Click to expand...
Click to collapse
Right, many update.zip done today are made without knowing anything about how it really works
I studied a bit before creating mine, here is a walk-through this fairly undocumented process :
- recovery mounts /sdcard/
- recovery search for a default file named : META-INF/com/google/android/update-binary in the zip and runs it : see the source in bootable/recovery/install.c
- update-binary is actually updater in sources
- updater looks into the zip file to the script file named updater-script, update-script is obsolete
- updater then runs the commands listed in updater-script : here is the list of commands.
- then reboot
The only documentation I know for this command is the recovery/updater/install.c file itself
supercurio said:
When you run ./build-update-zip.sh,
- it produce a temp zip file containing appropriate files in it.
- then there'is the signature part, building another .zip, ready to be used.
- this "final" update.zip is put in the same current directory and you can use it as it is.
Click to expand...
Click to collapse
ok,thx
but one more thing i want to know is, u said the path must be changed to the android repo, so do u mean the source code for the kernel like linux-xxx-2.xxx dir?
Thx
@ykk_five
Content of build-update-zip.sh v1 :
Code:
#!/bin/sh
DROID_HOME="/home/curio/dev/mydroid"
zip -r /tmp/update.zip META-INF/ redbend_ua zImage
java -jar \
$DROID_HOME/out/host/linux-x86/framework/signapk.jar \
$DROID_HOME/build/target/product/security/testkey.x509.pem \
$DROID_HOME/build/target/product/security/testkey.pk8 \
/tmp/update.zip update.zip
rm /tmp/update.zip
adb push update.zip /sdcard/
DROID_HOME="/home/curio/dev/mydroid" : you set here the directory of your Android AOSP directory.
See : http://source.android.com/source/download.html
Create an empty directory to hold your working files:
$ mkdir mydroid
$ cd mydroid
Run "repo init" to bring down the latest version of Repo with all its most recent bug fixes. You must specify a URL for the manifest:
$ repo init -u git://android.git.kernel.org/platform/manifest.git
* If you would like to check out a branch other than "master", specify it with -b, like:
$ repo init -u git://android.git.kernel.org/platform/manifest.git -b cupcake
Click to expand...
Click to collapse
This is this mydroid directory
The one that contains Android git source home directory, and compiled files in the out/ subdir
many thx for ur detailed explanation, supercurio!
Thanks curio,
very helpful explanation!
Thanks supercurio for the template!
However, there is no need to spend many hours (depending on hardware and bandwidth) pulling down 100s of megabytes of source and compiling it all if all you want is to sign an update.zip with test keys (if you already have the zImage)!
Just google around for "signapk.jar test keys" and you will get there.
BTW: I know that koush, leshak and wesgamer have Samsung Galaxy S trees up at Github but are they fully merged with AOSP yet?
I'm planning to go build my own kernel for this beast to try to solve the mono FM radio mystery, but last time I checked around it was said that the SGS tree required the use of a custom toolchain to get it to work at all.
Any comments on this?
Hey miki4242 !
Good to know that signapk.jar doesn't require hundred of megs of dependencies
About toolchain, you can use the one indicated by Samsung (CodeSourcery) but you'll face the big and ugly WakeLag.
I recommend you crosstool-ng or buildroot to build toolchains, with gcc 4.3.x march=arm mcpu=cortex-a8 mtune=cortex-a8 (no 4.4.x with march=armv7-v)
The building tutorial will be a part of the documentation I'll publish with my lagfix opensource release
Right now these info are too hard to find.
PS : I send you a mail with attached .config for ct-ng !
supercurio said:
Hey miki4242 !
Good to know that signapk.jar doesn't require hundred of megs of dependencies
Click to expand...
Click to collapse
supercurio said:
PS : I send you a mail with attached .config for ct-ng !
Click to expand...
Click to collapse
Thanks for the info !
Sorry for my ignorance, but does this mean someone can package Froyo in an update.zip and we could update it directly on our phone without needing Samsung Kies or Odin?
@supercurio:
Thanks for this well working template.
In updater-script:
Code:
line 17: package_extract_dir("zImage", "zImage");
should be
Code:
package_extract_file("zImage", "zImage");
But it did work with package_extract_dir, for some reason, too.
Btw, could you send me the config for ct-ng ?
I'm also struggling with this wakelag.

[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.

[KITCHEN] Minimal kernel building VM with scripts

I added some convenience scripts to the config. Read the new tutorial here
The old one still works:
I put together a small virtualbox vm with a very minimal debian config with which I was able to compile a working kernel. This is for all the people who are running Windows, and want to try modifying kernels/initramfs's. As this is a minimal config there are some drawbacks (like it doesn't have a graphical interface), but you can always install additional packages, if you want to.
The VM includes: debian, build essentials, git, vb guest additions, mc, vim and codesourcery 2010q1 gnu-eabi. (it's larger than the simple eabi version, but can be used to compile non-kernel applications too)
First of all I hate both SunOracle VirtualBox and debian, but VB is free, and debian is lean, so they'll do the job.
To get the image running do the following:
First download and install VirtualBox
Next download the VM image: http://android.sztupy.hu/dl/KernelCompilerVM-1.1.7z and extract it. (it's a large download. If you can please put it up a mirror)
Mirrors: (thanks to the people mirroring it)
- http://www.multiupload.com/THJV19BJ9X
- http://bote.ro/sztupy/KernelCompilerVM-1.1.7z
After this run virtualbox, and import this VM.
Run the VM. The username/passwords are: root/root and kernel/kernel. Login with kernel. (you can always switch to root using sudo)
Next choose what kernel/initramfs you want to compile.
Here are some links to kernels:
The original sources can be found at supercurio's git:
Code:
git://github.com/project-voodoo/linux_gt-i9000.git
froyo-samsung branch
The kernel of the voodoo project can be found at the same place:
Code:
git://github.com/project-voodoo/linux_gt-i9000.git
froyo-voodoo branch
The ULTK kernel can be found at my account:
Code:
git://github.com/sztupy/universal_lagfix_kernel.git
Here are some links to initramfs files:
The original froyo initramfs can be found at supercurio's git page:
Code:
http://github.com/project-voodoo/samsung_ramdisks.git
afaik the voodoo initramfs is build using scripts from these images, so you have to apply them.
The ULTK initramfs can be found here:
Code:
git://github.com/sztupy/universal_lagfix_kernel_initramfs.git
For the rest of the tutorial I'll be showing how to compile ULTK:
First get the kernel sources using git:
Code:
git clone git://github.com/sztupy/universal_lagfix_kernel.git kernel
Unfortunately no copy-paste function is available, so you have to write this manually...
Next get the initramfs using git:
Code:
git clone git://github.com/sztupy/universal_lagfix_kernel_initramfs.git initramfs
If everything goes well you'll have two directoryes, called kernel and initramfs. Next we have to modify some values in the kernel configs.
Nano, mcedit and vim are installed, use the one that suits you best. (mcedit is the most user friendly)
Switch to the kernel directory and edit the Makefile there:
Code:
cd kernel
nano Makefile
Find the row that says
Code:
CROSS_COMPILE ?= some value
Replace it to
Code:
CROSS_COMPILE ?= /home/kernel/arm-2010q1/bin/arm-none-linux-gnueabi-
(if using nano make sure it won't add a line break into the row)
Next load the default config:
Code:
make aries_eur_defconfig
And edit it:
Code:
nano .config
We have to supply the directory of the initramfs. Search for the line:
Code:
CONFIG_INITRAMFS_SOURCE=some value
and replace it to
Code:
CONFIG_INITRAMFS_SOURCE=/home/kernel/initramfs/out
(this is for the ULTK. For voodoo the initramfs locations are "froyo-xxjp6" and "froyo-xxjpm" instead of "out")
if you've managed to do that too, let's compile the kernel:
Code:
make
If everything goes fine after a while you will have your shiny new kernel. Now let's get it to your computer, so it can be flashed:
First, you have to create a shared folder in VirtualBox. Simply create a directory somewhere on your computer, and add it as a shared folder in virtualbox. The name of the shared folder should be simple, for example "shr".
Next, you have to mount that directory inside the VM. To do this enter:
Code:
sudo mount -t vboxsf shr ~/share
After it has been mounted you can copy the fresh kernel to your host OS:
Code:
cp arch/arm/boot/zImage ~/share
If everything goes well you have a zImage ready at the folder you've just shared. TAR it, fire up odin, and flash.
---------------------------------
Now that you've succesfully compiled a working kernel try to modify it. You can use "make menuconfig" in the kernel directory to switch some kernel functions (like filesystem supports) on and off. You can edit .config by hand to add or remove some configuration values. And you can edit the files in the initramfs directory. After modifications you only have to enter "make" in the kernel directory to get your kernel inside the "arch/arm/boot/zImage" dir ready.
You can also copy files from your host OS, to the guest OS, by putting the file inside the shared folder and copying it:
Code:
cp ~/share/thefile ~/initramfs/copyithere
Hope this guide was useful.
Impressive, thanks. Even a noob like me can try this.
Oh god, not only a talented developer, but a community helper!
STICKY!!
Gonna try it laters <3
oh yea, nice!
DocRambone said:
Impressive, thanks. Even a noob like me can try this.
Click to expand...
Click to collapse
If you're a noob, then I'm a baby
Darkyy said:
If you're a noob, then I'm a baby
Click to expand...
Click to collapse
high time you start compiling kernels
tnx
its very usefull
Magnificent!
I just came to take a quick look, but the thread deserves a closer one.
Thank you for sharing knowledge.
Worthy of a sticky.
Hopefully this will solve all those "I want this in a kernel but not that" scenarios.
This is VERY nice for the devs.. but.. i think this will make this forum spammed with 69 diff kernels with just minor changes.. as with the roms
Its better to let other people brick their phone than you brick your own
Just kidding! I for one will try and compile different versions with different lag-schemes to find the fastest combination. Including /system with fastest reading. I think I will add a benchmark to the recovery menu directly. Benchmarking each mount for read and for write speeds. Maybe I can use backup/restore code and just time it without writing (cp to null). Lets get to work
Thanks sztupy!
Sent from my GT-I9000 using XDA App
_JKay_ said:
Its better to let other people brick their phone than you brick your own
Just kidding! I for one will try and compile different versions with different lag-schemes to find the fastest combination. Including /system with fastest reading. I think I will add a benchmark to the recovery menu directly. Benchmarking each mount for read and for write speeds. Maybe I can use backup/restore code and just time it without writing (cp to null). Lets get to work
Thanks sztupy!
Sent from my GT-I9000 using XDA App
Click to expand...
Click to collapse
You cannot brick your phone with a bad kernel
@sztupy
I am impressed how productive master mind and kind person you are sharing all your knowledge and developments with us.
Congratulation, with you contributions you push Android Development forward.
Thank you
this is really cool, if i need minimal GUI, what would you suggest? xfce ? or there is something smaller and lighter? thx again.
avary said:
this is really cool, if i need minimal GUI, what would you suggest? xfce ? or there is something smaller and lighter? thx again.
Click to expand...
Click to collapse
Fluxbox/Openbox. However I don't see the need for one, if you're running the machine just for compiling.
Also, shouldn't gpm+guest additions solve the copy-paste problem?
E: Apparently not. Meh, stupid virtualbox.. sshd+putty then!
Awesome! Thanks for this sztupy! The more people we can get involved in this stuff, the better the end result will be. Always!
aziztcf said:
Fluxbox/Openbox. However I don't see the need for one, if you're running the machine just for compiling.
Also, shouldn't gpm+guest additions solve the copy-paste problem?
E: Apparently not. Meh, stupid virtualbox.. sshd+putty then!
Click to expand...
Click to collapse
actullay i was looking for something light and minimal (with GUI, or at least something like PCman FM and gedit or kedit, im not good with emac, vi ) to play and compile AOSP, for now i do this with Kubuntu dual boot on my laptop. if i put a litghweight desktop on top of szytup's image and use it with VB, that would be great.
thank you !
avary said:
actullay i was looking for something light and minimal (with GUI, or at least something like PCman FM and gedit or kedit, im not good with emac, vi ) to play and compile AOSP, for now i do this with Kubuntu dual boot on my laptop. if i put a litghweight desktop on top of szytup's image and use it with VB, that would be great.
thank you !
Click to expand...
Click to collapse
I'd use a shared folder+IDE/editor/whatever on windows. But that's just because I have so awful experiences about X in VMs, things might be better nowadays
Thanks a lot sztupy, will try it now. Sunday is enough time for testing
Each morning i have a look at XDA and you have brought out a new very helpfully posting, kernel, rom or else!
So let me ask you one question: when do YOU sleep?
avary said:
actullay i was looking for something light and minimal (with GUI, or at least something like PCman FM and gedit or kedit, im not good with emac, vi ) to play and compile AOSP, for now i do this with Kubuntu dual boot on my laptop. if i put a litghweight desktop on top of szytup's image and use it with VB, that would be great.
thank you !
Click to expand...
Click to collapse
The advantage of using X is that afaik guest additions has copy-paste support, that would make modifying easier.
I also plan on making some simple scripts inside the default home directory one can run to communicate with the shared folder. After that we could provide simple scripts that you only have to put inside the shared folder, which will download, modify and run the compilation.

Tun.ko in HTC Stock Rom

Hey,
Not sure if this is the right forum or not. But I have tried a few places and ended up with no reply or a dead end so I'm hoping I will actually get some where here.
But is there any way that makes it possible to get tun.ko working on a stock HTC Desire rom?. I have been searching for god know hows long to find any help or instructions on the matter without much help being offered :/
Its because I want to run VPNC on my Desire and I got all the stuff bar tun.ko, so that is the only thing stopping me from going any further and any and all help will be appreciated.
Kind regards.
Yes, you can download the desire kernel from http://developer.htc.com/
You also need the build toolchain for arm processors, find it on http://developer.android.com/sdk/index.html
You need to root your desire, so you can copy files to the system partition. http://unrevoked.com/
The kernel .config file for making oldconfig is , as far as I remember, delivered with the kernel package by htc. If not you can get it from your phone.
Build tun as module, and copy it on yor device.
Hope thats a good quick start for you.
malachay.
It helped somewhat, althought I am not sure how I actually build something as a module etc considering I dont really have much in the way of linux/unix experience.
But my phone is both rooted and S-OFF.
So considering my lack of experience with these things a more elaborate/comprehensive guide or just the steps I need to reproduce to actually build the file as a module, would be greatly appreciated.
MeX_DK said:
It helped somewhat, althought I am not sure how I actually build something as a module etc considering I dont really have much in the way of linux/unix experience.
But my phone is both rooted and S-OFF.
So considering my lack of experience with these things a more elaborate/comprehensive guide or just the steps I need to reproduce to actually build the file as a module, would be greatly appreciated.
Click to expand...
Click to collapse
You don't have to build one per say, you just need to find the Tun module (Tun.ko) for your specific kernel.
If you go to the "About phone" -> "Software Information" section, you'll see a Kernel version.
For example, the phone I have is using Kernel 2.6.32.15-gf5a401c - so I have a tun.ko that loads for that kernel.
There's quite a few TUN modules posted on this forum for various versions of the HTC kernels.
If you don't find a module that fits your kernel version , I can build it for you if you want.
Sent from my HTC Desire using XDA App
Mekrel said:
For example, the phone I have is using Kernel 2.6.32.15-gf5a401c - so I have a tun.ko that loads for that kernel.
Click to expand...
Click to collapse
My kernel seems to be the same, so would you mind sharing your tun.ko and possibly any instructions on how to get it on my phone and working ?
But my kernel version says: 2.6.32.15-gf5a401c
[email protected] #1
MeX_DK said:
My kernel seems to be the same, so would you mind sharing your tun.ko and possibly any instructions on how to get it on my phone and working ?
But my kernel version says: 2.6.32.15-gf5a401c
[email protected] #1
Click to expand...
Click to collapse
Here's the tun.ko I made for my ROM:
Tun.ko for 2.6.32.15-gf5a401c
It's not a flashable zip though, you need to push it to your phone using ADB (or use QtADB if you want a UI program to help you).
You need to put it in /system/lib/modules/
To load it, run terminal emulator on your device (it's free on the market) and run the command:
Code:
insmod /system/lib/modules/tun.ko
Although, if you're using a VPN application on your phone, the application might have an option to load the TUN module for you - so the insmod command might not be needed.
Mekrel,
Do you have the "exact" ADB command on hand?. Because I know how what ADB is for, but doesn't know the commands etc by heart
This is the error I get when I try :/
D:\Test\android-sdk-windows\platform-tools>adb push D:/tun.ko /system/lib/module
s
failed to copy 'D:/tun.ko' to '/system/lib/modules/tun.ko': Read-only file syste
m
Hi!
Seems like there is the same problem on all Android devices. OpenVPN requires the tun.ko kernel module that is hard to get. And it also seems like it must be compiled more or less exactly to much your rom version :-( .
I have a HTC Desire HD running stock rom kernel version 2.6.32.21-gf3f553d [email protected] #1
I have tried various tun.ko modules I have found, but none is comaptible; insmod tun.ko fails.
Questions:
#1 Where can the right version of this magical module tun.ko be found?
#2 Is it hard to compile it for the correct ROM?
#3 How? Isthere any good step-by-step guides.
This could also be a good way to get introduced to compiling kernel modules fro Android devices.
br akeso

Categories

Resources