<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.webos-internals.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ragingmind</id>
	<title>WebOS Internals - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.webos-internals.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ragingmind"/>
	<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/wiki/Special:Contributions/Ragingmind"/>
	<updated>2026-04-26T04:04:28Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=User:Ragingmind&amp;diff=14879</id>
		<title>User:Ragingmind</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=User:Ragingmind&amp;diff=14879"/>
		<updated>2011-03-30T14:18:05Z</updated>

		<summary type="html">&lt;p&gt;Ragingmind: Created page with &amp;quot;I am also RagingMind on #webos-internals&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I am also RagingMind on #webos-internals&lt;/div&gt;</summary>
		<author><name>Ragingmind</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Accessing_Linux_Debian&amp;diff=14877</id>
		<title>Accessing Linux Debian</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Accessing_Linux_Debian&amp;diff=14877"/>
		<updated>2011-03-30T14:08:54Z</updated>

		<summary type="html">&lt;p&gt;Ragingmind: took out emails so that I don't get spam every time an email scraper reads the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Though the Ubuntu packages that Palm distributes will install on most linux systems, unless you have converted your Debian system to use the upstart daemon novacomd will not start automatically when your computer does.  This can be fixed quite easily by installing a sysv style init script and adding it to the boot process.&lt;br /&gt;
