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