This install of e17 does not conflict with the version of Enlightenment DR-16 found on the Debian repositories.  It also installs the latest & greatest version from the CVS. But it is not for the timid. There are two ways to go, but both start the same.

NOTE: All instructions assume that you know how to install based on your user/root preference.

Step 1: There are some dependences for installing e17 on debian.

automake1.9
bison
build-essential
curl
cvs
cvsutils
doxygen
flex
gettext
giblib-dev
inotify-tools
libbz2-dev
libfreetype6-dev
libgtk2.0-dev
libdbus-1-dev
libimlib2
libimlib2-dev
libjpeg-progs
libjpeg62-dev
libltdl3-dev
libmpd0
libmpd-dev
libncurses5-dev
libpng12-dev
libpng3
librsvg2-2
libsqlite3-dev
libtagc0
libtagc0-dev
libtagc0-dev
libtiff-tools 
libtiff4-dev
libtool
libtheora0
libtheora-dev
libungif-bin
libungif4-dev
libxcomposite1
libxcomposite-dev
libxcursor-dev
libxdamage1
libxdamage-dev
libxine-dev
libxml2-dev
libxrender-dev
libxslt1-dev
pkg-config
scrot
sqlite
sqlite3
subversion
texinfo
zlibc

Also make sure you have a compiler as well as make.  Install all this stuff however it is that you prefer to do so.


Step 2: Get, Build & install e17.

From the command line, cd to where you want to download e17.  Where you put it is up to you, my suggestion though is if you are only testing this out, put it in /opt (that’s what it is there for).  Now to get e17 & type;

     svn co http://svn.enlightenment.org/svn/e/trunk/eina eina
     svn co http://svn.enlightenment.org/svn/e/trunk/eet eet
     svn co http://svn.enlightenment.org/svn/e/trunk/evas evas
     svn co http://svn.enlightenment.org/svn/e/trunk/ecore ecore
     svn co http://svn.enlightenment.org/svn/e/trunk/efreet efreet
     svn co http://svn.enlightenment.org/svn/e/trunk/embryo embryo
     svn co http://svn.enlightenment.org/svn/e/trunk/edje edje
     svn co http://svn.enlightenment.org/svn/e/trunk/e_dbus e_dbus
     svn co http://svn.enlightenment.org/svn/e/trunk/e e

Once it is finished downloading the fun begins. Each library needs to be built & installed, then the same for the apps. Here is the library build order for debian stable as of 02 Mar 09.

- eina
- eet
- evas
- ecore
- efreet
- embryo
- edje
- epsilon
- e_dbus

There are additional libraries, but they are not needed initonally. They need to be downloaded the same as the ones abofe, edited to match of course. This is the build order as of 05 Jan 08.

- esmart
- emotion
- engrave
- etk
- etk_extra
- ewl
- exml
- enhance

At this point e17 can be installed & ran.

- e

In order to just get the e17 window manager one can stop here.

There are also additional appliactions on offer from Enlightenment, now would be the time to install them (we are not going to at this juncture). Some of the following may no longer work. If you find one, let me know over to Cloudy Wizzards forum & I’ll remove it.

Use svn co http://svn.enlightenment.org/svn/e/trunk/OLD/* * to download the following.

- entrance
- edje_viewer
- edje_editor
- elitaire
- emphasis
- empower
- ephoto
- estickies
- exhibit
- expedite
- exquisite
- enthrall
- rage
- scrot

The following are in svn co http://svn.enlightenment.org/svn/e/trunk/PROTO/* *

- extrackt
- e_phys

The next thing to add are the modules. This is the module build order as of 02 Mar 09, build just the ones needed/want.

- alarm
- bling
- calendar
- cpu
- deskshow
- emu
- flame
- forecasts
- language
- mail
- mem
- mixer
- moon
- net
- news
- penguins
- photo
- rain
- screenshot
- slideshow
- snow
- taskbar
- tclock
- uptime
- weather
- winselector
- wlan

