Jump to content

Advent Vega kernel source code now available!


Guest PaulOBrien

Recommended Posts

Guest ejtagle

When i was squashing stuff for the builds i was putting out i found that the benefits reported by using lzma was not enough to bother with the hassle of having to compile it into the kernel and having to compile the squashfs binary with this support. I made that choice to allow those who wanted to make a change to the squashfs container to do so with the minimum of fuss as i was unsure of the support of lzma in other os types other than Linux. and to be honest in real world i didnt notice too much space reclaim if any or performance gain over default gzip compression. The first couple of alphas i put out used xz im sure...

Something i am sure could help if we could manage to build the AOSP apks with store as compression method. Compressing an already compressed with a light compression (as gzip) collection of files prevents finding duplicate chains... I suspect that even squashfs-gzip could benefit from such approachs.. I still have to find a way to do the apk 0 compression level builds... :o

BTW, you are right Cass... The main problem with JB is that it is pushing the limits of the available storage we have in NAND, so, any reasonable approach to tacke this problem is welcome :) -- LZMA is good at finding similarities, but we should find a way to maximize similarities between apks :)

Link to comment
Share on other sites

Guest Cass67

Something i am sure could help if we could manage to build the AOSP apks with store as compression method. Compressing an already compressed with a light compression (as gzip) collection of files prevents finding duplicate chains... I suspect that even squashfs-gzip could benefit from such approachs.. I still have to find a way to do the apk 0 compression level builds... :o

BTW, you are right Cass... The main problem with JB is that it is pushing the limits of the available storage we have in NAND, so, any reasonable approach to tacke this problem is welcome :) -- LZMA is good at finding similarities, but we should find a way to maximize similarities between apks :)

To be honest i think the limit is pretty much reached, save for fighting for a few meg here and there ... probably its just time to cut over to using the sdcard a lot more than it is used now .. but hey there is probably not as much fun doing that :)

I am enjoying watching this process from the outside though.. good job yet again to you all :)

Link to comment
Share on other sites

Guest ejtagle

I posted this a few days ago about how I had used xz compression for squashfs in jb and to give a comparison, this is with all gapps and some removals of non-essential apps/livewallpapers:-

app start = 89.1mb - default sfs = 63.9mb (66977792 bytes) - xz sfs = 61.3mb (64245760 bytes)

fonts start = 6.2mb - default sfs = 3.2mb (3338240 bytes) - xz sfs = 2.7mb (2789376 bytes)

framework start = 17.8mb - default sfs = 13.5mb (14143488 bytes) - xz sfs = 13.1mb (13758464 bytes)

lib start = 77.3mb - default sfs 36.9mb = (38649856 bytes) - xz sfs = 30mb (31506432 bytes)

usr start = 8.5mb - default sfs = 2.7mb (285491 bytes) - xz sfs = 2.0mb (2056192 bytes)

120.1mb default sfs total - 107.3mb xz sfs total = 12.8mb saving roughly

edit - just to add the xz method had no filter, you can add an arm filter which squeezes a few extra bytes of compression but I have not tried to boot this sfs

Please look at the numbers carefully... The least gains are in the apk (app) folder)... Because apks are just zip files already compressed ... compressed contents do not compress well.. But, zip compression algoritmns are far worse than lzma, so i think it would be a big win to rebuild apks, but without compresison (using store compression method) ... They should compress pretty well with LZMA at the squashfs filesystem level :o

Link to comment
Share on other sites

Guest Scanno

@Eduardo,

Compiled the latest patch.. Result is still only right channel. Speaker right channel only available after inserting and removing headphone jack.

Will post a dmesg later.

Link to comment
Share on other sites

Guest Scanno

To be honest i think the limit is pretty much reached, save for fighting for a few meg here and there ... probably its just time to cut over to using the sdcard a lot more than it is used now .. but hey there is probably not as much fun doing that :)

I am enjoying watching this process from the outside though.. good job yet again to you all :)

Join us :-)

Was planning to have a look at putting the AUFS code into the kernel. This way we could resize the /data partition to a size where the needed space for configuration an be stored on the original NAND and later extended with SDcard space. This way the system config data should be available when the sdcard is removed. Anyway as eduardo already mentioned.

