FreeBSD amd64 в виртуалке KVM на xeon-E3
С удивлением сегодня узнали, что 64-битная freebsd не работает внутри KVM-ной виртуалки на сервере с процессором xeon серии e3. На других процах работает, на этом не хочет. При этом 32-битная работает без проблем.
Asus u30jc suspend
Изначально оно не хотело работать. При суспенде всё повисало, хотя лог уверял, что всё прошло нормально. Солюшн нашёл тут. Как ни странно, на убунтоидном форуме.
Итак.
-
Создаём файл /etc/pm/sleep.d/20_custom-ehci_hcd со следующим содержанием>
#!/bin/sh # File: "/etc/pm/sleep.d/20_custom-ehci_hcd". case "${1}" in hibernate|suspend) # Unbind ehci_hcd for first device 0000:00:1a.0 echo -n "0000:00:1a.0" | tee /sys/bus/pci/drivers/ehci_hcd/unbind # Unbind ehci_hcd for second device 0000:00:1d.0 echo -n "0000:00:1d.0" | tee /sys/bus/pci/drivers/ehci_hcd/unbind ;; resume|thaw) # Bind ehci_hcd for first device 0000:00:1a.0 echo -n "0000:00:1a.0" | tee /sys/bus/pci/drivers/ehci_hcd/bind # Bind ehci_hcd for second device 0000:00:1d.0 echo -n "0000:00:1d.0" | tee /sys/bus/pci/drivers/ehci_hcd/bind ;; esac
Вместо 0000:00:1a.0 и 0000:00:1d.0 подставить ID девайсов, находящится в /sys/bus/pci/drivers/ehci_hcd/
-
делаем файл исполняемым
chmod +x /etc/pm/sleep.d/20_custom-ehci_hcd
-
Создаём файл /etc/pm/config.d/usb3-suspend-workaround со строкой
SUSPEND_MODULES="xhci"
Хинт: можно и не делать отдельный файл, а добавить в существуюший. Но при обновлении можно забыть об этом
Теперь и s2r и s2d работаю отлично.
Модемное
Обновил на своём ADSL модеме DLink прошивку. Также снял с него нагрузку по поднятию ppp и nat.
nat и ppp поднимает сервер на BSD теперь.
Итог: такое ощущение, что я перешёл на тариф, с каналом шире в два раза. Вот такие вот пироги.
Мышиный тачпад
Случайно выяснил, что тачпад определяется как мышь, и в иксах использует драйвер evdev, а не synaptics. В результате, его нельзя конфигурять через synclient.
Вскрытие показало, что определяет так само ядро. В вводе dmesg про touchpad не было ни слова, зато было следующее.
eeepc ~ # dmesg | grep -i mouse
mice: PS/2 mouse device common for all mice
input: ImPS/2 Logitech Wheel Mouse as /devices/platform/i8042/serio1/input/input9
eeepc ~ #
После пары дней гадания и поиска, выяснил, что необходимо включить опцию
CONFIG_MOUSE_PS2_ELANTECH=y
Где находится — писать не буду. Поиск в menuconfig вполне поможет.
После включения данной опции, наконец-то появился тачпад
eeepc ~ # dmesg | grep -i touch
input: ETPS/2 Elantech Touchpad as /devices/platform/i8042/serio1/input/input9
eeepc ~ #
Теперь можно управлять тачпадом через synclient
mesa-7.6
Обновил на ноутбуке mesa до 7.6. В основном дереве портежей ещё только 7.5.2.
Подключил оверлей x11. layman -a x11
и обновил мир.
Собственно обновить я решил, так как там переписали часть для чипа ati r300.
До обновления glxgears выдавал ~300fps. После обновления ~600fps. Я доволен как слон.
EFI
При установке gentoo, обнаружил 2 интересных раздела на винте, помимо видового
/dev/sda3 18814 19451 5124735 1c Скрытый W95 FAT32 (LBA)
/dev/sda4 19452 19457 48195 ef EFI (FAT-12/16/32)
Особенно интересен оказался sda4.
Гугл показал, что служат они для ускорения загрузки. Решил оставить на всякий случай. Снести всегда можно.
kms(kernel mode setting) он intel
Решил на eeepc попробовать такую штуку. Эта штука позволяет ядру управлять разрешением экрана.
Для того, чтобы оно работало, нужно включить KMS в ядре. Я вкомпилил вместе с дровами жёстко. На eeepc видеокарта intel встроенная. Также, нужно убрать все фреймбуфферы, но поддержку самого FB оставить. Также включил поддержку декораций фреймбуфера для сплеша.
Для начала переделал конфиг сплэша и картинку под разрешение 1024×600
Сделал генкернелом initrd с бутсплешом, перезагружаюсь, и ядро выбирает само нужный режим для консоли. Иксы работают, переключение в консоль происходит мягко, без задержки и моргания. Я доволен
eeepc
Купил себе нетбук Asus EEEPC 1000HE.
И разумеется, сразу установил на него gentoo. Сеть работает (и ethernet и wifi), все необходимые кнопки работают. Иксы работают. Буду играться…
Asus F5RL, вебкамера и gentoo
Являюсь обладателем ноутбука Asus F5RL. В то время, как на нём стояла kubuntu, встроенная вебкамера работала и показывала меня. После того, как я поставил gentoo, работать камера отказалась.
Собственно, она мне была не нужна, поэтому я и не обращал внимания на неё. Но сейчас вот решил установить skype и камера мне понадобилась. А «ядрёного» драйвера для неё нету.
lsusb определяет камеру вот так:
Bus 001 Device 004: ID 174f:6a31 Syntek Web Cam - Asus A8J, F3S, F5R, VX2S, V1S
Как оказалось, для этой камеры есть отдельный драйвер — stk11xx, и для него даже есть ебилд(ebuild).
В основном дереве портежей (да и в оверлеях тоже) его нету. Поэтому, чтобы собрать его, необходимо создать локальный оверлей, и положить в него этот ебилд. Скачать его можно отсюда.
У меня этот локальный оверлей выглядит приблизительно вот так:
laptop ~ # ls -la /usr/overlays/my/media-video/stk11xx/
итого 8
drwxr-xr-x 2 root root 112 Сен 15 00:42 .
drwxr-xr-x 3 root root 72 Сен 15 00:40 ..
-rw-r--r-- 1 root root 721 Сен 15 00:41 stk11xx-2.1.0.ebuild
laptop ~ #
В /etc/make.conf надо добавить PORTDIR_OVERLAY=»/usr/overlays/my»
После надо зайти в директорию с файлом ебилда и сказать ebuild stk11xx-2.1.0.ebuild digest чтобы создать файл с чексуммой.
Теперь установим (emerge stk11xx), и загрузим модуль (modprobe stk11xx).
Вуаля, теперь скайп видит вебкамеру, и использует её по назначению.
Также модуль можно добавить в автозагрузку. Делается это в файле /etc/conf.d/modules
Настройка дополнительных клавиш мыши
Как я писал, я купил многокнопочную мышь. Все кнопки мыши видятся через xev. Теперь надо на эти кнопки прикрутить какое-либо действие.
Я решил сделать, чтобы на нажатие боковых кнопок (их 2) песни в плеере перематывались следующая/предыдущая. Сделал я это через xbindkeys и dbus.
Для начала о dbus. В качестве плеера я использую qmmp. У него есть управление через dbus. То есть можно из командной строки управлять им. Посылать сигнылы в dbus можно через qdbus. Например для переключения на следующую композицию используется следующая команда
/usr/bin/qdbus org.mpris.qmmp /Player Next
Аналогично для переключения на предыдущую
/usr/bin/qdbus org.mpris.qmmp /Player Prev
Теперь, как это привязать к нажатиям кнопок мыши. Они числятся 8-й и 9-й кнопкой. Для этого используется xbindkeys. Я создал файл ~/.xbindkeysrc со следующим содержанием.
"/usr/bin/qdbus org.mpris.qmmp /Player Next"
b:9
"/usr/bin/qdbus org.mpris.qmmp /Player Prev"
b:8
Запустил xbindkeys, и, вуаля, кнопки перематывают песни
И добавил xbindkeys в автозапуск.