Wednesday, October 28, 2009

Ethernet File Transfer between Windows XP and Windows Vista

I found it hard to set up file transfer between Windows XP and Windows Vista using direct Ethernet connection. Sometimes, Windows Vista can see a Windows XP machine, but Windows XP somehow can't see a Windows Vista machine. I connected a PC running Windows XP and a PC running Windows Vista with a Ethernet crossover cable.



Setting Up Windows XP for direct Ethernet connection


  1. Make sure that the following items are enabled in the Local Area Connection Properties dialog.

    • Client for Microsoft Networks
    • File and Printer Sharing for Microsoft Networks
    • Internet Protocol (TCP/IP)

    LAN Properties

    You can open the Local Area Connection Properties dialog by opening Control Panel, Choosing Network and Internet Connections category, clicking Network Connections icon, right-clicking the icon for your Ethernet connection and choosing Properties from the right-click menu.


  2. Select Internet Protocol (TCP/IP) and click Properties. Internet Protocol (TCP/IP) Properties dialog will show up. Click Use the following IP address and specify IP address and subnet mask. Then, click OK to close the Internet Protocol Properties dialog.

    Windows XP TCP/IP Properties
  3. Open the Advanced tab and click the Settings button in Windows Firewall area.

    LAN Advanced Properties
  4. Windows Firewall window will show up. Open the Exceptions tab and make sure that File and Printer Sharing is enabled. Click OK to close Windows Firewall window. Then, click the Close button in the Local Area Network Properties window.
  5. Now connect the PC running Windows XP to a PC running Windows Vista with a Ethernet crossover cable.
  6. In the Network Connections window, click and select the icon for your Ethernet connection. In the left pane of the Network Connections window, click Set up a home or small office network. Keep clicking the Next button until you reach the Select a connection method step. Choose Other. Then choose "This computer belongs to a network that does not have an Internet connection" and click Next.
  7. Make sure that your Computer name is unique. Click Next.
  8. Type a Workgroup name that will be shared with a PC running Windows Vista. Click Next.
  9. Turn on the file and printer sharing. Click Next.
  10. Review your network settings and click Next.
  11. Select "Just finish the wizard." Click the Finish button to close the wizard.


Setting Up Windows Vista for direct Ethernet Connection



  1. Open the Control Panel. Under the Network and Internet category, select View network status and tasks. In the left pane, click Manage network connections. Right-click the icon for your Ethernet connection and choose Properties.
  2. In the Local Area Connection Properties dialog, make sure the following items are enabled.
    • Client for Microsoft Networks
    • File and Printer Sharing for Microsoft Networks
    • Internet Protocol Version 4 (TCP/IPv4)
    • Link-Layer Topology Discovery Responder
    • Link-Layer Topology Discovery Mapper I/O Driver

  3. Select Internet Protocol Version 4 (TCP/IPv4) and click Properties. Click Use the following IP address and enter unique values for IP address and Subnet mask.

    Windows Vista TCP/IPv4 Properties
  4. Go back to the Network and Sharing Center. Unidentified network will be shown. Click Customize and choose Private.
  5. In the Sharing and Discovery area, make sure that you have the following settings.

    • Network discovery: On

      Expand the Network discovery section and verify that the workgroup is the same as with Windows XP.
    • File Sharing: On
    • Public folder sharing: On

      Expand this section and enable Turn on sharing so anyone with network access can open, change, and create files
    • Printer sharing: On or Off
    • Password protected sharing: Off

      To avoid unnecessary problems, check it off.
    • Media sharing: On

Sunday, October 25, 2009

Linux: X.org Kdrive Server on Debian 6.0 Squeeze

Kdrive is a minimal X11 server that runs as a single executable with little dependencies. I use Kdrive for my Web-only/Rescue Linux systems. Before compiling Kdrive, I installed the following packages on my box running Debian 6.0 Squeeze:

  • bison

  • g++-4.3

  • libexpat1-dev

  • libpciaccess-dev

  • libpixman-1-dev

  • libssl-dev

  • libxdamage-dev

  • libxfont-dev

  • libxi-dev

  • libxkbfile-dev

  • libxmu-dev

  • libxxf86vm-dev

  • make

  • x11proto-bigreqs-dev

  • x11proto-composite-dev

  • x11proto-render-dev

  • x11proto-resource-dev

  • x11proto-scrnsaver-dev

  • x11proto-video-dev

  • x11proto-xcmisc-dev

  • x11proto-xf86dga-dev

  • x11proto-xinerama-dev

  • xkb-data

Installing X Protocol Headers

  1. I installed xproto like this:

    tar xzf x11proto-core_7.0.22.orig.tar.gz
    cd xproto-7.0.15
    ./configure
    make install

Compiling Xfbdev

The following commands will get the job done:

tar xzf xorg-server_1.9.3.tar.bz2

cd xorg-server-1.9.3/

./configure --disable-xorg --enable-kdrive --enable-kdrive-evdev --enable-config-udev --disable-aiglx --disable-glx --disable-dri --disable-dri2 --with-xkb-path=/usr/share/X11/xkb --with-xkb-output=/var/lib/xkb --with-xkb-bin-directory=/usr/bin --with-default-xkb-rules=xorg --with-default-xkb-model=pc105 --with-default-xkb-layout=us

make

make install

To Use Xfbdev

An executable file Xfbdev will be created in /usr/local/bin. To be able to use the Xfbdev server, framebuffer video must be enabled either in the kernel or as a module. If VESAFB feature was enabled in the kernel, you can use GRUB bootloader in the following way to boot Linux in a framebuffer video mode:

kernel (hd0,3)/boot/grub/vmlinuz-2.6.31.5 vga=0x314 video=vesafb:mtrr
initrd (hd0,3)/boot/grub/initrd.bin
Once framebuffer video has been enabled, Xfbdev can be started in the following way:

/usr/local/bin/Xfbdev :0 vt7 dpms -ac -br +bs -dpi 96 -mouse evdev,5,device=/dev/input/event2 -2button -keybd evdev,,device=/dev/input/event3 -fp /usr/local/share/fonts,/usr/share/fonts/X11/Type1,/usr/share/fonts/truetype/ttf-dejavu -nolisten TCP
Here is my recent Xfbdev build:

Saturday, October 24, 2009

Linux: To Compile X.org Server 1.6.5 on Debian 5.0 Lenny

I compiled X.org server 1.6.5 on Debian 5.0 Lenny because Lenny's X Windows couldn't run optimally on my Toshiba NB205 netbook's 1024x600 screen. To prepare for compilation, I installed the following packages:



  • bison
  • g++-4.3 or g++-3.4
  • libexpat1-dev
  • libpciaccess-dev
  • libssl-dev
  • libxdamage-dev
  • libxfont-dev
  • libxi-dev
  • libxkbfile-dev
  • libxmu-dev
  • libxxf86vm-dev
  • make
  • x11proto-bigreqs-dev
  • x11proto-composite-dev
  • x11proto-gl-dev
  • x11proto-render-dev
  • x11proto-resource-dev
  • x11proto-scrnsaver-dev
  • x11proto-video-dev
  • x11proto-xcmisc-dev
  • x11proto-xf86dga-dev
  • x11proto-xf86dri-dev
  • x11proto-xinerama-dev
  • xkb-data


g++-3.4 can be found in Debian Etch. I will put my compiled X.org 1.6.5 and dependencies in /usr/local to avoid any conflict with Debian packages:



Compiling Pixman and libDRM


  1. First, I downloaded pixman_0.16.2.orig.tar.gz from Debian Sid's libpixman-1-dev page and compiled pixman as follows:


    tar xzf pixman_0.16.2.orig.tar.gz
    cd pixman-0.16.2/
    ./configure
    make install

    The following files are created:


    /usr/local/include/pixman-1/

    /usr/local/lib/libpixman-1.a

    /usr/local/lib/libpixman-1.la

    /usr/local/lib/libpixman-1.so.0

    /usr/local/lib/libpixman-1.so.0.16.2

    /usr/local/lib/libpixman-1.so

    /usr/local/lib/pkgconfig/pixman-1.pc


  2. I downloaded libdrm_2.4.15.orig.tar.gz from Debian Sid's libdrm-dev page and compiled libdrm2 like this:


    tar xzf libdrm_2.4.14.orig.tar.gz
    cd libdrm-2.4.14/
    ./configure
    make install


    This creates the following files:


    /usr/local/include/drm/

    /usr/local/include/intel_bufmgr.h

    /usr/local/include/xf86drm.h

    /usr/local/include/xf86drmMode.h

    /usr/local/lib/libdrm.la

    /usr/local/lib/libdrm.so

    /usr/local/lib/libdrm.so.2

    /usr/local/lib/libdrm.so.2.4.0

    /usr/local/lib/libdrm_intel.la

    /usr/local/lib/libdrm_intel.so

    /usr/local/lib/libdrm_intel.so.1

    /usr/local/lib/libdrm_intel.so.1.0.0

    /usr/local/lib/pkgconfig/libdrm.pc

    /usr/local/lib/pkgconfig/libdrm_intel.pc



