[Q] archos gen8_gpl_froyo kernel build - General Questions and Answers

Just for fun and because I can, I started to work on recompiling the kernel for my Archos 10.1 (gen8) device.
I'm working with the Archos provided gen8_gpl_froyo source tarball.
Apart from some small stuff I could work out, like unterminated double quoted strings in config.in files, patches that don't apply to sources because the sources contain symlinks where files are expected, and of course the rounds of what-do-I-need-on-my-host (automake, texinfo, ...) - I got both a working kernel compile, and all the rest of the build.
I proceeded to menuconfig in some stuff I'd like to have in the kernel, as modules, like netfilter conntracking / NAT support, advanced (policy) routing, namespaces, nfsd. Also went smoothly.
I can successfully start that kernel on an existing Uruk 0.7 install, by untarring my self built modules over what Uruk comes with in /lib/modules/2.6.29-omap1/kernel, depmod that, and use the Uruk's /root/initramfs.cpio.gz together with my self built zImage for flashing through the recovery menu.
The system then boots up fine, I can verify it is running the kernel, I can load the netfilter conntracking / NAT modules, and even install an state ESTABLISHED rule which does what it should.
HOWEVER - and that's why I open this thread, there is constant chatter, coming from the kernel, being written to logcat. This uses quite a bit of CPU, probably for the logging work, so I rapidly reverted to the Uruk's own kernel.
What I would like to know, is whether somebody else has seen the following kernel messages in a similar scenario, and knows what I did wrong / how I can work around that?
Code:
03-06 15:33:56.816 I/cat ( 1020): <6>tmdlHdmiTxHdcpCheck 4245
03-06 15:33:56.816 I/cat ( 1020): <3>Bad input instance value returned in hdcp_check line 729
03-06 15:33:56.847 I/cat ( 1020): <6>tmdlHdmiTxHdcpCheck 4245
03-06 15:33:56.847 I/cat ( 1020): <3>Bad input instance value returned in hdcp_check line 729
03-06 15:33:56.878 I/cat ( 1020): <6>tmdlHdmiTxHdcpCheck 4245
03-06 15:33:56.878 I/cat ( 1020): <3>Bad input instance value returned in hdcp_check line 729
It is a constant repetition of these two lines, I just showed three instances so you can get a feel for the frequency from the timestamps.
The function names / messages are nowhere to be found in the archos released source code, nor in the modules compiled from there.
They reside in two module files that lie directly in /lib/modules/, named hdmicec.ko and hdmitx.ko
The hdmitx.ko module is loaded when I boot into my kernel. Loading hdmicec.ko by hand does not improve the situation. Also, under the normal Uruk 0.7 kernel, only the hdmitx.ko is loaded.
Update 7.3.: the situation stays the same after I modified my .config to be, except for the diverse modules I additionally selected, identical to the kernel /proc/config.gz found on Uruk 0.7. There seem to be several things missing that are in Uruk 0.7, i.e. the interactive CPU governor, and filesystem caches.
I also compared the loaded modules after boot, and apart from module size, it is the same list with Uruk 0.7 and my kernel.
Trying again to use my kernel, I also noticed that the tablet freezes as soon as I try to start WLAN. Still pings (on the g_ether USB connection I use), but the GUI is frozen and ssh connections, too.
It seems to me that the gen8_froyo_gpl source released by Archos is somewhat lacking...
Where can I find the Uruk 0.7 kernel tree, or some other kernel that is Known Good?

Latest kernel source you can find here:
http://sauron.pourix.com/UrukDroid/
conntrack/nat brakes compatibility with tiwlan kernel driver - witch is not part of kernel (but can be recompiled).
Anyway - entire wifi stock is a mess .. sadly

$aur0n said:
Latest kernel source you can find here:
http sauron.pourix.com /UrukDroid/
Click to expand...
Click to collapse
Thanks! What is the build system are you using?
I'm not exactly confident that the one I built from the Archos GPL package, is good.
But it seems to work! I successfully compiled your kernel, with your .config, and run that now. Wifi is working so far, my g_ether usb network connection works, too, and no funny hdmi messages are showing.
Now I'm going to build in some of the stuff I wanted of the networking stuff, and see what breaks wifi exactly. I would _love_ to have conntrack / NAT available.
Update built again with various networking stuff enabled, advanced routing and namespaces among them, but consciously NOT with conntracking. Guess what - tiwlan_drv.ko does not load! When triggered through the UI that results in an apparent complete hang, but when trying insmod from a shell it is benign. All in all that's good - the wlan problems probably don't have anything to do with conntracking, and I have a half way easy test case to start "bisecting" which build option makes it fail. Now if I only had more time today...
Anyway, thanks again Sauron for providing such a good basis for playing!