Now comes the fun part, each library needs to be configured & installed before the next (or in some particular order).  After the libraries are installed, then the various & sundry applications are to be built, followed by the the modules.  If this is being done from a gui, then cutting & pasting is not a problem.  Say though this is being done without a gui then I would suggest getting “gpm – General Purpose Mouse Interface”, cuts down on the typos.

Now to the actual building part.  CD into each folder & then type;

    ./autogen.sh && make && make install

The default directory for the install is “/usr/local”.  The debian way to install stuff is of course to /usr, which is fine if one plans to keep e17 for a spell.  If that is the case then add “–prefix=/usr” to ./autogen.sh to install to “/usr/(bin, etc, include, lib, local, sbin, share). On the other hand if this is just to test things out, then again I suggest using “/opt”.

Now have at it.


Step 4: Booting into e17.

Well I’m not going to tell an experienced debian user how to login to their system, but the command to start e17 is “enlightenment_start”.  Any standard window display manager (KDM, GDM, XDM & WDM) should pick up e17 automaticlly, if not then one needs to configure their window display manager of choice by hand.  E17 does come with it’s own window display manager called Entrance.  And last but not least, command line & startx or no window display manager at all.


Errors:

There are two basic errors one will encounter during the build process.

  • The first is building stuff out of order.  This usually happens during the “make” phase of the build. One can sort this out by reading the error message.  They usually say something to the affect of, “can not find <some_*.h_file>” or”<some_file> is missing.
  • The second error tends to be that something is missing.  Which will happen during the ./autogen phase of the build.  The error is pretty clear on what is missing, so just get said missing file and go again.  If said missing file is already installed & it is the correct version, then try said file-dev or said file-lib.
  • There is another error that happens from time to time, but it’s not user error.  Sometimes the stuff coming from the cvs is just plane broke, e17 is in the development phase after all.  Just try again later (most times things are fixed in a day or two, but sometimes can take up to a fortnight

from

Gloobus-Preview

Posted: 1 December, 2010 in Linux

Gloobus-Preview is an extension for the Gnome Desktop Environment designed to enable a full screen preview of any kind of file. It’s based on Apple’s “Quicklook”.

Download

Debian Linux Networking

Posted: 29 November, 2010 in Debian, Linux
How To Set Up A Linux Network

 

Debian Linux Network Monitoring Using Free Tools

 

How To Set Up A Debian Linux Firewall

 

Linux Server and Network Security

Peter Jay Salzman
Ori Pomerantz

Copyright © 2001 Peter Jay Salzman

2003-04-04 ver 2.4.0


Table of Contents

Foreword

1. Acknowledgements
2. Nota Bene
1. Introduction

1.1. What Is A Kernel Module?
1.2. How Do Modules Get Into The Kernel?

2. Hello World

2.1. Hello, World (part 1): The Simplest Module
2.2. Compiling Kernel Modules
2.3. Hello World (part 2)
2.4. Hello World (part 3): The __init and __exit Macros
2.5. Hello World (part 4): Licensing and Module Documentation
2.6. Passing Command Line Arguments to a Module
2.7. Modules Spanning Multiple Files

3. Preliminaries

3.1. Modules vs Programs

4. Character Device Files

4.1. Character Device Drivers

5. The /proc File System

5.1. The /proc File System

6. Using /proc For Input

6.1. Using /proc For Input

7. Talking To Device Files

7.1. Talking to Device Files (writes and IOCTLs)}

8. System Calls

8.1. System Calls

9. Blocking Processes

9.1. Blocking Processes

10. Replacing Printks

10.1. Replacing printk

11. Scheduling Tasks

11.1. Scheduling Tasks

12. Interrupt Handlers

12.1. Interrupt Handlers

13. Symmetric Multi Processing

13.1. Symmetrical Multi-Processing

14. Common Pitfalls

14.1. Common Pitfalls

