NOTICE: The Processors Wiki will End-of-Life on January 15, 2021. It is recommended to download any files or other content you may need that are hosted on processors.wiki.ti.com. The site is now set to read only.
- 3Scripts
- 4What about DaVinci TeraTerm Scripts?
- 5What about OMAP-L1 TeraTerm Scripts?
- 6What about using a DLP Pico Projector?
- I have created button and want that when ever I click on that button then putty connect to the server in activecell using my macros. Here is Vba script Sub Button1Click Dim RetVal RetVal = Shell('C: Program Files PuTTY putty.exe -ssh -l username ', 1 & ActiveCell) End Sub.
- Wanting to run a macro/script from PuTTY We currently use TUN as an emulation program to connect to various unix applications. I am looking at moving to PuTTY release 0.60 but am getting stuck as one application runs a macro at startup to run a program.
Introduction[edit]
Tera Term is an opensource terminal emulator on MS-Windows commonly used by us developers. Tera Term supports a 'rich' macro language that can help in automating user actions. These scripts usually remain personal - rarely shared.
In this page, I intend to share the basic scripts that can be used to automate common tasks in the Linux PSP release. The scripts were created with intentional hierarchy to maximize reuse (via inclusion) and minimize redundancy across scripts. Currently, these scripts apply to OMAP35x Linux PSP. But, can be extended easily to other platforms.
Needless to say, these scripts are open to enhancements.
How to execute a TeraTerm script?[edit]
Scripts[edit]
File Naming Conventions[edit]
- A file containing common macros - that can be included in other scripts - is prefixed with double underscore e.g.
__common.ttl
- The purpose / functionality of the file can be indicated after a '-' (minus) in the file name e.g.
__uboot-config.ttl
- Name of the container script that you execute is prefixed with name of the board e.g.
omap3evm-boot-ramdisk.ttl
.
I have a process at work where I have Excel interact with WinSCP (which is putty-esque.). The way I have it done is I have Excel generate a text file in WinSCP's 'scripting language' and then execute a shell command to call WinSCP and execute my previously generated script file.
__common.ttl[edit]
- Tera Term Macro
- file __common.ttl
- desc Common definitions used across the macros.
- HISTORY
- 2007-11-30 Sanjeev Premi
- Original Version
- DEFINITIONS
- Current Date
getdate CurDate
- Current Time
gettime CurTime
- Title of the Tera Term Window
StrWindowTitle = 'OMAP35x EVM'
- Boot methods
Boot_RAMDISK = 'RAMDISK'Boot_NFS = 'NFS'
- Is Lauterbach used for debug?
UseLauterbach = 0
- Caption prefix
StrCaption = ':::::::::::::::::::::::::::::::::::::::: '
- Dividers
StrEmpty = #13#10StrDivider_1 = '#13#10StrDivider_2 = '-----------------------------------------------------'#13#10StrDivider_3 = '...........................'#13#10
- Set position of status dialog box
setdlgpos 10 10
- Set window title
settitle StrWindowTitle
__uboot-config-common.ttl[edit]
- Tera Term Macro
- file __uboot-config-common.ttl
- desc Common u-boot related definitions
- HISTORY
- 2007-11-30 Sanjeev Premi
- Original Version
- DEFINITIONS
- The u-boot message to stop autoboot.
MsgAutoboot = 'Hit any key to stop autoboot:'
- The u-boot prompt
PromptUboot = 'OMAP3EVM #'
- EXECUTION
- Disable autoload
wait PromptUbootsendln 'setenv autoload no'
__uboot-config-network.ttl[edit]
This file uses dummy values for various macros. They need to be defined with correct values for your platform.
- Tera Term Macro
- file __uboot-config-network.ttl
- desc Configure the u-boot network settings.
- HISTORY
- 2007-11-30 Sanjeev Premi
- Original Version
- DEFINITIONS
- Ethernet on EVM
VarMacAddr = 'A1:B1:C1:E1:D1:E1'VarGatewayIP = '192.168.1.1'VarNetMask = '255.255.255.0'
- Server running the TFT Server
VarServerIP = '192.168.1.2'
- Get IP address from DHCP server
CmdDHCP = 'dhcp'
- EXECUTION
- Setup Network
wait PromptUbootsendln 'setenv ethaddr ' VarMacAddr
wait PromptUbootsendln 'setenv gatewayip ' VarGatewayIP
wait PromptUbootsendln 'setenv netmask ' VarNetMask
- Set the IP address of the TFTP Server
wait PromptUbootsendln 'setenv serverip ' VarServerIP
- Get an IP Address
wait PromptUbootsendln CmdDHCP
- Set the IP address of the TFTP Server again.
- (Required on some networks)
wait PromptUbootsendln 'setenv serverip ' VarServerIP
__uboot-load-kernel.ttl[edit]
- Tera Term Macro
- file __uboot-load-kernel.ttl
- desc Steps to boot the Linux kernel.
- HISTORY
- 2007-11-30 Sanjeev Premi
- Original Version
- DEFINITIONS
- Name of the boot file
BootFile = 'uImage'
- Boot arguments
BootArgs_RAMDISK = 'console=ttyS0,115200n8 mem=128M root=/dev/ram0 rw initrd=0x81600000,16M ip=dhcp'BootArgs_NFS = 'console=ttyS0,115200n8 mem=128M root=/dev/nfs noinitrd nfsroot=192.168.1.10:/home/user/remote/098,nolock,rsize=1024,wsize=1024 ip=dhcp'
- Boot commands
CmdLoadRamDisk = 'tftpboot 0x81600000 kernel/ramdisk.gz'CmdLoadUimage = 'tftpboot 0x80000000 kernel/uImage'CmdBootm = 'bootm 0x80000000'
- EXECUTION
- General configuration
wait PromptUbootsendln 'setenv bootfile ' BootFile
- Set boot arguments
wait PromptUboot
strcompare VarBootMethod Boot_RAMDISKif result=0 then
endif
strcompare VarBootMethod Boot_NFSif result=0 then
endif
- Print current environment (Just for the record)
wait PromptUbootsendln 'printenv'
- Load RamDisk Image
strcompare VarBootMethod Boot_RAMDISKif result=0 then
endif
- Load uImage
wait PromptUbootsendln CmdLoadUimage
- Boot Linux
wait PromptUbootif UseLauterbach=0 then
elseif UseLauterbach=1 then
endif
__kernel-common.ttl[edit]
- Tera Term Macro
- file __kernel-common.ttl
- desc Common kernel related definitions & commands.
- HISTORY
- 2007-11-30 Sanjeev Premi
- Original Version
- DEFINITIONS
- The Linux kernel prompt
PromptLinux = '[root@OMAP3EVM /]# '
- Clear screen
CmdClear = 'clear'
__kernel-power.ttl[edit]
- Tera Term Macro
- file __kernel-power.ttl
- desc Common power related definitions and commands.
- HISTORY
- 2008-04-25 Sanjeev Premi
- Original Version
- DEFINITIONS
- Set LCD timeout to 2 secs
CmdFbTimeout = 'echo 2 > /sys/power/fb_timeout_value'
- Different pause durations used in testing
PauseLog = 2PauseNormal = 30PauseSuspendBefore = 5PauseSuspendAfter = 10
- Strings indicating sleep duration
StrSleepNormal = 'Wait for 30 secs'#13#10StrSleepBeforeSuspend = 'Wait for 5 secs'#13#10StrSleepAfterSuspend = 'Wait for 60 secs'#13#10
- Strings indicating actions performed
StrSuspend = 'Attempt Suspend'#13#10StrResume = 'Attempt Resume (send key click)'#13#10
StrViewPowerStates = 'View previous power states'#13#10StrViewDeepestIdleState = 'View the deepest IDLE state'#13#10
StrViewGovernor = 'View current governor'#13#10
StrViewVDD1 = 'View VDD1 OPP'#13#10StrViewVDD2 = 'View VDD2 OPP'#13#10
StrViewClock_MPU_IVA = 'View MPU & IVA clocks'#13#10StrViewClock_VirtVDD = 'View virtual VDD clocks'#13#10
- ----------------------------------------------------------------------------
- CPUIDLE
- ----------------------------------------------------------------------------
- Set deepest IDLE state
CmdShowPowerStates = 'cat /proc/pm_prepwst'
- Show current deepest IDLE state
CmdShowDeepestIdleState = 'cat /sys/power/cpuidle_deepest_state'
- Show status of OMAP clocks
CmdShowClocks = 'cat /proc/omap_clocks'
- Set deepest IDLE state
CmdSetDeepestIdleState_0 = 'echo '0' > /sys/power/cpuidle_deepest_state'CmdSetDeepestIdleState_1 = 'echo '1' > /sys/power/cpuidle_deepest_state'CmdSetDeepestIdleState_2 = 'echo '2' > /sys/power/cpuidle_deepest_state'CmdSetDeepestIdleState_3 = 'echo '3' > /sys/power/cpuidle_deepest_state'CmdSetDeepestIdleState_4 = 'echo '4' > /sys/power/cpuidle_deepest_state'CmdSetDeepestIdleState_5 = 'echo '5' > /sys/power/cpuidle_deepest_state'CmdSetDeepestIdleState_6 = 'echo '6' > /sys/power/cpuidle_deepest_state'
- Put system to 'suspend' state
CmdSuspend = 'echo -n 'mem' > /sys/power/state'
- ----------------------------------------------------------------------------
- CPUFREQ
- ----------------------------------------------------------------------------
- OMAP Clocks
CmdShowAllClocks = 'cat /proc/omap_clocks'CmdShowClock_MPU = 'cat /proc/omap_clocks | grep mpu'CmdShowClock_IVA = 'cat /proc/omap_clocks | grep iva'CmdShowClock_VDDs = 'cat /proc/omap_clocks | grep virt'
- Governor related
CmdShowGovernor = 'cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor'
CmdSetGovernor_Ondemand = 'echo 'ondemand' > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor'CmdSetGovernor_Performance = 'echo 'performance' > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor'
- Set OPPs for VDD1
CmdSetVDD1_1 = 'echo '1' > /sys/power/vdd1_opp_value'CmdSetVDD1_2 = 'echo '2' > /sys/power/vdd1_opp_value'CmdSetVDD1_3 = 'echo '3' > /sys/power/vdd1_opp_value'CmdSetVDD1_4 = 'echo '4' > /sys/power/vdd1_opp_value'CmdSetVDD1_5 = 'echo '5' > /sys/power/vdd1_opp_value'
CmdShowVdd1 = 'cat /sys/power/vdd1_opp_value'
- Set OPPs for VDD2
CmdSetVDD2_1 = 'echo '1' > /sys/power/vdd2_opp_value'CmdSetVDD2_2 = 'echo '2' > /sys/power/vdd2_opp_value'
CmdShowVdd2 = 'cat /sys/power/vdd2_opp_value'
__test-cpuidle.ttl[edit]
- Tera Term Macro
- file __test-cpuidle.ttl
- desc Unit tests for 'cpuidle' framework.
- HISTORY
- 2008-04-25 Sanjeev Premi
- Original Version
include '__common.ttl'
- DEFINITIONS
- Testcase title
StrDescription = 'UNIT TEST CASES FOR CPUIDLE'#13#10
- Strings indicating deepest idle state
StrDeepestIdleState_0 = 'Deepest Idle State = 0'#13#10StrDeepestIdleState_1 = 'Deepest Idle State = 1'#13#10StrDeepestIdleState_2 = 'Deepest Idle State = 2'#13#10StrDeepestIdleState_3 = 'Deepest Idle State = 3'#13#10StrDeepestIdleState_4 = 'Deepest Idle State = 4'#13#10StrDeepestIdleState_5 = 'Deepest Idle State = 5'#13#10StrDeepestIdleState_6 = 'Deepest Idle State = 6'#13#10StrDeepestIdleState_9 = 'Deepest Idle State = 9 (Incorrect)'#13#10
- Commands for negative testing
CmdSetDeepestIdleState_9 = 'echo '9' > /sys/power/cpuidle_deepest_state'
- EXECUTION
wait PromptLinux
sendln CmdFbTimeoutwait PromptLinux
sendlnwait PromptLinux
- Open log file
logopen 'test-cpuidle.log' 0 0logstart
logwrite StrEmpty
logwrite StrCaptionlogwrite CurDatelogwrite StrEmpty
logwrite StrCaptionlogwrite CurTimelogwrite StrEmpty
pause PauseLogsendlnwait PromptLinux
- C0
StrStateCaption = StrDeepestIdleState_0CmdDeepestIdleState = CmdSetDeepestIdleState_0
call ExecIdleTest
- C1
StrStateCaption = StrDeepestIdleState_1CmdDeepestIdleState = CmdSetDeepestIdleState_1
call ExecIdleTest
- C2
StrStateCaption = StrDeepestIdleState_2CmdDeepestIdleState = CmdSetDeepestIdleState_2
call ExecIdleTest
- C3
StrStateCaption = StrDeepestIdleState_3CmdDeepestIdleState = CmdSetDeepestIdleState_3
call ExecIdleTest
- C4
Oldboy movie download with english subtitles. StrStateCaption = StrDeepestIdleState_4CmdDeepestIdleState = CmdSetDeepestIdleState_4
call ExecIdleTest
- C5
StrStateCaption = StrDeepestIdleState_5CmdDeepestIdleState = CmdSetDeepestIdleState_5
call ExecIdleTest
- C6
StrStateCaption = StrDeepestIdleState_6CmdDeepestIdleState = CmdSetDeepestIdleState_6
call ExecIdleTest
- C9
StrStateCaption = StrDeepestIdleState_9CmdDeepestIdleState = CmdSetDeepestIdleState_9
call ExecIdleTest_N
- Return to C2
sendlnsendlnwait PromptLinux
sendlnsendln CmdSetDeepestIdleState_2wait PromptLinux
- ----------------------------------------------------------------------------
- Close log file
- ----------------------------------------------------------------------------
sendlnwait PromptLinux
pause PauseNormallogclose
exit
- SUBROUTINES
- ExecIdleTest
- Execute the CPUIDLE Tests
msgStatus =
- State caption
strconcat msgstatus StrStateCaptionstatusbox msgstatus TitleWindow
logwrite StrEmptylogwrite StrDivider_2logwrite StrStateCaptionlogwrite StrDivider_2
pause PauseLog
- Set deepest idle state
- (Additional 'newlines' sent just in case first is missed in deeper C states)
sendlnsendlnwait PromptLinuxsendlnsendln CmdDeepestIdleStatewait PromptLinux
pause PauseLog
- View previous power states
logwrite StrEmptylogwrite StrCaptionlogwrite StrViewPowerStateslogwrite StrEmpty
pause PauseLog
strconcat msgstatus StrViewPowerStatesstatusbox msgstatus TitleWindow
sendlnsendlnwait PromptLinuxsendlnsendln CmdShowPowerStateswait PromptLinux
pause PauseLog
- Wait for 'PauseNormal'
- (Additional 'newline' sent just in case first is missed in deeper C states)
strconcat msgstatus StrSleepNormalstatusbox msgstatus TitleWindow
logwrite StrEmptylogwrite StrCaptionlogwrite StrSleepNormallogwrite StrEmpty
pause PauseNormal
sendlnsendlnwait PromptLinux
pause PauseLog
- View previous power states (again)
- (Additional 'newline' sent just in case first is missed in deeper C states)
strconcat msgstatus StrViewPowerStatesstatusbox msgstatus TitleWindow
logwrite StrEmptylogwrite StrCaptionlogwrite StrViewPowerStateslogwrite StrEmpty
pause PauseLog
sendlnsendlnwait PromptLinuxsendlnsendln CmdShowPowerStateswait PromptLinux
pause PauseLog
- Wait for 'PauseSuspendBefore'
- (Additional 'newline' sent just in case first is missed in deeper C states)
strconcat msgstatus StrSleepBeforeSuspendstatusbox msgstatus TitleWindow
logwrite StrEmptylogwrite StrCaptionlogwrite StrSleepBeforeSuspendlogwrite StrEmpty
pause PauseSuspendBefore
sendlnsendlnwait PromptLinux
pause PauseLog
- Suspend
strconcat msgstatus StrSuspendstatusbox msgstatus TitleWindow
logwrite StrEmptylogwrite StrCaptionlogwrite StrSuspendlogwrite StrEmpty
pause PauseLog
sendlnsendlnwait PromptLinuxsendlnsendln CmdSuspend
- Wait for 'PauseSuspendAfter'
strconcat msgstatus StrSleepAfterSuspendstatusbox msgstatus TitleWindow
logwrite StrEmptylogwrite StrCaptionlogwrite StrSleepAfterSuspendlogwrite StrEmpty
pause PauseSuspendAfter
- Resume
strconcat msgstatus StrResumestatusbox msgstatus TitleWindow
logwrite StrEmptylogwrite StrCaptionlogwrite StrResumelogwrite StrEmpty
sendlnwait PromptLinux
flushrecv
pause PauseLog
closesbox
return
- SUBROUTINE
- Execute the CPUIDLE Tests (Negative)
- ExecIdleTest_N
msgStatus =
- State caption
strconcat msgstatus StrStateCaptionstatusbox msgstatus TitleWindow
logwrite StrEmptylogwrite StrDivider_2logwrite StrStateCaptionlogwrite StrDivider_2
pause PauseLog
- Set deepest idle state
- (Additional 'newline' sent just in case first is missed in deeper C states)
sendlnsendlnwait PromptLinuxsendlnsendln CmdDeepestIdleStatewait PromptLinux
flushrecv
pause PauseLog
closesbox
return
__test-cpufreq.ttl[edit]
- Tera Term Macro
- file __test-cpufreq.ttl
- desc Unit tests for 'cpufreq' framework.
- HISTORY
- 2008-04-25 Sanjeev Premi
- Original Version
include '__common.ttl'
- DEFINITIONS
- Testcase title
StrDescription = 'UNIT TEST CASES FOR CPUFREQ'#13#10
- Strings related to governors
StrGovernorOndemand = 'Set ONDEMAND Governor'#13#10StrGovernorPerformance = 'Set PERFORMANCE Governor'#13#10
- Strings indicating OPPs
StrOppVdd1_1 = 'VDD1 OPP = 1'#13#10StrOppVdd1_2 = 'VDD1 OPP = 2'#13#10StrOppVdd1_3 = 'VDD1 OPP = 3'#13#10StrOppVdd1_4 = 'VDD1 OPP = 4'#13#10StrOppVdd1_5 = 'VDD1 OPP = 5'#13#10
StrOppVdd1_6 = 'VDD1 OPP = 6 (Incorrect)'#13#10
StrOppVdd2_1 = 'VDD2 OPP = 1'#13#10StrOppVdd2_2 = 'VDD2 OPP = 2'#13#10StrOppVdd2_3 = 'VDD2 OPP = 3'#13#10
StrOppVdd2_4 = 'VDD2 OPP = 4 (Incorrect)'#13#10
- Commands for negative testing
CmdSetVDD1_6 = 'echo '6' > /sys/power/vdd1_opp_value'CmdSetVDD2_4 = 'echo '4' > /sys/power/vdd2_opp_value'
- EXECUTION
wait PromptLinux
sendln CmdFbTimeoutwait PromptLinux
sendln CmdClearwait PromptLinux
sendlnwait PromptLinux
- Open log file
logopen 'test-cpufreq.log' 0 0logstart
logwrite StrEmpty
Putty Macro Script Pastebin
logwrite StrCaptionlogwrite CurDatelogwrite StrEmpty
logwrite StrCaptionlogwrite CurTimelogwrite StrEmpty
pause PauseLogsendln
- Show current governor & switch to 'ondemand' governor
StrStateCaption = StrOppVdd1_1CmdSetVDD1 = CmdSetVDD1_1
call ExecGovernors
- VDD1 - OPP1
StrStateCaption = StrOppVdd1_1CmdSetVDD1 = CmdSetVDD1_1
call ExecFreqTest
- VDD1 - OPP2
StrStateCaption = StrOppVdd1_2CmdSetVDD1 = CmdSetVDD1_2
call ExecFreqTest
- VDD1 - OPP3
StrStateCaption = StrOppVdd1_3CmdSetVDD1 = CmdSetVDD1_3
call ExecFreqTest
- VDD1 - OPP5
- (Do this early so we don't keep MPU in overdrive for long during negative
- tests).
StrStateCaption = StrOppVdd1_5CmdSetVDD1 = CmdSetVDD1_5
call ExecFreqTest
- VDD1 - OPP4
StrStateCaption = StrOppVdd1_4CmdSetVDD1 = CmdSetVDD1_4
call ExecFreqTest
- VDD1 - OPP6 (Negative)
StrStateCaption = StrOppVdd1_6CmdSetVDD1 = CmdSetVDD1_6
call ExecFreqTest_N
- VDD2 - OPP1
StrStateCaption = StrOppVdd2_1CmdSetVDD2 = CmdSetVDD2_1
call ExecFreqTest2
- VDD1 - OPP2
StrStateCaption = StrOppVdd2_2CmdSetVDD2 = CmdSetVDD2_2
call ExecFreqTest2
- VDD1 - OPP3
StrStateCaption = StrOppVdd2_3CmdSetVDD2 = CmdSetVDD2_3
call ExecFreqTest2
- ----------------------------------------------------------------------------
- Close log file
- ----------------------------------------------------------------------------
sendlnwait PromptLinux
pause PauseNormallogclose
exit
- SUBROUTINES
- ExecGovernors
- Execute the CPUFREQ Tests
msgStatus =
- State caption
strconcat msgstatus StrStateCaptionstatusbox msgstatus TitleWindow
logwrite StrEmptylogwrite StrDivider_2logwrite StrStateCaptionlogwrite StrDivider_2
pause PauseLogsendlnwait PromptLinux
- Show current governor
strconcat msgstatus StrViewGovernorstatusbox msgstatus TitleWindow
logwrite StrEmptylogwrite StrCaptionlogwrite StrViewGovernorlogwrite StrEmpty
sendln CmdShowGovernorwait PromptLinux
pause PauseLog
- Set 'ondemand' governor
strconcat msgstatus StrGovernorOndemandstatusbox msgstatus TitleWindow
logwrite StrEmptylogwrite StrCaptionlogwrite StrGovernorOndemandlogwrite StrEmpty
pause PauseLog
sendln CmdSetGovernor_Ondemandwait PromptLinux
- View virtual VDD clocks
logwrite StrEmptylogwrite StrCaptionlogwrite StrViewClock_VirtVDDlogwrite StrEmpty
pause PauseLog
sendlnwait PromptLinux
wait PromptLinuxsendln CmdShowClock_VDDs
pause PauseLog
- View current MPU & IVA clocks
logwrite StrEmptylogwrite StrCaptionlogwrite StrViewClock_MPU_IVAlogwrite StrEmpty
pause PauseLog
sendlnwait PromptLinux
wait PromptLinuxsendln CmdShowClock_MPU
pause PauseLog
sendlnwait PromptLinux
sendln CmdShowClock_IVAwait PromptLinux
pause PauseLog
closesbox
return
- ExecFreqTest
- Execute the CPUFREQ Tests
msgStatus =
- State caption
strconcat msgstatus StrStateCaptionstatusbox msgstatus TitleWindow
logwrite StrEmptylogwrite StrDivider_2logwrite StrStateCaptionlogwrite StrDivider_2
pause PauseLog
- Set VDD1 OPP
sendlnwait PromptLinux
sendln CmdSetVDD1wait PromptLinux
pause PauseLog
- View current VDD1 OPP
logwrite StrEmptylogwrite StrCaptionlogwrite StrViewVDD1logwrite StrEmpty
pause PauseLog
sendlnwait PromptLinux
wait PromptLinuxsendln CmdShowVdd1
pause PauseLog
- View current VDD2 OPP
logwrite StrEmptylogwrite StrCaptionlogwrite StrViewVDD2logwrite StrEmpty
pause PauseLog
sendlnwait PromptLinux
wait PromptLinuxsendln CmdShowVdd2
pause PauseLog
- View virtual VDD clocks
logwrite StrEmptylogwrite StrCaptionlogwrite StrViewClock_VirtVDDlogwrite StrEmpty
pause PauseLog
sendlnwait PromptLinux
wait PromptLinuxsendln CmdShowClock_VDDs
pause PauseLog
- View current MPU & IVA clocks
logwrite StrEmptylogwrite StrCaptionlogwrite StrViewClock_MPU_IVAlogwrite StrEmpty
pause PauseLog
sendlnwait PromptLinux
wait PromptLinuxsendln CmdShowClock_MPU
pause PauseLog
sendlnwait PromptLinux
sendln CmdShowClock_IVAwait PromptLinux
pause PauseLog
- Wait for 'PauseSuspendBefore'
strconcat msgstatus StrSleepBeforeSuspendstatusbox msgstatus TitleWindow
logwrite StrEmptylogwrite StrCaptionlogwrite StrSleepBeforeSuspendlogwrite StrEmpty
pause PauseSuspendBefore
sendlnwait PromptLinux
pause PauseLog
- Suspend
strconcat msgstatus StrSuspendstatusbox msgstatus TitleWindow
logwrite StrEmptylogwrite StrCaptionlogwrite StrSuspendlogwrite StrEmpty
pause PauseLog
sendlnsendln CmdSuspend
- Wait for 'PauseSuspendAfter'
strconcat msgstatus StrSleepAfterSuspendstatusbox msgstatus TitleWindow
logwrite StrEmptylogwrite StrCaptionlogwrite StrSleepAfterSuspendlogwrite StrEmpty
pause PauseSuspendAfter
- Resume
strconcat msgstatus StrResumestatusbox msgstatus TitleWindow
logwrite StrEmptylogwrite StrCaptionlogwrite StrResumelogwrite StrEmpty
sendlnwait PromptLinux
flushrecv
pause PauseLog
closesbox
return
- ExecFreqTest2
- Execute the CPUFREQ Tests (VDD2)
msgStatus =
- State caption
strconcat msgstatus StrStateCaptionstatusbox msgstatus TitleWindow
logwrite StrEmptylogwrite StrDivider_2logwrite StrStateCaptionlogwrite StrDivider_2
pause PauseLog
- Set VDD2 OPP
sendlnwait PromptLinux
sendln CmdSetVDD2wait PromptLinux
pause PauseLog
- View current VDD1 OPP
logwrite StrEmptylogwrite StrCaptionlogwrite StrViewVDD1logwrite StrEmpty
pause PauseLog
sendlnwait PromptLinux
wait PromptLinuxsendln CmdShowVdd1
pause PauseLog
- View current VDD2 OPP
logwrite StrEmptylogwrite StrCaptionlogwrite StrViewVDD2logwrite StrEmpty
pause PauseLog
sendlnwait PromptLinux
wait PromptLinuxsendln CmdShowVdd2
pause PauseLog
sendlnwait PromptLinux
flushrecv
pause PauseLog
closesbox
return
- SUBROUTINE
- Execute the CPUFREQ Tests (Negative)
- ExecFreqTest_N
msgStatus =
- State caption
strconcat msgstatus StrStateCaptionstatusbox msgstatus TitleWindow
logwrite StrEmptylogwrite StrDivider_2logwrite StrStateCaptionlogwrite StrDivider_2
pause PauseLog
- Set VDD1 OPP
sendlnwait PromptLinux
sendln CmdSetVDD1wait PromptLinux
flushrecv
pause PauseLog
closesbox
return
omap3evm-flash-uboot.ttl[edit]
omap3evm-boot-ramdisk.ttl[edit]
- Tera Term Macro
- file omap3evm-boot-ramdisk.ttl
- desc Steps to boot the Linux kernel using ramdisk on the OMAP3EVM.
- HISTORY
- 2007-11-30 Sanjeev Premi
- Original Version
include '__common.ttl'
VarBootMethod = Boot_RAMDISK
include '__uboot-config-common.ttl'include '__uboot-config-network.ttl'include '__uboot-load-kernel.ttl'
include '__kernel-common.ttl'include '__kernel-boot.ttl'
omap3evm-boot-nfs.ttl[edit]
- Tera Term Macro
- file omap3evm-boot-nfs.ttl
- desc Steps to boot the Linux kernel using NFS on the OMAP3EVM.
- HISTORY
- 2007-11-30 Sanjeev Premi
- Original Version
include '__common.ttl'
VarBootMethod = Boot_NFS
include '__uboot-config-common.ttl'include '__uboot-config-network.ttl'include '__uboot-load-kernel.ttl'
include '__kernel-common.ttl'include '__kernel-boot.ttl'
omap3evm-test-power.ttl[edit]
- Tera Term Macro
- file omap3evm-test-power.ttl
- desc Steps to execute Power Management test cases on the OMAP3EVM.
- HISTORY
- 2008-04-25 Sanjeev Premi
- Original Version
include '__common.ttl'
include '__kernel-common.ttl'
include '__kernel-power.ttl'
include '__test-cpuidle.ttl'include '__test-cpufreq.ttl'
beeppause 1beeppause 1beep
What about DaVinci TeraTerm Scripts?[edit]
Below are a few simple scripts used to boot a DaVinci EVM - obviously you'll need to modify your IP address, kernel name and rootpath appropriately. These examples should serve as a good starting point if you want to create your own scripts.
To run the scripts, simply hit any key during the U-boot countdown to get to the U-boot prompt. Then run 'Macro->Control' and browse to the *.ttl.
DM6446: Crossover Script[edit]
When you don't have a switch/router and need to boot your EVM using TFTP/NFS, you can directly connect your EVM to your laptop with a crossover cable. Here, the Linux host's IP address is set to 192.168.1.100 (modify as needed). To manually set the Linux host's IP address:
- host$ su - Login as root
- host# setup - Setup your network
- Browse to Network Configuration, then choose 'Yes' (to Setup Network)
- Uncheck 'Use dynamic IP configuration' using the spacebar (if needed)
- Tab to 'IP address:' and type 192.168.1.100 and tab (using default values for Netmask, Gateway and Nameserver) to 'OK' and hit Enter. Save your settings when prompted.
- host# /etc/init.d/network restart - Restart your network
- host# ipconfig - Verify that your IP address has been set to 192.168.1.100
Also, note the $(videoargs) setting below (setup for DVSDK 1.30)--if you are using an older DVSDK, simply remove $(videoargs) from the bootargs.
- Tera Term Macro
- file dm6446_crossover.ttl
- comments rename serverip, rootpath and bootfile
showtt 0setsync 1
sendln 'setenv serverip 192.168.1.100'waitrecv '#' 1 0
sendln 'setenv ipaddr 192.168.1.101'waitrecv '#' 1 0
sendln 'setenv nfshost $(serverip)'waitrecv '#' 1 0
sendln 'setenv rootpath /home/user/target'waitrecv '#' 1 0
sendln 'setenv videoargs video=davincifb:vid0=720x576x16,2500K:vid1=720x576x16,2500K:osd0=720x576x16,2025K davinci_enc_mngr.ch0_output=COMPOSITE davinci_enc_mngr.ch0_mode=ntsc'waitrecv '#' 1 0
sendln 'setenv bootargs $(videoargs) console=ttyS0,115200n8 noinitrd rw root=/dev/nfs nfsroot=$(nfshost):$(rootpath),nolock ip=$(ipaddr) mem=120M'waitrecv '#' 1 0
sendln 'tftpboot 0x80700000 uImage; bootm'waitrecv '#' 1 0 Note: The use of parenthesis for variable substitution is being deprecated for new U-boot releases - use curly braces {} instead. Check http://www.denx.de/wiki/view/DULG/CommandLineParsing
Are there any DM355 examples?[edit]
Below are 4 macros for each of the boot options on DM355 - TFTP/NAND for kernel and NAND/NFS for file system):
- Tera Term Macro
- file dm355_tftp_nfs.ttl
- comments rename the serverip, rootpath and bootfile
showtt 0setsync 1
sendln 'setenv serverip xxx.xxx.xxx.xxx'waitrecv '#' 1 0
sendln 'setenv nfshost $(serverip)'waitrecv '#' 1 0
sendln 'setenv rootpath /home/user/target'waitrecv '#' 1 0
sendln 'setenv videoargs video=dm355fb:vid0=720x480x16,2025K@0,0:vid1=720x480x16,2025K@0,0:osd0=720x480,1350K@0,0:osd1=720x480,1350K@0,0waitrecv '#' 1 0
sendln 'setenv bootargs $(videoargs) console=ttyS0,115200n8 root=/dev/nfs rw nfsroot=$(nfshost):$(rootpath) ip=dhcp mem=116M'waitrecv '#' 1 0
sendln 'setenv bootfile uImage'waitrecv '#' 1 0
sendln 'dhcp;bootm'waitrecv '#' 1 0 Note: The use of parenthesis for variable substitution is being deprecated for new U-boot releases - use curly braces {} instead. Check http://www.denx.de/wiki/view/DULG/CommandLineParsing
- Tera Term Macro
- file dm355_tftp_nand.ttl
- comments rename the serverip and bootfile
showtt 0setsync 1
sendln 'setenv serverip xxx.xxx.xxx.xxx'waitrecv '#' 1 0
sendln 'setenv videoargs video=dm355fb:vid0=720x480x16,2025K@0,0:vid1=720x480x16,2025K@0,0:osd0=720x480,1350K@0,0:osd1=720x480,1350K@0,0waitrecv '#' 1 0
sendln 'setenv bootargs $(videoargs) console=ttyS0,115200n8 root=/dev/mtdblock3 rw rootfstype=yaffs2 rw ip=dhcp mem=116M'waitrecv '#' 1 0
sendln 'setenv bootfile uImage'waitrecv '#' 1 0
sendln 'dhcp;bootm'waitrecv '#' 1 0 Note: The use of parenthesis for variable substitution is being deprecated for new U-boot releases - use curly braces {} instead. Check http://www.denx.de/wiki/view/DULG/CommandLineParsing
- Tera Term Macro
- file dm355_nand_nfs.ttl
- comments rename the serverip and rootpath
showtt 0setsync 1
sendln 'setenv serverip xxx.xxx.xxx.xxx'waitrecv '#' 1 0
sendln 'setenv nfshost $(serverip)'waitrecv '#' 1 0
sendln 'setenv rootpath /home/user/target'waitrecv '#' 1 0
sendln 'setenv videoargs video=dm355fb:vid0=720x480x16,2025K@0,0:vid1=720x480x16,2025K@0,0:osd0=720x480,1350K@0,0:osd1=720x480,1350K@0,0waitrecv '#' 1 0
sendln 'setenv bootargs $(videoargs) console=ttyS0,115200n8 root=/dev/nfs rw nfsroot=$(nfshost):$(rootpath) ip=dhcp mem=116M'waitrecv '#' 1 0
sendln 'nboot 0x80700000 0 0x400000;bootm'waitrecv '#' 1 0 Note: The use of parenthesis for variable substitution is being deprecated for new U-boot releases - use curly braces {} instead. Check http://www.denx.de/wiki/view/DULG/CommandLineParsing
- Tera Term Macro
- file dm355_nand_nand.ttl
showtt 0setsync 1
sendln 'setenv videoargs video=dm355fb:vid0=720x480x16,2025K@0,0:vid1=720x480x16,2025K@0,0:osd0=720x480,1350K@0,0:osd1=720x480,1350K@0,0waitrecv '#' 1 0
sendln 'setenv bootargs $(videoargs) console=ttyS0,115200n8 root=/dev/mtdblock3 rw rootfstype=yaffs2 rw ip=dhcp mem=116M'waitrecv '#' 1 0
sendln 'nboot 0x80700000 0 0x400000;bootm'waitrecv '#' 1 0 Note: The use of parenthesis for variable substitution is being deprecated for new U-boot releases - use curly braces {} instead. Check http://www.denx.de/wiki/view/DULG/CommandLineParsing
Are there any DM6467 examples?[edit]
Below is an example ttl script for users with a switch/router. To reiterate one of the advantages of using a ttl script is that you can share boards between team members without wrenching their boot settings.
This ttl script has been tested in the DVSDK 1.40 environment.
Naturally replace the serverip with whatever /sbin/ifconfig shows as your IP address.
showtt 0setsync 1
sendln 'setenv serverip 158.123.45.678'waitrecv '#' 1 0
sendln 'setenv nfshost $(serverip)'waitrecv '#' 1 0
sendln 'setenv ipaddr dhcp'waitrecv '#' 1 0
sendln 'setenv rootpath /home/user/workdir/filesys_dm6467'waitrecv '#' 1 0
sendln 'setenv bootargs console=ttyS0,115200n8 noinitrd rw root=/dev/nfs nfsroot=$(nfshost):$(rootpath),nolock ip=$(ipaddr) mem=120M davincihd_capture.channel0_numbuffers=4'waitrecv '#' 1 0
sendln 'setenv bootfile uImage.DM6467'waitrecv '#' 1 0
sendln 'dhcp;tftpboot;bootm'waitrecv '#' 1 0
Here is a DM6467T EVM Teraterm macro file for DVSDK 3.10. The macro provides the following options:
- Booting via static IP or DHCP address for EVM
- Loading kernel via TFTP or Flash
- Loading filesystem via NFS or HDD
- Macro for Tera Term
- DM6467T EVM - DVSDK v3.10
- Texas Instruments
- Authors
- Prateek Bansal, Scott Specker
- Uncomment below line if using from command line. Note '/C=1' indicates COM1!! For COM2 use '/C=2'
- connect '/C=1'
- showtt Show TeraTerm window when inputting commands
showtt 1
- Synchronous mode - wait for > before next command is sent
setsync 1
- Disable autoload TFTP when invoking dhcp command to get IP address
sendln 'setenv autoload no'waitrecv '>' 1 0
- Set boot file if booting kernel via TFTP
sendln 'setenv bootfile uImage'waitrecv '>' 1 0
- Video settings for DVSDK 3.10 for DM6467T EVM
sendln 'setenv videocfg vpif_display.ch2_numbuffers=0 vpif_display.ch3_numbuffers=0'waitrecv '>' 1 0
- static ip (You can chose to hardcode the static IP address)
Putty Macro Script Tutorial
sendln 'setenv ipaddr 192.168.1.111'waitrecv '>' 1 0sendln 'setenv gateway 192.168.1.1'waitrecv '>' 1 0sendln 'setenv netmask 255.255.255.0'waitrecv '>' 1 0sendln 'setenv static_ip $ipaddr:$gateway:$netmask::::off'waitrecv '>' 1 0
- Bootcmd parameters for booting kernel from Flash or via TFTP
sendln 'setenv bootcmd_flash nboot 80700000 0 640000;bootm'waitrecv '>' 1 0sendln 'setenv bootcmd_tftp tftp;bootm'waitrecv '>' 1 0
- Shared NFS directory path
defaultNFSpath='/home/user/workdir/filesys'msg = 'Use Default NFS Path Address: 'strconcat msg defaultNFSpathyesnobox msg 'DaVinci Setup'if result then sendln 'setenv nfspath /home/user/workdir/filesys' waitrecv '>' 1 0else inputbox 'Enter NFS Path:' 'DaVinci Setup'
sendln 'setenv nfspath ' inputstr waitrecv '>' 1 0reboorooendif
- Boot with Static IP address or DHCP configuration for DM6467 EVM
yesnobox 'Boot Static or Dynamic? [Yes=Static, No=Dynamic(dhcp)]' 'DaVinci Setup'if result then sendln 'setenv myip $static_ip' waitrecv '>' 1 0else sendln 'dhcp' waitrecv '>' 1 0 sendln 'setenv myip dhcp' waitrecv '>' 1 0endif
- TFTP Server and NFS host IP Address - for loading uImage and NFS directory
defaultServerip='192.168.1.102'msg = 'Use Default TFTP Server IP Address: 'strconcat msg defaultServeripyesnobox msg 'DaVinci Setup'if result then sendln 'setenv serverip ' defaultServerip waitrecv '>' 1 0else inputbox 'Enter Server IP Address:' 'DaVinci Setup' sendln 'setenv serverip ' inputstr waitrecv '>' 1 0endif
- Set NFS host address same as serverip
sendln 'setenv nfshost $serverip'waitrecv '>' 1 0
- Boot HDD or NFS filesystem
yesnobox 'Boot using Root from HDD or NFS? (Yes=HDD, No=NFS)' 'DaVinci Setup'if result then sendln 'setenv bootargs_hdd mem=76M console=ttyS0,115200n8 noinitrd ip=$myip root=/dev/hda1' waitrecv '>' 1 0 sendln 'setenv bootargs $bootargs_hdd $videocfg' waitrecv '>' 1 0else sendln 'setenv bootargs_nfs mem=76M console=ttyS0,115200n8 noinitrd rw ip=$myip root=/dev/nfs nfsroot=$nfshost:$nfspath,nolock' waitrecv '>' 1 0 sendln 'set bootargs $bootargs_nfs $videocfg' waitrecv '>' 1 0endif
- Boot kernel from Flash or via TFTP
yesnobox 'Boot Kernel from Flash or via TFTP? (Yes=Flash, No=TFTP)' 'DaVinci Setup'if result then sendln 'set bootcmd $bootcmd_flash' waitrecv '>' 1 0else sendln 'set bootcmd $bootcmd_tftp' waitrecv '>' 1 0endif
- Save environment variables
yesnobox 'Save uboot environment variables?' 'DaVinci Setup'if result then sendln 'saveenv' waitrecv '>' 1 0endif
- Boot linux or go to uboot prompt
yesnobox 'Boot Linux now?' 'DaVinci Setup'if result then
else setdlgpos 200 200 msg='Use the 'boot' command when you want to boot the DVEVM' ;statusbox 'Message' 'Title' statusbox msg 'Boot later..' pause 2 closesboxendif
showtt 1
Note: The use of parenthesis for variable substitution is being deprecated for new U-boot releases - use curly braces {} instead. Check http://www.denx.de/wiki/view/DULG/CommandLineParsing
What about OMAP-L1 TeraTerm Scripts?[edit]
Are there any OMAPL137 examples?[edit]
Below is an example ttl script for users with a switch/router and NFS server. To reiterate one of the advantages of using a ttl script is that you can share boards between team members without wrenching their boot settings.
This ttl script has been tested in the SDK 1.00.00.10 environment and all directories and filenames match the default installation procedure as listed in the Installing the Software for OMAP-L137
Note: for OMAPL137 you must set the delay as mentioned in the What is a TeraTerm INI? section
- Replace the serverip with whatever /sbin/ifconfig shows as your IP address.
- Replace the useracct with the name you use to login to your Linux PC.
- Keep the VT window open while executing macro
showtt 1
- Set the synchronous mode
setsync 1
- Set the title to make easier identification between boards
settitle 'OMAPL137'
- set tftp server ip address
sendln 'setenv serverip 192.168.1.89' ;CHANGE 192.168.1.89 TO MATCH YOUR CONFIGURATION!!!
- set nfs server ip address
sendln 'setenv nfshost ${serverip}'
- set nfs rootpath
sendln 'setenv rootpath /home//workdir/filesys' ;CHANGE TO MATCH YOUR CONFIGURATION!!!
- set kernel command line argument
sendln 'setenv bootargs console=ttyS2,115200n8 noinitrd rw ip=dhcp root=/dev/nfs nfsroot=${nfshost}:${rootpath},nolock mem=32M'
- choose kernel image file name
sendln 'setenv bootfile uImage'
- obtain the IP via dhcp server and boot the board!
sendln 'dhcp;bootm'
- end of macro file
The script below works with an USB pendrive that should meet the requirements below. Check the and this topic for additional details.
- U-boot must be rebuilt with USB support enabled.
- The 2GB USB pendrive must be connected to USB0 only and contain two partitions:
- the first partition must be of type FAT16 or FAT32 and contains the uImage (Linux Kernel) file in the root directory
- the second partition must be of type ext2 or ext3 and contains the target filesystem (the same contents of /home//workdir/filesys)
- Keep the VT window open while executing macro
showtt 1
- Set the synchronous mode
setsync 1
- needed because of the slower operations usb start and fatload
PromptUboot = 'U-Boot > '
- Set the title to make easier identification between boards
settitle 'OMAPL137'
- check if USB is alive and which devices are on
sendln 'usb start'wait PromptUboot
- load the kernel image to memory
sendln 'fatload usb 0:1 0xC0700000 uimage'wait PromptUboot
- set kernel command line argument
sendln 'setenv bootargs console=ttyS2,115200n8 noinitrd rw ip=dhcp root=/dev/sda2 rootfstype=ext2 mem=32M' ;USB BOOT
- choose kernel image file name
sendln 'setenv bootfile uImage'
- boot the board!
sendln 'bootm'
- end of macro file
Note: The command usb start sometimes hangs on the message scanning bus for storage devices... If this happens to you, stop the macro from executing, reset the board and reload the script file.
The script below works with a linux kernel in SPI and a MMC/SD card that contains the root filesystem
- The SPI Flash should be pre-loaded with a linux kernel located at address 0x1e0000 (Primus U-boot is not able to initialize and load a kernel from the SD card). The production boards will have the kernel preloaded. For additional details on how to do this, please check this topic and section 5.4.2 of the
- The last parameter of the sf read command must be equal or greater than the size of the linux kernel image.
- Keep the VT window open while executing macro
showtt 1
- Set the synchronous mode
setsync 1
- Set the title to make easier identification between boards
settitle 'OMAPL137'
- needed because of the slower SPI Flash operations
PromptUboot = 'U-Boot > '
- set kernel command line argument
sendln 'setenv bootargs console=ttyS2,115200n8 noinitrd rw ip=dhcp root=/dev/mmcblk0p1 rootfstype=ext2 mem=32M' ;MMC/SD BOOT
- select the SPI Flash memory
sendln 'sf probe 0'wait PromptUboot
- load kernel image to RAM address 0xc0700000..
sendln 'sf read 0xc0700000 0x1e0000 0x220000'wait PromptUboot
- ..and boot the board!
sendln 'bootm'
- end of macro file
Are there any OMAPL138 examples?[edit]
Below is an example ttl script for users with a switch/router and NFS server. To reiterate one of the advantages of using a ttl script is that you can share boards between team members without wrenching their boot settings.
This ttl script has been tested in the SDK 1.00.00.08 environment and all directories and filenames match the default installation procedure as listed in the GSG: Installing the Software for OMAP-L1
- Keep the VT window open while executing macro
showtt 1
- Set the synchronous mode
setsync 1
- Set the title to make easier identification between boards
settitle 'OMAPL138'
- The timeout between lines is 1 second
- timeout = 1
- set tftp server ip address
sendln 'setenv serverip 192.168.1.89' ;CHANGE 192.168.1.89 TO MATCH YOUR CONFIGURATION!!!
- set nfs server ip address
sendln 'setenv nfshost ${serverip}'
- set nfs rootpath
sendln 'setenv rootpath /home//workdir/filesys' ;CHANGE TO MATCH YOUR CONFIGURATION!!!
- set kernel command line argument
sendln 'setenv bootargs console=ttyS2,115200n8 noinitrd rw ip=dhcp root=/dev/nfs nfsroot=${nfshost}:${rootpath},nolock mem=32M'
- choose kernel image file name
sendln 'setenv bootfile uImage'
- obtain the IP via dhcp server and boot the board!
sendln 'dhcp;bootm'
- end of macro file
What about using a DLP Pico Projector?[edit]
Beagle example[edit]
- Tera Term script for using DLP Pico Projector as display on Beagle
- File system on partition 2 of SD card - you may need to modify the DSS based on your kernel
- The first bootargs are for 2.6.28, and second set for 2.6.29
setsync 1
sendln 'mmcinit'waitrecv '#' 1 0
sendln 'setenv bootargs console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootwait omap-dss.def_disp=dvi omapfb.video_mode=640x480MR-16@60 omapfb.vram=4M,4M,4M mem=80M'
- sendln 'setenv bootargs console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootwait omapdss.def_disp=dvi omapfb.mode=dvi
- 640x480MR-16@60 omapfb.vram=0:4M,1:4M,2:4M mem=80M'
waitrecv '#' 1 0
sendln 'setenv bootcmd mmcinit;fatload mmc 0 80300000 uImage;bootm 80300000'waitrecv '#' 1 0
What is a TeraTerm INI?[edit]
When TeraTerm starts, it runs TERATERM.INI to setup the console. Once you have set your serial terminal to the correct baude rate (via 'Setup->Serial') on COM1 (via 'Setup->General->Default Port'), you can save the setup via 'Setup->Save Setup.' Save this setup in the TeraTerm Installation directory by overwriting TERATERM.INI. Now your TeraTerm will be setup correctly every time you start it.
To run the above scripts, you may need to add a line delay of 100ms (otherwise the lines can become concatenated) by setting the Transmit delay to 100 ms/line (via 'Setup->Serial'). You'll probably want to save this modification in TERATERM.INI to avoid having to modify it every time you start TeraTerm.
{{
Please post only comments related to the article Teraterm Scripts here. | Keystone=
Please post only comments related to the article Teraterm Scripts here. | C2000=For technical support on the C2000 please post your questions on The C2000 Forum. Please post only comments about the article Teraterm Scripts here. | DaVinci=For technical support on DaVincoplease post your questions on The DaVinci Forum. Please post only comments about the article Teraterm Scripts here. | MSP430=For technical support on MSP430 please post your questions on The MSP430 Forum. Please post only comments about the article Teraterm Scripts here. | OMAP35x=For technical support on OMAP please post your questions on The OMAP Forum. Please post only comments about the article Teraterm Scripts here. | OMAPL1=For technical support on OMAP please post your questions on The OMAP Forum. Please post only comments about the article Teraterm Scripts here. | MAVRK=For technical support on MAVRK please post your questions on The MAVRK Toolbox Forum. Please post only comments about the article Teraterm Scripts here. | For technical support please post your questions at http://e2e.ti.com. Please post only comments about the article Teraterm Scripts here. }} |
Links | |||
|
Previous | Contents | Index | Next
- Chapter 7: Using the command-line connection tool Plink
- 7.2 Using Plink
Plink is a command-line connection tool similar to UNIX ssh
. It is mostly used for automated operations, such as making CVS access a repository on a remote server.
Plink is probably not what you want if you want to run an interactive session in a console window.
7.1 Starting Plink
Plink is a command line application. This means that you cannot just double-click on its icon to run it and instead you have to bring up a console window. In Windows 95, 98, and ME, this is called an ‘MS-DOS Prompt', and in Windows NT, 2000, and XP, it is called a ‘Command Prompt'. It should be available from the Programs section of your Start Menu.
In order to use Plink, the file plink.exe
will need either to be on your PATH
or in your current directory. To add the directory containing Plink to your PATH
environment variable, type into the console window:
This will only work for the lifetime of that particular console window. To set your PATH
more permanently on Windows NT, 2000, and XP, use the Environment tab of the System Control Panel. On Windows 95, 98, and ME, you will need to edit your AUTOEXEC.BAT
to include a set
command like the one above.
7.2 Using Plink
Crack wifi password windows 8.1. This section describes the basics of how to use Plink for interactive logins and for automated processes.
Once you've got a console window to type into, you can just type plink
on its own to bring up a usage message. This tells you the version of Plink you're using, and gives you a brief summary of how to use Plink:
Once this works, you are ready to use Plink.
7.2.1 Using Plink for interactive logins
To make a simple interactive connection to a remote server, just type plink
and then the host name:
You should then be able to log in as normal and run a session. The output sent by the server will be written straight to your command prompt window, which will most likely not interpret terminal control codes in the way the server expects it to. So if you run any full-screen applications, for example, you can expect to see strange characters appearing in your window. Interactive connections like this are not the main point of Plink.
In order to connect with a different protocol, you can give the command line options -ssh
, -telnet
, -rlogin
or -raw
. To make an SSH connection, for example:
If you have already set up a PuTTY saved session, then instead of supplying a host name, you can give the saved session name. This allows you to use public-key authentication, specify a user name, and use most of the other features of PuTTY:
(You can also use the -load
command-line option to load a saved session; see section 3.8.3.1. If you use -load
, the saved session exists, and it specifies a hostname, you cannot also specify a host
or user@host
argument - it will be treated as part of the remote command.)
7.2.2 Using Plink for automated connections
More typically Plink is used with the SSH protocol, to enable you to talk directly to a program running on the server. To do this you have to ensure Plink is using the SSH protocol. You can do this in several ways:
- Use the
-ssh
option as described in section 7.2.1. - Set up a PuTTY saved session that describes the server you are connecting to, and that also specifies the protocol as SSH.
- Set the Windows environment variable
PLINK_PROTOCOL
to the wordssh
.
Usually Plink is not invoked directly by a user, but run automatically by another process. Therefore you typically do not want Plink to prompt you for a user name or a password.
Next, you are likely to need to avoid the various interactive prompts Plink can produce. You might be prompted to verify the host key of the server you're connecting to, to enter a user name, or to enter a password.
To avoid being prompted for the server host key when using Plink for an automated connection, you should first make a manual connection (using either of PuTTY or Plink) to the same server, verify the host key (see section 2.2 for more information), and select Yes to add the host key to the Registry. After that, Plink commands connecting to that server should not give a host key prompt unless the host key changes.
To avoid being prompted for a user name, you can:
- Use the
-l
option to specify a user name on the command line. For example,plink login.example.com -l fred
. - Set up a PuTTY saved session that describes the server you are connecting to, and that also specifies the username to log in as (see section 4.14.1).
To avoid being prompted for a password, you should almost certainly set up public-key authentication. (See chapter 8 for a general introduction to public-key authentication.) Again, you can do this in two ways:
- Set up a PuTTY saved session that describes the server you are connecting to, and that also specifies a private key file (see section 4.22.8). For this to work without prompting, your private key will need to have no passphrase.
- Store the private key in Pageant. See chapter 9 for further information.
Once you have done all this, you should be able to run a remote command on the SSH server machine and have it execute automatically with no prompting:
Or, if you have set up a saved session with all the connection details:
Then you can set up other programs to run this Plink command and talk to it as if it were a process on the server machine.
7.2.3 Plink command line options
Plink accepts all the general command line options supported by the PuTTY tools. See section 3.8.3 for a description of these options.
Plink also supports some of its own options. The following sections describe Plink's specific command-line options.
7.2.3.1 -batch
: disable all interactive prompts
If you use the -batch
option, Plink will never give an interactive prompt while establishing the connection. If the server's host key is invalid, for example (see section 2.2), then the connection will simply be abandoned instead of asking you what to do next.
This may help Plink's behaviour when it is used in automated scripts: using -batch
, if something goes wrong at connection time, the batch job will fail rather than hang.
7.2.3.2 -s
: remote command is SSH subsystem
If you specify the -s
option, Plink passes the specified command as the name of an SSH ‘subsystem' rather than an ordinary command line.
(This option is only meaningful with the SSH-2 protocol.)
7.2.3.3 -shareexists
: test for connection-sharing upstream
This option does not make a new connection; instead it allows testing for the presence of an existing connection that can be shared. (See section 4.18.5 for more information about SSH connection sharing.)
A Plink invocation of the form:
will test whether there is currently a viable ‘upstream' for the session in question, which can be specified using any syntax you'd normally use with Plink to make an actual connection (a host/port number, a bare saved session name, -load
, etc). It returns a zero exit status if a usable ‘upstream' exists, nonzero otherwise.
(This option is only meaningful with the SSH-2 protocol.)
7.3 Using Plink in batch files and scripts
Once you have set up Plink to be able to log in to a remote server without any interactive prompting (see section 7.2.2), you can use it for lots of scripting and batch purposes. For example, to start a backup on a remote machine, you might use a command like:
Or perhaps you want to fetch all system log lines relating to a particular web area:
Any non-interactive command you could usefully run on the server command line, you can run in a batch file using Plink in this way.
7.4 Using Plink with CVS
To use Plink with CVS, you need to set the environment variable CVS_RSH
to point to Plink:
You also need to arrange to be able to connect to a remote host without any interactive prompts, as described in section 7.2.2.
You should then be able to run CVS as follows:
If you specified a username in your saved session, you don't even need to specify the ‘user' part of this, and you can just say:
7.5 Using Plink with WinCVS
Plink can also be used with WinCVS. Firstly, arrange for Plink to be able to connect to a remote host non-interactively, as described in section 7.2.2.
Then, in WinCVS, bring up the ‘Preferences' dialogue box from the Admin menu, and switch to the ‘Ports' tab. Tick the box there labelled ‘Check for an alternate rsh
name' and in the text entry field to the right enter the full path to plink.exe
. Select ‘OK' on the ‘Preferences' dialogue box.
Next, select ‘Command Line' from the WinCVS ‘Admin' menu, and type a CVS command as in section 7.4, for example:
or (if you're using a saved session):
Select the folder you want to check out to with the ‘Change Folder' button, and click ‘OK' to check out your module. Once you've got modules checked out, WinCVS will happily invoke plink from the GUI for CVS operations.
If you want to provide feedback on this manual or on the PuTTY tools themselves, see the Feedback page.
[PuTTY release 0.68]