Thursday, September 15, 2005

나의 Gentoo linux 설치기

왜 Gentoo? 내가 가진 hardware(그래봤자 notebook안에 다 있는거)에 있는 기능들을 제대로 쓰려니 gentoo 밖에는 없어서..

Model: Dell Inspiron 8100 (Notebook)
CPU: Intel Pentium III
HDD: 13Gb
Video: nvidia
Network: eepro100
Sound: maestro3
LCD: 1600x1200 (don't know about hz)
Touchpad: Synaptics
Additional Wireless Network Card: linksys WPC54G (PCMCIA)

Gentoo version: 2005.0

참고 websites:
http://www.gentoo.org/doc/en/handbook/index.xml
http://www.gentoo.org/doc/ko/gentoo-x86-quickinstall.xml
http://www.gentoo.or.kr/wiki/moin.cgi/Install_25by_25neoesraph

1. Boot with gentoo "minimal installation CD".

2. 젠투 핸드북을 참조해서 paritition & formatting & mounting 까지 끝냄:

boot: hda1 (ext2)
swap: hda2
root: hda3 (reiserfs - 빠르다길래)

한 김에 그 뒤에 나오는 date/time도 set하는 것 까지 끝냄.

3. Stage3 tarball, portage 다운 받음:

# cd /mnt/gentoo
# links2 http://www.gentoo.org/main/en/mirrors.xml

releases/x86/2005.0/stages 에서 pentium3로 같 다음에
stage3-pentium3-2005.0.tar.bz2를 다운 받은 다음에
같은 사이트의
snapshots/ 에 들어 가서 portage 제일 밑에 있는 거 (*.bz2만 필요) 다운 받음

그 다음에
# tar -xvjpf stage3-*.tar.bz2
# tar -xvjpf /mnt/gentoo/portage*.tar.bz2 -C /mnt/gentoo/usr

필요하면 (tarball 다운 받을 때 제일 빨리 다운되는 site를 찾은 경우)
# mirrorselect -i -o >> /mnt/gentoo/etc/make.conf

4. Chrooting & setup

# cp -L /etc/resolv.conf /mnt/gentoo/etc/resolv.conf
# mount -t proc none /mnt/gentoo/proc
# chroot /mnt/gentoo /bin/bash
# env-update
* Caching service dependencies...
# source /etc/profile
# emerge --sync

맨 마지막 거 약간 시간 걸림.

고민 끝에 KDE를 안 쓰고 GNOME을 쓰기로 결정.
/etc/make.profile에서 맨 뒤에
USE="gnome gtk -kde -qt"

5. Configuring & Compiling the Kernel

Since I live in California,
# ln -sf /usr/share/zoneinfo/PST8PDT /etc/localtime

# emerge gentoo-sources
# cd /usr/src/linux
# make menuconfig

Options needed for my config:

Processor type and features -> Processor family: Pentium III/...
File systems -> Reiserfs support
File systems -> Kernel automounter version 4 support (also supports v3)
File systems -> Samba
Device Drivers -> Networking -> Wireless support
network card: eepro100
sound card: ESS maestro3 => you need to set it to module "M" instead of "*".

Turn off: Kernel hacking -> Use 4Kb for kernel stacks instead of 8Kb

In case, I need to use modem:
Device Drivers->Networking Support->PPP support: "M".
마찬가지로 그 밑의 PPP support for async serial ports, PPP support for sync tty ports 도 "M"으로..

For battery power monitor application: check APM

For Touchpad (see the touchpad section for more details):
Device Drivers -> Input device support -> Mouse interface -> Event interface: "M"

To USB input device/camera:
cf. http://www.gentoo.org/doc/en/usb-guide.xml
Device Drivers -> SCSI device support -> SCSI disk support
USB support
-> Support for Host-side USB
-> USB device filesystem
-> UHCI HCD (most Intel and VIA) support (see "Help" if you have different USB controller)
-> USB Printer support
-> USB Mass Storage support
-> USB Mass Storage Write-Protected Media Detection (EXPERIMENTAL)
-> USB Human Interface Device (full HID) support
-> HID input layer support

Then,

# make && make modules_install
# cp arch/i386/boot/bzImage /boot/kernel-2.6.11-gentoo-r3
# cp System.map /boot/System.map-2.6.11-gentoo-r3
# cp .config /boot/config-2.6.11-gentoo-r3

6. Installing Separate Kernel Modules

# emerge nvidia-kernel

7. /etc/fstab

BOOT를 hda1로, SWAP을 hda2로, ROOT를 hda3으로 바꿔 줌.
나머지는 똑같음.

8. Networking

# echo zu > /etc/hostname
# echo berkeley.edu > /etc/dnsdomainname
# rc-update add domainname default

DHCP를 쓰니까: /etc/conf.d/net에서
#iface_eth0="192...."
iface_eth0="dhcp"

맨 뒤에
sshd

# rc-update add net.eth0 default
# USE="-X" emerge pcmcia-cs
# rc-update add pcmcia default

To set root password:
# passwd

9. Installing Necessary System Tools

# emerge syslog-ng
# rc-update add syslog-ng default

# emerge vixie-cron
# rc-update add vixie-cron default

Reiserfs를 쓰니까
# emerge reiserfsprogs

# emerge dhcpcd

10. Confriguring the Bootloader

grub은 이상하게 잘 안 될 때가 있어서 lilo 사용 (이쁘지는 않지만):

# emerge --usepkg lilo

/etc/lilo.conf 에서:

boot=/dev/hda # Install LILO in the MBR
prompt # Give the user the chance to select another section
timeout=10 # Wait 1 (one) seconds before booting the default section
default=gentoo # When the timeout has passed, boot the "gentoo" section

image=/boot/kernel-2.6.11-gentoo-r3
label=gentoo # Name we give to this section
read-only # Start with a read-only root. Do not alter!
root=/dev/hda3 # Location of the root filesystem

# /sbin/lilo

11. Rebooting the System

# exit
cdimage ~# cd
cdimage ~# umount /mnt/gentoo/boot /mnt/gentoo/proc /mnt/gentoo
cdimage ~# reboot

12. Finalizing your Gentoo Installation

# useradd -m -G users,wheel,audio,cdrom -s /bin/bash zuwhan
# passwd zuwhan

13. Installing Graphic Environment

# emerge gnome
Takes longest time. 정말 오래 걸림. 자기 전에 할 것.

/etc/rc.conf에서:
DISPLAYMANAGER="gdm" // 중간쯤
XSESSION="Gnome" // 가장 밑

# rc-update add xdm default

Somehow "emerge gnome" doesn't install this but GNOME complains about it (it took about 15~20 minues for me to get this):
# emerge xscreensaver

한글 입력기
# emerge nabi

Seeting up X11.org:

# cd /etc/X11
# xorgconfig

Select PS/2 mouse on /dev/psaux
NVIDIA GeForce (349), 32768K

See if it successes:
# startx

14. "The super sensitive touchpad"

You need to install a touchpad driver. Touchpad works without it but in an annoying sensitive way.

cf. http://gentoo-wiki.com/HARDWARE_Synaptics_Touchpad

Make sure to set "Event interface" module in kernel configuration.

# echo "evdev" >> /etc/modules.autoload.d/kernel-2.6
# emerge synaptics

Modify /etc/X11/xorg.conf:

Section "Module"
...
Load "synaptics"

...

Section "ServerLayout"
...
InputDevice "Touchpad"
InputDevice "Mouse1" "CorePointer"
...


Also in that file go to your old Mouse InputDevice settings and setting the Protocol to auto and Device to:

/dev/input/mice


Finally, add:

Section "InputDevice"
Identifier "Touchpad"
Driver "synaptics"
Option "SendCoreEvents"
Option "Device" "/dev/input/event1"
Option "Protocol" "event"
# Next line required only if you want to disable the mousepad while typing:
Option "SHMConfig" "on"
# The rest of the options are NOT required, just a default similar to the Windows drivers with non of the extra features.
Option "LeftEdge" "1900"
Option "RightEdge" "5400"
Option "TopEdge" "1400"
Option "BottomEdge" "4500"
Option "FingerLow" "25"
Option "FingerHigh" "30"
Option "MaxTapTime" "180"
Option "MaxTapMove" "220"
Option "VertScrollDelta" "100"
Option "MinSpeed" "0.02"
Option "MaxSpeed" "0.18"
Option "AccelFactor" "0.0010"
EndSection

You may need to change "/dev/input/event1" part depending on your hardware. See the above wiki link.

15. Configuring Sound Card

cf. http://www.gentoo.org/doc/en/alsa-guide.xml

Verify if audio card is detected:
# emerge lspci
# lspci | grep -i audio

Modify /etc/make.conf:
ALSA_CARDS="maestro3"
add "oss" to the USE flag

# emerge alsa-driver; emerge alsa-oss; emerge alsa-utils

Modify /etc/modules.d/alsa:
cf. http://www.alsa-project.org/alsa-doc/doc-php/template.php?company=ESS+Technology&card=.&chip=ES1988+%28Maestro3%29%2C+ES1989+%28Maestro3E%29%2C+ES1990+%28Canyon3D-2LE%29%2C+ES1992+%28Canyon3D-2%29%2C+ES1998%2C+ES1999%2C+ES199A%2C+ES199B&module=maestro3

alias snd-card-0 snd-maestro3
alias sound-slot-0 snd-card-0

Put maestro module to autoload.d:
# echo "snd-maestro3" >> /etc/modules.autoload.d/kernel-2.6

16. Installing Other Useful Programs

You want to do it all at once (for example, emerge mozilla-firefox; emerge mozilla-thunderbird; emerge vim; ...; emerge wireless-tools; emerge ndiswrapper) and go to bed.

Web browser (you may want to do this first)
# emerge mozilla-firefox

E-mail client
# emerge mozilla-thunderbird

VI
# emerge vim

Media Player
# emerge beep-media-player

Open Office (this took over 5 hours)
# emerge openoffice

SSH setup
# ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
# ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
Add a line to /etc/conf.d/net (at the end):
/usr/sbin/sshd

Battery Monitor
# emerge apmd
# emerge acpid
# rc-update add acpid default

17. Linksys wireless network card & wireless network setup

cf. http://forums.gentoo.org/viewtopic.php?t=125627
Put linksys installation CD rom.

# emerge wireless-tools
# emerge ndiswrapper
# mkdir /lib/windrivers
# cp /mnt/cdrom/lsbcmnds.inf /lib/windrivers
# cp /mnt/cdrom/bcmwl5.sys /lib/windrivers
# ndiswrapper -i /lib/windirvers/lsbcmnds.inf

Check if network driver is installed:
# ndiswrapper -l

# modprobe ndiswrapper
# echo "ndiswrapper" >> /etc/modules.autoload.d/kernel-2.6

I use wireless-tools because it is easier to use:
cf. http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=4&chap=4

Choose wireless over wired (it's easier to make this a script file and running it than hard-wire it in /etc/rc.d):
# iwconfig wlan0 essid [ESSID]
# ifconfig eth0 down
# ifconfig wlan0 up
# dhcpcd wlan0

Or, to permanently setup a wireless network:
# cd /etc/init.d
# ln -s net.eth0 net.wlan0
# rc-update del net.eth0
# rc-update add net.wlan0 default

To change running essid:
# dhcpcd -k wlan0
# ifconfig wlan0 down
# iwconfig wlan0 essid [new ESSID]
# ifconfig wlan0 up
# dhcpcd wlan0

To see available essids:
# iwlist wlan0 scan

18. USB (Memory Stick / Digital Camera)

cf. http://www.gentoo.org/doc/en/usb-guide.xml
cf. http://gentoo-wiki.com/HOWTO_Install_a_digital_camera

See kernel config first.
# emerge udev hotplug

This is all you need and you may now skip to the next section.
The below talks about creating a cool (?) "/dev/usbstorage" link instead of using "/dev/sda1"

# udevinfo -a -p filename | less ([filename] can be
/sys/class/usb/lp0 or /sys/class/scsi_host/host0)

...
BUS="usb"
ID = "1-1"
...
SYSFS{bDeviceClass}="00"
...
SYSFS{manufacturer}="PENTAX"
...
...

By repeating it with multiple devices, I found that bDeviceClass "00" meant a storage device.

# nano -w /etc/udev/rules.d/50-udev.rules
...
BUS=="usb", SYSFS{bDeviceClass}=="00", NAME="usb/%k", SYMLINK="usbstorage%n"
...

Old hotplug uses "=" instead of "==". You need to add that line BEFORE the following line (if there is any):
KERNEL=="sd*", NAME=="%k", GROUP="disk"

19. Automount/Samba

cf. http://gentoo-wiki.com/HOWTO_Auto_mount_filesystems_(AUTOFS)

# emerge samba
# emerge autofs
# mkdir /mnt/auto

Modify /etc/autofs/auto.master:
/mnt/auto /etc/autofs/auto.auto --timeout=60

Modify /etc/autofs/auto.auto:
cdrom -fstype=iso9660,ro :/dev/cdrom
shared -fstype=smbfs,username=guest,password=,dmask=0777,fmask=0666 ://192.168.0.100/SharedDocs
usb -dmask=0,fmask=0 :/dev/sda1

You can replace /dev/sda1 with /dev/usbstorage1 if you followed my instruction on the udev rules (prev section).

# /etc/init.d/autofs start
# rc-update add autofs default

# ln -s /mnt/auto/cdrom /cdrom
# ln -s /mnt/auto/shared /shared
# ln -s /mnt/auto/usb /usb

Somehow I cannot make computer name stuff work for samba. I had to use an IP address - "192.168.0.100".

20. Installing Fonts

볼드패치

http://usr.gentoo.or.kr/ 의 "팁모음" 가보면 볼드패치들이 많이 올라와 있어요. 가장 최신에 올라온 걸 사용해야겠죠?

전 667번 글에 나와 있는대로
http://caramis.net/gentoo/firefly_bold_caramis.patch
http://caramis.net/gentoo/xorg-x11-6.8.0-r1.ebuild
를 다운 받아서
# cp xorg-x11-6.8.0-r1.ebuild /usr/portage/x11-base/xorg-x11/
# cp firefly_bold_caramis.patch /usr/portage/x11-base/xorg-x11/files
# cd /usr/portage/x11-base/xorg-x11/
# ebuild xorg-x11-6.8.0-r1.ebuild digest
# emerge xorg-x11-6.8.0-r1.ebuild
열나 오래 걸림. -_-;;
이거 인스톨 하면 폰트 설치해 놓은 거 다 없어 집니다. -_-;;

293번 글을 참조해서 /etc/fonts/local.conf 에 내용을 추가.

cf. http://www.gentoo.or.kr/wiki/moin.cgi/GulimBatangFonts
Also see
http://vigna.dsi.unimi.it/webFonts4Linux/
for simple way to use basic ms fonts

C:\WINDOWS\Fonts에서 gulim.ttc, batang.ttc랑 또 다른 필요한 폰트들을 다 copy합니다.
단, ARIALUNI.TTF는 copy하지 마세요!!
전 모든 폰트를 통째로 복사해 버리고 ARIALUNI.TTF만 지웠습니다.

# mkdir /usr/share/fonts/TTF/ms-fonts
# cp gulim.ttc batang.ttc /usr/share/fonts/TTF/ms-fonts

# cd /usr/share/fonts/TTF/ms-fonts
# mkfontscale
# ttmkfdir
# mkfontdir

For GNOME applications:
# fc-cache

Modify /etc/X11/xorg.conf:

#Load "freetype"
Load "xtt"
...
Section "Files"
..
FontPath "/usr/share/fonts/TTF/ms-fonts/"
...

21. Printer Setup

cf. http://www.gentoo.org/doc/en/printing-howto.xml

I have a Samsung ML-1210.
- Downloaded printer driver from Samsung homepage.
- Use above guide to emerge basic programs (cups)
- start cupsd
# /etc/init.d/cupsd start
- Install Samsung driver

# emerge gnome-print
# gnome-cups-manager

If gnome-cups-manager doesn't work well (it crashes often), use "linux-config".

2 Comments:

Blogger unixlinux said...

Nice KDE rlated blog. Visit my control kde blog.

6:41 AM  
Blogger Infactahost.com said...

Hey, you have a great blog here! I'm definitely going to bookmark you!

I have a directory php script site/blog. It pretty much covers directory php script related stuff.

Come and check it out if you get time :-)

11:32 PM  

Post a Comment

<< Home