Linux Mint LMDE Server Setup #1: Install LTSP Server

Here is how I installed LTSP Server for 32 bit Clients on Linux Mint Debian Edition 64 bit MATE:

1. Install LTSP server:

$ sudo apt-get install ltsp-server-standalone

2. Set static IP address:

My computer has 3 network adapters (eth0, eth1 and wlan0). I want eth1 to be used by dhcp-server and the rest will be dynamically managed by network-manager.

2.1. Start text editor:

$ sudo nano /etc/network/interfaces

2.2. My “/etc/network/interfaces” looks like this:

# interfaces(5) file used by ifup(8) and ifdown(8)
# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d
auto eth1
iface eth1 inet static
 address 192.168.67.1
 netmask 255.255.255.0

3. Configure DHCP Server:

3.1. Edit file “/etc/ltsp/dhcpd.conf”:

#
# Default LTSP dhcpd.conf config file.
#

authoritative;

subnet 192.168.67.0 netmask 255.255.255.0 {
 range 192.168.67.20 192.168.67.250;
 option domain-name "homenet.local";
 option domain-name-servers 192.168.67.1;
 option broadcast-address 192.168.67.255;
 option routers 192.168.67.1;
 next-server 192.168.67.1;
# get-lease-hostnames true;
 option subnet-mask 255.255.255.0;
 option root-path "/opt/ltsp/i386";
 if substring( option vendor-class-identifier, 0, 9 ) = "PXEClient" {
 filename "/ltsp/i386/pxelinux.0";
 } else {
 filename "/ltsp/i386/nbi.img";
 }
}

3.2. Append “/etc/ltsp/dhcpd.conf” at the end of file “/etc/dhcp/dhcpd.conf”:

$ su
# echo "include \"/etc/ltsp/dhcpd.conf\";" >> /etc/dhcp/dhcpd.conf

4. Build client:

$ sudo ltsp-build-client --dist wheezy --arch i386

5. Share LTSP root directory on NFS drive:

$ su
# echo "/opt/ltsp          *(ro,no_root_squash,async,no_subtree_check)" >> /etc/exports

6. Restart Computer.

7. Boot Thin Clients:

screenshot-20150222@184523

8. Enjoy!

vsftpd with SSL for anonymous user on Linux Mint 17.1

Here is how I install and configure vsftpd with SSL for anonymous user on Linux Mint 17.1

1. Install vsftpd

$ sudo apt-get install vsftpd

2. Edit file “/etc/vsftpd.conf”. Here is my configuration file:

listen=YES
anonymous_enable=YES
anon_root=/home/ftp
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=YES
anon_umask=022
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chown_uploads=YES
chown_username=ftp
async_abor_enable=YES
ascii_upload_enable=YES
ftpd_banner=Welcome to Linux Mint Server FTP service.
chroot_local_user=NO
chroot_list_enable=NO
ls_recurse_enable=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
ssl_enable=YES
allow_anon_ssl=YES
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=YES
ssl_sslv3=YES
require_ssl_reuse=NO
ssl_ciphers=HIGH
force_dot_files=YES
hide_ids=YES
anon_world_readable_only=NO
file_open_mode=0755

3. Create ftp directory for anonymous. I also created 2 subdirectories, one directory only for anonymous download (files or folders in this directory cannot be modified or deleted) and the other one for anonymous upload (files and folders in this directory can be modified by anonymous user).

$ sudo mkdir /home/ftp
$ sudo mkdir /home/ftp/download
$ sudo mkdir /home/ftp/upload

4. Set folder permissions

$ sudo chown -R ftp:ftp /home/ftp
$ sudo chmod a-w /home/ftp
$ sudo chmod 555 /home/ftp/download
$ sudo chmod 777 /home/ftp/upload

5. Create SSL certificate

$ sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

6. Start vsftpd. Test vsftpd by starting it manually.

$ sudo vsftpd

7. Restart the system.

8. Now we can test the new ftp server using Filezilla. Open Filezilla and put the server address in and leave the username and password blank. We should see something like this.

