NASIL AMD64'de 32Bit Chroot

From Lapis Wiki

Jump to: navigation, search

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

Lapis Forum Başlığı


Harici Bağlantılar

Gentoo Dökümantasyon Sayfası Amd64 Gentoo Wiki Sayfası