· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Gentoo Laptop


1. GentooLaptop

Á¨Åõ ¸®´ª½º ³ëÆ®ºÏ»ç¿ëÀÚ¿¡°Ô Æí¸®ÇÒ ¸¸ÇÑ ¼³Á¤ ¸ðÀ½. - ¼ÛÈ¿Áø

2. Packages

  • USE ¸¦ ¹Ýµå½Ã º¸ÀÚ. nvidia, nforce2 µîÀÌ ÀÖ´Ù.
emerge acpi acpid acpitool cpufreqd cpufrequtils laptop-mode-tools hibernate-script
  • xfce4 ¿ë °¢Á¾ ¸ð´ÏÅ͸µ µµ±¸. ¾ø¾îµµ »ó°ü¾øÁö¸¸ ÇÏ´Ü¿¡ ÁÂ¾Ç ´Ã¾î³õÀ¸¸é ¸ÚÀÖ´Ù.
emerge xfce4-battery xfce4-cpu-freq xfce4-cpugraph xfce4-netload xfce4-sensors xfce4-systemload xfce4-wavelan

3. init.d

rc-update add acpid default
rc-update add cpufreqd default
rc-update add cpufrequtils default
rc-update add lm_sensors default
rc-update add laptop_mode default

4. ACPI

  • /etc/acpi/default.sh ÀÏ´Ü default.sh ¿¡¼­´Â ´Ù »«´Ù.
  • acpilog ÀÇ ÁÖ¼®À» Ç®°í ÀÌ°ÍÀú°Í ´­·¯º¸¸é /acpilog.txt ¿¡ ·Î±×°¡ ½×ÀδÙ. ±×°É º¸°í ½ºÅ©¸³Æ® µî·ÏÇÏ¸é µÈ´Ù.
# /etc/acpi/default.sh
# Default acpi script that takes an entry for all actions

set $*
#echo $* >> /acpilog.txt

group=${1%%/*}
action=${1#*/}
device=$2
id=$3
value=$4
  • /etc/acpi/events/default ¸¦ Á¦¿ÜÇÏ°í ¸ðµÎ ³¯¸° ÈÄ ¾Æ·¡°ÍÀ¸·Î ´ëüÇÏÀÚ.
  • ÀÌ ÆÄÀÏÀÌ ¼öÁ¤µÇ¸é /etc/init.d/acpid ¸¦ restart ÇØ¾ß ÇÑ´Ù.
  • lm_ac_adapter
event=ac_adapter
action=/etc/acpi/actions/lm_ac_adapter.sh %e
  • lm_battery
event=battery.*
action=/etc/acpi/actions/lm_battery.sh %e
  • lm_lid
event=button[ /]lid
action=/etc/acpi/actions/lm_lid.sh %e
  • lm_power
event=button[ /]power
action=/etc/acpi/actions/lm_power.sh %e
  • lm_sleep
event=button[ /]sleep
action=/etc/acpi/actions/lm_sleep.sh %e
  • /etc/acpi/actions/ µµ ´Ù ³¯·Á¹ö¸° ÈÄ ¾Æ·¡°ÍÀ¸·Î ´ëüÇÏÀÚ. ¿©±â´Â x ±ÇÇÑÀÌ ÇÊ¿äÇÏ´Ù.
  • lm_ac_adapter.sh, lm_battery.sh (cpufreq °¡ ´ã´çÇÏ´Ï ¾Æ¹«°Íµµ ¾ÈÇÑ´Ù.)

  • net.sh, netstart.sh ´Â ¾Æ·¡¿¡ ¼³¸íÇÑ´Ù.
  • lm_lid.sh (¶Ñ²±µ¤±â), lm_power.sh (Àü¿ø¹öÆ°)
/usr/local/bin/net.sh
hibernate-ram
/usr/local/bin/netstart.sh
  • lm_sleep.sh (xnote p300 ÀÇ °æ¿ì fn+f4 °¡ °ø½Ä(?)¼ö¸é¸ðµå Å°Àε¥ ¶Ñ²±°ú,Àü¿ø¿¡ ÇÒ´çÇÏ¿´À¸¹Ç·Î ±×³É È­¸éÀ» ÃÖ´ëÇÑ ¾îµÓ°Ô Çϴ°ɷΠ¼³Á¤ÇÏ¿´´Ù. ÀÚ¸®¸¦ ¿À·¡ ¶ã ¶§ ¾´´Ù. ´ëºÎºÐÀÇ ACPI À̺¥Æ®´Â 16Áø¼ö·Î Ä«¿îÆ® µÈ´Ù. µû¶ó¼­ ¾Æ·¡¿Í °°ÀÌ Çϸé ÀûÀýÈ÷ Åä±ÛµÇ°Ô µ¿ÀÛ½Ãų ¼ö ÀÖ´Ù.)
case "$*" in
	*[13579bdf])
		echo 1 > /proc/acpi/video/EGFX/LCD0/brightness
		;;
	*[02468ace])
		echo 7 > /proc/acpi/video/EGFX/LCD0/brightness
		;;
esac

5. cpufreq

  • ACÀü¿ø, ¹èÅ͸® ¸ðµå µî¿¡ ´Éµ¿ÀûÀ¸·Î ¹ÝÀÀÇÏ´Â ½ºÅ©¸³Æ®´Ù. ¾È°Çµå·Áµµ ±âº»°ªÀÌ ²Ï Àß µÇ¾îÀÖÁö¸¸, LCD ¹à±âÁ¶ÀýÀ» °É¾î³õÀ¸¸é ´õ ÁÁ´Ù.
  • /etc/cpufreqd.conf ÀÇ Rule ÂÊ ºÎºÐÀÇ exec_post ¿¡ ÀûÀýÈ÷ ½ºÅ©¸³Æ®¸¦ °É¸é µÈ´Ù.
  • ¿¹Á¦¿¡´Â ¼Ò´Ï /proc/acpi/sony/brightness °¡ °É·ÁÀÖ°í, xnote p300 (nvidia 8400M GS) Àº /proc/acpi/video/EGFX/LCD0/brightness ÀÌ´Ù. find /proc/acpi -name brightness ÇÏ¸é ½±°Ô ãÀ» ¼ö ÀÖ´Ù.
  • ³ª´Â AC 7, Battery High 5, Battery Medium 4, Battery Low 3 À¸·Î °É¾î³õ¾Ò´Ù.

6. net.sh

  • ¾î´À ¹èÆ÷ÆÇÀ̵ç Áý°ú ȸ»ç¸¦ ¿Ô´Ù°¬´Ù ÇÏ°í, À¯¼±°ú ¹«¼±À» ¿À°¡´Â »óȲ¿¡¼­ÀÇ ´Éµ¿ÀûÀÎ ´ëó°¡ µÇ´Â ½ºÅ©¸³Æ®¸¦ Á¦°øÇÏÁö´Â ¾Ê´Â°Í °°´Ù. ±×·¡¼­ ¸¸µé¾ú´Ù.
  • VirtualBox ¿ë bridge ¼³Á¤µµ ÇѲ¨¹ø¿¡ µÇ¹Ç·Î ÇÊ¿ä¾ø´Â ºÎºÐÀº Áö¿öÁÖ¸é µÈ´Ù.
  • ¹«¼± bridge ¿¡ ÇÊ¿äÇÑ parprouted ´Â layman gentoo-kr ¿¡ ¿Ã·Á³õ¾Ò°í bcrelay ´Â net-dialup/pptpd ¿¡ µé¾îÀÖ´Ù.
  • acpi ÀÇ ÀýÀü¸ðµå Á÷Àü¿¡ °É¾î³õ¾ÒÀ¸¹Ç·Î ÀýÀüµÇ±â Àü¿¡ ³×Æ®¿öÅ©¸¦ ²÷´Â´Ù.
  • »ç¿ë¹ý net.sh eth0, net.sh wlan0, net.sh (²÷±â)
  • /usr/local/bin/net.sh
killall -TERM dhcpcd
# for bridge start
killall -TERM parprouted
killall -TERM bcrelay
brctl delif br0 eth0
brctl delif br0 wlan0
brctl delif br0 wmaster0
brctl delif br0 tap0
brctl delif br0 tap1
# for bridge end
ifconfig eth0 0.0.0.0
ifconfig eth0 down
ifconfig wlan0 0.0.0.0
ifconfig wlan0 down
# for bridge start
ifconfig tap0 0.0.0.0
ifconfig tap1 0.0.0.0
ifconfig br0 down
brctl delbr br0
# for bridge end
rmmod iwlagn iwlcore # 4965 wireless ¾È¾µ¶§ ¸ðµâÁ¶Â÷ ³»·Á¹ö¸®¸é Àü¿ø¿¡ µµ¿ò Á» µÉ°Í°°´Ù. ±Ù°Å´Â ¾øÀ½.
/etc/init.d/iptables stop # for bridge

case "$1" in
	eth0)
		ifconfig eth0 up
# for bridge start
		brctl addbr br0
		brctl addif br0 eth0
		dhcpcd br0 -A
		brctl addif br0 tap0
		brctl addif br0 tap1
# for bridge end
# not bridge : dhcpcd eth0 -A
	;;
	wlan0)
		modprobe iwlagn # Àڽſ¡°Ô ¸Â´Â wireless ¸ðµâ
		ifconfig wlan0 up
		ESSIDS=`iwlist wlan0 scanning | grep ESSID | sed -e 's/\s*ESSID://g' -e 's/"//g'`
		KNOWNS="myessid companyessid iptime" # ¿©±â¿¡ ÀÚ½ÅÀÌ »ç¿ëÇÏ´Â essid ¸¦ Àû´Â´Ù.
		for ESS in $KNOWNS;
		do
			ESSID=`echo "$ESSIDS" | grep $ESS`
			if [[ "$ESSID" != "" ]]; then
				break
			fi
		done
		if [[ "$ESSID" == "" ]]; then
			ESSID=`echo "$ESSIDS" | head -n 1`
		fi
		iwconfig wlan0 essid $ESSID
		if [[ "$ESSID" == "companyessid" ]]; then
			# ¾ÏÈ£°¡ ÇÊ¿äÇϸé ÀÌ·¸°Ô ÇÏ¸é µÈ´Ù.
			iwconfig wlan0 key s:BF43425FC5B123
			iwconfig wlan0 essid companyessid
		fi
		echo $ESSID
		dhcpcd wlan0 -A
# for bridge start
		WLANIP=`ifconfig wlan0 | grep 'inet addr' | awk '{ print $2 }' | awk -F : '{ print $2 }' | awk -F . '{ print $1"."$2"."$3 }'`
		ifconfig tap0 $WLANIP.222 netmask 255.255.255.0
		ifconfig tap1 $WLANIP.223 netmask 255.255.255.0
		route del -net 192.168.0.0 netmask 255.255.255.0 tap0
		route del -net 192.168.0.0 netmask 255.255.255.0 tap1
		/etc/init.d/iptables start
		parprouted wlan0 tap0
		parprouted wlan0 tap1
		route add -net 192.168.0.0 netmask 255.255.255.0 tap0
		route add -net 192.168.0.0 netmask 255.255.255.0 tap1
		bcrelay -i tap0 -o wlan0 -d
		bcrelay -i tap1 -o wlan0 -d
# for bridge end
	;;
esac
  • ¹«¼±À¸·Î bridge ¸¦ »ç¿ëÇÑ´Ù¸é iptables ·ê Çϳª¸¦ Ãß°¡ÇÏÀÚ.
  • /etc/sysctl.conf ÀÇ net.ipv4.ip_forward = 1 ÁÖ¼®À» ÇØÁ¦ÇÏ°í
  • echo 1 > /proc/sys/net/ipv4/ip_forward
/etc/init.d/iptables start
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
/etc/init.d/iptables save
/etc/init.d/iptables stop

7. netstart.sh

  • Àü¿øÀ» ÄѰųª ÀýÀü¸ðµå¿¡¼­ ³ª¿Ã ¶§ À¯/¹«¼± ±¸º° ¾øÀÌ dhcp ½Ãµµ¸¦ ÇÏ¸é °ï¶õÇÒ°ÍÀÌ´Ù.
  • À¯¼±ÀÇ ¿¬°á¿©ºÎ ÆľÇÀ» À§ÇØ ethtool À» »ç¿ëÇÑ´Ù. ÀÌ´õ³Ý¼±À» »©¸é 10M Half °¡ µÇ°í ²ÈÀ¸¸é 100M Full ÀÌ µÇ´Â »óŸ¦ ÀÌ¿ëÇß´Ù. 10M Half ¸¦ ¾²´Â°÷Àº ¼³¸¶ ¾ø°ÚÁö.
  • À¯¼±ÀÌ ²ÈÇôÀÖ³ª È®ÀÎÇÑ ÈÄ Á¢¼ÓÇÏ°í, ¾È²ÈÇôÀְųª Á¢¼ÓÀÌ µÇÁö ¾ÊÀ¸¸é ¹«¼±À» ½ÃµµÇÑ ÈÄ ±×¸¶Àú ½ÇÆÐÇÏ¸é ¸ðµÎ Á¤ÁöÇÑ´Ù.
  • acpi À̺¥Æ®·Î °É¾î³õ¾ÒÀ¸¹Ç·Î ÀýÀü¸ðµå¿¡¼­ »ì¾Æ³¯ ¶§ ½ÇÇàµÉ °ÍÀÌ´Ù.
  • echo /usr/local/bin/netstart.sh > /etc/X11/xinit/xinitrc.d/80-net; chmod 755 /etc/X11/xinit/xinitrc.d/80-net Á¤µµ ÇØ ³õÀ¸¸é X ¶ã¶§ ½ÇÇàµÈ´Ù. /etc/conf.d/local ¿¡ ³õÀ¸¸é ±×¸¸Å­ Áö¿¬ÀÌ »ý±ä´Ù.
  • /usr/local/bin/netstart.sh
NET=/usr/local/bin/net.sh
ethstart () {
	STATE=`ethtool eth0 | grep Duplex | awk -F : '{ print $2 }'`
	if [[ "$STATE" == " Full" ]]; then
		$NET eth0
		STATE=`ifconfig br0 | grep 'inet addr' | awk '{ print $2 }' | awk -F : '{ print $2 }' | awk -F . '{ print $1"."$2 }'` # bridge ¾È¾²¸é br0 ´ë½Å eth0
		if [[ "$STATE" == "169.254" ]]; then
			wlanstart
		fi
		exit
	fi
}
wlanstart () {
	$NET wlan0
	STATE=`ifconfig wlan0 | grep 'inet addr' | awk '{ print $2 }' | awk -F : '{ print $2 }' | awk -F . '{ print $1"."$2 }'`
	if [[ "$STATE" == "169.254" ]]; then
		$NET
		exit
	fi
}

ethstart
wlanstart

ID
Password
Join
Everybody ought to have a friend.


sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2008-11-22 17:49:26
Processing time 0.0057 sec