$aur0n said:
conntrack/nat brakes compatibility with tiwlan kernel driver - witch is not part of kernel (but can be recompiled).
Click to expand...
Click to collapse
After some compile / flash / test cycles I'm pretty convinced that anything which changes the layout / size of struct net_device or struct sk_buff, breaks that binary tiwlan_drv.ko thing - which is probably to be expected...
Some googling around, did not find me any source code to that tiwlan_drv.ko, only loads of people copying it around between various systems in binary form (argh...)
Do you have source for that module available, so I could try and recompile it when the struct layout changes?
Here's a list of config defines that should probably be left alone, gleaned from looking at the struct definitions:
Code:
options that change sk_buff:
CONFIG_XFRM=y
CONFIG_NF_CONNTRACK=n
CONFIG_BRIDGE_NETFILTER=n (switches on when enabling bridge driver,
but can be switched off separately - bridge
itself builds and module loads)
CONFIG_NET_SCHED=n (so no tc / traffic shaping / queueing)
CONFIG_NET_CLS_ACT=n
CONFIG_IPV6_NDISC_NODETYPE=n?
CONFIG_MAC80211=n
CONFIG_NET_DMA=n?
CONFIG_NETWORK_SECMARK=n
options that change net_device:
CONFIG_WIRELESS_EXT=y
CONFIG_NET_DSA=n
CONFIG_NETPOLL=n (switched on / needed by netconsole... sigh)
CONFIG_NET_NS=n (would love to have that, lxc could work well then...)
CONFIG_DCB=n
CONFIG_COMPAT_NET_DEV_OPS=y

You can try with this source
http://processors.wiki.ti.com/index.php/OMAP35x_Wireless_Connectivity_Release_Notes_beta_3_release
I haven't checked it - so I cant guarantee it will work. But If you could make it work - this would give us NAT on Uruk - so....

$aur0n said:
I haven't checked it - so I cant guarantee it will work. But If you could make it work - this would give us NAT on Uruk - so....
Click to expand...
Click to collapse
Thank you! I looked into the stuff a bit, it is certainly the right code set. It's a pretty huge pack overall, packing a kernel and userlevel stuff, even a copy of the iptables source , but I already located the driver itself...
I'll see that I extract the driver only parts into your kernel tree, somewhere under staging, and get it to build and maybe even work from there.
Will need some time to do that, and I'm rather busy with other work this week - next week maybe.

tiwlan_drv rebuild - no success so far
Hi $auron,
was able to take some time yesterday and today to work on the tiwlan_drv source code you pointed out. Unfortunately I did not get it to run.
I successfully built a module, inside your kernel tree, by incrementally dumping .c and .h files from the TI code drop into a subdir of drivers/staging/ and finding out which -DEFINES it needs to build, and some small code mangling was also neccessary.
However, the resulting module fails to properly load, first with some GPIO allocation message which I could get around (not present in the .ko file from Archos), and then in a request_irq call during initialization. Looking at that second failure point I notice that the more hardware / board oriented parts of the code look not at all like what objdump can tell me about the Archos binary...
Given my nonexistent ARM assembler skills, I cannot go forward at that point with ease, so I'm trying to chicken out by asking some Archos people for the source... No idea whether that will work...
UPDATE: no reply from Archos so far...
I try to sidestep the issue by moving the problematic elements of skbuff and net_device from the middle of the struct, to the end.

Hi!
I see that the topic is quite old - but anyway: are there any news? I am trying to build gen8 kernel with conntrack/nat support but with no luck - the kernel doesn't load, it reboots the device.
Did anybody find the way to compile with that options?

Golomidov said:
Hi!
I see that the topic is quite old - but anyway: are there any news? I am trying to build gen8 kernel with conntrack/nat support but with no luck - the kernel doesn't load, it reboots the device.
Did anybody find the way to compile with that options?
Click to expand...
Click to collapse
In Uruk 1.6 kernel has compiled in conntrack/nat.

$aur0n said:
In Uruk 1.6 kernel has compiled in conntrack/nat.
Click to expand...
Click to collapse
Yes, but there are other options that are missing in your kernel - targets owner and multiport - and because of that orbot transparent proxy doesn't work
Could you please tell how did you achieve that? I mean how did you compile UD kernel with conntrack/nat support?
(btw, I have changed init and installation scripts in UD for it to work with latest archos devices - a35dm for exmple)
EDIT: did you take/recompile tiwlan_drv.ko? would standard kernel work if I just copy tiwlan_drv.ko from UD?
---------- Post added at 03:06 PM ---------- Previous post was at 02:48 PM ----------
Golomidov said:
EDIT: did you take/recompile tiwlan_drv.ko? would standard kernel work if I just copy tiwlan_drv.ko from UD?
Click to expand...
Click to collapse
Nope, it didn't work

$aur0n said:
In Uruk 1.6 kernel has compiled in conntrack/nat.
Click to expand...
Click to collapse
$aur0n, could you please share the knowledge how did you manage to compile kernel with tiwlan driver and conntrack features?
Community will appreciate it! Thanks!

Golomidov said:
$aur0n, could you please share the knowledge how did you manage to compile kernel with tiwlan driver and conntrack features?
Community will appreciate it! Thanks!
Click to expand...
Click to collapse
It's all all written somewhere in developers thread of uruk droid.

$aur0n said:
It's all all written somewhere in developers thread of uruk droid.
Click to expand...
Click to collapse
Confirmed! tiwlan has been compiled and tested with nat/conntrack and targets owners and multiport.
Since openaos is down pasting here instruction:
Code:
How to build the WLAN source provided by archos
Kernel module released at http://gitorious.org/archos/archos-gpl-gen8/trees/master/hardware/ti/wlan/wl1271
Download the above mentioned sources.
cd .../hardware/ti/wlan/wl1271/platforms/os/linux
Now setup your environment by editing wl_env.bash or do it manually on the commandline in my case it was:
export CROSS_COMPILE=/usr/src/gen8/buildroot/build_arm/staging_dir/usr/bin/arm-linux-
export ARCH=arm
export HOST_PLATFORM=zoom2
export KERNEL_DIR=/usr/src/gen8/buildroot/linux/
Then type make and wait a few minutes and you are done. The tiwlan_drv.ko will appear in .../hardware/ti/wlan/wl1271/platforms/os/linux This gives you only the module. I am still looking at how the tiwlan_loader needs to be compiled.
More info can also be found http://omappedia.com/index.php?title=Wilink_Linux&redirect=no
If you use wl_env.bash then don't forget to
# source wl_env.bash
after editing and before make
thanks everybody!