A. Changes: 2.0 To 2.2

A.1. Changes between 2.0 and 2.2

B. Where To Go From Here

B.1. Where From Here?

List of Examples
2-1. hello-1.c
2-2. Makefile for a basic kernel module
2-3. hello-2.c
2-4. Makefile for both our modules
2-5. hello-3.c
2-6. hello-4.c
2-7. hello-5.c
2-8. start.c
2-9. stop.c
2-10. Makefile for a multi-filed module
4-1. chardev.c
4-2. some title
5-1. procfs.c
6-1. procfs.c
7-1. chardev.c
7-2. chardev.h
7-3. ioctl.c
8-1. procfs.c
9-1. sleep.c
10-1. print_string.c
11-1. sched.c
12-1. intrpt.c

original

How to Write an Operating System

Posted: 27 November, 2010 in Programming


25 Useful SSH Commands

Posted: 27 November, 2010 in Linux

1) Copy ssh keys to user@host to enable password-less ssh logins.

ssh-copy-id user@host

To generate the keys use the command ssh-keygen

2) Start a tunnel from some machine’s port 80 to your local port 2001

ssh -N -L2001:localhost:80 somemachine

Now you can acces the website by going to http://localhost:2001/

3) Output your microphone to a remote computer’s speaker

dd if=/dev/dsp | ssh -c arcfour -C username@host dd of=/dev/dsp

This will output the sound from your microphone port to the ssh target computer’s speaker port. The sound quality is very bad, so you will hear a lot of hissing.

4) Compare a remote file with a local file

ssh user@host cat /path/to/remotefile | diff /path/to/localfile –

Useful for checking if there are differences between local and remote files.

5) Mount folder/filesystem through SSH

sshfs name@server:/path/to/folder /path/to/mount/point

Install SSHFS from http://fuse.sourceforge.net/sshfs.html
Will allow you to mount a folder security over a network.

6) SSH connection through host in the middle

ssh -t reachable_host ssh unreachable_host

Unreachable_host is unavailable from local network, but it’s available from reachable_host’s network. This command creates a connection to unreachable_host through “hidden” connection to reachable_host.

7) Copy from host1 to host2, through your host

ssh root@host1 “cd /somedir/tocopy/ && tar -cf – .” | ssh root@host2 “cd /samedir/tocopyto/ && tar -xf -”

Good if only you have access to host1 and host2, but they have no access to your host (so ncat won’t work) and they have no direct access to each other.

8) Run any GUI program remotely

ssh -fX <user>@<host> <program>

The SSH server configuration requires:
X11Forwarding yes # this is default in Debian

And it’s convenient too:
Compression delayed

9) Create a persistent connection to a machine

ssh -MNf <user>@<host>

Create a persistent SSH connection to the host in the background.
Combine this with settings in your ~/.ssh/config:

Host host
ControlPath ~/.ssh/master-%r@%h:%p
ControlMaster no

All the SSH connections to the machine will then go through the persisten SSH socket. This is very useful if you are using SSH to synchronize files (using rsync/sftp/cvs/svn) on a regular basis because it won’t create a new socket each time to open an ssh connection.

10) Attach screen over ssh

ssh -t remote_host screen -r

Directly attach a remote screen session (saves a useless parent bash process)

11) Port Knocking!

knock <host> 3000 4000 5000 && ssh -p <port> user@host && knock <host> 5000 4000 3000

Knock on ports to open a port to a service (ssh for example) and knock again to close the port. You have to install knockd.
See example config file below:

[options]
logfile = /var/log/knockd.log
[openSSH]
sequence = 3000,4000,5000
seq_timeout = 5
command = /sbin/iptables -A INPUT -i eth0 -s %IP% -p tcp –dport 22 -j ACCEPT
tcpflags = syn
[closeSSH]
sequence = 5000,4000,3000
seq_timeout = 5
command = /sbin/iptables -D INPUT -i eth0 -s %IP% -p tcp –dport 22 -j ACCEPT
tcpflags = syn

