How to access the kernel menuconfig in a Yocto project using bitbake? - yocto

I am currently trying to build a very simple system using Yocto. For this, I would like to change the kernel config, so I run:
bitbake -c menuconfig virtual/kernel
However, I can't get this to open the kernel menuconfig.
When using xterm or rvxt for OE_TERMINAL, a terminal opens very shortly and clos
Using tmux yields nothing
Using screen yields:
Trying to run: screen -r devshell_11581
There is no screen to be resumed matching devshell_11581.
With no way I can actually access the kernel menuconfig. Also I could not find any logs.
What do I need to do to make this work?

As mentionned in the official Yocto reference manual here.
Try to set OE_TERMINAL to "auto" to let bitbake detect your default terminal. Or when using one of:
gnome
xfce
xvt
screen
konsole
make sure that it is installed on your system.
I think, from my little experience:
gnome (for gnome-terminal)
xfce (for xfce-terminal)
xvt
screen
konsole (for KDE environment)
Edit: Also make sure that you install all Yocto dependencies, specially libncurses-dev for menuconfig menu.

Related

buildroot new fs can't install grub2

I'm traing to use buildroot and compile new embedded system for testing.
Everything looks ok I use last kernel 4.9.16 and buildroot is from 02.2017. After compiling I can't install grub2 there's now grub software on new root file system and second there's now bash in /bin and anywhere? There's only ash shell.
It's weird because the same procedure I made on mint 17 couple days ago and it works like a charm. I changed disk in my laptop and now I'm using fresh manjaro. I don't think this could be a problem because when I compile new system I can't chose bash in menu but I chose grub2 as bootloader.
Regarding bash: Buildroot by default only installs Busybox, which provides a more minimalistic shell called ash, which is sufficient for most purposes. If you really need bash, you can also get it by enabling it in the Buildroot menuconfig.
Regarding grub2, please have a look at the help text of the Grub2 option in Buildroot, it explains how to install it.

How to use ipython without installing in every virtualenv?

Background
I use Anaconda's IPython on my mac and it's a great tool for data exploration and debugging. However, when I wish to use IPython for my programs that require virtualenv (e.g. a Django web app), I don't want to have to reinstall IPython every time.
Question
Is there a way to use my local IPython while also using the rest of my virtualenv packages? (i.e. just make IPython the exception to virtualenv packages so that the local IPython setup is available no matter what) If so, how would you do this on a mac? My guess is that it would be some nifty .bash_profile changes, but my limited knowledge with it hasn't been fruitful. Thanks.
Example Usage
Right now if I'm debugging a program, I'd use the following:
import pdb
pdb.set_trace() # insert this to pause program and explore at command line
This would bring it to the command line (that I wish was IPython)
If you have a module in your local Python and not in the virtualenv, it will still be available in the virtualenv. Unless you shadow it with another virtualenv version. Did you try to launch your local IPython from a running virtualenv that didn't have an IPython? It should work.
Will, I assume you are using Anaconda's "conda" package manager? (Which combines the features of pip and virtualenv). If so you should be aware that many parts of it does not work completely like the tools it is replacing. E.g. if you are using conda create -n myenv to create your virtual environment, this is different from the "normal" virtualenv in a number of ways. In particular, there is no "global/default" packages: Even the default installation is essentially an environment ("root") like all other environments.
To obtain the usual virtualenv behavior, you can create your environments by cloning the root environment: conda create -n myenv --clone root. However, unlike for regular virtualenv, if you make changes to the default installation (the "root" environment in conda) these changes are not reflected in the environments that were created by cloning the root environment.
An alternative to cloning the root is to keep an updated list of "default packages" that you want to be available in new environments. This is managed by the create_default_packages option in the condarc file.
In summary: Don't treat your conda environments like regular python virtualenvs - even though they appear deceptively similar in many regards. Hopefully at some point the two implementations will converge.

Chmod u+x windows cmd