Installing X Protocol Headers


  1. Then, I downloaded x11proto-dri2_2.1.orig.tar.gz from Debian Sid's x11proto-dri2-dev page and compiled dri2proto like this:


    tar xzf x11proto-dri2_2.1.orig.tar.gz
    cd dri2proto-2.1/
    ./configure
    make install

    This installs the following files:


    /usr/local/include/X11/extensions/dri2proto.h

    /usr/local/include/X11/extensions/dri2tokens.h

    /usr/local/lib/pkgconfig/dri2proto.pc


  2. I downloaded x11proto-core_7.0.16.orig.tar.gz from x11proto-core-dev and installed xproto:


    tar xzf x11proto-core_7.0.15.orig.tar.gz
    cd xproto-7.0.15
    ./configure
    make install


    I downloaded x11proto-xext_7.0.4.orig.tar.gz from Debian Sid's x11proto-xext-dev page and installed xextproto:


    tar xzf x11proto-xext_7.0.4.orig.tar.gz
    cd xextproto-7.0.4
    ./configure
    make install

    The following files are created.


    /usr/local/lib/pkgconfig/xproto.pc
    /usr/local/lib/pkgconfig/xextproto.pc
    /usr/local/include/X11/extensions/dpms.h
    /usr/local/include/X11/extensions/dpmsstr.h
    /usr/local/include/X11/extensions/extutil.h
    /usr/local/include/X11/extensions/ge.h
    /usr/local/include/X11/extensions/geproto.h
    /usr/local/include/X11/extensions/Xge.h
    /usr/local/include/X11/extensions/lbxbuf.h
    /usr/local/include/X11/extensions/lbxbufstr.h
    /usr/local/include/X11/extensions/lbxdeltastr.h
    /usr/local/include/X11/extensions/lbximage.h
    /usr/local/include/X11/extensions/lbxopts.h
    /usr/local/include/X11/extensions/lbxstr.h
    /usr/local/include/X11/extensions/lbxzlib.h
    /usr/local/include/X11/extensions/MITMisc.h
    /usr/local/include/X11/extensions/mitmiscstr.h
    /usr/local/include/X11/extensions/multibuf.h
    /usr/local/include/X11/extensions/multibufst.h
    /usr/local/include/X11/extensions/security.h
    /usr/local/include/X11/extensions/securstr.h
    /usr/local/include/X11/extensions/shape.h
    /usr/local/include/X11/extensions/shapestr.h
    /usr/local/include/X11/extensions/shmstr.h
    /usr/local/include/X11/extensions/sync.h
    /usr/local/include/X11/extensions/syncstr.h
    /usr/local/include/X11/extensions/Xag.h
    /usr/local/include/X11/extensions/Xagstr.h
    /usr/local/include/X11/extensions/Xcup.h
    /usr/local/include/X11/extensions/Xcupstr.h
    /usr/local/include/X11/extensions/Xdbe.h
    /usr/local/include/X11/extensions/Xdbeproto.h
    /usr/local/include/X11/extensions/XEVI.h
    /usr/local/include/X11/extensions/XEVIstr.h
    /usr/local/include/X11/extensions/Xext.h
    /usr/local/include/X11/extensions/XLbx.h
    /usr/local/include/X11/extensions/XShm.h
    /usr/local/include/X11/extensions/xtestext1.h
    /usr/local/include/X11/extensions/XTest.h
    /usr/local/include/X11/extensions/xteststr.h
    /usr/local/include/X11/Xfuncproto.h
    /usr/local/include/X11/Xpoll.h
    /usr/local/include/X11/ap_keysym.h
    /usr/local/include/X11/DECkeysym.h
    /usr/local/include/X11/HPkeysym.h
    /usr/local/include/X11/keysymdef.h
    /usr/local/include/X11/keysym.h
    /usr/local/include/X11/Sunkeysym.h
    /usr/local/include/X11/Xalloca.h
    /usr/local/include/X11/Xarch.h
    /usr/local/include/X11/Xatom.h
    /usr/local/include/X11/Xdefs.h
    /usr/local/include/X11/XF86keysym.h
    /usr/local/include/X11/Xfuncs.h
    /usr/local/include/X11/X.h
    /usr/local/include/X11/Xmd.h
    /usr/local/include/X11/Xosdefs.h
    /usr/local/include/X11/Xos.h
    /usr/local/include/X11/Xos_r.h
    /usr/local/include/X11/Xproto.h
    /usr/local/include/X11/Xprotostr.h
    /usr/local/include/X11/Xthreads.h
    /usr/local/include/X11/Xw32defs.h
    /usr/local/include/X11/XWDFile.h
    /usr/local/include/X11/Xwindows.h
    /usr/local/include/X11/Xwinsock.h


  3. I downloaded x11proto-input_1.5.0.orig.tar.gz from Debian Sid's x11proto-input-dev page and installed inputproto:


    tar xzf x11proto-input_1.5.0.orig.tar.gz
    cd inputproto-1.5.0/
    ./configure
    make install

    The following files are copied to the system.


    /usr/local/include/X11/extensions/XI.h

    /usr/local/include/X11/extensions/XInput.h

    /usr/local/include/X11/extensions/XIproto.h

    /usr/local/lib/pkgconfig/inputproto.pc


  4. I downloaded x11proto-randr_1.3.1.orig.tar.gz from Debian Sid's x11proto-randr-dev page and installed randrproto like this:


    tar xzf x11proto-randr_1.3.0.orig.tar.gz
    cd randrproto-1.3.0/
    ./configure
    make install

    This installs the following files:


    /usr/local/include/X11/extensions/randr.h

    /usr/local/include/X11/extensions/randrproto.h

    /usr/local/lib/pkgconfig/randrproto.pc

    /usr/local/share/doc/randrproto/randrproto.txt


  5. I downloaded xtrans_1.2.5.orig.tar.gz from Debian Sid's xtrans-dev page and installed xtrans like this:


    tar xzf xtrans_1.2.4.orig.tar.gz
    cd xtrans-1.2.4
    ./configure
    make install

    The following files are installed:


    /usr/local/include/X11/Xtrans/

    /usr/local/lib/pkgconfig/xtrans.pc

    /usr/local/share/aclocal/xtrans.m4



Compiling Mesa 3D Library


Then, I downloaded mesa_7.6.orig.tar.gz from Debian and compiled Mesa 7.6 as follows:


tar xzf mesa_7.6.orig.tar.gz
cd mesa-7.6/
./configure
make
make install

The following files are installed:


/usr/local/include/GL/GLwDrawA.h

/usr/local/include/GL/GLwDrawAP.h

/usr/local/include/GL/GLwMDrawA.h

/usr/local/include/GL/GLwMDrawAP.h

/usr/local/include/GL/dmesa.h

/usr/local/include/GL/ggimesa.h

/usr/local/include/GL/gl.h

/usr/local/include/GL/gl_mangle.h

/usr/local/include/GL/glew.h

/usr/local/include/GL/glext.h

/usr/local/include/GL/glfbdev.h

/usr/local/include/GL/glu.h

/usr/local/include/GL/glu_mangle.h

/usr/local/include/GL/glut.h

/usr/local/include/GL/glutf90.h

/usr/local/include/GL/glx.h

/usr/local/include/GL/glx_mangle.h

/usr/local/include/GL/glxew.h

/usr/local/include/GL/glxext.h

/usr/local/include/GL/internal/dri_interface.h

/usr/local/include/GL/mesa_wgl.h

/usr/local/include/GL/mglmesa.h

/usr/local/include/GL/osmesa.h

/usr/local/include/GL/svgamesa.h

/usr/local/include/GL/vms_x_fix.h

/usr/local/include/GL/wglew.h

/usr/local/include/GL/wglext.h

/usr/local/include/GL/wmesa.h

/usr/local/lib/dri/EGL_i915.so

/usr/local/lib/dri/ffb_dri.so

/usr/local/lib/dri/i810_dri.so

/usr/local/lib/dri/i915_dri.so

/usr/local/lib/dri/i965_dri.so

/usr/local/lib/dri/mach64_dri.so

/usr/local/lib/dri/mga_dri.so

/usr/local/lib/dri/r128_dri.so

/usr/local/lib/dri/r200_dri.so

/usr/local/lib/dri/r300_dri.so

/usr/local/lib/dri/r600_dri.so

/usr/local/lib/dri/radeon_dri.so

/usr/local/lib/dri/s3v_dri.so

/usr/local/lib/dri/savage_dri.so

/usr/local/lib/dri/sis_dri.so

/usr/local/lib/dri/swrast_dri.so

/usr/local/lib/dri/tdfx_dri.so

/usr/local/lib/dri/trident_dri.so

/usr/local/lib/dri/unichrome_dri.so

/usr/local/lib/libEGL.so

/usr/local/lib/libEGL.so.1

/usr/local/lib/libEGL.so.1.0

/usr/local/lib/libGL.so

/usr/local/lib/libGL.so.1

/usr/local/lib/libGL.so.1.2

/usr/local/lib/libGLU.so

/usr/local/lib/libGLU.so.1

/usr/local/lib/libGLU.so.1.3.070600

/usr/local/lib/libGLw.so

/usr/local/lib/libGLw.so.1

/usr/local/lib/libGLw.so.1.0.0

/usr/local/lib/libglut.so

/usr/local/lib/libglut.so.3

/usr/local/lib/libglut.so.3.7.1

/usr/local/lib/pkgconfig/dri.pc

/usr/local/lib/pkgconfig/gl.pc

/usr/local/lib/pkgconfig/glu.pc

/usr/local/lib/pkgconfig/glut.pc

/usr/local/lib/pkgconfig/glw.pc


Compiling X.org Server


Then, I downloaded xorg-server_1.6.5.orig.tar.gz from Debian and compiled X.org server. The X.org server depends on libpciaccess0 library, so be sure to install libpciaccess-dev before building a X.org server.


tar xzf xorg-server_1.6.5.orig.tar.gz

cd xorg-server-1.6.5/

./configure --sysconfdir=/etc --localstatedir=/var --with-xkb-path=/usr/share/X11/xkb --with-xkb-output=/var/tmp

make

make install

The following files are installed:


