w00zy |
|
Темы:
20
Сообщения:
336
Участник с: 09 декабря 2008
|
Стал, не так давно, обладателем сего девайса. Побаловавшись с идущим в комплекте седьмым басиком, занялся делом. Дешевая и простенькая лошадка T4300, 3гига, 350 гектар. Естественно арч64 устанавливается влет. Тачпад. Установлен тачпад поддерживающий скролинг двумя пальцами. Ни халом, ни через настройки гнома скролинг не подхватился, и дабы не мудрствовать (все равно задаю еще параметры), оживляю опции скриптом в автозапуске #!/bin/sh # # Use xinput --list-props 13 to extract data # ID=$(xinput list | grep "SynPS/2 Synaptics TouchPad" | awk {'print $6'} | sed -e 's/id=//g') # Set multi-touch emulation parameters xinput set-int-prop ${ID} "Synaptics Two-Finger Pressure" 32 10 xinput set-int-prop ${ID} "Synaptics Two-Finger Width" 32 8 xinput set-int-prop ${ID} "Two-Finger Scrolling" 8 1 xinput set-int-prop ${ID} "Synaptics Two-Finger Scrolling" 8 1 1 # Disable edge scrolling xinput set-int-prop ${ID} "Synaptics Edge Scrolling" 8 0 0 0 # This will make cursor not to jump if you have two fingers on the touchpad and you list one # (which you usually do after two-finger scrolling) xinput set-int-prop ${ID} "Synaptics Jumpy Cursor Threshold" 32 110 Функциональные клавиши. Работают через одну. Регулировка громкости. отключение тачпада - да. Яркость и отключение wi-fi - нет. Яркость так-же не регулируется апплетом “Апплет управления яркостью” и прямым указанием уровня в /sys/… Вещь нужная - поставил костыль. Измененный модуль samsung-laptop (добавил поддержку R530/R730) samsung-laptop.c /* * Samsung N130 and NC10 Laptop Backlight driver * * Copyright (C) 2009 Greg Kroah-Hartman ([email protected]) * Copyright (C) 2009 Novell Inc. * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 as published by * the Free Software Foundation. * */ /* * Support of laptops is added R530/R730 * 07.03.2010 w00zy (c) [email protected] * */ #include <linux/kernel.h> #include <linux/init.h> #include <linux/module.h> #include <linux/pci.h> #include <linux/backlight.h> #include <linux/fb.h> #include <linux/dmi.h> #define MAX_BRIGHT 0x07 #define OFFSET 0xf4 /* * HAL/gnome-display-manager really wants us to only set 8 different levels for * the brightness control. And since 256 different levels seems a bit * overkill, that's fine. So let's map the 256 values to 8 different ones: * * userspace 0 1 2 3 4 5 6 7 * hardware 31 63 95 127 159 195 223 255 * * or hardware = ((userspace + 1) * 32)-1 * * Note, we keep value 0 at a positive value, otherwise the screen goes * blank because HAL likes to set the backlight to 0 at startup when there is * no power plugged in. */ static int offset = OFFSET; module_param(offset, int, S_IRUGO | S_IWUSR); MODULE_PARM_DESC(offset, "The offset into the PCI device for the brightness control"); static struct pci_dev *pci_device; static struct backlight_device *backlight_device; static u8 read_brightness(void) { u8 kernel_brightness; u8 user_brightness = 0; pci_read_config_byte(pci_device, offset, &kernel_brightness); user_brightness = ((kernel_brightness + 1) / 32) - 1; return user_brightness; } static void set_brightness(u8 user_brightness) { u16 kernel_brightness = 0; kernel_brightness = ((user_brightness + 1) * 32) - 1; pci_write_config_byte(pci_device, offset, (u8)kernel_brightness); } static int get_brightness(struct backlight_device *bd) { return bd->props.brightness; } static int update_status(struct backlight_device *bd) { set_brightness(bd->props.brightness); return 0; } static struct backlight_ops backlight_ops = { .get_brightness = get_brightness, .update_status = update_status, }; static int __init dmi_check_cb(const struct dmi_system_id *id) { printk(KERN_INFO KBUILD_MODNAME ": found laptop model '%s'\n", id->ident); return 0; } static struct dmi_system_id __initdata samsung_dmi_table[] = { { .ident = "R530/R730", .matches = { DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."), DMI_MATCH(DMI_PRODUCT_NAME, "R530/R730"), DMI_MATCH(DMI_BOARD_NAME, "R530/R730"), }, .callback = dmi_check_cb, }, { .ident = "N120", .matches = { DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."), DMI_MATCH(DMI_PRODUCT_NAME, "N120"), DMI_MATCH(DMI_BOARD_NAME, "N120"), }, .callback = dmi_check_cb, }, { .ident = "N130", .matches = { DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."), DMI_MATCH(DMI_PRODUCT_NAME, "N130"), DMI_MATCH(DMI_BOARD_NAME, "N130"), }, .callback = dmi_check_cb, }, { .ident = "NC10", .matches = { DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."), DMI_MATCH(DMI_PRODUCT_NAME, "NC10"), DMI_MATCH(DMI_BOARD_NAME, "NC10"), }, .callback = dmi_check_cb, }, { .ident = "NP-Q45", .matches = { DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."), DMI_MATCH(DMI_PRODUCT_NAME, "SQ45S70S"), DMI_MATCH(DMI_BOARD_NAME, "SQ45S70S"), }, .callback = dmi_check_cb, }, { }, }; static int __init samsung_init(void) { if (!dmi_check_system(samsung_dmi_table)) return -ENODEV; /* * The Samsung N120, N130, and NC10 use pci device id 0x27ae, while the * NP-Q45 uses 0x2a02. Odds are we might need to add more to the * list over time... Samsung R530/R730 0x2a42 */ pci_device = pci_get_device(PCI_VENDOR_ID_INTEL, 0x27ae, NULL); if (!pci_device) { pci_device = pci_get_device(PCI_VENDOR_ID_INTEL, 0x2a02, NULL); if (!pci_device) { pci_device = pci_get_device(PCI_VENDOR_ID_INTEL, 0x2a42, NULL); if (!pci_device) return -ENODEV; } } /* create a backlight device to talk to this one */ backlight_device = backlight_device_register("samsung", &pci_device->dev, NULL, &backlight_ops); if (IS_ERR(backlight_device)) { pci_dev_put(pci_device); return PTR_ERR(backlight_device); } backlight_device->props.max_brightness = MAX_BRIGHT; backlight_device->props.brightness = read_brightness(); backlight_device->props.power = FB_BLANK_UNBLANK; backlight_update_status(backlight_device); return 0; } static void __exit samsung_exit(void) { backlight_device_unregister(backlight_device); /* we are done with the PCI device, put it back */ pci_dev_put(pci_device); } module_init(samsung_init); module_exit(samsung_exit); MODULE_AUTHOR("Greg Kroah-Hartman <[email protected]>"); MODULE_DESCRIPTION("Samsung Backlight driver"); MODULE_LICENSE("GPL"); MODULE_ALIAS("dmi:*:svnSAMSUNGELECTRONICSCO.,LTD.:pnN120:*:rnN120:*"); MODULE_ALIAS("dmi:*:svnSAMSUNGELECTRONICSCO.,LTD.:pnN130:*:rnN130:*"); MODULE_ALIAS("dmi:*:svnSAMSUNGELECTRONICSCO.,LTD.:pnNC10:*:rnNC10:*"); MODULE_ALIAS("dmi:*:svnSAMSUNGELECTRONICSCO.,LTD.:pnSQ45S70S:*:rnSQ45S70S:*"); MODULE_ALIAS("dmi:*:svnSAMSUNGELECTRONICSCO.,LTD.:pnR530:*:rnR530:*"); MODULE_ALIAS("dmi:*:svnSAMSUNGELECTRONICSCO.,LTD.:pnR530/R730:*:rnR530/R730:*"); Makefile ifneq ($(KERNELRELEASE),) obj-m := samsung-laptop.o else KERNELDIR ?= /lib/modules/$(shell uname -r)/build PWD := $(shell pwd) default: $(MAKE) -C $(KERNELDIR) M=$(PWD) modules endif Сборка make -C /usr/src/linux-`uname -r` SUBDIRS=$PWD modules modules_install Осталось оповестить остальные гномо-кеды. В строке параметров ядра ( в menu.lst груба) добавим ” acpi_backlight=vendor" и после перезагрузке софт регулирует яркость. Клавиши, к сожалению, так и не заработают - надо копать глубже. Не хочу. На сегодня, новостей больше нет (с) (И.Демидов) |
malchun |
|
Темы:
0
Сообщения:
3
Участник с: 22 июня 2010
|
Простите, а не было ли проблем с интернетом при установке? Приобрёл сходную машинку, установил арч 2010.05 х86-64, при попытке подключться пишет что-то вроде “network is unreachable”, попытка рестарта (/etc/rc.d/network restart) показала следующее:
|
kirpichpda |
|
Темы:
17
Сообщения:
165
Участник с: 21 июля 2009
|
rc.conf свой покажите |
w00zy |
|
Темы:
20
Сообщения:
336
Участник с: 09 декабря 2008
|
malchunНет. Железо оч.хор. поддерживаемое. Смотрите свои конфиги. -> lspci ...................... 02:00.0 Network controller: Atheros Communications Inc. AR9285 Wireless Network Adapter (PCI-Express) (rev 01) 04:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8040 PCI-E Fast Ethernet Controller Кстати, слегка обновлю первый пост. Подсветка. Доработанный модуль можно взять https://sourceforge.net/projects/staybo … 2/download В грубе параметры ядра добавить acpi_enforce_resources=lax acpi_osi=Linux acpi_backlight=vendor video=1366x768 Горячии клавиши. /etc/rc.local # rc.local # echo 130,131,132,134,136,137,177,179,247,249 > /sys/devices/platform/i8042/serio0/force_release 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 /etc/udev/rules.d/75-keymap.rules #/etc/udev/rules.d/75-keymap.rules ACTION=="remove", GOTO="keyboard_end" SUBSYSTEM!="input", GOTO="keyboard_end" KERNEL!="event[0-9]*", GOTO="keyboard_end" DRIVERS!="atkbd", GOTO="keyboard_end" ENV{DMI_VENDOR}="$attr{[dmi/id]sys_vendor}" ENV{DMI_VENDOR}=="", GOTO="keyboard_end" ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="*R530/R730*", RUN+="/lib/udev/keymap $name /lib/udev/keymaps/samsung-other" LABEL="keyboard_end" Тачпад - включаем скролл двумя пальцами /etc/udev/rules.d/75-synaptics.rules #/etc/udev/rules.d/75-synaptics.rules ACTION!="add|change", GOTO="xorg_synaptics_hubi_end" KERNEL!="event[0-9]*", GOTO="xorg_synaptics_hubi_end" ATTRS{protocol}!="SynPS/2", GOTO="xorg_synaptics_hubi_end" #KERNEL=="event[0-9]*", SUBSYSTEM=="input", ATTRS{protocol}=="SynPS/2", SYMLINK+="input/synaptics" ATTR{device/name}=="*SynPS/2*", ENV{x11_driver}="synaptics", ENV{x11_options.SHMConfig}="On", ENV{x11_options.TapButton1}="1", ENV{x11_options.TapButton2}="2", ENV{x11_options.TapButton3}="3", ENV{x11_options.ClickFinger1}="1", ENV{x11_options.ClickFinger2}="2",ENV{x11_options.ClickFinger3}="0", ENV{x11_options.VertEdgeScroll}="0", ENV{x11_options.HorizEdgeScroll}="0", ENV{x11_options.VertTwoFingerScroll}="1", ENV{x11_options.HorizTwoFingerScroll}="1", ENV{x11_options.JumpyCursorThreshold}="90", ENV{x11_options.EmulateTwoFingerMinZ}="20", ENV{x11_options.TouchpadOff}="0", ENV{x11_options.GuestMouseOff}="0", SYMLINK+="input/synaptics" LABEL="xorg_synaptics_hubi_end" /etc/X11/xorg.conf.d/10-synaptics.conf Section "InputClass" Identifier "touchpad" Driver "synaptics" MatchIsTouchpad "on" Option "Device" "/dev/input/synaptics" Option "SHMConfig" "on" Option "TapButton1" "1" Option "TapButton2" "2" Option "TapButton3" "3" Option "ClickFinger1" "1" Option "ClickFinger2" "2" Option "ClickFinger3" "0" Option "VertEdgeScroll" "0" Option "HorizEdgeScroll" "0" Option "VertTwoFingerScroll" "1" Option "HorizTwoFingerScroll" "1" Option "JumpyCursorThreshold" "90" Option "EmulateTwoFingerMinZ" "20" Option "TouchpadOff" "0" Option "FingerLow" "25" # pressure below this level triggers release Option "FingerHigh" "30" # pressure above this level triggers touch Option "GuestMouseOff" "0" EndSection ЭЭЭЭЭ,вроде все. |
malchun |
|
Темы:
0
Сообщения:
3
Участник с: 22 июня 2010
|
Ясно. Значит проблема в конфигах. Спасибо за ответ. to kirpichPDA К сожалению не могу, так как интернет не поднялся вместе с сетью, пришлось временно ставить убунту. Если вы имеете предположения по поводу данной ошибки, прошу указать сейчас, так как вскоре будет вторая попытка установки. Заранее спасибо. |
nick |
|
Темы:
0
Сообщения:
2
Участник с: 27 июня 2010
|
Можете добавить поддержку r519?{ .ident = "R519/R719", .matches = { DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."), DMI_MATCH(DMI_PRODUCT_NAME, "R519/R719"), DMI_MATCH(DMI_BOARD_NAME, "R519/R719"), }, .callback = dmi_check_cb, }, Также ваш модуль не собирается на 2.6.34, там изменена ф-я extern struct backlight_device *backlight_device_register(const char *name, struct device *dev, void *devdata, const struct backlight_ops *ops, const struct backlight_properties *props); |