I'm trying to install Scalatra on windows seven and need to change a file to executable...the Scalatra documentation says to do this, which is unix. What is the windows equivalant?
chmod u+x srt
You can simply open the relevant folder with a unix command prompt (I use git bash) and execute the unix commands from there
To get scalatra-sbt going on Windows, either port you own sbt.bat from scalatra-sbt, or install chmod via cygwin.
Assuming you've successfully installed the rest of Conscript and giter8, you can start a project that downloads scalatra-sbt. From there, one can look through the ./sbt source, and port the bash script functionality to your own windows specific script, or install a unix compatibility layer into Windows. If you go down the "windows specific script" route, perhaps the scalatra-sbt would appreciate the project contribution.
The "unix compatibility layer" route will eventually allow you to run ./sbt. chmod is a unix command line function, and is provided in a default package of the tool set cygwin, which provides a complete lunix-like environment. Once inside a cygwin terminal, you can chmod your file, as mentioned in the scalatra-sbt first project.
Diving into the contents of ./sbt from scalatra-sbt, this is actually unix script wrapper around the scala build tool (also referred to, confusingly, as sbt). If while trying to run ./sbt you get strange '\r' errors, install the cygwin package dos2unix, and then run it on the sbt file. If you run into any "which: no curl in..." or "which: no wget in..." errors, go back to the cygwin installer, find those packages such as wget, and then install those programs.
By the way, the last thing the scalatra-sbt script runs is the Scala build tool. The Scala build tool sbt itself has many reported issues with cygwin's default configuration, so you will likely need to do more research. Depending on what issues you're running into on your specific setup, you may need to make changes to the end of the ./sbt script to adjust the parameters used to launch the Scala build tool.

Configuring Eclipse for ROS

I am new to Linux. I am trying to develop ROS application using eclipse. I don't understand the below which is provided in ROS website. Can you explain this in more simple way, So that I can configure my eclipse after downloading from eclipse.org.
Reusing your shell's environment
For building and running ROS programs from inside IDEs, the ROS
enviroment has to be set up. All IDEs might have a config for that,
but running your IDE from your ROS-sourced shell should be the easiest
way, avoiding inconsistency.
Likewise, you can enhance your IDE's launcher icon to load your shells
environment. E.g., replace its command eclipse with
bash -i -c "eclipse". This will make bash source
~/.bashrc, in which ROS has to
be sourced and parameterized, and start that IDE.
use following commands:
cd <your_catkin_workspace>
catkin_make --force-cmake -G"Eclipse CDT4 - Unix Makefiles"
cd build
cmake ../src -DCMAKE_BUILD_TYPE=Debug
now you can import your project to eclipse
after that you can create a desktop application entry for eclispe:
sudo vim /usr/share/applications/eclipse.desktop
[Desktop Entry]
Type=Application
Terminal=false
Icon=<path_to_your_eclipse_dir>/icon.xpm
Exec=bash -i -c "source /opt/ros/hydro/setup.bash && source $HOME/workspace/<your_catkin_workspace>/devel/setup.bash && <path_to_your_eclipse_dir>/eclipse"
Comment=IDE
Name=eclipse
Comment=IDE
It seems that a wiki was published about this subject here
Put simply, the lines you listed are suggesting you run your IDE (eclipse) from a terminal which has already been sourced. So for instance, if you have a package called mypackage, you might type in a terminal:
cd ~/mypackage
source devel/setup.bash
eclipse
The first line is just however you get to your package, the second line sets up environmental variables for you (like changing your PATH), then you can run eclipse with all of those already setup so you don't have to configure your package in eclipse 100% manually.

Where can I find the gtk-builder-convert script?

I've built a small GUI app for work that uses some .glade files for pop-up windows. Recently, the ground beneath me was shifted - my environment was upgraded. Newer pyGTK versions require GTKBuilder and .xml files instead of Glade and .glade files and now my poor app is broken.
I need to convert the .glade file to the newer .xml file. Problem is Glade-3 is not on our system, and I can't find gtk-builder-convert on the web. I've looked at the Gnome GIT Browser, don't know where to start looking or how to search it.
Would anyone be kind enough to point me to the gtk-builder-convert python script?
gtk-builder-convert is part of GTK and it should already be installed on your system since you have GTK version 2.12 or higher. But if you really can't find it, here it is in the git browser: http://git.gnome.org/browse/gtk+/tree/gtk/gtk-builder-convert
ubuntu: install the tools by sudo apt-get install libgtk2.0-dev
but it is now deprecated
It worked on Linux for me using Gtk3+ and Glade3+ installed from conda by following steps.
Open your Gtk1+ older glade XML file designed in Glade1+ user interface in Glade3+ user interface.
Click on Save button in Glade3+ user interface.
Use this command after conda activate gtk-builder-convert infile outfile.