/usr/local/bin/X
/usr/local/bin/Xnest
/usr/local/bin/Xorg
/usr/local/bin/Xvfb
/usr/local/bin/cvt
/usr/local/bin/gtf
/usr/local/include/xorg/BT.h
/usr/local/include/xorg/IBM.h
/usr/local/include/xorg/TI.h
/usr/local/include/xorg/XIstubs.h
/usr/local/include/xorg/bstore.h
/usr/local/include/xorg/bstorestr.h
/usr/local/include/xorg/bt829.h
/usr/local/include/xorg/cfb8_16.h
/usr/local/include/xorg/closestr.h
/usr/local/include/xorg/closure.h
/usr/local/include/xorg/colormap.h
/usr/local/include/xorg/colormapst.h
/usr/local/include/xorg/compiler.h
/usr/local/include/xorg/cursor.h
/usr/local/include/xorg/cursorstr.h
/usr/local/include/xorg/damage.h
/usr/local/include/xorg/damagestr.h
/usr/local/include/xorg/dbestruct.h
/usr/local/include/xorg/dgaproc.h
/usr/local/include/xorg/dix.h
/usr/local/include/xorg/dixaccess.h
/usr/local/include/xorg/dixevents.h
/usr/local/include/xorg/dixfont.h
/usr/local/include/xorg/dixfontstr.h
/usr/local/include/xorg/dixgrabs.h
/usr/local/include/xorg/dixstruct.h
/usr/local/include/xorg/dri.h
/usr/local/include/xorg/dri2.h
/usr/local/include/xorg/dristruct.h
/usr/local/include/xorg/edid.h
/usr/local/include/xorg/exa.h
/usr/local/include/xorg/exevents.h
/usr/local/include/xorg/extension.h
/usr/local/include/xorg/extinit.h
/usr/local/include/xorg/extnsionst.h
/usr/local/include/xorg/fb.h
/usr/local/include/xorg/fbdevhw.h
/usr/local/include/xorg/fboverlay.h
/usr/local/include/xorg/fbrop.h
/usr/local/include/xorg/fi1236.h
/usr/local/include/xorg/fourcc.h
/usr/local/include/xorg/gc.h
/usr/local/include/xorg/gcstruct.h
/usr/local/include/xorg/geext.h
/usr/local/include/xorg/geint.h
/usr/local/include/xorg/globals.h
/usr/local/include/xorg/glyphstr.h
/usr/local/include/xorg/hotplug.h
/usr/local/include/xorg/i2c_def.h
/usr/local/include/xorg/input.h
/usr/local/include/xorg/inputstr.h
/usr/local/include/xorg/mi.h
/usr/local/include/xorg/mibank.h
/usr/local/include/xorg/mibstore.h
/usr/local/include/xorg/micmap.h
/usr/local/include/xorg/micoord.h
/usr/local/include/xorg/mifillarc.h
/usr/local/include/xorg/mifpoly.h
/usr/local/include/xorg/migc.h
/usr/local/include/xorg/miline.h
/usr/local/include/xorg/mipict.h
/usr/local/include/xorg/mipointer.h
/usr/local/include/xorg/mipointrst.h
/usr/local/include/xorg/misc.h
/usr/local/include/xorg/miscstruct.h
/usr/local/include/xorg/mispans.h
/usr/local/include/xorg/mistruct.h
/usr/local/include/xorg/miwideline.h
/usr/local/include/xorg/mizerarc.h
/usr/local/include/xorg/msp3430.h
/usr/local/include/xorg/opaque.h
/usr/local/include/xorg/os.h
/usr/local/include/xorg/picture.h
/usr/local/include/xorg/picturestr.h
/usr/local/include/xorg/pixmap.h
/usr/local/include/xorg/pixmapstr.h
/usr/local/include/xorg/privates.h
/usr/local/include/xorg/property.h
/usr/local/include/xorg/propertyst.h
/usr/local/include/xorg/ptrveloc.h
/usr/local/include/xorg/randrstr.h
/usr/local/include/xorg/region.h
/usr/local/include/xorg/regionstr.h
/usr/local/include/xorg/registry.h
/usr/local/include/xorg/renderedge.h
/usr/local/include/xorg/resource.h
/usr/local/include/xorg/rgb.h
/usr/local/include/xorg/rrtransform.h
/usr/local/include/xorg/sarea.h
/usr/local/include/xorg/screenint.h
/usr/local/include/xorg/scrnintstr.h
/usr/local/include/xorg/selection.h
/usr/local/include/xorg/servermd.h
/usr/local/include/xorg/shadow.h
/usr/local/include/xorg/shadowfb.h
/usr/local/include/xorg/shmint.h
/usr/local/include/xorg/site.h
/usr/local/include/xorg/swaprep.h
/usr/local/include/xorg/swapreq.h
/usr/local/include/xorg/tda8425.h
/usr/local/include/xorg/tda9850.h
/usr/local/include/xorg/tda9885.h
/usr/local/include/xorg/uda1380.h
/usr/local/include/xorg/validate.h
/usr/local/include/xorg/vbe.h
/usr/local/include/xorg/vbeModes.h
/usr/local/include/xorg/vgaHW.h
/usr/local/include/xorg/wfbrename.h
/usr/local/include/xorg/window.h
/usr/local/include/xorg/windowstr.h
/usr/local/include/xorg/xaa.h
/usr/local/include/xorg/xaaWrapper.h
/usr/local/include/xorg/xaalocal.h
/usr/local/include/xorg/xaarop.h
/usr/local/include/xorg/xf86.h
/usr/local/include/xorg/xf86Crtc.h
/usr/local/include/xorg/xf86Cursor.h
/usr/local/include/xorg/xf86DDC.h
/usr/local/include/xorg/xf86Modes.h
/usr/local/include/xorg/xf86Module.h
/usr/local/include/xorg/xf86Opt.h
/usr/local/include/xorg/xf86Optrec.h
/usr/local/include/xorg/xf86Parser.h
/usr/local/include/xorg/xf86Pci.h
/usr/local/include/xorg/xf86PciInfo.h
/usr/local/include/xorg/xf86Priv.h
/usr/local/include/xorg/xf86Privstr.h
/usr/local/include/xorg/xf86RAC.h
/usr/local/include/xorg/xf86RamDac.h
/usr/local/include/xorg/xf86RandR12.h
/usr/local/include/xorg/xf86Rename.h
/usr/local/include/xorg/xf86Resources.h
/usr/local/include/xorg/xf86Xinput.h
/usr/local/include/xorg/xf86_OSlib.h
/usr/local/include/xorg/xf86_OSproc.h
/usr/local/include/xorg/xf86cmap.h
/usr/local/include/xorg/xf86fbman.h
/usr/local/include/xorg/xf86i2c.h
/usr/local/include/xorg/xf86int10.h
/usr/local/include/xorg/xf86sbusBus.h
/usr/local/include/xorg/xf86str.h
/usr/local/include/xorg/xf86xv.h
/usr/local/include/xorg/xf86xvmc.h
/usr/local/include/xorg/xf86xvpriv.h
/usr/local/include/xorg/xisb.h
/usr/local/include/xorg/xkbfile.h
/usr/local/include/xorg/xkbrules.h
/usr/local/include/xorg/xkbsrv.h
/usr/local/include/xorg/xkbstr.h
/usr/local/include/xorg/xorg-server.h
/usr/local/include/xorg/xorgVersion.h
/usr/local/include/xorg/xserver-properties.h
/usr/local/include/xorg/xvdix.h
/usr/local/include/xorg/xvmcext.h
/usr/local/lib/X11/Options
/usr/local/lib/pkgconfig/xorg-server.pc
/usr/local/lib/xorg/modules/extensions/libdbe.la
/usr/local/lib/xorg/modules/extensions/libdbe.so
/usr/local/lib/xorg/modules/extensions/libdri.la
/usr/local/lib/xorg/modules/extensions/libdri.so
/usr/local/lib/xorg/modules/extensions/libdri2.la
/usr/local/lib/xorg/modules/extensions/libdri2.so
/usr/local/lib/xorg/modules/extensions/libextmod.la
/usr/local/lib/xorg/modules/extensions/libextmod.so
/usr/local/lib/xorg/modules/extensions/libglx.la
/usr/local/lib/xorg/modules/extensions/libglx.so
/usr/local/lib/xorg/modules/libexa.la
/usr/local/lib/xorg/modules/libexa.so
/usr/local/lib/xorg/modules/libfb.la
/usr/local/lib/xorg/modules/libfb.so
/usr/local/lib/xorg/modules/libint10.la
/usr/local/lib/xorg/modules/libint10.so
/usr/local/lib/xorg/modules/libshadow.la
/usr/local/lib/xorg/modules/libshadow.so
/usr/local/lib/xorg/modules/libshadowfb.la
/usr/local/lib/xorg/modules/libshadowfb.so
/usr/local/lib/xorg/modules/libvbe.la
/usr/local/lib/xorg/modules/libvbe.so
/usr/local/lib/xorg/modules/libvgahw.la
/usr/local/lib/xorg/modules/libvgahw.so
/usr/local/lib/xorg/modules/libwfb.la
/usr/local/lib/xorg/modules/libwfb.so
/usr/local/lib/xorg/modules/libxaa.la
/usr/local/lib/xorg/modules/libxaa.so
/usr/local/lib/xorg/modules/libxf8_16bpp.la
/usr/local/lib/xorg/modules/libxf8_16bpp.so
/usr/local/lib/xorg/modules/linux/libfbdevhw.la
/usr/local/lib/xorg/modules/linux/libfbdevhw.so
/usr/local/lib/xorg/modules/multimedia/bt829_drv.la
/usr/local/lib/xorg/modules/multimedia/bt829_drv.so
/usr/local/lib/xorg/modules/multimedia/fi1236_drv.la
/usr/local/lib/xorg/modules/multimedia/fi1236_drv.so
/usr/local/lib/xorg/modules/multimedia/msp3430_drv.la
/usr/local/lib/xorg/modules/multimedia/msp3430_drv.so
/usr/local/lib/xorg/modules/multimedia/tda8425_drv.la
/usr/local/lib/xorg/modules/multimedia/tda8425_drv.so
/usr/local/lib/xorg/modules/multimedia/tda9850_drv.la
/usr/local/lib/xorg/modules/multimedia/tda9850_drv.so
/usr/local/lib/xorg/modules/multimedia/tda9885_drv.la
/usr/local/lib/xorg/modules/multimedia/tda9885_drv.so
/usr/local/lib/xorg/modules/multimedia/uda1380_drv.la
/usr/local/lib/xorg/modules/multimedia/uda1380_drv.so
/usr/local/lib/xorg/protocol.txt
/usr/local/share/X11/xkb/compiled/README.compiled
/usr/local/share/aclocal/xorg-server.m4
/usr/local/share/man/man1/Xnest.1
/usr/local/share/man/man1/Xorg.1
/usr/local/share/man/man1/Xserver.1
/usr/local/share/man/man1/Xvfb.1
/usr/local/share/man/man1/cvt.1
/usr/local/share/man/man1/gtf.1
/usr/local/share/man/man4/exa.4
/usr/local/share/man/man4/fbdevhw.4
/usr/local/share/man/man5/xorg.conf.5


