====== Практическое использование свободных программ (конкретные статьи, рецепты, методы) ======
Здесь пишем то, чем успешно воспользовались лично, то, что проверено и актуально.
===== Настройка переключения языков средствами XORG (через xorg.conf) =====
Список (вероятно полный) параметров XORG, связанных с переключением раскладок клавиатуры (языка ввода)
можно посмотреть в этом файле:
''/usr/share/X11/xkb/rules/xorg.lst''
За язык в ''/etc/X11/xorg.conf'' отвечает секция ''InputDevice'':
Section "InputDevice"
Identifier "Generic Keyboard"
Driver "kbd"
Option "XkbRules" "xorg"
Option "XkbModel" "pc105"
Option "XkbLayout" "us,ru"
Option "XkbOptions" "grp:rctrl_toggle,grp_led:scroll"
EndSection
Здесь язык (группа) переключается правой клавишей Ctrl, а индикатором языка служит светодиод на клавиатуре с
надписью "Scroll Lock". Когда активна русская раскладка - он горит, когда английская - нет. По-умолчанию
включен английский язык, т.к. он первый в опции ''XkbLayout''. Если нужно больше чем два языка, их нужно писать
также через запятую в опции ''XkbLayout''.
Параметры ''Identifier'', ''Driver'' и опция ''XkbRules'' могут отличаться от дистрибутива к дистрибутиву - их
изменять не нужно. Опция ''XkbModel'' зависит от подключенной клавиатуры.
За переключение языка в этом примере отвечают только опции ''XkbLayout'' и ''XkbOptions''.
Если файл ''/etc/X11/xorg.conf'' пуст, то нужно вставить в него вышеприведённую секцию целиком и
изменить значение параметра ''Identifier'' на понятный XORG'у. Для этого следует выполнить ''X -cofigure'',
после чего в домашней директории появляется файл ''xorg.config.new'', в котором и можно посмотреть
идентификатор (во встретившимся мне случае он был Keyboard0).
И **обязательно** добавить пустую строку в конце файла - иначе XORG не загрузится (обругавшись
на отсутствие пустой строки в конце файла).
===== Как запустить один XOrg внутри другого (Xephyr) =====
Взято с http://www.fedoralinux.ru/content/view/17/47/
{{ http://www.fedoralinux.ru/images/day_packet/XephyrThumb.png}}
''Xephyr'' – альтернатива вложенному ''X''-серверу ''Xnest'' , рассмотренному на прошлой неделе. Обе эти программы используются для создания вложенного ''X''-сервера, т.е. работающего в отдельном окне, запущенном под родительским ''X''-сервером, вместо использования отдельного компьютера с монитором. ''Xnest'' сам не выполняет запросы, а перенаправляет их родительскому серверу. ''Xephyr'' же сам отрисовывает все запросы в окошке, в котором запущен.
Это означает, что ''Xephyr'' может выполнять такие запросы, которые родительский сервер выполнять не может. К примеру, он может использовать ''RENDER'' (расширение для быстрого сглаживания текста), даже если его не поддерживает родительский ''X''-сервер.
К несчастью, ''gdm'' не работает с ''Xephyr'', но вы можете использовать ''gdmflexiserver'' для работы с ним. Тем не менее, если вы хотите использовать ''XDMCP'' (удаленный логин), вы можете запустить ''Xephyr'' вручную и сделать запрос формы логина из ''gdm'':
$ Xephyr -query localhost -screen 800x600 :1
Если ''localhost'' – это ''XDMCP'' сервер, ''800x600'' – требуемое разрешение, а '':1'' – номер дисплея (можно использовать любой свободный номер).
Установка из командной строки: ''yum install xorg-x11-server-Xephyr''
Установка, используя графический инсталлятор: нет в списке пакетов, используйте поиск
Расположение в меню после установки: нет
Команда запуска: ''/usr/bin/Xephyr'' (обратите внимание на заглавную букву ''X'')
Сайт: http://x.org/
Взято с http://genkdesvn.mailstation.de/ru/dokumentacija/ispolzovanie-xephyr.html
Прежде всего убедитесь в том, что ''xorg-server'' собран с флагом ''kdrive''. После этого войдите в систему под аккаунтом вашего пользователя для KDE4 и запустите ''Xephyr''. Например так:
Xephyr -ac -screen 1024x768 :1 &
После этого вы должны экспортировать переменную ''DISPLAY'' с номером дисплея, который в передали как параметр при запуске ''Xephyr'' (в нашем примере - '':1''):
export DISPLAY=:1
После этого следует настроить среду для KDE4:
unset KDE_IS_PRELINKED
# if you are using the 3.96.0 ebuilds, set KDEDIR=/usr/kde/3.9
export KDEDIR=/usr/kde/svn
export KDEDIRS=/usr:/usr/local:$KDEDIR
export QTEST_COLORED=1
export QT_PLUGIN_PATH=$KDEDIR/lib/kde4/plugins/
export PATH=$KDEDIR/bin:$PATH
export LDPATH="$KDEDIR/lib:$LDPATH"
export XDG_DATA_DIRS=/usr/share:${KDEDIR}/share:/usr/local/share
export XDG_CONFIG_DIRS=$KDEDIR/etc/xdg
export PATH=${PATH//\/usr\/kde\/3.5\/bin}
Теперь вы готовы к запуску вашего любимого приложения.
Я реально запускал так:
В одном терминале: ''Xephyr -ac :1''
Во втором: ''DISPLAY=:1 ./windowlab'' (windowlab - это оконный менеджер)
В **новой версии** ''Xorg'' на смену ''Xephyr'' и ''Xnest'' идут ''xf86-video-nested'' и ''xf86-video-dummy''.
===== Как запустить мышь для последовательного порта в XOrg =====
По-умолчанию XOrg запускает мыши для PS/2 и USB портов сам. А COM-портовские мышки не работают.
Чтобы запустить, нужно изменить файл ''xorg.conf''.
Взято с: http://www.opennet.ru/openforum/vsluhforumID15/200.html
Section "InputDevice"
...
Driver "mouse"
Option "Protocol" "Auto"
Option "Device" "/dev/ttyS0"
...
EndSection
Это указывает на то, что мышь на первом (tty0) последовательном порте, а протокол её работы автоматически
определяет XOrg. По факту, после загрузки XOrg, мышь не начинает работать сразу, а только после нескольких нажатий
на её кнопки. Скорее всего, до этого, XOrg не может провести автоопределение протокола.
Чтобы это поправить, нужно указать протокол в явном виде для конкретной мыши, например "microsoft".
===== Как сделать разбор командной строки в bash =====
Взято с: http://systhread.net/texts/200704optparse.php
while [ "$#" -gt "0" ]
do
case $1 in
-F|--setflag)
F_FLAG=1
;;
-f|--file)
shift
FILE_ARGUMENET=$1
;;
-u|--usage)
Usage
exit 0
;;
*)
echo "Syntax Error"
Usage
exit 1
;;
esac
shift
done
===== Оставить от PDF только нужные страницы =====
for f in packet_*.pdf; do pdftk $f cat 1 2 4 5 output cuted_$f; done;
===== Найти дубликаты файлов =====
fdupes -r ./
-r если нужна рекурсия в подкаталоги
Найдена, но не проверена: fslint (с графической оболочкой)
===== Принудительный запуск звуковой карты как snd-hda-intel =====
Добавить в
/etc/modprobe.d/alsa-base.conf :
options snd-hda-intel model="generic"
===== Передать файл по SSH =====
scp -P portnumber username@hostname.ru:/home/username/back/filename.tar.bz2 filename.tar.bz2
===== Разделить FLAC на треки FLAC =====
Взято с: http://geckich.blogspot.com/2013/08/cue-flac-linux.html
Как разделить образ .cue на треки .flac в Linux
Вот бывает хочется сделать свой аудиодиск с подборкой композиций из разных альбомов. Делать его из mp3 не разумно, т. к. mp3 - сжатие с потерей качества и от того, что мы его "раздуем" обратно в audio cd качество не улучшится. Потому лучше брать музыку в lossless фотматах. Но очень часто музыка идет одним образом, в котором содержаться все треки альбома. А если нам нужно вытянуть оттуда только несколько песен?
На примере Debian 7 делаем следующее.
Устанавливаем вначале необходимые пакеты:
aptitude install shntool cuetools
Далее переходим в папку с .cue и разбиваем:
shntool split -f *.cue -o flac *.flac
На выходе получим файлы с именами split-track##.flac. И можем дальше собирать наш аудио-диск.
===== Записать видео и звук с экрана =====
recordmydesktop
===== Раздать Интернет по DHCP =====
Взято с: http://unixforum.org/index.php?showtopic=103646
Выключить адрес раздающей сетевой карты в NetworkManager.
Создать скрипт inet_share.sh, запускаемый от рута:
#! /bin/bash
ifconfig eth0 down
ifconfig eth0 192.168.0.254 netmask 255.255.255.0 up
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o wlan0 -j MASQUERADE
Где:
* wlan0 - WiFi сеть, с которой получен Интернет.
* eth0 - Ethernet сеть, на которую раздаётся Интернет.
* 192.168.0.254 - адрес, который произвольно задаём для раздающей сетевой карты, он же будет маршрутом у клиента и определит сеть, в которую раздаётся Интернет (192.168.0.0).
* /etc/resolv.conf на раздающей машине содержит адрес(а) DNS сервера. В моём случае там: 192.168.1.1
Нужно установить DHCP сервер isc-dhcp-server.
/etc/dhcp/dhcpd.conf содержит его конфигурацию, её нужно отредактировать (мои изменения в примере "very basic subnet declaration"):
#
# Sample configuration file for ISC dhcpd for Debian
#
#
# The ddns-updates-style parameter controls whether or not the server will
# attempt to do a DNS update when a lease is confirmed. We default to the
# behavior of the version 2 packages ('none', since DHCP v2 didn't
# have support for DDNS.)
ddns-update-style none;
# option definitions common to all supported networks...
option domain-name "example.org";
option domain-name-servers ns1.example.org, ns2.example.org;
default-lease-time 600;
max-lease-time 7200;
# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
#authoritative;
# Use this to send dhcp log messages to a different log file (you also
# have to hack syslog.conf to complete the redirection).
log-facility local7;
# No service will be given on this subnet, but declaring it helps the
# DHCP server to understand the network topology.
#subnet 10.152.187.0 netmask 255.255.255.0 {
#}
# This is a very basic subnet declaration.
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.1 192.168.0.253;
option domain-name-servers 192.168.1.1;
option routers 192.168.0.254;
}
# This declaration allows BOOTP clients to get dynamic addresses,
# which we don't really recommend.
#subnet 10.254.239.32 netmask 255.255.255.224 {
# range dynamic-bootp 10.254.239.40 10.254.239.60;
# option broadcast-address 10.254.239.31;
# option routers rtr-239-32-1.example.org;
#}
# A slightly different configuration for an internal subnet.
#subnet 10.5.5.0 netmask 255.255.255.224 {
# range 10.5.5.26 10.5.5.30;
# option domain-name-servers ns1.internal.example.org;
# option domain-name "internal.example.org";
# option routers 10.5.5.1;
# option broadcast-address 10.5.5.31;
# default-lease-time 600;
# max-lease-time 7200;
#}
# Hosts which require special configuration options can be listed in
# host statements. If no address is specified, the address will be
# allocated dynamically (if possible), but the host-specific information
# will still come from the host declaration.
#host passacaglia {
# hardware ethernet 0:0:c0:5d:bd:95;
# filename "vmunix.passacaglia";
# server-name "toccata.fugue.com";
#}
# Fixed IP addresses can also be specified for hosts. These addresses
# should not also be listed as being available for dynamic assignment.
# Hosts for which fixed IP addresses have been specified can boot using
# BOOTP or DHCP. Hosts for which no fixed address is specified can only
# be booted with DHCP, unless there is an address range on the subnet
# to which a BOOTP client is connected which has the dynamic-bootp flag
# set.
#host fantasia {
# hardware ethernet 08:00:07:26:c0:a5;
# fixed-address fantasia.fugue.com;
#}
# You can declare a class of clients and then do address allocation
# based on that. The example below shows a case where all clients
# in a certain class get addresses on the 10.17.224/24 subnet, and all
# other clients get addresses on the 10.0.29/24 subnet.
#class "foo" {
# match if substring (option vendor-class-identifier, 0, 4) = "SUNW";
#}
#shared-network 224-29 {
# subnet 10.17.224.0 netmask 255.255.255.0 {
# option routers rtr-224.example.org;
# }
# subnet 10.0.29.0 netmask 255.255.255.0 {
# option routers rtr-29.example.org;
# }
# pool {
# allow members of "foo";
# range 10.17.224.10 10.17.224.250;
# }
# pool {
# deny members of "foo";
# range 10.0.29.10 10.0.29.230;
# }
#}
После изменения конфига демон нужно перезапускать так:
/etc/init.d/isc-dhcp-server restart
Взято с: http://debian-help.ru/articles/nat-dhcp-server-debian/
/etc/default/isc-dhcp-server
Указать в INTERFACES раздающую карту:
INTERFACES="eth0"
===== LaTeX в ODT =====
Взято с: http://askubuntu.com/questions/82634/how-to-convert-tex-into-odt
pandoc -f latex -t odt -o output.odt input.tex
===== Уменьшить PDF файл =====
Взято с: http://ivnish.blogspot.ru/2012/03/pdf.html
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf
===== Восстановить права на PDF =====
С: http://ono.org.ua/shifrovanie-i-rasshifrovka-dokumentov-v-formate-pdf.html
pdftk A=in.pdf output decrypted.pdf
===== LaTeX - размер шрифта =====
==== Стандартные сокращённые команды для размера шрифта ====
| \tiny | Меньше не бывает |
| \scriptsize | Очень маленький (как в верхних и нижних индексах) |
| \footnotesize | Маленький (как в сносках) |
| \small | Мелкий |
| \normalsize | Нормальный |
| \large | Немного увеличенный |
| \Large | Большой |
| \LARGE | Очень большой |
| \huge | Громадный |
| \Huge | Больше некуда |
==== Переопределение стандартных сокращённых команд ====
Нужно добавить в преамбулу переопределение изменяемых размерных команд:
Взято с: http://dxdy.ru/topic22554.html
\renewcommand\normalsize{\fontsize{14}{16.8pt}\selectfont}
> 14 -- размер шрифта
> 16.8 -- интерлиньяж (стандартный для этого размера, но можно чуть-чуть уменьшить, например, если не укладываешься в требуемое к-во страниц)
Причём, надо понимать, переопределение ''\normalsize'' переопределяет основной текст документа.
TeX может не найти в текущем шрифте подходящего размера глифов -- тогда он
сообщит об этом и попытается подставить ближайший. Если требуется свой точный размер -- его нужно создать.
==== Создание шрифта с произвольным размером ====
Взято с: http://seehuhn.de/pages/poster
(Там же дана ссылка на английское руководство по шрифтам: http://tug.ctan.org/tex-archive/macros/latex/doc/fntguide.pdf )
\documentclass{minimal}
\DeclareFontShape{OT1}{cmr}{m}{n}%
{<5><6><7><8><9><10><12>gen*cmr%
<10.95>cmr10%
<14.4>cmr12%
<17.28><20.74><24.88>cmr17
<72>cmr17}{}
\begin{document}
\fontsize{72pt}{90pt}\selectfont
\noindent This text is very big.
\end{document}
> Using the standard TeX cmr font at 72pt with 90pt baseline distance.
Использование стандартного для TeX'а шрифта ''cmr'' в 72 пункта с расстоянием между базовыми линиями в 90 пунктов.
В этом примере, командой ''\DeclareFontShape'' был создан шрифт, размером 72, который отсутствовал среди стандартных.
Здесь показано, как командой ''\fontsize'' (вместе с ''\selectfont'') можно менять размер шрифта в конкретном месте -- без переопределения команд для всего документа.
===== LaTeX - Как вставить символ ЭДС =====
В преамбулу нужно вставить две строчки:
\usepackage{mathrsfs} % буква для обозначения ЭДС
\newcommand{\EDS}{\ensuremath{\mathscr{E}}} % новая команда \EDS для символа
Взято с: http://moodle.org/mod/forum/discuss.php?d=20788
===== LaTeX - Символы градуса и градуса цельсия =====
\documentclass{article}
\usepackage[utf8x]{inputenc}
\usepackage[T2A]{fontenc}
\usepackage[russian]{babel}
\usepackage{amsfonts,amsmath,amssymb}
\newcommand{\degree}{\text{\textdegree}} % градусы
\newcommand{\celsius}{\text{\textdegree{}C}} %градусы цельсия
\begin{document}
36,5 \celsius
45 \degree
\end{document}
Взято с: http://moodle.org/mod/forum/discuss.php?d=20788
===== LaTeX - русские буквы в формулах =====
Взято с: http://faqs.org.ru/softw/editors/tex.htm
Q. Можно ли использовать русские буквы в формулах?
Хочу, чтобы они выглядели как обычные формулы (со всеми правилами).
A. \usepackage{mathtext} (до задания inputenc, fontenc, babel)
Q. ...а кстати, а почему при этом русские буквы не наклонные?
A. Так было решено. Если хочется изменить это умолчание, то
можно это сделать так:
\usepackage{mathtext}
\usepackage[T2A]{fontenc}
\DeclareSymbolFont{T2Aletters}{T2A}{cmr}{m}{it}
===== Запись телефонных разговоров через звуковую карту =====
От телефонной линии последовательно через резистор ~900 Ом и неполярный конденсатор 1 мкф Х 250 вольт включена первичная обмотка трансформатора 220 > 12 вольт.
Вторичную обмотку шунтируют (для защиты от перенапряжения) два кремниевых диода (предполагается 0,6 вольта их прямое напряжение и используются как стабилитроны), включенных параллельно навстречу друг другу.
Со вторичной обмотки идёт сигнал на джек, включаемый в линейный вход звуковой карты.
Запись ведётся программой rec из пакета sox. Тишина удаляется.
rec -c 1 o.wav silence 100000 1 0.1% -1000000 1 0.1%
{{:fs_use:tellin_rec.png}}
{{:fs_use:dscf9754.jpg?direct&400 |}}
{{:fs_use:dscf9757.jpg?direct&400 |}}
{{:fs_use:dscf9759.jpg?direct&400 |}}
===== Восстановить разделы на диске =====
Сработал успешно для восстановления разделов на вынутом из внешнего контроллера 3,5 внешнем диске Seagate. Имеет дополнительные возможности по восстановлению данных.
http://www.cgsecurity.org/wiki/TestDisk
===== Ускорить XOrg =====
Создать в домашней директории [каждого] пользователя директорию с таким именем:
.compose-cache
Туда XOrg начнёт складывать какие-то свои потребности в кэшировании и от этого ускорится.
===== Преобразовать видео в WebM =====
ffmpeg -i infile.avi -format webm outfile.webm
Можно использовать более раннюю версию кодека (если это необходимо) таким способом (заодно показан более сложный вариант использования ffmpeg):
ffmpeg -i concat:"infile1.avi|infile2.avi" -s 394x288 -format webm -acodec libvorbis -vcodec vp8 outfile.webm
или
ffmpeg -ss 198 -t 31 -i 356_4.mp4 -format webm -s 640x360 outfile.webm
===== Преобразовать ALAC (m4a) во FLAC =====
Взято с: http://linuxg.net/convert-flac-to-alac-and-alac-to-flac-from-the-command-line/
ffmpeg -i 1.m4a -acodec flac 1.flac
===== Сборка LibreOffice =====
./configure --enable-gtk --disable-gtk3 --without-java --with-package-format='deb' --enable-epm
===== Монтирование раздела из образа целого диска =====
К числу 32256 нужно подходить вдумчиво и тогда можно примонтировать любой раздел, а не только стандартно расположенный первый.
mount_disk.sh :
#! /bin/bash
losetup -o 32256 /dev/loop1 ./disk1.bin
mount /dev/loop1 ./m
umount_disk.sh :
#! /bin/bash
umount ./m
losetup -d /dev/loop1
===== Многоместный компьютер (мой опыт) =====
Section "ServerLayout"
Identifier "X.org Configured"
Screen 0 "Screen0" 0 0
InputDevice "Mouse0" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
Option "AutoEnableDevice" "false"
Option "AutoAddDevice" "false"
Option "AllowEmptyInput" "true"
EndSection
Section "Files"
ModulePath "/usr/lib/xorg/modules"
FontPath "/usr/share/fonts/X11/misc"
FontPath "/usr/share/fonts/X11/cyrillic"
FontPath "/usr/share/fonts/X11/100dpi/:unscaled"
FontPath "/usr/share/fonts/X11/75dpi/:unscaled"
FontPath "/usr/share/fonts/X11/Type1"
FontPath "/usr/share/fonts/X11/100dpi"
FontPath "/usr/share/fonts/X11/75dpi"
FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
FontPath "built-ins"
EndSection
Section "Module"
Load "glx"
Load "extmod"
Load "record"
Load "dri2"
Load "dbe"
Load "dri"
EndSection
Section "InputDevice"
Identifier "Keyboard0"
Driver "evdev"
Option "Device" "/dev/input/by-path/platform-i8042-serio-0-event-kbd"
Option "GrabDevice" "on"
Option "XkbRules" "xorg"
Option "XkbModel" "pc105"
Option "XkbLayout" "us,ru"
Option "XkbOptions" "grp:rctrl_toggle,grp_led:scroll"
EndSection
Section "InputDevice"
Identifier "Mouse0"
Driver "evdev"
Option "Protocol" "auto"
Option "Device" "/dev/input/by-path/platform-i8042-serio-1-event-mouse"
Option "GrabDevice" "on"
# Option "SendCoreEvents" "on"
Option "ZAxisMapping" "4 5 6 7"
EndSection
Section "Monitor"
#DisplaySize 280 210 # mm
Identifier "Monitor0"
VendorName "STN"
ModelName "S/T 57/56E/V"
HorizSync 30.0 - 100.0
VertRefresh 30.0 - 100.0
Option "PreferredMode" "800x600"
Option "DPMS"
EndSection
Section "Device"
### Available Driver options are:-
### Values: : integer, : float, : "True"/"False",
### : "String", : " Hz/kHz/MHz",
### : "%"
### [arg]: arg optional
#Option "probe_sparse" # []
Option "accel" # []
Option "crt_display" # []
#Option "composite_sync" # []
Option "hw_cursor" # []
#Option "force_pci_mode" # []
#Option "dma_mode" #
#Option "agp_mode" #
#Option "agp_size" #
#Option "local_textures" # []
#Option "buffer_size" #
#Option "tv_out" # []
#Option "tv_standard" #
#Option "mmio_cache" # []
#Option "test_mmio_cache" # []
#Option "panel_display" # []
#Option "reference_clock" #
Option "shadow_fb" # []
#Option "sw_cursor" # []
#Option "AccelMethod" #
Option "RenderAccel" # []
Identifier "Card0"
Driver "mach64"
BusID "PCI:1:0:0"
# Option "Int10" "false"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
SubSection "Display"
Viewport 0 0
Depth 1
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 4
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 8
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 15
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 16
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 24
Modes "640x480"
EndSubSection
# Option "NoInt10" "true"
DefaultDepth 24
EndSection
Section "ServerLayout"
Identifier "X.org Configured"
Screen 1 "Screen1" 0 0
InputDevice "Mouse1" "CorePointer"
InputDevice "Keyboard1" "CoreKeyboard"
Option "AutoEnableDevice" "false"
Option "AutoAddDevice" "false"
Option "AllowEmptyInput" "true"
EndSection
Section "Files"
ModulePath "/usr/lib/xorg/modules"
FontPath "/usr/share/fonts/X11/misc"
FontPath "/usr/share/fonts/X11/cyrillic"
FontPath "/usr/share/fonts/X11/100dpi/:unscaled"
FontPath "/usr/share/fonts/X11/75dpi/:unscaled"
FontPath "/usr/share/fonts/X11/Type1"
FontPath "/usr/share/fonts/X11/100dpi"
FontPath "/usr/share/fonts/X11/75dpi"
FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
FontPath "built-ins"
EndSection
Section "Module"
Load "glx"
Load "extmod"
Load "record"
Load "dri2"
Load "dbe"
Load "dri"
EndSection
Section "InputDevice"
Identifier "Keyboard1"
Driver "evdev"
Option "Device" "/dev/input/by-path/pci-0000:00:1d.0-usb-0:1:1.0-event-kbd"
Option "GrabDevice" "on"
# Option "SendCoreEvents" "on"
Option "XkbRules" "xorg"
Option "XkbModel" "pc105"
Option "XkbLayout" "us,ru"
Option "XkbOptions" "grp:rctrl_toggle,grp_led:scroll"
EndSection
Section "InputDevice"
Identifier "Mouse1"
Driver "evdev"
Option "Protocol" "auto"
Option "Device" "/dev/input/event6"
Option "GrabDevice" "on"
Option "ZAxisMapping" "4 5 6 7"
EndSection
Section "Monitor"
Identifier "Monitor1"
VendorName "Monitor Vendor"
ModelName "Monitor Model"
EndSection
Section "Device"
### Available Driver options are:-
### Values: : integer, : float, : "True"/"False",
### : "String", : " Hz/kHz/MHz",
### : "%"
### [arg]: arg optional
#Option "ShadowFB" # []
#Option "Rotate" #
#Option "fbdev" #
#Option "debug" # []
Identifier "Card0"
Driver "vesa"
BusID "PCI:2:1:0"
# Option "Int10" "false"
EndSection
Section "Screen"
Identifier "Screen1"
Device "Card0"
Monitor "Monitor1"
SubSection "Display"
Viewport 0 0
Depth 1
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 4
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 8
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 15
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 16
Modes "1024x768"
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 24
Modes "640x480"
EndSubSection
# Option "NoInt10" "true"
DefaultDepth 16
EndSection
#! /bin/bash
nohup X :0 -isolateDevice PCI:1:0:0 -audit 0 -nolisten tcp -retro -novtswitch -sharevts -config ./xorg.conf.1 vt8 &> /dev/null &
sleep 4
export DISPLAY=:0
su - first -c "nohup icewm &> /dev/null &"
#nohup xterm &> /dev/null &
nohup X :1 -isolateDevice PCI:2:1:0 -audit 0 -nolisten tcp -retro -novtswitch -sharevts -config ./xorg.conf.2 vt9 &> /dev/null &
sleep 4
export DISPLAY=:1
su - two -c "nohup icewm &> /dev/null &"
#nohup xterm &> /dev/null &
===== Сканировать из консоли =====
scan.sh :
#! /bin/bash
if [ "$1" = "" ]
then
echo Use scan.sh outfile.pgm
exit
fi
scanimage --mode Gray --progress --resolution 200 -l 10 -x 193 -t 17 -y 279 > $1
===== Про сборку Xorg из исходников =====
Попробовал нижеследующий способ так: ./build.sh --clone --autoresume built.modules /tmp/b/
Потребовал несколько библиотек, которые я ему установил,
но окончательно заткнулся на xdm, который захотел что-то поставить в системную
директорию (а не в директорию сборки),
а собирал я с правами пользователя и рут доступ дать не рискнул. Отвалилось так:
/usr/bin/install -c -m 644 xdm.service '/lib/systemd/system'
/usr/bin/install: невозможно создать обычный файл '/lib/systemd/system/xdm.service': Отказано в доступе
Но, не считая этого, способ, похоже, исправный (если дать рута): директория
сборки до xdm исправно наполнялась.
Взято с: http://h-wrt.com/ru/mini-how-to/xorg
Запуск сборки Xorg очень простой:
mkdir -p /home/xorg/src
cd /home/xorg/src
git clone git://anongit.freedesktop.org/git/xorg/util/modular util/modular
mkdir -p /home/xorg/build
cd /home/xorg/src
./util/modular/build.sh --clone /home/xorg/build
Сам процесс сборки занимает продолжительное время и может остановиться из-за
какойнить ошибки зависимостей. При этом если снова его запустить то сборка начнется
с самого начала. Чтобы это не происходило нужно использовать ключ autoresume:
./util/modular/build.sh --clone --autoresume built.modules /home/xorg_build/build/
Также сборку можно запустить для определенного списка модулей. Весь список модулей можно увидеть так:
./util/modular/build.sh -L > build_modules
Модули которые не требуют сборки закоментировать символом # и запустить сборку с ключем modfile:
./util/modular/build.sh --clone --autoresume built.modules --modfile build_modules /home/xorg_build/build/
Проблема при сборке Xorg:
error: possibly undefined macro: AC_CHECK_FILE
Решение:
не был установлен пакет '' pkg-config ''
apt-get install pkg-config
Проблема при сборке Xorg:
configure: error: zlib.h is required to compile libfontenc
Решение:
apt-get install zlib1g-dev
Проблема при сборке Xorg:
configure: error: yacc not found - unable to compile laygram.y
Решение:
apt-get install bison
Проблема при сборке Xorg:
checking for freetype-config... no
configure: error: You must have freetype installed; see http://www.freetype.org/
Решение:
apt-get install libfreetype6-dev
Проблема при сборке Xorg:
configure: error: Package requirements (fontconfig >= 2.5.92) were not met:
No package 'fontconfig' found
Решение:
apt-get install libfontconfig1-dev
Проблема при сборке Xorg:
configure: error: No suitable SHA1 implementation found
Решение:
apt-get install libgcrypt11-dev
Проблема при сборке Xorg:
Can't exec "intltoolize": No such file or directory
Решение:
apt-get install intltool
После сборки запуск Xorg и дальнейший запуск какой либо графической оболчки выглядит
как-то так:
Пример запуска для графической оболочки xfce4:
а) Можно просто выполнить: startx или startxfce4
б) либо выполнить запуск приложений пошагово самостоятельно:
1. Xorg &
2. export DISPLAY=:0.0
3. /usr/bin/xfce4-session
Пример запуска xterm (графический терминал командной строки):
1. Xorg &
2. export DISPLAY=:0.0
3. xterm -g 80x40+0+0 &
===== Перепрошить BIOS из Linux =====
Смотрим видит ли чип:
flashrom --programmer internal
Сохраняем оригинал:
flashrom --programmer internal --read BACKUP.ROM
Записываем новый:
flashrom --programmer internal --write FIRMWARE.ROM
===== Запустить программу с другим путём к библиотекам =====
LD_LIBRARY_PATH=/usr/local/lib64/ make
===== Скачать видео с youtube =====
https://yt-dl.org/
https://www.freemake.com/ru/free_video_downloader/
https://ru.savefrom.net/7/
===== Прошивка для Xceive XC3028 =====
Взято с: https://www.linuxtv.org/wiki/index.php/Xceive_XC3028/XC2028
===== Драйвер для TP-LINK Archer T4U =====
Взято с: https://askubuntu.com/questions/802205/how-to-install-tp-link-archer-t4u-driver
git clone https://github.com/EntropicEffect/rtl8822bu
Make sure you have build-essentials and dkms
sudo apt-get install build-essential dkms
After cloning, cd into that folder and run
cd rtl8822bu
make
sudo make install
sudo modprobe 88x2bu
Then connect to your Wi-Fi (Hopefully, both 2.4GHz and 5GHz should be detectable now)
Next, follow these steps to refine the installation and for an automatic rebuild on Ubuntu kernel image updates
sudo dkms add .
sudo dkms install -m 88x2bu -v 1.1
https://github.com/cilynx/rtl88x2bu
===== Как накладывать патчи (patch) =====
https://webhamster.ru/mytetrashare/index/mtb0/1312473329b25lq4jc6x
Чтобы наложить патч, надо перейти в каталог, где находится старый файл/каталог, и выполнить команду
patch < файл_патча
При использовании патчей к каталогам обычно делают так: патч создается, как описано выше (тогда в заголовках патчей к отдельным файлам путь к ним будет начинаться с имени нового каталога), а прикладывается он внутри изменяемого каталога. Тогда команда будет выглядеть так:
patch -p1 < файл_патча
Здесь -p1 означает, что из заголовков патча надо убрать начальный каталог. Поясню всё это на примере. У нас имеется дерево исходников ядра 2.6.0. Это каталог linux-2.6.0, в котором содержатся каталоги drivers, arch и т.д. И у нас есть патч до версии 2.6.1, в котором содержатся такие заголовки:
--- a/drivers/acpi/Kconfig Thu Jan 8 23:00:24 2004
+++ b/drivers/acpi/Kconfig Thu Jan 8 23:00:24 2004
Видим, что при создании патча старый и новый каталоги назывались a и b соответственно. У нас же каталог называется по-другому, и patch ничего сделать не сможет. Поэтому заходим в каталог linux-2.6.0 и выполняем указанную выше команду. Теперь заголовки будут интерпретироваться как
--- drivers/acpi/Kconfig Thu Jan 8 23:00:24 2004
+++ drivers/acpi/Kconfig Thu Jan 8 23:00:24 2004
и патч приложится нормально.
===== Компиляция Си программы без ошибки "неопределённая ссылка на" =====
gcc -Wall -g xshape_example.c -o xshape_example -lX11 -lXext