【Linux学习相关】移植Minicom之后终端删除回显有问题

环境:Linux4.9.88 + 100ask_IMX6ULL + Ubantu18.04
软件:使用的是正点原子推荐的ncurses 6.0以及minicom2.7.1
如果你问我为什么要在100ask的板子上使用正点原子的教程,我只能说100ask的教程写的不够完整,如果你需要进阶的就需要收费,而且收费不菲,心想着是一样的CPU就用其他类似的教程。
目前踩过的坑:
(1)正点原子的imx6ull的Linux系统版本和100ask是不一样的,这个需要注意,所以很多问题都是出现在系统版本不一样上。之前参照使用Linux下的SPI驱动编程时,在设备树中填入了cs-gpio(正点原子的写法,还要求只能这么写),直接导致内核起不来了。填入cs-gpios就没事。然后就是写SPI的函数,按照正点原子方式去写,一运行到写寄存器就出错,后来换了种写法,使用了spi_write_then_read以及spi_write才弄好。
(2)在Ubantu18.04下进行ncurses6.0的configure时需要注意将编译器的设置从arm-linux-gnueabihf换成arm-buildroot-linux-gnueabihf,如果你是按照韦东山的教程去配置ubantu环境,那么系统内的编译器就是arm-buildroot-linux-gnueabihf,对于后面minicom的configure也是一样。如果你没设置对的话,ncurses6.0可能能编译成功,minicom2.7.1是会编译出错的。而如果因为这个问题的出现,你解决了minicom2.7.1的编译,再进行移植后,在开发板上运行minicom则会出现 wrong ELF class:EFLCLASS64的问题。这个问题我之前在网上查了一天,都是说64位系统使用32位的.so有问题,后来重新把ncurse6.0编译的设置弄好重新编译了一份才弄好。其实这个问题的原因就是:minicom使用了ncurse6.0的lib,你在移植操作中移植了它编译生成的lib,如果编译器设置不对,那就会报错。
(3)各种操作之后,总算能够运行了minicom了,但是reboot之后,发现开发板删除键有问题,与其说是删除键有问题,更应该说是回显有问题。输入行明明已经删除了某些语句,但是仍显示在终端上,这很影响操作。查了各种资料之后,解决无果。屏蔽了/etc/profile中增加的设置也无效。只能重刷系统,然后一个个移植后试。后来发现是ncurses6.0中share对于原系统文件的覆盖问题导致的。
解决方法:使用ncurse6.1以及minicom2.8
为什么不使用ncurse6.4以及6.3?因为在ubantu环境下编译它会报错,似乎是terminfo的数据库中缺少东西,并且两个版本缺少东西还不是同一个。懒得解决这个问题,就换旧的了。

猜你喜欢

转载自blog.csdn.net/qq_32006213/article/details/131003418