Azure Linux VM stuck on loading - Unable to access serial console - linux

I got a linux VM in Azure and from the screenshot via the Boot Diagnostics menu, I can see that it gives the following message :
"you are in emergency mode.....press Enter for maintenance or Press CTRL D to continue"
I tried to access the VM using the serial console and it connects to the console and I see a message as below :
"Connected to the serial port of the VM
If no loginprompt is displayed press ENTER"
But.....despite pressing Enter nothing happens! Ive tried rebooting, restarting etc but still stuck

For the error you are in emergency mode.....press Enter for maintenance or Press CTRL D to continue
The emergency mode sometimes means either your file system is corrupted or you created a new partition or edited existing partition.
Please perform a file system check using below command :
fsck.ext4 /dev/sda3
where sda3 can be your partition and if you are using ext3 file system, change the command as follows:
fsck.ext3 /dev/sda3
Cycle through the SDAs by changing the last number in the sda to see which file system has problems.
Ex: sda1, sda2, sda3, sda4, and so on
For the error Connected to the serial port of the VM If no loginprompt is displayed press ENTER
This issue occurs when the serial console connection is successfully made to the virtual machine, but the virtual machine is not configured for input/output on the serial port.
To ensure your Linux virtual machine works with Azure serial console, please follow the guidance: Create and upload an Ubuntu Linux VHD in Azure - https://learn.microsoft.com/en-us/azure/virtual-machines/linux/create-upload-ubuntu for the distribution you are using. Specifically you will need to perform these steps from the preceding link:
Modify the kernel boot line in GRUB or GRUB2 to include the following parameters. This will also ensure all console messages are sent to the first serial port, which can assist Azure support with debugging issues:
console=ttyS0,115200 earlyprintk=ttyS0,115200 rootdelay=300
In addition to the above, it is recommended to remove the following parameters if they exist:
rhgb quiet crashkernel=auto
Graphical and quiet boot are not useful in a cloud environment where we want all the logs to be sent to the serial port. The crashkernel option may be left configured if desired, but note that this parameter will reduce the amount of available memory in the VM by 128MB or more, which may be problematic on the smaller VM sizes.
Reference :
https://unix.stackexchange.com/questions/347808/ubuntu-gives-message-welcome-to-emergency-mode
https://github.com/Microsoft/azserialconsole/blob/master/Known_Issues/Hitting_enter_does_nothing.md

Related

ubuntu has been blocked by the current security policy" after updating deepracer

I follow this tutorial
https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-ubuntu-update.html
on updating the deep racer software stack to Ubuntu 20.04 Software Stack. After installing the new ubuntu, I cannot enter my OS because it said "ubuntu has been blocked by the current security policy". In the BIOS menu, it doesn't have the option to disable security boot.
After that, I follow this tutorial https://github.com/awsdocs/aws-deepracer-developer-guide/blob/master/doc_source/deepracer-vehicle-factory-reset-preparation.md to try to install old Linux to revert back the process. It also gives me the same error as "ubuntu has been blocked by the current security policy".
I try to reinstall multiple times and still had no luck. I also see on AWS re:Post that some ppl are facing same issue too but n
I solved my problem, as deep racer bios do not have the option to disable secure boot. You have to make sure that the factory reset folder is unzipped, and drag all the files to the second partition of your USB as the document shows.
https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-ubuntu-update.html
After that, you will select to boot from the USB drive after you enter the ubuntu, click install ubuntu 20. x.x.x. After installation, u need to once again to boot from USB and run the shell script in the factory reset folder in order to enter the Ubuntu. Otherwise, it will show the error it is blocked by the current security policy.
When I run the shell script, the first time I run I encountered an error saying cannot find the GPT partition table. The reason is that I skip some of the steps in the document and did not follow the step to do the partition. After I repeat the partition process. I was able to run a factory reset shell script. You should see it doing a writing block operation. After the script is finished
you should able to enter ubuntu 20. x.x.x without error.

