Есть такой замечательный Linux-дистрибутив -- Slackware. Пользуюсь им уже более 7 лет, с версии 10.2. Есть у Слаки особенность -- надо хорошо поработать напильником, чтобы сделать из неё что-то пригодное для работы. На этой страничке собраны доработки, применяемые мной. В первую очередь, наверное, они собраны здесь для того, чтобы мне не пришлось вспоминать при очередной установке Слаки, что и где подкручивать. Ну и, может быть, это пригодится ещё кому-нибудь.
В тексте местами встречаются упоминания конфигов или diff'ов -- все они находятся в одном архиве (см. внизу страницы).
Загрузка шрифта -- /etc/rc.d/rc.font. В этом файле есть одна закомментированная строчка, она устанавливала большой зелёный курсор. Это было нужно для старого ноутбука с тормозной DSTN-матрицей -- обычный мигающий курсор в виде подчёркивания там виден был плохо.
В файле /usr/share/kbd/consolefonts/Cyr_a8x16.psfu.gz нет буквы "ё", поэтому он заменяется альтернативным.
Раскладка клавиатуры -- /etc/rc.d/rc.keymap.
Его надо пропатчить, т.к. есть проблемы с кодировками. Если архив создан в DOS/Windows и содержит файлы с русскими именами (в кодировке cp866), то после распаковки в Линухе вместо этих имён будет хрен знает что. Патчи взяты из LFS, слакбилд -- из source/a/infozip. Тарболы с исходниками берутся оттуда же. А вот тарбол с патчами и слакбилдом.
В Slackware 13.0 InfoZIP обновили до версий 3.0 / 6.0, так что тот патч к нему не подходит. Пришлось откатиться до InfoZIP'а из Slackware 12.2...
Не забыть добавить юзера в те группы, который предлагает adduser. И в группу wheel тоже -- для того, чтобы /sbin и т.п. добавились в PATH.
~/bin -- каталог для хранения самодельных скриптов, программ, и т.п.
Добавляется в PATH в ~/.bashrc ~/.profile.
То есть, конечно, может, но при следующем запуске команды man требуемая
страница снова будет переформатирована. А у рута всё нормально... Исправляется
командами
chmod 777 /var/man
chmod 777 /var/man/cat*
Криво :-(( Но работает.
Для начала -- поставить irda-utils. Конфиги -- /etc/modprobe.d/irda.conf,
/etc/rc.d/rc.irda.
Затем
mknod /dev/ircomm0 c 161 0
mknod /dev/ircomm1 c 161 1
mknod /dev/irnet c 10 187
chmod -v 666 /dev/ir*
IrDA запускается в /etc/rc.d/rc.local, а останавливается -- в /etc/rc.d/rc.local_shutdown.
А вот если используется udev, создавать файлы устройств вручную нет смысла -- это работа для udev'а. Для этого нужно, как минимум, загрузить модули ircomm и ircomm-tty. [А что ещё?..]
Очень уж мне нравятся эти фортунки :-)) Взять их можно здесь:
http://www.lorquotes.ru/fortunes.php.
Скопировать под именем lor в каталог /usr/share/games/fortunes и выполнить команду
strfile /usr/share/games/fortunes/lor
Затем подправить файл /etc/profile.d/bsd-games-login-fortune.sh, оставив там
только lor и linuxcookie.
См. ~/bin/scrgrab.sh. Прописывается в
~/.icewm/keys и реагирует на Ctrl+Shift+f, Ctrl+Shift+w,
Ctrl+Shift+r Alt+PrtScr, Ctrl+PrtScr, PrtScr. Грабит
окно с рамкой, окно без рамки и корневое окно соответственно. Результат в
формате PNG кладётся в домашний каталог под именем
`date +%Y%m%d_%H%M%S`.png.
Кстати, недавно на unixforum'е встретилось аналогичное решение, но с использованием import'а из пакета ImageMagick. Его очевидные недостатки -- весьма странная обработка рамок пересекающихся окон (возможно, только в IceWM?) и необходимость кликать мышкой для копирования корневого окна.
Home/End/^Left/^Right/etc для xterm/rxvt. На PgUp/PgDown у меня висит поиск по истории (history-search-{backward,forward}), а {beginning,end}-of-history перенесены на ^[Pg]Up/^[Pg]Down. show-all-if-ambiguous включено -- ИМХО так удобнее. Это всё настраивается в /etc/inputrc.
vm.swappiness=10 -- для того, чтобы ядру поменьше хотелось свопить. См. /etc/sysctl.conf.
Чего там полезного:
В /etc/fuse.conf надо сказать user_allow_other, чтобы юзер мог юзать allow_other или allow_root при монтировании.
/etc/rc.d/rc.M.ldconfig.diff удаляет запуск
ldconfig'а при загрузке, а /etc/rc.d/rc.M.xfonts-syslog.diff --
запуск fc-cache. (Он же добавляет запуск syslog-ng.)
Есть более правильный способ, подсмотрен здесь: A Slackware Desktop Enhancement Guide. Тормозные куски rc-скриптов (запуск ldconfig, fc-cache, обновление кэша иконок и т.д.) выделяются в спец. скрипт, ежедневно запускаемый cron'ом (кладётся в /etc/cron.daily).
Добавлена возможность запуска некоторых прог (mount, umount, shutdown, halt, poweroff, reboot, ethereal, pppd, pccardctl, powertop) без запроса пароля.
Настраивается в /etc/profile.d/lang.{,c}sh. Собс-но локаль -- ru_RU.koi8r, LC_MESSAGES -- en_US, LC_NUMERIC -- C.
Все ништяки -- в /etc/acpi. А именно: кнопочка "Power", suspend to RAM при закрывании крышки, suspend to disk при нажатии Fn+F12, переключение мониторов (встроенный/внешний) при нажатиях Fn+F7. На кнопку [ThinkPad] повешена пауза для плеера cmus (при помощи cmus-remote и su).
У обоих suspend'ов есть проблемы со звуком -- драйвера звуковухи нельзя
выгрузить, если запущена хоть одна прога, использующая их. А выгружать их
надо -- иначе после пробуждения кина звука не будет...
Кроме того, замечены проблемы с флоповодом в UltraBay после пробуждения
из suspend to disk. Методы решения этих проблем пока не найдены :-(
Впрочем, можно с помощью lsof найти, кто открыл какие-нибудь файлы в /dev/snd,
прибить эту софтину, а затем выгрузить драйвера. Но это как-то негуманно...
Тоже для T21. В /etc/rc.d/rc.modules надо раскомментировать строчку с загрузкой модуля speedstep-smi. Конфиг -- /etc/cpufreqd.conf. У моего первого T21 [были :((] доступны всего 2 частоты -- 650 и 800 МГц (у второго -- 600 и 750), поэтому набор правил такой:
CPU \ АКБ 0-20 20-90 90-100 vvv \ >>> ------------ AC on ------------- 0-50 650 650 650 50-100 650 800 800 ------------ AC off ------------ 0-65 650 650 650 65-80 650 650 800 80-100 650 800 800
Слакбилд для cpufreqd взят на slackbuilds.org (для Slackware 12.1).
Чтобы осчастливить GIMP и, возможно, ещё кого-то, сказать:
dbus-uuidgen --ensure
(Это нужно только в том случае, если D-Bus не запускается при старте системы.)
Я категорически против добавления "." в PATH не только для рута, но и для обычного юзера. Поэтому соотв. кусок из /etc/profile я выкинул. С другой стороны, и простому юзеру не помешают /sbin и т.п. Поэтому они добавляются в ~/.bashrc. Также умные люди советовали добавить в PATH /etc/rc.d...
export CDPATH=".:~:~/d" позволяет заходить в подкаталоги домашнего каталога и каталога ~/d, не набирая их полного пути.
См. /etc/X11/xorg.conf. Принципиальные изменения:
На /usr/bin/startx накладываем патч для отключения прослушивания Иксами порта 6000.
/usr/share/fonts/cyrillic/fonts.alias -- там устанавливается шрифт "fixed".
~/.gtkrc-2.0 -- настройка шрифта для GTK'шных прог.
В Slackware 13.0 применена новая версия Иксов, со всякими "ништяками" :-( Теперь Иксам для нормальной работы нужен HAL, а я его принципиально не юзаю. А без него не работают клава и мышка. Поэтому пришлось добавить в секцию "ServerFlags" файла /etc/X11/xorg.conf четыре дополнительные опции. См. /etc/X11/xorg.conf-13.0.diff.
~/.xinitrc -- копия xinitrc.icewm, но строки с icewmbg и icewmtray удалены, т.к. лишний раз запускать эти проги не стОит.
Файлы /usr/share/icewm/taskbar/{collapse,expand}.xpm отредактированы с целью уменьшения ширины на 6px.
Ещё немного увеличить количество полезной информации, вмещающейся на таскбар, удалось благодаря использованию шрифта "PT Sans Narrow" для индикатора АКБ и для надписей на кнопках ({ApmFontNameXft,QuickSwitchFontNameXft}="PT Sans Narrow:size=12").
В IceWM 1.3.6 при наведении курсора на монитор CPU показывается разная полезная инфа. Мне только не понравилось то, что буква "M" пишется слитно с объёмом памяти и свопа, и (особенно) то, что частота проца указана в ГГц (0.600GHz -- красиво, да?). Лечится сие наложением патча acpustatus.cc.diff.
Тормозит при прокручивании страницы средней кнопкой мыши или клавишами Вверх/Вниз. Лечится установкой xpdf из Slackware 13.0.
Как оказалось, в Слаквари 12.2 MC немного кривой -- плохо работает выделение
текста во встроенном редакторе с помощью Shift+стрелочки. Поэтому оставил MC
из 12.1.
Чтобы русский текст отображался правильно, запустить lynx и выставить
``Display character set''. Или отредактировать ~/.lynxrc.
Для MC 4.7.x неактуально -- см. ниже.
^O нормально работает для простого юзера только в xterm, rxvt, etc.
В виртуальной консоли -- пустой экран. Исправляется командами
useradd -g users -d / -s /bin/false vcsa
chown vcsa /dev/vcsa*
chmod +s /usr/libexec/mc/cons.saver
Последнюю команду (chmod ...) надо выполнять при каждом обновлении MC.
Во-первых, ISO-9660. При попытке войти в iso-образ выскакивает предупреждение;
кроме того, есть проблемы с именами файлов. Лечится накладыванием патча
/usr/share/mc/extfs/iso9660.diff. Для лечения использовал iso9660
из старой версии MC.
Во-вторых, 7Z. Имена каталогов дублируются. Лечится накладыванием патча
/usr/share/mc/extfs/u7z.diff.
Исправлены arj, DejaVu (добавлен .djv). Добавлены: Gerber, PCX. См. /etc/mc/mc.ext-*.diff.
[archive]: 7z
В общем, разработчики много чего исправили, но и поломали не меньше :-( Одна строка функциональных клавиш чего стОит... И "*" при копировании и переименовании поломали (не расширяется до имени файла).
Из мелочей: вместо lynx'а для просмотра HTML теперь используется links, w3m и только в последнюю очередь lynx. Для links'а нужен ключ "-codepage", чтобы текст отображался в правильной кодировке, а не в транслите. Аргументом этого ключа является вывод команды "enca -i ИМЯ_ФАЙЛА". Это необходимо из-за того, что MC автоматически определяет и использует кодировку _исходного_ файла, а не результата работы links'а. Т.о. файл будет отображаться корректно только если кодировки исходного файла и текстового вывода совпадают. Баг: т.к. links не умеет выводить в UTF-8, кодировку таких файлов придётся выбирать вручную ("No translation").
Порадовал MC 4.7.0-pre4 и последующие релизы. Но косяки там всё же имеются... В одной из pre-версий поменяли заголовок xterm'овского окна с привычного "mc - /путь" на извращённое "mc [юзер@хост]:/путь". Лечится применением патча mc-xterm-title.diff.
При редактировании встроенным редактором программ на Perl'е не подсвечиваются интерполируемые переменные (хотя при редактировании shell-скриптов подсвечиваются...). Поэтому /usr/share/mc/syntax/perl.syntax подправлен по аналогии с sh.syntax.
Разработчики продолжают радовать нововведениями. На этот раз поломали
buttonbar -- если на кнопке нет надписи, то и цифирка не показывается (а
показывается тупо один чёрный пробел). В результате кнопки скачут туда-сюда,
особенно это заметно при нажатии F1. Лечится это применением патча
buttonbar-nums.diff. Исправлено в 4.7.5! А вышеуказанный патч
исправляет ширину цифровых меток
1 и 10 -- как и в традиционных коммандерах теперь они имеют ширину 1 и 3
символа соотв. (а не 2 и 2, как всегда было в MC).
Это поломали ещё в каком-то предыдущем релизе -- цифирки в buttonbar'е. Ярко-белые! Просто бесят... Сделал их светло-серыми (поправив дефолтный скин).
Все патчи теперь собраны в одном тарболе с патчами и слакбилдом. (Проверено для MC 4.7.5.1.)
Интернет ко мне может поступать тремя путями: через канал Корбины,
через мобильник посредством USB и через него же посредством IrDA.
С середины лета 2009 г. первый путь уже не актуален, но зато добавился 4-й -- через GPRS-момед от Мегафона.
После настройки (см. ниже) к Инету можно будет подключиться набрав команду
sudo pppd call crb
или
sudo pppd call mfi
или
sudo pppd call mfu
или
sudo pppd call mm
А разрывается соединение нажатием ^C.
Качаем с sourceforge.net файлик pptp-1.7.1.tar.gz, а со slackbuilds.org -- pptp.tar.gz. Устанавливаем.
Этот и следующий варианты различаются между собой только драйвером коммуникационного устройства. В случае USB нужно в /etc/rc.d/rc.modules раскомментировать строчку с модулем cdc-acm. Это прекрасно работает для телефончика Motorola C650. Взаимодействие с телефоном осуществляется через /dev/ttyACM0. Сейчас я вдруг обнаружил, что у этого файла владелец и группа -- мои, а права -- 660. Я не помню, для чего я менял владельца (по умолчанию там root:uucp), может для инета, а может для передачи файлов на телефон... Главное, что работает.
Идея здесь -- в точности, как у варианта с USB. Файл устройства -- /dev/ircomm0. Его владелец -- root:root, права -- 666. Впрочем, о настройке IrDA написано выше. Что касается конфигов, то вместо "mfu" следует читать "mfi".
lsusb подсказываэ, что у меня вот такая шняга:
ID 12d1:1003 Huawei Technologies Co., Ltd. E220 HSDPA Modem / E270 HSDPA/HSUPA Modem
Качаем со slackbuilds.org файлик usb_modeswitch.tar.gz, а с соотв.
сайта -- исходники. Устанавливаем a/usb_modeswitch.txz. На
/etc/rc.d/rc.udev ставим разрешение
на выполнение. Теперь при втыкании модема будет появляться устройство
/dev/ttyUSB0 (или аналогичное).
Всё. Дальше ничего интересного; всё, что надо, описано выше.
Ещё можно отучить модем оперделяться как CD-ROM при включении, это несколько
уменьшит время его раздупления, и, кроме того, отпадёт необходимость в
usb_modeswitch. (Впрочем, последнее пофиг, т.к. она уже включена в Слаку 13.1.)
Для этого достаточно сказать:
echo "AT^U2DIAG=0" > /dev/ttyUSB0
После этого момед начинает определяться вот так:
ID 12d1:1001 Huawei Technologies Co., Ltd. E620 USB Modem
Вообще, по этой теме есть вот такая табличка:
(Вот не понимаю я криков типа "GRUB -- наше всё!"... Мне почему-то и LILO хватает...) Собственно, LILO прекрасно работает и с настройками, созданными программой установки. Но вот на ноутбуках IBM ThinkPad T21, Toshiba 335CDS и Toshiba T2115CS он почему-то очень долго загружал ядро. Помог ключ "compact" в /etc/lilo.conf.
На обычных компах ядро, включённое в дистрибутив, прекрасно работает.
Разве что надо initrd собрать:
mkinitrd -c -k 2.6.27.7 -m reiserfs -f reiserfs -r /dev/hda?
А вот на неоднократно упоминавшемся здесь ноуте ThinkPad T21 это ядро виснет
из-за конфликта модема и сетевухи,
находящихся на одной MiniPCI-карточке. Лечится выкидыванием из ядра модуля
8250_pci (модем всё равно нафиг не нужен). Заодно можно и без initrd обойтись,
вкомпилировав модуль reiserfs в ведро.
После обновления Слаки до 13.1 (ядро 2.6.33.4) проблемы с момедом исчезли :-)
Цвета, курсор, размер окна в xterm и rxvt, размер и положение окна Emacs'а, включение возможности копировать/вставлять русский текст мышкой в xterm.
Уже не помню, зачем я его правил... :-( А, вспомнил. Чтобы
на ThinkPad'е NumLock работал. Подробности -- на thinkwiki.org...
Настройка истории команд, приглашение у юзера и рута разного цвета, заголовок в xterm, alias'ы.
Настройка PATH и тупое включение .bashrc.
Апач стал очень жирным, поэтому был заменён на Лайти. Перед его сборкой
надо сказать
groupadd -g 208 lighttpd
useradd -u 208 -g lighttpd -d /var/www lighttpd
А после сборки и установки
chgrp lighttpd /var/lib/php
cp /etc/httpd/php.ini /etc/lighttpd/php.ini
lighttpd.conf.diff -- прикручен PHP; rc.6.lighttpd.diff, rc.K.lighttpd.diff и rc.M.lighttpd.diff -- запуск и останов Лайти оттуда, откуда положено, а не из rc.local.
dnsmasq мне показался довольно бестолковым, и поэтому без особого сожаления был заменён на pdnsd. Конфиг -- /etc/pdnsd.conf. Также есть 2 патча для запуска/останова pdnsd откуда надо, как и в случае с Лайти.
Обычный syslog задолбал сообщениями от GPM. Точнее, невозможностью отключить
их без серьёзных последствий. Поэтому был заменён на syslog-ng. Слакбилды
для syslog-ng и eventlog -- на http://www.slacky.eu/
SlackBuilds.org.
/etc/rc.d/rc.M.xfonts-syslog.diff -- запуск syslog-ng
и отключение запуска fc-cache при загрузке. /etc/rc.d/rc.inet1.diff --
изменения, связанные с syslog-ng и восстановление того, что было закоментировано
разработчиками.
К слакбилду с SBo прилагается инструкция с более правильным способом выпиливания syslog'а и впиливания syslog-ng, чем применён мной. Надо будет попробовать...
ИМХО удобнее, чем обычный top. В IceWM (см. ~/.icewm/prefoverride) htop вызывается вместо top при клике мышкой по монитору CPU.
GQview по ряду причин пришлось отправить фтопку, к тому же беты (а тем более
релиз) Geeqie стали вполне юзабельны. После компейляции и
установки Geeqie
надо: а) прописать его в /etc/mc/mc.ext; б) настроить клавиши "b" и "n"
для перехода вперёд/назад (^o -> keyboard, {Next,Prev}ImageAlt2 поменять на "n"
и "b" соответственно); в) пропатчить /usr/share/applications/gqview.desktop
в связи с руганью на gqview.png. Как вариант, можно удалить GQview, тогда отпадёт
необходимость в пункте в), а вместо ковыряния mc.ext можно будет сделать симлинк
/usr/bin/gqview -> /usr/bin/geeqie.
А из Slackware 13.1, кстати, GQview уже выпилили ;-)
В дополнение к ~790 (ужос...) официальным слакварьным пакетам у меня установлено больше сотни дополнительных, как правило, собранных с помощью слакбилдов со SlackBuilds.org. Для некоторых нужных мне прог там слакбилдов не было, поэтом пришлось писать их самому...
Три следующих слакбилда не попали на slackbuilds.org, т.к. их аналоги появились в /pending буквально на день раньше моих... Но то, что лежит на вышеуказанном сайте, мне не нравится, в первую очередь тем, что все проги устанавливаются в /usr/avr, а не в более подходящий (ИМХО) /opt/avr.
Архив с конфигами (30 Кбайт).
[02.06.2009] [15.06.2009] [25.09.2009] [26.11.2009] [22.02.2010] [22.04.2010] [18.07.2010] [17.10.2010] [06.06.2011]