uClinux console设置

         最近有个项目使用nuc745和maxq1050两个cpu,1050未留出串口,而是通过745的串口转发实现程序的download。上位机软件通过746的串口0,下载1050的app程序,而串口0又默认作为console。所以系统启动后/dev/ttyS0将不能作为console,解决办法考虑为关闭console或者改串口2作为console。

        首先想到的是改bootloader,但没想到uClinux bootloader没有像u-boot一样有个cmdline参数传递给kernel指定console,这个参数可以在u-boot启动后随意设置改变。只好从bootloader的代码下手,bootloader是使用ads1.2编译,折腾好久才编译好了,想通过串口更新boot-loader也遇到了不能解决的问题。没办法进行下去了。

        只好上百度 谷歌 ,发现其实cmdline可以在kernel中设置。


         如何将console口由/dev/ttyS0改为/dev/null
   
  缺省状态下,uClinux是以串口1即/dev/ttyS0为console口的,这样用户就无法再使用串口1用于串口通信。这里介绍一个方法,使用户可以象使用串口2一样使用串口1,原理是将uClinux的缺省console由串口1即/dev/ttyS0改为/dev/null,具体做法如下:
修改文件/homeu/Clinux-coldfire/linux/arch/m68knommu/kernel/setup.c,将如下这句
char console_default[] = "CONSOLE=/dev/ttyS0";
改为
char console_default[] = "CONSOLE=/dev/null";
再重新编译内核即可。


我没有在我的代码中发现console_default这个变量,但是有

       #ifndef CONFIG_CMDLINE
       #define CONFIG_CMDLINE "root=/dev/rom0 rw " //mcli
       #endif

       于是我尝试改为

        #ifndef CONFIG_CMDLINE
       #define CONFIG_CMDLINE "root=/dev/rom0 rw console=/dev/null" //mcli
       #endif

      实验证明可以关闭调试信息输出

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值