Welcome to the Legacy Documentation Project!!
***NEW FOR AUGUST 2005***
This system has been antiquated. Please use the DSL Wiki at http://www.damnsmalllinux.org/wiki
Thanks.
-J.P.
***NEW FOR JULY 2005***
New Submission Policy
***NEW!!!***
Clivesay has made some GREAT Docs in PDF form!
Check them out at http://distro.ibiblio.org/pub/linux/distributions/damnsmall/current/pdfdocs/!!!
***END NEW***
This book, document, collection, whatever, covers the installation and day to day use of DSL.
If you're new to DSL perhaps you should check out the preface to get aquainted with our distribution.
This is a work in progress and is the work of several individuals.
Many sections do not yet exist and some of those that do exist more than likely need to be updated.
Just click the title above to browse around!
Have fun!
Just remember, this is not a place for discussion. Comments made here should be either corrections, info to add in, or updates. No suggestions. If you have a suggestion, post it in the forums.
Comments that don't fit will be deleted as I find them.
-J.P.
07.18.2005
Added
3.# - About Extension Types
06.23.05
Added
8.d - Using DSL Behind a Proxy Server
05.18.05
Moved the Grub how-to to section 1
Wish I could have it in both.
wiki...
05.16.05
Added section 8.a.2 - Timezones
04.25.05
Added section 2.i - LOADLIN install
04/18/05
Added section 8.f - Using a printer with DSL
04/13/05
Added section 3.b.2 - Creating a *.tar.gz Extension from Source
02/04/05
Added section 8 - Using DSL
Added the section about wireless cards
Added Floppy only install using MS Windows
Translated everything from the old FAQ page to here
Added how to change/add icons
Added how to create .uci extensions
Added how to set up the proper drive geometry on a usb pendrive
01/18/05
added some things to the mini-faq
01/17/05
added "Making a Custom MyDSL cd"
This is the top-level page for newly submitted docs.
To submit a doc, log into your DSL Talk account, scroll down the page until you see the frame with your username as the frame title. Click "Create Content" and choose "Book Page".
Set the title as whatever you wish.
Set the Parent as this page (## - Newly Submitted)
Your submission may be renamed, edited, etc depending on what I (or another mod) think, and will be moved to the section we feel is appropriate.
In other words, the dsldocumentation_{at}_gmail_{dot}_com address has been deprecated. Don't use it anymore.
Thank you for helping the DSL Documentation Project!!
-J.P.
Updated 01.05.2005
Q) Will DSL ever get bigger than 50mb?
A) No.
The whole idea behind DSL is trying to fit a complete, fully functional desktop into a small footprint. If we were to raise the size, we would be becoming just another distro. And the fun of working more and more functionality out of 50mb would be gone. DSL will NEVER go over 50mb for the base iso. Stop asking.
Q) Can you add XYZ?
A) Maybe!
If it's small, and would add value to the distro, post a suggestion in the "Ideas and Suggestions" area of the forums. If it gets a good reaction, we will consider it.
Q) Why the name?
A) It's really just a way to emphasize the incredible small size of the distro.
If the name insults you, Just do what most people do. Call it "DSL".
Q) How can I help out?
A) Feedback and suggestions are always apprieciated, or you can...
buy a CD,
DSL on a BOOTABLE 128mb usb pendrive,
DSL on a 128mb pendrive that you can run INSIDE Windows,
something from the store, or even
make a donation.
Q) How can I be root in X?
A) Type "sudo [command]" or to stay root "sudo su".
Q) How can I get the scroll wheel on my USB mouse working?
A) Follow this process.
Quit X (ctrl+alt+backspace)
Run xsetup.sh
Select your desired resolution, then select USB mouse.
run startx.
enjoy.
Q) Why doesn't DSL have Gnome or KDE?
A) Because DSL is meant to be fast and light on PC's with minimal resources.
Q: How do I prevent the getting_started.html file from opening at boot time?
A: Open Emelfm and click on the 'H' in the upper left hand corner of the left pane showing the /home/dsl directory. Scroll down to the .xinitrc file and choose 'Edit' from the Emelfm button menu. Look for the dillo line that appears just before 'fluxbox' at the end of the file and place a '#' in front of the word dillo. Save and exit the file and you should be all set.
Q) Will DSL ever use the 2.6 kernel? Has it even been considered?
A) There are currently no plans (from what I have been told) to ever move to a 2.6.x kernel, for the following reasons.
1. The 2.6.x kernel is significantly bigger than the 2.4.x kernel, so it would cramp DSL's functionality.
2. The 2.6.x kernel drops a lot of support for legacy technologies, hardware, etc, and we want to keep DSL functional on as much hardware as possible
3. All major improvements that have occured to the 2.6.x tree have been, and are being backported to the 2.4.x tree, by a very active backporting team. And even though Linus said he would not participate in the backporting process this time, the demand for 2.4.x kernel maintenence is about the same as the demand for updates and improvements to the 2.6.x kernel, so even he has helped in the process, though not as much as what he does toward 2.6 development. For evidence of this activity, take a look at kernel.org, where you can see, the 2.4.30 kernel was released, just a few days after 2.6.10.
This is the description I also post over at Wikipedia, but I consider this the master copy.
It will be kept more up to date than the one at Wikipedia.
---Intro to DSL---
Damn Small Linux (also known as DSL) is a Linux distribution for the x86 architecture, originally in a Bootable business card LiveCD format, it is now also capable of being installed to and run from the hard disk, a USB flash drive, a Compact Flash card, inside a Microsoft Windows or Linux host environment via Qemu, a ZIP drive, and just about any other bootable media that can contain the required 50MB. Although the DSL project has maintained its 50mb size limit, it still includes many essential desktop applications. Damn Small Linux was originally conceived and maintained by John Andrews, but has grown into a large community project with many contributors, most notably Robert Shingledecker for the creation of the MyDSL system, DSL Control Panel, and tons of other stuff.
---Origins---
Although John based DSL originally on Model_K, a 22mb hack-down of Knoppix, DSL is now based on Knoppix proper, allowing much easier remastering and improvements.
---What can fit in 50 megabytes?!---
Now in its 9th iteration (0.9.2), Damn Small Linux has a complete desktop, including: XMMS, FTP client (both graphical and command line) and server, Mozilla Firefox web browser, Dillo web browser, Links-hacked web browser, Siag Office (Pathetic Writer word processor and the Siag spreadsheet), Sylpheed email, spellcheck (US English), some editors (Beaver, Vim, Nano), graphics editing and viewing (Xpaint, and xzgv), Xpdf, emelFM (file manager), Naim (AIM, ICQ, IRC), VNCviewer, Rdesktop, SSH/SCP server and client, DHCP client, PPP, PPPoE (ADSL), Monkey web server, calculator, generic and GhostScript printer support, Network File System, games, system monitoring apps, a host of command line tools, USB support, and PCMCIA support. DSL has built in scripts for the download and installation of Debian's Advanced Packaging Tool a.k.a Apt, and Synaptic, the gui for Apt. Additionally Damn Small Linux provides on-demand download for large programs such as OpenOffice.org and the Gcc as well as smaller apps like Xchat by means of the MyDSL system, which allows users the convenience of 1 click download and installation of apps (although most DSL users refer to all things MyDSL as extensions). As of December 7, 2004, the MyDSL servers are hosting over 200 apps, plugins, and other extensions available for installation.
---The MyDSL System, or Stuffing the Penguin---
The MyDSL extensions and servers are handled and maintained by the enigmatic Ke4nt and hosted by many kind organizations, such as Ibiblio and Belgium's Belnet. There are 2 areas of the MyDSL servers - regular and testing. The "regular" area contains extensions that have been proven stable enough for everyday use and is broken down into different areas such as "Apps", "Net", "system", and "uci" (Universal Compressed ISO - extensions in .uci format mount as a separate filesystem to save RAM space). The Testing Area is for newly submitted extensions that theoretically work "as advertised", but may have any number of bugs.
This is the first step in preparing to install DSL.
There are a variety of ways to get DSL, many of which may be explored on the main DSL website. For simplicity's sake we're going to assume you just want to get the files you will need to install DSL onto a CD, USB key, Hard Drive, or some other USB Device.
In the following documents you will be referred to DSL images (ie. bootusb-x.x.img & dsl-x.x.x.iso). These are the actual images you will need to install DSL to media.
At the time of this writing is the latest DSL version supported by these FAQs.
You can always visit the main DSL website to find the latest mirrors and such to get your hands on a copy of DSL.
That being said, the only thing left to do is actually download the files.
Using your favourite browser or FTP client (or even bittorrent) you will need to visit a mirror site and simply download the version of DSL you want.
We'll assume you're reasonably knowledgable with the FTP protocol and want to get the latest version.
Open your favourite FTP client and change to a local directory you wish to keep the files in, if using command line FTP simply:
***CODE SAMPLE***
ftp ibiblio.org
username: anonymous
password: anon@mouse.com
cd pub/Linux/distributions/damnsmall/current
get bootusb-x.x.img
get dsl-x.x.x.iso
quit
***END CODE SAMPLE***
You now have the necessary files (in most cases) to install DSL.
If you're wanting to do an embedded install simply find the version of embedded DSL you wish to use and download the dsl-embedded-x.x.zip.
There are some advantages to buying DSL from the main DSL website.
It helps save time and takes out a lot of the confusion people run into when attempting to install DSL by themselves. It also helps ensure that DSL continues to be provided and improved upon.
You can buy DSL preinstalled on a USB key/pen drive or other USB/cf devices, and from the main site even purchase a full scale DSL mini-machine, or donate.
So, you downloaded the ISO image, md5summed, and the checksums didn't match.
But it took you all night to download it, and you don't want to have to start from scratch, do you?
Well you don't have to! And I'll tell you how! reguardless of the OS you are running!
Note: this method works, no matter how the image is messed up. Even if you only got 41mb from one of the mirrors, and then the server died.
What you need:
1. the messed up ISO image
2. internet connection
3. Any bittorrent client (bittorrent-gui, bittorrent-cli, or ctorrent from the repository will be GREAT)
How to do it:
1. Connect to the internet.
2. Head over to our Bittorrent Mirror.
3. Download the .torrent file for the latest iso (if a new version just came out, it may take a day or three to show up onto the BT mirror)
4. Start bittorrent and tell it to save ti the same folder that the messed up iso is in.
5. Wait untill BT says "Download Sucessfull!"
You corrupt ISO is now Fixed!
The documentation and ideas expressed on this website or provided by volunteers are in no way to be held liable for any damages incurred by usage, properly or improperly. No warranties are expressed or implied. Proceed at your own risk.
The operators of this website will not be held responsible for any incidents involving the use of ideas or programs demostrated or supplied by using this website.
That being said, enjoy DSL.
At the time of this writing, for i386 DSL you need at least 16 megs of ram to boot. This does not provide X windows functionality, only console (at boot run 'dsl 2' for console only). 24 megs is the recommended MINIMUM for X windows. Of course, the more ram the better, since thats where you're working, in ram.
You will find that with only the minimum of ram the most you will be able to do is use primarily the preinstalled software that comes with DSL.
---Before you begin---
Make sure that CD-ROM (or USB if you are using a USB pendrive) booting is enabled and before the hard disk in the boot order. For USB, you may have options such as "usb-zip", "usb-floppy", and "usb-hdd". Just experiment until you find the one that works for you. You may also need to enable USB keyboard support, for some boards.
If your board is not capable of booting from CD-ROM (or USB), you will need to make a Boot floppy! Just head over to one of the mirrors and grab the latest boot-x.x.x.img (or boot-usb-x.x.x.img). It should be in the "current/" directory.
In linux, you can create a boot floppy by typing
***Code Sample***
dd if=boot-X.X.X.img of=/dev/fd0
***End Code Sample***
As far as windows, may I suggest John Newbigin's RawWrite for Windows. It's available at http://uranus.it.swin.edu.au/~jn/linux/rawwrite.htm and is a lot easier to use than the original command-line based rawrite2.exe. If you are capable of booting from CD-ROM or USB, ^_^ you're good to go!
Just pop in your CD or USB and go!
Updated 05/18/2005 - moved to section 1
So, you got yet another perfect install of L99 99 99 99 .., eh?
Well I can hook you up.
The first thing you need is a way to boot your toasted HD install, so grab the GRUB floppy image from my FTP.
If you don't have a floppy drive, you can grab the grub.iso.
Yes it's only about 500k.
Yes you have to close the CD. Multisession wont work right.
Yes, it wastes the rest of the CD.
No, I dont feel sorry for you.
Aaanyways, make the floppy with the following command.
cat grubbootdisk.cat >/dev/fd0
No, you can't use dd. It doesn't work.
No, I won't make a version that will work with dd, this one works fine.
Or for the iso, you can use cdrecord, just like for any other iso.
So, not that you have your boot media, you need to boot the dead computer with the grub disk in it, and tell grub how to boot it.
Thankfully, GRUB is very simple to do this with. for example, if your DSL hd-install is on hda1, here is what you need to enter.
title DSL
root (hd0,0)
kernel /boot/linux24 root=/dev/hda1
makeactive
boot
or, for frugal,
title DSL
root (hd0,0)
kernel /boot/isolinux/linux24 root=/dev/hda1
initrd /boot/isolinux/minirt24.gz
makeactive
boot
or for poorman's,
title DSL
root (hd0,0)
kernel /boot/isolinux/linux24 root=/dev/hda1
initrd /boot/isolinux/minirt24.gz
savedefault
Notice that GRUB does not number disks and partitions like Linux does. Linux starts counting from 1. Grub counts from 0.
So, the first disk is hd0. Then you have hd1, hd2 and so forth.
The same with partitions. The first partition is numbered "0", then 1 for the second, and so on.
The DSL kernel is at /boot/linux24, so dont change that.
For the "root=" entry, put the Linux device path there, like I did. /dev/hda1 or whatever.
After you get your DSL install up, grab the grub.dsl from my ftp and mydsl-load it.
Run the following command.
grub-install /dev/hda
No, I don't mean hda1, or whatever partition.
Yes, we are installing GRUB to the mbr.
No, this won't kill your windows. We'll get to that in a minute.
The last step is to set up the menu.list for grub, unless you like typing in the commands to boot a partition manually. I know I do. ^_^
The extension puts an empty menu.lst in /boot/grub, so you have to set it up manually. But I put decent instructions in comments in it, so it shouldnt be too hard.
Just remember to do chainloader +1 for windows booting.
Something like this, if windows is at hda2.
title Windows
root (hd0,1)
chainloader +1
makeactive
boot
Q) I'm from and my keyboard is messed up! How can I fix it?!
A) Easy! At the "boot: " prompt type in "dsl lang=##" (without the quotes).
Just replace "##" with the 2 letter code for your language.
Known languages that work are:
"es" - Spanish
"fr" - French
"de" - German
"fi" - Finnish
These may work, but have not been "officially" tested. The keymaps are in /usr/share/keymaps/. If something has a "(?)" beside it, it means I wasn't really sure what the language was, so I made an educated guess. If I'm wrong, email me and I'll fix it. If it has a "???" beside it, even Google couldn't help me. If you know what language it is, go ahead and fix it.
"bg" - Bulgarian (?)
"br" - Brazillian Portuguese (?)
"by" - ???
"cf" - ???
"cz" - Czech
"dk" - Danish
"et" - ???
"gr" - Greek
"hu101" - 101 key Hungarian
"il" - Hebrew (?)
"it" - Italian
"it2" - alternate Italian
"jp106" - 106 key Japanese
"lt" - Lithuanian
"lv-latin4" - Latgalian (Latin keyboard layout 4) (?)
"lv-latin7" - Latgalian (Latin keyboard layout 7) (?)
"mk" - ???
"nl" - Dutch
"no" - ???
"pl" - Polish (?)
"pt" - Portuguese (?)
"ro" - Romanian
"ru" - Russian
"sk" - Slavik (?)
"tralt" - Tralt
"trq" - ???
"ua" - ???
"uaw" - ???
"uk" - UK keyboard support
Rather than just listing the specs needed for DSL, read about Nick Hill and Paul Knight's adventure with DSL and a couple of 486s.
This message was sent to John 19 Oct 2003 by Nick Hill. Paul Knight and him did a good amount of experimenting with Dam Small and retro hardware. Their activities culminated in a "Retro Hardware Party" where they ran DSL on a 486SX33 and a 486DX2, both with 16MB of ram.
Quote from mail:
This message is being sent from the damn small machine using Sylpheed.
We successfully used a machine- a 486SX33 16Mb ram to surf the web and send email. Even used it as a remote station to edit pictures using the GIMP over a broadband link. Not exactly fast, but can be done. Takes 10-15 seconds to render news.bbc.co.uk.
The machine couldn't cope with an Ogg Vorbis stream at 11Khz/19Kbit mono. However, I tried with a 486DX2 processor / 16Mb and it worked.. Just! The missing FPU on the 486SX makes a difference for multimedia streams! The 486SX took 3 minutes to decode half one second. The DX2, however, coped in real time.
We held a retro hardware 'party' this evening, complete with chocolate biscuits and tea.
So now we know- web surfing with a modern operating system on atticware can be done- and we now are no longer restricted to tupperware parties- we have atticware parties!
I have attached a couple of pictures from our party. One shows the dmesg screen showing the processor kicking out an amazing 16.58 BogoMips and the 16Mb system ram can be seen. I have also included a photo of me and paul proudly showing off our atticware multitasking games, a (paused) instance of XMMS and 2 browser windows.
I have included an archive of the output of dmesg and ps ax.
BTW Glinks would not work on the SX chip but works on the DX chip.
Here are some pics that they included.
dmesg and Dillo screen 100K
Nick, Paul and a hard working 486DX 98K
You will want to use a CD writing program with a 'write to disk' or 'burn image' option. We'll be burning dsl-x.x.x.iso straight to the CD.
This will provide a "full" standard DSL install, and it will be bootable.
Software generally used for this under MSWin is Nero, Roxio, or any program that will 'burn ISO image'.
---In Linux---
There are many different ways to burn an ISO image, including many GUI frontends for burning ISO images like K3b, GNOME's Nautilus filemanager (using the burn:/// URI)and X-CD Roast, but I will go over the most generic way. For a more in depth HOWTO, try the CD Burning HOWOTO.
If you have a 2.4.x kernel (run uname -r to verify what version of kernel you are running), your only option is burning using the SCSI emulation in the kernel, even if you have a regular CD burner. Check the above how to in order to enable SCSI if the below commands do not work for you, otherwise, burn away.
First thing you need to do is figure out the configuration of your drive by running this command:
***CODE SAMPLE***
# cdrecord -scanbus
***END CODE SAMPLE***
If you get an error like:
cdrecord: No such file or directory. Cannot open '/dev/pg*'. Cannot open SCSI driver.
You do not have SCSI emulation enabled.
If you have a 2.6.x kernel version, you can run cdrecord without SCSI emulation enabled.
Use the same command earlier to figure out what your CD configuration is.
***CODE SAMPLE***
# cdrecord dev=ATAPI -scanbus
***END CODE SAMPLE***
If either command is successful, you should get output like:
***CODE SAMPLE***
Using libscg version 'schily-0.8'.
scsibus0:
0,0,0 0) *
0,1,0 1) '_NEC ' 'DVD+RW ND-1100A ' '1.NE' Removable CD-ROM
0,2,0 2) *
0,3,0 3) *
***END CODE SAMPLE***
If you get output similiar to that, but you don't see anything but "*"'s, that means that cdrecord isn't detecting your CD writer properly. Check the CD Burning HOWTO for possible solutions.
After you have figured out the configuration for your CD drive, run cdrecord to burn the CD:
***CODE SAMPLE***
# cdredcord dev=x,x,x dsl-x.x.x.iso
***END CODE SAMPLE***
If you had to run -scanbus with dev=ATAPI in order for it to detect your CD writer, you'll have to run cdrecord like this:
***CODE SAMPLE***
# cdrecord dev=ATAPI:x,x,x dsl-x.x.x.iso
***END CODE SAMPLE***
After all is done and assuming you have properly setup your BIOS to boot from CD, you should be set to boot from your newly burned CD.
---In Windows---
Open up your CD burning application (if you don't have one, get the excellent freeware app CD Burner XP Pro) and open up the CD Copy utility.
Set the source to the DSL image file and the target, or destination to your CD burner.
Set the speed to 16x or less, as this gives your CD burner the time it needs to buffer and write properly. If you burn over 16x, your CD will boot on newer computers, but probably not older PCs.
Tell it to start, and in a few minutes, your DSL CD is piping hot and ready to go!
1) Boot up the DSL livecd. If your computer does not support booting from CDROM drive, then download the boot floppy image from the DSL website and get the RAWRITE32.exe program and create a boot floppy disk. Then use the boot floppy + liveCD to start up DSL.
2) Open up an xterminal window and type:
***CODE SAMPLE***
sudo su
cfdisk /dev/hda
***END CODE SAMPLE***
Assuming that you are ready to blow away all of your existing data storage
(you might want to back up any special drivers and other important stuff in
case you want to re-install the original OS), create 2 new partitions:
hda1 Linux Swap Type 82 Size (at least 128mb)
hda2 Linux Type 83 Size (the rest of the disk space, I reccommend at least 2gb)
If your hard disk is really big, try leaving some unpartitioned space for future use.
Your DSL installation will go to partition hda2
Your DSL swap partition will be hda1
Type type:
mkswap /dev/hda1
swapon /dev/hda1
Then follow the hd install script as described in the forums. FAQ is at http://www.damnsmalllinux.org/dsl-hd-install.html .
So you type:
dsl-hdinstall
and then:
mkliloboot
and follow the instructions EXACTLY. In other words, if it tells you to type (for example) "hda1" then you type in "hda1". But if it tells you to type in "/dev/hda1" then you type in "/dev/hda1"
Good Luck.
(Thanks to cbagger01)
If this process seems a little daunting to you, remember that I wrote it with a lot of built in sarcasm and tongue-in-cheek humor.
If it still seems too tough, and you have a Windows OS, you can try AwPhuch's method on 2.c.2 here in the docs.
*****WARNING*****
This process may cause excess stress and frustration.
Not recommended for people with high blood pressure, a history of heart problems or aneurysms, pregnant women, or anybody else who is unable to cope with high levels of stress.
The author takes NO RESPONSIBILITY for any damage, either mental or physical, caused by this process.
*****END WARNING*****
Estimated time to completion >3 hours.
You will need:
* Either a copy of Knoppix or an installed full distro of linux (not DSL)
* I recommend having at least 60 BRAND NEW floppys, so that you dont have to re-use the same floppy over and over and still have a few extras. You can do it with as few as 4, but I wouldn't recommend it.
* A copy of the latest DSL iso, md5summed and checked out. Gotta be perfect.
* A copy of Tom's Root Boot on a new, high quality floppy (http://www.toms.net/rb/)
* A copy of the script from http://www.fpx.de/fp/Software/fsplit on a floppy.
* A DSL boot floppy for the version you are installing.
*** LOTS of patience
---Step 1---
Set up your work area.
It should be a relatively large table with ample room for 2 monitors, 2 computers, 2 keyboards, 2 mice and pads if needed, lots of elbow room.
You also need a comfortable chair.
The work area should be clean and free of clutter. That means put away your bills, Magic: the Gathering cards, Sports Illustrated Swimsuit issue, or whatever.
Gotta be clean. As little to get in your was as humanly possible.
---Step 2---
Set up your computers to where you can use either one of them comfortably without adjusting anything. This is easier if you have a rolling chair.
Make sure you have power for everything and net access.
Wireless networks make this easier.
---Step 3---
Make some coffee, put some beer (soda, if you're underage, like me ^_^) on ice, order pizza, or wings, or Chinese, or something.
You're gonna need it before we're done.
Trust me.
Do it.
I'm serious.
You'll thank me later.
---Step 4---
Boot up the computer you want to install DSL onto with Tom's Root boot (I will call this the "target system" or just "target").
Fire up the other computer with Knoppix or whatever other distro of your choice (I will call this the "host box" or "work box") and download or access the DSL iso. Make sure its md5sum checks out.
---Step 5---
Copy the fsplit script onto your host box and do the following mode changes.
***Code Sample***
$ chmod +x fsplit
$ chmod 775 fsplit
***END CODE SAMPLE***
This will make it executable, and act the way we want it to.
---Step 6---
Run fsplit on the iso and cut it into 1.4mb chunks.
***Code Sample***
fsplit dsl-x.x.x.iso 1400
***END CODe SAMPLE***
This process may take a while, depending on the hardware of your work box.
Go get a drink or something if it takes more than just a few minutes.
You should get about 38 (more or less, depending on the exact size of the iso) files with names xx00, xx01, xx02 and so on. These are your single floppy images.
---Step 7---
On the target system, use fdisk to create a fat32 partiton of at least 110mb (for the reformed iso and all the image files) at /dev/hda1. Later, this should become your swap partition, so make it however big you want that to be.
If you don't know how to use fdisk, a short walk-through of using fdisk to create partitions is available at http://www.tldp.org/HOWTO/Partition/partition-5.html . If you still don't get it, google is your friend.
Format the partition using this command
***CODE SAMPLE***
$ mkdosfs -v -F32 /dev/hda1
***END CODE SAMPLE***
(Thanks to Tom Oehser, the guy behind tomsrtbt)
Reboot the target machine into Tom's again and mount hda1.
Now for the FUN part!
---Step 8---
Remember all those 1.4mb files we made earlier?
Start copying them onto floppys and then onto hda1of the target system. This will take a while.
***CODE SAMPLE***
cp xx00 /mnt/floppy
***END CODE SAMPLE***
Just repeat that for each file.
By now, your beer (soda) should be cold and your pizza or whatever should have arrived. Grab a cold one and a slice of pie and settle in for the long run.
---Step 9---
Once all those files are on hda1 of the host system, run the following command.
***Code Sample***
$ cat xx* >
***END CODE SAMPLE***
Make sure that the name is EXACTLY the same as the original iso.
Check the md5sum of the reformed iso.
***Code Sample***
$ md5sum dsl-x.x.x.iso
***END CODE SAMPLE***
If the number checks out, move on to step 10, if not, reboot the target system, delete everything on hda1, and go back to step 8. ~_~
Most likely, it will work on the first try, unless you have a bad floppy, your floppy drive has a bad read, or whatever.
But, floppys are notoriously unreliable, remember?
---Step 10---
It's celebration time!! You did it! The hard part is over!!!
Delete the xx** files and do this.
Make a folder in /mnt called iso.
***Code Sample***
$ cd /mnt
$ mkdir iso
***END CODE SAMPLE***
Mount the iso to /mnt/iso.
***Code Sample***
$ mount -o loop -t iso9660 dsl-x.x.x.iso /mnt/iso
***END CODE SAMPLE***
Copy the contents of /mnt/iso to /mnt/hda1.
***Code Sample***
$ cp /mnt/iso/* /mnt/hda1/
***END CODE SAMPLE***
Unmount everything on the target system and reboot it with the DSL boot disk in it.
***CODE SAMPLE***
umount /mnt/*
***END CODE SAMPLE***
At the boot prompt, type in "dsl fromhd=/dev/hda1". If everything worked right, it should fire right up, just as if it were running from CD!
You can do whatever you want from here. I'll leave that up to you. Doing a regular HDinstall or whatever and setting up the swap partition.
Give yourself a high five! YOU DID IT!!!!!!!
Im still blown away that I was actually able to do what I was planning on doing...
Ill explain...I have a very old laptop that a buddy of mine was gave to me, its a 75Mhz Pentium (classic) 16Megs RAM, 540MB harddrive, no CD ROM or USB available, 10/100 Kingston KNE-2 PCMCIA card, the only info online I could find about it was (FCC ID:FMA7600)...I truly thought I was fighting a futile battle but now im surfing the web on this little monster!
OK before I go into how I did it I want to let anyone know that before they get frustrated and throw it out of the window take a step back and catch your breath...many times I wanted to quit but kept on trying...
HERE GOES:
1. Get the ISO image from DOWNLOAD PAGE
2. Get your favorite ISO viewer program (ISOBUSTER, DAEMON TOOLS, or whatever)
3. Extract the ISO files to your harddrive:
Code Sample
index.html
autorun.inf
autorun.bat
KNOPPIX [DIR]
4. Get WINRAR and UnRAR for DOS files.
5. When you rar the files you will have to go into the adv tab and select the old archive names (otherwise you get filenames like unrar.part01.rar which will confuse DOS), dont worry about compression or whatnot it should handle that automatically. Once you rar the files you should have around 30-32 rar files that will fit on a floppy.
5. With a WIN98 WIN98(no ramdrive) boot floppy (dont worry about the error message about no cdrom) fdisk 2 (50meg) primary fat 32 paritions on the harddrive (dont worry about the extra space...Linux will handle that later).
Code Sample
Format them (C:\ and D:\) with format C: /u or D: /u
6. Using 2 "good" floppies copy over the individual rar files to the D: drive on the computer [/CODE]a:\copy *.* d:[/CODE], once you have all the files copied over we need to:
A: check the integrity of the files and
B: extract the files back to thier original state.
Code Sample
unrar t unrar.rar
Having read the many posts of how to install DSL with no cdrom using a huge stack floppies, I wanted to create a script using only one floppy.
I wanted to make a simple way to install DSL on older laptops that have NO CDROM.
I started by looking for a single floppy Linux distro with good pcmcia network support.
I have found that TOMSRTBT is very good. It works with several old pcmcia network cards.
The systems that I have used for testing have:
32MB memory
1.44 floppy drive
128MB HD
800x600 screen
Linksys PCMCIA network card model PCMLM56
Also works with Xircom RealPort2 Model R2E-100
I have written a tiny frugal_lite.sh. It is written in ASH shell.
It provides the traditional "poorman's" install and boot floppy creation via the net.
First you must download and create TOMSRTBT disk. http://www.toms.net/rb/
With your pcmcia card inserted try booting TOMSRTBT and see if network
card is seen.
After booting up TOMSRTBT be sure to REMOVE the TOMSRTBT disk.
Look at the output of the ifconfig command. If you see your IP then you are ready to go.
If you see 1.1.1.1 then you must manually input your IP address. Like the following two lines:
ifconfig eth0 192.168.0.14 netmask 255.255.255.0
route add default gw 192.168.0.1
Then add your nameserver like this:
echo "nameserver xx.xx.xx.xx" >> /etc/resolv.conf
Next test your network setup by pinging an internet site.
If you made it here you are ready to go!
Next grab the frugal_lite.sh script like this:
wget http://ibiblio.org/pub/Linux/distributions/damnsmall/current/frugal_lite.sh
Now using fdisk create two linux partitions each large enough to hold DSL. I used 64MB to be safe. Could be smaller.
Format them by using:
mke2fs /dev/hda1
mke2fs /dev/hda2
Next place a GOOD (no bad sectors) floppy into the floppy drive.
Note: The hard drive partitons are NOT mounted. The floppy is NOT mounted.
Finally run the frugal_lite.sh like this:
./frugal_lite.sh
Follow the prompts.
Upon completion the system will reboot off the DSL boot floppy and start loading DSL.
Be sure to boot with the following:
boot: dsl vga=normal
Note: After you get your system running from boot floppy (poorman's) then you can install again into the other partition using the standard frugal_instal.sh giving you much more control of your system. Use the (L)ive CD install option as the poorman's is a virtual liveCD.
Or if the other partiton is large enough then do a regular dsl-hdinstall.
If you do this re-install into the other partition either frugal or full install then you can get rid of the poorman's by using fdisk to change it totype 82 (swap) and then format it for swap by using the mkswap /dev/hdaX
Anyway, I hope that you find this script useful. It should provide the most flexible way to enjoy the latest version of DSL.
(Thanks to Robert Shingledecker)
While trying to get pendrive booting to work I learned a lot about changing the geometry on a pendrive. I thought I'd share some of that here.
First off it appears that the geometry on a pendrive is NOT fixed in hardware, I have been able to change the parameters and have it work fine both in DSL and WinXP, the upshot is that if your pendrive doesn't have parameters you like, change them!
The best tool for doing this is sfdisk under DSL. Its MUCH easier to manipulate partitions using sfdisk under DSL than using windows tools, even if you will then be using it under windows. When playing around with the geometry parameters make sure you use the -f (thats the FORCE) option to sfdisk, otherwise it won't change some of the parameters. The reason this works is that there really are no heads or cylinders, its a bunch of bytes, the heads and such are just to keep the disk drivers happy.
Why would you want to change the parameters? When making a bootable partition you want to have 32 sectors per track and 1024 or less cylinders in the boot partition. Some pendrives come with strange parameters and if you change the sectors per track, the number of cylinders might go over 1024. (I know, this happened to me) The solution is to use sfdisk to change all the parameters.
Here is the sequence I would use to generate two partitions, one for booting and the other for storing .dsl files and backups etc.
First look at the current partition table and write down the parameters, if you make a mistake you can put it back the way it was!
sudo su -- you need to do everything as root
sfdisk -l /dev/sda
The -l lists the partition table and tells you the current geometry. NOTE: use /dev/sda NOT sda1. sda referes to the whole drive, sda1 refers to the first partition on that drive, since sfdisk works on the partition table itself, specifying a specific partition will not work.
Write down the number of cylinders, heads and sectors. Multiply all three of these numbers together, this gives you the total number of sectors on the drive, thats important to know when you start changing the parameters, you don't want to wind up telling sfdisk there are more sectors than what is actually there!!
Now look at the number of sectors per track, if that is NOT 32 you will need to change it to 32. Using 32 calculate the number of cylinders if you use the current number of heads. total_sectors / 32 / number_of_heads = no_of_cylinders. You really only need the number to be less than 1024 for the boot partition, which is usually 64 MB or sometimes 128 MB. Since a sector is 512 bytes you can divide the 64million by 512 to get the total number of sectors. Use the above equation to figure out the no of cylinders in your boot partition, if greater than 1024, increase the number of heads. The max number of heads is usually speced as 32 which should work for almost all cases. If you change the number of heads to get the boot partition right make sure you recalculate the total number of cylinders you need for the whole drive. You have to use the same number of heads and sectors for ALL partitions on the drive, the only thing you can vary per partition is the number of cylinders.
Now that you have the number of sectors per track, number of heads and number of cylinders for the whole drive you can set those with sfdisk:
sfdisk -f -Cnumcyl -Hnumheads -Snumsectors /dev/sda
If these numbers are different than the previous parameters it will tell you so, but thats fine, we are chaning them!
At this point it will be asking you for the parameters for the partitions, the first one will be for the boot partition so it gets some special arguments: here is what one might look like:
sda1:0 500 6 *
sfdisk prints the sda1: you type in the rest. The 0 means it starts at cylinder 0, the 500 is 500 cylinders long (use whatever you calculated for the boot partition) the 6 is type 6 which is a FAT16 partition and the * means its a bootable partition. If you just hit enter for the next line it makes the rest of the drive as sda2 and makes it a nonbootable linux partition. Just hit enter for sda3 and sda4 and it won't make a partition for them since all the space is used up with sda1 and sda2. Sfdsik asks if you want to write to the disk, type y and you are done.
At this point reboot dsl so the system sees the new parameters.
You can now format the partitions:
mkdosfs /dev/sda1
mk2fs /dev/sda2
reboot again and you can mount the partitions.
If you are using the install to pendrive command from DSL, don't format or mount the root partition. (sda1)
I hope this helps others get their pendrives properly partitioned.
SU's note - this usually make the key compatible with the USB-ZIP setting in Award bios.
(Thanks to John S. on the forums)
This is how to install DSL to a USB Key from Windows XP (98,NT,2000?) workstation without burning the ISO and without having to boot into DSL from the CD and partition theUSB key. (of course if you want to partition it you'll have to use a partitioning tool, cfdisk, or something else like
that)
1. Procure USB Key and make sure it is formatted with FAT, just to be sure its working. (ugh.)
2. Download the images necessary (as of this writing, bootimage 0.8 was used and filesystem image 0.9.0.1 was used.) and also download WinImage (a share/freeware program -- google it.), and install Daemon Tools or some other ISO viewing/manipulating program.
3. Open winimage, Select the boot image you wish to use, select "Use removable disk (x:) with x: being the drive letter of your USB key you wish to install DSL onto.
4. Select write image. It may say 'image must be resized' blah blah. Do it.
5. Once that is complete, view the USB drives contents in windows Explorer. Mount the filesystem image to another drive. The filesystem image contains a directory called 'boot'. You can overwrite the files in the root of the USB Key with the files from boot/. This basically replaces
bootimage 0.8 (since it seems to not be updated with the system release) with what I'll just call bootimage-current. (basically the boot files for whatever filesystem image you're using) In this case, 0.9.0.1.
6. Confirm overwriting of the files. Assuming your bios is up to date, and you've read a lot of the other facts on 'making sure your usb key will work with your bios, etc') then all you should have to do is reboot and set the USB drive as the boot drive. DSL boots up, loads, and thats where
I'm writing this from.
7. For more help on 'customizing' your DSL install check doom4's post in this forum about 'DSL on USB-stick HOWTO' It also goes over some DSL basics that I didn't cover. http://damnsmalllinux.org/cgi-bin/forums/ikonboard.cgi?;act=ST;f=11;t=3613
For the record, stay away from cheap knockoff USB keys...they're fine for windows and stuff like that but apparently it doesn't like DSL.
I finally was able to get dsl to boot from a liveZip. I'm posting this from a parallel port liveZip damn small linux!
The first thing I did was get the zip drive working from the liveCD so I could set it up. I used the following commands:
sudo su
mkdir /mnt/zip
modprobe ppa ### the drive needs both power & a disk here
mount /dev/sda4 /mnt/zippy ###you might have a different sda#
look at the drive and make sure it's nothing you want and make sure that you're looking at the real zip drive. When your sure it's nothing you want, unmount that drive and use cfdisk to repartition it. I made a 55 Meg primary partition type linux and made the rest a linux swap partition.
I rebooted at this point because cfdisk said to, I don't know if I needed to but I did.
Then I ran through the steps to get the zip drive working again and mounted sda1 (your number might be different). I copied the KNOPPIX folder to the zip drive with
cp -Rp /cdrom/KNOPPIX /mnt/zip/KNOPPIX
You need to be careful with zip drives for a few reasons. One is the speed. It isn't all copied until the disks stops spinning, and that takes about 2 minutes. You'll hear it. There is a lag between when you tell it to write and it actually does write. When it's done, umount zip and then remount it. Now run an md5sum on the /mnt/zip/knoppix/knoppix file. Yes, the filename is lower case now. Check that against the md5sum of the /cdrom/KNOPPIX/KNOPPIX file. If they don't match or you get an error, don't continue. Believe me, do it again until they match and remember to unmount and remount before you run the md5 or you'll get the right answer, but it won't be real. The disk is going to spin a while during the md5 sum, but not as long as the write time.
Next download the boot floppy:
http://ibiblio.org/pub/Linux/distributions/damnsmall/current/boot-0.8.0.img
Upon booting from the floppy you need to actually type "dsl zipboot"
(Thanks to Clacker)
Below is some information on using DSL-embedded.
DSL-embedded can share a hard drive with a common DSL installation by using the 5way script. More information on the 5way script can be found on a download mirror, inside the 5way tarball.
Unless you assembled your pendrive DSL/Qemu software other than the standard, you should already have the boot option qemu in syslinux.cfg.
This will allow access to the virtual harddisk as hdb when booting from BIOS.
You should see an entry in /etc/fstab which maps /dev/harddisk /mnt/hdb
When you backup/restore you do that to a device, the device for the virtual harddisk is simply harddisk.
This device should already be populated in the backup/restore gui.
To share your myDSL extensions use mydsl=harddisk
If you are running dsl-embedded then it is probably most desireable to share a common persistent
store between the virtual environment of Qemu and a reglar boot via BIOS. That would imply for both booting methods to use the virtual harddisk. This has been discussed before: See this thread
This is yet another version of "poorman's install", but it works. Try it and compare with other "poorman's" methods. As with others, this version offers a glimpse of GNU/Linux/DSL heaven from Windows hell.
Note that this installation method works for most Knoppix-based Live-CD variants, as well as for Knoppix itself.
This procedure requires the following things:
- DSL cd, or dsl iso image file and a tool for extracting its contents.
- loadlin.exe, version 1.6c by Hans Lermen. Obtain this from his site at http://elserv.ffm.fgan.de/~lermen/ or other dos/linux utilities collection sites.
- either MS-DOS (3.3 or later), FreeDOS, or Windows (95, 98, or 98SE). If the computer has Windows ME, 2000, or XP, and has a vfat (FAT32) partition, you will need a DOS boot floppy (otherwise, tough luck since Bill Gates owns you, body and soul!). A Windows rescue boot disk will work; that of Windows 98 or 98SE is preferred.
Here are the five steps for the installation:
1. Try booting DSL off the CD first if you can. There is no point in doing the next steps if this did not work. You may need a DSL boot floppy if you cannot boot directly from the CD drive. Take note of all the boot options that you needed to use to get the computer to its best DSL state. Also note the device name of the FAT32 partition that you will use for the installation. Obtain this information by executing the command "cat /etc/fstab | less".
2. From the DSL cd or the dsl iso image file, copy the folder KNOPPIX onto the computer's drive (partition) that is in FAT32 format. This folder must be placed at the top directory of that drive.
3. In the DSL cd or the dsl iso image file, locate the folder "isolinux" inside the folder "boot". Copy the folder "isolinux" onto the top directory of the same drive as where KNOPPIX was copied to.
4. Extract the file loadlin.exe and place it inside the "isolinux" folder.
5. Inside the "isolinux" folder, create a text file "options.txt" containing the following lines (see notes below these for more information):
linux24
root=/dev/ram
rw
initrd=minirt24.gz
vga=normal
ramdisk_size=100000
init=/etc/init
lang=us
apm=power-off
nomce
noapic
quiet
BOOT_IMAGE=knoppix
Notes: You need to edit these to include the boot options that you found necessary when you first tried booting off the CD. You will usually change the option "vga=normal" to something like "vga=788", "vga=791", "vga=794" or whatever matches your video setup, although "normal" works in most cases. Also, you may need to include the line "fromhd=/dev/hda1" or similar that points to the device name of the FAT32 partition where you placed the KNOPPIX folder. Most cases, this is not needed as the boot script automatically scans all available devices for the compressed image file "knoppix".
That's it for the installation. To boot to DSL, you have many options depending on how good you are with editing the files CONFIG.SYS and AUTOEXEC.BAT.
The basic procedure is to first boot your computer to DOS prompt, with as little overhead as possible. With Windows (95, 98, 98SE), you press the F8 key while booting up to get a boot menu, then select the option that says "command prompt only". If the computer is too quick for you, then wait for the computer to finish loading Windows completely before shutting down to "MS-DOS mode". This may cause problems depending on what utilities and drivers are active when you reach the DOS prompt. Use the Windows rescue boot disk instead.
Don't try to use the "command prompt window" inside Windows as loadlin does its job exactly the same way as common DOS viruses (overwrite DOS in memory, with the exception of trashing your computer or sending obscene messages by email to everyone you know and then trashing their computers).
Second, go inside the "isolinux" folder on the drive here you placed it in. Next, execute the command "loadlin @options.txt". Everything should boot up as if from the DSL CD, except that this one is faster. You may encounter something new: a series of setup dialog screens. Select the settings that match your machine. Afterwards you should see the DSL desktop. If all you see is a blank screen or other weird, blinking, or psychedelic images, the settings you selected are wrong. Press Ctrl-Alt-F1 to get to the prompt line, execute "sudo shutdown -r now" to restart the computer, and better luck next time. Note that you can do things from this prompt line as you would from an XTerminal window, the way Real Men used to.
What about the extensions? This is simple. Just place all of them at the top directory of the drive where KNOPPIX is, or create a folder called "optional" and place the extensions there. As of DSL 1.0.1, the uci extensions must be at the top directory while the other types can be in either locations for them to be detected automatically during boot-up. You can also place them anywhere else you like (yes, even on NTFS partitions), as long as you can find them from inside DSL (e.g. using emelfm or from a console terminal). Mount that partition (e.g. /dev/hda1 onto /mnt/hda1) and execute "mydsl-load /mnt/hda1/wherever/whatever.dsl" to load it.
That is it for this howto. For more information, search the web for "loadlin howto".
.uci extensions are compressed cloop files that are mounted rather than unpacked. These are the safest extensions to use on low ram systems, because they use almost no ram, since they usually exist on a physical drive, and are mounted, rather than unpacked into ram.
Green extensions are named *.tar.gz and are safer to use on low ram systems than yellow and red extensions, because they only write to /home and /opt, which are already writable.
Yellow and red extensions are named .dsl, because they have to write to more areas of the filesystem, and any part of the filesystem that is to be written to must be unpacked to ram. In other words, they can eat a lot more ram.
All .ucis as well as system extensions, like gnu-utils and dsl-dpkg are considered "safe" and rated blue.
Installing an application with the MyDSL system is easy.
There are 3 ways you can go.
---Method #1---
Use the MyDSL gui.
Just click on the MyDSL icon on the desktop and it will fire right up.
Select the app you want and click the "Get it!" button beside it.
The app will automatically download and install itself!
Be aware that if the Ibiblio mirror is down the MyDSL gui will not work, so you can use...
---Method #2---
Use Firefox or Dillo to download the extension you want to your home directory.
Open up the file manager, EmelFM, by clicking on its icon on the desktop.
Highlight the extension by clicking on it once.
Press the MyDSL button in EmelFM.
Your extension is installed!
Now, if you are not running X, you are left with...
---Method #3---
This is the method for installing extensions in run level 2, or an Xterm, although, I don't know why you would use an xterm instead of the button in EmelFm. But I'm sure you have your reasons.
Use Links to download the extension you want.
Quit Links (or open another xterm) and cd to the directory where you downlaoded the extension.
Type the following:
***Code Sample***
$ mydsl-load *your_file_here*
***END CODE SAMPLE***
Your extension is installed!
The hardest part of creating a ci has nothing to do with compressing them. The hardest part is to make a self-contained application under /opt. Because openoffice and firefox are pretty much self contained and are under /opt they were good test cases. I have since made python2.3.4 which works under /opt so to make it a ci is easy. Also, the ci has a limitiation of being read only. That is why there is an oouser.tar.gz. Those parts that require updates can be "linked" into a writeable directory. I see user Chris V made a firefox user file. Try to avoid making .dsl as they cause additional demands on the system. Sometimes, you will be required to make a shell wrapper to start the app. As being self contained implies that the app's libraries are also stored locally with the app. This usually implies requiring a LD_LIBRARY_PATH, thus the shell wrapper. Anyway, make the app. Test it as a .tar.gz. Once the app is working then to make a ci do the following.
1. The app is installed into /opt in the your_app directory
1. become root
2. cd /opt
3. mkisofs -R -hide-rr your_app | create_compressed_fs - 65536 > /mnt/somedrive/your_app.ci
Note: there is currently a limit of 4 cloop devices available. So, I don't see a need for many .ci files unless the app is very large and is very popular.
Follow-up there are now 8 devices for uci extensions.
Follow-up for UCI files
UCI files are ci files that store the user.tar.gz (writeable areas) inside the mounted ci with the specific name of user.tar.gz. Then when the uci is mounted the system looks insdide the mount for a user.tar.gz and then performs a mydsl-load on that tar.gz. This makes for an easy single file download and load.
To change/update a UCI file do the following: (example here is firefox.uci)
1. mount the uci as normal
2. mkdir work
3. cd work
4. cp -a /opt/firefox/.
5. cd firefox
6. mkdir user
7. cd user
8. tar -zxvf ../user.tar.gz
9. tar -ztf ../user.tar.gz > list
10. -- now edit the actual files as needed --
11. -- be sure to edit/update the "list"
12. tar -T list --numeric-owner --no-recursion -czvf ../user.tar.gz
13. cd ..
14. rm -rf user
15. cd ..
16. mkisofs -R -hide-rr-moved -cache-inodes -pad firefox/|create_compressed_fs - 65536 > ../firefox.uci
17. cd ..
20. rm -rf work
(Thanks to Robert Shingledecker)
INTRODUCTION
Before getting started, lets consider some reasons why we might choose to go with a *.tar.gz (or 'green') extension rather than the standard *.dsl way. First, there is the issue of memory usage. Installation of a *.dsl extension causes the execution of the script 'mkwriteable', which copies a larger part of the filesystem into the ramdisk to allow writing to these files. This of course uses more RAM. Opening up the additional files also opens up the system to potential damage. When a program or library can be overwritten, it can possibly cause problems. A *.tar.gz extension does not execute mkwriteable, and so base system libs and programs cannot be modified. These extensions write only to /opt, /var, and /home.
On the other hand, there are reasons for not choosing this method. Many programs are built in such a way that they have to modify certain files or write to certain directories which are not open to *.tar.gz. Or perhaps they don't need to be installed into these directories, but require some changes to these files in order to run properly. There is also the fact that a lot of people don't know how or just don't want to have to compile source, or maybe they don't have the tools to do so. It can be easier to gather the files installed though a package system and put them in the same places in a myDSL package.
Building a green extension can sometimes be as simple as packing up a pre-compiled binary with the appropriate ownership. More often, though, it's a bit more difficult. Since pre-compiled programs usually look for their support files in the directories to which they were installed (/usr/share, /usr/lib, etc.), it's sometimes better just to start from the source and compile it specifically to run in /opt. This procedure also allows you to make DSL-friendly changes to the program which might not be so simple after the application has been compiled.
Here is one method...Building From Source. This document assumes a program which can be installed through the use of a typical "configure, make, make install" method. There are other ways to install programs from source, and it would take a book to explain them all. At this time the majority of Linux applications use this method. Another assumption is that you have access to a computer system which has a development environment suitable for compiling Linux applications.
As an example, we'll be building a green extension from the ImageMagick source.
--------------------------------------------------------------------------------
READ THE DOCUMENTATION
First step is to do a little reading.
Grab the source archive of your program (imagemagick.org), extract the archive, and make sure to read the README file and any files dealing with license and copyright. Linux programs are not all open source, and doesn't always mean you can redistribute the package. GPL programs are a pretty safe bet that you can modify and redistribute.
Next to read is the INSTALL file, which sometimes contains just generic text, but often gives you some useful information about the specifics of the installation procedure, and finally, just before getting to work, run the configure script (if one exists) with the '--help' option. This will list all of the options you can send to configure so you might not have to go back and modify the Makefiles by hand. You may want to redirect the output of this command to a file, which you can have in sight while testing various configure options: "./configure --help > conf-help.txt". As with anything else, the more you compile, the more confortable you will become with it, and the more you will understand what you can do to build a better extension. One configure option which will almost always be used in a green extension is '--prefix=', which sets the install location of the application.
--------------------------------------------------------------------------------
CONFIGURE
Having done your research, feel free now to execute configure. In the directory containing this script, do "./configure --prefix=/opt/imagemagick" and it should begin checking your system for necessary components. If it spits up an error about not having a compiler, you don't have the needed development environment with which to compile applications. Unfortunately this how-to is not equipped to explain all the necessary steps to putting together a workable development system.
Assuming you have at least a basic development system set up, the script will likely give you feedback on your system, and eventually either end successfully or cough up an error telling you what you are missing. If you have successfully run configure, the script will have created the makefiles which make uses to compile the program. If you get errors
concerning a component which you believe is not vital to the program, you might try disabling that component and run configure again. The '--help' option of configure should tell you which features can be disabled this way (e.g. ./configure --prefix=/opt/imagemagick --disable-x). Otherwise you may need to install some support files. Again, this is beyond the scope of this document, and you really should consider learning a bit about compiling software in Linux.
--------------------------------------------------------------------------------
COMPILE
So let's just say configure went smoothly. You now can do 'make', and if that succeeds you can do 'make install' as root, installing the app into /opt/imagemagick. If you happen to have successfully compiled this program within a DSL system, you can probably launch the program without trouble. However, if the application was built on another system, you may have some serious testing ahead of you. If this is the case, copy the /opt/imagemagick directory into DSL and first see if DSL has the support files needed to run the application. You can do this by typing "ldd /opt/imagemagick/bin/display". This will list the libs required by the program, and tell you whether those libs are found in DSL. If you notice some "not found" messages concerning libraries which were installed into the program's lib directory, you may need to tell ldd that they exist:
LD_LIBRARY_PATH=/opt/imagemagick/lib ldd /opt/imagemagick/bin/display
The ldd program should now at least find any libs which were installed with the program. If you see additional "not found" messages, you'll now need to find those libs and copy them over to DSL. The most convenient place to put them would be in the same lib directory with the program's own libs. If the program does not have any libs, you can create an /opt/imagemagick/lib directory and place the additional libraries in there. At runtime you will most likely need to set the LD_LIBRARY_PATH to tell the program where to find the libs. Fortunately Imagemagick builds and links its own libs, so any extra libs can be dropped into its lib directory without needing to change the LD_LIBRARY_PATH. In the case of ImageMagick there are a couple of libs required which are not part of the base DSL, so they will need to be copied from your development system into /opt/imagemagick/lib.
It is possible that your program requires a huge number of libraries, or very large libraries. In this case you may want to consider whether it might be a good idea to try to whittle off some fat. Think about what is necessary in a "Damn Small" system and what can be considered extra bulk. If some of these libraries are not terribly important and can be disabled through the configure script, it may not be a bad idea to go back and recompile the application without those libs.
--------------------------------------------------------------------------------
TEST THE APPLICATION
When you have all of the necessary libs copied into a directory in DSL where they can be found, you're ready to test the program itself. This testing should be done in an unmodified DSL system, such as one booted from liveCD without any restoration or extra software installed. From a terminal window (so you can see the output of the program), type the command to launch the program, including the path since /opt/imagemagick/bin is not in dsl's $PATH. Any error messages? Hopefully not. If so, try the LD_LIBRARY_PATH command mentioned in the last section to see what is missing in DSL. If you have all the necessary libs in a place where the program can find them, chances are your program will load. If not, you may have problems beyond the scope of this document, and may want to consider looking for help at damnsmalllinux.org or #damnsmalllinux irc channel on freenode.
If the application loads up fine, things are looking good. Please do not assume that this means everything is ready to go, however. There is always the possibility that a program will eventually call another program which is not required merely to start your program. It's always a good idea to thoroughly test your application's features and functions before assuming that it is complete. Open some files, save some files, edit files within your program, if that's what the program does. Whatever the program's use is, it should be tested with as many of its functions as possible.
In the spirit of keeping it small, you might also consider stripping your binary file(s), if you have the strip program handy. This will remove comments and debugging objects from the program, reducing its size. After doing this you should test more, just in case something went wrong.
--------------------------------------------------------------------------------
BUILD THE FILE STRUCTURE
Now, does your program work? Good. Now we can package it up as a DSL
extension.
First we decide whether or not to include an icon. If the program is a non-interactive console application there is not much reason for an icon. Most of the time, however, it will be an interactive program which may be launched from the desktop. Ultimately it comes down to whether or not you want to bother adding the icon, and whether you have a suitable image for it. Let's assume that you want an icon, just for the sake of this tutorial. The icon file must be in a format readable by xtdesk (png, gif, jpg, and xpm can be used...probably some other formats as well), and is most conveniently placed in the /home/dsl/.xtdesktop directory. The only other file necessary is the *.lnk file which Xtdesk uses to place and name the icon on the desktop.
The lnk file is a simple text file with a lnk extension (something.lnk).
The format of the file is as follows:
table Icon
Type: Program
Caption: ImageMagick (the name which will appear next to the icon)
Command: /opt/imagemagick/bin/display (command to launch the program, in this case it is the imagemagick gui)
Icon: /home/dsl/.xtdesktop/imagemagick.xpm (path to the icon file)
X: 420 (X position)
Y: 384 (Y position)
end
There are other options available for the file, but this is suitable for a program launcher. If you needed to point the application to some libraries at runtime then you can add that path to the 'Command' line:
LD_LIBRARY_PATH=/opt/iamgemagick/lib /opt/imagemagick/bin/display
This sets the LD_LIBRARY_PATH variable specifically for this one application. Another option is creating a wrapper, as mentioned before. The wrapper simply contains a command or two to set up the environment, after which it launches the real program. Remember, ImageMagick has it's own linked libraries, so this should not be necessary this time.
Next we need to copy all the installed files into a directory structure with which to create a tarball. Since the application was installed entirely within a single directory(+ $HOME files where applicable) there's no need to hunt for the files.
Become root and create a directory somewhere out of the way, in $HOME for example.
Let's assume the work directory will be named '/home/dsl/work'.
sudo su
mkdir -p /home/dsl/work/opt # the opt part is just to save a step in the future.
cd /home/dsl/work/
IMPORTANT!!: Pay close attention to the paths you use. Everything done from this point is done from within /home/dsl/work/. A command done to './opt' or 'opt' is NOT the same as a command done to '/opt'. '/opt' is a system directory, and 'opt' or './opt' is the opt directory within /home/dsl/work.
If you have files going into /home/dsl you'll need to make this dir as well:
mkdir -p ./home/dsl/.xtdesktop # xtdesktop is of course for your icon, if any.
Now copy the installed files.
cp -Pr /opt/imagemagick ./opt/
cp -Pr /home/dsl/whatever ./home/dsl/ #only if there are other files needed in /home/dsl
If you want to have a menu item it will be placed in var/tmp/mydsl.menu/. The decision to create a menu item is much the same as the decision to use an icon. If the application is non-interactive and generally requires various commandline options, a menu item probably won't be useful.
Again, let's assume a menu item will be used:
mkdir -p var/tmp/mydsl.menu
touch var/tmp/mydsl.menu/imagemagick
var/tmp/mydsl.menu/imagemagick is the name of your menu item, used by mydsl-load. While at the time of this writing the menu item in a tar.gz extension does not need to have the same name as the package, it is recommended simply to be consistent with uci extensions (and because things may change in the future which require it).
The contents of the menu item are identical to the lines within the fluxbox
menu file:
[exec] (display name) {command}
If you need to specify a library path it can be done in the same way as in the icon file. There may be trouble with the menu item being used along with other DSL extensions, where two menu items end up on the same line in the menu and only the first one is displayed. This can be avoided by adding a line break after the menu line in var/tmp/mydsl.menu/imagemagick
Assuming all files are copied into their proper directory structure, it's now time to check ownerships of the files. Since root created a home/dsl dir, we know that at least this will need to be chowned to dsl. A quick way to do this is to simply give root ownership to everything and then change the ownership of the few dsl-owned files afterward.
/opt and everything within it is owned by root.root (0.0)
/home is owned by root.root (0.0)
/home/dsl and everything in it is owned by dsl.staff (1001.50)
/var and everything in it, except for the menu file itself, is root.root (0.0)
This should give proper ownership of all files:
chown -R 0.0 ./{opt/,var/}
chown -R 1001.50 ./home/dsl/
chown 1001.50 ./var/tmp/mydsl.menu/something
We use numeric ownership in the event that the system on which the extension is being built does not have user 'dsl' and group 'staff'.
--------------------------------------------------------------------------------
CREATE FILE LIST
Next we need to create a file list of everything which will go into the package.
find . > files.txt
This uses the find command to create a file list of everything in the current directory and below. Now we need to make some edits in order to remove lines which are either unnecessary, or could possibly cause trouble with ownerships.
Open files.txt in a text editor and start removing some selective lines. Depending on how many files are included, this may be a tedious process.
The file will look something like this (numbers are added here for reference):
1 .
2 ./files.txt
3 ./home
4 ./home/dsl
5 ./home/dsl/.xtdesktop
6 ./home/dsl/.xtdesktop/imagemagick.xpm
7 ./home/dsl/.xtdesktop/imagemagick.lnk
8 ./var
9 ./var/tmp
10 ./var/tmp/mydsl.menu
11 ./var/tmp/mydsl.menu/imagemagick
12 ./opt
13 ./opt/imagemagick
14 ./opt/imagemagick/bin
15 ./opt/imagemagick/bin/display
16 ./opt/imagemagick/man
17 ./opt/imagemagick/man/man1
18 ./opt/imagemagick/man/man1/display.1
1 You absolutely should remove this. Installation will be performed
from the root directory, which already exists. You do not want to
overwrite this directory, particularly if you made a mistake with
permissions. Delete this line.
2 This is the file list...not wanted inside the archive. Delete.
3-5 Same as 1 - any directory which already exists is not needed.
6&7 These ones you want to keep.
8&9 Same as 1
10 This will be created automatically with 11, so it's not necessary
11 Keep this one.
12-14 Delete.
15 Keep.
16-18 Delete. Man pages can be found in hundreds of places online.
Keeping your extension "damn small" is the name of the game. The same
can be applied to other help documents, includes, and anything else which
isn't vital to running the program. Testing the app without certain parts
available will help determine what is not terribly important.
So what you would end up with in this case is 4 lines, 6,7,11, and 15. Of course this is only a simple example, and is not complete even for the imagemagick package, but the method can be applied to larger lists.
--------------------------------------------------------------------------------
CREATE THE ARCHIVE
tar cvf imagemagick.tar --no-recursion --numeric-owner -T files.txt
gzip -9 imagemagick.tar
Now you're ready to test the final product. Hopefully it installs properly with the MyDSL system, including any menu items and icons you may have used. If it fails to run properly, or if other programs stop working after the installation, it's likely that there was a problem with ownerships of the files in the archive. You'll need to go back a few steps and carefully check your files.
If this is an extension for the official DSL repository, be sure to create an info file (check some of the others for reference) and md5sum:
md5sum imagemagick.tar.gz > imagemagick.tar.gz.md5.txt
Submitted by Mikshaw
The mkmydsl script is probably one of the most overlooked scripts in DSL, yet it has been there since day one when I released the myDSL system and the six example extensions that I made to start this whole thing. Why is it not in the documentation is a very good question.
SU's note - It is now!! ^_^
mkmydsl is NOT myDslMaker. mkmydsl is done locally. This has several advantages over a website version of the same thing including:
1. "Try before you burn" You can download extensions and try them out before you commit to makeing an iso and burning.
2. "Construction Set" by downloading in parts, you truly have a construction set method. This makes it easier for a slow modem users to be able to take advantage by not having to download a large single mydsl.iso
3. "Privacy" By makeing the iso locally, you are not "sending" private information to a website only to have to download the results back. This is where the myconf.tar.gz comes into play. This is your "personal" and "private" configuration including passwords, etc.
4. "No double down" You already have the base iso and have proved that it works on your system, so you don't have to download it again only this time MUCH bigger. Also, you already have your local "proven" collection of extensions
5. "The Sky 's the Limit" I know of one user, Ke4nt, who uses the mkmydsl script to make DVD sized mydsl.iso. Imagine having to download DVD sized images.
The myconf.tar.gz is for your configs that you will not be changing. Thus filetool list remains for backup.tar.gz. My myconf.tar.gz has firefox FLASH plugin, Sylpheed email settings, my network printer configs, and several PPP settings and providers. mkmydsl script also allows for the boot time options to be passed, so I use toram, but you could also set your keyboard, start various daemons, e.g., ssh, lpd, etc.
I made the script to work on the most minimal of systems, e.g., a machine that is capable of booting DSL toram and a working cdrom burner is optional. It does not need multi-session.
By answering a few simple questions you can have your mydsl.iso created and ready to burn. If you have a burner, you can continue the script to burn to cdrom.
When I write scripts for DSL, I try to write to maximize the amount of machine that will be able to use the script. The script does not require the latest "super blasto" computer. Although it will run from within X via xterms, I usually run it from runlevel 2. By simplying answering a couple questions. Your done!
This is how:
Lets say that you have downloaded and have a nice proven collection of extensions on your harddrive say hda3
Step 1: booting
boot: dsl 2 toram
Step 2: mounting your extensions library
# mount /mnt/hda3
Step 3: Start the script
# mkmydsl
Step 4: You will be prompted to enter the location of your extension library
Enter the directory to hold the image and modules: /mnt/hda3
Step 5: You will be prompted to enter the location to write the mydsl.iso
Enter the directory to hold the new iso:
Step 6: You can enter additional boot time options
Enter optional boot time options:
Step 7: Optional additional setup of extension library
You will be prompted to copy any "last minute" extensions. This step is not needed if the extension library is already setup with "root" and "optional". This step is useful if you have large ram and are using ramdisk directories, then you will need to copy over the extension library into the ramdisk. But normally the step is not nedded.
Step 8:Final approval
When you are ready to begin creating the ISO enter OK. (literally means capital OK
The script creates a mydsl.iso
Step 9: Optional buring step
You will be prompted to once again enter capitals OK to begin the burn. If you don't have a burner then press enter and your mydsl.iso is made. Entering OK you will be prompted to enter th burn speed and device numjber for the burner.
Thats it.
Like I say, I use the script after EVERY release to make "my" customized version for daily use.
Note: use the command
cdrecord --scanbus to learn the device number for your burner.
P.S. Note: NO WINDOWS REQUIRED!
(Thanks to Robert Shingledecker)
By far the most common question that comes with people who are new to DSL is, "Will my wireless card work?"
The short answer is yes.
The long answer is, it may take a little work, but you will be pleased with the results.
Here is a list of known cards that work "out of the box" so to speak. Little or no config required.
Accton WN 3101J
Atheros 802.11b/g (IBM OEM Mini PCI in T41,42)
Belkin F5D7000 54G PCI
Belkin F5D6020 v2
Cisco Aironet 350
DSE (Dick Smith Electronics) W-Lan card XH7918
D-Link DWL-122 USB
Linksys WPC11 (all but v.4.0)
Linksys WCP11 v.3
Linksys WUSB11 Ver 2.5
Lucent Orinoco Gold
Microsoft MN-510 USB
Netgear MA311 (all versions)
Netgear MA401 (all versions)
Netgear USB MA111 (v1 and v2)
Orinoco Gold v8.72
SMC 2453
SMC2632Wv2
WaveBuddy 11WP-611AL 802.11b PC Card
These cards won't work out of the box, but most of them work with ndiswrapper, drivers from the manufacturer's site, or with a little work.
Airlink+ model #WLH3010 802.11g PCI (Broadcom chipset)
Belkin F5D7000
Blitzz Net Wave Point PC 802.11b PCMCIA
Edimax EW-7126 (RTL-8180 chip)
Gigafast 741-UIC usb / Zydas 1201 chipset
II 2216 PCMCIA
Intel Pro Wireless 2100 (requires "firmware" from ipw2100.sourceforge.net)
Linksys G54
Linksys WCP11 V4.0
Linksys WPC51AB
Linksys WPC54G ver 2 PCMCIA (works with ndiswrapper)
SMC 2635W pcmcia / ADMtek
Syntax USB 400 / Prism 3
US Robotics 2210 PCI
US Robotics 5416
VCTnet AirXpress PC11BR (with driver compiled from www.realtek.com)
Xterasys XN-2422g
Most every card will work with DSL. The easiest are the "Prism 2" and "Orinco" chipsets.
All but the most exotic cards can be made to work. Especially with ndiswrapper.
This seems kinda banal, but with an SNES and a VBA emulator available for DSL,
I think it's important that the users know how to enable a joypad.
---Code Sample---
sudo insmod joydev
---End Code Sample---
That's all that must be done.
Of course, I hear you ask: "But I gotta do it every
ime I boot. How can I make it an automatic thing?"
Shove it in an init script. I keep mine in /sbin/hotplug-knoppix
(since it's a hotpluggable device, and all). just add:
---Code Sample---
insmod joydev
---End Code Sample---
to the end of /sbin/hotplug-knoppix and you'll have your joypads - USB or old-skool gamepad type - available even if you don't elect to enter X.
Oh, and to test if it's really working, try typing
---Code Sample---
cat /dev/input/js0
---End Code Sample---
If you see weird stuff scrolling on your screen whenever you move your pad,
you're ready to game.
(Thanks to Fordi)
To add/change icons, open EmelFM and click on the "H" in the upper left hand corner to show hidden files.
In your /home/dsl directory you will see a folder called .xtdesktop. When you open you will see your icons.
The .png/.gif files will be the icon image. The associated .ink file will contain the information that activates the icon. Bring up this file in your favorite editor and see how to create/change icons. It is very self explanatory. The "X" and "Y" entries determine the desktop location of your icon (in pixels).
If you add/change icon info you need to restart the WM to see the changes. It is a menu option in DSL. Just go Window Manager >> Restart.
(Thanks to Clivesay)
DSL is based on Debian, so it is possible to use apt-get after a hard drive install once the dpkg database is restored.
To restore Apt, open the menu and go Apps >> Tools >> Enable Apt
Or, if you are in runlevel 2 (console mode) type "sudo dpkg-restore"
Or, you can grab the dsl-dpkg.dsl from the MyDSL Repository and install it using the directions in 3.1 of this Documentation.
However you get it, once dpkg has been restored, you need to bring it up to date.
To do so, open a root xterm and type "apt-get update".
After the process is finished, you have the ability to grab most anything from Debian Stable!
Now for the warning:
DSL is not derived purely from Debian, if you 'apt-get install' the wrong application you may break something, for instance, the X servers.
Syntax Examples, Program Usage Guidelines, General Tips...all of these and more are found in Section 8 - Using DSL.
If you want to capture the output from a command line session you might like to use the script command.
dsl@box:~$ script
Script started, file is typescript
dsl@box:~$ date
Wed Jan 19 15:26:43 EST 2005
dsl@box:~$ Script done, file is typescript
You hit CTRL+D to stop the recording and you will find a file called 'typescript' in the local directory that contains a log of what was recorded.
If you want to be able to replay these files then you need to record timing information as well as the typescript. Use the -t option to do this...
dsl@box:~$ script -t 2> timing.log
Script started, file is typescript
dsl@box:~$ date
Wed Jan 19 15:26:43 EST 2005
dsl@box:~$ Script done, file is typescript
You will see 2 files in the local directory; typescript and timing.log. You can now playback the files in realtime using the 'replay' command...
replay timing.log typescript
(By Robert Shingledecker)
The timezone shoud be working for US zones.
If you don't do anything the default is EST and setting your BIOS to local
time is OK for most uses.
Now, if you want to try setting your timezone, must be in US, the others
were cut for space reasons. Try this at the first boot prompt:
dsl tz=US/Pacific
This will set the timezone to PST8PDT with an offset based on EST.
or use this
dsl tz=US/Pacific utc
Then the offest will be based on the hardware, BIOS, clock set to UTC time.
You can easily add these boot options during the execution mkmydsl script,
so that your "custom" cd won't require typing them in everytime.
Also useful is the date command to set the system time
# date mmddhhmm (see date --help for all the options )
and then update the hardware clock with this command
# hwclock --systohc
Doing this you won't have to figure out the offsets.
You can query the hardware clock with this command:
#hwclock --show
To see the US zones that are supported take a peek at:
ls -l /usr/share/zoneinfo/US
The choice is yours on what time is to be store in the BIOS hardware clock.
DSL RAM-Remaster HOWTO (adapted from a guide by meo)
Change the keyboard-layout (unless you have a us keyboard)
$sudo loadkeys se-latin1 (I have a swedish keyboard)
$startx
Mount the partition needed
$sudo su
#mount -rw /dev/hda1 /mnt/hda1 (here I store needed files)
Make the directories needed
#mkdir source newcd newcd/KNOPPIX
Copy necessary files to /newcd
#cp -Rp /cdrom/boot newcd
#cp -Rp /cdrom/lost+found newcd
#cp -Rp /cdrom/index.html newcd
Copy the sources to the right directory
#cp -Rp /KNOPPIX/* source
#cp -Rp /KNOPPIX/.bash_profile source
Go through and copy wanted things to /source
#cp -Rp /mnt/hda1/backgrounds source/etc/skel/.fluxbox
#cp -Rp /mnt/hda1/styles/* source/usr/share/fluxbox/styles
Create the custom compressed image file
#mkisofs -R source | create_compressed_fs – 65536 >
newcd/KNOPPIX/KNOPPIX
Then REMOVE the source directory if you have just 256 MB of RAM
Create the iso-file as follows
#mkisofs -no-pad -l -r -J -no-emul-boot -boot-load-size 4 -boot-info-table -b
boot/isolinux/isolinux.bin -c boot/isolinux/boot.cat -hide-rr-moved -o mydsl.iso newcd
Copy the iso-file to the partition where you have your favourite cd-burning program
#cp mydsl.iso /mnt/hda1
Burn. Voila.
(Posted by roberts in the forums)
I do not use the qemu-img program. Instead I do everything from DSL.
To make the pseudo harddrisk I used the following 2 steps from DSL.
dd of=harddisk bs=1024 seek=60000 count=0
mke2fs harddisk ( ignore the warning and proceed )
There are files on the default 60MB harddisk. The backup.tar.gz is there.
Since qemu is a "known" virtual machine, it has a pre-made backup.tar.gz on hdb The sound blaster modprobe is in the opt/bootlocal.sh.
If you make a larger pseduo harddisk, with a different name of course, then mount both the 60MB and your new one.
Something like this:
mkdir /mnt/test2
mount harddisk /mnt/test -o loop
mount newdrive /mnt/test2 -o loop
Then copy over the backup.tar.gz.
cp /mnt/test/backup.tar.gz /mnt/test2
umount /mnt/test
umount /mnt/test2
Then you can delete the 60MB one, rename the larger one to harddisk and you should be good to go.
For those of you who need to get DSL working from behind your company's proxy server, here's what worked for me......
edit the .bash_profile file in the /home/dsl directory (it's a hidden file, so if you're using emelfm, then you'll need to click on the "H" button to find it)
add these two lines after the first "export" statement in the file
export http_proxy='http://userid:password@proxy.yourcompanyserver.com:port'
export ftp_proxy='http://userid:password@proxy.yourcompanyserver.com:port'
save the file.
when you shut down the system the new version of the file will be written to the backup file, next time you reboot it will all be set for you.
If you want it to run immeadiately without rebooting, then exit the Window Manager and type .bash_profile from the prompt and hit enter.
Now all the mydsl panel applications will work and you can apt-get manually to your heart's desire. Loading that flash plugin off the menu is a breeze....
Note that adding the lines into /opt/bootlocal.sh didn't work for me. I think it's because when that gets processed the logged in user is "root", whereas when .bash_profile gets processed the system is logged in under the "dsl" user.
Unfortunately, Firefox doesn't use this environment variable, so you still have to set up the proxy definition seperately in Firefox itself.
Hope this helps others who are in the same situation I was in....
(Thanks to Max in the forums...)
How to install a printer in DSL
Created by clivesay from the DSL Forums
(editors note: screenshots have been removed, but instruction and order should remain the same.)
Access Apsfilter by clicking on the "Printer Setup" button in the DSL Control Panel
The first screen of Apsfilter asks you to accept the license agreement. Enter a "y" and press the key.
In this screen the author asks if you would like to request his mailing address. You would normally enter "n" and press the key. You can enter "y" if you would like the authors address.
Just press the key here to enter the Apsfilter setup.
Press the key to continue
This screen shows the permissions for apsfilter. You should just have to enter "y" and press the key.
This screen allows you to setup a new printer or change an existing one. We want to add a new printer so enter an "a" and press the key.
Now we are ready to add our printer settings. For this example we are going to setup an Epson Stylus C62 printer that is connected via a USB port. For normal printing, you will only need to fill in values for sections 1, 2 and 3.
Type a "1" and press the key
Here we will choose the appropriate print driver for our printer. I recommend starting with the drivers under the option 4 gimp print menu. The drivers in this menu seem to work well with most printers. If you cannot find a suitable driver, you can try drivers under the other menu options. Choose "4" and press the key.
Here are our navigation options while searching for our driver. Press the key to continue.
Here is the first screen you will see. We will hit the enter key to scroll through the screen until we find a driver that references our Epson Stylus C62 printer.
After scrolling down a short time we find "29 - Epson Stylus C60 [stp/escp2-c60]". We will want to remember the number "29". when we get to the end of the list. Press the key until we get to the bottom of the list.
Now enter the number "29" and press the key to choose the Epson C62 driver. You will be asked if you want to accept that driver. You want to answer "y" and press the key again.
We have selected the driver and now we want to tell Apsfilter how your printer is connected to your PC. Enter option "2" and press the key.
Our printer is connected to the PC via a USB cable so we will choose option "1". Choose option "1" and press the key.
We are working with a Linux OS and most likely your printer is on the port LPT1. Since we are connected with a USB cable we will want to use the option shown under the LPT1 option that says "USB under Linux". Under "Full path of the parallel print device:" we want to enter:
Full path of the parallel print device: /dev/usb/lp0 press the key
If we were using a parallel printer cable to connect to the PC we would have entered /dev/lp0
Option 2 shows 'parallel' but that is OK. That value will show for parallel or usb port printers. We are now ready to define the paper format. Choose option "3" and press the key.
We want to choose our paper format. I will choose "US Letter" for this example. Choose option "3" and press the key.
Now we are ready to test our printer by printing a test page. Choose "T" and press the key. You will be asked if you are sure you want to print a test. After a few seconds, a test page should start to print. If you do not get a test page, you may need to go back to option "1" to ensure you have chosen the correct driver for your printer. Another thing to check would be the device path in option "2" to make sure there isn't a typo in the path name.
After the test page is successful, press the key to return to the main setup menu.
If your printer is setup properly, we are ready to finalize the installation. Choose the "I" option and press the key to give your printer a name.
Here we will enter the name of our printer. If you just press the key your printer will be given the name "lp". We will name our printer "EPSON_C62". Press the key to continue.
Press the key to accept the printer name.
Congratulations! You have setup your printer. You can setup more printers if you like. We will choose option "Q" to quit Apsfilter. You can hit the key repeatedly to exit Apsfilter and get back to the DSL Control Panel.
You are almost ready to print. Open a console window so that all applications will recognize your printer.
Type "export PRINTER=EPSON_C62" substituting the name of your printer for 'EPSON_C62'
Now you should be able to use your printer in all applications. Congratulations on setting up your printer!!
Now we need to start the printer daemon before we can print in applications. Click on the "Printing/lpd" button to turn on the print daemon.
If you are running a regular hard drive install, you are done. If you are running from USB, CD or frugal install with the backup/restore features, there are a few more steps to complete to save your printer settings.
THE FOLLOWING INSTRUCTIONS ARE FOR LIVE CD, USB and FRUGAL install options utilizing the backup/restore features.
Open the Emelfm file manager and choose the "filetool.lst" file in the /home/dsl directory. Choose the file and click the button.
In your filetool.lst file you will want to add three entries. I have separated them from the others for illustration. The last entry must contain your printer name. For our example, the entries would be as follows:
opt/printcap
opt/apsfilter/
var/spool/lpd/EPSON_C62
Now we want to go to the /opt directory in Emelfm to add some commands to the bootlocal.sh file. This file contains scripts you would like to run when your PC boots up. Choose the bootlocal.sh file and press the button.
We need to enter the same comand in bootlocal.sh that we entered in the console earlier. This will allow all apps to use your printer without you having to enter your printer information.
This is one more option you can add to bootlocal.sh if you would like the printer daemon to start automatically at boot. As shown above, add /usr/sbin/lpd and save.
That's it for this howto. Enjoy your printer!!
---Intro to the Forums---
If you are actually reading this before posting on the forums, you are in the minority. A better, smarter, less-likely-to-make-the-forumites -angry type of minority. This is good.
If not, well, it's still good that you are reading this. Hope you didn't get flamed too much. ^_^
---Before you event think about posting---
Learn to love the search function. If this is your first time using DSL, I can promise you that someone else has had your problem, posted about it and had it answered.
Just click the search button, type in what you want so search for, select "All Forums" and "Since the Beginning".
Hit the search button at the bottom and get your results in a few seconds.
---How to Ask Intelligent Questions---
In order for us to effectively answer your question, you need to give us
some info. Here, I'll show you an example.
***Example Question #1***
hi! i downloaded dsl and it doesnt work!! how do i fix this?
kthxbye!
***End Example Question***
This is a classic noob question. Notice the extreme lack of crucial info as well as the poor grammer and punctuation. The forums are NOT AIM! In addition to providing some system info, using some kind of formatting and punctuation makes it a lot easier for us to determine what your problem is. Although we would still answer and try to help this person, it will likely prove to be a frustrating experience for bother the helper and the one being helped.
Check out this, much more appropriate example.
***Example Question #2***
Hi!
I recently downloaded DSL an for some reason I can't get it to boot!
I md5summed the iso, so it's not a bad download, and it boots fine on my other system.
I am trying to boot on a Dell Inspiron 1000. Cdrom booting is enabled in the bios, and the boot order is set right.
When I put the CD in, I get just a blinking cursor, and sometimes the words "ISOLINUX.....".
What should I try next?
Thanks!
-DSL Girl
***End Example Question***
(Note: this is just an example, this problem should not really exist on as new a laptop as the Inspiron 1000)
Notice that this person gives us some very important pieces of information.
1. She tells us that she has made sure that her end is set up properly, as far as she knows. Her bios are set to boot from cdrom.
2. Although she doesn't give us her exact sysutem specs, she does give us enough that with a quick search at Google, we can find them. She tells us she has an Inspiron 1000.
3. She tells us the circumstances of her problem. It hangs when trying to load Isolinux.
This is a very good "Asking for help" post! This is what we LOVE!
I would send DSL Girl this reply:
***Example Reply***
DSL Girl -
It sounds like you are having issues with Isolinux (the live-cd bootloader that DSL uses).
Grab the boot floppy image from one of the mirrors and use it to make a boot floppy. Instructions to do this are in the "Getting started" section of the Doc site.
Welcome to the Revolution!!!
-J.P.
***End Example Reply***
With this info in mind, feel free to make intelligent posts on the forum so that we can help you work out what ever issues you may be having with DSL!!
The DSL IRC channel is located on
irc.freenode.net #damnsmalllinux