BuildKernelWithChroot
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 dchroot
Where the root of chroot is
host# sudo mkdir /var/chroot
Before you start
There is an easy script that can do whole things that have to be done at host side that describe as below section. You can download this script and give it a try create_chroot.sh It should be run with root privilage.
$ ./create_chroot.sh Usage: ./create_chroot.sh name corename arch location ex. ./create_chroot.sh hardy-lpia hardy lpia /var/chroot/hardy-lpia
$ sudo ./create_chroot.sh jaunty-lpia jaunty lpia /var/chroot/jaunty-lpia I: Retrieving Release I: Retrieving Packages I: Validating Packages I: Resolving dependencies of required packages... I: Resolving dependencies of base packages... ... postfix:*:14424:0:99999:7::: statd:*:14425:0:99999:7::: NOTE. there are three local files will be modified, they are /etc/schroot/schroot.conf /etc/fstab /etc/dchroot.conf please check the modification isn't mixed up the files and you can find the backup files in the /tmp. Done. You can try to use the new chroot by sudo chroot /var/chroot/jaunty-lpia or dchroot -c jaunty-lpia -d Enjoy.
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 dialog nano vim debhelper locales sudo kernel-wedge fakeroot
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:~$
KernelTeam/BuildKernelWithChroot (last edited 2009-11-11 07:58:25 by 210)