How do I resolve a `vagrant up` issue

I have been trying to run vagrant up but I keep getting an error, though I have run a command for the box vagrant init ubuntu/focal64 and the result said I am ready to vagrant up but I keep getting the error message as shown in the screenshot below.
Please how can I resolve this issue?
I am in need of quick help.
You need to enable virtualization within the BIOS of your machine. When you first boot the computer, there's usually a screen saying "Hit F2" or "Hit Del" to enter setup (the key varies per motherboard manufacturer). You need to go into the BIOS setup and enable Hardware Virtualization support (VT-x on Intel machines). Consult your computer/motherboard manufacturer manual.

accessing u-boot and kernel debug console on baltos ir2110

I am using baltos ir 2110 and creating a custom image for it. I was able to access it via ssh with the standard bolts Debian image. But with my custom image, it is not coming in the network ( in conclusion it is not booting ). I want to access the bootloader cli and check kernel logs to find the error but I don't know how to access it.
I have tried to connect the RS 232 serial port to my computer but no logs are available on that port. Is there any other debug port that I can access to see the serial console on baltos?
There is a serial console to baltos ir 2110. You can access it using a tty-USB cable which will give you access to u boot terminal.

How to upgrade the NVIDIA Tegra TX1 with a windows machine?

As a beginner with Virtual Machines and Linux I have my trouble understanding how to properly upgrade Linux on the Tegra - Board. I found some good explanations but they all were too advanced for a beginner - a student - and not a professional in the field.
Therefore, I would like to know how to properly upgrade the Linux Version on the Tegra X1 Board with a Windows machine
Step1:
Make sure you have the following items:
The Tegra Board
Admin priviliges on the Windows machine (needed once)
Micro USB-B to USB Cable
HDMI Cable and Monitor
These are all the things needed before.
Step 2
Download Linux 14.04 - it is the only distribution compatible with the Tegra Board at the moment.
http://releases.ubuntu.com/14.04/ubuntu-14.04.4-desktop-amd64.iso
Step 3
Download and install Oracle Virtual Machine. You will need admin privilages for install.
http://download.virtualbox.org/virtualbox/5.1.8/VirtualBox-5.1.8-111374-Win.exe
Step 4
Set up an NVIDIA Developer Account
https://developer.nvidia.com/group/node/873376/subscribe/og_user_node?downloadable_file=874988
Step 5
Set up the virtual machine. To do so start the installed Oracle VM Virtual Box (see Step 3). On the upper left you find the button "new". After clicking on it a window will pop up. At the bottom you can change to "Expert-Mode".
In the field "Name" you can give it a fitting phrase like "Ubuntu for Tegra" etc.. The next field Typ should be obiously Linux, and the Version 64 bit.
Set the memory size to a good fitting size, depending on how much RAM you got on your machine. It works fine with 6 GB, anything smaller could lead to some lagging, but will still run.
Put the radio button in the middle so it will create a hard drive.
Go to the next step by hitting "Create"
Step 6
In this window two inputs are interesting. Firstly, it needs a path where to create the virtual environment. So choose a path to a disk that has enough space. Secondly, how many space you give to the environment - 50 gb will work fine.
Step 7
Launch it by selecting the newly created environemt and then hitting "Start". You will be asked to choose a medium to be booted. Here select the downloaded .iso file from step 2.
Step 8
You will be greeted with the Linux-Install environemnt. You can choose between "Try" and "Install". You must choose "Install".
Step 9
After you instaleld Linux you must restart the Virtual Machine. To do so, you can either do it by "normaly" shutting down Linux via the GUI or the command Line tool or from the VM-Software directly by right-clicking on the running virtual machine - close - power down.
Step 10
You may encounter the problem that you do not see the full screen of the Linux environment. To fix this you need to restart the virtual machine. On the virtual machine display at the top bar you can see the entry "devices". If you click on it a drop down menu will open, the last point is "guest additions", click on it and install them. After that reboot the virtual machine.
Step 11
On the virtual machine log in on your NVIDIA Account and download the latest Jetpack Version.
https://developer.nvidia.com/embedded/downloads?#?dn=jetpack-for-l4t-2-3
https://developer.nvidia.com/embedded/jetpack
Step 12
After downloading a file with the extension .run should be in your Downloads-Folder. This is the installation file needed, but it is not executable yet. To make it executable open a shell (right click on the upper left ubuntu symbol, search for terminal and open it).
Go to the Downloads folder with:
cd ~/Downloads
and make the run file executable:
sudo chmod u+x *.run
Step 12
Run the .run file with
sudo *./run
Step 12
In the installer choose the board and the software you want to be installed, also agree the software license agreements. After some downloading time the installer will open a terminal.
If the prompt asks you about Network Layout. If it does, choose eth0 if you have you board connected via ethernet cable, if it is connected via Wi-fi choose wlan0.
Step 13
You need to put the Tegra Board in recovery mode. Make sure that all your data is saved, since it will wipe everything clean.
Follow the instructions on the terminal to put the Tegra Board in recovery mode. If directions unclear follow this youtube video (which also includes some followign steps):
https://youtu.be/4JUWS9i_FCQ
Step 14
When you think the Tegra is in recovery mode check by doing the following: At the virtual machine, on the top bar go the "devices" and then to USB. Select the NVIDIA entry. If it is not there, the board is not in recovery mode. Make sure that this was really selected. (It is highlighted blue when selected)
Step 15
Back in the Linux virtual machine enter lsusb on a second terminal. If there is an entry with NVIDIA Corp the tegra board was successfully put into recovery mode. Press enter, now the flashing starts - this will take some time
Step 16
After flashing finishes, the jetson board will auomatically boot. Connect it to an HDMI Cable and Monitor. If a login is asked, the username and password are ubuntu.
Step 17
Connect to the Internet
Either connect it to the ethernet or a Wifi - depending on what you have chosen at step 12. You may need to disable Wifi to connect via ethernet cable.
Step 18
If you use static IPs you can skip this part since you already now the IP-Adress you gave to the tegra board. If not you have to run
ifconfig
in a terminal. It will show you your adapters and what IP-Adresses they have, note the one that you chose.
Step 19
The Post Installation in the virtual machine either has given up and was unable to determine the IP adress of the Jetson Developer Kit or has found it. If it has not found it give it manually the ip adress you found out by entering "2". After this a GUI is shown where you can enter the Ip-Adress and the username password combo, which is ubuntu.
Step 20
After hitting Next the installation will continue.