Compiling X.org Keyboard and Mouse Driver


Then, I downloaded xserver-xorg-input-keyboard_1.4.0.orig.tar.gz from Debian Sid's xserver-xorg-input-kbd page. Also, I downloaded xserver-xorg-input-mouse_1.5.0.orig.tar.gz from Debian Sid's xserver-xorg-input-mouse page. The keyboard and mouse drivers are compiled as follows.


tar xzf xserver-xorg-input-keyboard_1.3.2.orig.tar.gz
cd xf86-input-keyboard-1.3.2/
./configure
make
make install
cd ..
tar xzf xserver-xorg-input-mouse_1.4.0.orig.tar.gz
cd xf86-input-mouse-1.4.0/
./configure
make
make install


Compiling Intel Video Driver


Then, I downloaded xf86-video-intel-2.9.1.tar.bz2 from intellinuxgraphics.org and compiled it.


tar xzf xf86-video-intel-2.9.1.tar.bz2
cd xf86-video-intel-2.9.1
./configure
make
make install

The following files are installed after compilation:


/usr/local/lib/xorg/modules/drivers/ch7017.la
/usr/local/lib/xorg/modules/drivers/ch7017.so
/usr/local/lib/xorg/modules/drivers/ch7xxx.la
/usr/local/lib/xorg/modules/drivers/ch7xxx.so
/usr/local/lib/xorg/modules/drivers/intel_drv.la
/usr/local/lib/xorg/modules/drivers/intel_drv.so
/usr/local/lib/xorg/modules/drivers/ivch.la
/usr/local/lib/xorg/modules/drivers/ivch.so
/usr/local/lib/xorg/modules/drivers/sil164.la
/usr/local/lib/xorg/modules/drivers/sil164.so
/usr/local/lib/xorg/modules/drivers/tfp410.la
/usr/local/lib/xorg/modules/drivers/tfp410.so
/usr/local/share/man/man4/intel.4


List of Produced Files


The following is the list of all files created in /usr/local:


