Julien Viard de Galbert: Building a custom debian CD
The French version is available on linuxembedded.fr : Cr e un CD d installation d une debian sp cialis e
The goal is to build a debian install CD suitable for the distribution of a complete system including the operating system and applications.
Debian already has a tool for that purpose: simple-cdd. Simple-cdd is a set of scripts wrapping debian-cd which is the tool used to build official CDs.
In our case, we will include some non-free packages (firmwares for instance) and application specific packages in the system.
Using simple-cdd
Simple-cdd gets some of its configuration from your host computer, so it s recommended to work on a machine similar to your target (in particular the machine should use the same architecture: i386 or amd64).
All the following actions should be done in a working directory that will contain the downloads and configurations for our system.
We will start by creting a configuration file my-cdd.conf stating the mirror and components to use:
debian_mirror="http://ftp2.fr.debian.org/debian/" mirror_components="main contrib non-free"Then we will launch the build-simple-cdd tool once. This will build a local mirror of the needed packages that we will reused later. So be patient this can be a bit long.
build-simple-cdd --conf ./my-cdd.confOnce done, you should get a CD iso in the images subfolder. Customizing the image To customize our image we will create a profile my-profile that will define which package to install and which extra package to include on the CD (dev packages for instance). Create a profiles folder:
mkdir profilesSelecting the packages If you ve got an already installed machine (the one you used to test your application) you can ask dpkg to list the installed packages from that machine and use that as a basis.
dpkg --get-selections >package-listIn this file only the names of packages in the install state are needed:
grep -e '\<install$' package-list awk ' print $1 ;' >profiles/my-profile.downloadsThe file my-profile.downloads is a list of packages to include on the CD-ROM. The list of program to install is my-profile.packages . The tool will resolve dependencies, so we don t need to track down all dependencies add add them to these files. Specific packages We want to add some custom packages that we built ourselves to the CD, those packages not present in the debian archive. Let s create a local_pkg folder and fill it with all of our packages. We now can update the configuration to use all those files and make the profile my-profile the default profile.
debian_mirror="http://ftp2.fr.debian.org/debian/" mirror_components="main contrib non-free" simple_cdd_dir=$(pwd) profiles="my-profile" auto_profiles="my-profile" local_packages="$simple_cdd_dir/local_pkg/"If you now run the tool again, you ll get a full custom install CD!
build-simple-cdd --conf ./my-cdd.confHowever you might have missed some specific packages or their dependencies, in that case they will be missing on the CD. To find this out, check the messages for a line like:
WARNING: missing optional packages from profile my-profile: libevent-2.0-5 [...]In that case libevent from squeeze-backports was missing. Simple-cdd is not able to download packages from backports, so I just added the packages to local_pkg . Customizing the installer Simple-cdd automatically uses a default profile. This profile might not suite your needs. To override it you just have to place modified file in the profiles folder. To do so, first copy the desired file from /usr/share/simple-cdd/profiles/ and update it. For instance the default.pressed file:
cp /usr/share/simple-cdd/profiles/default.pressed profilesThen update the wanted options in this file. For example the partitioning options. Also as we enabled contrib and non-free you should uncomment the following lines:
d-i apt-setup/non-free boolean true d-i apt-setup/contrib boolean trueAdding extra files to the CD Finally we want to add the documentation, sources and other files to the CD. Simple-cdd can add files to the simple-cdd folder but there is no way to add a complete directory structure. However, as we can override the profiles, we can also override some scripts, especially tools/build/debian-cd that builds the CD.
mkdir -p tools/build cp /usr/share/simple-cdd/tools/build/debian-cd tools/buildThen add the following lines after the $extras_base_dir cleanup:
if [ -d "$cd_extras" ]; then mkdir -p "$extras_base_dir" cp -a "$cd_extras/." "$extras_base_dir" fiFinally let s add the cd_extras variable to our configuration file :
cd_extras="$simple_cdd_dir/local_extras/"Be careful to not create files conflicting with the CD content, nothing would warn you about that! Conclusion We now have a way of building a debian install CD including any files we might want to deliver with our system: sources and documentation for example.
Recently, there's been discussions on IRC and the debian-devel mailing
list about how to notify users, typically from a cron script or a
system daemon needing to tell the user their hard drive is about to
expire. The current way is generally "send email to root" and for
some bits "pop up a notification bubble, hoping the user will see
it". Emailing me means I get far too many notifications. They're
often not actionable (
Sorry
The purpose of a backup is to allow you to recover from a disaster with
reasonable cost and effort. If you delete a file you shouldn't have,
or make changes that you shouldn't have, backups are meant to save you
from having to re-create the file, or undo a large amount of steps.
Speaking very broadly, any copy of your live data is a backup, but this
is a uselessly broad definition. For example, if you use an automatic
synchronisation system such as Dropbox or git-annex, to keep your live
data in sync between two computers, you could pretend they're backups
of each other. However, unless the synchronisation also allows you to
keep a history of file versions, it's not a very good backup. If you
delete your precious file on one computer, and it gets then deleted on
the other computer as well, automatically, perhaps in seconds, then the
backup is not of much use.
Another common assumption is that a RAID array works as a backup. RAID
is an excellent technology that allows you to combine several hard disks
so that they protect you against loss of data in case of disk failure.
If one disk fails, the others have enough data to re-create the data on
the failed disk, using either full copies (RAID-1) or error correction
codes (RAID-5, RAID-6). This is not a backup. It doesn't protect you
against accidental file deletions. There is also no backup history.
A version control system is very much like a backup. It stores copies
of many of the versions of your project. However, in most version
control systems it's fairly easy to make changes that lose history. Ask
anyone who has used
With the PRISM scandal, there has been some talk about encrypted
communication systems. For instance,
I found the following news item; if you can read Spanish, you will most probably prefer
Yesterday I ran in the
I am getting into the swing of fatherhood - lots of nappy changing. :) I took my two weeks of paternity leave, but spread the second "week" over two weeks by working just afternoons, which gave me lots of time with mummy and baby. We watched a DVD called "The Happiest Baby on the Block", and mastered the techniques therein (mainly swaddling and white noise). So all things considered, we're getting quite a bit of sleep.
Sophie is very curious about my typing, and leans towards anything she's interested in... so she's currently suspended at an angle besides me. Maybe she'll be interested in what her parents do, when she grows up. :) But for now, we're enjoying that she's learned to smile.

