Firefox in Kiosk Mode without LXDE

Hi all,
I am try to run a T30 in kiosk mode for web access. The problem is that if I disable permanently LXDE the app doesn’t appear on screen.
if I leave LXDE in autorun with the system an then type

systemctl stop lxdm.service
X &
firefox -height 600 -width 1024 &

Everything works fine. But if I type:

systemctl disable lxdm.service

And then reboot, typing

 X &
 firefox -height 600 -width 1024 &

Shows only a black screen without cursor.

Any advice?

Thank you in advance.

With Firefox never tried without Graphical server, I got acceptable performance with Wayland, but we have done Chromium run on Linux framebuffer, works very well if you do not need WebRTC or additional plugins video/audio.


Cleiton Bueno

Blog | Linkedin | B2Open

Hi

I tried this here and Firefox starts in both you cases, i.e. with the LXDM display manager started and stopped and with LXDM disabled starting X followed by starting Firefox works.

What display do you use?
What is Firefox’s console output?
Does the Firefox application terminate or is it running but you have nothing on screen?

Max

Hi Max,

  • I use a 10" 1024x600 LVDS display

  • Here is my X console output

    root@apalis-t30:~# X

      X.Org X Server 1.14.7
      Release Date: 2014-06-05
      X Protocol Version 11, Revision 0
      Build Operating System: Linux 4.5.5-201.fc23.x86_64 x86_64 
      Current Operating System: Linux apalis-t30 3.1.10-g7ec3a91-dirty #9 SMP PREEMPT Wed Aug 31 09:37:01 CEST 2016 armv7l
      Kernel command line: core_edp_mv=1300 usb_high_speed=1 ip=off root=/dev/mmcblk0p2 rw,noatime rootfstype=ext3 rootwait igb_mac= consoleblank=0 no_console_suspend=1 console=tty1 console=ttyS0,115200n8 debug_uartport=lsport,0 vmalloc=256M mem=2035M@2048M fbmem=12M@4083M video=tegrafb0:1024x600-16@60
      Build Date: 24 June 2016  07:03:10PM
       
      Current version of pixman: 0.32.6
      	Before reporting problems, check http://wiki.x.org
      	to make sure that you have the latest version.
      Markers: (--) probed, (**) from config file, (==) default setting,
      	(++) from command line, (!!) notice, (II) informational,
      	(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
      (==) Log file: "/var/log/Xorg.0.log", Time: Tue Sep  6 07:36:43 2016
      (==) Using config file: "/etc/X11/xorg.conf"
      (==) Using system config directory "/usr/share/X11/xorg.conf.d"
      Initializing built-in extension Generic Event Extension
      Initializing built-in extension SHAPE
      Initializing built-in extension MIT-SHM
      Initializing built-in extension XInputExtension
      Initializing built-in extension XTEST
      Initializing built-in extension BIG-REQUESTS
      Initializing built-in extension SYNC
      Initializing built-in extension XKEYBOARD
      Initializing built-in extension XC-MISC
      Initializing built-in extension XFIXES
      Initializing built-in extension RENDER
      Initializing built-in extension RANDR
      Initializing built-in extension COMPOSITE
      Initializing built-in extension DAMAGE
      Initializing built-in extension MIT-SCREEN-SAVER
      Initializing built-in extension DOUBLE-BUFFER
      Initializing built-in extension DPMS
      Initializing built-in extension X-Resource
      Initializing built-in extension XVideo
      Initializing built-in extension XVideo-MotionCompensation
      Initializing built-in extension XFree86-VidModeExtension
      Initializing built-in extension XFree86-DGA
      Initializing built-in extension XFree86-DRI
      Initializing built-in extension DRI2
      Loading extension TEGRA-EGL
      6 XSELINUXs still allocated at reset
      SCREEN: 0 objects of 184 bytes = 0 total bytes 0 private allocs
      DEVICE: 0 objects of 64 bytes = 0 total bytes 0 private allocs
      CLIENT: 0 objects of 84 bytes = 0 total bytes 0 private allocs
      WINDOW: 0 objects of 28 bytes = 0 total bytes 0 private allocs
      PIXMAP: 1 objects of 48 bytes = 48 total bytes 0 private allocs
      GC: 4 objects of 16 bytes = 64 total bytes 0 private allocs
      CURSOR: 1 objects of 4 bytes = 4 total bytes 0 private allocs
      DBE_WINDOW: 0 objects of 12 bytes = 0 total bytes 0 private allocs
      TOTAL: 6 objects, 116 bytes, 0 allocs
      1 PIXMAPs still allocated at reset
      PIXMAP: 1 objects of 48 bytes = 48 total bytes 0 private allocs
      GC: 4 objects of 16 bytes = 64 total bytes 0 private allocs
      CURSOR: 1 objects of 4 bytes = 4 total bytes 0 private allocs
      DBE_WINDOW: 0 objects of 12 bytes = 0 total bytes 0 private allocs
      TOTAL: 6 objects, 116 bytes, 0 allocs
      4 GCs still allocated at reset
      GC: 4 objects of 16 bytes = 64 total bytes 0 private allocs
      CURSOR: 1 objects of 4 bytes = 4 total bytes 0 private allocs
      DBE_WINDOW: 0 objects of 12 bytes = 0 total bytes 0 private allocs
      TOTAL: 5 objects, 68 bytes, 0 allocs
      1 CURSORs still allocated at reset
      CURSOR: 1 objects of 4 bytes = 4 total bytes 0 private allocs
      DBE_WINDOW: 0 objects of 12 bytes = 0 total bytes 0 private allocs
      TOTAL: 1 objects, 4 bytes, 0 allocs
      1 CURSOR_BITSs still allocated at reset
      DBE_WINDOW: 0 objects of 12 bytes = 0 total bytes 0 private allocs
      TOTAL: 0 objects, 0 bytes, 0 allocs
    

And this is Firefox output

  root@apalis-t30:~# firefox -height 600 -width 1024
    
    (process:607): GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed
    console.error: 
      [CustomizableUI]
      Custom widget with id loop-button does not return a valid node
    console.error: 
      [CustomizableUI]
      Custom widget with id loop-button does not return a valid node
  • The application is still running checking via “top”
    If I run Firefox after

    systemctl start lxdm.service

The console output is the same but everything works fine.

Thanks

Just from a very high-level perspective, running applications on-top of fbdev on T30 is for most applications not beneficial. The T30 fbdev implementation is really a dumb framebuffer without any acceleration. Via X-Server, you access the display/graphics engine through the “tegra” DDX driver which makes better use of the hardware…

While for other modules using EGL ontop of fbdev might be nice to avoid Xorg dependencies, for T30 using X is the better option.

However, you can not run Firefox directly on-top of Xorg (it would lack windowing management which is crucial for full-screen/menus etc…) You need a window manager such as the pre-installed Openbox WM.

Something like Xorg & openbox & firefox should get you there.

Hi Stefan, thanks for the detailed answer.
Unfortunately that command doesn’t work either if I don’t run before

systemctl start lxdm.service
systemctl stop lxdm.service

I get only a black screen. If start and stop lxdm service everything works as expected.

May I suggest you adding your LVDS configuration script (e.g. lvds-single-channel.sh) which is probably now not started but in the LXDM case was started by /etc/xdg/lxsession/LXDE/autostart to your startup procedure.

I totally forgot that script.
This finally solved the problem, thank you very much!

Best regards