/usr/local/bin/X
/usr/local/bin/Xnest
/usr/local/bin/Xorg
/usr/local/bin/Xvfb
/usr/local/bin/cvt
/usr/local/bin/gtf
/usr/local/include/GL/GLwDrawA.h
/usr/local/include/GL/GLwDrawAP.h
/usr/local/include/GL/GLwMDrawA.h
/usr/local/include/GL/GLwMDrawAP.h
/usr/local/include/GL/dmesa.h
/usr/local/include/GL/ggimesa.h
/usr/local/include/GL/gl.h
/usr/local/include/GL/gl_mangle.h
/usr/local/include/GL/glew.h
/usr/local/include/GL/glext.h
/usr/local/include/GL/glfbdev.h
/usr/local/include/GL/glu.h
/usr/local/include/GL/glu_mangle.h
/usr/local/include/GL/glut.h
/usr/local/include/GL/glutf90.h
/usr/local/include/GL/glx.h
/usr/local/include/GL/glx_mangle.h
/usr/local/include/GL/glxew.h
/usr/local/include/GL/glxext.h
/usr/local/include/GL/internal
/usr/local/include/GL/internal/dri_interface.h
/usr/local/include/GL/mesa_wgl.h
/usr/local/include/GL/mglmesa.h
/usr/local/include/GL/osmesa.h
/usr/local/include/GL/svgamesa.h
/usr/local/include/GL/vms_x_fix.h
/usr/local/include/GL/wglew.h
/usr/local/include/GL/wglext.h
/usr/local/include/GL/wmesa.h
/usr/local/include/X11/DECkeysym.h
/usr/local/include/X11/HPkeysym.h
/usr/local/include/X11/Sunkeysym.h
/usr/local/include/X11/X.h
/usr/local/include/X11/XF86keysym.h
/usr/local/include/X11/XWDFile.h
/usr/local/include/X11/Xalloca.h
/usr/local/include/X11/Xarch.h
/usr/local/include/X11/Xatom.h
/usr/local/include/X11/Xdefs.h
/usr/local/include/X11/Xfuncproto.h
/usr/local/include/X11/Xfuncs.h
/usr/local/include/X11/Xmd.h
/usr/local/include/X11/Xos.h
/usr/local/include/X11/Xos_r.h
/usr/local/include/X11/Xosdefs.h
/usr/local/include/X11/Xpoll.h
/usr/local/include/X11/Xproto.h
/usr/local/include/X11/Xprotostr.h
/usr/local/include/X11/Xthreads.h
/usr/local/include/X11/Xtrans
/usr/local/include/X11/Xtrans/Xtrans.c
/usr/local/include/X11/Xtrans/Xtrans.h
/usr/local/include/X11/Xtrans/Xtransint.h
/usr/local/include/X11/Xtrans/Xtranslcl.c
/usr/local/include/X11/Xtrans/Xtranssock.c
/usr/local/include/X11/Xtrans/Xtranstli.c
/usr/local/include/X11/Xtrans/Xtransutil.c
/usr/local/include/X11/Xtrans/transport.c
/usr/local/include/X11/Xw32defs.h
/usr/local/include/X11/Xwindows.h
/usr/local/include/X11/Xwinsock.h
/usr/local/include/X11/ap_keysym.h
/usr/local/include/X11/extensions/MITMisc.h
/usr/local/include/X11/extensions/XEVI.h
/usr/local/include/X11/extensions/XEVIstr.h
/usr/local/include/X11/extensions/XI.h
/usr/local/include/X11/extensions/XInput.h
/usr/local/include/X11/extensions/XIproto.h
/usr/local/include/X11/extensions/XLbx.h
/usr/local/include/X11/extensions/XShm.h
/usr/local/include/X11/extensions/XTest.h
/usr/local/include/X11/extensions/Xag.h
/usr/local/include/X11/extensions/Xagstr.h
/usr/local/include/X11/extensions/Xcup.h
/usr/local/include/X11/extensions/Xcupstr.h
/usr/local/include/X11/extensions/Xdbe.h
/usr/local/include/X11/extensions/Xdbeproto.h
/usr/local/include/X11/extensions/Xext.h
/usr/local/include/X11/extensions/Xge.h
/usr/local/include/X11/extensions/dpms.h
/usr/local/include/X11/extensions/dpmsstr.h
/usr/local/include/X11/extensions/dri2proto.h
/usr/local/include/X11/extensions/dri2tokens.h
/usr/local/include/X11/extensions/extutil.h
/usr/local/include/X11/extensions/ge.h
/usr/local/include/X11/extensions/geproto.h
/usr/local/include/X11/extensions/lbxbuf.h
/usr/local/include/X11/extensions/lbxbufstr.h
/usr/local/include/X11/extensions/lbxdeltastr.h
/usr/local/include/X11/extensions/lbximage.h
/usr/local/include/X11/extensions/lbxopts.h
/usr/local/include/X11/extensions/lbxstr.h
/usr/local/include/X11/extensions/lbxzlib.h
/usr/local/include/X11/extensions/mitmiscstr.h
/usr/local/include/X11/extensions/multibuf.h
/usr/local/include/X11/extensions/multibufst.h
/usr/local/include/X11/extensions/randr.h
/usr/local/include/X11/extensions/randrproto.h
/usr/local/include/X11/extensions/security.h
/usr/local/include/X11/extensions/securstr.h
/usr/local/include/X11/extensions/shape.h
/usr/local/include/X11/extensions/shapestr.h
/usr/local/include/X11/extensions/shmstr.h
/usr/local/include/X11/extensions/sync.h
/usr/local/include/X11/extensions/syncstr.h
/usr/local/include/X11/extensions/xtestext1.h
/usr/local/include/X11/extensions/xteststr.h
/usr/local/include/X11/keysym.h
/usr/local/include/X11/keysymdef.h
/usr/local/include/drm/drm.h
/usr/local/include/drm/drm_mode.h
/usr/local/include/drm/drm_sarea.h
/usr/local/include/drm/i915_drm.h
/usr/local/include/drm/mach64_drm.h
/usr/local/include/drm/mga_drm.h
/usr/local/include/drm/nouveau_drm.h
/usr/local/include/drm/r128_drm.h
/usr/local/include/drm/r300_reg.h
/usr/local/include/drm/radeon_drm.h
/usr/local/include/drm/savage_drm.h
/usr/local/include/drm/sis_drm.h
/usr/local/include/drm/via_3d_reg.h
/usr/local/include/drm/via_drm.h
/usr/local/include/drm/xgi_drm.h
/usr/local/include/intel_bufmgr.h
/usr/local/include/pixman-1/pixman-version.h
/usr/local/include/pixman-1/pixman.h
/usr/local/include/xf86drm.h
/usr/local/include/xf86drmMode.h
/usr/local/include/xorg/BT.h
/usr/local/include/xorg/IBM.h
/usr/local/include/xorg/TI.h
/usr/local/include/xorg/XIstubs.h
/usr/local/include/xorg/bstore.h
/usr/local/include/xorg/bstorestr.h
/usr/local/include/xorg/bt829.h
/usr/local/include/xorg/cfb8_16.h
/usr/local/include/xorg/closestr.h
/usr/local/include/xorg/closure.h
/usr/local/include/xorg/colormap.h
/usr/local/include/xorg/colormapst.h
/usr/local/include/xorg/compiler.h
/usr/local/include/xorg/cursor.h
/usr/local/include/xorg/cursorstr.h
/usr/local/include/xorg/damage.h
/usr/local/include/xorg/damagestr.h
/usr/local/include/xorg/dbestruct.h
/usr/local/include/xorg/dgaproc.h
/usr/local/include/xorg/dix.h
/usr/local/include/xorg/dixaccess.h
/usr/local/include/xorg/dixevents.h
/usr/local/include/xorg/dixfont.h
/usr/local/include/xorg/dixfontstr.h
/usr/local/include/xorg/dixgrabs.h
/usr/local/include/xorg/dixstruct.h
/usr/local/include/xorg/dri.h
/usr/local/include/xorg/dri2.h
/usr/local/include/xorg/dristruct.h
/usr/local/include/xorg/edid.h
/usr/local/include/xorg/exa.h
/usr/local/include/xorg/exevents.h
/usr/local/include/xorg/extension.h
/usr/local/include/xorg/extinit.h
/usr/local/include/xorg/extnsionst.h
/usr/local/include/xorg/fb.h
/usr/local/include/xorg/fbdevhw.h
/usr/local/include/xorg/fboverlay.h
/usr/local/include/xorg/fbrop.h
/usr/local/include/xorg/fi1236.h
/usr/local/include/xorg/fourcc.h
/usr/local/include/xorg/gc.h
/usr/local/include/xorg/gcstruct.h
/usr/local/include/xorg/geext.h
/usr/local/include/xorg/geint.h
/usr/local/include/xorg/globals.h
/usr/local/include/xorg/glyphstr.h
/usr/local/include/xorg/hotplug.h
/usr/local/include/xorg/i2c_def.h
/usr/local/include/xorg/input.h
/usr/local/include/xorg/inputstr.h
/usr/local/include/xorg/mi.h
/usr/local/include/xorg/mibank.h
/usr/local/include/xorg/mibstore.h
/usr/local/include/xorg/micmap.h
/usr/local/include/xorg/micoord.h
/usr/local/include/xorg/mifillarc.h
/usr/local/include/xorg/mifpoly.h
/usr/local/include/xorg/migc.h
/usr/local/include/xorg/miline.h
/usr/local/include/xorg/mipict.h
/usr/local/include/xorg/mipointer.h
/usr/local/include/xorg/mipointrst.h
/usr/local/include/xorg/misc.h
/usr/local/include/xorg/miscstruct.h
/usr/local/include/xorg/mispans.h
/usr/local/include/xorg/mistruct.h
/usr/local/include/xorg/miwideline.h
/usr/local/include/xorg/mizerarc.h
/usr/local/include/xorg/msp3430.h
/usr/local/include/xorg/opaque.h
/usr/local/include/xorg/os.h
/usr/local/include/xorg/picture.h
/usr/local/include/xorg/picturestr.h
/usr/local/include/xorg/pixmap.h
/usr/local/include/xorg/pixmapstr.h
/usr/local/include/xorg/privates.h
/usr/local/include/xorg/property.h
/usr/local/include/xorg/propertyst.h
/usr/local/include/xorg/ptrveloc.h
/usr/local/include/xorg/randrstr.h
/usr/local/include/xorg/region.h
/usr/local/include/xorg/regionstr.h
/usr/local/include/xorg/registry.h
/usr/local/include/xorg/renderedge.h
/usr/local/include/xorg/resource.h
/usr/local/include/xorg/rgb.h
/usr/local/include/xorg/rrtransform.h
/usr/local/include/xorg/sarea.h
/usr/local/include/xorg/screenint.h
/usr/local/include/xorg/scrnintstr.h
/usr/local/include/xorg/selection.h
/usr/local/include/xorg/servermd.h
/usr/local/include/xorg/shadow.h
/usr/local/include/xorg/shadowfb.h
/usr/local/include/xorg/shmint.h
/usr/local/include/xorg/site.h
/usr/local/include/xorg/swaprep.h
/usr/local/include/xorg/swapreq.h
/usr/local/include/xorg/tda8425.h
/usr/local/include/xorg/tda9850.h
/usr/local/include/xorg/tda9885.h
/usr/local/include/xorg/uda1380.h
/usr/local/include/xorg/validate.h
/usr/local/include/xorg/vbe.h
/usr/local/include/xorg/vbeModes.h
/usr/local/include/xorg/vgaHW.h
/usr/local/include/xorg/wfbrename.h
/usr/local/include/xorg/window.h
/usr/local/include/xorg/windowstr.h
/usr/local/include/xorg/xaa.h
/usr/local/include/xorg/xaaWrapper.h
/usr/local/include/xorg/xaalocal.h
/usr/local/include/xorg/xaarop.h
/usr/local/include/xorg/xf86.h
/usr/local/include/xorg/xf86Crtc.h
/usr/local/include/xorg/xf86Cursor.h
/usr/local/include/xorg/xf86DDC.h
/usr/local/include/xorg/xf86Modes.h
/usr/local/include/xorg/xf86Module.h
/usr/local/include/xorg/xf86Opt.h
/usr/local/include/xorg/xf86Optrec.h
/usr/local/include/xorg/xf86Parser.h
/usr/local/include/xorg/xf86Pci.h
/usr/local/include/xorg/xf86PciInfo.h
/usr/local/include/xorg/xf86Priv.h
/usr/local/include/xorg/xf86Privstr.h
/usr/local/include/xorg/xf86RAC.h
/usr/local/include/xorg/xf86RamDac.h
/usr/local/include/xorg/xf86RandR12.h
/usr/local/include/xorg/xf86Rename.h
/usr/local/include/xorg/xf86Resources.h
/usr/local/include/xorg/xf86Xinput.h
/usr/local/include/xorg/xf86_OSlib.h
/usr/local/include/xorg/xf86_OSproc.h
/usr/local/include/xorg/xf86cmap.h
/usr/local/include/xorg/xf86fbman.h
/usr/local/include/xorg/xf86i2c.h
/usr/local/include/xorg/xf86int10.h
/usr/local/include/xorg/xf86sbusBus.h
/usr/local/include/xorg/xf86str.h
/usr/local/include/xorg/xf86xv.h
/usr/local/include/xorg/xf86xvmc.h
/usr/local/include/xorg/xf86xvpriv.h
/usr/local/include/xorg/xisb.h
/usr/local/include/xorg/xkbfile.h
/usr/local/include/xorg/xkbrules.h
/usr/local/include/xorg/xkbsrv.h
/usr/local/include/xorg/xkbstr.h
/usr/local/include/xorg/xorg-server.h
/usr/local/include/xorg/xorgVersion.h
/usr/local/include/xorg/xserver-properties.h
/usr/local/include/xorg/xvdix.h
/usr/local/include/xorg/xvmcext.h
/usr/local/lib/X11/Options
/usr/local/lib/dri/EGL_i915.so
/usr/local/lib/dri/ffb_dri.so
/usr/local/lib/dri/i810_dri.so
/usr/local/lib/dri/i915_dri.so
/usr/local/lib/dri/i965_dri.so
/usr/local/lib/dri/mach64_dri.so
/usr/local/lib/dri/mga_dri.so
/usr/local/lib/dri/r128_dri.so
/usr/local/lib/dri/r200_dri.so
/usr/local/lib/dri/r300_dri.so
/usr/local/lib/dri/r600_dri.so
/usr/local/lib/dri/radeon_dri.so
/usr/local/lib/dri/s3v_dri.so
/usr/local/lib/dri/savage_dri.so
/usr/local/lib/dri/sis_dri.so
/usr/local/lib/dri/swrast_dri.so
/usr/local/lib/dri/tdfx_dri.so
/usr/local/lib/dri/trident_dri.so
/usr/local/lib/dri/unichrome_dri.so
/usr/local/lib/libEGL.so
/usr/local/lib/libEGL.so.1
/usr/local/lib/libEGL.so.1.0
/usr/local/lib/libGL.so
/usr/local/lib/libGL.so.1
/usr/local/lib/libGL.so.1.2
/usr/local/lib/libGLU.so
/usr/local/lib/libGLU.so.1
/usr/local/lib/libGLU.so.1.3.070600
/usr/local/lib/libGLw.so
/usr/local/lib/libGLw.so.1
/usr/local/lib/libGLw.so.1.0.0
/usr/local/lib/libdrm.la
/usr/local/lib/libdrm.so
/usr/local/lib/libdrm.so.2
/usr/local/lib/libdrm.so.2.4.0
/usr/local/lib/libdrm_intel.la
/usr/local/lib/libdrm_intel.so
/usr/local/lib/libdrm_intel.so.1
/usr/local/lib/libdrm_intel.so.1.0.0
/usr/local/lib/libglut.so
/usr/local/lib/libglut.so.3
/usr/local/lib/libglut.so.3.7.1
/usr/local/lib/libpixman-1.a
/usr/local/lib/libpixman-1.la
/usr/local/lib/libpixman-1.so
/usr/local/lib/libpixman-1.so.0
/usr/local/lib/libpixman-1.so.0.16.2
/usr/local/lib/pkgconfig/dri.pc
/usr/local/lib/pkgconfig/dri2proto.pc
/usr/local/lib/pkgconfig/gl.pc
/usr/local/lib/pkgconfig/glu.pc
/usr/local/lib/pkgconfig/glut.pc
/usr/local/lib/pkgconfig/glw.pc
/usr/local/lib/pkgconfig/inputproto.pc
/usr/local/lib/pkgconfig/libdrm.pc
/usr/local/lib/pkgconfig/libdrm_intel.pc
/usr/local/lib/pkgconfig/pixman-1.pc
/usr/local/lib/pkgconfig/randrproto.pc
/usr/local/lib/pkgconfig/xextproto.pc
/usr/local/lib/pkgconfig/xorg-server.pc
/usr/local/lib/pkgconfig/xproto.pc
/usr/local/lib/pkgconfig/xtrans.pc
/usr/local/lib/xorg/modules/drivers/ch7017.la
/usr/local/lib/xorg/modules/drivers/ch7017.so
/usr/local/lib/xorg/modules/drivers/ch7xxx.la
/usr/local/lib/xorg/modules/drivers/ch7xxx.so
/usr/local/lib/xorg/modules/drivers/intel_drv.la
/usr/local/lib/xorg/modules/drivers/intel_drv.so
/usr/local/lib/xorg/modules/drivers/ivch.la
/usr/local/lib/xorg/modules/drivers/ivch.so
/usr/local/lib/xorg/modules/drivers/sil164.la
/usr/local/lib/xorg/modules/drivers/sil164.so
/usr/local/lib/xorg/modules/drivers/tfp410.la
/usr/local/lib/xorg/modules/drivers/tfp410.so
/usr/local/lib/xorg/modules/extensions/libdbe.la
/usr/local/lib/xorg/modules/extensions/libdbe.so
/usr/local/lib/xorg/modules/extensions/libdri.la
/usr/local/lib/xorg/modules/extensions/libdri.so
/usr/local/lib/xorg/modules/extensions/libdri2.la
/usr/local/lib/xorg/modules/extensions/libdri2.so
/usr/local/lib/xorg/modules/extensions/libextmod.la
/usr/local/lib/xorg/modules/extensions/libextmod.so
/usr/local/lib/xorg/modules/extensions/libglx.la
/usr/local/lib/xorg/modules/extensions/libglx.so
/usr/local/lib/xorg/modules/input/kbd_drv.la
/usr/local/lib/xorg/modules/input/kbd_drv.so
/usr/local/lib/xorg/modules/input/mouse_drv.la
/usr/local/lib/xorg/modules/input/mouse_drv.so
/usr/local/lib/xorg/modules/libexa.la
/usr/local/lib/xorg/modules/libexa.so
/usr/local/lib/xorg/modules/libfb.la
/usr/local/lib/xorg/modules/libfb.so
/usr/local/lib/xorg/modules/libint10.la
/usr/local/lib/xorg/modules/libint10.so
/usr/local/lib/xorg/modules/libshadow.la
/usr/local/lib/xorg/modules/libshadow.so
/usr/local/lib/xorg/modules/libshadowfb.la
/usr/local/lib/xorg/modules/libshadowfb.so
/usr/local/lib/xorg/modules/libvbe.la
/usr/local/lib/xorg/modules/libvbe.so
/usr/local/lib/xorg/modules/libvgahw.la
/usr/local/lib/xorg/modules/libvgahw.so
/usr/local/lib/xorg/modules/libwfb.la
/usr/local/lib/xorg/modules/libwfb.so
/usr/local/lib/xorg/modules/libxaa.la
/usr/local/lib/xorg/modules/libxaa.so
/usr/local/lib/xorg/modules/libxf8_16bpp.la
/usr/local/lib/xorg/modules/libxf8_16bpp.so
/usr/local/lib/xorg/modules/linux/libfbdevhw.la
/usr/local/lib/xorg/modules/linux/libfbdevhw.so
/usr/local/lib/xorg/modules/multimedia/bt829_drv.la
/usr/local/lib/xorg/modules/multimedia/bt829_drv.so
/usr/local/lib/xorg/modules/multimedia/fi1236_drv.la
/usr/local/lib/xorg/modules/multimedia/fi1236_drv.so
/usr/local/lib/xorg/modules/multimedia/msp3430_drv.la
/usr/local/lib/xorg/modules/multimedia/msp3430_drv.so
/usr/local/lib/xorg/modules/multimedia/tda8425_drv.la
/usr/local/lib/xorg/modules/multimedia/tda8425_drv.so
/usr/local/lib/xorg/modules/multimedia/tda9850_drv.la
/usr/local/lib/xorg/modules/multimedia/tda9850_drv.so
/usr/local/lib/xorg/modules/multimedia/tda9885_drv.la
/usr/local/lib/xorg/modules/multimedia/tda9885_drv.so
/usr/local/lib/xorg/modules/multimedia/uda1380_drv.la
/usr/local/lib/xorg/modules/multimedia/uda1380_drv.so
/usr/local/lib/xorg/protocol.txt
/usr/local/share/X11/xkb/compat
/usr/local/share/X11/xkb/compat.dir
/usr/local/share/X11/xkb/compiled/README.compiled
/usr/local/share/X11/xkb/geometry
/usr/local/share/X11/xkb/geometry.dir
/usr/local/share/X11/xkb/keycodes
/usr/local/share/X11/xkb/keycodes.dir
/usr/local/share/X11/xkb/keymap
/usr/local/share/X11/xkb/keymap.dir
/usr/local/share/X11/xkb/rules
/usr/local/share/X11/xkb/semantics
/usr/local/share/X11/xkb/semantics.dir
/usr/local/share/X11/xkb/symbols
/usr/local/share/X11/xkb/symbols.dir
/usr/local/share/X11/xkb/types
/usr/local/share/X11/xkb/types.dir
/usr/local/share/aclocal/xorg-server.m4
/usr/local/share/aclocal/xtrans.m4
/usr/local/share/doc/randrproto/randrproto.txt
/usr/local/share/man/man1/Xnest.1
/usr/local/share/man/man1/Xorg.1
/usr/local/share/man/man1/Xserver.1
/usr/local/share/man/man1/Xvfb.1
/usr/local/share/man/man1/cvt.1
/usr/local/share/man/man1/gtf.1
/usr/local/share/man/man4/exa.4
/usr/local/share/man/man4/fbdevhw.4
/usr/local/share/man/man4/intel.4
/usr/local/share/man/man4/kbd.4
/usr/local/share/man/man4/mousedrv.4
/usr/local/share/man/man5/xorg.conf.5


