Archive

Archive for the ‘Linux’ Category

chmod directory only or file only

September 20th, 2010 No comments

find -type d -print0 |xargs -0 chmod 755
find -type f -print0 |xargs -0 chmod 644

Categories: Linux Tags:

Building a hyper-v enabled linux kernel

December 15th, 2009 2 comments

Here are the instructions for building a hyper-v enabled linux kernel. The system I’m using is Ubuntu 9.10.

First get all the essential packages:

sudo apt-get build-dep linux

Install some more build essentials:

sudo apt-get install libncurses5 libncurses5-dev
sudo apt-get install kernel-package

Next step is to download the latest kernel packages from: http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.32/

Install them with the following commands:

sudo dpkg -i linux-headers-2.6.32-020632_2.6.32-020632_all.deb
sudo dpkg -i linux-image-2.6.32-020632-generic_2.6.32-020632_i386.deb
sudo dpkg -i linux-headers-2.6.32-020632-generic_2.6.32-020632_i386.deb
sudo dpkg -i linux-source-2.6.32_2.6.32-020632_all.deb

Update grub and reboot:

sudo update-grub
sudo reboot

Verify that you using the new kernel:

uname -a
Linux ubuntu 2.6.32-020632-generic #020632 SMP Thu Dec 3 10:58:45 UTC 2009 i686 GNU/Linux

Go the /usr/src/ and unzip the kernel source:

tar -jxf linux-source-2.6.32.tar.bz2
cd linux-source-2.6.32

Copy your current (old) kernel configuration file to the kernel source directory:

sudo cp -vi /boot/config-`uname -r` .config

Run the make menuconfig wizard

sudo make menuconfig

Enable the staging drivers

staging01

And include the hyper-v enabled drivers

staging02

Press ESC, ESC to return to the main menu’s and save the new configuration file!

Make clean and start building:

sudo make-kpkg clean
sudo fakeroot make-kpkg --initrd --append-to-version=-hyper-v kernel-image kernel-headers

You’ll find your kernel under /usr/src/

Install your kernel with: sudo dpkg -i *.deb
Update grub with: sudo update-grub

Reboot

After you’ve rebooted the system your modules are listed under: /lib/modules/2.6.32-hyper-v/kernel/drivers/staging/hv , to load them type:

sudo modprobe hv_vmbus
sudo modprobe hv_blkvsc
sudo modprobe hv_netvsc
sudo modprobe hv_storvsc

You could verify if the modules are loaded by using lsmod. Also check dmesg and /var/log/messages for any errors.

$ lsmod
Module Size Used by
hv_storvsc 21798 0
hv_netvsc 29396 0
hv_blkvsc 25207 0
hv_vmbus 43234 3 hv_storvsc,hv_netvsc,hv_blkvsc
lp 6868 0
psmouse 52658 0
iptable_filter 2199 0
serio_raw 3812 0
parport 31970 1 lp
i2c_piix4 8052 0
ip_tables 9157 1 iptable_filter
x_tables 13875 1 ip_tables
floppy 49858 0
tulip 43835 0

The following lines should be present in the /var/log/messages:

VMBUS_DRV: Vmbus initializing.... current log level 0x1f1f0006 (1f1f,6)
VMBUS: +++++++ Build Date=Dec 15 2009 06:23:59 +++++++
VMBUS: +++++++ Build Description=Version 2.0 +++++++
VMBUS: +++++++ Vmbus supported version = 13 +++++++
VMBUS: +++++++ Vmbus using SINT 2 +++++++
VMBUS: Windows hypervisor detected! Retrieving more info...
VMBUS: Vendor ID: Microsoft Hv
VMBUS: Interface ID: Hv#1
VMBUS: OS Build:6001-6.0-18-0.18016
VMBUS: Hypercall page VA=e1002000, PA=0x1f9e8000
VMBUS_DRV: irq 0x5 vector 0x35
VMBUS: SynIC version: 1
VMBUS: Vmbus connected!!
VMBUS_DRV: generating uevent - VMBUS_DEVICE_CLASS_GUID={c5295816-f63a-4d5f-8d1a4daf999ca185}
VMBUS: Channel offer notification - child relid 1 monitor id 0 allocated 1, type {32412632-86cb-44a2-9b5c50d1417354f5} instance {00000000-0000-8899-0000000000000000}
VMBUS: Channel offer notification - child relid 2 monitor id 1 allocated 1, type {32412632-86cb-44a2-9b5c50d1417354f5} instance {00000001-0000-8899-0000000000000000}
VMBUS_DRV: generating uevent - VMBUS_DEVICE_CLASS_GUID={32412632-86cb-44a2-9b5c50d1417354f5}

Precompiled kernels are here:

http://www.strengholt-online.nl/hyperv/linux-image-2.6.32-020632-hyper-v_i386.deb
http://www.strengholt-online.nl/hyperv/linux-headers-2.6.32-020632-hyper-v_i386.deb