&lt;br /&gt;
These steps must be run as root&lt;br /&gt;
&lt;br /&gt;
1.  Download the palm-novacom package for your system (only tested with the 32bit package so far)&lt;br /&gt;
&lt;br /&gt;
2.  Switch to root and install the package&lt;br /&gt;
&lt;br /&gt;
3.  Save this script as /etc/initd.d/novacomd and be very careful to not touch any other files in this directory&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#! /bin/sh&lt;br /&gt;
### BEGIN INIT INFO&lt;br /&gt;
# Provides:          novacomd&lt;br /&gt;
# Required-Start:    $remote_fs dbus udev&lt;br /&gt;
# Required-Stop:     $remote_fs dbus udev&lt;br /&gt;
# Should-Start:	     $syslog&lt;br /&gt;
# Should-Stop:       $syslog&lt;br /&gt;
# Default-Start:     2 3 4 5&lt;br /&gt;
# Default-Stop:      0 1 6&lt;br /&gt;
# Short-Description: palm novacom daemon&lt;br /&gt;
# Description:       Daemon for connecting to palm devices&lt;br /&gt;
### END INIT INFO&lt;br /&gt;
&lt;br /&gt;
# Based on /etc/init.d/skeleton&lt;br /&gt;
# Edited by Members of the MTU LUG.  lug.mtu.edu&lt;br /&gt;
&lt;br /&gt;
# Do NOT &amp;quot;set -e&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# PATH should only include /usr/* if it runs after the mountnfs.sh script&lt;br /&gt;
PATH=/sbin:/usr/sbin:/bin:/usr/bin:/opt/Palm/novacom&lt;br /&gt;
DESC=&amp;quot;Palm daemon to connect to webOS devices&amp;quot;&lt;br /&gt;
NAME=novacomd&lt;br /&gt;
DAEMON=/opt/Palm/novacom/$NAME&lt;br /&gt;
DAEMON_ARGS=&amp;quot;--daemonize&amp;quot;&lt;br /&gt;
SCRIPTNAME=/etc/init.d/$NAME&lt;br /&gt;
&lt;br /&gt;
# Exit if the package is not installed&lt;br /&gt;
[ -x &amp;quot;$DAEMON&amp;quot; ] || exit 0&lt;br /&gt;
&lt;br /&gt;
# Read configuration variable file if it is present&lt;br /&gt;
[ -r /etc/default/$NAME ] &amp;amp;&amp;amp; . /etc/default/$NAME&lt;br /&gt;
&lt;br /&gt;
# Load the VERBOSE setting and other rcS variables&lt;br /&gt;
. /lib/init/vars.sh&lt;br /&gt;
&lt;br /&gt;
# Define LSB log_* functions.&lt;br /&gt;
# Depend on lsb-base (&amp;gt;= 3.2-14) to ensure that this file is present&lt;br /&gt;
# and status_of_proc is working.&lt;br /&gt;
. /lib/lsb/init-functions&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Function that starts the daemon/service&lt;br /&gt;
#&lt;br /&gt;
do_start()&lt;br /&gt;
{&lt;br /&gt;
	# Return&lt;br /&gt;
	#   0 if daemon has been started&lt;br /&gt;
	#   1 if daemon was already running&lt;br /&gt;
	#   2 if daemon could not be started&lt;br /&gt;
	start-stop-daemon --start --quiet --exec $DAEMON --test &amp;gt; /dev/null \&lt;br /&gt;
		|| return 1&lt;br /&gt;
	start-stop-daemon --start --quiet --exec $DAEMON -- \&lt;br /&gt;
		$DAEMON_ARGS \&lt;br /&gt;
		|| return 2&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Function that stops the daemon/service&lt;br /&gt;
#&lt;br /&gt;
do_stop()&lt;br /&gt;
{&lt;br /&gt;
	# Return&lt;br /&gt;
	#   0 if daemon has been stopped&lt;br /&gt;
	#   1 if daemon was already stopped&lt;br /&gt;
	#   2 if daemon could not be stopped&lt;br /&gt;
	#   other if a failure occurred&lt;br /&gt;
	start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --name $NAME&lt;br /&gt;
	RETVAL=&amp;quot;$?&amp;quot;&lt;br /&gt;
	[ &amp;quot;$RETVAL&amp;quot; = 2 ] &amp;amp;&amp;amp; return 2&lt;br /&gt;
	# Wait for children to finish too if this is a daemon that forks&lt;br /&gt;
	# and if the daemon is only ever run from this initscript.&lt;br /&gt;
	# If the above conditions are not satisfied then add some other code&lt;br /&gt;
	# that waits for the process to drop all resources that could be&lt;br /&gt;
	# needed by services started subsequently.  A last resort is to&lt;br /&gt;
	# sleep for some time.&lt;br /&gt;
	start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON&lt;br /&gt;
	[ &amp;quot;$?&amp;quot; = 2 ] &amp;amp;&amp;amp; return 2&lt;br /&gt;
	# Many daemons don't delete their pidfiles when they exit.&lt;br /&gt;
	rm -f $PIDFILE&lt;br /&gt;
	return &amp;quot;$RETVAL&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Function that sends a SIGHUP to the daemon/service&lt;br /&gt;
#&lt;br /&gt;
do_reload() {&lt;br /&gt;
	#&lt;br /&gt;
	# If the daemon can reload its configuration without&lt;br /&gt;
	# restarting (for example, when it is sent a SIGHUP),&lt;br /&gt;
	# then implement that here.&lt;br /&gt;
	#&lt;br /&gt;
	start-stop-daemon --stop --signal 1 --quiet --name $NAME&lt;br /&gt;
	return 0&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
case &amp;quot;$1&amp;quot; in&lt;br /&gt;
  start)&lt;br /&gt;
	[ &amp;quot;$VERBOSE&amp;quot; != no ] &amp;amp;&amp;amp; log_daemon_msg &amp;quot;Starting $DESC&amp;quot; &amp;quot;$NAME&amp;quot;&lt;br /&gt;
	do_start&lt;br /&gt;
	case &amp;quot;$?&amp;quot; in&lt;br /&gt;
		0|1) [ &amp;quot;$VERBOSE&amp;quot; != no ] &amp;amp;&amp;amp; log_end_msg 0 ;;&lt;br /&gt;
		2) [ &amp;quot;$VERBOSE&amp;quot; != no ] &amp;amp;&amp;amp; log_end_msg 1 ;;&lt;br /&gt;
	esac&lt;br /&gt;
	;;&lt;br /&gt;
  stop)&lt;br /&gt;
	[ &amp;quot;$VERBOSE&amp;quot; != no ] &amp;amp;&amp;amp; log_daemon_msg &amp;quot;Stopping $DESC&amp;quot; &amp;quot;$NAME&amp;quot;&lt;br /&gt;
	do_stop&lt;br /&gt;
	case &amp;quot;$?&amp;quot; in&lt;br /&gt;
		0|1) [ &amp;quot;$VERBOSE&amp;quot; != no ] &amp;amp;&amp;amp; log_end_msg 0 ;;&lt;br /&gt;
		2) [ &amp;quot;$VERBOSE&amp;quot; != no ] &amp;amp;&amp;amp; log_end_msg 1 ;;&lt;br /&gt;
	esac&lt;br /&gt;
	;;&lt;br /&gt;
  status)&lt;br /&gt;
       status_of_proc &amp;quot;$DAEMON&amp;quot; &amp;quot;$NAME&amp;quot; &amp;amp;&amp;amp; exit 0 || exit $?&lt;br /&gt;
       ;;&lt;br /&gt;
  #reload|force-reload)&lt;br /&gt;
	#&lt;br /&gt;
	# If do_reload() is not implemented then leave this commented out&lt;br /&gt;
	# and leave 'force-reload' as an alias for 'restart'.&lt;br /&gt;
	#&lt;br /&gt;
	#log_daemon_msg &amp;quot;Reloading $DESC&amp;quot; &amp;quot;$NAME&amp;quot;&lt;br /&gt;
	#do_reload&lt;br /&gt;
	#log_end_msg $?&lt;br /&gt;
	#;;&lt;br /&gt;
  restart|force-reload)&lt;br /&gt;
	#&lt;br /&gt;
	# If the &amp;quot;reload&amp;quot; option is implemented then remove the&lt;br /&gt;
	# 'force-reload' alias&lt;br /&gt;
	#&lt;br /&gt;
	log_daemon_msg &amp;quot;Restarting $DESC&amp;quot; &amp;quot;$NAME&amp;quot;&lt;br /&gt;
	do_stop&lt;br /&gt;
	case &amp;quot;$?&amp;quot; in&lt;br /&gt;
	  0|1)&lt;br /&gt;
		do_start&lt;br /&gt;
		case &amp;quot;$?&amp;quot; in&lt;br /&gt;
			0) log_end_msg 0 ;;&lt;br /&gt;
			1) log_end_msg 1 ;; # Old process is still running&lt;br /&gt;
			*) log_end_msg 1 ;; # Failed to start&lt;br /&gt;
		esac&lt;br /&gt;
		;;&lt;br /&gt;
	  *)&lt;br /&gt;
	  	# Failed to stop&lt;br /&gt;
		log_end_msg 1&lt;br /&gt;
		;;&lt;br /&gt;
	esac&lt;br /&gt;
	;;&lt;br /&gt;
  *)&lt;br /&gt;
	#echo &amp;quot;Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
	echo &amp;quot;Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
	exit 3&lt;br /&gt;
	;;&lt;br /&gt;
