안녕하세요,
제가 요즘 저희가 사용하는 embedded 시스템에서
USB keyboard를 연결하여 LCD 에 virtual console을 띄어 보려고 하는데요,
USB host controller 하드웨어 문제가 있던 것이 없어진 후로 USB 메모리는 붙는데 LCD에 shell 띄우는 것은
한달 넘게 보고 있는데도 아직 잘 모르겠네요. (그 전까지는 UART로 virtual console을 썼습니다.)
아마 많이 하신 분들은 쉽게 아실 내용같은데요..
현재 keyboard_event 쪽에서 보면 event들은 잘 올라 오는 것으로 보이는데요, (어느 키가 눌렸는지 released되었는지..)
뭔가 설정 문제일 것 같은데 linux source를 보시면 아시겠지만 init/main.c에서
run_init_process(ramdisk_execute_command);
했을 때 (저의 경우는 ramdisk_execute_command는 /sbin/init 입니다.)
결국 kernel_execve(init_filename, argv_init, envp_init);를 불러 주는데요,
이 부분 이후로는 busybox로 넘어가야 하는데 전혀 print가 되지 않네요.
kernel_execve 부르기 직전까지는 printk한 것이 LCD에 잘 나타납니다.
linux 3.3을 쓰고 있고요..
LCD 창에 새로운 frame buffer를 하나 띄우고 그것을 tty (예를 들어 tty1)에 연결해야 할 것 같은데 방법을 모르겠습니다.
관련된 설정을 보면 다음과 같습니다. (참고로 serial로 하고 booting한 후 #cat /proc/fb0하면 0으로 나옵니다. )serial로 두었을 때는 linux booting이 잘 되어 busybox shell까지 잘 진행됩니다.
단 아래와 같이 LCD를 쓰도록 하면 앞의 설명과 같이 멈춥니다.
#### arch/sparc/boot/ourprocessor/prom_stage.c : #####
boot argument :
// "console=ttyS,mmio,0xff003000,115200n8 " <== serial port 쓰는 경우
"console=tty " <= LCD와 frame buffer console 쓰는 경우 (아래줄까지)
"fbcon=font:SUN8x16,map:0000 " <= 이것도 맞나요? tty1,2,3,4,5,... 모두 fb0에 연결..
#### sbin/init: #####
#!/bin/busybox sh
export LD_LIBRARY_PATH=/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/mnt/nand/lib
exec /bin/busybox init
### rcS #####
mknod /dev/tty0 c 4 0 <== tty0, tty1도 잡아 주어야 하나요?
mknod /dev/tty1 c 4 1
mknod /dev/tty2 c 4 2
mknod /dev/tty3 c 4 3
mknod /dev/tty4 c 4 4
### .config #####
CONFIG_FRAMEBUFFER_CONSOLE=y <= serial 쓰는 경우 이 세 줄은 없습니다.
CONFIG_FONT_SUN8x16=y
CONFIG_LOGO=y
"console=tty " <= LCD와 frame buffer console 쓰는 경우 (아래줄까지)
"fbcon=font:SUN8x16,map:0000 " <= 이것도 맞나요? tty1,2,3,4,5,... 모두 fb0에 연결..
#### sbin/init: #####
#!/bin/busybox sh
export LD_LIBRARY_PATH=/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/mnt/nand/lib
exec /bin/busybox init
### rcS #####
mknod /dev/tty0 c 4 0 <== tty0, tty1도 잡아 주어야 하나요?
mknod /dev/tty1 c 4 1
mknod /dev/tty2 c 4 2
mknod /dev/tty3 c 4 3
mknod /dev/tty4 c 4 4
### .config #####
CONFIG_FRAMEBUFFER_CONSOLE=y <= serial 쓰는 경우 이 세 줄은 없습니다.
CONFIG_FONT_SUN8x16=y
CONFIG_LOGO=y
혹시 방법을 아시는 분은 알려 주시거나 힌트가 될 만한 것을 알려 주셔도 매우 감사하겠습니다.
김 찬 드림
T. 010-3418-9152 (Cellphone) 042-860-5773(Office)
Email : ckim@etri.re.kr
댓글 0
.