Hi all,
I use the remote gdb to debug the ARM version init in emulator. When
calling coldboot(fd, "/sys/devices") it will call make_device to make
the devices. Following is the screenshot in remote gdb. But in MIPS
version of init, coldboot(fd, "/sys/devices") does NOT call
make_devides to create the devices. I will dig into this issue and
find the bugs behind......
(gdb) c
Continuing.
Breakpoint 3, make_device (path=0xbee5a754 "/dev/log/main", block=0, major=10,
minor=60) at system/core/init/devices.c:272
272 {
(gdb)
yajin
http://vm-kernel.org
On Tue, Oct 13, 2009 at 4:36 PM, yajin <[email protected]> wrote:
> Hi Dennis,
>
> Thanks for your instructions.
> In fact, I have included the ashmem module in the kernel
> configuration. I use the remote gdb to debug the kernel and find that
> the ashmem_init is called. I find that ashmem is registered as a misc
> device using misc_deregister(&ashmem_misc);
>
> With your help, I find the code patch in init is:
> device_init->
> coldboot->
> do_coldboot->
> handle_device_fd->handle_device_event->handle_device_event ->make_device.
>
> Then I use remote gdb to debug the init. However, the make_device
> function are not called at all.
>
> Any more suggestions?
>
> yajin
>
> http://vm-kernel.org
>
>
>
> On Tue, Oct 13, 2009 at 10:36 AM, Dennis.Yxun <[email protected]> wrote:
>> HI yajin:
>> Glad to see that you are play with MIPS ;-)
>> I spend a few times looking into the code, and find it will creat all the
>> device nodes during
>> execution of init.
>> system/core/init/ -> file devices.c -> handle_device_event ->make_device
>>
>> Dennis
>>
>> On Mon, Oct 12, 2009 at 6:07 PM, yajin <[email protected]> wrote:
>>>
>>> Hi all,
>>>
>>> Now I am working on adding goldfish target support to MIPS target so
>>> that the MIPS users can have a SDK to play with.
>>>
>>> The kernel part works well until entering the userland. The init hangs
>>> when calling ashmem_create_region. In function ashmem_create_region,
>>> it will open /dev/ashmem and it return -1 and the errno is 19 which
>>> means no such devices. I do not find where this device(/dev/ashmem) is
>>> created? Can anyone tell me the code path of creating device /dev/
>>> ashmem? Thanks very much.
>>>
>>> int ashmem_create_region(const char *name, size_t size)
>>> {
>>> ......
>>> fd = open(ASHMEM_DEVICE, O_RDWR);
>>> if (fd < 0)
>>> return fd;
>>>
>>> ......
>>> }
>>>
>>>
>>> yajin
>>> http://vm-kernel.org/blog
>>>
>>>
>>>
>>
>>
>> >>
>>
>
--~--~---------~--~----~------------~-------~--~----~
unsubscribe: [email protected]
website: http://groups.google.com/group/android-porting
-~----------~----~----~----~------~----~------~--~---