Samsung N150 (Русский)

From ArchWiki
Jump to: navigation, search

Tango-preferences-desktop-locale.pngЭта страница нуждается в сопроводителеTango-preferences-desktop-locale.png

Статья не гарантирует актуальность информации. Помогите русскоязычному сообществу поддержкой подобных страниц. См. Команда переводчиков ArchWiki

Эта статья описывает установку и настройку 64х-битной версии Arch Linux на нетбук Samsung N150. Согласно выводу dmidecode, эта статья также может быть полезной для моделей N210 и N220.

Обзор комплектующих

Нетбук Samsung N150 оснащается процессором Intel Atom N450 ("Pineview") с интегрированной видеокартой Intel GMA 3100 GPU и чипсетом с кодовым названием "Pine Trail". В отличие от ранних одноядерных процессоров Intel Atom серий N2xx and Z, N450 поддерживает набор инструкций x86_64. Несмотря на то, что согласно информации DMI системная плата поддерживает до 8 Гб оперативной памяти, встроенный контроллер памяти Atom N450 может адресовать максимум 2 Гб.

Так как ввиду аппаратных ограничений для адресного пространства достаточно 32 бит, основное преимущество 64-битной версии Arch на данной модели заключается в удобстве использования пакетов AUR, собранных на более мощных 64-битных системах, принадлежащих тому же владельцу.

Поставляемые версии модели N150 (на начало марта 2010) включают "начальную" версию общеизвестной проприетарной ОС и поэтому содержат только 1 Гб памяти в виде одной планки DDR2 667Mhz SODIMM, которую можно заменить. Согласно информации DMI, нетбук содержит 2 mini PCIe слота, один из которых занят (встроенной?) беспроводной сетевой картой на базе чипа Atheros AR9285. Другие версии этой модели могут комплектоваться (встроенным?) 3G адаптером, установленным в другой слот.

Внешние порты представляют собой 3 USB 2.0 порта, 1 VGA порт, 10/100 LAN порт (на чипе Marvell 88E8040 PCI-E), разъемы для наушников/микрофона и встроенный кардридер форматов SD/SDHC/MMC. Встроенная вебкамера с разрешением VGA (640x480) подсоединена к внутреннему USB контроллеру.

Установка

Поскольку у нетбуков нет оптических приводов, предпочтительный способ установки - через USB флешку. В процессе первой загрузки установочного образа 2009.08, система перезагрузится после инициализации процессора. При последующих перезагрузках с тем же самым ядром подобное поведение не проявляется, тем не менее, возможна перезагрузка в процессе первой загрузки после смены/обновления ядра.

В этой статье предполагается, что для установки будет использоваться весь жесткий диск, затирая предустановленную производителем ОС и программы (включая разделы восстановления). Пока что не выяснено, какие именно разделы требуются для корректой работы программы восстановления: сохранения только первого раздела, неизвестного типа, не достаточно. Если вы желаете сохранить предустановленный механизм восстановления, вам следует создать набор из DVD-дисков, используя внешний DVD привод, перед установкой Arch Linux.

Во время первой установки, cfdisk будет вылетать с ошибкой из-за неправильной разметки на диске, выходящей за его границы (согласно геометрии по умолчанию для дисков в Linux). Решение - в запуске fdisk и создания новой, пустой таблицы разделов. ВНИМАНИЕ: Эта операция уничтожит существующую таблицу разделов жесткого диска, с потерей всех данных, находящихся на нем.

fdisk /dev/sda << EOF
o
w
EOF

После создания на диске пустой таблицы разделов, cfdisk в процессе установки будет работать правильно.

Настройка устройств

Проводная сеть (Ethernet)

Адаптер на чипе Marvell 88E8040 работает "из коробки" с ядром с конфигурацией "по умолчанию". При установке networkmanager, процесс загрузки может быть ускорен задержкой инициализации сети до появления графического интерфейса.

Беспроводная сеть (Wi-Fi)

