Friday, August 28, 2009

Enabling core dump feature


ulimit -c unlimited

to enable application core dump

Monday, August 17, 2009

using gdb and gdbserver

Imagine you need to use an embedded system debugger.One of the options is using gdb and gdbserver all together

To do this first you need to setup your toolchain at x86 machine.In that example out embedded system will be in ST.

Install gdbserver your embedded directory.In order to work with gdbserver we can use tcp connection to out x86 machine like that:

/root/gdbserver bin/${ST binary to debug} ${arguments to pass binary}

It's handy to get this command work in a very bottom of a shell script file after all done, environment variables, etc..

with this command we will start debugging session and awaits connection from relevant machine(x86 machine in that case)

Meantime we need to open our tcp connection to gdbserver like:

root@home$ gdb ${EXECUTABLE_FILE}
(gdb)target remote ${ip address of embedded machine}:${tcp port number of embedded machine}

after connection established, we need to enter gdb command c
(gdb) c

c stands for continue, since debugging already started that is the command we should send to gdbserver with our local gdb client.
But before starting gdb client do not forget to set corrent binary executable as well.Otherwise you will not be able to set breakpoints, and other useful stuff inside gdb.

so remote debugging starts

Saturday, August 15, 2009

login to ssh without a password

Your aim

You want to use Linux and OpenSSH to automize your tasks. Therefore you need an automatic login from host A / user a to Host B / user b. You don't want to enter any passwords, because you want to call ssh from a within a shell script.
How to do it

First log in on A as user a and generate a pair of authentication keys. Do not enter a passphrase:

a@A:~> ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/a/.ssh/id_rsa):
Created directory '/home/a/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/a/.ssh/id_rsa.
Your public key has been saved in /home/a/.ssh/
The key fingerprint is:
3e:4f:05:79:3a:9f:96:7c:3b:ad:e9:58:37:bc:37:e4 a@A

Now use ssh to create a directory ~/.ssh as user b on B. (The directory may already exist, which is fine):

a@A:~> ssh b@B mkdir -p .ssh
b@B's password:

Finally append a's new public key to b@B:.ssh/authorized_keys and enter b's password one last time:

a@A:~> cat .ssh/ | ssh b@B 'cat >> .ssh/authorized_keys'
b@B's password:

From now on you can log into B as b from A as a without password:

a@A:~> ssh b@B hostname

A note from one of our readers: Depending on your version of SSH you might also have to do the following changes:

* Put the public key in .ssh/authorized_keys2
* Change the permissions of .ssh to 700
* Change the permissions of .ssh/authorized_keys2 to 640

Registred Linux User

Registred Linux User