Display Linux boot messages on tty1 instead of ttyS1

I'm working on an embedded Linux system with a display panel. The system is setup to output boot messages through the serial port on the system /dev/ttyS1. I'm trying to get these messages to show up on the display,tty1, and I'm looking for suggestions on how I go about doing this.
I tried changing the kernel command line from console=ttyS1 to console=tty1; this has no effect. Even with the change above boot messages are sent only to the serial port. I verified that the change to the kernel command line did take effect by querying cat /proc/cmdline
The last step of the boot process spawns getty to tty1 and the login screen does appear on the panel. The panel itself is initialized much earlier in the boot sequence.
EDIT: #artless noise pointed out that sending the console to the virtual terminal requires a change in the kernel config. And indeed it does. Follow the steps below to enable console output on virtual terminal
make menuconfig
and from the displayed GUI select the following
Device Drivers -> Character devices -> Support for console in virtual terminal
When invoking make you may need to provide additional options (ARCH, CROSS_COMPILE etc.) depending on the target you're building for.
Command line options can be provided either by the bootloader (e.g., u-boot bootargs) or hardcoded when configuring the kernel.
I know that on some older versions of the Linxu kernel, hard-coded options erroneously overwrote bootloader options.
So, have a look at the .config file and see if the wrong console has been set there.

Resources