[완료] 왜 동작하지도 못하는 printk 를 사용했을까요?
글쓴이: inamind / 작성시간: 금, 2010/11/12 - 6:00오후
안녕하세요.
arm 에서 linux kernel을 개발하고 있습니다.
void __init create_mapping(struct map_desc *md)
{
...
printk(KERN_WARNING "BUG: map for 0x%08lx at 0x%08lx can not "
"be mapped using pages, ignoring.\n",
__pfn_to_phys(md->pfn), addr);
...
}
위와 같은 구문이 있는데요. 사실 이 함수가 호출되는 위치는 거의가 메모리가 mapping 이 되지도 않은 시점입니다.
따라서 printk 를 사실상 동작하지 못하게 되는데요.
이런 함수들을 memory mapping 전에 곳곳에서 사용하고 있네요.
왠만하면 serial device 에 direct 로 write 하는 함수를 사용했어야 맞을것 같은데요.
메모리 맵핑전에 printk를 동작시키는 숨겨진 feature 가 있는가요?
Forums:
earlyprintk
earlyprintk
arm 은 지원 하지 않는가..
/*
* Architectures can override it:
*/
void asmlinkage __attribute__((weak)) early_printk(const char *fmt, ...)
{
}
요로코롬 비어 있군요..;;
Architectures can override
Architectures can override it: 이라고 쓰여있잖습니까; arm용은 따로 구현되어 있네요. x86용도 있구요.
arch/arm/kernel/early_printk.c
33 kernel 에 들어왔군요.
제가 32 커널을 쓰고 있어서 비어있었던 거네요.
답변 감사합니다.
댓글 달기