Remark: The synthetic nic loaded by the hv_netvsc module is called seth0

Categories: Hyper-V, Linux Tags:

Bash verder laten gaan na stoppen proces

December 8th, 2009 No comments

Handig stukje code voor bash om een script verder te laten gaan indien een proces stopt:

while true;
do
PROCESS=`ps -A | grep xbmc.bin`
if [ "$PROCESS" = "" ]
then
echo "xbmc no longer running"
break
fi
done

Categories: Linux Tags:

Rsync server op Ubuntu

October 29th, 2009 No comments

Het installeren van een rsync server onder Ubuntu gaat als volgt:

Open het rsync default bestand:
pico /etc/default/rsync

Pas de volgende waarde aan naar true
RSYNC_ENABLE=true

Maak een password file aan met de volgende permissies:
chmod 600 /etc/rsyncd.scrt

Maak een rsync config bestand aan met de volgende inhoud:
/etc/rsyncd.conf

max connections = 2
log file = /var/log/rsync.log
timeout = 300
motd file = /etc/rsyncd.motd

[Music]
path = /home/xbmc/Music
comment = Music
uid = xbmc
gid = xbmc
read only = yes
auth users = xbmc
secrets file = /etc/rsyncd.scrt

Maak een welkom bestand aan:
/etc/rsyncd.motd
Welcome to my rsync server!

Vul het rsync bestand met een password:
/etc/rsyncd.scrt
xbmc:xbmc

Start rsync:
/etc/init.d/rsync start

Vanaf een andere machine content kopieren met:
rsync -aPv rsync://xbmc@192.168.0.104/Music /home/xbmc/Music

Categories: Linux Tags:

Cache leeggooien squid proxy

October 14th, 2009 No comments

Het leeggooien van de cache op een squid proxy doe je met de volgende commandline regels:

/etc/init.d/squid stop

