BuildKernelWithChroot

Revision 15 as of 2009-06-22 06:02:45

Clear message

Summary

This wiki page is the step-by-step document for build the environment of chroot for build kernel image

Install necessary package on host

host# sudo apt-get install schroot debootstrap

Where the root of chroot is

host# sudo mkdir /var/chroot

Modify the schroot config file

host# sudo vi /etc/schroot/schroot.conf
Append the following context

[hardy-lpia]
description=Ubuntu hardy lpia 32 bit
location=/var/chroot/hardy-lpia
priority=3
users=<your_userid_on_your_host>
groups=sbuild
root-groups=root
personality=linux32

Install basic package into chroot environment

host# sudo debootstrap --variant=buildd --arch lpia hardy /var/chroot/hardy-lpia http://ports.ubuntu.com/
host# sudo cp /etc/resolv.conf /var/chroot/hardy-lpia/etc/resolv.conf
host# sudo vi /var/chroot/hardy-lpia/etc/apt/sources.list
Remove everything and add following line

deb http://ports.ubuntu.com hardy main restricted multiverse universe
deb-src http://ports.ubuntu.com hardy main restricted multiverse universe

Now you can chroot in and install more package

host# sudo chroot /var/chroot/hardy-lpia
root@chroot# apt-get install gnupg; apt-get update
root@chroot# apt-get install wget debconf devscripts nano vim debhelper locales sudo kernel-wedge
root@chroot# locale-gen en_US.UTF-8
root@chroot# tzselect
root@chroot# exit

Bind several directory with chroot and host

host# sudo vi /etc/fstab
Append the following lines
Take care it will bind /home between your host and chroot environment
If you want to remove chroot environment, *umount them first*

#
# Hardy-lpia
#
/home           /var/chroot/hardy-lpia/home        none    bind            0       0
/tmp            /var/chroot/hardy-lpia/tmp         none    bind            0       0
/dev            /var/chroot/hardy-lpia/dev         none    bind            0       0
proc-chroot     /var/chroot/hardy-lpia/proc        proc    defaults        0       0
devpts-chroot   /var/chroot/hardy-lpia/dev/pts     devpts  defaults        0       0

host# sudo mount -a

Setup userid/password in chroot

host# sudo cp /etc/passwd /var/chroot/hardy-lpia/etc/
host# sudo sed 's/\([^:]*\):[^:]*:/\1:*:/' /etc/shadow | sudo tee /var/chroot/hardy-lpia/etc/shadow
host# sudo cp /etc/group /var/chroot/hardy-lpia/etc/
host# sudo cp /etc/hosts /var/chroot/hardy-lpia/etc/
host# sudo cp /etc/sudoers /var/chroot/hardy-lpia/etc/
host# sudo chroot /var/chroot/hardy-lpia/
chroot# dpkg-reconfigure passwd
chroot# passwd <your_userid_on_your_host>
chroot# echo hardy-lpia > /etc/debian_chroot
chroot# exit

Setup final information for dchroot.conf

host# sudo vi /etc/dchroot.conf
Append with the following content

hardy-lpia /var/chroot/hardy-lpia/

Congratulations, everything is done

host# dchroot -c hardy-lpia -d
your shall prompt shall be something like this

(hardy-lpia)ikepanhc@laptop:~$