Please help.. trying to use USB keyboard to open a shell on LCD display

Kim Chan ckim at etri.re.kr
Wed Mar 12 02:30:13 EDT 2014


Hello, folks,



It is a comfort to me that I have people to ask questions here and I hope I could be answering to some hard quetions someday.

I've beeing trying to attach a USB keyboard to our embedded system to open a shell on the LCD display using framebuffer console. The USB host controller is from the opencore(USB1.1) and it works for USB memory.

Some of the boot arguments are (I've tried some variants)

"console=tty1 "
"fbcon=map:0000,font:SUN8x16,vc:1-3 "
"root=/dev/ram "



The problem is, after the final sys_execve() which executes /sbin/init of the ramdisk, I cannot see any printf results frome the busybox init_main function not to mention the shell. So I cannot use shell commands like getty. Using uart as the console I can see printf results in the busybox init_main routine. (I use "console=ttyS,mmio,0xff003000,115200n8 " in that case)

Using some prints on separate uart print routine, I can see from the kbd_event function that the key value is going to current vc which is using tty1. The key value is then handed to put_queue function where the character is somehow copied to tty buffer. Flush_to_ldisc is scheduled for it and it will probably get passed on to the virtual console. By the way, I guess the keyboard data is delivered to current fg_console (vc 0 which is using tty1).



Added to this, there is a notifier_call_chain and the notifier block is registered by vcs_poll_data_get function which I don't know weather is necessary or not. So one of my questions is if vcs is necessary for my case. (I guess not. There is no other notifier blocks registered)



I gathered that without inittab (I don't use inittab which should be ok for most cases) the assumed default inittab tty2::askfirst:-/bin/sh tty3::askfirst:-/bin/sh tty4::askfirst:-/bin/sh is being applied by the busybox so there maybe 3 shells on tty2,tty3, and tty4 running somewhere.

But even if there are shells running I don't know how to switch to those ttys. I tried using Ctrl-Alt F2 (or F3, F4) using the USB keyboard to switch to tty2,3,4 to see if any shell comes up on the LCD but couldn't see it.

I tried using inittab with no avail before.



And I don't know how the printf in busybox is connected to the kernel.  I guess busybox talks with stdio(stdout,stdin..) and the file is connected to the kernel anyhow. I've digged up how vc driver is connected to the console switch functions and to the bit blitting functions and how the printk is handled in the kernel. But these console, tty, framebuffer console.. things are very complex to me. and I hope somebody could point me to what should be checked. Any hint will be deeply appreciated.



Best Regards,

Chan
_______________________________________________
Kernelnewbies mailing list
Kernelnewbies at kernelnewbies.org<mailto:Kernelnewbies at kernelnewbies.org>
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20140312/6a2bed6f/attachment.html 


More information about the Kernelnewbies mailing list