#!/bin/bash # Prepare Ubuntu Server 18.04 for Cisco Trex ttyS0_service='/lib/systemd/system/ttyS0.service' # Check if I am root [ "$(id -u)" != 0 ] && echo "Run the script as root, exiting" && exit 1 # Update packages apt-get update [ "$?" != 0 ] && echo "System can't be updated, exiting" && exit 1 # Check if we utilities are installed for package in ifupdown unzip build-essential libelf-dev zlib1g-dev python3-distutils; do dpkg --list | grep "$package" &>/dev/null [ "$?" == 1 ] && sudo apt-get -y install "$package" done # Stop renaming interface e.g. eth0 to ens3 sed -i 's/GRUB_CMDLINE_LINUX=""/GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"/g' /etc/default/grub grub-mkconfig -o /boot/grub/grub.cfg # Redirect video output to serial console echo '[Unit]' > "$ttyS0_service" echo -e "Description=Serial Console Service\n" >> "$ttyS0_service" echo '[Service]' >> "$ttyS0_service" echo 'ExecStart=/sbin/getty -L 115200 ttyS0 vt102' >> "$ttyS0_service" echo -e "Restart=always\n" >> "$ttyS0_service" echo '[Install]' >> "$ttyS0_service" echo 'WantedBy=multi-user.target' >> "$ttyS0_service" systemctl daemon-reload systemctl enable ttyS0 systemctl start ttyS0 # Reduce timeout for network interfaces to 15sec during boot mkdir -p /etc/systemd/system/networking.service.d echo "[Service]" > /etc/systemd/system/networking.service.d/reduce-timeout.conf echo "TimeoutStartSec=15" >> /etc/systemd/system/networking.service.d/reduce-timeout.conf exit 0