среда, 26 декабря 2012 г.

Linux Mint 13/ Ubuntu 12.04 on Samsung 900X3C (тачпад, яркость клавиатуры, Fn кнопки)

1. Установил linux Mint Mate Edition 13 amd64 на свой ультрабук

После установки:
  • wifi работает нормально
  • тачпад тоже адекватно определился, не работают жесты, не работает тап по правой части тачпада (правая кнопка)
  • из Fn кнопок работают только яркость экрана, громкость и вкл/выкл тачпад, не работает регулировка яркости подсветки клавиатуры, wifi on/off и другие.
остальное тоже вроде как работает адекватно

2. Обновление системы (очень рекомендуется, если вы скачали дистрибутив относительно давно)

sudo apt-get update
sudo apt-get dist-upgrade


3. Bluetooth в этом минте глючит, не дает соединиться с блютуз-мышкой

Решение вот тут

 
sudo apt-get remove mate-bluetooth libmatebluetooth
sudo dpkg -i mate-bluetooth_1.2.0-1_amd64.deb libmatebluetooth_1.2.0-1_amd64.deb

4. Fn-кнопки

решение взято вот отсюда

создаем файлик /lib/udev/keymaps/samsung-900x3c
и вставляем в него этот текст
# /lib/udev/keymaps/samsung-900x3c
0xCE prog1               # FN+F1 System Settings
0x89 brightnessdown      # FN+F2 Brightness down
0x88 brightnessup        # FN+F3 Brightness up
0x82 switchvideomode     # FN+F4 Switch video mode
0xF9 f23                 # FN+F5 Turn touchpad off
0xA0 mute                # FN+F6 Mute
0xAE volumedown          # FN+F7 Volume down
0xB0 volumeup            # FN+F8 Volume up
0x97 kbdillumdown        # FN+F9 Keyboard backlight down
0x96 kbdillumup          # FN+F10 Keyboard backlight up
0xB3 silentmode          # FN+F11 Silentmode
0xD5 wlan                # FN+F12 WiFi
 
 
создаем файлик /lib/udev/keymaps/force-release/samsung-900x3c
и вставляем этот текст
# /lib/udev/keymaps/force-release/samsung-900x3c
0xCE # FN+F1 System Settings
0x89 # FN+F2 Brightness down
0x88 # FN+F3 Brightness up
0x82 # FN+F4 Switch video mode
0xF9 # FN+F5 Turn touchpad off
0xA0 # FN+F6 Mute
0xAE # FN+F7 Volume down
0xB0 # FN+F8 Volume up
0x97 # FN+F9 Keyboard backlight down
0x96 # FN+F10 Keyboard backlight up
0xB3 # FN+F11 Silentmode
0xD5 # FN+F12 WiFi 
 
открываем файл /lib/udev/rules.d/95-keymap.rules
находим строку 
ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="*90X3A*", RUN+="keymap $name samsung-90x3a"
вставляем после нее строчку
ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="900X3C*", RUN+="keymap $name samsung-900x3c"

открываем файл /lib/udev/rules.d/95-keyboard-force-release.rules
находим строку
ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="*90X3A*", RUN+="keyboard-force-release.sh $devpath samsung-90x3a"
вставляем после неё
ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="900X3C*", RUN+="keyboard-force-release.sh $devpath samsung-900x3c"
 
Открываем файл ~/.xbindkeysrc (от имени простого пользователя)
удаляем оттуда всё, если там что то есть и вставляем эти строки
 
#fnf1

"/usr/bin/gnome-control-center"
m:0x0 + c:156
XF86Launch1

#fnf11
"/usr/bin/samsung-tools --show-notify --quiet --cpu hotkey"
m:0x0 + c:210
XF86Launch3

#fnf12
"/usr/bin/samsung-tools --show-notify --quiet --wireless hotkey"
m:0x0 + c:246
XF86WLAN

# End of xbindkeys configuration
"SamsungToolsDummyCommand"
  Control+Alt+Shift+Mod4+F1+F2+F3

#
# End of xbindkeys configuration

 
Теперь ставим самсунговские тулзы
apt-add-repository ppa:voria/ppa
apt-get update
apt-get install samsung-tools samsung-laptop xbindkeys-config 


5. Тачпад

Чтобы заработали все фичи тачпада делаем следующее

создаем файл /usr/share/X11/xorg.conf.d/52-synaptics-custom.conf

и вставляем в него строки
Section "InputClass"
Identifier      "samsung n900x3c clickpad"
MatchIsTouchpad "on"
MatchDevicePath "/dev/input/event*"
Option "SHMConfig"     "On"
Option "RTCornerButton" "2" #right-click to bottom right
Option "RBCornerButton" "3" #right-click to bottom right
Option "LTCornerButton" "6" #right-click to bottom right
Option "LBCornerButton" "7" #right-click to bottom right
Option "TapAndDragGesture" "1" #tap&release then tap&drag
Option "PalmDetect" "1" #avoid bad track behavior
Option "VertTwoFingerScroll" "1" #two-finger vertical scroll
Option "VertEdgeScroll" "0" #right edge vertical scroll
Option "TapButton1" "1" #one-finger tap = left-click
Option "TapButton2" "3" #two-finger tap = right-click1
Option "ClickPad=1"
EndSection
 
создаем файл /usr/local/bin/synaptics.sh
вставляем в него строки
 
#!/bin/sh
synclient RightButtonAreaLeft=1600
synclient RightButtonAreaRight=2946
synclient RightButtonAreaTop=1040
synclient RightButtonAreaBottom=1872
 
делаем этот файл исполняемым
chmod +x /usr/local/bin/synaptics.sh
 