Samsung N150 поставляется с беспроводными картами на двух различных чипах: Atheros AR9285 и Realtek 8192E.

Примечание: Модель Samsung N150+ может комплектоваться беспроводной картой на чипе Broadcom BCM4313.

Atheros AR9285

Беспроводной адаптер на этом чипе работает "из коробки", включая полную поддержку шифрования WPA2-PSK через NetworkManager. Мощность передатчика может быть изменена при установке пакета rfkill, с помощью следующего скрипта, помещенного, к примеру, в /usr/local/sbin/rftoggle

#!/bin/bash

blocked=`rfkill list wlan | grep "Soft blocked: yes"`

if [ -z "$blocked" ]; then
   rfkill block wlan
else
   rfkill unblock wlan
fi

Realtek 8192E

Драйвер для RTL8192E есть в ядре Arch'а, но для драйвера необходима прошивка. Ее можно взять в пакете linux-firmware или собрать самостоятельно из AUR'a. Смотри также Wireless network configuration.

Broadcom BCM4313 (Samsung N150+)

Samsung N150-Plus имеет встроенный адаптер BCM4313 с блютузом. С ядром новее v2.6.37 работает из коробки. Спасибо открытому драйверу brcm80211. Модуля для этой карты в старом ядре нет, и поэтому необходимо установить сторонний драйвер. Его можно найти в AUR'e: broadcom-wlAUR Или, если вы хотите собрать его вручную: http://www.broadcom.com/support/802.11/linux_sta.php Этот драйвер работает по большей части работает хорошо, за исключением того, что не может подключаться в "скрытым" сетям.

За более подробной информацией обратитесь к этой статье: Broadcom wireless[broken link: invalid section]

Графика

Встроенная в Atom N450 графика на базе Intel GMA 3100 GPU, работает с Kernel mode setting без дополнительных плясок с бубном. Ранняя инициализация KMS, похоже, незначительно ускоряет скорость загрузки и может быть включена добавлением следующей строки в /etc/mkinitcpio.conf (если подобная строчка уже существует, просто добавьте нужные модули в нее):

MODULES="intel_agp i915"

Запустите mkinitcpio -p linux, чтобы новые модули добавились в загрузочный образ.

В отличие от более ранней модели N140, у модели N150 не замечено проблем с режимом энергосбережения дисплея.

Для модели Samsung 150 Plus может потребоватся утилита 915resolution. Но версия из AUR не сработает с сообщением об ошибке: Intel chipset detected. However, 915resolution was unable to determine the chipset type. Chipset Id: a0108086

Существует пропатченая версия для этого чипа.

Включив однажды доп. клавиши (смотри ниже), комбинация Fn+F4 будет переключать вывод изображения между только встроенным экраном, расширенным режимом и режимом дублирования изображения (clone) автоматически, когда внешний монитор подключен к VGA порту.

Подсветка

Так же как и на других ноутбуках и нетбуках Samsung, прямое управление подсветкой через ACPI в данной модели невозможно. Вместо этого, управление подсветкой может осуществляться изменением настроек графического адаптера через PCI шину с помощью следующего скрипта. Для легкости использования дополнительных кнопок (с Fn), поместите этот скрипт в /usr/local/sbin/backlight

#!/bin/bash
# increase/decrease/set brightness (range 0-255)
 
# PCI device on which to operate
DEVICE=00:02.0

# Amount to raise/lower the backlight when called with "up" or "down"
AMOUNT=8

# Minimum backlight value reachable via "down"
MIN=1

# Default backlight level when toggling on
DEFAULT=64
 