vsftpd_anonymous9. If we want to connect using existing username, we have to set an account for that server. To open this window click File->Server Manager. After put in username, password and account name click connect.

vsftpd_user10. That’s it!

Build shellinabox for Tiny Core Linux 5.3

Introduction:

With this extension one can logon to remote console using a webbrowser (with ssh encryption).

Prerequisites:

1. openssl-1.0.0.tcz
2. openssl-1.0.0-dev.tcz

Build:

1. Download shellinabox source:

~$ wget http://shellinabox.googlecode.com/files/shellinabox-2.14.tar.gz

2. Extract tarball:

~$ tar xzvf shellinabox-2.14.tar.gz

3. Configure:

~$ cd shellinabox-2.14
~/shellinabox-2.14$ ./configure

4. Make:

~/shellinabox-2.14$ make

5. Install:

~/shellinabox-2.14$ make install

Create Tiny Core Linux Extension:

1. Create SSL (self signed) Certificate:

~/shellinabox-2.14$ cd ~
~$ ln -s /usr/local/etc/ssl /usr/local/ssl
~$ openssl req -new -x509 -keyout certificate.pem -out certificate.pem -days 365 -nodes

2. Create a new directory:

~$ mkdir shellinabox

3. Prepare sub directories:

~$ mkdir -p shellinabox/usr/local/bin
~$ mkdir -p shellinabox/usr/local/etc/ssl/certs
~$ mkdir -p shellinabox/usr/local/share/doc
~$ mkdir -p shellinabox/usr/local/share/man/man1

4. Copy files and directories into newly created directories:

~$ cp /usr/local/bin/shellinaboxd shellinabox/usr/local/bin/.
~$ mv certificate.pem shellinabox/usr/local/etc/ssl/certs/.
~$ cp -R /usr/local/share/doc/shellinabox shellinabox/usr/local/share/doc/.
~$ cp /usr/local/share/man/man1/shellinaboxd.1 shellinabox/usr/local/share/man/man1/.

5. Create extension module:

  ~$ mksquashfs shellinabox shellinabox.tcz

Install:

1. Copy shellinabox.tcz into directory /mnt/sda1/tce/optional/

2. Make shellinabox to be loaded on boot:

sudo echo shellinabox.tcz >> /mnt/sda1/tce/onboot.lst

3. Add line “shellinaboxd -c /usr/local/etc/ssl/certs -s /:LOGIN” to the end of file “/opt/bootlocal.sh”

   or execute this command:

sudo echo "shellinaboxd -c /usr/local/etc/ssl/certs -s /:LOGIN" >> /opt/bootlocal.sh

4. Reboot the system and shellinabox should start automatically at boot time.

5. Connect shellinabox using webbrowser from other computer: <tiny-core-linux-ip-address>:4200

Enjoy!

Build x11vnc (VNC Server) for Tiny Core Linux 5.3

Introduction:

With this VNC Server one can control real x-display desktop remotely.

Prerequisites:

1. Xorg-7.7-dev.tcz
2. compiletc.tcz
3. squashfs-tools-4.x.tcz
4. openssl-1.0.0-dev.tcz

Build:

1. Download x11vnc source:

~$ wget http://downloads.sourceforge.net/project/libvncserver/x11vnc/0.9.13/x11vnc-0.9.13.tar.gz

2. Extract tarball:

~$ tar xzvf x11vnc-0.9.13.tar.gz

3. Configure:

~$ cd x11vnc-0.9.13
~/x11vnc-0.9.13$ ./configure

4. Make:

~/x11vnc-0.9.13$ make

5. Install:

~/x11vnc-0.9.13$ make install

Create Tiny Core Linux Extension:

1. Create a new directory:

~/x11vnc-0.9.13$ cd ~
~$ mkdir x11vnc

2. Prepare sub directories:

~$ mkdir -p x11vnc/usr/local/bin
~$ mkdir -p x11vnc/usr/local/man/man1
~$ mkdir -p x11vnc/usr/local/share/applications

3. Copy files and directories into newly created directories:

