A maioria das bios aceita várias versões das seqüências de escape do teclado vt100 para teclas de função. Por exemplo, o guia de redirecionamento do console da Dell lista, entre outros, os equivalentes:
F7 <Esc> <Shift>ov or <Esc> [ 1 8 ~
e também algumas sequências extras não padrão, como
<Ctrl><Alt><Del> <Esc> <Shift>r <Esc> r <Esc> <Shift> r
(Por <Shift>ov
você digitaria OV
, claro). Infelizmente, essas sequências chave geralmente precisam ser digitadas muito rapidamente, já que somente um pequeno tempo limite é permitido entre os caracteres.
Uma maneira de enviar tal sequência através do telnet é fazer com que seu emulador de terminal gere a string em alguma ligação. Isso é muito dependente do emulador de terminal.
Outra é desconectar seu telnet e executar um comando para enviar apenas a sequência por meio de uma nova conexão telnet. Por exemplo, para testar, esse script de espera faz um login e envia a sequência F7 ( 3\[18~
).
#!/bin/expect -f
spawn telnet localhost
expect login:
send myuserid\r
expect Password:
send mypassword\r
expect "\$ "
send "echo hi\r"
expect "hi"
expect "\$ "
send "dd count=6 bs=1 | od -c\r"
send "3\[18~\r"
expect "\$"
send "echo hi\r"
expect "hi"
send_user "done\n"
Obviamente, você não precisará fazer login no seu bios, então você pode ter apenas
#!/bin/expect -f
spawn telnet remotebios
expect "Connected to "
send "3\[18~"
Você também pode tentar mais simplesmente
echo -e '3[18~' | nc remotebios 23