Embedded Motion Control 2018/FAQ: Difference between revisions

From Control Systems Technology Group
Jump to navigation Jump to search
Line 75: Line 75:
'''Q:''' <br>
'''Q:''' <br>
'''I have the following problem while compiling the C++ code (see below). It seems like compiler cannot find the referred functions in the ems library. Could you, please, help?'''
'''I have the following problem while compiling the C++ code (see below). It seems like compiler cannot find the referred functions in the ems library. Could you, please, help?'''
g++ -o bin/hello Hello_world/main.cpp


/tmp/ccAFdyDC.o: In function `main':
    g++ -o bin/hello Hello_world/main.cpp
main.cpp:(.text+0x25): undefined reference to `emc::IO::IO(emc::Communication*)'
 
main.cpp:(.text+0x31): undefined reference to `emc::IO::ok()'
    /tmp/ccAFdyDC.o: In function `main':
main.cpp:(.text+0x73): undefined reference to `emc::IO::speak(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
    main.cpp:(.text+0x25): undefined reference to `emc::IO::IO(emc::Communication*)'
main.cpp:(.text+0x9e): undefined reference to `emc::IO::~IO()'
    main.cpp:(.text+0x31): undefined reference to `emc::IO::ok()'
main.cpp:(.text+0xe2): undefined reference to `emc::IO::~IO()'
    main.cpp:(.text+0x73): undefined reference to `emc::IO::speak(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
collect2: error: ld returned 1 exit status
    main.cpp:(.text+0x9e): undefined reference to `emc::IO::~IO()'
    main.cpp:(.text+0xe2): undefined reference to `emc::IO::~IO()'
    collect2: error: ld returned 1 exit status





Revision as of 11:32, 5 May 2018

When you ran into a problem, try to find the solution here first. If it's not here, try to find an answer by googling your problem, asking fellow students, or, as a very last resort, ask your tutor! If you found a solution, please put it here such that others can use it! Try to be as consise yet descriptive as possible, and try to file your Problem-Solution pair under the correct category (or add a new category if necessary).

Example

To keep a clear overview of this page, a layout structure of Question-Answer (Q-A) is suggested. The following example is used to clarify this structure:

Q:
My computer is on fire. Is this a bad thing?

A:
Nah, probably not, the fire will soon die out. Be sure though to commit all your changes to git! Just in case...

Q:
What is 2+2?

A:
4

Ubuntu

Q:
My laptop is stuck on maximum brightness, how to solve this?

A:
Remark: THE FOLLOWING SOLUTION MAY BREAK YOUR UBUNTU SO PROCEED WITH CAUTION
Open your Terminal. Type

sudo gedit /usr/share/X11/xorg.conf.d/20-intel.conf

A text editor will open. Add the following content

Section "Device"
        Identifier  "card0"
        Driver      "intel"
        Option      "Backlight"  "intel_backlight"
        BusID       "PCI:0:2:0"
EndSection

Log out and back in. You can now use the brightness controls on your keyboard to change the brightness.

If, however, your login screen does not proceed - you may have added this '20-intel.conf' file which did not exist before -, then we may fix it by deleting this '20-intel.conf' file by doing the following steps:

  1. At the screen where a small error screen pops up in the middle, enter the terminal by pressing the following combination (CTRL+ALT+F1)
  2. Now locate the file at "/usr/share/X11/xorg.conf.d/20-intel.conf"
  3. remove the file via
    •  sudo rm 20-intel.conf 
  4. reboot and you should be able to proceed to log in screen


Q:
Ubuntu freezes on login, how to solve this?

A:
The TU/e Zbook laptops of 2016-2017 and 2017-2018 can freeze on login, this is because of issues with the graphical driver.

If the screen freezes before or directly after login, after booting and before you login you can open a virtual console (CTRL+ALT+F1) which works according to the same principles as a terminal. Login with the username and password provided during your installation. Make sure that you have Internet access, otherwise Ubuntu cannot fetch the updates. Now, update your graphical driver with the the commands given below:

sudo apt-get install nvidia-common nvidia-367
sudo apt-get update
sudo apt-get upgrade 

Reboot your PC. You should be able to log in without any screen-freezes.

If you experience the same freezing problems with a different pc, you can use the following link to find the correct driver to download: https://linuxconfig.org/how-to-install-the-latest-nvidia-drivers-on-ubuntu-16-04-xenial-xerus


Q:
Installation of Ubuntu does not work since Ubuntu cannot find any partitions to be placed on, how to solve this?

A:
While following the installation tutorial (https://www.tecmint.com/install-ubuntu-16-04-alongside-with-windows-10-or-8-in-dual-boot/) and leaving both options from Preparing to Install Ubuntu unchecked and hitting on Continue, you will see a different screen than shown in the tutorial considering the Installation type. If this is the case, restart your computer and go to Windows instead of Ubuntu. When in Windows, wait for the tile representing Intel Rapid Storage Technology in the taskbar in the lower right corner. Select this tile with a right mouse button click and select Open Application. Thereafter, a window pops up asking if you want to allow this app to make changes to your device, select yes. A new window appears, click on Performance in the menu above. Under the section Acceleration Configuration, you click on Disable acceleration. When you are asked if you are sure that you want to disable acceleration on the disk or volume, you select yes. Now again go to Ubuntu and your problem should be solved. Now you should be able to follow the rest of the installation tutorial.

C++

Everything related to the programming language

Q:
I have the following problem while compiling the C++ code (see below). It seems like compiler cannot find the referred functions in the ems library. Could you, please, help?

   g++ -o bin/hello Hello_world/main.cpp
   /tmp/ccAFdyDC.o: In function `main':
   main.cpp:(.text+0x25): undefined reference to `emc::IO::IO(emc::Communication*)'
   main.cpp:(.text+0x31): undefined reference to `emc::IO::ok()'
   main.cpp:(.text+0x73): undefined reference to `emc::IO::speak(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
   main.cpp:(.text+0x9e): undefined reference to `emc::IO::~IO()'
   main.cpp:(.text+0xe2): undefined reference to `emc::IO::~IO()'
   collect2: error: ld returned 1 exit status



I´m using Ubuntu on virtual machine and the installation of EMC packages seemed to go fine.

Version control (git)

Everything related to version control using git

Q:

installing/updating git with "sudo apt-get install git" results in the following error:

   start: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: Connection refused
   No apport report written because the error message indicates its a followup error from a previous failure.
   dpkg: error processing package runit (--configure):
   subprocess installed post-installation script returned error exit status 1
   dpkg: dependency problems prevent configuration of git-daemon-run:
   git-daemon-run depends on runit; however:
   Package runit is not configured yet.
   dpkg: error processing package git-daemon-run (--configure):
   dependency problems - leaving unconfigured
   Errors were encountered while processing:
   runit
   git-daemon-run
   E: Sub-process /usr/bin/dpkg returned an error code (1)

How could I solve this?

A:

A possible solution is to remove the "git-daemon-run" and "runit" file as explained in https://askubuntu.com/questions/631615/unable-to-connect-to-upstart-error-when-installing-git-all (a bug is possible causing the error).

  1. Remove git-daemon-run
    •  sudo dpkg -r git-daemon-run 
  2. Remove runit
    •  sudo dpkg -r runit 
  3. Now it should install properly the latest version of git via
    •  sudo apt-get install git 

PICO

Everything related to PICO

Qt Creator

Q:
My program is not building and running within Qt Creator, how to solve this?

A:
When building the program does not work in Qt creator, but does work in the terminal, the following may fix the problem.

When your project is open, click 'Projects' on the left task bar. Scroll down to 'Build Environment', and expand it (click Details). Now, all the way to the bottom right, click 'Batch Edit'.

Next, open your terminal (ctrl+alt+t), and type

   printenv

Select the entire output (you probably only need a few relevant variables, but copying everything works fine), and copy (ctrl+shift+c). Paste the entire output in your QT creator Batch Edit window, and click OK. Building with CTRL+B should work now!

If you're still getting undefined reference errors try running the following in the terminal

   emc-update

Course Organization

Q:
I can't find them under Course schedule and Lecture slides. Could you, please, upload them? Thanks in advance!


Q:
Is it possible to upload the slides from the introduction by Rene?


Q:
When is the deadline for the initial design report?