12) Remove a line in a text file. Useful to fix

ssh-keygen -R <the_offending_host>

In this case it’s better do to use the dedicated tool

13) Run complex remote shell cmds over ssh, without escaping quotes

ssh host -l user $(<cmd.txt)

Much simpler method. More portable version: ssh host -l user “`cat cmd.txt`”

14) Copy a MySQL Database to a new Server via SSH with one command

mysqldump –add-drop-table –extended-insert –force –log-error=error.log -uUSER -pPASS OLD_DB_NAME | ssh -C user@newhost “mysql -uUSER -pPASS NEW_DB_NAME”

Dumps a MySQL database over a compressed SSH tunnel and uses it as input to mysql – i think that is the fastest and best way to migrate a DB to a new server!

15) Remove a line in a text file. Useful to fix “ssh host key change” warnings

sed -i 8d ~/.ssh/known_hosts


16) Copy your ssh public key to a server from a machine that doesn’t have ssh-copy-id

cat ~/.ssh/id_rsa.pub | ssh user@machine “mkdir ~/.ssh; cat >> ~/.ssh/authorized_keys”

If you use Mac OS X or some other *nix variant that doesn’t come with ssh-copy-id, this one-liner will allow you to add your public key to a remote machine so you can subsequently ssh to that machine without a password.

17) Live ssh network throughput test

yes | pv | ssh $host “cat > /dev/null”

connects to host via ssh and displays the live transfer speed, directing all transferred data to /dev/null
needs pv installed
# apt-get install pv

18) How to establish a remote Gnu screen session that you can re-connect to

ssh -t user@some.domain.com /usr/bin/screen -xRR

Long before tabbed terminals existed, people have been using Gnu screen to open many shells in a single text terminal. Combined with ssh, it gives you the ability to have many open shells with a single remote connection using the above options. If you detach with “Ctrl-a d” or if the ssh session is accidentally terminated, all processes running in your remote shells remain undisturbed, ready for you to reconnect. Other useful screen commands are “Ctrl-a c” (open new shell) and “Ctrl-a a” (alternate between shells). Read this quick reference for more screen commands: http://aperiodic.net/screen/quick_reference

19) Resume scp of a big file

rsync –partial –progress –rsh=ssh $file_source $user@$host:$destination_file

It can resume a failed secure copy ( usefull when you transfer big files like db dumps through vpn ) using rsync.
It requires rsync installed in both hosts.
rsync –partial –progress –rsh=ssh $file_source $user@$host:$destination_file local -> remote
or
rsync –partial –progress –rsh=ssh $user@$host:$remote_file $destination_file remote -> local

20) Analyze traffic remotely over ssh w/ wireshark

ssh root@server.com ‘tshark -f “port !22″ -w -’ | wireshark -k -i –

This captures traffic on a remote machine with tshark, sends the raw pcap data over the ssh link, and displays it in wireshark. Hitting ctrl+C will stop the capture and unfortunately close your wireshark window. This can be worked-around by passing -c # to tshark to only capture a certain # of packets, or redirecting the data through a named pipe rather than piping directly from ssh to wireshark. I recommend filtering as much as you can in the tshark command to conserve bandwidth. tshark can be replaced with tcpdump thusly:
ssh root@example.com tcpdump -w – ‘port !22′ | wireshark -k -i –

21) Have an ssh session open forever

autossh -M50000 -t server.example.com ‘screen -raAd mysession’

Open a ssh session opened forever, great on laptops losing Internet connectivity when switching WIFI spots.

22) Harder, Faster, Stronger SSH clients

ssh -4 -C -c blowfish-cbc

We force IPv4, compress the stream, specify the cypher stream to be Blowfish. I suppose you could use aes256-ctr as well for cypher spec. I’m of course leaving out things like master control sessions and such as that may not be available on your shell although that would speed things up as well.