rm -rf /var/lib/squid/cache/*

squid -z

/etc/init.d/squid start

Categories: Linux Tags:

Handige link: 25 handige linux commando’s

August 13th, 2009 No comments
Categories: Linux Tags:

Setting advanced power management level to 0xfe

Mocht je de onderstaande foutmelding krijgen bij het updaten:

setting advanced power management level to 0xfe

Dit heeft te maken met het updaten van bijvoorbeeld een kernel en de nvidia video drivers. De drivers zul je na een kernel update altijd weer opnieuw moeten installeren. De handleiding voor het installeren van nieuwe drivers staat hier: http://www.strengholt-online.nl/nvidia-1851814-installeren-op-xbmc-904/

Categories: Linux, XBMC Tags:

Moblin Linux Beta

Ik heb even gekeken naar de laatste versie van Moblin en het ziet er goed uit. Het systeem werkt snel en zou een ideale kandidaat zijn voor bijvoorbeeld de kleine nettops zoals de Asus EEE pc. Moblin is een kleine Linux distributie ontwikkeld door Intel. Zie voor meer informatie http://www.moblin.org

moblin2

moblin

Categories: Linux, Moblin Tags:

Door de proxy tunnelen op kantoor met behulp van putty

In deze handleiding ga ik stap voor stap uitleggen hoe je veilig over het internet kan surfen vanaf bijvoorbeeld een kantoorplek of verbinding kan maken een externe computer vanaf kantoor. We gaan dus poorten openen die normaal op het kantoor dicht zitten! Het uiteindelijke doel is een verbinding te creeren die zowel versleuteld is, als dat het voor het kantoor niet mogelijk is te achterhalen welke websites of adressen zijn bezocht. Wat nodig is; is kennis van Linux, netwerken en eventueel proxy’s.

De allereerste stap is ervoor te zorgen dat ergens op het Internet een Linux server draait. Dit kan de XBMC Media Center thuis zijn of in een datacenter. Verder kan dit fisiek of virtueel zijn. Het belangrijkste is dat poort 443 beschikbaar gemaakt wordt.

In dit voorbeeld heb ik gekozen voor Ubuntu Jeos, maar XBMC werkt uiteraard ook!
http://www.ubuntu.com/products/whatisubuntu/serveredition/jeos

De installatie is zeer klein en bij uitstek om bijvoorbeeld virtueel geinstalleerd te worden.

Na de installatie loggen we in via bijvoorbeeld SSH en gaan we de SSH poort veranderen waarop SSH draait. We kunnen dit doen door het bestand /etc/ssh/sshd_config te openen. We zoeken dan de regel #Port op en veranderen deze naar Port 443
Sla het bestand op en herstart de ssh deamon met het commando /etc/init.d/sshd restart

Als we nu opnieuw willen inloggen is het noodzakelijk om de ssh port naar 443 aan te passen, zoals in het onderstaande voorbeeld is te zien:

ssh01

Controleer of deze aanpassing goed werkt. Vanaf elders moet er nu verbinding gemaakt kunnen worden op port 443. Eventueel moeten de nodige poorten worden geforward van de router/modem naar de Linux omgeving. Zorg dat dit allemaal klopt en werkt.

Als dit werkt kunnen we wederom weer een stapje verder. We gaan nu naar de situatie op kantoor. Controleer wat de proxy gegevens van het kantoor zijn. Deze zijn op te vragen vanuit Internet Explorer. Ga naar Tools -> Internet Options -> Tabblad Connections -> Lan Settings. De proxy instellingen die hier gevonden worden moeten worden overgenomen en worden aangevuld op het proxy tabblad binnen putty. Zijn er geen proxy gegevens of zijn de instellingen leeg, dan laten we putty voor wat het is. We laten de waarde dan op none staan.

ssh02

Probeer nu verbinding te maken met de Linux omgeving. Als dit lukt is er een grote stap gezet. We hebben nu verbinding op gezet met een computer van bijvoorbeeld het kantoor naar de Linux omgeving. De Linux omgeving zal de rest van de verbinding gaan verzorgen. Dit wordt uitlegd in de volgende stappen.

Sluit putty af en open wederom putty. Ga nu naar het Tunnels gedeelte. Wat we hier gaan invoeren is de brug naar het Internet. De Linux omgeving staat hier feitelijk tussenin als brug van de pc op bijvoorbeeld kantoor naar een ander adres op het Internet. In dit voorbeeld wil ik mijn Windows computer overnemen met Remote Desktop. Het adres van deze Windows computer is in dit voorbeeld 123.123.123.123. De lokale poort die we gaan toewijzen is 8000 en Remote Desktop is altijd te benaderen op poort 3389. We koppelen in dit geval dus 8000 aan 123.123.123.123:3389. Zie het onderstaande voorbeeld. Vul alles correct in, klik op “add”, ga terug naar het hoofdscherm van putty en sla alles op. Maak wederom verbinding.

ssh03

Als we nu verbinding maken met de Linux omgeving is de brug een feit. We kunnen nu op de tunnel inloggen. Open Remote Desktop. Vul nu in localhost:8000 en klik op connect. We maken nu dus feitelijk verbinding met 123.123.123.123:3389!

rdp

Een vervolg stap zou zijn om op de Linux omgeving ook een proxy server te installeren. Kijk hiervoor naar mijn handleiding: http://linux.strengholt-online.nl/squid.htm

Voor ubuntu zijn het de volgende stappen:

sudo apt-get install squid

Open het bestand /etc/squid/squid.conf en voeg/verander de volgende regels:
Belangrijk! Afhankelijk van de proxy zullen bepaalde poorten wel of niet gaan werken. Ik heb er voor gekozen om mijn proxy op poort 80 te laten draaien om er zo verzekerd van te zijn dat mijn proxy altijd te bereiken is!

auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd
acl piethein proxy_auth REQUIRED
http_access allow piethein
http_access deny all
http_port 80

Sla het bestand op en maak nu een nieuw wachtwoord aan voor de opgegeven gebruiker. In dit voorbeeld piethein:

htpasswd -c /etc/squid/passwd piethein

Herstart nu de proxy met:

/etc/init.d/squid restart

Zodra de proxy is geinstalleerd kunnen we deze uiteraard ook tunnelen. Ga naar de Tunnels optie in putty. Voeg een nieuwe regel toe; bijvoorbeeld 9000 koppelen we aan 123.123.123.123:80.

Maak opnieuw verbinding. Pas de proxy gegevens van de browser aan zoals in het onderstaande voorbeeld:
(Handiger is wellicht om een tweede browser te installeren.)

firefox

En test of alles naar behoren werkt. Wat we nu hebben bereikt is dat we niet gebruik maken van de proxy server op kantoor maar van de proxy server van de Linux omgeving. Niemand komt nu ooit te weten welke adressen we hebben bezocht! Bijkomend voordeel is dat verbinding ook versleuteld is!

Categories: Linux Tags:

Unrarren van meerdere bestanden onder Linux

Unrarren van meerdere bestanden onder Linux doe je het met volgende commando:

find -type f -name '*.rar' -exec unrar x {} \;

Categories: Linux Tags:

The following signatures couldn’t be verified because the public key is not available

Onder mijn Ubuntu installatie had ik steeds het volgende probleem bij het draaien van een apt-get update: The following signatures couldn’t be verified because the public key is not available

De oplossing heb ik uiteindelijk gevonden door het installeren van de juiste key. De stappen die nodig zijn:

In terminal run:
gpg --keyserver keyserver.ubuntu.com --recv-keys $KEY
then
gpg --export --armor $KEY | sudo apt-key add -
where $KEY is key value you have missed. Do those 2 commands for each repository which you have problem.

Categories: Linux Tags:

Oude linux handleidingen verzameling

Oud maar voor sommige mensen handig:

http://linux.strengholt-online.nl/

Categories: Linux Tags: