I bought the following netbook in Dec 2009 because (1) I was tired of hauling
an ageing, full-sized "desktop replacement" laptop and its brick of an A/C
adaptor around, (2) I had seen reports of successful OOTB (out-of-the-box)
linux installs on it, (3) it had a native screen of 1366×768 instead of
the more typical 1024×600 pixels, (4) it had 3 USB2.0 ports instead of
the more typical 2, and (5) its keyboard felt relatively solid and is
sufficiently large for my fingers.
FYI: do not expect the performance of a desktop replacement laptop out
of this $400 notebook — it does not appear a whole lot faster than the
top-of-the-line $2200 Sony Vaio PCG-GRZ660 from summer 2002 that it replaces,
although the dual-core of the Atom N270 does reduce sluggishness in
response under load. And the reduction in weight (and newer hardware) was
what this was all about.
Step 1:
After first boot-up into the factory-installed Windows XP, and connecting to
the internet (ASU wireless was detected without any problems) downloaded all
available updates, including Norton anti-virus updates. Repeat until system
is up to date (may involve several system restarts) Next, I installed the
Secure Shell Client software ('ssh'/'sftp'), in case I need to connect to
other computers from the dark side. Similarly, I copied over my favorite
ASCII text editor program (MicroEmacs3.8, the old DOS executable still works
– yay!).
Downloaded from the HP support web site
the 'Disaster Recovery utility'. (under "Download drivers and software (and
firmware)", enter product name/number, and enter the flavor of Windows. Save
the binary to the C: drive. Insert a USB flash drive with a capacity of at
least 256Mb, then double-click the downloaded binary file to format the USB
flash drive and extract the disaster recovery files onto it. Restart computer,
enter BIOS menu and change boot-order to first boot from external USB devices
and only then from the internal hard drive, and test whether the flash drive
is indeed bootable and enters the Disaster Recovery mode. If so, remove the
flash drive and restart the computer to boot into Windows XP again.
Clean up any unneeded files from the C: drive using the appropriate disk
maintenance utility, then defragment the C: drive. Next, using the back up
drive option of the pre-installed 'Roxio BackOnTrack' software, create an
exact image (full back-up) of the internal hard drive on the external 40Gb USB
hard disk. It sucks that manufacturers don't provide a full set of Windows
CD's anymore and make you sacrifice additional hardware for this fundamental
step. When done, shutdown the notebook.
Step 2:
On another computer, download the GParted LiveCD ISO9660 image and burn it
to a CDROM as an ISO image (not as a file!). Also start downloading the
appropriate CentOS 5.4 DVD ISO image (32-bits netbook, so: 'i386').
Connect the external USB CD/DVD drive to the netbook, power up that drive and
insert the GParted 0.4.6-1 LiveCD, then power up the netbook to boot from the
LiveCD. Do not use versions
0.4.8-1–0.5.0-3 for this! On the intuitive graphical menu, select
the active partition and use Resize/Move to shrink the existing NTFS partition
from 160Gb down to ~20–24Gb or so, depending on how much free space
(6–10Gb) you want to retain for Windows, and on what the graphical
window during the defragmentation step above indicated for the highest
unmovable portions of data. Leave Windows in the lower ~20Gb of sectors
(/dev/sda1) of the hard disk (i.e., do not move it, only shrink it) and create
a linux partition (/dev/sda2) that fills the remainder of the disk (~140Gb).
Apply the changes made, then wait till GParted has finished doing its thing.
Once done, quit, remove the CD from the drive and reboot the computer (keep
fingers crossed).
During boot-up, Windows will detect something is changed (and therefore wrong)
compared to its sense of the world, but it managed to recover from it (after,
of course, another restart). If you shrink your partition so much as to
globber some of the files that used to be beyond the bounds of the new
partition, you may be less lucky than I was. In such case, hopefully, the
Disaster Recovery flash drive and backup image can be used to restore
Windows.
When Windows came/comes up OK, create a new backup image of the C: drive onto
the external USB hard disk using 'Roxio BackOnTrack' (but keep the original
ones as well). I was not able to use the back up drive option this time,
since the software seemed to think that a backup image of the disk would
require 96Gb (WTF?!) instead of ~14Gb, but the C: drive contents could
be backed up. When done, "safely remove" the external USB hard disk.
Step 3:
After checking the MD5 checksum, burn the CentOS 5.4 DVD ISO image to
DVD using 'k3b' and check that the
DVD as written matches the binary image on disk. Connect the netbook to the
internet via its wired ethernet jack. Install linux on the newly freed portion
of the hard disk:
Step 4:
Post-installation/configuration (from 'software.notes').
#] cat /etc/yum.conf [main] cachedir=/var/cache/yum keepcache=1 <-- was "0" debuglevel=2 logfile=/var/log/yum.log pkgpolicy=newest <-- was absent distroverpkg=centos-release <-- was "redhat-release" tolerant=1 exactarch=1 obsoletes=1 #gpgcheck=1 <-- don't gpg-check local, unsigned pkgs plugins=1 # Note: yum-RHN-plugin doesn't honor this. metadata_expire=1h retries=20 <-- was absent \ some mirrors go down, timeout=30 <-- was absent / retrying takes forever # installonly_limit = 3 <-- was uncommentedAdd an additional RPM repository to /etc/yum.repos.d/:
#] cat /etc/yum.repos.d/dag.repo [dag] name=Dag RPM Repository for Red Hat Enterprise Linux (CenOS-$releasever) #baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag/ #baseurl=http://rh-mirror.linux.iastate.edu/pub/dag//redhat/el$releasever/en/$basearch/dag/ baseurl=http://www.mirrorservice.org/sites/apt.sw.be/redhat/el$releasever/en/$basearch/dag/ gpgcheck=1 enabled=1Then as 'root', download and install all available updates to the packages installed as part of the CentOS installation:
#] yum --nogpgcheck updateThis will download several hundred Mb of updated RPMs. The '
#] yum localupdate --nogpgcheck `find /var/cache/yum/ -type f -name '*.rpm'`
]# cd /root ]# cat mkdistrib_i386 #!/bin/tcsh # i386 version (32-bit machines). Last updated: Jan 7 2010 [RAJ] echo -n "Generating /usr/local/ tar-ball for transplantation to other systems... " gtar -cpzf /bla2/usrlocal_i386.tgz --exclude /usr/local/src/iraf2122 \ --exclude /usr/local/bin/cl --exclude /usr/local/bin/cl.e \ --exclude /usr/local/bin/generic --exclude /usr/local/bin/mkiraf \ --exclude /usr/local/bin/mkmlist --exclude /usr/local/bin/mkpkg \ --exclude /usr/local/bin/obmsh --exclude /usr/local/bin/resize \ --exclude /usr/local/bin/rmbin --exclude /usr/local/bin/rmfiles \ --exclude /usr/local/bin/rpp --exclude /usr/local/bin/rtar \ --exclude /usr/local/bin/sgidispatch --exclude /usr/local/bin/vximtool \ --exclude /usr/local/bin/wtar --exclude /usr/local/bin/xc \ --exclude /usr/local/bin/xgterm --exclude /usr/local/bin/xpp \ --exclude /usr/local/bin/xtapemon --exclude /usr/local/bin/xyacc \ --exclude /usr/local/man/man1/obmsh.1 --exclude /usr/local/man/man1/resize.1 \ --exclude /usr/local/man/man1/xgterm.1 --exclude /usr/local/man/man1/vximtool.1 \ --exclude /usr/local/man/man1/ximtool.1 --exclude /usr/local/man/man1/xtapemon.1 \ /usr/local echo "Done." echo -n "Generating /iraf tar-ball for transplantation to other systems... " gtar -cpzf /bla2/iraf2122_i386.tgz /usr/local/src/iraf2122 \ /usr/local/bin/cl /usr/local/bin/cl.e /usr/local/bin/generic \ /usr/local/bin/mkiraf /usr/local/bin/mkmlist /usr/local/bin/mkpkg \ /usr/local/bin/obmsh /usr/local/bin/resize /usr/local/bin/rmbin \ /usr/local/bin/rmfiles /usr/local/bin/rpp /usr/local/bin/rtar \ /usr/local/bin/sgidispatch /usr/local/bin/vximtool /usr/local/bin/wtar \ /usr/local/bin/xc /usr/local/bin/xgterm /usr/local/bin/xpp \ /usr/local/bin/xtapemon /usr/local/bin/xyacc \ /usr/local/man/man1/obmsh.1 /usr/local/man/man1/resize.1 \ /usr/local/man/man1/vximtool.1 /usr/local/man/man1/xgterm.1 \ /usr/local/man/man1/ximtool.1 /usr/local/man/man1/xtapemon.1 \ /usr/include/iraf.h \ /usr/lib/python2.4/site-packages/Numeric \ /usr/lib/python2.4/site-packages/numarray \ /usr/lib/python2.4/site-packages/Numeric.pth /usr/include/python2.4/numarray \ /usr/X11R6/lib/X11/app-defaults/XEphem /usr/X11R6/lib/X11/app-defaults/XGterm \ /usr/X11R6/lib/X11/app-defaults/XTapemon \ /usr/share/X11/app-defaults/XEphem /usr/share/X11/app-defaults/XGterm \ /usr/share/X11/app-defaults/XTapemon echo "Done." echo -n "Generating /etc/ tar-ball for transplantation to other systems... " gtar -cpzf /bla2/etc_i386.tgz \ /etc/DIR_COLORS /etc/sudoers /etc/hosts.allow /etc/hosts.deny \ /etc/cron.hourly/vpmonitor /etc/cron.daily/sysbckp /etc/cron.weekly/sysbckp \ /etc/cron.monthly/sysbckp /etc/skel/AA_README /etc/skel/Desktop \ /etc/skel/.alias /etc/skel/.cshrc /etc/skel/.dir_colors \ /etc/skel/.login /usr/lib/libpng.so.2.1.0.16 /usr/lib/libpng.so.2 \ /root/sysbackup /root/mkdistrib /root/mem_i386.linux \ /root/notes/CentOS5-install_nj.pdf echo "Done."Create the tar balls on the donor machine:
]# ./mkdistrib_i386
]# cd / ]# mv /etc/DIR_COLORS /etc/DIR_COLORS.orig ]# scp root@donor.machine:/noi1/usrlocal_i386.tgz /tmp/. ]# gtar -xvpzf /tmp/usrlocal_i386.tgz ]# rm /tmp/usrlocal_i386.tgz ]# scp root@donor.machine:/noi1/iraf2122_i386.tgz /tmp/. ]# ln -s /usr/local/src/iraf2122 /iraf ]# gtar -xvpzf /tmp/iraf2122_i386.tgz ]# rm /tmp/iraf2122_i386.tgz ]# scp root@donor.machine:/noi1/etc_i386.tgz /tmp/. ]# gtar -xvpzf /tmp/etc_i386.tgz ]# rm /tmp/etc_i386.tgz
/dev/cdrw /media/cdrw auto pamconsole,fscontext=system_u:object_r:removable_t,exec,noauto,managed 0 0 /dev/fd0 /media/floppy auto pamconsole,fscontext=system_u:object_r:removable_t,exec,noauto,managed 0 0Add the following lines to '/etc/hosts.allow':
# Allow 'ssh' for everyone except notoriously suspicious domains (include others as needed)... sshd : ALL EXCEPT PARANOID, .com, .net, .tv, .biz, .mil, .info : allow #EOFAdd the following lines to '/etc/hosts.deny':
# Don't even try to log in if your host name doesn't match your IP address! ALL : PARANOID \ : spawn (/bin/echo Attempt to %d from %h %a by %c PARANOID at `/bin/date` | /usr/bin/tee -a /var/log/messages /var/log/tcp.deny.log) \ : deny # ALL : ALL EXCEPT localhost \ : spawn (/bin/echo Attempt to %d from %h %a by %c at `/bin/date` | /usr/bin/tee -a /var/log/messages /var/log/tcp.deny.log) \ : deny #EOFEdit the following line in '/etc/pam.d/system-auth':
password requisite pam_cracklib.so try_first_pass retry=3
by appending the options "minlen=10 lcredit=-2 ucredit=-2 dcredit=-2 ocredit=-1"
(this enforces a minimum password length of 10 characters, with at least 2
upper case, at least 2 lower case, at least 2 digits, and at least 1 other
alpha-numeric special character). Also edit the line:
password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok
by appending the option "remember=3" (this will disallow re-using the same
password for at least 3*180 days; see PASS_MIN_DAYS in '/etc/login.defs').
Change the following parameter values in '/etc/default/useradd':
HOME=/mu1/users <-- was /home INACTIVE=14 <-- was -1 SHELL=/bin/tcsh <-- was /bin/bash
]# cat /boot/grub/grub.conf
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,1)
# kernel /vmlinuz-version ro root=/dev/sda3
# initrd /initrd-version.img
#boot=/dev/sda
default=3 <-- starts from 0; default is WindowsXP
timeout=10 <-- increased from 5
splashimage=(hd0,1)/grub/splash.xpm.gz
hiddenmenu
password --md5 $1$Ajgtb.fM$QtfwxFjkfKTNQ/7ndkopW1
title Memtest86+ v4.00
kernel /memtest86+-4.00
#title CentOS 5.4 (2.6.18-164.el5xen) [OOTB; Jan 6 2010]
# root (hd0,1)
# kernel /xen.gz-2.6.18-164.el5
# module /vmlinuz-2.6.18-164.el5xen ro root=LABEL=/1 rhgb quiet
# module /initrd-2.6.18-164.el5xen.img
#title CentOS 5.4-base (2.6.18-164.el5) [OOTB; Jan 6 2010]
# root (hd0,1)
# kernel /vmlinuz-2.6.18-164.el5 ro root=LABEL=/1 rhgb quiet
# initrd /initrd-2.6.18-164.el5.img
title CentOS 5.4 (2.6.18-164.9.1.el5xen) [CPUx2; Jan 7 2010]
root (hd0,1)
kernel /xen.gz-2.6.18-164.9.1.el5
module /vmlinuz-2.6.18-164.9.1.el5xen ro root=LABEL=/1 rhgb quiet
module /initrd-2.6.18-164.9.1.el5xen.img
title CentOS 5.4 (2.6.18-164.9.1.el5) [CPUx1; Jan 7 2010]
root (hd0,1)
kernel /vmlinuz-2.6.18-164.9.1.el5 ro root=LABEL=/1 rhgb quiet
initrd /initrd-2.6.18-164.9.1.el5.img
title Windows XP
rootnoverify (hd0,0)
chainloader +1
]# mkdir /data1 ; mkdir /data2 ; mkdir /backupthen edit '/etc/rc.local' as follows:
]# cat /etc/rc.local #!/bin/sh # # This script will be executed *after* all the other init scripts. # You can put your own initialization stuff in here if you don't # want to do the full Sys V style init stuff. touch /var/lock/subsys/local echo "Remounting file system: /mu1/users --> /home" mount --bind /mu1/users /home echo " /mu1/data1 --> /data1" mount --bind /mu1/data1 /data1 echo " /mu1/data2 --> /data2" mount --bind /mu1/data2 /data2 sleep 2
yum search latex2html <-- returns: latex2html-2002.2.1-6.noarch
yum resolvedep latex2html <-- no dependencies
yum install latex2html
yum search poppler <-- found poppler.i386, poppler-devel.i386, and
poppler-utils.i386
yum resolvedep poppler poppler-devel poppler-utils <-- no dependencies;
version is *-0.5.4-4.4.el5_4.11.i386
yum install poppler poppler-devel poppler-utils
The already installed 'poppler' library was up to date, but now installed the
command-line utilities ('rpmquery --list poppler-utils poppler-devel'):
cd /usr/share/texmf/tex/generic/
rsync -av --rsh "ssh -l root" donor.machine:/usr/share/texmf/tex/generic/misc .
(this copies over files 'psfig.sty' and 'letterspacing.tex' into "misc/").
cd /usr/share/texmf/ ; \cp -p ls-R ls-R.SAV
mktexlsr
The latter updates the "ls-R" database used by the 'kpathsea' library.
Media: Letter 612 792 24 24 574 768 # llx was set to 38
OutputFirstLine: %!PS-Adobe-2.0 EPSF-2.0 <-- was "%!PS-Adobe-3.0"
Also copied over from 'donor.machine' file "simple.hdr" which was modified but
not improved on a M$ box (judging from the ^M characters in the OOTB version):
cd /usr/share/enscript/
rsync -av --rsh "ssh -l root" donor.machine:/usr/share/enscript/simple.hdr .
Now the header format is identical to the way it used to be.
yum search mplayer <-- returns: mplayerplug-in, mencoder, mplayer-docs, ffmpeg-libpostproc, mplayer-fonts,
mplayer, mplayer-skins, dvd95, vstream-client-devel, vstream-client, ogmrip, smplayer
yum search codecs <-- libquicktime, dirac, ivtv, rte-devel, rte
yum resolvedep mplayerplug-in mencoder mplayer-docs ffmpeg-libpostproc mplayer-fonts mplayer mplayer-skins \
dvd95 vstream-client-devel vstream-client libquicktime dirac ivtv rte-devel rte ogmrip smplayer
yum --nogpgcheck install mplayerplug-in mencoder mplayer-docs ffmpeg-libpostproc mplayer-fonts mplayer mplayer-skins \
dvd95 vstream-client-devel vstream-client libquicktime dirac ivtv rte-devel rte ogmrip smplayer
This also downloads a truck-load of other packages in order to resolve
dependencies (a52dec, aalib, amrnb, amrwb, cppunit, directfb, enca, enchant,
faac, faad2, ffmpeg, freeglut, imlib2, lame, libcaca, libdca, libdvdcss,
libdvdread, libebml, libid3tag, libmad, libmatroska, libmpcdec, libsndfile,
lirc, lzo2, mjpegtools, mkvtoolnix, mpeg2dec, ogmtools, openal,
subtitleripper, svgalib, theora-tools, transcode, tslib, twolame, wxGTK,
264, xvidcore, SDL_gfx).Downloaded the latest 'mplayer'-specific codecs from: http://www.mplayerhq.hu/design7/dload.html --> Linux x86 v.20071007
bzip2 -d /tmp/essential-20071007.tar.bz2
cd /usr/lib/codecs ; gtar -xvpf /tmp/essential-20071007.tar
\cp -p essential-20071007/*.so .
yum localinstall /usr/src/redhat/RPMS/i386/AdbeRdr*.rpm
To support loading PDF documents directly in a web-browser (firefox):
cd /usr/lib/firefox-3.0.16/ ln -s /usr/lib/mozilla/plugins ln -s /usr/lib/mozilla/plugins-wrappedDownloaded Adobe Flash Player v10.0 from: http://www.adobe.com/ --> '/usr/src/redhat/RPMS/i386/flash-plugin-10.0.42.34-release.i386.rpm', then:
yum localinstall /usr/src/redhat/RPMS/i386/flash*.rpm
yum search alpine <-- found: alpine.i386
yum resolvedep alpine <-- alpine-2.00-2.el5.rf.i386 ; no dependencies
yum --nogpgcheck install alpine-2.00-2.el5.rf.i386
Just make sure you have a copy of your ".addressbook" and ".addressbook.lu"
files (they will be wiped clean, but are recognized when subsequently copied
back).
yum search pdfedit <-- found: pdfedit.i386
yum resolvedep pdfedit <-- pdfedit-0.3.2-1.el5.rf.i386; no dependencies
yum --nogpgcheck install pdfedit-0.3.2-1.el5.rf.i386
This also downloads the packages 'libpaper' and 't1lib' in order to resolve some
dependencies, and installs ('rpmquery --list pdfedit') executables: 'pdfedit'
and 'paperconf' in /usr/bin/ ; library 'libpaper.so.1.1.2' and soft-link in
/usr/lib/ ; executable 'paperconfig' in /usr/sbin/ ; etc...
yum search ntfs <-- found: ntfsprogs.i386, ntfsprogs-devel.i386, findntfs.i386,
fuse-ntfs-3g.i386, and fuse-ntfs-3g-devel.i386
yum resolvedep ntfsprogs ntfsprogs-devel findntfs fuse-ntfs-3g fuse-ntfs-3g-devel
<-- ntfsprogs-1.13.1-1.el5.rf.i386, ntfsprogs-devel-1.13.1-1.el5.rf.i386,
findntfs-1.3-1.el5.rf.i386, fuse-ntfs-3g-2009.4.4-2.el5.rf.i386,
fuse-ntfs-3g-devel-2009.4.4-2.el5.rf.i386
yum --nogpgcheck install ntfsprogs-1.13.1-1.el5.rf.i386 ntfsprogs-devel-1.13.1-1.el5.rf.i386 \
findntfs-1.3-1.el5.rf.i386 fuse-ntfs-3g-2009.4.4-2.el5.rf.i386 \
fuse-ntfs-3g-devel-2009.4.4-2.el5.rf.i386
Now the 'mount' command supports the NTFS file system type and one can simply
do:
]# mkdir /winxp ]# mount -t ntfs /dev/sda1 /winxp
One remaining issue is a very loud beep – the PC speaker is clearly not
correctly configured in linux. Temporary workaround is to enter "Control
Center" in KDE --> "Regional & Accessibility" --> "Accessibility". There,
check "Use visible bell" and uncheck "Use system bell".
Another, is that the "Broadcom 4312G" WLAN wireless card is not properly
detected, let alone configured. Although solutions for newer kernels and
different linux distributions have been reported, for the time being I'll be
tethered to a wired ethernet port...
Last updated: Jan 11, 2010