23) Throttle bandwidth with cstream

tar -cj /backup | cstream -t 777k | ssh host ‘tar -xj -C /backup’

this bzips a folder and transfers it over the network to “host” at 777k bit/s.
cstream can do a lot more, have a look http://www.cons.org/cracauer/cstream.html#usage
for example:
echo w00t, i’m 733+ | cstream -b1 -t2

24) Transfer SSH public key to another machine in one step

ssh-keygen; ssh-copy-id user@host; ssh user@host

This command sequence allows simple setup of (gasp!) password-less SSH logins. Be careful, as if you already have an SSH keypair in your ~/.ssh directory on the local machine, there is a possibility ssh-keygen may overwrite them. ssh-copy-id copies the public key to the remote host and appends it to the remote account’s ~/.ssh/authorized_keys file. When trying ssh, if you used no passphrase for your key, the remote shell appears soon after invoking ssh user@host.

25) Copy stdin to your X11 buffer

ssh user@host cat /path/to/some/file | xclip

Have you ever had to scp a file to your work machine in order to copy its contents to a mail? xclip can help you with that. It copies its stdin to the X11 buffer, so all you have to do is middle-click to paste the content of that looong file :)

original
via

Content of the file “fonts”:

ttf-denemo
ttf-essays1743
ttf-georgewilliams
ttf-linux-libertine
ttf-lyx
ttf-opensymbol
libsdl-ttf2.0-0
ttf-sjfonts
ttf-thai-arundina
ttf-thai-tlwg
ttf-adf-accanthis
ttf-adf-baskervald
ttf-adf-berenis
ttf-adf-gillius
ttf-adf-ikarius
ttf-adf-irianis
ttf-adf-libris
ttf-adf-mekanus
ttf-adf-oldania
ttf-adf-romande
ttf-adf-switzera
ttf-adf-tribun
ttf-adf-universalis
ttf-adf-verana
ttf-aenigma
ttf-alee
ttf-ancient-fonts
ttf-aoyagi-kouzan-t
ttf-aoyagi-soseki
ttf-arabeyes
ttf-arphic-bkai00mp
ttf-arphic-bsmi00lp
ttf-arphic-gbsn00lp
ttf-arphic-gkai00mp
ttf-arphic-ukai
ttf-arphic-uming
ttf-atarismall
ttf-baekmuk
ttf-beteckna
ttf-bitstream-vera
ttf-bpg-georgian-fonts
ttf-breip
ttf-century-catalogue
ttf-dejavu-core
ttf-dejavu-extra
ttf-dejavu
ttf-dejima-mincho
ttf-dustin
ttf-dzongkha
ttf-ecolier-court
ttf-ecolier-lignes-court
ttf-engadget
ttf-evertype-conakry
ttf-f500
ttf-farsiweb
ttf-femkeklaver
ttf-fifthhorseman-dkg-handwriting
ttf-freefarsi
ttf-freefont
ttf-gfs-artemisia
ttf-gfs-baskerville
ttf-gfs-bodoni-classic
ttf-gfs-complutum
ttf-gfs-didot-classic
ttf-gfs-didot
ttf-gfs-gazis
ttf-gfs-neohellenic
ttf-gfs-olga
ttf-gfs-porson
ttf-gfs-solomos
ttf-gfs-theokritos
ttf-goudybookletter
ttf-hanazono
ttf-inconsolata
ttf-bengali-fonts
ttf-devanagari-fonts
ttf-gujarati-fonts
ttf-indic-fonts
ttf-kannada-fonts
ttf-malayalam-fonts
ttf-oriya-fonts
ttf-punjabi-fonts
ttf-tamil-fonts
ttf-telugu-fonts
ttf-isabella
ttf-jsmath
ttf-junicode
ttf-jura
ttf-kacst-one
ttf-kacst
ttf-kanjistrokeorders

# apt-get install `cat fonts`

via