Link to comment
Share on other sites

Guest Cass67

Join us :-)

Was planning to have a look at putting the AUFS code into the kernel. This way we could resize the /data partition to a size where the needed space for configuration an be stored on the original NAND and later extended with SDcard space. This way the system config data should be available when the sdcard is removed. Anyway as eduardo already mentioned.

Yeah id like to join in but for now i don't have the time, concentrating on getting a CCNA exam on Friday out the way and then its on to CCNP level study for the months ahead. No time for fun at all im afraid :(

Not looked into the aufs stuff at all .. sounds interesting ...

Link to comment
Share on other sites

Guest Scanno

Yeah id like to join in but for now i don't have the time, concentrating on getting a CCNA exam on Friday out the way and then its on to CCNP level study for the months ahead. No time for fun at all im afraid :(

Not looked into the aufs stuff at all .. sounds interesting ...

The time that i have for this is also going down fast. I have time now because the wife and daughter are away, but when they are back.... No time anymore.

Yeah sound interesting. Having an overlaid filesystem that includes the nand and the second partition on sd. There should be enough nand space left for installation on /data (i.e. config data). The aufs filesystem is not available during nvflash. CWM is an option, but needs to be altered and support and mount the aufs filesystem.

Some investigation is needed. Perhaps you can even mount a directory on the first partition so you do not have to create an ext partition. But i do not know if that is possible.

Link to comment
Share on other sites

Guest grnunn

@Eduardo,

Are we using the codec AGC? Can Android handle the gain contol function?

The reason I ask is that the AGC on the codec is quite simple and it is quite easy to get it to do this sort of thing.

The firt thing to check is index20[7:3] - setting this to 13 will give us a "window" of 0.37 seconds at 44.1khz

The rate registers will also need tweaked to match this. If the gain is still "crashing out" then you could try raising the minimum gain so that it sill detects speech.

Edited by grnunn
Link to comment
Share on other sites

Guest ejtagle

@Eduardo,

Are we using the codec AGC? Can Android handle the gain contol function?

The reason I ask is that the AGC on the codec is quite simple and it is quite easy to get it to do this sort of thing.

The firt thing to check is index20[7:3] - setting this to 13 will give us a "window" of 0.37 seconds at 44.1khz

The rate registers will also need tweaked to match this. If the gain is still "crashing out" then you could try raising the minimum gain so that it sill detects speech.

No, it is not used. Somehow, i find the AGC documentation lacking... Engaging AGC means losing control of record gain in the ALC5624.. But, i am still considering what to do... I have nothing against AGC itself, but i am not sure if we want it or not. Seems to be implemented as digital gain, not analog gain, so, i think sw can do a better job.. Don't know...

BTW, The Android framework does not implement AGC, but Voice search and Skype has its own AGC software algorithm implementation... And i think it is pretty good :D

Edited by ejtagle
Link to comment
Share on other sites

Guest Scanno

OK

Patched the kernel with aufs.... let's see if I can do something with it :blink:

EDIT:

Well.... it is working.. i am getting a /data that is 1 GiB in size..... Only thing is that android does a hot reboot.....

EDIT2:

Working!!!!

Edited by Scanno
Link to comment
Share on other sites

Guest grnunn

@eduardo

I agree completely. Let the operating system handle the gain. You need a compressor implemented in the codec for this thing to work well.

Link to comment
Share on other sites

Guest ejtagle

Yesterday i began the process of trying to fix the alc5624.c audio codec... But i suspect the problem is in the audio_hw.c module, specifically in the output switching code... Today i will try to figure out the cause...

Link to comment
Share on other sites

Guest Scanno
Yesterday i began the process of trying to fix the alc5624.c audio codec... But i suspect the problem is in the audio_hw.c module, specifically in the output switching code... Today i will try to figure out the cause...

Take your time...

AUFS is not working that well for me... It is showing a 1 GiB partition, but somehow things get messed up and the system can not find data anymore and looses settings. I guess that the mounting has to be done as early as possible in the boot process, so i guess it has to be done in init.rc.

