Это старая версия документа!
Содержание
Практическое использование свободных программ (конкретные статьи, рецепты, методы)
Здесь пишем то, чем успешно воспользовались лично, то, что проверено и актуально.
Настройка переключения языков средствами 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
Где:
- 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 для символа
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}
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. Имеет дополнительные возможности по восстановлению данных.
Ускорить 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
Преобразовать 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