Inicio » OSES: Deploy session

OSES: Deploy session

[You] Oh! Dear! I think that the possibilities of an embedded OS are amazing … but I’m so stupid! I dominate only 0.001% of this monster!.

[Me] Don’t worry! I dominate 0.005% of this monster. How much is your level with your desktop OS? And more important, how open is it?. Please, open your mind!

World is plenty of crapware. Today I will show you that you can create also your own «crapdevice».

Rationale

This session is focused to show how to configure your embedded system for running your application.

This implies knowing some basics about the booting process and how to deploy your application.

Boot sequence

When you power up your embedded device, an initialisation procedure starts in order to start a given configured operating system. Lets discuss this sequence in the following slides:

Remember that this procedure happens in your smart-phone, your TV, your router, your car, your …

Preparing things

First, I recommend to reconfigure Rasbian to avoid autologin and graphic GUI. Go to «Menú -> Preferences -> Raspberry Pi configuration» and provide the following configuration.

rasiconfig-gui

Accept the changes and reboot the board to check the effect.

Remember, user: pi, password: power .

Use command startx to start the graphical system. Test it, please.

Start to my app

The idea

Taking into consideration that we are noobs, the easiest option is to add users to your Linux box and associating a given application to that user.

Start to a text based app

$ sudo apt install calcurse

Test the app in a terminal.

$ calcurse

Find where it is installed:

$ which calcurse
/usr/bin/calcurse

Well, it is time for creating new user account. Open now a terminal and run

$ sudo adduser --shell /usr/bin/calcurse agenda

NOTE: it will ask you to provide a password for user «agenda»

Logout and login with this user. Questions?

Of course, you can «autologin» to this user, but it is your problem.

Start to a GUI based app

WELL, I recommend to create another new user for to do all these things

$ sudo adduser juanito

Login in the new user.

Add permissions for accessing audio and video.

sudo usermod -a -G video juanito
sudo usermod -a -G audio juanito

And run startx.

Lets first decide an interesting «crap» system. I propose a «digital signage» system.

Open a terminal an write

$ chromium-browser -app=http://aperles.blogs.upv.es/oses

Nice. Let’s do things better

$sudo apt install xdotool

Problems? Don’t ask me. It is your problem.

Create an script with name my_kiosc in the juanito’s home directory. Use the following listing,

#!/bin/sh
chromium-browser --start-maximized -app=http://aperles.blogs.upv.es/oses &
sleep 8
xdotool key F11

Make the scrip executable

$chmod 700 ./my_kiosc

Test it

$ ./my_kiosc

Well, the easiest approach to automate the start of your brilliant GUI application is to modify the init script of the GUI desktop app to launch your application.

For example, Raspbian uses LXDE GUI Desktop. You can take a look to the file ~/.config/lxsession/LXDE-pi/autostart and add your app at the end of the list.

Edit ~/.config/lxsession/LXDE-pi/autostart

$ mousepad ~/.config/lxsession/LXDE-pi/autostart

and add a command at the end of the file

@/home/juanito/my_kiosc

Reboot and test if it works … tachaaannnn!!!!

(Next example failed a lot of years ago. I maintain it for reference.)

DEMO PARA REPRODUCIR UN VIDEO QUE NO FUNCIONA BIEN

For example, let’s create a media player for «La tienda en casa».

Install a youtube downloader app

$ sudo apt-get install youtube-dl

Download some interesting video.

$ mkdir la_tienda
$ cd la_tienda
$ youtube-dl [url of the video here]
$ ls -l

Now, you need the video player, for example mplayer (vlc va lento, pero quizá funcione)

$ sudo apt-get install mplayer

Test that the video can be played as you want, i.e.

$ mplayer -fs --loop=0 "CheapDAQ quadrature input test-Wf5bg0-S9xc.mp4"

If all is OK, edit ~/.config/lxsession/LXDE(username)/autostart and add the previous command at the end of the file

$ leafpad ~/.config/lxsession/LXDE(username)/autostart

and add

@mplayer -fs --loop=0 "/home/pi/la_tienda/CheapDAQ quadrature input test-Wf5bg0-S9xc.mp4"

Splash screen

When you boot your Raspberry Pi board, you get a lot of information lines. This is not cool for your «crapdevice». Your Android device is based on Linux and does not show that, the reason is that it uses an «splash screen».

oses_rpi_boot

Try to finish your thing adding an splash. Follow this tutorial

Do not use nano, use leafpad and copy the file to the appropriate path.

Use this splash file.

splash

Lots of simplifications

Well, you get something working, but I excluded a lot of information. If you need serious things, please search for more information. For example,

  • .profile and .bash_rc
  • rc.d
  • etc.