TX1 (R24.2.1) boot to the command line

1、sudo systemctl set-default multi-user.target

2、‘/boot/extlinux/extlinux.conf’ add ‘text’

The method doesn’t work。This was verified in topic

https://devtalk.nvidia.com/default/topic/983020/?comment=5041269

when I change ‘/etc/X11/default-display-manager’to ‘false’, that Pop a error dialog when system started on my hdmi lcd,it said ‘the system is running in low-graphics mode’。After I set cancel, it can enter the tty1.

how do I configure the TX1 directly into the command line, and then I through shell script running startx and other my app?

Look forward to your reply.thank a lot!

I’ve never found a way to change this on R24.2.1 (and probably some of the older versions as well). It seems that something in the systemd configuration files is not working correctly, or else kernel command line arguments for systemd.unit are being ignored.

Not sure I really understand the situation. If you intend to make a product, I would suggest to find a clean solution.
But if you’re just blocked there and want a temporary workaround, you may try the following, assuming you’re running Ubuntu 16.04 on your TX1.

  1. You can try to desactivate lightdm :
systemctl disable lightdm.service

and reboot.

  1. Unfortunately, I faced cases lightdm was restarting, I suppose because of a rule in upstart scripts.
    So I did it nasty but efficient :
chmod -x /usr/sbin/lightdm

to prevent it from running.

Then it boots to tty1 login (if your monitor is supported for console mode). After login,

ps awwux

should show that no lightdm process, nor X server is running.

This way (and disabling cups and cups-browsed) I have more than 3.8 GB RAM available on TX1.
But this may not be the best configuration, depending on what you intend to do.

Thank you for your reply。

chmod -x /usr/sbin/lightdm

it worked, tx1 boot to command line.

When I execute the script following the content below

Xinit
Sleep 1
./myapp

Hdmi displays a small white command-line window, and myapp has not been executed.

I know now is a little strange, in fact, is the first time I face in an embedded system running ubuntu.

My product requirements are:
1, multi-channel video decoding, four channel h264 or h265 decoded video splicing into one picture ,and show on hdmi screen. QT as a user interface program is also displayed in the hdmi output.
2, When the device starts, do not want to see ubuntu-related content displayed, including the startup information and desktop

Because I want to multi-channel display, so I envision the use of Xlib window concept, the use of four window display four channel video, so the easiest to achieve the stitching effect, so I need to run X service, but do not want to show ubuntu desktop, so I envisioned init process is to start X, and then start qt and other app.

Is there a way for me to use the simplest init method to configure my startup content. Start speed is not what I need to care about. I can provide some direction, thank you.

Well, you may also close this thread and open a new one with subject matching this new topic.

Anyway, are you running Xinit as root or as ubuntu ?
Have you set DISPLAY such as :
export DISPLAY=:0.0 (or anything matching your config ?)

Any error message of why it failed to launch your app ? (or any .xsession-errors ? in dmesg output ?)
Check your environnement is correctly set before calling the script, especially LD_LIBRARY_PATH to any non standard path for dynamic libs your app requires.

ldd your_app

may help to detect unfound libs.

What is the first line of your script ? Any option ? How is it called ? From rc.local or from command line ?

Thank you Honey_Patouceul!Your advice has helped me a lot

My program failed to run because X has not started yet, and the environment variable is not set.
Now my program works fine,and my current configuration is:

1,disable lightdm start

sudo chmod -x /usr/sbin/lightdm

2,Modify /etc/rc.local, Add the following code before exit0

#step1: manually start the X-service
Xorg &

#step2: add delay to ensure that X starts successfully
sleep 4

#step3: set the environment variable to use the default display output
export DISPLAY=:0.0

#step4: execute my program
/usr/share/test/myapp &