Поиск по блогу :

    23 февраля 2011 г.

    Ноутбук HP dv6-3106er

    Решил для работы взять себе ноутбук помощнее, выбор пал на HP dv6-3106er. Отличный ноутбук в алюминиевом корпусе, на котором сразу же была снесена винда с сопутствующими ей разделами диска и установлена Убунта. Ниже описание того, как этот ноутбук подружить с убунту 10.10.

    Первое, про что хочется сказать, это клавиатура. Клавиатура довольно нестандартная и к ней надо долго привыкать (у жены на самсунге удобнее :). Поначалу очень бесят доп.-клавиши расположенные в левой части клавиатуры. Постоянное попадание по клавише вызова калькулятора, вместо клавиши Ctrl, первое время - очень напрягает. Вообще, часть проблем, решенных ниже, как раз и касается клавиатуры.

    Fn-клавиши

    После первого запуска нотика, я был просто обескуражен тем, что по-умолчанию нажатие на Fn-клавишы вызывало действия, обычно вызываемые по комбинации fn+Fn, а при нажатии fn+Fn срабатывали действия обычных Fn, соответственно. Решение находится в BIOS. Нужно поменять 'System Configuration'->'Action Keys Mode' на 'disabled'.

    Insert/PrtScr

    Совмещенная клавиша Insert/PrtScr - это просто ужас. Все бы ничего, но по-умолчанию, по нажатию на эту клавишу срабатывает PrtScr, а Insert вызывается сочетанием fn+PrtScr. А ведь Insert используется намного чаще чем PrtScr. Для решения этой проблемы, меняем коды клавиш местами:
    1. Создаем файл ~/.Xmodmap

    $
    nano ~/.Xmodmap
    2. Добавляем туда строки:
    keycode 107 = Insert
    keycode 118 = Print
    3. Можете перегрузиться или сразу же применить сделанные изменения:
    $
    xmodmap ~/.Xmodmap



    Настройка ClickPad

    Кто не в курсе ClickPad, в отличии от TouchPad, лишен традиционных механических кнопок в пользу расширения рабочей поверхности. У ClickPad имеется аппаратная клавиша, скрывающаяся под поверхностью кликпада - для нажатия на нее достаточно надавить в любом месте ClickPad. Остальные же действия, по нажатию на ClickPad, можно настраивать с помощью зон задаваемых на поверхности кликпада. Также ClickPad распознает трехпальцевые жесты.

    К сожалению, кликпад в этой модели ноутбука, с убунту дружит не совсем так как ожидаешь. По нажатию, работает только левая клавиша, правая не работает, так же как и клавиша вкл/выключения кликпада - ее, кстати, так и не удалось заставить работать.

    Поискав в интернете, нашел два способа пофиксить кликпад.

    Первый способ (взят отсюда):
    1. Если не стоит пакет 'dkms', устанавливаем его:
    $
    sudo apt-get install dkms
    2. Скачиваем архив с пропатченным модулем psmouse:
    $


    wget https://bugs.launchpad.net/ubuntu/+source/linux/+bug/582809/+attachment/1675262/+files/psmouse-2.6.35-22-generic-patched.tar.bz2
    3. Распаковываем архив:
    $
    tar -xjf psmouse-2.6.35-22-generic-patched.tar.bz2
    4. Переносим распакованную папку в '/usr/src'
    $
    sudo mv psmouse-2.6.35-22-generic /usr/src/
    5. Собираем и устанавливаем модуль:
    $ $ $
    sudo dkms add -m psmouse -v 2.6.35-22-generic
    sudo dkms build -m psmouse -v 2.6.35-22-generic
    sudo dkms install -m psmouse -v 2.6.35-22-generic
    6. После перезагрузки, правая кнопка на кликпаде должна заработать.
    Правда у этого способа есть один минус - не работает мультитач :(

    Второй способ (взят отсюда)
    1. Скачиваем deb-пакет 'synaptics-dkms_1.1.1_all.deb'
    $


    wget https://bugs.launchpad.net/ubuntu/+source/linux/+bug/308191/+attachment/1771346/+files/synaptics-dkms_1.1.1_all.deb
    2. Устанавливаем его:
    $
    sudo dpkg -i synaptics-dkms_1.1.1_all.deb
    3. Перезагружаемся.
    У этого способа есть один минус - правая кнопка не работает по нажатию на кликпад, но зато работает мультитач. Мне этот способ нравится больше, так как теперь правая клавиша работает по клику двумя пальцами, а средняя клавиша работает по клику тремя пальцами. Вертикальный и горизонтальный скролл осуществляется двумя пальцами. Ну и вообще при мультитаче работать намного удобнее :)

    Если кому нужно, вот мои значения 'synclient -l'
    :
    LeftEdge = 1766
    RightEdge = 5378
    TopEdge = 1627
    BottomEdge = 4331
    FingerLow = 24
    FingerHigh = 29
    FingerPress = 255
    MaxTapTime = 180
    MaxTapMove = 230
    MaxDoubleTapTime = 180
    SingleTapTimeout = 180
    ClickTime = 100
    FastTaps = 0
    EmulateMidButtonTime = 75
    EmulateTwoFingerMinZ = 280
    EmulateTwoFingerMinW = 6
    VertScrollDelta = 104
    HorizScrollDelta = 104
    VertEdgeScroll = 0
    HorizEdgeScroll = 0
    CornerCoasting = 0
    VertTwoFingerScroll = 1
    HorizTwoFingerScroll = 1
    MinSpeed = 0.4
    MaxSpeed = 0.7
    AccelFactor = 0.00953289
    TrackstickSpeed = 40
    EdgeMotionMinZ = 29
    EdgeMotionMaxZ = 159
    EdgeMotionMinSpeed = 1
    EdgeMotionMaxSpeed = 419
    EdgeMotionUseAlways = 0
    UpDownScrolling = 1
    LeftRightScrolling = 1
    UpDownScrollRepeat = 1
    LeftRightScrollRepeat = 1
    ScrollButtonRepeat = 100
    TouchpadOff = 0
    GuestMouseOff = 0
    LockedDrags = 1
    LockedDragTimeout = 5000
    RTCornerButton = 2
    RBCornerButton = 3
    LTCornerButton = 0
    LBCornerButton = 0
    TapButton1 = 1
    TapButton2 = 3
    TapButton3 = 2
    ClickFinger1 = 1
    ClickFinger2 = 3
    ClickFinger3 = 2
    CircularScrolling = 0
    CircScrollDelta = 0.1
    CircScrollTrigger = 0
    CircularPad = 0
    PalmDetect = 0
    PalmMinWidth = 9
    PalmMinZ = 199
    CoastingSpeed = 0
    PressureMotionMinZ = 29
    PressureMotionMaxZ = 159
    PressureMotionMinFactor = 1
    PressureMotionMaxFactor = 1
    GrabEventDevice = 1
    TapAndDragGesture = 1
    AreaLeftEdge = 0
    AreaRightEdge = 0
    AreaTopEdge = 0
    AreaBottomEdge = 0
    JumpyCursorThreshold = 0

    Вешаем вкл./выкл. ClickPad на кнопку HP MediaSmart

    После установки убунты, сразу заработали все мультимедийные клавиши, кроме клавиши 'HP MediaSmart'. После нажатия на эту клавишу, в dmesg можно увидеть такую строчку:
    Use 'setkeycodes e042 ' to make it known.
    Ну а так как расположенная на кликпаде кнопка вкл/выкл ClickPad не работает, решено было повесить эту функцию на кнопку 'HP MediaSmart'.
    1. В консоли выполняем следующее:
    $
    sudo setkeycodes e042 192
    2. Все, теперь клавиша должна заработать и выполнять функцию включения/выключения кликпада.
    3. Чтобы не назначать клавишу снова после каждой перезагрузки, добавляем строку 'setkeycodes e042 192' в файл '/etc/rc.local' ПЕРЕД последней закрывающей строкой 'exit 0'.

    Кстати, если кому-то хочется вкл/выкл кликпад командой через терминал, вот небольшой скриптик:
    #!/bin/sh
    tid=`xinput list | fgrep TouchPad | sed 's/.*=//' | sed 's/[^0-9].*//'`
    state=`xinput list-props $tid | fgrep 144 | sed 's/.*:\s//'`
    if [ $state -eq 1 ]
    then
    xinput set-prop $tid 144 0
    notify-send "ClickPad disabled" -i touchpad-disabled -h string:x-canonical-private-icon-only: -t 2000
    else
    xinput set-prop $tid 144 1
    notify-send "Clickpad enabled" -i touchpad-enabled -h string:x-canonical-private-icon-only: -t 2000
    fi

    Две видеокарты

    В данной модели ноутбука установлены две видеокарты, одна интегрированная 'ATI Radeon HD 4200' и дискретная 'Ati Radeon HD 5600'.
    01:05.0 VGA compatible controller: ATI Technologies Inc M880G [Mobility Radeon HD 4200]
    02:00.0 VGA compatible controller: ATI Technologies Inc Redwood [Radeon HD 5600 Series] (rev ff)
    Надеюсь все понимают, что интегрированная карта нужна тогда, когда надо сократить энергопотребление ноутбука, ну а дискретная для 3D, видео-игр и т.п. Но и тут в убунте не обошлось без затычек - после старта компьютера, всегда, по-умолчанию, активной является интегрированная карточка, но и дискретная при этом тоже включена, тоесть питание потребляют обе карточки, что очень сокращает время работы ноутбука от батареи. К сожалению производитель решил себя не утруждать и не добавил опции управления видеокартами в BIOS.
    К счастью, некоторое время назад в ядро линукса был включен модуль vga_switcheroo, который позволяет управлять несколькими видеокартами, но и тут есть свои нюансы:
    1) До сих пор нет утилит управления этим модулем;
    2) Работает он только со свободными драйверами, тоесть через ATI Catalyst пока ничего сделать нельзя, в отличии от той же винды, например;
    3) После переключения видеокарт, необходимо перелогиниваться (перезапускать X'сы).

    Если с первым пунктом еще можно что-то решить, то по второму надо решать самому, сидеть на свободных драйверах, либо на проприетарных, без возможности переключения/отключения видеокарт.
    Я поступаю следующим способом. Большую часть времени, когда под рукой есть розетка, я пользуюсь проприетарными драйверами, а вот если мне нужно куда-то поехать и нужно выдавить из нотика, как можно больше времени работы от батареи, я перехожу на свободные драйвера и выключаю дискретную видеокарту.

    И так, перейдем от теории к практике.
    1. Для манипулирования модулем vga_switcheroo, удаляем проприетарный драйвер через 'Система'->'Администрирование'->'Дополнительные драйвера'->'Проприетарный драйвер FGLRX для видеокарт ATI/AMD'->'Удалить'
    2. Перезагружаемся и после перезагрузки проверяем, что у нас появился нужный файлик:
    $
    cat /sys/kernel/debug/vgaswitcheroo/switch
    в ответ вы должны получить вывод о состоянии ваших видеокартах.
    3. Добавляем в '/etc/rc.local' строки, которые будут давать вашему пользователю права на этот файл после перезагрузки ноутбука, а также которые будут отключать не используемую в данный момент видеокарту.
    $
    sudo nano /etc/rc.local
    Внимание !!! Не забывайте, что строки должны находиться перед закрывающей строкой 'exit 0'. А вот и сами строки:
    chown <username> /sys/kernel/debug/vgaswitcheroo/switch
    echo OFF > /sys/kernel/debug/vgaswitcheroo/switch
    где <username> - замените на ваше имя пользователя в системе.
    4. Создадим скрипт, который нам позволит удобно переключать видеокарты.
    4.1. Устанавливаем нужные пакеты, если они еще не стоят, и выкачиваем необходимые картинки:
    $ $


    $


    $


    $


    sudo apt-get install wget gxmessage libnotify-bin
    wget -P /home/"$USER"/.local/share/icons/ http://lh4.ggpht.com/_Dw3SC8gD9Jk/S-MGVcEfaiI/AAAAAAAAAIA/Pguy_uSeqSk/s800/hardware_down.png
    wget -P /home/"$USER"/.local/share/icons/ http://lh5.ggpht.com/_Dw3SC8gD9Jk/S-MGVSO0JbI/AAAAAAAAAIE/_mdAnW7UiCQ/s800/hardware_up.png
    wget -P /home/"$USER"/.local/share/icons/ http://lh4.ggpht.com/_Dw3SC8gD9Jk/TNbQXzK6hrI/AAAAAAAAAJ8/YlqK46MusuE/s800/hardware.png
    wget -P /home/"$USER"/.local/share/icons/ http://lh5.ggpht.com/_Dw3SC8gD9Jk/S41DjuMt_MI/AAAAAAAAAF4/5pQm2-dX6Sg/s800/switch_before_shutdown.png
    4.2. Скачиваем скрипт 'switch_between_cards.sh'
    4.3. Даем ему права на выполнение:
    $
    sudo chmod +x switch_between_cards.sh
    5. Перезагружаемся и запускаем скрипт 'switch_between_cards.sh' для переключения видеокарт:
    $
    ./switch_between_cards.sh
    6. Казалось бы уже все, видеокарты переключаются, ненужные выключаются, но на самом деле остался еще один очень важный момент - перед выключением или полной перезагрузкой ноутбука, необходимо снова включать обе видеокарты. Дело в том, что если этого не сделать, то после последующего включения ноутбука, кулеры на видеокартах начинают вращаться на максимальной скорости, что, согласитесь, нам совсем не нужно. Есть два варианта решения этой проблемы, о них ниже.
    6.1. Первый вариант.
    Необходимо перед выключением/перезагрузкой ноутбука, выполнять следующую команду:
    $
    echo ON > sys/kernel/debug/vgaswitcheroo/switch
    6.2. Второй вариант.
    Скачиваем скрипт 'switch_before_shutdown.sh'. Делаем его исполняемым, по тому же принципу, что и первый скрипт. Теперь, когда нужно перезагрузиться или выключить компьютер - запускаем этот скрипт и выбираем нужное действие.

    Скрипты для переключения видеокарт и выключения компьютера, были позаимствованы у Roberto Martinez

    Разрешение экрана загрузки

    Здесь выполняются все те же действия, что и для Samsung R528

    P.S. После того, как выяснилось, что драйвера ATI для Linux занесены в черный список популярных браузеров (тоесть, браузеры не отображают WebGL, CSS 3D и т.п.), ноутбук был продан. Теперь зарекся, никогда больше не покупать ATI видеокарт (или продукцию с ней на борту) - сколько лет прошло, а дрова для них все такие же глючные :(

    Обновлено 20.05.2011г. в 10:07