Related

[Info/brainstorming] Compiling modules for the 2.6.32 beta kernel OBSOLETE

This thread is now obsolete.
Kernel sources for build 5.26.0 have been released:
https://opensource.motorola.com/sf/go/projects.milestone/frs.milestone_source_froyo
I've pushed some new pre-compiled modules to github, though beware, I haven't had time to test all of them on device yet:
https://github.com/nadlabak/android...mmit/b300803348705d3fc5ce76d8c88d57186748a370
As the kernel sources are not yet available from the Motorola's open source project, here is an outline how I compiled the overclock and cpufreq governor modules. (Btw., the overclock module needed a substantial adaptation, see the source here: http://android.doshaska.net/2.6.32oc )
I'm using the sources from this AOSP repo:
Code:
git clone git://android.git.kernel.org/kernel/omap.git
git checkout --track -b android-omap-2.6.32 origin/android-omap-2.6.32
Use the sholes config:
Code:
make sholes_defconfig
flags that need to be disabled:
CONFIG_LOCALVERSION_AUTO
CONFIG_MODVERSIONS
CONFIG_DEBUG_MUTEXES
CONFIG_SCHEDSTATS
CONFIG_SCHED_DEBUG
[updated on 17.01.2011, thanks go to Skrilax_CZ]
At least the ext2 will work without panics when compiled using this config.
For tun, cifs and nfs there is still some additional config mismatch that prevents the modules to work without null pointer dereference oops.
Also, even when no custom kernel module is used, you can get the kernel panic very easily, try to enable wifi and do:
Code:
cat /proc/kallsyms
If you're interested in a more detailed android kernel compilation guide, you can e.g. roughly follow this Droid kernel guide: http://www.droidforums.net/forum/rescue-squad-guides/31452-how-compile-your-own-kernel.html
Thanks for starting this thread kabaldan! It is a great starting point in tackling the issue of adding tun support to the new kernel (tun.ko module). I am not as good as many others in this, but trying won't hurt. Meanwhile if someone else is working on tun support - share experience here!
If kernel seems to be ok, sometimes mounting with new version of busybox won't work.
I used to get kernel panic when use newer version of busybox (not Android kernel but my own embedded linux)
Hey Nadlabak can you add DLNA function of CM6?
same problem using droidx kernel sources. insmod ok, mount reboots the phone
yantz
I tried droid2 kernel module - doesn't work either
I noticed OpenVPN included in CM6 also relies on this kernel module. Hence doesn't work. I guess we won't (ever) see kernel sources for that leaked kernel we are now using. I assume Motorola will release the sources sooner or later, but not before official Froyo layout. The waiting is killing me! kabaldan, can't you try to do some magic as you did with the overclock module? The beer is from me!!!
Can you test this attached tun.ko?
Insmod is OK, but I currently don't have time for any further tests...
EDIT: don't bother, kernel panic as usual
Module loads fine, but when attempt to use it, phone reboots, just like with the module compiled from DroidX sources..
leobg said:
Module loads fine, but when attempt to use it, phone reboots, just like with the module compiled from DroidX sources..
Click to expand...
Click to collapse
So, I got it loaded - insmod works just great, just like it did on the 2.1 kernel.
I'm trying to use the CM6 built-in OVPN settings, but I can't find any documentation on the setup. How did you get it set up?
I have
/sdcard/openvpn/
cert.crt
ca.crt
config.conf
config.ovpn
pem.key
I realize that config.conf and config.ovpn are the same file- but I use this VPN on windows and on Mac, and I wasn't sure the requirements on Linux.
If I can't find some documentation I'll try downloading the OpenVPN settings app from the market and playing with that.
Also, I don't know if it's true or not, but I heard the Milestone2 source compiled driver could work.
Are you trying the module kabaldan provided? It doesn't seem to work, at least for me. Loads fine, but phone crashes when setting up tun interface. I couldn't get OpenVPN in CM6 0.3 to work so far. I am testing the tun.ko with the cisco vpn package (which worked great on the old kernel with CM6 0.2) vpnc. When I initiate the connection, phone reboots if the attached here tun.ko is used. I also tried with tun.ko compiled from DroidX sources - same thing - phone reboots. I am not sure where did kabaldan take/compile this module from.
Sent from my Milestone using Tapatalk
I was using the same one, I was thinking maybe he could use the info from more than one phone. I'll try get-a-robot or OpenVPN Installer, but I won't hold my breathe. I was just hoping to use the built-in functionality of the ROM.
*edit* Just saw he removed it because it doesn't work yet, oh well.
the kernel doesnt seem to like any other fs not built into it. i've tried several, ext2, ext3, ext4, cifs, jffs, reiserfs etc. all modules would load without a problem but system will reboot during mount. heck i even tried creating logical volume on the partition. volume created fine, but when time to mount, it reboot
i ended up using a 2nd vfat partition for apps2vfat, on top of native froyo move to sd. moved my debian arm there and manually, yes manually, replace many symlinks in libs to copied files
hopefully next froyo release for other regions would provide a different kernel
yantz
hey kabaldan wondering if you've had another chance to look at an updated tun.ko
Finally some breakthrough. The great Skrilax_CZ has made some hard debugging and one very good guess:
CONFIG_DEBUG_MUTEXES must be disabled in the kernel config.
At least the ext2 module compiled this way is working without panics now.
Congrats to Skrilax!
EDIT: Tun nor nfs not tested yet..., cifs unfortunately still not working.
kabaldan said:
Finally some breakthrough. The great Skrilax_CZ has made some hard debugging and one very good guess:
CONFIG_DEBUG_MUTEXES must be disabled in the kernel config.
At least the ext2 module compiled this way is working without panics now.
Congrats to Skrilax!
EDIT: Tun nor nfs not tested yet..., cifs unfortunately still not working.
Click to expand...
Click to collapse
This means that now the app2ext work?
Where are the modules for we test?!
Thanks for the news!
Modules for testing:
ext2 - http://code.google.com/p/cyanogenmod4milestone/issues/detail?id=197#c19
tun - http://code.google.com/p/cyanogenmod4milestone/issues/detail?id=222#c4
Hi sort of a newbie here... So does this mean that data2ext will work?
Sent from my Milestone using XDA App
Hi Nadlabak...maybe you already know.
For the cifs module, how about slow-work is made available as a module.
as is done at this link
http://forum.xda-developers.com/showpost.php?p=9271775&postcount=4
after further testing:
ext2 mounting now works, reading from ext2 partition too, but writing still causes panic
tun causes panic too
Let's hope for a soon kernel source release, as it looks like we won't get much further without it.
edowar: thanks for the link
@kabaldan
Could it be possible to create a swap module for milestone ?
It seems that running kernels does not have this feature yet and i'm not sure motorola to implement it for next 2.2 release so .... well just wondering !