добавляем файлик в автозапуск, для этого создаем файл /etc/xdg/autostart/synaptics.desktop
 
и вставляем в него такие строки
[Desktop Entry]
Type=Application
Exec=/usr/local/bin/synaptics.sh
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name[en_US]=touchpad
Name=touchpad
Comment[en_US]=touchpad addons
Comment=touchpad addons
 
 

ПЕРЕЗАГРУЖАЕМСЯ!

 
 

6. Регулировка яркости подсветки клавиатуры

 
 в файл /etc/modules добавляем строчку
samsung-laptop

подгружаем модуль
modprobe samsung-laptop

чтобы узнать адрес нашего устройства яркости набираем в консоли
# ls /sys/class/leds/
phy0-led  samsung::kbd_backlight

следовательно чтобы назначить яркость, нужно от суперюзера (на данный момент) передать значение от 0 до 4 в файл
/sys/class/leds/samsung::kbd_backlight/brightness

например
echo 0 > /sys/class/leds/samsung\:\:kbd_backlight/brightness

Теперь наша задача всё это автоматизировать, метод взят отсюда.
Только на моем самсунге и операционке Mint состояние яркости сохраняется, так что я значительно упростил скриптик

Создаем скриптик регулировки

sudo nano /bin/k-light

вставляем туда текст
#!/bin/bash
#путь до нашего устройства яркости
devpath="/sys/class/leds/samsung::kbd_backlight/brightness"
current=$(cat "$devpath")
if [ "$1" = "up" ] && [ "$current" -lt 4 ]; then
current=`expr $current + 1`
fi;
if [ "$1" = "down" ] && [ "$current" -gt 0 ]; then
current=`expr $current - 1`
fi;
echo $current > $devpath
echo $current



делаем файл исполняемым
sudo chmod +x /bin/k-light

теперь нам нужно дать для обычного пользователя право изменять этот файл, для этого надо создать скрипт автозапуска, который будет переправлять права

sudo nano /etc/init.d/autostart.sh


вставляем туда текст
#!/bin/bash
chmod 0777 "/sys/class/leds/samsung::kbd_backlight/brightness"

Делаем скрипт исполняемым и добавляем в автозапуск 
sudo chmod +x /etc/init.d/autostart.sh
sudo update-rc.d autostart.sh defaults 95
 
Теперь нужно привязать сочетания Fn+F9 и Fn+F10 к нашему скрипту, для этого нужно в том же самом файле ~/.xbindkeysrc
дописать строки
#key light down
"k-light down"
XF86KbdBrightnessDown
#key light up
"k-light up"
XF86KbdBrightnessUp
 
а потом перезайти или перезагрузиться, чтобы активировались хоткеи
 

7. SSD Trim

Прочитать подробнее можно например вот тут
 
Смысл в том, что нужо добавить опцию discard к разделам диска 



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

Что мы имеем в конечном итоге:

1. Работает регулировка яркости экрана
2. Работает регулировка яркости подсветки клавиатуры
3. Работает wifi, bluetooth
4. Хоткеями можно включить/выключить wifi,тачпад
5. Хоткеями можно переключать режимы энергосбережения (Fn+F11)
6. На тачпаде работает скроллинг двумя пальцами, нажатие на правый нижний угол равно правой кнопке клавиатуры, тап двумя пальцами тоже работает как правая кнопка клавиатуры.

Если кто не верит, могу показать что всё работает))) Всё почти как в винде завелось и работает, только остались под вопросом всякие режимы сна и гибернации, ну если вам оно нужно - копайтесь сами.


Купить ноутбук Samsung 900x3c в Екатеринбурге в интернет-магазине

11 комментариев:

Unknown комментирует...

Большое спасибо! Очень искал опыт установки linux на эту серию ультрабуков.

P.S. Поисковики на вас как-то вяло выходят.

Павел комментирует...

Потому что еще проиндексировать не успели, совсем недавно написал статью

Unknown комментирует...

Hello sex!
Чую перейду я на Apple такими темпами. Время своё таки дороже стоит, если каждый раз так мучаться.

Павел комментирует...

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

Анонимный комментирует...

Сделал все по инструкции, но почему то права на доступ к файлу регулироки яркости клавиатуры "/sys/class/leds/samsung::kbd_backlight/brightness" меняются только после команды sudo sh /etc/init.d/autostart.sh (ну или через аналогичный запуск созданых скриптов в /etc/rc*.d/).

Может скрипт autostart.sh необходимо запустить позже? или это не исправит проблему?

Павел комментирует...

/etc/init.d/autostart.sh выполняется от суперпользователя (тоже sudo), после перезагрузки компа введите

ls -l /sys/class/leds/samsung::kbd_backlight/brightness

Unknown комментирует...

Здравствуйте,а для 13.04 это актуально?

Павел комментирует...

Здравствуйте, думаю что актуально, хотя возможно в новой версии придется меньше телодвижений делать

1qqq комментирует...

Когда же уже пофиксят багу с закритием крышки. Уже ядро 3.12 а баг все не уходит.

Yuri комментирует...

Привет, у меня Ubuntu 14.04 перестала видет клавиатуру ноутбука. В загрузщике Grub все работает, но когда загрузилась Ubuntu клавиатура перестает работать. ПРиходится подключать внешнюю клаву через Usb. как решить проблему? Спасибо.

Павел комментирует...

Юрий, какой то модуль загружается, который убивает клавиатуру, попробуйте в блеклист прописать. Вот например у меня при загрузке модуля видеокарты - звук шел через HDMI и не переключался на основную акустику. Погуглите по словам Linux keyboard и модель вашего ноута, например "Bug keyboard Samsung 900 Linux", думаю, что найдете фикс.

Отправить комментарий