linux 串口驱动程序术语介绍?

linux 串口驱动程序术语介绍?,第1张

在Linux中经常碰到“控制台”、“终端”、“console”、“tty”、“terminal”等术语,也经常使用到这些设备文件:ldevconsole、/dev/ttySACO、/dev/tty0等。要理解这些术语,需要从以前的计算机说起。

最初的计算机价格昂贵,一台计算机通常连接上滑差竖多套键盘和显示器供多人使用。在以前专门有这种可以连上一台电脑的设备,它只有显示器和键盘,外加简单的处理电路,本身不具有处理计算机信息的能力。用户通过它连接到计算机上(通常是通过串口),然后登录系统,并对计算机进行 *** 作。这样一台只有输入、显示部件(比如键盘和显示器)并能够连接到计算机的设备就叫做终端。tty 是Teletype 的缩写,Teletype是最早出现的一种终端设备,很像电传打字机。在Linux中,就用tty来表示“终端”,比如内核文件tty_io.c、tty _ioctl.c等都是与“终端”相关的驱动程序设备文件/dev/ttySACO、/dev/tty0等也表示某类终端设备。“console”的意思即为“控制台”,顾名思义,控制台就是用户与系统进行交互的设备,这和终端的作用相似。实际上,控制台与终端相比,也只是多了一项功能:它可以显示系统信息,比如内核消息、后台服务消息。从硬件上看,控制台与终端都是具备输入、显示功能的设备,没有区别。“控制台”、“终端”、“控制终端”这些名词经常混着用,表示的是同一个意思。

控制台与终端的区别体现在软件.上,Linux内核从很早以前发展而来,代码中仍保留了“信大控制台”、“终端”的概念。启动Linux内核前传入的命令行参数“console=…”就是用来指定“控制台”的。控制台在tty 驱动初始化之前就可以使用了,它最开始的时候被用来显示内核消息(比如 printk 函数输出的消息)。庆歼

1、在控制台输入lsmod,先看看能否检测到这个设备,就看有没有pl2303字眼可以了。如果有,则不需要再装驱动。

2、另外如果有的话最好再用dmesg|grepusb查找如果樱睁团看到:drivers/usb/serial/usb-serial.c:USBSerialsupportregisteredforGeneric。就说明设备已被识别,然后往下看rivers/usb/serial/usb-serial.c:USBSerialsupportregisteredforPL-2303,usb2-2:PL-2303converternowattachedtottyUSB0(orusb/tts/0fordevfs)如果没有则需要驱动程序,一般硬件厂商都会提供,如果真的没有的话就只有到网上下载了,一般2.6内脊橘核以上的都支持。

3、安装完毕后再输入这个命令瞧瞧,是否安装成功。lsmod|grepusbserial。如果有usbserial,说明系统支持USB转串口。

4、驱动安装完毕后,就需要安装串口软件,这里推荐cutecom和puttycutecom安装sudoapt-getinstallcutecom。putty安装sudoaptinstallputty或sudopacman-Sputty

5、然后启动cutecom命令sudocutecom,之后你就可以看到哪些串口正在连接状态。

6、当开发板启动后,我们需要传入elf或bin文件,此时需要用到tftp,在控制台输入:sudoapt-getinstallxinetd,sudoapt-getinstalltftptftpd并等待安装完成后,输入:sudovi/etc/xinetd.d/tftp输入早迹i,进入插入模式,随后按esc输入wq。保存。

7、第一次启动时和每次更换目录时都要执行sudo/etc/init.d/xinetdrestart,不然会找不到文件。

8、喜欢用putty的可以在控制台输入sudoputty运行程序。

到天空软件中下载

A:esscom.o是2.2.12内核下用的,在2.2.15下用,要改tty.h并重编内核的(见linmodem-Howto),我在tuobo6.1下就是这样干的:(在rh7下可能不行,因为它的头文件好象是2.4.0的,要另想它法)

1、下载驱动程序:ftp://ftp.esstech.com/pub/modem/pci/unsupported/56t-pi/linux/Kernel61/111.zip

2、上述驱动程序是2.2.12下的,在其它内核下,可以用insmod -f esscom加载。

3、对于2.2.15以后的内核,要做些手脚圆穗告!

据linmodem-HOWTO的介绍,2.2.15以后的头文件/usr/src/linux/include/linux/tty.h作了改动,在struct tty_struct中增加了一个成员:

struct wait_queue *poll_wait这就导致新的ppp.o和esscom.o不兼容。因此要将tty.h中的这个新成员移到结构的最后,移动后就象下面这样:

...

struct semaphore atomic_read

struct semaphore atomic_write

spinlock_t read_lock

struct wait_queue *poll_wait/*移橘明到这里*/

}

...

然后是重新编译内核和模块(这是关键,要得到新的ppp.o)。

这个办法我在2.2.15和2.2.17下试过,很管用。

注意:由于tty.h改过了族没,虽然解决了上网问题,但反过来内核可能与其他什么模块不兼容。故慎用!

补充:

1.要建立相应的设备:

cd /dev

mknod essmodem c 127 1

ln -s essmodem modem

2.如果esscom.o是放在/lib/modules/x.x.xx下的目录里(如/lib/modules/x.x.xx/net),可以用insmod -f esscom。否则要指定位置,如:insmod -f /tmp/esscom.o。

3.把上述insmod放在/etc/rc.d/rc.modules中,这样在启动时就自动加载essmod.o。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12533604.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存