Folio 100 - Kernel development

This thread should serve as a general source of information for those patching and extending the kernel.
Anyone who does changes to the kernel should drop a note here (especially on those builds that go into FolioMod or TnT)
I'll also try to keep a list of patches and a current config file in the first post of this thread.
Just to make sure that anyone has a common base, the Folio 100 kernel source can be found at TegraMid wiki: http://tegramid.com/wiki/Main_Page
To upgrade to nvidia-10.9.8 apply the attached patch to the source tree.
Note that the zip file also contains a disabled folder, this contains 3 patches that were NOT applied as they prevent the folio from booting.
There were quite a few changes for handling audio devices, this may fix the issues with bluetooth headsets and sound coming from speaker and headphone (not tested though), also there was a change in some wakeup configuration structure for wlan, so this may also fix the wakeup issue.
Changes from DerArtem to support 3G Modems are not (yet) included in the kernel.
I also had two freezes when booting the system wuith this kernel (system_server not responding) however I could not reproduce them.
OK, I'm stupid!
Forget the patches above, I pushed the updated kernel images to the wrong directory (/sdcard instead of /sdcard/sdcard-disk0) So I was constantly flashing the last plain folio kernel on the device.
Damn you shell scripts!!!
Updated the patches above, the kernel should work and everyone should be able to recompile with the patch applied.
I've also attached a binary for users to test the kernel.
weeds2000 said:
Updated the patches above, the kernel should work and everyone should be able to recompile with the patch applied.
I've also attached a binary for users to test the kernel.
Click to expand...
Click to collapse
How do we install these files? Or do we better just wait for a new foliomod version?
killerbie said:
How do we install these files? Or do we better just wait for a new foliomod version?
Click to expand...
Click to collapse
If you look into update-nvidia-10.9.8.zip file, you could see that it is normal update file for kernel. So that I guess you rename update-nvidia-10.9.8.zip to update.zip and then update as any other update. But you should better always know what you are doing. If not, wait for full foliomod update.
To weeds2000: thanks for keeping kernel repository updated for the others.
weeds2000 said:
Updated the patches above, the kernel should work and everyone should be able to recompile with the patch applied.
I've also attached a binary for users to test the kernel.
Click to expand...
Click to collapse
Hedphones plus speakers issue seem solved, many thanks!
Foliowidget correctly report battery status and AP name but to set buttons light or display properties don't works.
Rom cooking
Most tools found to build Android ROM is for linux .Is there tools to build android ROM in WINDOWS environment?
Rom cooking
Most tools found to build Android ROM is for linux .Is there tools to build android ROM in WINDOWS environment?
This kernel is based on the stock Toshiba Kernel with modifiactions from DerArtem.
I've added UTF8 NLS support as required by the vold patch as well as the lag on wakeup fix.
Could someone please confirm that 3G support is still working with this build. As I don't have a 3G modem I cannot test this.
weeds2000 said:
This kernel is based on the stock Toshiba Kernel with modifiactions from DerArtem.
I've added UTF8 NLS support as required by the vold patch as well as the lag on wakeup fix.
Could someone please confirm that 3G support is still working with this build. As I don't have a 3G modem I cannot test this.
Click to expand...
Click to collapse
i can try install already on folionotion?? just for not reinstall the system..
I cannot guarantee that this works, but in case you cannot boot it should be enough to just flash the ROM again without making a Factory Reset.
Make sure you have an adb connection or some way to get an update.zip to your SD Card in case the device does not boot.
check out wifi drivers from here:
http://git.chromium.org/gitweb/?p=atheros.git;a=summary
is it possible to enable the tunnel support in the kernel?
Has anyone emailed toshiba to request the latest source? it took amout a month to arrive last time (on cd)
Could you please PM me the address you have writen the request to?
I searched the toshiba page yesterday, but couldn't find a developer page or something like that.
Or should I simply contact customer support?
weeds2000, can you attach the precompiled toolchain? i got smp compile error so maybe it is the toolchain im using.
what i did was:
1) download and extract the source
2) download and patch the tegra patch you attached in post 1
3) download the tegra config file you attached in post 1 and extract the config to .config to kernel directory
4) make ARCH=arm CROSS_COMPILE=/path_to_crosstoolchain/arm-eabi-
it was 2am when i did it so maybe i missed something.. lol
EDIT: Nevermind, found the toolchain from android.com.
PS. Anyone happens to have a copy of Tegra 250 technical datasheet?
Hmm.. Cannot get it to boot into OS.. The kernel booted and adb ran..
Also tried the binary you have attached in post #1 but also doesnt boot into OS. Did you get it to boot at your end?
Attached are dmesg and logcat
The image in post #1 should work with FolioMod 1.3. As the display/touchscreen driver seems to have changed it may not work with 1.4.
I'm not 100% sure, but this looks like a problem with the nvrm_daemon binary which is not started or has crashed.
please implemet tun.ko
Hi,
i need the tun.ko for the folio, so i can connect via vpnc to my fritzbox and make phonecalls for free over wlan hotspots. (like i do on my desire)
Please can you provide a tun.ko for this.
Cheers
xoom honeycomb source / git
Just got a note from MCLP on the honeycomb git.
so i downloaded it, and extracted the config.gz from xoom tablet (boot.img, that is) .
the kernel completely compiles without a single error, and no questions on the .config file i used, so the xoom config.gz matches the environment of the git (Koush said he also used it to compile the recovery kernel for xoom)
git is here
View attachment config.zip xoom edition.
now's the question if we can make it run on Folio
update:
removed(too many bugs) is the 2.6.36.3 with the Folio100 ODM_KIT included, i don't see any chance of making it work without, as i read the odmkit, its toshiba custom drivers + tegra for betelguese platform. this is NOT a working source, but inprogress.. but maybe someone else can assist?