#get current brightness in hex and convert to decimal
var1=`setpci -s $DEVICE F4.B`
var1d=$((0x$var1))
case "$1" in
       up)
           # вычислить новую яркость
           var2=`echo "ibase=10; obase=16; a=($var1d+$AMOUNT); if (a<255) print a else print 255" | bc`
           echo "$0: яркость увеличена с 0x$var1 до 0x$var2"
           setpci -s $DEVICE F4.B=$var2
           ;;
       down)
           #calculate new brightness
           var2=`echo "ibase=10; obase=16; a=($var1d-$AMOUNT);if (a>$MIN) print a else print $MIN" | bc`
           echo "$0: яркость уменьшена с 0x$var1 до 0x$var2"
           setpci -s $DEVICE F4.B=$var2
           ;;
       set)
           # "set" позволяет выставить яркость в 0, т.е. выключить подсветку
           echo "$0: установка яркости в 0x$2"
           setpci -s $DEVICE F4.B=$2
           ;;
       toggle)
           if [ $var1d -eq 0 ] ; then
               echo "повышение яркости"
               setpci -s $DEVICE F4.B=$DEFAULT
           else
               echo "уменьшение яркости"
               setpci -s $DEVICE F4.B=0
           fi
           ;;
       *)
           echo "использование: $0 {up|down|set <val>|toggle}"
           echo "$0: текущая яркость - 0x$var1"
           ;;
esac
exit 0

Звук

Звук на базе Intel HD Audio в этой модели работает "из коробки", разве что нужно увеличить громкость канала "speaker". Установите пакет alsa-utils, чтобы получить скрипт, сохраняющий и восстанавливающий уровни громкости во время загрузки (Не забудьте добавить пункт "alsa" в массив DAEMONS в файле /etc/rc.conf).

Для владельцев модели N210, чтобы включить встроенный микрофон, вам нужно выполнить следующие команды:

# echo 0x19 0x90A70011 > /sys/class/sound/hwC0D0/user_pin_configs
# echo 1 > /sys/class/sound/hwC0D0/reconfig

Ждущий режим (STR/S3)

В среде Gnome 2.28 и при установленном пакете gnome-power-manager, ждущий режим работает без дополнительного вмешательства при закрытии крышки нетбука. Процесс приостановки работы занимает до 30 секунд. Выход из ждущего режима в конфигурации по умолчанию требует нажатия кнопки включения нетбука. Пробуждение из спячки при открытии крышки или нажатия кнопок на клавиатуре можно включить настройкой в BIOS'е.

При наличии беспроводной сетевой карты на чипе realtek, сеть не всегда восстанавливается при выходе из ждущего режима. Выгрузка и последующая загрузка модуля r8192e_pci решают эту проблему. Также, это может быть автоматически настроено при помощи пакета Pm-utils.

Спящий режим (hibernate)

Спящий режим с использованием pm-utils все еще не работает корректно. В процессе запуска из спящего режима появляются ошибки заголовков ELF, связанные с glibc, успешно предотвращающие запуск новых программ (включая /sbin/shutdown). Более того, даже если эта проблема будет устранена, процесс восстановления из раздела подкачки занимает немного больше времени, чем "холодный" запуск системы.

С ядром 2.6.36, на некоторых моделях N-серии необходимо добавить intel_idle.max_cstate=0 к параметрам загрузки ядра для корректной работы ждущего/спящего режимов.

Сенсорная панель (Тачпад)

Тачпад Synaptics работает для однопальцевых операций и прокрутки с помощью его правого края без дополнительной настройки. При нажатии Fn+F10 BIOS автоматически включает или выключает тачпад. Чтобы отображать сообщение об этом, необходимо установить пакет xosd и настроить скрипт, выводящий сообщение при нажатии Fn+F10 (смотри далее о настройке доп. клавиш). Поместите этот скрипт в /usr/local/bin/report_touchpad

#!/bin/bash
 
FONT='-adobe-helvetica-bold-*-*-*-34-*-*-*-*-*-*-*'
DELAY=1
state=Unknown

case "$1" in
   on)
      state="включен"
      ;;
   off)
      state="отключен"
      ;;
   *)
      echo "Использование: $0 {on|off}"
      exit 2
      ;;
esac

osd_cat -A center -p middle -f $FONT -d $DELAY << EOF
Тачпад $state
EOF

exit 0

