<li>
You have an Android smartphone with access to a root shell via SSH. I run
<a href="http://www.cyanogenmod.com/">CyanogenMod 7.1</a> on my Galaxy S
-II, but any Android system with root SSH access will do.
+II, but any Android system with root SSH access will do, provided it has
+the following utilities:
+ <ul>
+ <li><tt>cat</tt></li>
+ <li><tt>chroot</tt></li>
+ <li><tt>dd</tt></li>
+ <li><tt>ln</tt></li>
+ <li><tt>mkdir</tt></li>
+ <li><tt>mke2fs</tt></li>
+ <li><tt>mount</tt></li>
+ <li><tt>tar</tt></li>
+ <li><tt>wget</tt> (used by <tt>cdebootstrap</tt>)</li>
+ </ul>
+If you don't have these utilities available to you, you will either need
+to find a way of installing them, or else find alternative ways of
+performing some of the steps in this how-to. Doing either is outside the
+scope of this how-to.
</li>
<li>
You have a reasonably fast and high-capacity Internet connection
<ul>
<li>
Download the <a href="http://packages.debian.org/sid/cdebootstrap-static">cdebootstrap-static</a>
-package for your architecture. Both armel and armhf packages should work
-on recent Android phones; if you have an older phone, you may need to
-stick with armel. I'll be using armhf in this tutorial, but you are free
-to choose whichever architecture suits you best.
+package for your architecture. Both <tt>armel</tt> and <tt>armhf</tt>
+packages should work on recent Android phones; if you have an older
+phone, you may need to stick with <tt>armel</tt>. I'll be using
+<tt>armhf</tt> in this tutorial, but you are free to choose whichever
+architecture suits you best.
</li>
<li>
Now, copy the files needed for <tt>cdebootstrap</tt> to work across to
your phone, run <tt>cdebootstrap</tt> to set up a file system tree in
<tt>/debian</tt>. You may want to tweak the options below; I'm using
<tt>ftp.debian-ports.org</tt> as my mirror because (at the time of
-writing) the armhf architecture is not yet fully integrated into the
-official archive. If you're using armel, or if you happen to live in the
-future, you can use your normal Debian mirror for this. Obviously, feel
-free to replace <tt>unstable</tt> with whichever suite you want to
-install.
+writing) the <tt>armhf</tt> architecture is not yet fully integrated into
+the official archive. If you're using <tt>armel</tt>, or if you happen to
+live in the future, you can use your normal Debian mirror for this.
+Obviously, feel free to replace <tt>unstable</tt> with whichever suite
+you want to install.
</p>
<code>
way.
</p>
+<p>
+Once you have resolved a few circular dependencies and want to try again,
+it is a good idea to run:
+</p>
+
+<code>
+# dpkg --configure -a
+</code>
+
+<p>
+before telling <tt>dpkg</tt> to try installing packages again, as the
+shell glob <tt>*.deb</tt> will simply present the packages in
+alphabetical order, which is usually not a sensible order in terms of
+satisyfing dependencies. <tt>dpkg --configure -a</tt> will make sure that
+packages which are already installed (and thus don't depend on any which
+aren't installed yet) get configured before those which aren't already
+installed (and might depend on installed packages being configured).
+</p>
+
<h2>Installing a standard Debian package set</h2>
<p>