I guess i would like to fix the mic problem in ics. The audio_hw.c is different in jellybean as you stated before. Can you tell me what things i have to look at when i want to use the jellybean version in ics. The reason for this is that ics is pretty stable now and still has flash support. This also beacause my daughter want to use the tabet more and more and offcourse plays games that still requires flash at the moment.

Link to comment
Share on other sites

Guest Stephen Carroll

Take your time...

AUFS is not working that well for me... It is showing a 1 GiB partition, but somehow things get messed up and the system can not find data anymore and looses settings. I guess that the mounting has to be done as early as possible in the boot process, so i guess it has to be done in init.rc.

I guess i would like to fix the mic problem in ics. The audio_hw.c is different in jellybean as you stated before. Can you tell me what things i have to look at when i want to use the jellybean version in ics. The reason for this is that ics is pretty stable now and still has flash support. This also beacause my daughter want to use the tabet more and more and offcourse plays games that still requires flash at the moment.

You can still sideload flash in jb. Doesn't work with all browsers. but afaik firefox works and a handful of other browsers work.

Link to comment
Share on other sites

Guest MikhailM

Take your time...

The reason for this is that ics is pretty stable now and still has flash support. This also beacause my daughter want to use the tabet more and more and offcourse plays games that still requires flash at the moment.

Scanno, if you extract the Flash 11 apk using Apk Extractor while using ICS, you can then install it on a Vegabean tablet. Works perfectly. If you do not want to flash back to Vegacream, I can upload the apk for you.

Link to comment
Share on other sites

Guest Michael_llewellyn

...

AUFS is not working that well for me... It is showing a 1 GiB partition, but somehow things get messed up and the system can not find data anymore and looses settings. I guess that the mounting has to be done as early as possible in the boot process, so i guess it has to be done in init.rc.

Have you considered 'unionfs-fuse' - the fuse implementation of unionfs? http://podgorny.cz/moin/UnionFsFuse

Link to comment
Share on other sites

Guest brucelee666

Eduardo / Scanno,

Just for info as Eduaros looking at audio_hw but if you set ctl_name = INTERNAL_SPEAKER_SWITCH intval to 1 instead of zero in the route_setting defaults struct, you will get audio output from speakers without having to plug/unplug headphones.

Does not fix the right channel only output but atleast gets audio from speakers without needing headphones and once headphones plugged in if you want to use them route switching carries on as normal between headphones/speakers.

edit - What I have noticed after doing this is you get a click/static when the speaker is first initialised when you play something for the first time via speakers, also get a click via headphones when started for the first time

Edited by brucelee666
Link to comment
Share on other sites

Guest grnunn

Take your time...

AUFS is not working that well for me... It is showing a 1 GiB partition, but somehow things get messed up and the system can not find data anymore and looses settings. I guess that the mounting has to be done as early as possible in the boot process, so i guess it has to be done in init.rc.

I guess i would like to fix the mic problem in ics. The audio_hw.c is different in jellybean as you stated before. Can you tell me what things i have to look at when i want to use the jellybean version in ics. The reason for this is that ics is pretty stable now and still has flash support. This also beacause my daughter want to use the tabet more and more and offcourse plays games that still requires flash at the moment.

My thought on the mic problem would not be aimed at the AGC but at the microphone bias.

This has a large capacitance on it which could cause the startup issue.

Basically the mic bias should be started at initialization and then left on rather than turned on when recording is required.

Link to comment
Share on other sites

Guest Oldbarzo

You can still sideload flash in jb. Doesn't work with all browsers. but afaik firefox works and a handful of other browsers work.

Hi scanno

If out use Titanium backup on Vegacream and back up Flash 11 and other progs like BBC I player etc, you can

then restore them in VegaBean after downloading Titanium and they work perfectly. That is what I did.

Stransky

Link to comment
Share on other sites

Guest ejtagle

My thought on the mic problem would not be aimed at the AGC but at the microphone bias.

This has a large capacitance on it which could cause the startup issue.

Basically the mic bias should be started at initialization and then left on rather than turned on when recording is required.