Чтобы тачпад понимал нажатия на него, самым простым решением будет установить пакеты gsynaptics[ссылка недействительна: package not found] или gpointing-device-settings. Хотя согласно документам поставляемым с нетбуком, заявлена поддержка мультитача (для двухпальцевых нажатий, прокрутки двумя пальцами и т.д.), не похоже, что это работает правильно.

Для владельцев модели N220 (не тестировалось на N150, но возможно будет работать), эти параметры для включают мультитач на тачпаде (файл /etc/hal/fdi/policy/11-x11-synaptics.fdi)

<?xml version="1.0" encoding="ISO-8859-1"?>
<deviceinfo version="0.2">
  <device>
    <match key="info.capabilities" contains="input.touchpad">
      <merge key="input.x11_driver" type="string">synaptics</merge>
      <merge key="input.x11_options.TapButton1" type="string">1</merge>
      <merge key="input.x11_options.TapButton2" type="string">2</merge>
      <merge key="input.x11_options.TapButton3" type="string">3</merge>
      <merge key="input.x11_options.SHMConfig" type="string">true</merge>
      <merge key="input.x11_options.VertEdgeScroll" type="string">false</merge>
      <merge key="input.x11_options.PalmDetect" type="string">false</merge>
      <merge key="input.x11_options.VerteScrollDelta" type="string">100</merge>
      <merge key="input.x11_options.VertTwoFingerScroll" type="string">true</merge>
      <merge key="input.x11_options.HorizTwoFingerScroll" type="string">true</merge>
      <merge key="input.x11_options.EmulateTwoFingerMinZ" type="string">40</merge>
      <merge key="input.x11_options.EmulateTwoFingerMinW" type="string">5</merge>
    </match>
  </device>
</deviceinfo>

Управление частотой процессора

Чтобы включить управление частотой процессора, вам необходимо добавить несколько модулей ядра в автозагрузку в файле /etc/rc.conf:

MODULES=(acpi-cpufreq cpufreq-ondemand cpufreq-powersave)

Смена режимов использования процессора ядром между производительным (performance), автоматическим (ondemand) и энергосберегающим (powersave) может производиться с помощью следующего скрипта, установленного в /usr/local/sbin/cpufreq_toggle

#!/bin/bash

current=`cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor`
future=unknown

if [ "$current" == "performance" ]; then
   future="ondemand"
elif [ "$current" == "ondemand" ]; then
   future="powersave"
else
   future="performance"
fi

echo "$future" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo "$future" > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor

echo "$future"

Для вывода сообщения о текущем режиме через сообщение на дисплее (полезно при назначении комбинации Fn+F8 на смену режимов), следующий скрипт должен быть установлен в /usr/local/bin/cpufreq_toggle_osd

#!/bin/bash

FONT='-adobe-helvetica-bold-*-*-*-34-*-*-*-*-*-*-*'
DELAY=1

state=`sudo /usr/local/sbin/cpufreq_toggle`
message="CPU Performance State Unknown"

if [ "$state" == "performance" ]; then
   message="Режим производительности"
elif [ "$state" == "powersave" ]; then
   message="Режим энергосбережения"
elif [ "$state" == "ondemand" ]; then
   message="Автоматический режим"
fi

osd_cat -A center -p middle -f $FONT -d $DELAY << EOF
$message
EOF

exit 0

По умолчанию, система будет загружена с режимом "производительность". Чтобы включать автоматический режим в конце загрузки, добавьте следующие строки в /etc/rc.local

echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo "ondemand" > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor

Клавиша Fn

Некоторые из спец. комбинаций клавиш в модели N150 работают сразу, но большинство - нет. Нестандартные сканкоды с клавиатуры передаются ядру, которое не знает, как преобразовать их в стандартные сканкоды. Что еще хуже, большинство сканкодов сообщают только о нажатии клавиши, но не о ее отпускании. Добавление следующие строчки в /etc/rc.local задействует все спец. клавиши и назначит им правильные сканкоды:

