Содержание

Практическое использование свободных программ (конкретные статьи, рецепты, методы)

Здесь пишем то, чем успешно воспользовались лично, то, что проверено и актуально.

Настройка переключения языков средствами 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/

Xephyr – альтернатива вложенному X-серверу Xnest , рассмотренному на прошлой неделе. Обе эти программы используются для создания вложенного X-сервера, т.е. работающего в отдельном окне, запущенном под родительским X-сервером, вместо использования отдельного компьютера с монитором. Xnest сам не выполняет запросы, а перенаправляет их родительскому серверу. Xephyr же сам отрисовывает все запросы в окошке, в котором запущен.

Это означает, что Xephyr может выполнять такие запросы, которые родительский сервер выполнять не может. К примеру, он может использовать RENDER (расширение для быстрого сглаживания текста), даже если его не поддерживает родительский X-сервер.

К несчастью, gdm не работает с Xephyr, но вы можете использовать gdmflexiserver для работы с ним. Тем не менее, если вы хотите использовать XDMCP (удаленный логин), вы можете запустить Xephyr вручную и сделать запрос формы логина из gdm:

$ Xephyr -query localhost -screen 800x600 :1

Если localhost – это XDMCP сервер, 800×600 – требуемое разрешение, а :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

Где:

Нужно установить 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%

Восстановить разделы на диске

Сработал успешно для восстановления разделов на вынутом из внешнего контроллера 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: <i>: integer, <f>: float, <bool>: "True"/"False",
        ### <string>: "String", <freq>: "<f> Hz/kHz/MHz",
        ### <percent>: "<f>%"
        ### [arg]: arg optional
        #Option     "probe_sparse"       	# [<bool>]
        Option     "accel"              	# [<bool>]
        Option     "crt_display"        	# [<bool>]
        #Option     "composite_sync"     	# [<bool>]
        Option     "hw_cursor"          	# [<bool>]
        #Option     "force_pci_mode"     	# [<bool>]
        #Option     "dma_mode"           	# <str>
        #Option     "agp_mode"           	# <i>
        #Option     "agp_size"           	# <i>
        #Option     "local_textures"     	# [<bool>]
        #Option     "buffer_size"        	# <i>
        #Option     "tv_out"             	# [<bool>]
        #Option     "tv_standard"        	# <str>
        #Option     "mmio_cache"         	# [<bool>]
        #Option     "test_mmio_cache"    	# [<bool>]
        #Option     "panel_display"      	# [<bool>]
        #Option     "reference_clock"    	# <freq>
        Option     "shadow_fb"          	# [<bool>]
        #Option     "sw_cursor"          	# [<bool>]
        #Option     "AccelMethod"        	# <str>
        Option     "RenderAccel"        	# [<bool>]
	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: <i>: integer, <f>: float, <bool>: "True"/"False",
        ### <string>: "String", <freq>: "<f> Hz/kHz/MHz",
        ### <percent>: "<f>%"
        ### [arg]: arg optional
        #Option     "ShadowFB"           	# [<bool>]
        #Option     "Rotate"             	# <str>
        #Option     "fbdev"              	# <str>
        #Option     "debug"              	# [<bool>]
	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 80×40+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

Взято с: 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