kernel development 1.2 mytouch

I'm trying to get a functional config for the 1.2 mytouch but I'm having trouble tracking down the exact source to the MT3G-Fender-1.2-2.6.35.12-10M-test4.zip kernel but it's proving rather tricky. I can't seem to determine what the source to this kernel is and where to pull it.
If anyone can point me in the correct direction i can start on some work.
I pulled some pre-packaged git repo from ezterry's github. ezterry-kernel-biff-testing-5fba47e
I pulled my config from the running kernel from the zip i mentioned above running on my phone.
I built the kernel produced from using that config and the wlan.ko module.
Using this guide : http://forum.androidcentral.com/htc...how-build-your-own-kernel-package-source.html
I just want to be sure the kernel source i'm starting out with doesn't need extra patches that weren't included in the github pull in order to get it to work on the 1.2.
thanks for any help.
I'm also looking at cyanogenmod's github and will probably build a kernel against that pull this week as well.
Still, would like to know what sets the kernel i mentioned above apart from just straight pulls of these repos. That's the only part really confusing me.
Hey I was wondering if you could make this kernel your building an OverClock kernel too. No one has built one for our MyTouchs 1.2 that is truly for this device.
The Max OC I've been able to pull of is 725 without the phone freezing and rebooting.
Idk just thought it would be a good idea for your kernel!
Sent from my Fender using XDA Premium App
overclocking stability is less about the kernel and more about your particular hardware. Some phones just by manufacturing luck can achieve faster clocks than stock to varying degrees. 710 is considered to be the average max i believe. Anything faster is in the far minority of units. People who hack the cpufreq table to get these higher clocks limit to what they consider safe to stop people from actually destroying their hardware (which is possible).
Though, these "oc kernels" should have their patches posted somewhere. It's difficult to track down where exactly these kernel zips are coming from and thus to find out what their source is. Legally they need to either be shipped with the source or shipped with files pointing to the source or have the source available from the same place the binary was downloaded from. thus far I'm just guessing as to what the actual source is to the kernel i'm currently using and hoping all the necessary changes and patches are committed to the github that I believe the kernel is ultimately based from.
cellsafemode said:
I'm trying to get a functional config for the 1.2 mytouch but I'm having trouble tracking down the exact source to the MT3G-Fender-1.2-2.6.35.12-10M-test4.zip kernel but it's proving rather tricky. I can't seem to determine what the source to this kernel is and where to pull it.
If anyone can point me in the correct direction i can start on some work.
Click to expand...
Click to collapse
Hi I built this kernel.. later versions have a SOURCES file with the url's to the source I used. I added that after I started seeing it posted outside of the rom thread I originally posted it to
This is a build off of Pershoots github source
https://github.com/pershoot/kernel-2635
including Ezterry's 10Meg patch to the 32a mem map (Fender/1.2 is 32a/b hi-bred)
https://github.com/ezterry/kernel-b...9fca2404a4fa24384d11f8422ced65920bf06#L0R1355
and Farmatito's usb drain patches 001 - 022 excluding bfs
http://forum.xda-developers.com/showthread.php?t=1010932
and wlan.ko from Cyanogen's sources
the .config can be obtained using kernel-sources/scripts/extract-ikconfig
or adb pull /proc/config.gz config.gz
and as for Overclocking have a look at Dumfuq's githib
https://github.com/dumfuq/cm-kernel/commit/9f113c9e0acf19f57a35acbb85bd6f5cc2e76bb2
I get reboots at anything over 595
edit: I build these kernels because usb mount does not work with 2.6.34 on Gingerbread roms and more recent Cyanogen kernels had the green tint issue. Since the green tint issue is fixed and I think 2.6.34.8 works better on Froyo I haven't been working with 2.6.35 at all lately
cellsafemode said:
I'm trying to get a functional config for the 1.2 mytouch but I'm having trouble tracking down the exact source to the MT3G-Fender-1.2-2.6.35.12-10M-test4.zip kernel but it's proving rather tricky. I can't seem to determine what the source to this kernel is and where to pull it.
....
I just want to be sure the kernel source i'm starting out with doesn't need extra patches that weren't included in the github pull in order to get it to work on the 1.2.
Click to expand...
Click to collapse
you need to ask the person that build 2.6.35.12 based kernels.. [see ratkings comment]
My github has sources for 2.6.34.7/8 and 2.6.36.4 tags match my public builds (I think they are all tagged if not check the notes with my release of the kernel for the correct commit)
I also had some 2.6.35.9-11 builds from cm-kernel sources (exact commits and patches if needed mentions on the posts with the kernels) but the last one off those was in January.. and besides the january one the builds were 32b/2708+ only since that was the reason to re-build cm. sources with little modification.
I too get issues over 595. Wifi will not work etc. at 595 everything is happy.
I pulled the .config, and you cleared everything up. I was just wondering if those extra patches or anything that made booting to the 1.2 correctly were missing from the standard github kernels that I've found.
I have two jobs so time is very limited but I'm hopeful to boot my own compiled kernel this weekend and then work on modifying the accelerometer driver, specifically the parts that handle determining orientation in order to create a sysfs file that controls orientation locking. Write a 1 to the file and it always reports the same orientation that it's currently in, tricking the entire android system into thinking you are never changing your orientation... write a 0 and it reports the real orientation.. and so on. Then write a little app that can be used as a widget or kept in notification bar so you can easily tap lock the orientation whenever needed. Allowing true landscape and portrait locking on any mytouch 3g.
Uhh yeah I trimmed that way down.. no debugging at all (I like to live dangerously)
later tests were less insane
http://www.mediafire.com/file/eqgv0sbb7t4c57s/config-test7
the only other thing to note is that kernel/mkbootimg.sh was edited to force the base address to 10000000 instead of copying the address of the previous kernel.. thats really why I posted it as for Fender/1.2 only. I didn't want anyone messing that up and blaming me when re-flashing Pershoots kernel didn't correct it
It looks like the 1.2 patch is something that basically changes the 32A so if you patch your kernel source to support 1.2, you break building 32A kernels (you have to then have two trees or continually apply and remove the patch between builds). Is that the case, does the patch make your tree a 1.2 only tree when building for the 32A ?
If so I can edit the patch to introduce a kernel config under the saphire board selection to choose if you want to build for the mytouch 1.2 or 32A or 32B directly. So there is no confusion. Then instead of replacing values in the source like the patch does, wrap them in IFdef macros based on the kernel config options.
Then it should be easy to roll out 3 kernel compiles and do something similar to an auto kernel package and utilize a little logic to determine which to use. A rev board with 2.22 radio == 1.2 (i forget if there is another locale where the radio is different for the 1.2). Others can be chosen based on board rev only.
cellsafemode said:
It looks like the 1.2 patch is something that basically changes the 32A so if you patch your kernel source to support 1.2, you break building 32A kernels (you have to then have two trees or continually apply and remove the patch between builds). Is that the case, does the patch make your tree a 1.2 only tree when building for the 32A ?
If so I can edit the patch to introduce a kernel config under the saphire board selection to choose if you want to build for the mytouch 1.2 or 32A or 32B directly. So there is no confusion. Then instead of replacing values in the source like the patch does, wrap them in IFdef macros based on the kernel config options.
Then it should be easy to roll out 3 kernel compiles and do something similar to an auto kernel package and utilize a little logic to determine which to use. A rev board with 2.22 radio == 1.2 (i forget if there is another locale where the radio is different for the 1.2). Others can be chosen based on board rev only.
Click to expand...
Click to collapse
Um... all my kernels to my knowledge work on 32a old radio, 1.2/32b old radio and 2708+ 32b new radios..
Just 3 config files and #ifs for the changes.. ebi1=3.22 radio, ebi0=2.22 radio, and 2708+ = 32b with 2.22.27.08+ radios. (And thus 3 binaries in the auto kernels)
Note the ebi1/ebi0 have both 32a and 32b versions that is what you see with the smi size logic in the kernel
ok. I read the description of the 10M patch above wrong and thought it was also enabling 1.2 support ...
Also, I'm wondering why exactly we use an initrd/initramfs setup. Our rootfs drivers are all compiled in so what's the real reason we bother with initrd ? Seems like we could speed up loading time if we avoid having to decompress and use an initramfs image and just get right into mounting root
OK, sweet. I have 2.6.36.4-s2 working 100% on my mytouch 1.2. Now i can move forward with some actual development.
cellsafemode said:
Also, I'm wondering why exactly we use an initrd/initramfs setup. Our rootfs drivers are all compiled in so what's the real reason we bother with initrd ? Seems like we could speed up loading time if we avoid having to decompress and use an initramfs image and just get right into mounting root
Click to expand...
Click to collapse
i might be wrong but i think android mounts the partitions directly to places in the initrd. never does a switch root out of it like most linux distros.
but im a noob and might be wrong lol
tvall said:
i might be wrong but i think android mounts the partitions directly to places in the initrd. never does a switch root out of it like most linux distros.
but im a noob and might be wrong lol
Click to expand...
Click to collapse
The normal configuration is:
/ = ramdisk and contains init and adbd on the rom (and all of recovery)
/system = system partition
/cache = cache partition
/data = is userdata partition or internal MMC card depending on the device's design
/data/data = userdata if the device has an internal MMC card
** dream/sapphire only has /data on the MTD partition .. no internal MMC card.. just the external one (sd-card)
Can it be changed .. well that is more of a rom design than a kernel question.. just set the bootimage's command line to match if needed... but the above is aosp's expectation.
OK,
2.6.36.4-s2 ezterry kernel for mytouch 1.2
http://signal-lost.homeip.net/files/2.6.36.4-s2-cellsafe.zip.torrent
Source code at
http://signal-lost.homeip.net/files/ezterry_2.6.36.4-s2.torrent
Seed if you download. tTorrent app is a full torrent app for your phone. Or you can just load it on your computer (ideal) and then move it over usb while in recovery.
This is basically rattking's kernel install package with some minor asthetic edits to the install script and layout. The kernel is based off an older rattking .config with necessary changes to match configuration changes in the newer kernel as well as changes to certain schedulers and included drivers and features.
edit:
If you have trouble connecting to the torrent, make sure encryption is on.
IF you still have problems.. the direct link is http://signal-lost.homeip.net/files/2.6.36.4-s2-cellsafe.zip But it would be nice if the torrent was used.
edit2:
Some info about the latest kernel for those who haven't checked it out...
the 10M patch is already applied in the upstream source, so you'll have that. I also turned on all the unsafe frequencies, but default you move around between 122 and 595. You can override that however with user apps.
NOTE: Swap is not enabled with this kernel. .. that's about all the important stuff for now. I just wanted to get a good stable starting point before i start diving in and breaking stuff.
New version with some bugfixes.
I forgot to add in scsi support so the mass storage feature can function... some other minor changes too.
http://signal-lost.homeip.net/files/2.6.36.4-s2-cellsafe2.zip.torrent
7 hours of constant audio playback with the regular music player, on and off texting and web browsing over 3g (3g enabled entire time) and still got 50% power. I gotta compare to other kernels but that sounds pretty decent considering by now i'd be plugging the phone in.
my next half day off when i'm not 2 jobbing it i'll patch up the sensors so that I can enable and disable updating the orientation sensor via sysfs. Should be trivial then to have real orientation locking that's application independent. Should be sweet !
Is your kernel mainly for gingerbread, or froyo? If I understand right, ezTerry's 2.6.36.4 kernels are for gingerbread...
I've only tested it against gingeryoshi so I would say gingerbread or newer

