Friday, April 17, 2020

LinuxCNC on an old Dell D430 with a dock

http://www.10k3d.com/2015/06/my-journey-into-world-of-cnc-machining_22.html


sudo apt-get install git-core
sudo apt-get install libpci-dev
git clone git://git.kiszka.org/smictrl.git && cd smictrl
git clone git://github.com/zultron/smictrl-deb.git debian
fakeroot dpkg-buildpackage -uc -us
sudo dpkg -i ../smictrl_*.deb
sudo sed -i '/exit 0/ismictrl -s 0' /etc/rc.local
sudo reboot

Adding bCNC to the laptop:
git clone https://github.com/vlachoudis/bCNC.git

Profile c++ code


To profile an executable and get a nice visual of it (you need the expected flags when compiled of course):

First you need to compile with argument -pg, so that gcc inserts its code all everywhere to time your function calls.

Once you run the project, it will generate a big file named gmon.out. This is mostly unreadable per se. And gprof hardly makes it more readable.

Here comes gprof2dot.py and dot, which generate very readable graphs:
gprof exe/router.exe | gprof2dot.py -s | dot -Tpng -o profiler.png && gwenview profiler.png

Note that gprof must be given the executable name. It will not run it in anyway, but it needs the symbol table to give you proper names.


How to submit a patch to the linux kernel

How to submit a patch to the linux kernel



On Ubuntu/Debian you probably need sudo apt-get install git-email first, unless you want to do it entirely manually (uuh).

git log
git format-patch HEAD~
scripts/checkpatch.pl 0001-scripts-config-allow-colons-in-option-strings-for-se.patch
scripts/get_maintainer.pl
git send-email 0001-scripts-config-allow-colons-in-option-strings-for-se.patch

You could use git format-patch --cover-letter HEAD~ to generate a blank "introductory" email in order to describe your post further than with the sole summary of the patch itself.

Here is a ~/.gitconfig example for git to send emails:
[sendemail]
  ; setup for using git send-email; prompts for password
  smtpuser = jf@gmail.com
  smtpserver = smtp.googlemail.com
  smtpencryption = tls
  smtpserverport = 587

Note: you might have to create a specific Google "application password" for the provided pseudo "login" prompt that git will print.

The tool ./scripts/get_maintainer.pl in linux will help you identify the recipients. It does this very nicely, instead of having to guess from the MAINTAINERS file.

Finally, to submit the real thing to the linux list https://lkml.org/:
git send-email --cc-cmd='./scripts/get_maintainer.pl --norolestats 0001-scripts-config-allow-colons-in-option-strings-for-se.patch' 0001-scripts-config-allow-colons-in-option-strings-for-se.patch

It will end up, e.g. as https://lkml.org/lkml/2020/4/10/383