Post Compilation


After compilation, I typed the following command:


ldconfig

You can remove the following packages if you are to use the self-compiled X.org server.


  • libgl1-mesa-dri
  • libglu1-mesa
  • x11proto-core-dev
  • x11proto-input-dev
  • x11proto-xext-dev
  • xserver-xorg-core
  • xtrans-dev

I edited the configuration file of my display manager SLiM so that SLiM will start the new X server at /usr/local/bin/Xorg.

Thursday, October 22, 2009

To Compile Linux Kernel 2.6.18.8

I restored my old backup of Debian Linux to a JFS partition on my Toshiba NB205 netbook. Then, I wanted to build a kernel optimized for my netbook. However, the latest version of Linux kernel seems to be unstable. So I compiled Linux kernel 2.6.18.8 which I believe is still usable and stable, though a bit outdated. Before compiling a Linux kernel, some packages should be installed.



  • binutils
  • gcc-3.4
  • libglade2-dev
  • make
  • module-init-tools
  • patch

libglade2-dev is needed to compile and run a kernel configuration tool with the command “make gconfig”. I downloaded the source for Linux kernel 2.6.18.8 from the kernel.org FTP server and unpacked it.


tar xzf linux-2.6.18.8.tar.gz
cd linux-2.6.18.8

I am going to add the following features to the kernel:



  • unionfs is a pseudo-filesystem that implements a transparent multi-layer filesystem that's made up of real filesystems. I use it to make a live Linux CD-ROM. The patch for kernel 2.6.18.8 is unionfs-2.5.3_for_2.6.18.8.diff.gz.
  • squashfs is a compressed read-only filesystem. I'll use it for my Web-only Linux system.
  • ndiswrapper will be used to set up network interface cards with Windows drivers. The latest version 1.55 will be used.

Then, I patched the kernel source with unionfs and squashfs:



gzip -dc unionfs-2.5.3_for_2.6.18.8.diff.gz | patch -p1 -l
tar xzf squashfs3.4.tar.gz
patch -p1 -l < squashfs3.4/kernel-patches/linux-2.6.18/squashfs3.4-patch


Then, I copied the config file of an older or running kernel to the kernel source folder.


gzip -dc /proc/config.gz > .config

Then I typed the following command to start a graphical kernel configurator:


make gconfig

I compiled the kernel with the following commands:


make bzImage
make install
make modules
make modules_install

“make modules” took more than an hour to finish. I went to the /boot directory and typed the following commands:


cd /boot
rdev vmlinuz-2.6.18.8 1,0
ramsize vmlinuz-2.6.18.8 2048

The commands above will set the default root device to ramdisk /dev/ram0 and limit the ramdisk size to 2048KB.


Then, I went ahead to create an initrd image for booting with the new kernel. After rebooting with the new kernel, I compiled ndiswrapper and squashfs tools. If you get a ntoskrnl error when compiling ndiswrapper 1.55, apply the following patch:


diff -urN ndiswrapper-1.55-orig/driver/ntoskernel.h ndiswrapper-1.55/driver/ntoskernel.h
--- ndiswrapper-1.55-orig/driver/ntoskernel.h 2009-06-28 16:09:27.000000000 -1000
+++ ndiswrapper-1.55/driver/ntoskernel.h 2009-10-10 21:11:16.363610279 -1000
@@ -875,7 +875,7 @@
#define u64_low_32(x) ((u32)x)
#define u64_high_32(x) ((u32)(x >> 32))

-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,31)
+//#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,31)
static inline u64 cmpxchg8b(volatile u64 *ptr, u64 old, u64 new)
{
u64 prev;
@@ -887,7 +887,7 @@
: "A" (old), "b" (u64_low_32(new)), "c" (u64_high_32(new)));
return prev;
}
-#endif
+//#endif

/* slist routines below update slist atomically - no need for
* spinlocks */

I used the following commands to compile ndiswrapper and squashfs tools.


cd squashfs3.4/squashfs-tools
make
cp mksquashfs unsquashfs /usr/local/bin
cd ../../ndiswrapper-1.55
make uninstall
make
make install

Thus a linux kernel 2.6.18.8 has been compiled. The following files and folders are created after this.


/boot/System.map-2.6.18.8
/boot/config-2.6.18.8
/boot/vmlinuz-2.6.18.8
/lib/modules/2.6.18.8/
/sbin/loadndisdriver
/usr/local/bin/mksquashfs
/usr/local/bin/unsquashfs
/usr/man/man8/loadndisdriver.8
/usr/man/man8/ndiswrapper.8
/usr/sbin/ndiswrapper
/usr/sbin/ndiswrapper-buginfo


Related Posts


Wednesday, October 21, 2009

Linux: Tweaking Moblin 2.0 on Toshiba NB205

