全志T113-S3 longan SDK 配置uart0为控制台,只有输出没有输入(已解决)
-
回复: 全志芯片Tina Linux 修改 UART 引脚、UART端口
首先先按照这个帖子改,发现烧录固件,uboot,boot0均有输出,但是kernel没有输出。日志最后的消息是starting kernel,这是boot的最后一行消息。但是通过连上全志的adb,发现能够连接,说明系统已经启动,串口没有配置好。
坑点1:linux路径混乱。
众所周知,linux环境每个人都不同,因此照搬别人的配置有可能不行
在~/device/config/chips/t113/configs/evb1_auto_nand路径下(我用的nand,如果是emmc路径是evb1_auto)有一个env.cfg文件,在上述步骤中已经修改为了earlyprintk=sunxi-uart,0x02500000 initcall_debug=0 console=ttyS0,115200
但是修改没有效果,切原本配置的串口是uart3 ,接上有输出。因此考虑是不是改错了文件,于是查看他编译过程,发现它使用的env.cfg文件是在~/device/config/chips/t113/configs/evb1_auto_nand/longan/env.cfg ,真是离了个大谱,一个目录下有两个这个配置文件,也怪不得分不清。于是修改了该文件,发现kernel阶段有输出了,但是,马上坑点2就来了。
坑点2:init
先说问题,进入了系统后,串口0输入自动回显,且使用adb在系统内echo 'hello world!',会在串口0接收到,查看cat /proc/cmdline ,发现console = ttyS0 ,115200 。这个时候我就很疑惑了,是成功配置了呀,而且也不是硬件问题,因为串口0收发都正常的,且已经正确把串口0配置为控制台了。
这个时候出发点可能还是要从它原本的配置入手,它原本uart3是控制台,会不会uart3能进入console呢?马上接上uart3,确实,系统输出了welcome to system kuno啥的,kuno指的是用户名,然后要你输密码。得,不知道是哪里的配置问题。
遂一点点查看所有配置,重新检查,发现实在是都对,使用grep ‘console'抓取所有的文件内带console的,都已经改成了ttyS0,这是咋回事呢?遂查资料,问gpt,发现影响console的还有一个init过程,常用的包括busybox ,systemd,systemV,procd-init等,我的工程使用的是busybox,遂进入buildroot,使用命令make menuconfig ,选择
System configuartion -> run a getty ,哈哈,里面有个TTY port
它原本是ttyS3,截图里已经被修改为S0了,ok啊,重新编译,烧录,大功告成
-
@creaznico 补充一点,可以直接在sdk里把getty去掉,就没有密码登陆验证了
Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号