~$ cp /usr/local/bin/x11vnc x11vnc/usr/local/bin/.
~$ cp /usr/local/man/man1/x11vnc.1 x11vnc/usr/local/man/man1/.
~$ cp /usr/local/share/applications/x11vnc.desktop x11vnc/local/share/applications/.
~$ cp -R /usr/local/share/x11vnc x11vnc/local/share/.

4. Create extension module:

~$ mksquashfs x11vnc x11vnc.tcz

Install:

1. Copy x11vnc.tcz to /mnt/sda1/tce/optional/.
2. Copy startvnc to /home/tc/.X.d/.
3. Reboot.

Enjoy!

Qt-Creator on Tiny Core Linux 5.3

Here is how I install Qt-Creator on Tiny Core Linux 5.3. I use the script from here.

Prerequisite: Qt 5.3.0 SDK

1. Create “build” directory and “cd” into that directory:

tc@box:~$ mkdir build
tc@box:~$ cd build

2. Download source code from http://download.qt-project.org

tc@box:~$ wget http://download.qt-project.org/official_releases/qtcreator/3.1/3.1.1/qt-creator-opensource-src-3.1.1.tar.gz

3. Copy following text and save it as “qt-creator.desktop”

[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Terminal=false
Name=Qt Creator
Exec=/usr/local/bin/qtcreator
Icon=thisApp
X-Window-Icon=
X-HildonDesk-ShowInToolbar=true
X-Osso-Type=application/x-executable
X-FullPathIcon=/usr/local/share/icons/hicolor/256x256/apps/QtProject-qtcreator.png

4. Copy following line and save it as “qt-creator.tcz.dep”

qt5-sdk.tcz

5. Save following script and run it:

tar xvf qt-creator-opensource-src-3.1.1.tar.gz

# Start compiling
cd qt-creator-opensource-src-3.1.1
qmake -r
make -j3
make INSTALL_ROOT=/tmp/qt-creator/usr/local install

cd ..
# Desktop file
mkdir -p /tmp/qt-creator/usr/local/share/applications
cp qt-creator.desktop /tmp/qt-creator/usr/local/share/applications

# Package
mksquashfs /tmp/qt-creator qt-creator.tcz

6 If it’s finished, you can load qt-creator extension with this command:

tc@box:~/build$ tce-load -i qt-creator.tcz

7. If you want to load it automatically on boot, do the following commands:

tc@box:~/build$ sudo cp qt-creator.tcz /mnt/sda1/tce/optional/.
tc@box:~/build$ sudo cp qt-creator.tcz.dep /mnt/sda1/tce/optional/.
tc@box:~/build$ sudo echo "qt-creator.tcz" >> /mnt/sda1/tce/onboot.lst

8. That’s it. Enjoy!

Tiny Core Linux 5.3: setting up ftp server (bftpd) for anonymous user

Here is how I set up an ftp server for anonymous user on Tiny Core Linux 5.3:

1. Using “Apps” install “bftpd” package and make it to load on boot:

apps_bftpd2. Edit file “/usr/local/etc/bftpd.conf” like following:

user ftp {
  #Any password fits.
  ANONYMOUS_USER="yes"
#  DENY_LOGIN="Anonymous login disabled."
  ROOTDIR="/mnt/sda1/ftp"
}

user anonymous {
  #If the client wants anonymous, ftp is taken instead.
  ALIAS="ftp"
}

Basically what I did was: comment out “DENY_LOGIN” and edit both “ROOTDIR” and “ALIAS”.

3. Save “bftpd.conf” to your persistence directory and edit file “/opt/bootlocal.sh”:

sudo echo "bftpd -d -c <YOUR/PERSISTENT/PATH>/bftpd.conf" >> /opt/bootlocal.sh"

4. That’s it!

Qt 5.3.0 SDK on Tiny Core Linux 5.3

After many hours of struggling trying to compile Qt 5 on Tiny Core, I found a nice script here. And here is what I have done to get it working.

Prerequisites: compiletc, squashfs-tools-4.x, libGL-dev, gtk2-dev and python.

1. Create “build” directory and “cd” into that directory:

tc@box:~$ mkdir build
tc@box:~$ cd build

2. Download source code from http://download.qt-project.org

tc@box:~/build$ wget http://download.qt-project.org/official_releases/qt/5.3/5.3.0/single/qt-everywhere-opensource-src-5.3.0.tar.gz

3. Save the following script and run it (I have modified this script for qt 5.3.0):

# This will package a release of QT5 SDK
tar xvzf qt-everywhere-opensource-src-5.3.0.tar.gz

# Launch configure script
tce-load -i libGL-dev
# This will load all the X development files
tce-load -i gtk2-dev
# This is needed by the install script
tce-load -i python

cd qt-everywhere-opensource-src-5.3.0

echo Starting QT configure script. Please choose the Open Source version
echo and accept the license if you want

./configure --prefix=/usr/local -qt-xcb

# Starting compilation process
make -j3
# Here we use the -j3 option because (don't know why) during
# the installation process the QT-SDK compiles the V8 Javascript
# VM
INSTALL_ROOT=/tmp/qt-sdk make install -j3

# Packaging
cd ..
mksquashfs /tmp/qt-sdk qt5-sdk.tcz

4. If it’s finished, you can load qt 5 extension with this command:

tc@box:~/build$ tce-load -i qt5-sdk.tcz

5. If you want to load it automatically on boot, do the following commands:

tc@box:~/build$ sudo cp qt5-sdk.tcz /mnt/sda1/tce/optional/.
tc@box:~/build$ sudo echo "python" > /mnt/sda1/tce/optional/qt5-sdk.tcz.dep
tc@box:~/build$ sudo echo "qt5-sdk.tcz" >> /mnt/sda1/tce/onboot.lst

6. That’s it. Enjoy!

Tiny Core Linux: setting up ftp server (vsftpd) for anonymous user

Here I will show you how I set up an ftp server for anonymous user with read/write acces on Tiny Core Linux 4.7:

1. Using “Apps” install Package “vsftpd.tcz” to be loaded on boot.
vsftpd01
2. Edit “/usr/local/etc/vsftpd.conf”. Mine looks like this:

anonymous_enable=YES
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_world_readable_only=NO
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
ascii_upload_enable=YES
ascii_download_enable=YES
ftpd_banner=Welcome to Tiny Core Linux FTP service.
listen=YES
ftp_username=ftp
anon_root=/home/ftp

3. Save “vsftpd.conf” in your backup folder (this is important for persistency).

4. Create user “ftp” (you can leave the password blank):

tc@box:~$ sudo adduser ftp

5. Remove write permission on “ftp” directory:

tc@box:~$ sudo chmod a-w /home/ftp

6. Create “upload” directory and change permissions:

tc@box:~$ sudo mkdir /home/ftp/upload
tc@box:~$ sudo chmod 777 /home/ftp/upload

7. create a new file “.X.d/ftpd”. Mine looks like this:

#!/bin/sh
sudo echo "ftp:x:1000:1000:Linux User,,,:/home/ftp:/bin/sh" >> /etc/passwd
sudo cp </your/backup/path>/vsftpd.conf /usr/local/etc/.
sudo vsftpd &

8. Save the file and make it executable:

tc@box:~$ chmod +x .X.d/ftpd

9. That’s it! Now your ftp server will be automatically loaded and started on boot.

GEET – Gasoline Vapor System

Lawnmower_1Since I got this Lawnmower, I always had one problem: if the engine is warm, it stopped to work and it could not be started anymore. But if the engine cooled down, it started without any problem. I have replaced spark plug, ignition coil and fuel line but I had no luck. This is AS-Motor Lawnmower with Briggs and Stratton engine. I thought before I buy a new carburetor, I will try something else: GEET System (more info: JNLLabs). With GEET Setup this Lawnmower works great.

This is the heart of GEET System:

lm_03 lm_04And here are some pictures taken by my 5-year-old son:

lm_05 lm_06 lm_07