[Q][DEV] Kernel modules loading at boot-time : which framework ?

Hi,
Usually on linux, there is a kernel loading modules at boot-time framework, cf. modules.conf.
No longer present in android.
When typing lsmod, there is two modules loaded by default : tntfs, and bcm4329 (and voodoo_sound
if you have it).
I'm trying to figure out what is the standard procedure on android : I've noticed on the
init.rc that the tntfs.ko is loaded, but can't figure out when bcm4329.ko is loaded.
Any idea ?
Moreover, I know that voodoo controller is able to load his own kernel module (voodoo-sound)
at boot-time. Anyone knows how the voodoo dev did that ?
My current idea is to modify init.rc to source a new file - let's say init.rc.local - to keep my custom mod. It'll
allow minimal changes when updating+root : just copy the init.rc.local and change the init.rc...
Sounds like we're recreating linux boot framework. lol.
This is something I've done on the HTC Incredible and the Droid 1 in the past, but in honeycomb, this is different, not very obvious yet:
Rather than try to emulate whatever Redhat or Ubuntu has done, which usually doesn't work, I either would use the line where tntfs.ko is insmod'd in /init.ventana.rc (sorry, think that's the filename), and add in the modules you want to add right there. Make sure to save the original file so you'll have a shot at fixing it if you make a mess.
The other thing is just to find some developer that appears to know what they're doing, and download their ROM, like Roach. I just downloaded his prime 1.6 ROM and unpacked it, then noticed immediately that he's got this in there:
/system/etc/init.d/01init{stuff},
Well that seems pretty important, so I did a grep 'init.d' * -R from the / level, and could only see little of importance, not any shell file like initrc pointing to it, just that busybox is linked to it, etc.
I figured it's worth a shot to create the same file structure on the stock ROM (/system/etc/init.d/0X{name} and see if it executes :: Start it with the usual #!/system/bin/sh
# load some modules
/system/bin/inmod /system/lib/modules/cifs.ko (or whatever)
and see what happened, if anything.
Better yet, I'd just send a message to Roach or some other ROM developer and ask.
Good luck -
altsyst said:
Hi,
Usually on linux, there is a kernel loading modules at boot-time framework, cf. modules.conf.
No longer present in android.
When typing lsmod, there is two modules loaded by default : tntfs, and bcm4329 (and voodoo_sound
if you have it).
I'm trying to figure out what is the standard procedure on android : I've noticed on the
init.rc that the tntfs.ko is loaded, but can't figure out when bcm4329.ko is loaded.
Any idea ?
Moreover, I know that voodoo controller is able to load his own kernel module (voodoo-sound)
at boot-time. Anyone knows how the voodoo dev did that ?
My current idea is to modify init.rc to source a new file - let's say init.rc.local - to keep my custom mod. It'll
allow minimal changes when updating+root : just copy the init.rc.local and change the init.rc...
Sounds like we're recreating linux boot framework. lol.
Click to expand...
Click to collapse
Tested.
Does not work, because modified room probably calling busybox run-parts.
Anyway I've found a hack, I'm posting it on general section.

Got kexec-mod, kexec-tools working, atags in progress - Should Also Work With DroidX

I realize people gave up slightly on the whole kexec thing over radio worries, but I now have the module compiling and inserting without error into the Droid2/DroidX gingerbread kernel. Next comes cross compiling the kexec-tools for userspace, to allow us to attempt inserting a different kernel.
To build, you'll need a compiled DroidX kernel from source, as well as the android NDK.
To build, make sure you have downloaded the DroidX GB kernel source and compiled it. There are guides everywhere on how to build Android kernels. Just make sure you use the proper cross compiler.
http://sourceforge.n....l.tgz/download
When you build, make sure to use
Code:
make mapphone_defconfig
Once the kernel is built, clone my repo and edit envsetup.sh to reflect the correct paths to your kernel source directory and the android NDK.
https://github.com/i...kexec-mod-d2-dx
Then, source it:
Code:
source envsetup.sh
Then, just run
Code:
make
and cross your fingers. You should then have a fresh kexec_load.ko file!
To see if it loads, you'll need to copy it to your sdcard, and then on the phone, using a console, do the following:
Code:
su (click allow)
insmod /sdcard/path/to/kexec_load.ko
If you don't get any errors, it inserted! Now, of course, to actually use it, we'd need the kexec-tools built, which I haven't gotten ready yet...but they're coming! To remove the module (no reason to leave it in memory for now):
Code:
rmmod kexec_load
Happy hacking, and help is always appreciated!
This looks great! If you need any help just ask
Thanks! I probably could actually use some. I'm looking at eternity project's git repos now, and am trying to figure out how they managed to get atags working, with the whole procfs thing...still scratching my head there.
I'm looking at eternity project's git repos now, and am trying to figure out how they managed to get atags working, with the whole procfs thing...still scratching my head there, though I do have an atags module working, except it doesn't do anything without atags in the procfs (http://lists.infradead.org/pipermail/kexec/2011-January/004795.html).
kexec-tools:
https://github.com/i...xec-tools-dx-d2
To build, see the README.
Then, copy the binaries from /build/sbin/* to your device, and the move them to the /system/bin directory, and chmod them 770 to make them executable.
mod-atags:
https://github.com/i...mod-atags-d2-dx
Now, if I/we can just get atags and procfs stuff taken care of, we'll be able to go to the next step. I already have atags compiling as a module, but it won't stay inserted because we have no atags in the procfs. Note I can't just trace through code like this and know what everything is doing, but I know enough to hack at it and be dangerous
I know this is kind of off topic, but would this help us people with Motorola Atrix 2? Does it use the same radio?
calebcoverdale said:
I know this is kind of off topic, but would this help us people with Motorola Atrix 2? Does it use the same radio?
Click to expand...
Click to collapse
No idea. I haven't even gotten the kernel to change yet, so I haven't gotten to mess with radio yet. The method itself should/would work though, but radio will require reverse engineering...perhaps find a similar phone with an open bootloader and disassemble and attempt to clone it's modules.
The latest change I made may or may not work, it was an attempt to remove atags from the kexec module based on an old patch I found, which added the functionality. This at leaset made kexec -l zImage work, but when I run kexec -e, the kexec binary complains about atags not being there...hrmmmph.
I may have to revert it (and will if we can get atags somehow) ...but if we can get the kexec bin to ignore /proc/atags or just find a way to rip them out of the running kernel, we'll be in business.
The commit: https://github.com/ilikenwf/kexec-mod-d2-dx/commit/12dffe0ea286be0fe9ab0303a5a35ed92be4ee2c
I'm also looking into 2ndboot.
I like where this is going! Keep working!
Sent from my DROID2 using xda premium
Okies, so, I emailed aliasxerog (original kexec-mod writer), and I hope he'll get back to me. Even though his twitter says he's a "former android developer," maybe he'll be willing to give me some hints so I can pick up where he left off.
I also got the froyo version of the module building properly based on his module, yet again, (all after SBF'ing my phone back down to motoblur froyo - yech!) but neither currently work... (note there's a gingerbread and a froyo branch on my repo): https://github.com/i...kexec-mod-d2-dx
The froyo one throws the following error, which stops me dead in the water:
Code:
Could not find a free area of memory of 3007dc bytes...
The gingerbread one loads the kernel into memory but won't execute it due to our not having atags.
We've moved our git repos to an organization for easier collaboration:
https://github.com/organizations/D2-DX-Customboot
links are imcomplete.
use URL lable pls.
Cross compiler version ?
hello,
Sorry but I am not able to use the sourceforge link that you provided to download kernel source .. Also please share what cross compiler version is to be used....
Thanks in advance.

Categories

Resources