Devshell
Jump to navigation
Jump to search
When a build fails, it is often useful to interactively build the part that is failing. Because OE sets up the build environment, it may not be obvious how to quickly reproduce such an environment.
Background
One technique that can be use is:
- cd into tmp/work/<failing package dir>/<failing package build dir>
- copy ../temp/run.do_compile.. x (or do_install or whatever task is failing)
- edit x and replace the do_compile (at the end of the file) function call w/ bash
- ./bash --norc (you now have a shell w/ the environment set up properly for doing a build)
- make (debug issues, etc)
- exit (when done to go back to shell without run.do_compile settings)
Setup devshell
The above is mainly for illustration purposes. A better/quicker way to set up a development shell is this.
- Add 'devshell' to your local.conf's INHERIT variable and enjoy the power of devshell by running it like this:
bitbake -c devshell <target>
- You now have all the environment variables set up to correctly to run configure, make, etc.
The following variables affect the terminal handling:
TERMCMD = "${SCREEN_TERMCMD}" TERMCMDRUN = "${SCREEN_TERMCMDRUN}" # Some common terminal programs to choose from GNOME_TERMCMD = 'gnome-terminal --disable-factory -t "$TERMWINDOWTITLE"' GNOME_TERMCMDRUN = '${GNOME_TERMCMD} -x $SHELLCMDS' SCREEN_TERMCMD = 'screen -D -m -t "$TERMWINDOWTITLE"' SCREEN_TERMCMDRUN = '${SCREEN_TERMCMD} $SHELLCMDS' XTERM_TERMCMD = 'xterm -T "$TERMWINDOWTITLE"' XTERM_TERMCMDRUN = '${XTERM_TERMCMD} -e $SHELLCMDS' KONSOLE_TERMCMD = 'konsole -T "$TERMWINDOWTITLE"' KONSOLE_TERMCMDRUN = '${KONSOLE_TERMCMD} -e $SHELLCMDS'
FAQ
X11 connection rejected because of wrong authentication
Sometimes if you try to run devshell remote over SSH with X11 redirection this error occurs:
X11 connection rejected because of wrong authentication. ERROR: function do_devshell failed
The problem seems to be the XAUTHORITY handling. The following part in .profile helped some users.
if [ -e "$HOME/.Xauthority" ] ; then export XAUTHORITY="$HOME/.Xauthority" fi