NASIL AMD64'de 32Bit Chroot
From Lapis Wiki
Bu makale bir Taslak tır. İçeriğini geliştirerek Lapis-Wiki'ye yardımcı olabilirsiniz.
Konu başlıkları |
Giriş
Amd64 işlemcide kurulmuş 64 bitlik bir sistemde bazı programlar sorun çıkarıyor. Her ne kadar bu sorunlar hızlı bir şekilde giderilsede. Örnek olarak flash uygulaması. Birçok site gereğinden çok fazla flash uygulamasına yer veriyor ve 64 bitlik bir sistemde bunları görüntüleyememek sinir bozuyor. Gentoo altında 32Bit bir kullanıcı oluşturup o kullanıcıyla firefox açarsanız bu sorunu bir ölçüde atlatıyorsunuz.
Kurulum
/mnt dizini altında bir dizin oluşturalım ve dizine girelim.
mkdir /mnt/gentoo32 cd /mnt/gentoo32
Şimdi x86 stage3 indirelim. Dikkat edin x86 indiriyoruz x86_64 yada amd64 değil.
wget -c http://distfiles.gentoo.org/releases/x86/2006.1/stages/stage3-i686-2006.1.tar.bz2
ve açalım
tar -xvjpf stage3-i686-2006.1.tar.bz2
resolv.conf ve /etc/passwd dosyalarını kopyalayalım.
cp -L /etc/resolv.conf /mnt/gentoo32/etc/ cp -L /etc/passwd /mnt/gentoo32/etc/
/mnt/gentoo32/etc/make.conf dosyasını düzenleyelim.
CFLAGS="-O2 -march=athlon-xp -msse2 -pipe -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
CXXFLAGS="${CFLAGS}"
MAKEOPTS="-j2" # dual core ise j3
Sistemimizdeki bir kaç dizini yeni dizinimize bağlayalım.
mount -o bind /dev /mnt/gentoo32/dev mount -o bind /dev/pts /mnt/gentoo32/dev/pts mount -o bind /dev/shm /mnt/gentoo32/dev/shm mount -o bind /proc /mnt/gentoo32/proc mount -o bind /proc/bus/usb /mnt/gentoo32/proc/bus/usb mount -o bind /sys /mnt/gentoo32/sys
Yeni dizinimizde portage dizini oluşturup sistemimizdeki portage dizinine bağlayalım.
mkdir -p /mnt/gentoo32/usr/portage/ mount -o bind /usr/portage /mnt/gentoo32/usr/portage/
32 Bit uygulamalar X ortamında çalışacaksa tmp dizininide bağlamamız gerekiyor.
mount -o bind /tmp /mnt/gentoo32/tmp
Aşağıdaki scripti hazırlayıp rc-uptade ile açılış servislerine ekleyelim.
nano -w /etc/init.d/gentoo32
Aşağıdakileri girelim.
#!/sbin/runscript
depend() {
need localmount
need bootmisc
}
start() {
ebegin "Mounting 32bits chroot dirs"
mount -o bind /dev /mnt/gentoo32/dev >/dev/null
mount -o bind /dev/pts /mnt/gentoo32/dev/pts >/dev/null &
mount -o bind /dev/shm /mnt/gentoo32/dev/shm >/dev/null &
mount -o bind /proc /mnt/gentoo32/proc >/dev/null
mount -o bind /proc/bus/usb /mnt/gentoo32/proc/bus/usb >/dev/null &
mount -o bind /sys /mnt/gentoo32/sys >/dev/null &
mount -o bind /tmp /mnt/gentoo32/tmp >/dev/null &
mount -o bind /usr/portage /mnt/gentoo32/usr/portage/ >/dev/null &
eend $? "An error occured while attempting to mount 32bit chroot directories"
ebegin "Copying 32bits chroot files"
cp -pf /etc/resolv.conf /mnt/gentoo32/etc >/dev/null &
cp -pf /etc/passwd /mnt/gentoo32/etc >/dev/null &
cp -pf /etc/shadow /mnt/gentoo32/etc >/dev/null &
cp -pf /etc/group /mnt/gentoo32/etc >/dev/null &
cp -pf /etc/hosts /mnt/gentoo32/etc > /dev/null &
cp -Ppf /etc/localtime /mnt/gentoo32/etc >/dev/null &
eend $? "An error occured while attempting to copy 32 bits chroot files."
}
stop() {
ebegin "Unmounting 32bits chroot dirs"
umount -f /mnt/gentoo32/dev/pts >/dev/null
umount -f /mnt/gentoo32/dev/shm >/dev/null
umount -f /mnt/gentoo32/dev >/dev/null &
umount -f /mnt/gentoo32/proc/bus/usb >/dev/null
umount -f /mnt/gentoo32/proc >/dev/null &
umount -f /mnt/gentoo32/sys >/dev/null &
umount -f /mnt/gentoo32/tmp >/dev/null &
umount -f /mnt/gentoo32/usr/portage/ >/dev/null &
eend $? "An error occured while attempting to unmount 32bits chroot directories"
}
Açılış servislerine ekleyelim.
rc-update add gentoo32 default
Şimdi yeni sistemimize chroot olabiliriz.
emerge setarch # eğer kurulu değilse linux32 chroot /mnt/gentoo32 /bin/bash
Artık yeni 32Bit ortamdayız. Şimdi sistemi güncelleyelim..
source /etc/profile env-update emerge -au world
Bir kaç paket kurulacak.
Uygulama Kurma ve Çalıştırma
İhtiyacınız olan uygulamayı kurun.
linux32 chroot /mnt/gentoo32 /bin/bash env-uptade source /etc/profile emerge -av hedehödö
Ve çalıştırın
firefox
Dahili Bağlantılar
