As we will put all the hardware into the frame, we need a thick frame with enough space. I found a wooden frame at Utrecht Art (Collectibles series) which is 1''1/2 thick:
We can now start to disassemble the laptop. I have taken some photos during the process:
First, remove the keyboard:
Uncover the hidden screws in the screen bezel, and work on the screen to remove the LCD panel. Some screws holding the screen panel with the main body are not easy to spot: take your time and don't force.
The power adpater:
The batteries (biggest one is security battery, smallest one is CMOS -- on one of my laptop it was dead, but it cost $17 to get a new one so I just need to plug a keyboard to remove the warning message during the first cold boot):
The card with the audio and IDE connector:
Unplug the video card:
The PCMCIA slots:
I have removed the left part (external VGA + IrDa):
Once all the pieces are ready, just plug the components together and check if the system still work:
First tape the LCD panel to the mat and place it back in the frame:
Put back to motherboard, the video card, the hard drive:
And tie everything with strong tape:
Then put the back cover (don't forget to make a hole to access to the power switch):
Congrutalations ! You have an e-frame. Just boot it the be sure everything is working:
Next time, I will explain how to put some photos in the frame and how to control the slideshow.
]]>Given the hardware I used for my first e-frame, I had no way to install Linux directly from the laptop (no way to boot it). I decided to use an other PC to access directly to the harddrive.
I first used a 2.5'' HDD enclosure to connect the lpatop HDD to my PC. This worked but was not very convient, as I needed to unplug/replug the HDD each time I wanted to try something on the laptop. After some search, I bought this nice device called R-Driver II, very useful for geeks ...
I also used a Linux on my main PC (Suse 9.1) to access to HDD. If you don't have Linux running on your PC, you can use a live Linux to execute all the steps described below (one live version having all the required tools is INSERT -- ISO image is only 50 MB)
Simply boot your Linux, then connect your external laptop HDD. On my system, the disk was seen as /dev/sdc
. This may change on your system: each time I refer to /dev/sdc
, be sure to translate that to your system (e.g. /dev/sda
).
First thing firsts, we will format the HDD using the following comands to create 2 partitions (one for swap, one for data). The examplebelow is based on a 1.3GB disk.
suse91:/home/riesterer/work # fdisk /dev/sdc Command (m for help): p Disk /dev/sdc: 1358 MB, 1358991360 bytes 64 heads, 63 sectors/track, 658 cylinders Units = cylinders of 4032 * 512 = 2064384 bytes Device Boot Start End Blocks Id System /dev/sdc1 * 1 657 1324480+ 6 FAT16 Command (m for help): d Selected partition 1 Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-658, default 1): 1 Last cylinder or +size or +sizeM or +sizeK (1-658, default 658): +64M Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 2 First cylinder (33-658, default 33): Using default value 33 Last cylinder or +size or +sizeM or +sizeK (33-658, default 658): Using default value 658 Command (m for help): t Partition number (1-4): 1 Hex code (type L to list codes): 82 Changed system type of partition 1 to 82 (Linux swap) Command (m for help): p Disk /dev/sdc: 1358 MB, 1358991360 bytes 64 heads, 63 sectors/track, 658 cylinders Units = cylinders of 4032 * 512 = 2064384 bytes Device Boot Start End Blocks Id System /dev/sdc1 1 32 64480+ 82 Linux swap /dev/sdc2 33 658 1262016 83 Linux Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.
Once done, we need to create the filesystems:
suse91:/home/riesterer/work # mkswap -c /dev/sdc1 Setting up swapspace version 1, size = 66023 kB suse91:/home/riesterer/work # mkfs.ext3 -c /dev/sdc2 mke2fs 1.34 (25-Jul-2003) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) 157760 inodes, 315504 blocks 15775 blocks (5.00%) reserved for the super user First data block=0 10 block groups 32768 blocks per group, 32768 fragments per group 15776 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912 Checking for bad blocks (read-only test): done Writing inode tables: done Creating journal (8192 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 21 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override.
We can now copy all the files to this newly formatted disk. I have packaged a filesystem which can be downloaded here: http://laurent.riesterer.free.fr/root_eframe_i386.ext2.gz (8 MB). First uncompress the filesystem:
gunzip root_eframe_i386.ext2.gz
then mount it locally as a loopback filesystem:
mount -o loop root_eframe_i386.ext2 root_eframe
Copy all the files:
suse91:/home/riesterer/work # mount /dev/sdc2 /mnt/disk suse91:/home/riesterer/work # cp -aR root_eframe/* /mnt/disk suse91:/home/riesterer/work # ll /mnt/disk/ total 68 drwxr-xr-x 15 root root 4096 Mar 6 15:51 . drwxr-xr-x 4 root root 96 Dec 15 16:39 .. drwxr-xr-x 2 root root 4096 Feb 13 11:18 bin drwx-- 3 root root 4096 Feb 7 21:09 boot drwx-- 4 root root 4096 Feb 14 18:04 dev drwx-- 14 root root 4096 Feb 14 20:28 etc drwxr-xr-x 3 root root 4096 Feb 7 21:47 home drwxr-xr-x 3 root root 4096 Feb 7 21:04 lib lrwxrwxrwx 1 root root 11 Mar 6 15:51 linuxrc -> bin/busybox drwx-- 2 root root 16384 Feb 7 20:26 lost+found drwx-- 2 root root 4096 Feb 7 20:37 proc drwx-- 2 root root 4096 Feb 13 11:21 root drwxr-xr-x 2 root root 4096 Feb 14 18:06 sbin drwxr-xr-t 2 root root 4096 Feb 7 20:29 tmp drwxr-xr-x 7 root root 4096 Feb 8 21:06 usr drwx-- 3 root root 4096 Jan 29 10:18 var
Before to put the HDD back in the laptop, we need to make it bootable. I choose to use GRUB for this task:
GNU GRUB version 0.94 (640K lower / 3072K upper memory) [ Minimal BASH-like line editing is supported. For the first word, TAB lists possible command completions. Anywhere else TAB lists the possible completions of a device/filename. ] grub> device (hd2) /dev/sdc
Once GRUB knows about our external drive, we proceed with a classic install:
grub> install (hd2,1)/boot/grub/stage1 (hd2) (hd2,1)/boot/grub/stage2 (hd2,1)/boot/grub/menu.lst grub> embed (hd2,1)/boot/grub/e2fs_stage1_5 (hd2) 23 sectors are embedded.
After that last operation, simply unmount your /dev/sdc2
partition, unplug your external drive and put the HDD back into the laptop. Turn the power on, and hopefully you will boot to Linux. If the program hangs on GRUB, just do an local install (on hd0
using the command line prompt displayed after the boot).
At this point, you should have a e-frame-enabled laptop, with one big advantage: you still have the keyboard connected. This is the perfect time to make sure everything is working before to take the laptop apart.
Do the following testing:
eframe
, password eframe
. At any time, you can become super user by issuing su
(no password)./etc/init.d/S99local
):
EFRAME
, default channel 11, no encryption10.0.0.1
10.0.0
sub-domainphotos
directoryshutdown
). Plug one wireless card to see if it is correctly detected by the system. Reboot the laptop and look at the boot messages. The supported wireless cards are 16-bits PCMCIA (not cardbus):
lvnet
tool to configure/monitor the card./etc/init.d/S99local
and replace amtl0
by eth0
.You now have a fully fonctionnal e-frame. In the next part, I will show how to transform the laptop into a real e-frame. Get your screwdriver ready !
]]>The best way to find some old laptop is to use eBay (www.ebay.com). I browsed by categories (Computers & Networking:Laptops:Toshiba:Less than 266 MHz) to find some Pentium I laptop. I searched a Toshiba as I used some of them 10 years ago and was very satisfied by the quality of the screen (of course, not even near to what we can get today, but still nice).
My first purchase was a Toshiba 430CDT. Since then, I bought a Toshiba 500CDT (but be careful as you need a caddy to attach the hard drive and this caddy is often not included), a Toshiba 410CDT, a 420CDT, a 510CDT and a 445CDX (which was an error as the X does not mean TFT but dual scan screen, i.e. useless to build a digital picture frame). During theses buys, I discovered an invaluable information source: Toshiba laptop detailed specs. Using this page, you can find all the caracteristics of the different models (caddy issues, embeded power adapter, ...).
If you are not in a hurry, you can find very good deal on those old laptops. I bought mine for $30 to $50 (shipping included). Beware not to spend too much on the laptop (I have seen some of them sold for more than $100 !). Just take your time and wait for the right moment.
As I received the laptop, I (re-)discovered that 10 years ago it was not so easy to install an operating system:
The other specs were quite low too: 75 MHz processor, 8MB of RAM, 500 MB hard-drive. After some research, I finally found a way to install Linux on the hard-drive, but a minimal install (using Mandrake 9.1) was using more than 200 MB of disk space and I still had some customization to do in order to have an e-frame booting out-of-the-box. I had to find a better way.
In the next part, I will explain how to install a customized Linux using only 15 MB of disk space, but still offering all the needed features (wireless support, Web-based configuration, easy pictures export using Samba share).
]]>