I installed Moblin 2.0 on my Toshiba NB205 netbook. Since Moblin is a Linux distro targeted for netbooks and still in early development, it doesn't yet have many applications I hoped for. Thus, I need to customize Moblin and compile or install application packages on Moblin. This post chronicles my on-going customization of Moblin.




  1. Setting Up Internet Connection


    Moblin has a simple interface to set up a network connection. Just click the top right corner of the screen and a network manager will appear. I noticed Moblin has a problem keeping a reliable wireless connection. The network manager is too simple to set up a complex wireless connection. For example, you cannot assign WEB keys other than the first one.



    Moblin Network Manager

  2. Adding PATH line to /root/.bashrc


    One of the first things I did was to launch a Terminal and explore the Moblin inside. I became root using the su command but couldn't run many commands because those commands were not found in the PATH. So I had to insert a PATH line into /root/.bashrc:


    # .bashrc

    PATH='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'



  3. Installing Software Packages on Moblin


    The default Moblin installation has just enough applications to browse the Internet, read e-mail, enjoy your movies and pictures, twitter and IM with your friends, and manage your schedule. Well, I guess that's probably enough for everyone's daily netbook use. But I noticed that Moblin was missing a word processor and spreadsheet. My favorite is OpenOffice.org, but I couldn't find it in Moblin's package repository. So I installed AbiWord and Gnumeric instead. First, I started the Application Manager.


    Moblin Settings

    I opened the System menu and selected “Refresh package lists&rdquo just to be sure. Then, I chose &ldquoAll packages&rdquo from the left pane and selected from the package list on the right: Abiword, AdobeReader_enu, and Gnumeric. Then, I clicked the Apply button.


    Moblin_Add_Software

    Moblin check the dependencies and shows you a confirmation dialog. When I clicked the Install button, Moblin downloaded and installed the applications.


    Moblin_Downloading_Software

    Now the Office section of Applications area has new icons for Abiword, Gnumeric and Adobe Reader.


    Moblin Office

Trying Pardus Linux 2009

I wanted to have a usable Linux distro installed on my Toshiba NB205 netbook. So far I tried Moblin, Pardus Linux and Hymera Linux. Moblin is a netbook-specific distro with little options to customize and install additional packages. Hymera had problem using the keyboard, so I removed Hymera without a trial.



Compared to other Linux distros that I tried so far, I am enjoying Pardus Linux very much. Maybe it's the beauty and easiness of KDE4 that make the experience of using Pardus Linux delightful. Although KDE4 doesn't run smoothly on old and slow computers, KDE4 runs fine on my netbook that has Intel Atom N280 processor. I can see all the visual effects and transparency without a noticeable pause.



Kopete in Pardus KDE4

One of the first things I did after installing Pardus Linux is to set up a wireless connection. Luckily, Pardus detected and installed a driver for the Atheros AR9285 wlan chip in my netbook. I used the Network Manager which can be opened from the KDE4's Applications, System menu.



Network Manager in Pardus Linux

After I got wireless connection, I started Firefox. Firefox in Pardus works fine except that it can't display some obscure languages, such as the Indian, Thai and Khmer scripts. In addition, Firefox didn't include an English spell-checker, which is a minor annoyance.



Firefox in Pardus Linux

One thing that's been bugging me is that the sound doesn't work yet. My netbook has two 2 audio chips, Intel High Definition Audio and Realtek High Definition Audio as seen in Windows. Typing lsmod in Konsole showed me that the module snd-hda-intel is loaded but it doesn't play any sound as in Windows. Perhaps I'll have to load a module for Realtek HDA.



Pardus Linux installs many useful applications by default and so far I am happy with the default setup. The application I use a lot is OpenOffice. OpenOffice is not provided by Moblin, but Moblin provides AbiWord through update which is not as full-fledged as OpenOffice.



OpenOffice.org in Pardus Linux

Another thing that I enjoy using in Pardus Linux is its file manager Dolphin which looks sleek and lets me access data in other Windows and Linux partitions. One glitch I found with Dolphin is that Dolphin freezes when I open a folder that has a 800MB PDF file.



Dolphin File Manager in Pardus Linux

I like Pardus Linux very much and think I'll stick with it for a long time. I'd like to join an English-speaking Pardus usergroup but haven't found one yet. Pardus Linux is a Linux distro developed by Turks and it hasn't found popularity on a global scale. Perhaps I will join a Turkish forum and hopefully find someone who can help me in English.

Sunday, October 18, 2009

Setting Up Windows 7 on Compaq Presario V5306US

I installed Windows 7 Home Premium on my old Compaq Presario V5306US notebook. Installation went without a problem, but 3 hardware components were not detected. They are:


  • ATI Mobility RADEON XPRESS X200M Series

  • In-Build Conexant ATI AC '97 Modem

  • HP Quick Launch Buttons


Since both of the built-in Ethernet and wireless network adapters are detected by Windows 7, I started Windows Update and installed the display driver through Windows Update. Drivers for the modem and quick launch buttons can be downloaded from HP/Compaq support site. For the quick launch buttons, extract the package with 7-zip and only install the driver.

The following pictures are taken from the device manager that list devices available in Compaq Presario V5306US.








Tuesday, October 13, 2009

Disabling Office Genuine Advantage

To Uninstall OGA


Microsoft has released Office Genuine Advantage notification though Windows Update that displays an annoying message every time you start an Office application. The message says that the installed copy of Microsoft Office is not genuine. To get rid of this annoying thing, follow the steps below:



  1. Start the Windows registry editor from the Start menu. To find the Windows registry editor, type regedit into the Search box.

    Start_Windows_Registry
  2. Go to the key HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall in the left pane. Press Ctrl+F or select Find... from the Edit menu. In the Find dialog, type OGA and press Enter.

    Find_OGA_Registry_Key
  3. You'll be taken to the registry key for the OGA installer. In the right pane, double-click UninstallString. Select the value data and copy it by pressing Ctrl+C.

    OGA_Uninstall_String
  4. Open the Start menu. Start the Command Prompt from the Accessories menu as administrator.

    Start Command Prompt as Administrator
  5. Paste the UninstallString above into the Command Prompt.

    Paste_in_Command_Prompt
  6. Run the command. Typically the command looks like:

    MsiExec.exe /X{B2544A03-10D0-4E5E-BA69-0362FFC20D18}

Sunday, October 11, 2009

Linux: Atheros AR9285 Driver for Toshiba NB205

My Toshiba netbook NB205 was pre-installed with Windows XP. After extensive manipulation of partitions, the original Windows XP installation was gone. I booted my old Linux from a USB thumb drive but couldn't go online for lack of a Linux driver for the built-in Atheros AR9285 wireless card. So I looked for the AR9285 Windows driver because my Linux kernel has ndiswrapper support. I found a working driver (x600_wlan785_x_nb.zip) at the MSI support site.



After I downloaded x600_wlan785_x_nb.zip, I unzipped it. A new directory XP_7.7.0.348_20090701 is created.


unzip x600_wlan785_x_nb.zip

There you'll find two drivers, athw.sys and athwx.sys. Go to the ndis5x directory.


cd XP_7.7.0.348_20090701/ndis5x/

Install the Windows driver to be used with ndiswrapper.


ndiswrapper -i netathw.inf

The ndiswrapper tool will copy the Windows driver to a folder in /etc/ndiswrapper. To check your ndiswrapper installation, run the following command:


ndiswrapper -l

If you haven't, load the ndiswrapper kernel module.


modprobe ndiswrapper

Then, use your favorite Wireless configuration tool to connect to your wireless network.

Sunday, October 4, 2009

Setting Up Linux on Toshiba Mini NB205

I am setting up Linux on my Toshiba Mini NB205. If you use a user-friendly Linux distro, such as Pardus Linux, difficult tasks like driver installation and X.org setup are easily done with the help of Linux installer. However, I found it hard to set up my Debian system on Toshiba NB205 which I had previously run from my USB flash drive.



Running pcimodules


I booted my Linux BootCD with kernel 2.6.25.15 and issued the command “pcimodules”



r8169
i2c-i801
ahci
ata_generic
ata_piix
pata_acpi
intel-rng
iTCO-wdt
ehci-hcd
uhci-hcd
snd-hda-intel
intel-agp


With Linux kernel 2.6.18.8, pcimodules displayed the following results:


snd-hda-intel
uhci-hcd
ehci-hcd
intel-rng
generic
piix
ahci
i2c-i801


Creating initrd Image


Based on this information, I created a folder containing the following files:


bin/dash
bin/mount
etc/modprobe.d
lib/ld-linux.so.2
lib/libblkid.so.1
lib/libc.so.6
lib/libdevmapper.so.1.02.1
lib/libdl.so.2
lib/libpthread.so.0
lib/libselinux.so.1
lib/libsepol.so.1
lib/libuuid.so.1
lib/modules/2.6.18.8/kernel/drivers/ide/ide-disk.ko
lib/modules/2.6.18.8/kernel/drivers/ide/pci/piix.ko
lib/modules/2.6.18.8/kernel/drivers/scsi/ahci.ko
lib/modules/2.6.18.8/kernel/drivers/scsi/libata.ko
lib/modules/2.6.18.8/kernel/drivers/scsi/scsi_mod.ko
lib/modules/2.6.18.8/kernel/drivers/scsi/sd_mod.ko
lib/modules/2.6.18.8/kernel/fs/jfs/jfs.ko
lib/modules/2.6.18.8/kernel/fs/nls/nls_base.ko
lib/modules/2.6.18.8/kernel/fs/nls/nls_utf8.ko
lib/modules/2.6.18.8/modules.dep
sbin/modprobe
sbin/pivot_root
usr/sbin/chroot

Then, inside this folder, I created etc folder and saved a file called init with the following contents.


#!/bin/dash
modprobe piix &&
modprobe ide-disk &&
modprobe ahci &&
modprobe sd_mod &&
mount -n -t jfs -o ro,iocharset=utf8 /dev/sda1 /mnt
cd /mnt
pivot_root . initrd
exec chroot . /sbin/init 5 dev/console 2>&1

