Digital Ocean

linode is great

Scanner + Printer = Copy Machine

Multi-functional printer is just a combination of printer and scanner.
So, why don’t you make DIY copy machine in Linux if you have a printer and scanner?
Make sure your scanner is supported in SANE in Linux, and install scanbuttond for scanner’s button control.
scanbuttond seems no longer in active development, but it works OK in CentOS.

I added these commands in /usr/local/etc/buttonpressed.sh as follows:

In the button pressed event,

scanimage --mode lineart --resolution 300 -x 215 -y 297 > test.pnm
pnmtops -scale 1000 -dpi 300 test.pnm | lpr -PHL-2040
convert test.pnm /some/archive/`date + %Y%m%d%H%M`.pdf

So, whenever I press the button, it automatically starts scanning, then prints it out and archives as PDF.
The only thing that bugs me is the slow scanning time…

Xen Paravirtualized CentOS domU on CentOS 5.3 dom0

How to install paravirtualized CentOS 5.3 x64 as domU

# virt-install --paravirt \
               --name centosx64 \
               --ram 512 \
               --file /home/xen/images/centosx64.img \
               --file-size 10 \
               --nographics \
               --location http://mirrors.kernel.org/centos/5.3/os/x86_64/

It means Memory: 512MB, Disk Image: 10GB and No Graphics
Check the comment if you want to make use of pre-downloaded iso image or dvd.

If you want to add Desktop environment after instrallation, just add these.

# yum groupinstall "X Window System" 
# yum groupinstall "GNOME Desktop Environment"

Reference: http://www.cyberciti.biz/tips/rhel-centos-xen-virtualization-installation-howto.html

CentOS 5.3 + xen-3.4-testing

$ su –
$ cd /usr/src
$ hg clone http://xenbits.xensource.com/xen-3.4-testing.hg
$ cd xen-3.4-testing.hg
$ make world
$ make install
$ ./install.sh

* eth0 is not detected with this kernel at this point.
So, I have to build the kernel…

Reference: http://bderzhavets.wordpress.com/2009/04/17/setup-xen-34-centos-53-dom0-64-bit/

CentOS 5.3 + linux-2.6.27 kernel

Anyway, I wasn’t happy with the XEN 3.3 with the xen kernel 2.6.18-128.1.10.el5xen (got these by yum)
Let’s update the newer kernel and Xen.

So, download the xen kernel 2.6.27, then apply patches, and compile. Let’s see if it works with Xen 3.4…

$ git clone http://xenbits.xen.org/git-http/xenclient/linux-2.6.27.git
$ cd linux-2.6.27
$ git clone http://xenbits.xen.org/git-http/xenclient/linux-2.6.27-pq.git .git/patches
$ guilt-push -a

(These commands above are taken from Xen-devel ML.)
I have been looking for the best Linux distro + Xen, but I hope CentOS 5.3 will be the one.

$ make CONFIG_DEBUG_SECTION_MISMATCH=y

Error 1:
drivers/built-in.o: In function `acpi_ec_read’:
/usr/src/linux-2.6.27/drivers/acpi/ec.c:390: undefined reference to `in_query_wmi_event_data’

make: *** [.tmp_vmlinux1] Error 1

Patch 1: It’s fun to see this kind of comment “HACK ALERT!!” But just comment out this hack…

diff –git a/drivers/acpi/ec.c b/drivers/acpi/ec.c
index 2359480..b2c0221 100644
— a/drivers/acpi/ec.c
+++ b/drivers/acpi/ec.c
@@ -387,6 +387,7 @@ static int acpi_ec_read(struct acpi_ec *ec, u8 address, u8 * data)
/* HACK ALERT
* Please refer to wmi.c for an explanation on why we added this hack.
*/
+/*
if ( in_query_wmi_event_data == TRUE ) {
if ( address == 0x2b ) {
wmi_event_data_index = 0;
@@ -398,6 +399,7 @@ static int acpi_ec_read(struct acpi_ec *ec, u8 address, u8 * data)
wmi_event_data_index++;
}
}
+*/

return result;
}

$ make
$ make install
$ make modules_install
$ DEPMOD 2.6.27.19-5.1
$ mkinitrd /boot/initrd-2.6.27.19-5.1.img 2.6.27.19-5.1

Then, edit /boot/grub/menu.lst accordingly.