Installing Debian as an upgrade: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
(Removing all content from page) |
||
Line 1: | Line 1: | ||
These instructions assume you are starting from build 612 or later, which has support for booting from multiple images. (This started working some time prior to build 612, but I can't be bothered to look up the exact build right now.) |
|||
Now, boot into sugar. You are currently running from the system in /versions/run/<build number>, which is a copy-on-write mirror of /versions/pristine/<build number>. We're going to install debian in /versions/pristine/debian. (See [[Early Boot]] for details on the OS versioning scheme.) |
|||
: Note that recent builds allow you to type: |
|||
# /usr/sbin/olpc-update debian |
|||
: or |
|||
# /usr/sbin/olpc-update debian-big |
|||
: to magically get the results of step 3, or step 5 below. |
|||
==Shell script alternative== |
|||
I have created a shell script which automates all steps 1 and 2. All you have to do is put it on the OLPC and run it. However, it is totally unsafe to run software downloaded from a wiki in this way. I could have put all manner of evil in it. So read it first. --[[User:65.75.18.227|65.75.18.227]] 00:59, 16 December 2007 (EST) |
|||
The script: [[Installing Debian as an upgrade/script]] |
|||
==Step 1: Create debian bootstrap== |
|||
From an existing debian system, as root (fakeroot won't work, sadly): |
|||
# apt-get install debootstrap |
|||
# mkdir mnt |
|||
# debootstrap --include=udev,wireless-tools etch mnt http://http.us.debian.org/debian/ |
|||
Wait awhile. Eventually, you'll have a complete debian bootstrap system in mnt. |
|||
# tar -C mnt -czf xo-debian.tgz . |
|||
# /bin/rm -rf mnt |
|||
If you don't have a debian system, download a prebuilt xo-debian.tgz [http://dev.laptop.org/~cscott/xo-debian.tgz here]. |
|||
Put xo-debian.tgz on a usb key. |
|||
==Step 2: Install debian bootstrap== |
|||
From the XO, log in as root on console. Insert usb key. |
|||
# cd /versions/pristine |
|||
# mkdir debian ; cd debian |
|||
# tar xzf /media/*/xo-debian.tgz |
|||
# cp /etc/{hosts,fstab} /versions/pristine/debian/etc/ |
|||
# cp -r /lib/modules/* /versions/pristine/debian/lib/modules |
|||
# cp -r /lib/firmware/* /versions/pristine/debian/lib/firmware |
|||
# mkdir -p /versions/pristine/debian/{versions,security,var/cache/apt/cache} |
|||
# rm -rf /versions/pristine/debian/boot |
|||
# cp -r /boot /versions/pristine/debian |
|||
Add a new file /versions/pristine/debian/etc/rcS.d/S00unfreeze.sh: |
|||
#! /bin/sh |
|||
mount -t sysfs /sys /sys |
|||
echo 0 > /sys/devices/platform/dcon/freeze |
|||
umount /sys |
|||
and ensure that it is executable |
|||
# chmod a+rx /versions/pristine/debian/etc/rcS.d/S00unfreeze.sh |
|||
You also need to use the fix at [http://osdir.com/ml/linux.debian.devel.handheld/2005-12/msg00003.html] to make apt work. Use vi or nano to edit files. The fix from the link is quoted below, with some edits and paths adjusted appropriately: |
|||
:Note: to get around the apt-get jffs2/mmap [http://lists.debian.org/debian-handheld/2003/03/msg00000.html issue], I added the following line to /versions/pristine/debian/etc/fstab: |
|||
tmpfs /var/cache/apt/cache tmpfs defaults 0 0 |
|||
:and created /versions/pristine/debian/etc/apt/apt.conf.d/00-tmpfs-cache with: |
|||
Dir { |
|||
Cache "var/cache/apt/" { |
|||
srcpkgcache "cache/srcpkgcache.bin"; |
|||
pkgcache "cache/pkgcache.bin"; |
|||
}; |
|||
}; |
|||
:Not exactly ideal, but it works for me. It will take apt a little while to rebuild the cache after you reboot, of course. I think you could achieve persistence by copying the files to/from the tmpfs either in startup/shutdown scripts, or maybe pre-/post-invocation hooks in apt (which might have the added benefit of being able to mount/unmount the tmpfs on demand). |
|||
Make this the new alternate OS! |
|||
# cd /versions/boot |
|||
# rm -rf alt |
|||
# ln -s /versions/pristine/debian alt |
|||
# cp -rl /versions/pristine/debian /versions/run/debian |
|||
# /usr/sbin/setattr -R --iunlink /versions/run/debian |
|||
==Step 3: Boot into Debian!== |
|||
Shutdown your XO, then take out your usb key. As documented at [[Cheat codes]], reboot while holding down the 'O' key to switch to the alternate OS (debian!). Reboot again with 'O' pressed down to switch back later. |
|||
==Step 4: Start networking== |
|||
Just use ifconfig if you've got a supported wired ethernet adapter. To connect to an access point: |
|||
# modprobe usb8xxx |
|||
# iwconfig eth0 essid <your-access-point> |
|||
# dhclient eth0 |
|||
(The modprobe command is unnecessary if udev did it's job. You might look at the output to 'lsmod' to check that it's loaded.) |
|||
==Step 5: Install fun stuff== |
|||
For example: |
|||
# apt-get update |
|||
# apt-get install emacs |
|||
(aptitude will pull in 'suggests' dependencies, which will bloat your system. use apt-get instead.) |
|||
# apt-get install gnome-terminal gdm xserver-xorg-video-fbdev xorg metacity xterm gnome-core |
|||
(Don't worry too much about the xserver config -- just take the defaults, we'll fix it in a second.) |
|||
# apt-get remove xfonts-75dpi xserver-xorg-input-wacom |
|||
Now download [http://dev.laptop.org/~cscott/xorg.conf] and copy it to /etc/X11/xorg.conf. |
|||
You'll probably want to use 'adduser' to add a user to the system, too. The 'olpc' user will be handy: |
|||
# addgroup --gid 500 olpc |
|||
# adduser --uid 500 --gid 500 olpc |
|||
Reboot and voila! Graphical goodness. |
|||
==Links== |
|||
* See also [[Sugar on Debian]] |
|||
[[category:software]] |