tty pty pts ptmx

tty, pty, pts, ptmx

Devpts文件系统为伪终端提供了一个标准接口,他的标准挂接点是/dev/pts。只要pty的主复合设备/dev/ptmx被打开,就会在/dev/pts下动态创建一个新的pty设备文件。挂接时UID, GID及其工作模式会指定给devpts文件系统的所有pty文件,这可保证伪终端的安全性。

http://blog.csdn.net/tenfyguo/article/details/5742389
http://book.2cto.com/201405/43234.html

adb中遇到的场景

我在移植adb到linux平台的时候,涉及到pts、ptmx,需要在内核中配置如下:
Device driver`
\ Character devices
\ \ [*]Enable TTY
\ \ \ [*]Unix98 PTY support
\ \ \ \ [*]Support multiple instances of devpts
Config busybox setting
\ Busybox Setting
\ \ General Configuration
\ \ \ Use the devpts filesystem for unix98 PTYs

选项选择好编译,再次去除这些选项之后再编译会出问题,报如下错误:

WARNING: arch/rlx/bsp/built-in.o(.text+0x4): Section mismatch in reference from the function >disable_early_printk() to the variable .init.data:promcons_output
The function disable_early_printk() references
the variable __initdata promcons_output.
This is often because disable_early_printk lacks a __initdata
annotation or the annotation of promcons_output is wrong.

WARNING: arch/rlx/bsp/built-in.o(.text+0x10): Section mismatch in reference from the function >disable_early_printk() to the variable .init.data:promcons_output
The function disable_early_printk() references
the variable __initdata promcons_output.
This is often because disable_early_printk lacks a __initdata
annotation or the annotation of promcons_output is wrong.

WARNING: arch/rlx/bsp/built-in.o(.data+0x1710): Section mismatch in reference from the variable >rts1_camera_device to the variable .init.rodata:rts1_soc_camera_pdata
The variable rts1_camera_device references
the variable __initconst rts1_soc_camera_pdata
If the reference is valid then annotate the
variable with __init* or __refdata (see linux/init.h) or name the variable:
_template, _timer, _sht, _ops, _probe, _probe_one, *_console

解决办法:
不用去修改这些文件的错误,虽然这些文件本身编译可能有问题。
可以这么做,在busybox和linux内核目录下做make clean和make distclean
然后再重新编译。
实际上后来发现,busybox中不需要配置,只要在内核中配置就行了。

内核配置并且编译之后,系统支持pts
进入终端执行:mount -t devpts none /dev/pts
如果没有/dev/pts这个目录的话,执行mkdir -p /dev/pts创建一个目录

你可能感兴趣的:(tty pty pts ptmx)