Then, I ran the following commands inside the folder:


mkdir dev mnt tmp
cd dev; MAKEDEV std hda sda consoleonly

I created a cramfs image of this folder. Now I could boot into Linux with the following GRUB commands:


kernel (hd0,5)/26188.bin vga=0x314 video=vesa:mtrr
initrd (hd0,5)/initrd.bin

I succeeded in booting into Linux

Friday, October 2, 2009

To Compile GRUB with GFXBOOT and SLIC patch

I use GRUB 0.97 to boot multiple operating systems on my computer. While I was searching Yahoo! China, I found a patch called loadslic.patch. I wanted to use MinGW to compile GRUB with GFXBOOT and SLIC patch. But I received an error saying “GRUB requires a working absolute objcopy; upgrade your binutils.” So I switched to Linux and compiled GRUB. Below I show how I did it.




  1. I prepared my compiler environment by installing GCC 3.4. Then I downloaded the following files:





  2. Unpack the GRUB 0.97 source.


    tar xzvf grub-0.97.tar.gz
    cd grub-0.97


  3. Apply various patches.


    patch -p1 -l < ../040_all_grub-0.96-nxstack.patch
    patch -p1 -l < ../05-grub-0.97-initrdaddr.diff
    patch -p1 -l < ../i2o.patch
    patch -p1 -l < ../intelmac.patch
    patch -p1 -l < ../more-raid.patch
    patch -p1 -l < ../special-devices.patch
    patch -p1 -l < ../grub-0.97-pure64-1.patch


  4. Apply the GFXBOOT patch.


    cd ..
    tar xjvf gfxboot-4.1.19.tar.bz2
    cd ../grub-0.97
    patch -p0 -l < ../gfxboot-4.1.19/patches/grub-0.97.diff



  5. Apply the following patch which adds a feature to load an OEM SLIC table for Windows activation. I found this patch through Yahoo! China. Save it as loadslic.patch.


    --- grub-0.97/stage2/builtins.c 2005-02-16 05:58:23.000000000 +0800
    +++ grub-0.97.new/stage2/builtins.c 2009-08-11 22:37:26.000000000 +0800
    @@ -48,6 +48,7 @@
    #ifdef USE_MD5_PASSWORDS
    # include <md5.h>
    #endif
    +#include <defs.h>

    /* The type of kernel loaded. */
    kernel_t kernel_type;
    @@ -397,6 +398,180 @@
    "Print the contents of the file FILE."
    };

    +
    +/*
    + * Add by yangrz, 2009-08-11
    + */
    +#define SLIC_LENGTH 0x176
    +
    +typedef struct acpi_rsdp {
    + char signature[8]; /* RSDP signature "RSD PTR" */
    + u_char checksum; /* checksum of the first 20 bytes */
    + char oem_id[6]; /* OEM ID, "LXBIOS" */
    + u_char revision; /* 0 for APCI 1.0, 2 for ACPI 2.0 */
    + u_int rsdt_address; /* physical address of RSDT */
    + u_int length; /* total length of RSDP (including extended part) */
    + unsigned long long xsdt_address; /* physical address of XSDT */
    + u_char ext_checksum; /* chechsum of whole table */
    + u_char reserved[3];
    +} __attribute__((packed)) acpi_rsdp_t;
    +
    +typedef struct acpi_table_header /* ACPI common table header */
    +{
    + char signature [4]; /* ACPI signature (4 ASCII characters) */\
    + u_int length; /* Length of table, in bytes, including header */\
    + u_char revision; /* ACPI Specification minor version # */\
    + u_char checksum; /* To make sum of entire table == 0 */\
    + char oem_id [6]; /* OEM identification */\
    + char oem_table_id [8]; /* OEM table identification */\
    + u_int oem_revision; /* OEM revision number */\
    + char asl_compiler_id [4]; /* ASL compiler vendor ID */\
    + u_int asl_compiler_revision; /* ASL compiler revision number */
    +} __attribute__ ((packed)) acpi_header_t;
    +
    +/* RSDT */
    +typedef struct acpi_rsdt {
    + struct acpi_table_header header;
    + /* MCONFIG, HPET, FADT, SRAT, SLIT, MADT(APIC), SSDT, SSDTX, and SSDT for CPU pstate*/
    + u_int entry[1];
    +} __attribute__ ((packed)) acpi_rsdt_t;
    +
    +static u_char
    +acpi_checksum(u_char *table, u_int length)
    +{
    + u_char ret=0;
    + while (length--)
    + {
    + ret += *table;
    + table++;
    + }
    + return -ret;
    +}
    +
    +static acpi_rsdp_t *
    +acpi_find_rsdp(void)
    +{
    + acpi_rsdp_t *rsdp;
    +
    + //TODO: also search EBDA
    + for ( rsdp = (acpi_rsdp_t *)(RAW_ADDR(0xe0000));
    + rsdp < (acpi_rsdp_t *)(RAW_ADDR(0xfffff - 0x16));
    + rsdp = (acpi_rsdp_t *)((unsigned char *)rsdp + 16) )
    + {
    + if ( memcmp(rsdp->signature, "RSD PTR ", 8) == 0
    + && acpi_checksum((u_char *)rsdp, rsdp->length) == 0 )
    + {
    + return rsdp;
    + }
    + }
    +
    + return NULL;
    +}
    +
    +static acpi_header_t *
    +acpi_find_slic(acpi_rsdp_t *rsdp)
    +{
    + int i;
    + acpi_rsdt_t *rsdt;
    + acpi_header_t *slic;
    +
    + rsdt = (acpi_rsdt_t *)(rsdp->rsdt_address);
    + for ( i = 0;
    + i < (rsdt->header.length - sizeof(acpi_header_t))/4;
    + i++)
    + {
    + slic = (acpi_header_t *)(RAW_ADDR(rsdt->entry[i]));
    + if ( slic != NULL && memcmp(slic->signature, "SLIC", 4) == 0 )
    + {
    + return slic;
    + }
    + }
    +
    + return NULL;
    +}
    +
    +/*
    + * return value : success 0
    + * fail 1
    + */
    +static int
    +acpi_copy_memory(char *target, char *source, int len)
    +{
    + int i;
    +
    + for ( i = 0; i < len; i++ )
    + {
    + target[i] = source[i];
    + }
    + /* check data */
    + if ( memcmp(target, source, len) != 0 )
    + {
    + printf("modify memory fail: maybe address 0x%x write protect\n",
    + target);
    + return 1;
    + }
    + return 0;
    +}
    +
    +static int
    +acpi_add_slic(char *arg, int flags)
    +{
    + char *file = arg;
    + acpi_rsdp_t *rsdp;
    + acpi_header_t *slic;
    + char buf[SLIC_LENGTH];
    +
    + rsdp = acpi_find_rsdp();
    + if ( rsdp == NULL )
    + {
    + grub_printf("can not find rsdp\n");
    + return 1;
    + }
    + slic = acpi_find_slic(rsdp);
    + if ( slic == NULL )
    + {
    + grub_printf("can not find slic\n");
    + return 1;
    + }
    +
    + if ( slic->length != SLIC_LENGTH )
    + {
    + return 1;
    + }
    +
    + if ( !grub_open(file) )
    + {
    + printf("grub open %s fail\n", file);
    + return 1;
    + }
    + if ( grub_read (buf, SLIC_LENGTH) != SLIC_LENGTH )
    + {
    + printf("grub read fail\n");
    + grub_close();
    + return 1;
    + }
    + grub_close();
    +
    + if ( acpi_copy_memory((char *)slic, buf, SLIC_LENGTH) )
    + {
    + errnum = ERR_WONT_FIT;
    + return 1;
    + }
    +
    + errnum = ERR_NONE;
    + return 0;
    +}
    +
    +static struct builtin builtin_load_slic =
    +{
    + "loadslic",
    + acpi_add_slic,
    + BUILTIN_CMDLINE | BUILTIN_HELP_LIST,
    + "loadslic FILE",
    + "load acpi slic form file"
    +};
    +/* end yangrz add */
    +

    /* chainloader */
    static int
    @@ -4835,6 +5010,8 @@
    &builtin_install,
    &builtin_ioprobe,
    &builtin_kernel,
    + /* Add by yangrz, 2009-08-08 */
    + &builtin_load_slic,
    &builtin_lock,
    &builtin_makeactive,
    &builtin_map,

    Apply this patch as follows:


    patch -p1 -l < ../loadslic.patch


  6. Compile GRUB.


    ./configure --prefix=/usr
    make
    make install

    The following files are installed:


    /usr/bin/mbchk
    /usr/info/multiboot.info
    /usr/lib/grub/i386-pc
    /usr/man/man1/mbchk.1
    /usr/man/man8/grub.8
    /usr/man/man8/grub-install.8
    /usr/man/man8/grub-md5-crypt.8
    /usr/man/man8/grub-terminfo.8
    /usr/sbin/grub
    /usr/sbin/grub-install
    /usr/sbin/grub-md5-crypt
    /usr/sbin/grub-set-default
    /usr/sbin/grub-terminfo

    To get my GRUB binaries, read this post.





Using GRUB to load SLIC


Note that the SLIC patch for GRUB only works on computers with BIOS that actually contain a SLIC table. To load SLIC with the patched GRUB, use the loadslic command at the GRUB prompt or in the menu.lst configuration file. For example, a menu.lst may contain a section like the following:


# GRUB Boot Menu
hiddenmenu

# By default, boot Windows Vista
default 0
timeout 0

# Boot Windows Vista Home Premium
title Windows Vista Home Premium
unhide (hd0,0)
hide (hd0,1)
loadslic (hd0,5)/boot/grub/slic.bin
chainloader (hd0,0)+1


For old computers with non-SLP BIOS, read this post.

About This Blog

KBlog logo This blog seeks to provide a collection of interesting pictures found on the Web. Thanks for visiting the blog and posting your comments.

© Contents by KBlog

© Blogger template by Emporium Digital 2008

Followers

Total Pageviews

Powered By Blogger