Version 1 (modified by 7 years ago) ( diff ) | ,
---|
Disabling Serial Console
For varying privacy and security reasons, some people like to completely silence the serial console output. This needs to be done in the following places:
- Bootloader (serial console)
- Linux Kernel (serial console)
- Linux OS (console login)
Please NOTE: There will be no way to access the board besides over the network after making these changes.
Please make changes at your own risk
Recovery would be through re-programming the board via the Gateworks JTAG Programmer.
Disable U-Boot bootloader serial console
In order to disable serial console for the U-Boot bootloader you must re-build the bootloader with the feature disabled.
- Laguna bootloader
- see laguna/bootloader for building
- alter config
(include/configs/cavium_cns3000.h and/or include/configs/cavium_cns3000_spi.h):
- remove '#define CONFIG_CNS3000_SERIAL'
- set CONFIG_BOOTDELAY to 0 to save a couple of seconds on bootup
- Ventana bootloader
- see ventana/bootloader for building
- alter config (include/configs/gw_ventana.h):
- remove '#define CONFIG_DM_SERIAL'
- set CONFIG_BOOTDELAY to 0 to save a couple of seconds on bootup
Disable Kernel serial console
In order to disable serial console for the Linux Kernel you can either recompile it with the support disabled, or you can alter the bootargs the bootloader passes to the kernel to disable it at runtime.
Kernel configuration:
- Remove the following from the kernel config (.config)
- CONFIG_SERIAL_CORE_CONSOLE
- CONFIG_SERIAL_EARLYCON
- CONFIG_SERIAL_IMX_CONSOLE (Ventana / imx6)
- CONFIG_SERIAL_8250_CONSOLE (Laguna / cns3xxx)
Kernel bootargs:
- Remove the 'console' bootargs
Example bootloader configuration to remove the console
bootarg:
- Laguna - Alter
bootargs
:printenv bootargs bootargs=console=ttyS0,115200 root=/dev/mtdblock3 rootfstype=squashfs,jffs2 noinitrd init=/etc/preinit setenv bootargs 'root=/dev/mtdblock3 rootfstype=squashfs,jffs2 noinitrd init=/etc/preinit' saveenv
- Ventana - unset
console
:setenv console saveenv
Disable Linux OS console login
In order to disable console login in a Linux OS you must disable the service that performs this function. While this is Linux distribution specific it usually involves the 'init' process launching the 'getty' or 'login' application with a parameter of a specific serial device or tty1 (which is the kernel console tty)
OpenWrt
modern OpenWrt uses it's own procd
as a replacement for the standard Linux init. While it is a complete re-implementation it still follows the standard of processing an /etc/inittab
file for configuring what processes are spawned from init.
To kill off login from the kernel serial console as well as any other serial devices, remove or comment with a leading '#' any lines that invoke /bin/ash --login
from /etc/inittab such as:
::askconsole:/bin/ash --login tty1::askfirst:/bin/ash --login
Yocto (and other Linux distros using the standard sysvinit)
Many Linus distros use the sysvinit
package which processes /etc/inittab
for commands to spawn a getty
on various serial devices or tty's.
To kill off login from the kernel serial console as well as any other serial devices, remove or comment with a leading '#' any lines that invoke the getty
process from /etc/inittab. For example, remove the following:
mxc1:12345:respawn:/sbin/getty -L 115200 ttymxc1 1:12345:respawn:/sbin/getty 38400 tty1
Ubuntu
Ubuntu doesn't by default enable serial console or serial port login capability however if you have added this it may have been done by adding an /etc/init/serial.conf
that you can alter or remove.