このコマンドはdmesg | grep console
以下を返します。
Kernel command line: console=ttys6,115200 root=/dev/mmcblk1p2
rootwait rw
console [ttys6] enabled
起動後にttys3に変更したいです。可能ですか?
ベストアンサー1
マニュアルページtty_ioctlioctl TIOCCONSをリストします。 ttyのオープンファイル記述子に適用すると、将来の出力はその/dev/console
ttyにリダイレクトされます。
単純なPerlスクリプトで使用できます。chmod +x
次の内容でmysetconsoleファイルを作成します。
#!/usr/bin/perl
# https://unix.stackexchange.com/a/397790/119298
# see man tty_ioctl for TIOCCONS
# and perldoc IO::Tty::Constant
require "sys/ioctl.ph";
use IO::Tty::Constant qw(TIOCCONS);
ioctl(STDIN,TIOCCONS,0) or die $!;
目的のデバイスを開くことができると仮定すると、次のように使用します。
sudo ./mysetconsole </dev/ttys3
/dev/console
コンソールをリセットしないと再利用できません。
sudo sh -c './mysetconsole </dev/console'
_FORTIFY_SOURCE
無視できる Perl 警告が表示されることがあります。 rpmパッケージperl-IO-Tty
またはdebianパッケージが必要ですlibio-pty-perl
。必要に応じて、システムインクルードファイルでTIOCCONS定義を参照できます。私が見つけた場所は次のとおりです。
/usr/include/asm-generic/ioctls.h: #define TIOCCONS 0x541D
あなたのPerlスクリプトは次のようになります。
#!/usr/bin/perl
# https://unix.stackexchange.com/a/397790/119298
sub TIOCCONS{ return 0x541D; }
ioctl(STDIN,TIOCCONS(),0) or die $!;