Should be turned on at initialization... But audio_hw.c is blanking the audio output for 1/4 of a second just in case ;)

Link to comment
Share on other sites

Guest ejtagle

Eduardo / Scanno,

Just for info as Eduaros looking at audio_hw but if you set ctl_name = INTERNAL_SPEAKER_SWITCH intval to 1 instead of zero in the route_setting defaults struct, you will get audio output from speakers without having to plug/unplug headphones.

Does not fix the right channel only output but atleast gets audio from speakers without needing headphones and once headphones plugged in if you want to use them route switching carries on as normal between headphones/speakers.

edit - What I have noticed after doing this is you get a click/static when the speaker is first initialised when you play something for the first time via speakers, also get a click via headphones when started for the first time

I think you are close... I think we need to write proper initialization when switching sources in audio_hw.c ... ;)

Link to comment
Share on other sites

Guest ejtagle

Take your time...

AUFS is not working that well for me... It is showing a 1 GiB partition, but somehow things get messed up and the system can not find data anymore and looses settings. I guess that the mounting has to be done as early as possible in the boot process, so i guess it has to be done in init.rc.

I guess i would like to fix the mic problem in ics. The audio_hw.c is different in jellybean as you stated before. Can you tell me what things i have to look at when i want to use the jellybean version in ics. The reason for this is that ics is pretty stable now and still has flash support. This also beacause my daughter want to use the tabet more and more and offcourse plays games that still requires flash at the moment.

Probably, the problem with the mic in ICS is the same i had to solve in JB: The kernel 3.1 does not support mono capture anymore, and most programs require it to work properly. Also, most programs require 8khz sampling rates. The only way to fix this is to backport the JB audio_hw,c to ICS... Not impossible at all, just would take some time. You have to compare each function (parameters have changed on some of them) and backport the JB to ICS ,,,

I'd rather prefer fixing JB... We are so, so close to get it working...

Link to comment
Share on other sites

Guest Scanno

Probably, the problem with the mic in ICS is the same i had to solve in JB: The kernel 3.1 does not support mono capture anymore, and most programs require it to work properly. Also, most programs require 8khz sampling rates. The only way to fix this is to backport the JB audio_hw,c to ICS... Not impossible at all, just would take some time. You have to compare each function (parameters have changed on some of them) and backport the JB to ICS ,,,

I'd rather prefer fixing JB... We are so, so close to get it working...

I know that you prefer fixing JB. I also would like to see JB working. Just looking around.

At the moment i still have some other problems.

When in portrait mode, the launcher and settings start displaying half way of the screen. Background is displayed corectly. Als touchscreen thinks everything is correct. With that i mean if have to press at the location where the icon or option should be positioned when displayed correctly. Cannot find a way to start fixing this. This is at 120dpi, do not know if this problem is there at 160dpi though. Other programs show correctly. Problems are with the launcher (both stock as apex) and settings. So i am guessing it has to do with the SystemUI and Settings apps. Perhaps i should start a compile with the overylay removed and see what happens without the frameworks overlay.

Other thing is link2sd that is not playing nice with the dalvik cache. Perhaps a Link2SD problem, or perhaps a permission problem because of changes in JB.

Link to comment
Share on other sites

Guest ejtagle

I know that you prefer fixing JB. I also would like to see JB working. Just looking around.

At the moment i still have some other problems.

When in portrait mode, the launcher and settings start displaying half way of the screen. Background is displayed corectly. Als touchscreen thinks everything is correct. With that i mean if have to press at the location where the icon or option should be positioned when displayed correctly. Cannot find a way to start fixing this. This is at 120dpi, do not know if this problem is there at 160dpi though. Other programs show correctly. Problems are with the launcher (both stock as apex) and settings. So i am guessing it has to do with the SystemUI and Settings apps. Perhaps i should start a compile with the overylay removed and see what happens without the frameworks overlay.

Other thing is link2sd that is not playing nice with the dalvik cache. Perhaps a Link2SD problem, or perhaps a permission problem because of changes in JB.

I think this could be related to the tvdpi settings we chose on build... Let´s revert to what ICS used ... ;)

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.