esac&lt;br /&gt;
&lt;br /&gt;
:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4.  Run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
update-rc.d novacomd defaults&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ragingmind</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Building_a_Debian_chroot_image&amp;diff=14875</id>
		<title>Building a Debian chroot image</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Building_a_Debian_chroot_image&amp;diff=14875"/>
		<updated>2011-03-30T14:06:32Z</updated>

		<summary type="html">&lt;p&gt;Ragingmind: Fixing some minor gramar oops-es and updating some wording to be more clear&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Building your own image for a chroot can be quite handy especially if you would like to customize what comes pre-installed.  The following steps should work as-is on a Debian Squeeze system.  They should also work for Ubuntu, but the name of the qemu package that provides the necessary binary is different.  Please see [[Debian chroot]] for instruction on how to actually use this image on the Pre.&lt;br /&gt;
&lt;br /&gt;
Required packages: debootstrap, qemu-user-static, binfmt-support&lt;br /&gt;
&lt;br /&gt;
==Creating the image file==&lt;br /&gt;
Pick a directory to work in on your desktop/laptop computer.  All the commands are relative to the current directory so it shouldn't matter where, so long as you have write access.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
dd if=/dev/zero of=DebianSqueeze_armel.img bs=1M count=512&lt;br /&gt;
mkdir build&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now to put an ext2 file system in that blank file. '''The rest of these steps require being run as root.'''  Note the loop device output by the first command, it will probably be ''loop0'' and in the examples below this is what you'll put in for ''[device]''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
losetup -f &lt;br /&gt;
losetup -f DebianSqueeze_armel.img&lt;br /&gt;
mkfs.ext2 /dev/[device]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Building a system==&lt;br /&gt;
Now we can fill the image with Magic *cough* I mean Debian 6.0.x &amp;quot;squeeze&amp;quot;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mount /dev/[device] build/&lt;br /&gt;
debootstrap --arch armel --foreign squeeze build/ http://ftp.us.debian.org/debian&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point the system is only partially setup.  This next step with debootstrap would have to be preformed on the Pre, but with the help of qemu and binfmt we can do that on our desktop as well.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cp /usr/bin/qemu-arm-static build/usr/bin/&lt;br /&gt;
chroot build/&lt;br /&gt;
/debootstrap/debootstrap --second-stage&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now that the base system is installed and set up there is some minor housekeeping that we can do before transferring everything to the Pre.  First we will clear apt's cache and then add a default mirror to sources.list&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
apt-get clean&lt;br /&gt;
echo &amp;quot;deb http://ftp.us.debian.org/debian squeeze main&amp;quot; &amp;gt; /etc/apt/sources.list&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This next step is entirely optional and if you don't understand what it will do to the default choices made by apt when installing packages then '''I strongly recommend skipping it'''.  It is only useful to keep space usage down, but at the cost of functionality.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo 'APT { Install-Recommends &amp;quot;false&amp;quot;; };' &amp;gt; /etc/apt/apt.conf.d/50no-recommends&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the chroot&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Cleaning up==&lt;br /&gt;
A few steps to clean up on your desktop.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
rm build/usr/bin/qemu-arm-static&lt;br /&gt;
umount build/&lt;br /&gt;
losetup -d /dev/[device]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Tada!==&lt;br /&gt;
Now you have an image of Debian Squeeze that you can use on your Pre.  This is where you transfer the image to the USB drive and there are several ways to do that.&lt;br /&gt;
&lt;br /&gt;
==More Resources==&lt;br /&gt;
[http://wiki.debian.org/Debootstrap deboostrab on the debian wiki]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.debian.org/EmDebian/CrossDebootstrap information about cross debbootstrap on the debian wiki]&lt;br /&gt;
&lt;br /&gt;
[http://www.digriz.org.uk/debootstrap-qemu helpful guide on digriz.org.uk]&lt;/div&gt;</summary>
		<author><name>Ragingmind</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Building_a_Debian_chroot_image&amp;diff=14839</id>
		<title>Building a Debian chroot image</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Building_a_Debian_chroot_image&amp;diff=14839"/>
		<updated>2011-03-30T02:29:29Z</updated>

		<summary type="html">&lt;p&gt;Ragingmind: updating dirctory names to be consistant&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Having a custom image for your chroot can be quite handy especially if you would like to customize what comes pre-installed.  The following steps should work as-is on a Debian Squeeze system.  They should also work for Ubuntu, but the name of the qemu package that provides the necessary binary is different.  Please see [[Debian chroot]] for instruction on how to actually use this image on the Pre.&lt;br /&gt;
&lt;br /&gt;
Required packages: debootstrap, qemu-user-static, binfmt-support&lt;br /&gt;
&lt;br /&gt;
==Creating the image file==&lt;br /&gt;
Pick a directory to work in on your desktop/laptop computer.  All the commands are relative to the current directory so it shouldn't matter where, as long as you have write access.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
dd if=/dev/zero of=DebianSqueeze_armel.img bs=1M count=512&lt;br /&gt;
mkdir build&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now to put an ext2 file system in that blank file. '''The rest of these steps require being run at root.'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
losetup -f &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Note the loop device output by this, it will probably be loop0 and in the examples below this is what you'll put in for [device]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
losetup -f DebianSqueeze_armel.img&lt;br /&gt;
mkfs.ext2 /dev/[device]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Building a system==&lt;br /&gt;
Now we can fill the image with Magic *cough* I mean Debian 6.0.x &amp;quot;squeeze&amp;quot;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mount /dev/[device] build/&lt;br /&gt;
debootstrap --arch armel --foreign squeeze build/ http://ftp.us.debian.org/debian&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point the system is only partially setup.  This next step would have to be preformed on the Pre, but with the help of qemu and binfmt we can do that on our desktop as well.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cp /usr/bin/qemu-arm-static build/usr/bin/&lt;br /&gt;
chroot build/&lt;br /&gt;
/debootstrap/debootstrap --second-stage&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now that the base system is installed and set up there is some minor housekeeping that we can do before transferring everything to the Pre.  First we will clear apt's cache and then add a default mirror to sources.list&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
apt-get clean&lt;br /&gt;
echo &amp;quot;deb http://ftp.us.debian.org/debian squeeze main&amp;quot; &amp;gt; /etc/apt/sources.list&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This next step is entirely optional and if you don't understand what it will do to the default choices made by apt when installing packages then I strongly recommend skipping it.  It is only useful to keep space usage down, but at the cost of functionality.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo 'APT { Install-Recommends &amp;quot;false&amp;quot;; };' &amp;gt; /etc/apt/apt.conf.d/50no-recommends&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the chroot&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Cleaning up==&lt;br /&gt;
A few steps to clean up on your desktop.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
rm build/usr/bin/qemu-arm-static&lt;br /&gt;
umount build/&lt;br /&gt;
losetup -d /dev/[device]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Tada!==&lt;br /&gt;
Now you have an image of Debian Squeeze that you can use on your Pre.  This is where you transfer the image to the USB drive and there are several ways to do that.&lt;br /&gt;
&lt;br /&gt;
==More Resources==&lt;br /&gt;
[http://wiki.debian.org/Debootstrap deboostrab on the debian wiki]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.debian.org/EmDebian/CrossDebootstrap information about cross debbootstrap on the debian wiki]&lt;br /&gt;
&lt;br /&gt;
[http://www.digriz.org.uk/debootstrap-qemu helpful guide on digriz.org.uk]&lt;/div&gt;</summary>
		<author><name>Ragingmind</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Building_a_Debian_chroot_image&amp;diff=14837</id>
		<title>Building a Debian chroot image</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Building_a_Debian_chroot_image&amp;diff=14837"/>
		<updated>2011-03-30T02:20:54Z</updated>

		<summary type="html">&lt;p&gt;Ragingmind: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Having a custom image for your chroot can be quite handy especially if you would like to customize what comes pre-installed.  The following steps should work as-is on a Debian Squeeze system.  They should also work for Ubuntu, but the name of the qemu package that provides the necessary binary is different.  Please see [[Debian chroot]] for instruction on how to actually use this image on the Pre.&lt;br /&gt;
&lt;br /&gt;
Required packages: debootstrap, qemu-user-static, binfmt-support&lt;br /&gt;
&lt;br /&gt;
==Creating the image file==&lt;br /&gt;
Pick a directory to work in on your desktop/laptop computer.  All the commands are relative to the current directory so it shouldn't matter where, as long as you have write access.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
dd if=/dev/zero of=DebianSqueeze_armel.img bs=1M count=512&lt;br /&gt;
mkdir build&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now to put an ext2 file system in that blank file. '''The rest of these steps require being run at root.'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
losetup -f &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Note the loop device output by this, it will probably be loop0 and in the examples below this is what you'll put in for [device]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
losetup -f DebianSqueeze_armel.img&lt;br /&gt;
mkfs.ext2 /dev/[device]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Building a system==&lt;br /&gt;
Now we can fill the image with Magic *cough* I mean Debian 6.0.x &amp;quot;squeeze&amp;quot;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mount /dev/[device] build/&lt;br /&gt;
debootstrap --arch armel --foreign squeeze mnt/ http://ftp.us.debian.org/debian&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point the system is only partially setup.  This next step would have to be preformed on the Pre, but with the help of qemu and binfmt we can do that on our desktop as well.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cp /usr/bin/qemu-arm-static mnt/usr/bin/&lt;br /&gt;
chroot mnt/&lt;br /&gt;
/debootstrap/debootstrap --second-stage&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now that the base system is installed and set up there is some minor housekeeping that we can do before transferring everything to the Pre.  First we will clear apt's cache and then add a default mirror to sources.list&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
apt-get clean&lt;br /&gt;
echo &amp;quot;deb http://ftp.us.debian.org/debian squeeze main&amp;quot; &amp;gt; /etc/apt/sources.list&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This next step is entirely optional and if you don't understand what it will do to the default choices made by apt when installing packages then I strongly recommend skipping it.  It is only useful to keep space usage down, but at the cost of functionality.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo 'APT { Install-Recommends &amp;quot;false&amp;quot;; };' &amp;gt; /etc/apt/apt.conf.d/50no-recommends&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the chroot&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Cleaning up==&lt;br /&gt;
A few steps to clean up on your desktop.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
rm mnt/usr/bin/qemu-arm-static&lt;br /&gt;
umount mnt/&lt;br /&gt;
losetup -d /dev/[device]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Tada!==&lt;br /&gt;
Now you have an image of Debian Squeeze that you can use on your Pre.  This is where you transfer the image to the USB drive and there are several ways to do that.&lt;br /&gt;
&lt;br /&gt;
==More Resources==&lt;br /&gt;
[http://wiki.debian.org/Debootstrap deboostrab on the debian wiki]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.debian.org/EmDebian/CrossDebootstrap information about cross debbootstrap on the debian wiki]&lt;br /&gt;
&lt;br /&gt;
[http://www.digriz.org.uk/debootstrap-qemu helpful guide on digriz.org.uk]&lt;/div&gt;</summary>
		<author><name>Ragingmind</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Building_a_Debian_chroot_image&amp;diff=14833</id>
		<title>Building a Debian chroot image</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Building_a_Debian_chroot_image&amp;diff=14833"/>
		<updated>2011-03-30T01:16:49Z</updated>

		<summary type="html">&lt;p&gt;Ragingmind: Created page with &amp;quot;I will fill this in within a few minutes.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I will fill this in within a few minutes.&lt;/div&gt;</summary>
		<author><name>Ragingmind</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Talk:Debian&amp;diff=14829</id>
		<title>Talk:Debian</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Talk:Debian&amp;diff=14829"/>
		<updated>2011-03-30T01:03:32Z</updated>

		<summary type="html">&lt;p&gt;Ragingmind: moved Talk:Debian to Talk:Debian chroot: The previous title was too ambiguous.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Talk:Debian chroot]]&lt;/div&gt;</summary>
		<author><name>Ragingmind</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Talk:Debian_chroot&amp;diff=14827</id>
		<title>Talk:Debian chroot</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Talk:Debian_chroot&amp;diff=14827"/>
		<updated>2011-03-30T01:03:32Z</updated>

		<summary type="html">&lt;p&gt;Ragingmind: moved Talk:Debian to Talk:Debian chroot: The previous title was too ambiguous.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Doing it all on-device===&lt;br /&gt;
&lt;br /&gt;
This entire process can be done on-device (if you're patient), as both bunzip2 and resize2fs exist on the Pre.&lt;br /&gt;
&lt;br /&gt;
time bunzip2 debsmall.img.bz2&lt;br /&gt;
&lt;br /&gt;
''real 2m 26.53s''&lt;br /&gt;
&lt;br /&gt;
time resize2fs debsmall.img 1G&lt;br /&gt;
&lt;br /&gt;
''real 17m 49.56s''&lt;br /&gt;
&lt;br /&gt;
Also took about 20% of my battery (including the download over 3G), but hey, it works!&lt;/div&gt;</summary>
		<author><name>Ragingmind</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Debian&amp;diff=14825</id>
		<title>Debian</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Debian&amp;diff=14825"/>
		<updated>2011-03-30T01:03:31Z</updated>

		<summary type="html">&lt;p&gt;Ragingmind: moved Debian to Debian chroot: The previous title was too ambiguous.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Debian chroot]]&lt;/div&gt;</summary>
		<author><name>Ragingmind</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Accessing_Linux_Debian&amp;diff=13145</id>
		<title>Accessing Linux Debian</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Accessing_Linux_Debian&amp;diff=13145"/>
		<updated>2011-02-27T16:22:12Z</updated>

		<summary type="html">&lt;p&gt;Ragingmind: Created page with 'Though the Ubuntu packages that Palm distributes will install on most linux systems, unless you have converted your Debian system to use the upstart daemon novacomd will not star…'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Though the Ubuntu packages that Palm distributes will install on most linux systems, unless you have converted your Debian system to use the upstart daemon novacomd will not start automatically when your computer does.  This can be fixed quite easily by installing a sysv style init script and adding it to the boot process.&lt;br /&gt;
&lt;br /&gt;
These steps must be run as root&lt;br /&gt;
&lt;br /&gt;
1.  Download the palm-novacom package for your system (only tested with the 32bit package so far)&lt;br /&gt;
&lt;br /&gt;
2.  Switch to root and install the package&lt;br /&gt;
&lt;br /&gt;
3.  Save this script as /etc/initd.d/novacomd and be very careful to not touch any other files in this directory&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#! /bin/sh&lt;br /&gt;
### BEGIN INIT INFO&lt;br /&gt;
# Provides:          novacomd&lt;br /&gt;
# Required-Start:    $remote_fs dbus udev&lt;br /&gt;
# Required-Stop:     $remote_fs dbus udev&lt;br /&gt;
# Should-Start:	     $syslog&lt;br /&gt;
# Should-Stop:       $syslog&lt;br /&gt;
# Default-Start:     2 3 4 5&lt;br /&gt;
# Default-Stop:      0 1 6&lt;br /&gt;
# Short-Description: palm novacom daemon&lt;br /&gt;
# Description:       Daemon for connecting to palm devices&lt;br /&gt;
### END INIT INFO&lt;br /&gt;
&lt;br /&gt;
# Based on /etc/init.d/skeleton&lt;br /&gt;
# Edited by Christian Jacobsen &amp;lt;cjjacobs@mtu.edu&amp;gt; with help from Brian McPherson &amp;lt;bamcpher@mtu.edu&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Do NOT &amp;quot;set -e&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# PATH should only include /usr/* if it runs after the mountnfs.sh script&lt;br /&gt;
PATH=/sbin:/usr/sbin:/bin:/usr/bin:/opt/Palm/novacom&lt;br /&gt;
DESC=&amp;quot;Palm daemon to connect to webOS devices&amp;quot;&lt;br /&gt;
NAME=novacomd&lt;br /&gt;
DAEMON=/opt/Palm/novacom/$NAME&lt;br /&gt;
DAEMON_ARGS=&amp;quot;--daemonize&amp;quot;&lt;br /&gt;
SCRIPTNAME=/etc/init.d/$NAME&lt;br /&gt;
&lt;br /&gt;
# Exit if the package is not installed&lt;br /&gt;
[ -x &amp;quot;$DAEMON&amp;quot; ] || exit 0&lt;br /&gt;
&lt;br /&gt;
# Read configuration variable file if it is present&lt;br /&gt;
[ -r /etc/default/$NAME ] &amp;amp;&amp;amp; . /etc/default/$NAME&lt;br /&gt;
&lt;br /&gt;
# Load the VERBOSE setting and other rcS variables&lt;br /&gt;
. /lib/init/vars.sh&lt;br /&gt;
&lt;br /&gt;
# Define LSB log_* functions.&lt;br /&gt;
# Depend on lsb-base (&amp;gt;= 3.2-14) to ensure that this file is present&lt;br /&gt;
# and status_of_proc is working.&lt;br /&gt;
. /lib/lsb/init-functions&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Function that starts the daemon/service&lt;br /&gt;
#&lt;br /&gt;
do_start()&lt;br /&gt;
{&lt;br /&gt;
	# Return&lt;br /&gt;
	#   0 if daemon has been started&lt;br /&gt;
	#   1 if daemon was already running&lt;br /&gt;
	#   2 if daemon could not be started&lt;br /&gt;
	start-stop-daemon --start --quiet --exec $DAEMON --test &amp;gt; /dev/null \&lt;br /&gt;
		|| return 1&lt;br /&gt;
	start-stop-daemon --start --quiet --exec $DAEMON -- \&lt;br /&gt;
		$DAEMON_ARGS \&lt;br /&gt;
		|| return 2&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Function that stops the daemon/service&lt;br /&gt;
#&lt;br /&gt;
do_stop()&lt;br /&gt;
{&lt;br /&gt;
	# Return&lt;br /&gt;
	#   0 if daemon has been stopped&lt;br /&gt;
	#   1 if daemon was already stopped&lt;br /&gt;
	#   2 if daemon could not be stopped&lt;br /&gt;
	#   other if a failure occurred&lt;br /&gt;
	start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --name $NAME&lt;br /&gt;
	RETVAL=&amp;quot;$?&amp;quot;&lt;br /&gt;
	[ &amp;quot;$RETVAL&amp;quot; = 2 ] &amp;amp;&amp;amp; return 2&lt;br /&gt;
	# Wait for children to finish too if this is a daemon that forks&lt;br /&gt;
	# and if the daemon is only ever run from this initscript.&lt;br /&gt;
	# If the above conditions are not satisfied then add some other code&lt;br /&gt;
	# that waits for the process to drop all resources that could be&lt;br /&gt;
	# needed by services started subsequently.  A last resort is to&lt;br /&gt;
	# sleep for some time.&lt;br /&gt;
	start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON&lt;br /&gt;
	[ &amp;quot;$?&amp;quot; = 2 ] &amp;amp;&amp;amp; return 2&lt;br /&gt;
	# Many daemons don't delete their pidfiles when they exit.&lt;br /&gt;
	rm -f $PIDFILE&lt;br /&gt;
	return &amp;quot;$RETVAL&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Function that sends a SIGHUP to the daemon/service&lt;br /&gt;
#&lt;br /&gt;
do_reload() {&lt;br /&gt;
	#&lt;br /&gt;
	# If the daemon can reload its configuration without&lt;br /&gt;
	# restarting (for example, when it is sent a SIGHUP),&lt;br /&gt;
	# then implement that here.&lt;br /&gt;
	#&lt;br /&gt;
	start-stop-daemon --stop --signal 1 --quiet --name $NAME&lt;br /&gt;
	return 0&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
case &amp;quot;$1&amp;quot; in&lt;br /&gt;
  start)&lt;br /&gt;
	[ &amp;quot;$VERBOSE&amp;quot; != no ] &amp;amp;&amp;amp; log_daemon_msg &amp;quot;Starting $DESC&amp;quot; &amp;quot;$NAME&amp;quot;&lt;br /&gt;
	do_start&lt;br /&gt;
	case &amp;quot;$?&amp;quot; in&lt;br /&gt;
		0|1) [ &amp;quot;$VERBOSE&amp;quot; != no ] &amp;amp;&amp;amp; log_end_msg 0 ;;&lt;br /&gt;
		2) [ &amp;quot;$VERBOSE&amp;quot; != no ] &amp;amp;&amp;amp; log_end_msg 1 ;;&lt;br /&gt;
	esac&lt;br /&gt;
	;;&lt;br /&gt;
  stop)&lt;br /&gt;
	[ &amp;quot;$VERBOSE&amp;quot; != no ] &amp;amp;&amp;amp; log_daemon_msg &amp;quot;Stopping $DESC&amp;quot; &amp;quot;$NAME&amp;quot;&lt;br /&gt;
	do_stop&lt;br /&gt;
	case &amp;quot;$?&amp;quot; in&lt;br /&gt;
		0|1) [ &amp;quot;$VERBOSE&amp;quot; != no ] &amp;amp;&amp;amp; log_end_msg 0 ;;&lt;br /&gt;
		2) [ &amp;quot;$VERBOSE&amp;quot; != no ] &amp;amp;&amp;amp; log_end_msg 1 ;;&lt;br /&gt;
	esac&lt;br /&gt;
	;;&lt;br /&gt;
  status)&lt;br /&gt;
       status_of_proc &amp;quot;$DAEMON&amp;quot; &amp;quot;$NAME&amp;quot; &amp;amp;&amp;amp; exit 0 || exit $?&lt;br /&gt;
       ;;&lt;br /&gt;
  #reload|force-reload)&lt;br /&gt;
	#&lt;br /&gt;
	# If do_reload() is not implemented then leave this commented out&lt;br /&gt;
	# and leave 'force-reload' as an alias for 'restart'.&lt;br /&gt;
	#&lt;br /&gt;
	#log_daemon_msg &amp;quot;Reloading $DESC&amp;quot; &amp;quot;$NAME&amp;quot;&lt;br /&gt;
	#do_reload&lt;br /&gt;
	#log_end_msg $?&lt;br /&gt;
	#;;&lt;br /&gt;
  restart|force-reload)&lt;br /&gt;
	#&lt;br /&gt;
	# If the &amp;quot;reload&amp;quot; option is implemented then remove the&lt;br /&gt;
	# 'force-reload' alias&lt;br /&gt;
	#&lt;br /&gt;
	log_daemon_msg &amp;quot;Restarting $DESC&amp;quot; &amp;quot;$NAME&amp;quot;&lt;br /&gt;
	do_stop&lt;br /&gt;
	case &amp;quot;$?&amp;quot; in&lt;br /&gt;
	  0|1)&lt;br /&gt;
		do_start&lt;br /&gt;
		case &amp;quot;$?&amp;quot; in&lt;br /&gt;
			0) log_end_msg 0 ;;&lt;br /&gt;
			1) log_end_msg 1 ;; # Old process is still running&lt;br /&gt;
			*) log_end_msg 1 ;; # Failed to start&lt;br /&gt;
		esac&lt;br /&gt;
		;;&lt;br /&gt;
	  *)&lt;br /&gt;
	  	# Failed to stop&lt;br /&gt;
		log_end_msg 1&lt;br /&gt;
		;;&lt;br /&gt;
	esac&lt;br /&gt;
	;;&lt;br /&gt;
  *)&lt;br /&gt;
	#echo &amp;quot;Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
	echo &amp;quot;Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
	exit 3&lt;br /&gt;
	;;&lt;br /&gt;
esac&lt;br /&gt;
&lt;br /&gt;
:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4.  Run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
update-rc.d novacomd defaults&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ragingmind</name></author>
	</entry>
</feed>