Jump to content

Android 2.2 Development


Guest eckengucker1

Recommended Posts

Guest Simon O

I've tried before to get ADB to function early in the android boot process but never worked :D

Oh and welcome back BigBear! Tom G has done some great work without you :angry:

Link to comment
Share on other sites

Guest Tom G
My problem is: I can`t get the boot output. Huaweis cmdline specifies console=ttyUSBCONSOLE0, can get this output via adb?

Luckily the video driver itself works, so i get a screen, but if i specify console=tty0, its too fast to see...

The adb daemon doesn't start until the start of the init script so it is of no use for kernel testing.

I have played briefly with output to tty0 and I got the impression it was garbage, but I know there were a few others that looked at it, so maybe they will have more useful comments.

Now that my Pulse isn't used daily I plan on opening it up some time to look for debug ports. If we can get an rs232 or jtag port working it may open up more options, but for now it will be staying in one piece to experiment with Froyo.

Link to comment
Share on other sites

Guest BigBearMDC
The adb daemon doesn't start until the start of the init script so it is of no use for kernel testing.

I have played briefly with output to tty0 and I got the impression it was garbage, but I know there were a few others that looked at it, so maybe they will have more useful comments.

Now that my Pulse isn't used daily I plan on opening it up some time to look for debug ports. If we can get an rs232 or jtag port working it may open up more options, but for now it will be staying in one piece to experiment with Froyo.

I thought of using MTTy :angry:

It supports serial communication over USB.

So if the the interface is ttyUSBCONSOLE this might work :D

I'd test it but I'm at work now an I don't have a USB cable with me.

Best regards,

BigBear

Link to comment
Share on other sites

Guest Tom G

I'm at work as well so I can't do any serious modifications at the moment.

Bluetooth = Working :angry: I need to mod the dev config to include it in the rom build, but I just got it working by pushing a few files. I haven't tried to connect to anything yet, but it discovers devices.

Link to comment
Share on other sites

Guest Tom G

Wifi = working. No wireless networks to test it with here, it might fail on dhcp similar to 3G.

Edited by Tom G
Link to comment
Share on other sites

Guest tantalus

Prodly pronouncing:

dmesg log of 2.6.23.9 starting up on Pulse:

http://user.fh-frankfurt.de/~asimon/android2.2/dmesg

I wrote a service in /system/etc/init.d/ that remounts /system rw and puts the dmesg there.

Conclusion: init must be running and starting services.

Sadly, the device restarts at some point.

I slowly beginning to think this could result in a usable Froyo.

@Tom, i think i need your help setting up 2.2 on my device. Do you have any idea how to figure out where exactly 2.1 is rebooting?

In the log i see RPC ist not started correctly. Am i right this is needed for adb? So the next point would be to get rpc/adb running...

Link to comment
Share on other sites

Guest Tom G
Prodly pronouncing:

dmesg log of 2.6.23.9 starting up on Pulse:

http://user.fh-frankfurt.de/~asimon/android2.2/dmesg

I wrote a service in /system/etc/init.d/ that remounts /system rw and puts the dmesg there.

Conclusion: init must be running and starting services.

Sadly, the device restarts at some point.

I slowly beginning to think this could result in a usable Froyo.

@Tom, i think i need your help setting up 2.2 on my device. Do you have any idea how to figure out where exactly 2.1 is rebooting?

In the log i see RPC ist not started correctly. Am i right this is needed for adb? So the next point would be to get rpc/adb running...

Thats awesome. I always thought it was crashing before init.

How are you dumping dmesg? If you use something like 'dmesg > file' it will only dump where it is up to, but something like 'cat /proc/kmsg > file &' should keep dumping until it crashes.

2.1 or 2.2 is unlikely to make any difference at this point. I wouldn't expect 2.2 to boot any further.

Link to comment
Share on other sites

Guest tantalus

Hey. good idea! at the end i get this (this is where init is starting services):

I guess my kernel is missing sth so binaries are crashing...

<3>[ 24.513296] init: service 'console' requires console

<3>[ 24.579289] init: cannot find '/system/bin/playmp3', disabling 'bootsound'

<3>[ 24.621736] init: cannot find '/system/bin/flash_image', disabling 'flash_recovery'

<3>[ 24.905714] init: untracked pid 1106 exited

<3>[ 24.922513] init: untracked pid 1094 exited

<3>[ 24.929066] init: untracked pid 1095 exited

<3>[ 29.573373] init: untracked pid 1126 exited

<3>[ 29.596114] init: untracked pid 1111 exited

<3>[ 34.377724] init: untracked pid 1131 exited

<3>[ 34.382974] init: untracked pid 1128 exited

<3>[ 40.187916] init: untracked pid 1136 exited

<3>[ 40.213488] init: untracked pid 1133 exited

Link to comment
Share on other sites

Guest gusthy
Hey. good idea! at the end i get this (this is where init is starting services):

I guess my kernel is missing sth so binaries are crashing...

<3>[ 24.513296] init: service 'console' requires console

<3>[ 24.579289] init: cannot find '/system/bin/playmp3', disabling 'bootsound'

<3>[ 24.621736] init: cannot find '/system/bin/flash_image', disabling 'flash_recovery'

<3>[ 24.905714] init: untracked pid 1106 exited

<3>[ 24.922513] init: untracked pid 1094 exited

<3>[ 24.929066] init: untracked pid 1095 exited

<3>[ 29.573373] init: untracked pid 1126 exited

<3>[ 29.596114] init: untracked pid 1111 exited

<3>[ 34.377724] init: untracked pid 1131 exited

<3>[ 34.382974] init: untracked pid 1128 exited

<3>[ 40.187916] init: untracked pid 1136 exited

<3>[ 40.213488] init: untracked pid 1133 exited

It is fine, it seems that kernel runs, tries to start processes, but for some reason it cannot.

A possible reason is that your processes crash because they dont find something mandatory, lets say libc or something similarly important.

Or, some other problem, probably it cannot find the process.

wait_for_one_process in core/init/init.c :

svc = service_find_by_pid(pid);

if (!svc) {

ERROR("untracked pid %d exited\n", pid);

return 0;

}

Edit:

Did you / could you compile something from the platform, or just the kernel?

Can you share your kernel sources?

Edited by gusthy
Link to comment
Share on other sites

Guest tantalus

ill share my sources tomorrow.im not at home right now.

i pulled the sources from codeaurora and patched them.so you can prepare and pull them (froyo release,newest manifest).ill put a patchfile online.

my config is based on huaweis.i know you need kernel support for eg uclibc...i guess the problem is sth like this.

Link to comment
Share on other sites

Guest gusthy
ill share my sources tomorrow.im not at home right now.

i pulled the sources from codeaurora and patched them.so you can prepare and pull them (froyo release,newest manifest).ill put a patchfile online.

my config is based on huaweis.i know you need kernel support for eg uclibc...i guess the problem is sth like this.

perfect

Link to comment
Share on other sites

Guest tantalus

hey. sorry im replying so late. had no time until now, then modaco was down.

i dont have much time right now, but here is my patch and kernel config.

i did not yet include all drivers. only essential ones for u8220 (and compas i think).

http://user.fh-frankfurt.de/~asimon/androi...u8220.patch.bz2

http://user.fh-frankfurt.de/~asimon/androi...-20.07.2010.bz2

i checked out tag Q8650BSDCANLYA5015, but should work for others, too.

alex

Link to comment
Share on other sites

Guest gusthy
hey. sorry im replying so late. had no time until now, then modaco was down.

i dont have much time right now, but here is my patch and kernel config.

i did not yet include all drivers. only essential ones for u8220 (and compas i think).

http://user.fh-frankfurt.de/~asimon/androi...u8220.patch.bz2

http://user.fh-frankfurt.de/~asimon/androi...-20.07.2010.bz2

i checked out tag Q8650BSDCANLYA5015, but should work for others, too.

alex

Thx :angry:

You mean, that in the patch you did not include all the files you modified, or that you didnt add all the huawei sources to codeaurora sources?

Link to comment
Share on other sites

Guest gusthy
Thx :angry:

You mean, that in the patch you did not include all the files you modified, or that you didnt add all the huawei sources to codeaurora sources?

What is strange, that the tag you mentioned is a qsd8650 branch, not a msm7627.

Does it have any reason???

Link to comment
Share on other sites

Guest tantalus

the patchfile includes all patches made by me.yes,there are more huawei patch.

as far as i understood actual development is for msm72whatever and qsm(snapdragon).so for our msm7x00 it makes no difference.please correct me if im wrong...

Link to comment
Share on other sites

Guest gusthy
the patchfile includes all patches made by me.yes,there are more huawei patch.

as far as i understood actual development is for msm72whatever and qsm(snapdragon).so for our msm7x00 it makes no difference.please correct me if im wrong...

Yes, it is for msm72whatever :angry:

but it seems that .29 kernel contains references to msm7627, thats why I guessed, it is closer to our cpu.

BTW, do you have any improwments?

Link to comment
Share on other sites

Guest Tom G

I setup a github account yesterday, but haven't put anything on it yet.

Wifi is still not working because of issues with wpa_supplicant.

Data over ril is sort of working. It won't work automatically and everything in the browser fails but it works through the shell. 2G & 3G data appear to work.

# netcfg

lo	   UP	127.0.0.1	   255.0.0.0	   0x00000049

dummy0   DOWN  0.0.0.0		 0.0.0.0		 0x00000082

rmnet0   DOWN  0.0.0.0		 0.0.0.0		 0x00001002

rmnet1   DOWN  0.0.0.0		 0.0.0.0		 0x00001002

rmnet2   DOWN  0.0.0.0		 0.0.0.0		 0x00001002

# netcfg rmnet0 dhcp

# netcfg			

lo	   UP	127.0.0.1	   255.0.0.0	   0x00000049

dummy0   DOWN  0.0.0.0		 0.0.0.0		 0x00000082

rmnet0   UP	175.37.14.160   255.255.255.252 0x00001043

rmnet1   DOWN  0.0.0.0		 0.0.0.0		 0x00001002

rmnet2   DOWN  0.0.0.0		 0.0.0.0		 0x00001002

# ifconfig

# ifconfig rmnet0

rmnet0: ip 175.37.14.160 mask 255.255.255.252 flags [up broadcast running multicast]

# ping 66.102.11.104

PING 66.102.11.104 (66.102.11.104) 56(84) bytes of data.

64 bytes from 66.102.11.104: icmp_seq=1 ttl=53 time=766 ms

64 bytes from 66.102.11.104: icmp_seq=2 ttl=53 time=396 ms

64 bytes from 66.102.11.104: icmp_seq=3 ttl=53 time=376 ms

64 bytes from 66.102.11.104: icmp_seq=4 ttl=53 time=386 ms

^C

--- 66.102.11.104 ping statistics ---

4 packets transmitted, 4 received, 0% packet loss, time 3000ms

rtt min/avg/max/mdev = 376.197/481.437/766.667/164.834 ms

# ping google.com

ping: unknown host google.com

DNS isn't working. Does Android use a resolv.conf or something else for dns.

Link to comment
Share on other sites

Guest Tom G
yep - like in every other ubix in "/ect.":angry:

Usually the dhcp daemon would update /etc/resolv.conf to include the name servers it gets through the dhcp discovery. Since /etc is actually a symlink to /system/etc on Android which is mounted ro that wouldn't work. I just checked on the X10 and there is no resolv.conf, maybe I can add one for static servers, but the dynamic ones it gets from dhcp must go somewhere else.

Link to comment
Share on other sites

Guest Tom G

Found some doco

DNS resolver:

Bionic uses a NetBSD-derived resolver library which has been modified in

the following ways:

- don't implement the name-server-switch feature (a.k.a. <nsswitch.h>)

- read /system/etc/resolv.conf instead of /etc/resolv.conf

- read the list of servers from system properties. the code looks for

'net.dns1', 'net.dns2', etc.. Each property should contain the IP

address of a DNS server.

these properties are set/modified by other parts of the Android system

(e.g. the dhcpd daemon).

the implementation also supports per-process DNS server list, using the

properties 'net.dns1.<pid>', 'net.dns2.<pid>', etc... Where <pid> stands

for the numerical ID of the current process.

So resolv.conf can be used for static servers.

Link to comment
Share on other sites

Guest tantalus

/etc/resolv.conf is a symlink to /data/local/resolv.conf. that symlink is created in the update script that is executed when the data partition is copied from the zip file.

take a look at /data/xbin/set_resolvconf. it sets dns from some getprop command...

@gusthy: i have to confess, i am not very familiar with repo/git. in fact, it confuses me with all its tags, branches, releases, heads etc. i read several howtos but still didnt understand. so i thought with tag qsdXXX they committed something for qsd and tag msmXXX was some msm commit... one week ago, the qsd was the newest for froyo...

look at https://www.codeaurora.org/xwiki/bin/QAEP/ , 7x00 development was with android 1.x. but, try patching the newest msm tag. probably it will work.

actually, im still looking for a reason why binaries are crashing. maybe its related to rpc, at least this could be the reason for adb.

Link to comment
Share on other sites

Guest gusthy
/etc/resolv.conf is a symlink to /data/local/resolv.conf. that symlink is created in the update script that is executed when the data partition is copied from the zip file.

take a look at /data/xbin/set_resolvconf. it sets dns from some getprop command...

@gusthy: i have to confess, i am not very familiar with repo/git. in fact, it confuses me with all its tags, branches, releases, heads etc. i read several howtos but still didnt understand. so i thought with tag qsdXXX they committed something for qsd and tag msmXXX was some msm commit... one week ago, the qsd was the newest for froyo...

look at https://www.codeaurora.org/xwiki/bin/QAEP/ , 7x00 development was with android 1.x. but, try patching the newest msm tag. probably it will work.

actually, im still looking for a reason why binaries are crashing. maybe its related to rpc, at least this could be the reason for adb.

I am also confused with repo, so I understand you :angry: We shall see. I downloaded an MSM tag, but don't think it will make big difference.

Okay, the most important question:

What did you do after building the kernel? What ramdisk, what Android build etc.?

Shortly, what was the deployment process?

Link to comment
Share on other sites

Guest BigBearMDC
I am also confused with repo, so I understand you :angry: We shall see. I downloaded an MSM tag, but don't think it will make big difference.

Okay, the most important question:

What did you do after building the kernel? What ramdisk, what Android build etc.?

Shortly, what was the deployment process?

repo isn't that complicated.

Just copy the URL, make an empty folder, cd into it and run

git clone git://the-repo's-url

Have a look at our github Wiki (link in my sig), there is a short explanation on how to download the source.

Edit: sorry, I don't have the link in my sig ;)

Use this one instead :D

Best regards,

BB

Edited by BigBearMDC
Link to comment
Share on other sites

Guest tantalus

Hey. After porting the drivers to 2.6.32.9, I first put my new kernel to flb-1.0 (split boot image, mkbootimg with the new kernel). Somewhat later i edited META-INF/com/google/android/update-script to only update the boot image, because overwriting /system and /data everytime was pretty senceless.

Then i modified the /system/etc/init.d to write dmesg and so on to /data, as you may have read. With 'dumpsys' i came to the conclusion that even java stuff is starting but crashing at some point. I was unable to figure that out.

Then i built a tiny Android according to https://www.codeaurora.org/xwiki/bin/QAEP/ . Actually it is the same as flb-1.0, just a boot ramdisk (and that ramdisk is exactly the same as for a full system). With Huaweis kernel this even starts adb. But never in my. So right now i am trying to get USB Function to work. I am thinking about opening the phone to get at least some serial debug. All i have right now is my init service dmesging (and others) to /data. But in this dmesg is no USB output...

Another problem i have is that the msm70xx code is damn unmaintained. Every second kernel configuration does not compile! So, USB could also be related to unmaintained code. And finally as Tom seems to have got Froyo running on Huaweis kernel very well, I´m getting somewhat... 'frustrated'...

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.