Chinaunix首页 | 论坛 | 博客
  • 博客访问: 269284
  • 博文数量: 55
  • 博客积分: 3030
  • 博客等级: 中校
  • 技术积分: 682
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-30 11:33
文章分类

全部博文(55)

文章存档

2011年(1)

2010年(12)

2009年(42)

我的朋友

分类: LINUX

2009-10-07 13:45:52

这两天一直想让我的开发板挣脱PC机的控制,把控制台移到LCD上去,然后用USB键盘作为输入,在LCD上构成一个终端。此刻有了一点点进展,于是把她记录下来,虽然我的开发板现在还不能用USB键盘作为输入设备(总提示“usb 1-1 device not accepting address....”等)。

我用的内核是linux2.6.14,硬件为S3C2410.

1、在vivi源码arch/s3c24l0/smdk.C文件中作出相应的修改。

修改cmd_line为:

char linux_cmd[] = "initrd root=/dev/mtdblock/2 init=/linuxrc console=tty0";

这里的tty0能将lcd framebuffer0作为标准输出设备。

2、编译vivi。并将vivi下载到开发板的0分区。

3、修改内核:进入“Character devices”,勾选“[*]   Support for console on virtual terminal”。再在Console device 里选中Framebuffer Support。最后屏蔽console on serial port选项,编译下载内核到1分区。

4、启动linux后,vivi就会把控制台交给LCD了。

注意:想通过把内核配置里“Boot options”项下面的“defaule kernel command string”子项更改为“initrd root=/dev/mtdblock/2 init=/linuxrc console=tty0”来达到目的是没用的。控制台是由“bootloader”来发言的,而不是内核,所以这里我们选择了更改vivi

   可能有人会和我遇到同样的情况:用vivi作bootloader后,会发现要向开发板下载文件比较麻烦,因为很难在网上找到能支持USB下载的vivi。我自己后来的做法是,在我买的开发板所自带的bootloader源码里有个叫的nand.c的程序,这个程序里有一行语句“ char *linux_params = "noinitrd root=/dev/mtdblock/2 init=/linuxrc console=ttySAC0 mem=64M devfs=mount";”,我把它改成“ char *linux_params = "noinitrd root=/dev/mtdblock/2 init=/linuxrc console=tty0 mem=64M devfs=mount";”,再在Windows下用ADS编译一下(或者你可以直接在linux下编译,但你得写个Makefile)。把生成的bin文件下载到开发板的0分区就KO了。这样你就不必担心自己因为用vivi就不能用USB下载文件了。

阅读(1321) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~