The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

Опыт использования Debian GNU/Linux на ноутбуке (debian linux hardware driver notebook acpi cpu)


<< Предыдущая ИНДЕКС Правка src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: debian, linux, hardware, driver, notebook, acpi, cpu,  (найти похожие документы)
From: Yury Yurevich <j2a@jurevich.ru.> Newsgroups: http://omsk.lug.ru/ Date: Mon, 5 Dec 2005 14:31:37 +0000 (UTC) Subject: Опыт использования Debian GNU/Linux на ноутбуке Оригинал: http://omsk.lug.ru/wacko/DebianAtLaptop Debian на ноутбуке Эта страница освящает использование мною Debian на ноутбуке. Я постарался вскольз упомянуть те темы, информацию по которым можно беспроблемно найти. Там же, где такой информации не много, я постарался более подробно раскрыть вопрос. В принципе, если возникнет желание (то ли у меня, то ли у [не]случайного читателя) дополнить некоторые разделы -- тем лучше, вики для этого и сделана. Управление питанием ACPI Желательно использовать последние патчи от проекта ACPI4Linux. Как правило, оправдано использование последней версии ядра. На момент, когда я собирал ядро, последними версиями были linux-2.6.11.11, и acpi-20050408-2.6.11. На момент написания статьи -- это 2.6.13.4 и 20050902-2.6.13 соответственно. swsusp2 С ACPI у меня ноутбук не уходил в suspend-to-disk, а после suspend-to-ram не желал включаться. Поэтому я использую swsusp2 для тех случаев, когда есть желание\необходимость использовать suspend-to-disk. В принципе, в debian входит патч swsusp2, но я советую использовать последний доступный с http://www.suspend2.net Как накладывать патчи swsusp2 вполне ясно написано на их сайте (да я сейчас и не помню тонкости ;) ). Из того что помню: для беспроблемного просыпания нужно либо включать swsusp2 в ядро (CONFIG_SUSPEND2, CONFIG_SUSPEND2_SWAPWRITER, CONFIG_SUSPEND2_LZF_COMPRESSION, CONFIG_SUSPEND2_USERSPACE_UI), либо использовать initrd. От initrd я отказался из-за скорости загрузки. Для засыпания советую использовать пакет hibernate Настройки в нем вполне прозрачны. cpufreqd У меня Celeron M, однако и для него cpufreq может быть полезен. Например, включать throttling и понижать яркость дисплея. Его настройки для Celeron M я описывал в debian-russian Воодушевленный http://grafit.mchtr.pw.edu.pl/~szczedar/nx9020.html попробовал сделать cpufreq на celeron-m Итак, диспозиция: hp nx9020 с celeron-m 340 (1.5 GHz) который по заявлению производителя не поддерживает технологию speed-step. И действительно, при попытке подключить модуль cpufreq-centrino (а равно как и любой другой помимо ниже описанного) вылезала ошибка no such device. В ядро (2.6.11.7 + acpi-20050309 + некоторые патчи от debian) включил p4-clockmod; cpufreqd при установке распознал p-точки, его конфги я немного изменил, чтобы при переходе на батарею он понижал частоту. Поставил "powersave governon" модулем, загрузил модули p4-clockmod cpufeq-powersave При переходе на батарею частота снижается до 750 МГц, при интенсивной загрузке (scimark2) переходит на 935 МГц. /proc/cpuinfo для трех состояний (внешнее питание, батарея, батарея+загрузка процессора); конфиг ядра (то что касается cpufreq); конфиг cpufreqd; результаты scimark2 (внешнее питание, батарея) во вложении. Кто-нибудь может подтвердить или опровергнуть эту информацию? CONFIG_MPENTIUMM=y CONFIG_CPU_FREQ=y CONFIG_CPU_FREQ_STAT=m CONFIG_CPU_FREQ_STAT_DETAILS=y CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y CONFIG_CPU_FREQ_GOV_PERFORMANCE=m CONFIG_CPU_FREQ_GOV_POWERSAVE=m CONFIG_CPU_FREQ_GOV_USERSPACE=y CONFIG_CPU_FREQ_GOV_ONDEMAND=m CONFIG_CPU_FREQ_TABLE=m CONFIG_X86_P4_CLOCKMOD=m CONFIG_X86_SPEEDSTEP_LIB=m cpufreqd.conf: [General] pidfile=/var/run/cpufreqd.pid poll_interval=2 pm_type=acpi #(acpi, apm or pmu) # Uncomment the following line to enable ACPI workaround (see cpufreqd.conf(5)) # acpi_workaround=1 verbosity=4 #(if you want a minimal logging set to 5) [Profile] name=hi_boost minfreq=1053750 maxfreq=1500000 policy=performance [Profile] name=medium_boost minfreq=620625 maxfreq=1053750 policy=performance [Profile] name=lo_boost minfreq=187500 maxfreq=620625 policy=performance [Profile] name=lo_power minfreq=187500 maxfreq=620625 policy=powersave # conservative mode when not AC [Rule] name=conservative ac=off # (on/off) battery_interval=0-100 cpu_interval=0-40 profile=lo_boost # need some power [Rule] name=lo_cpu_boost ac=off # (on/off) battery_interval=0-100 cpu_interval=30-80 profile=medium_boost # need big power (not if battery very low) [Rule] name=hi_cpu_boost ac=off # (on/off) battery_interval=50-100 cpu_interval=70-100 profile=medium_boost # full power when AC [Rule] name=AC_on ac=on # (on/off) profile=hi_boost # full power when watching DVDs and not AC: # this is the last rule and takes less # precedence with respect to the others [Rule] name=dvd_watching ac=off # (on/off) battery_interval=0-100 programs=xine,mplayer,avidemux cpu_interval=0-100 profile=medium_boost Сеть В debian довольно удачная схема настройки сети (man interfaces) и этой схемой поддерживаются множественные профили. Остается лишь настроить автоматический выбор этих профилей. ifplugd Мне оказалось достаточного apt-get install ifplugd и интерфейс автоматически стал подниматься\опускаться при втыкании\вытыкании сетевого кабеля. guessnet Инструмент, который будет выбирать нужный профиль в зависимости от окружения. Работает так: заранее описываются <<целевые>> машины (т.е. те, на которые стоит ориентироваться при выборе окружения -- напр. шлюзы) парой значений ip-mac. При подключении кабеля, посылаются arp-запросы, в зависимости от того, какой <<целевой>> компьютер ответил, выбирается соответствующий профиль. Советую почитать документацию к guessnet, там есть неплохие примеры, на которые я и ориентировался, составляя свою конфигурацию. Итак: # /etc/network/interfaces -- configuration file for ifup(8), ifdown(8) # The loopback interface auto lo iface lo inet loopback # eth0 выбирается из профиля guessnet mapping eth0 script /usr/sbin/guessnet-ifupdown map default: none map timeout: 3 map verbose: true iface home inet static address 172.16.0.2 netmask 255.255.255.0 network 172.16.0.0 broadcast 172.16.0.255 gateway 172.16.0.1 up roaming home down roaming none test-peer address 172.16.0.1 mac 00:80:AD:85:F5:7C iface univer inet static address 192.168.0.220 netmask 255.255.255.0 network 192.168.0.0 broadcast 192.168.0.255 gateway 192.168.0.1 up roaming univer down roaming none test-peer address 192.168.0.1 mac 00:C0:26:AB:F8:91 iface pp inet static address 192.168.0.220 netmask 255.255.255.0 network 192.168.0.0 broadcast 192.168.0.255 test-peer address 192.168.0.215 mac 00:11:2F:A6:45:B0 iface work inet static address 200.200.200.200 netmask 255.255.255.0 network 200.200.200.0 broadcast 200.200.200.255 up roaming none test-peer address 200.200.200.240 mac 00:04:75:72:A8:4F # если кабель не подключен (т.е. пытаемся поднять интерфейс, а кабель не подключен) iface disconnected inet static address 10.1.23.12 netmask 255.255.255.0 up roaming none test-missing-cable please Конструкции test-peer address <IP> mac <MAC> и test-missing-cable please как раз относятся к guessnet. К чему относятся up roaming -- чуть ниже. Почта Я использую классическую связку MTA+MDA+MUA. Настройки MDA (procmail) и MUA (mutt) ничем не отличаются от десктопа, а вот на MTA остановлюсь поподробнее. masqmail На masqmail я остановился из-за того, что он поддерживает профили (т.е. в одном окружении -- один релей, в другом -- другой). В принципе, можно один настроить некий другой недо-MTA, поддерживающий авторизацию и настроить на один SMTP-сервер с авторизацией. Однако должен быть такой MTA, чтобы он понимал, что иногда машина оффлайн и не пытаться отправить почту, а ждать пока не будет онлайн. masqmail такое умеет. Единственно, что он еще и может выполнять функции fetchmail\getmail и, IMHO, это лишне. Если честно, то мне было лениво разбираться как сделать ssl в masqmail и использую fetchmail, как и использовал на десктопе. Итак, насчёт masqmail: онлайн\оффлайн и выбор профиля осуществляется по файлу (точнее я это использовал, он еще по выводу команды умеет), в котором написано имя профиля. Если такого файла нет, то значит оффлайн. Имя профиля и определяет, какой транспорт (route) будет использоваться: # /etc/masqmail/masqmail.conf ### BEGIN DEBCONF SECTION # Do not edit within this region if you want your changes to be preserved by # debconf. Instead, make changes after the "### END DEBCONF SECTION" line. host_name="moby.omsktele.com" local_hosts="localhost;moby;moby.omsktele.com" local_nets="" listen_addresses="localhost:25" spool_dir="/var/spool/masqmail" mail_dir="/var/mail" log_dir="/var/log/masqmail" do_queue=false use_syslog=false mbox_default=mda mda="/usr/bin/procmail -Y -d ${rcpt_local}" alias_file=/etc/aliases alias_local_caseless="false" ### END DEBCONF SECTION # online_detect=file online_file="/etc/roaming/online" # include the locations of your route and get configurations here. # Examples: # online_routes.default = "/etc/masqmail/default.route" # online_gets.default = "/etc/masqmail/default.get" # You can have more of those, with '.default' replaced with other # names. See man 8 masqmail.conf. online_routes.univer = "/etc/masqmail/univer.route" online_routes.home = "/etc/masqmail/home.route" Соответствующие файлы транспортов (route) выглядят однотипно и я в качестве примера приведу один: #/etc/masqmail/home.route protocol = smtp mail_host = debsmart helo_name = moby.jurevich.ru А каким образом выбираются профили, уже можно догадаться ;) roaming Итак, при поднятии\опускании интерфейса запускаем скрип roaming, который делает нужные действия: * информирует (при помощи соответсвующего файла) об онлайн\оффлайн состоянии * сообщает (содержимое файла) о профиле * использует нужный resolv.conf * синхронизирует время по ntp * что-нибудь еще (напр. смена конфигурации samba), ограничение -- только ваша фантазия. #!/bin/sh # -*- coding: koi8-r -*- # roaming: делает все необходимые манипуляции при поднятии интерфейса # Юрий 'Cap. J2A' Юревич (Jurie Jurevich), http://j2a.jurevich.ru # 2005-08-01 # первый параметр -- имя конфигурации conf="$1" if [ -z "$conf" ]; then # если не передали параметр, ничего не делаем exit fi # прописываем нужный resolv.conf ln -fs "/etc/roaming/resolv.conf_$conf" /etc/resolv.conf if [ "$conf" = "none" ]; then # значит оффлайн rm -f /etc/roaming/online touch /etc/roaming/not_online # останавливаем синхронизацию времени /etc/init.d/ntpdate stop else # значит онлайн # сообщаем, какую конфигурацию запускаем echo "$conf" >/etc/roaming/online # сообщаем, что перестали быть оффлайн rm -f /etc/roaming/not_online # синхронизируем время /etc/init.d/ntpdate start fi

<< Предыдущая ИНДЕКС Правка src Установить закладку Перейти на закладку Следующая >>

Обсуждение [ RSS ]
 
  • 1, foxlg, 15:47, 25/05/2006 [ответить] [смотреть все]
  • +/
    Dobryj den Nedavno procel Vasu statju t k pytajus snizit skorost CPU Info o cup... весь текст скрыт [показать]
     

    Ваш комментарий
    Имя:         
    E-Mail:      
    Заголовок:
    Текст:





      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor