Chinaunix首页 | 论坛 | 博客
  • 博客访问: 140313
  • 博文数量: 24
  • 博客积分: 672
  • 博客等级: 上士
  • 技术积分: 330
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-29 09:28
文章分类

全部博文(24)

文章存档

2011年(24)

我的朋友

分类: LINUX

2011-07-06 15:15:30

转自:http://blog.csdn.net/subfate/article/details/5995794

u-boot移植随笔:让u-boot shell支持tab、命令历史

前两天一直在想一个问题,u-boot的shell怎么不支持命令自动补齐,命令历史呢?由于受linux的shell影响,只要其它的“shell”有点什么不好的,一试就能感觉出来,所以要设置回那些基本功能。

我搜啊搜,陷入了自己设置给自己的深渊了。下面写一下自己找到的结果——虽然这些努力基本是白费的。

 

u-boot的shell使用的是HUSH shell,来自busybox的那个HUSH shell。hush.h在./include/里面,hush.c在./common里面,对比busybox那个hush.c发现u-boot的这个少很多(单从文件大小来看,具体没能力研究),应该是减少很多功能了。再去查busybox用了哪些shell,结果有msh shell、ash shell、hush shell,看busybox的配置(make menuconfig命令)时,上面明确说msh已经不再用了,代替为hush shell,但在网上查到的很多都是关于msh,郁闷啊!

 

我想啊想啊,会不会要我自己实现这些东西呢?那就得研究shell的代码了,这工程可不小。后面又试了vivi的shell,这个shell有我想要的功能。难不成就研究它的代码?

 

后来google到了u-boot的邮件列表上去了,上面的u-boot版本是1.1.6,跟现在这个差了N年了。不过学习下也无所谓。一不小心,看到一句话:

Yes, it does. You have to enable it in the configuration, though.


一语点醒梦中人!再看提问者的回答:

It's realy a nice feature for debug. I just tried that for u-boot
1.1.6 and it worked fine. Enable CONFIG_CMDLINE_EDITING.

靠!原来就这么简单!一切都在人家掌握之中!唉,由于自己才疏学浅、孤陋寡闻导致这两天搞得自己走了很多冤枉路。不过,有失必有得,怎么说自己也学到点东西了。

 

只要在开发板相关的头文件,如smdk2440.h定义下面两个宏,就能实现命令自动补齐、命令历史,一切就搞定了!

 

#define CONFIG_CMDLINE_EDITING
#define CONFIG_AUTO_COMPLETE

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

piyajee2015-01-20 17:01:29

或许这是必经之路