One of my own contributions to the project has been the creation of
Hi folks,
I used to work at F5, and I pulled a bunch of equipment out of the recycle bin while I was there in order to help me populate the customer end premesis device inventory for a carrier network / ISP I am setting up. They decided to terminate my employment at the end of August last year, and I ve been wondering what to do with all of this equipment. I figured that it s been long enough that I can give them a call, so I did. I asked them whether I should consider buying BIG-IP hardware off of e-Bay if it said that it did not come with a license. The customer service agent told me that I should probably not consider doing any such thing, since I would have to pay a hefty fee to F5 before they would even provide a license.
It looks like I d have to shell out fifty thousand dollars to get a proper F5 Networks Inc. license for these many surplus BIG-IP devices I have. I guess I ll just have to go with an improper (or maybe I mean not for profit) operating system like Debian. I wonder if I can get the current linux kernel to pick up these broadcom 10GE chips or whether I ll have to wait for someone to release Free as in speech firmware for them that I can make use of.
Do any of you DDs want a shell on a linux box with a 10-port 10GE switch attached by PCI-e? I bet I could get a Debian chroot environment running in the system s stock rescue firmware. I bet I could then determine why the watchdog timer keeps tripping when I boot with other kernels
If you decide to accept the offer of a shell on this box, please try to avoid rebooting it. It tends to pop my breakers and I have to run to the shop before the UPSs run out of juice.
Nonetheless, the existence of this app may well be an even bigger problem for the NSA right now than it is for single women. US Government officials in damage control mode over the


Jessa is moving to Boston. Why is Jessa moving to Boston? To work for
Microsoft. What will she be doing for Microsoft? Studying how drag
queens use Facebook.
If all goes well, a new release of dput-ng will hit the archive this week (depending on when I can find time to close the last 2 bigger bugs) - anyone interested in getting a new feature into dput-ng should email me (or file a reportbug bug at dput-ng)
Small list of changes so far:
* Add per-host loading of command files by partially parsing command
line arguments.
* Add disallowed_distributions.
* Add codename groupping support.
* Add codename groups to vital targets, limit security uploads
I've been singing for a long time. The first time I was a
member of a choir was when I was around 6-7 years old, and it was as a
member of the children's choir 'De Lambertijnen' in Ekeren, Belgium. Not
by coincidence, Ekeren is where I grew up.
However, I didn't remain a member of 'De Lambertijnen' for very long.
After a year or two, I was over the maximum age for members of that
choir, and "promoted" to Carmina, another children's choir of the