Customizing TorizonCore Image tty and ssh

Hello together

I have the following hardware:

  • Verdin iMX8M Plus Quad 4GB Wi-Fi / Bluetooth IT
  • Dahlia Carrier Board with HDMI Adapter
  • Capacitive Touch Display 10.1" LVDS

I did build a custom image using the TorizonCore Builder Tool, i finally got the image loaded onto the som and the carrier board and the screen seems to be working. (I can see the custom splash screen logo i uploaded) and ofcourse it loads the correct DTS overlays otherwise I couldnt see anything on the screen.

Now, when it stops showing the device screen, I never see the local terminal, and I can not interact with it with a keyboard. Also I did not found a possibility to tell if a SSH server should be active or an IP Adress configuration. I could not find such settings in the tcbuild.yaml file or did I find something going into this direction when explaining the buildsteps.

Can you tell me how I would achieve these 2 points?

  • Set the tty so it works with the attached capacitive touch display.
  • Set the IP Address and activate a SSH Server.

I know that there are possibilities to make some changes to a system and then read it out and extract it.
TorizonCore Builder Tool “build” command | Toradex Developer Center
I would need to access it with UART I guess, because now I have no possiblity to interact with the system (did not try this yet).

Or to feed in some rootfilesystem content via customizations:
filesystem (array of strings, optional): List of directories to be merged with the input – the corresponding directory trees will be applied on top of the ones present in the input image, in the listed order.
TorizonCore Builder Tool “build” command | Toradex Developer Center

For the console I could use a I guess a kernel argument, but I would need to know how the consoles name is, then I might pass it to the kernel with something like console=ttymxc2 or what ever it is.

But for a console and ssh server that would be quite unusual as this is the stuff I would usually expect to work right out of the box or am I wrong?

I attached you my tcbuild.yaml configuration file so you can see what I did.
tcbuild.yaml (4.6 KB)

Can someone of you give me a hint how to get the console and ssh working? Thanks for your help!

Greetings @alexander.schaepper,

Set the tty so it works with the attached capacitive touch display.

By default we have terminal output to attached displays disabled by default in TorizonCore. If you look at the kernel args for TorizonCore you’ll see something like:

torizon@verdin-imx8mp-06849059:~$ cat /proc/cmdline
root=LABEL=otaroot rootfstype=ext4 quiet logo.nologo vt.global_cursor_default=0 plymouth.ignore-serial-consoles splash fbcon=map:3 ostree=/ostree/boot.1/torizon/e9daee516002508abf4ebf2e9360effa7356cfe3e82571ceb869d9533b143bf4/0

The kernel arg that is doing this is fbcon=map:3. This basically maps the framebuffer console to a non-existent frame-buffer device, effectively turning off the console on displays. It’s not easy to remove a kernel arg parameter but you can overwrite it. For example if you add fbcon=map:0 to the kernel command line then this overrides the previous setting.

So it’s just a matter of overwriting this with a value that points to the correct framebuffer device for your display. Which could be done with TorizonCore Builder.

Set the IP Address and activate a SSH Server.

The IP address get set automatically via DHCP of whatever router/network you have the device plugged into. If you can’t determine the IP address you can also just use the device’s hostname. Which should be <module-family>-<soc>-<serial number>, for example verdin-imx8mp-012345678. SSH is already configured and running by default in TorizonCore so you should be able to SSH right away with either the IP address or hostname.

By the way it looks like you’re doing all this to access the device. Do you not have the option to just connect to the device via the serial debug port?

Best Regards,
Jeremias

Thanks a lot for your help!

The info with the fbcon setting helps me a lot.
DHCP is fine, now at least I understand the hostnaming.

So if I want to set the IP address static from the beginning, which way would you suggest? We use the devices in machines resp. shop floor and there you rarely have DHCP servers at least from my expierence.

By Serial debug port you mean the USB connection? I do have this connection, I loaded the Easyinstaller with this into the memory (unplugged the jumper JP3 and pressed the buttons after powering on).

Could I also connect this way with someng like picocom resp. a serial communiction tool?

So if I want to set the IP address static from the beginning, which way would you suggest? We use the devices in machines resp. shop floor and there you rarely have DHCP servers at least from my expierence.

We have an article on setting a static network configuration: Networking with Torizon OS | Toradex Developer Center

By Serial debug port you mean the USB connection? I do have this connection, I loaded the Easyinstaller with this into the memory (unplugged the jumper JP3 and pressed the buttons after powering on).

USB connection yes, but not the same USB connection you used for Easy Installer. We have an article on this as well: Configuring Serial Port Debug Console (Linux/U-Boot) | Toradex Developer Center

This let’s you access the device’s console/terminal without any display attached.

Best Regards,
Jeremias

Thanks a lot!

Glad I was able to help!