setkeycodes e002 227   # Fn+F4 maps to switchvidmode
setkeycodes e003 236   # Fn+F2 maps to battery
setkeycodes e004 148   # Fn+F5 maps to prog1
setkeycodes e006 238   # Fn+F9 maps to wlan
setkeycodes e008 225   # Fn+Up maps to brightnessup
setkeycodes e009 224   # Fn+Dn maps to brightnessdown
setkeycodes e031 149   # Fn+F7 maps to prog2
setkeycodes e033 202   # Fn+F8 maps to prog3
setkeycodes e077 191   # Fn+F10 maps to F21 whenever the touchpad is enabled
setkeycodes e079 192   # Fn+F10 maps to F22 whenever the touchpad is disabled

# Ensure key release events occur for all except Fn+F7, which properly reports a key release for some reason
echo 130,131,132,134,136,137,179,247,249 > /sys/devices/platform/i8042/serio0/force_release

To enable hotkeys to change backlight, wireless, and system performance settings, it is necessary to give regular users certain permissions via the sudo command. Run visudo as root and add the following to the Cmnd alias specifications:

Cmnd_Alias NETBOOK_CMDS = /usr/local/sbin/backlight, /usr/local/sbin/rftoggle, /usr/local/sbin/cpufreq_toggle

Затем добавьте следующую строку в конец файла:

%users ALL=(ALL) NOPASSWD: NETBOOK_CMDS

Теперь нестандартные сочетания клавиш могут быть добавлены в ДЕ посредством окна "Комбинации клавиш клавиатуры".

Назначение Команда Сочетание клавиш
Выключить тачпад /usr/local/bin/report_touchpad off Нажмите Fn+F10, когда тачпад включен.
Включить тачпад /usr/local/bin/report_touchpad on Нажмите Fn+F10, когда тачпад выключен.
Изменение частоты процессора /usr/local/bin/cpufreq_toggle_osd Fn+F8
Увеличить яркость подсветки sudo /usr/local/sbin/backlight up Fn+<ВВЕРХ>
Уменьшить яркость подсветки sudo /usr/local/sbin/backlight down Fn+<ВНИЗ>
Вкл/Выкл wi-fi sudo /usr/local/sbin/rftoggle Fn+F9
Вкл/Выкл подсветку экрана sudo /usr/local/sbin/backlight toggle Fn+F5

Уменьшение времени загрузки

Чтобы заставить нетбук загружаться максимально быстро, нам нужно уменьшить задержки и заставить демонов запускаться в фоне. Две полезные модификации загрузчика (в данном случае - grub): измените параметр "timeout" на 2 секунды, вместо 5и - по умолчанию и добавьте параметр "quiet", чтобы подавить вывод некоторых сообщений ядра (которые отнимают время). Указанные параметры можно поменять в файле /boot/grub/menu.lst

timeout    2
...
# (0) Arch Linux
title  Arch Linux
root   (hd0,0)
kernel /vmlinuz26 root=/dev/sda3 ro quiet
initrd /kernel26.img

Учтите, что может быть здравой идеей не добавлять параметр "quiet" ко второму пункту загрузчика (который используется при сбоях ядра из первого пункта), в этом случае вывод сообщений ядра поможет вам определить проблему. Впрочем, вы можете отредактировать эти параметры непосредственно при загрузке (нажать "e" на нужном пункте меню загрузчика).

Заставить демонов грузиться в фоне немного сложнее, учитывая, что один демон может зависить от одного или нескольких других. Тем не менее, можно использовать преимущество известных "задержек" в процессе загрузки (напр. запуск подсистемы X11), что позволяет некоторым демонам (таких как NetworkManager) спокойно запускаться в фоне, перед тем как они действительно понадобятся.

DAEMONS=(syslog-ng !network hal @networkmanager @sensors @alsa !netfs @crond)

С вышеуказанными настройками, графический менеджер входа в систему появляется через 37-38 секунд после "холодной" загрузки (включая задержки BIOS'а и grub'а)