Swap in file and resume_offset parameter

Для suspend2disk при использовании файла в качестве SWAP, ядру нужно передать два параметра resume и resume_offset.
Значением для resume является устройство, на котором расположен SWAP-файл (к примеру /dev/sda1), а resume_offset можно получить с помощью утилиты swap-offset из пакета sys-power/suspend.

Магическая комбинация Alt+SysRq

Вычитал на Хабрахабр. Про комбинацию Alt-Sysrq-R я не знал. Если уж и случалась подоная ситуация, то я клацал на Alt-Sysrq-B.

“Бывает такое, что система зависает. Или иксы не выходят из свопа, или некий процесс отъел всю память и обработчик клавиатуры не может получить управление, или придётся признать, что у броузера медленно подтекает крышак, ну в общем, ничего не сделать, кроме ребута.

А вот как его сделать, чтобы не повредить причёскуфайловую систему. Прибегнем к так называемой магической ядерной кнопке, а именно сочетанию Alt-SysRq (он же PrintScreen) с разными буквами. Понадобятся нам такие, в этом порядке, с учётом, что у нас клавиатура qwerty:

Alt-Sysrq-R переключить клавиатуру в режим XLATE (перехватить управление у иксов)
Alt-Sysrq-E послать всем процессам, кроме инита, решительный привет, то есть SIGTERM
Alt-Sysrq-I послать всем процессам, кроме инита, окнчательный привет, то есть SIGKILL
Alt-Sysrq-S sync. Для последователй старой школы: нажать дважды :)
Alt-Sysrq-U перемонтировать все файловые системы в read-only
Alt-Sysrq-B начать загрузку

Говорят, что эту последовательность (Alt-SysRq-REISUB) можно запомнить как слово BUSIER наоборот. От себя можно добавить, что если хочется освежить в голове эту краткую мнемонику, то можно на консоли нажать Alt-SysRq-H, и будет выдана краткая справка. Для тех, кто не уверен, где у него консоль: надо нажать Ctrl-Alt-F1.”

FLASH-драйв и HAL

Если при попытке отмонтировать FLASH-драйв вы получаете сообщение “The device was successfully unmounted, but could not be ejected”, то это можно исправить создав файл /etc/udev/rules.d/51-local.rules с таким содержимым:

# removable disks
ACTION=="add", SUBSYSTEM=="block", KERNEL=="sd[a-z][0-9]", ATTRS{removable}=="1", GROUP="plugdev", MODE="660"

UPD 12.05.2008: Добавлен параметр MODE=”660″.

Планировщики ввода/вывода в Linux

Существует четыре планировщика IO в Linux:

CFQ поддерживает очередь ввода/вывода для каждого процесса и пытается распределить доступную полосу пропускания равномерно между всеми запросами. CFQ отлично подходит для многопроцессорных системы выше среднего уровня и для систем, которым требуется сбалансированная производительность подсистемы ввода/вывода между различными устройствами и контроллерами. Если несколько программ одновременно запросят доступ к диску, все программы получат ответ. » Read more

Общее представление о initrd (Initial RAM disk)

Начальный RAM диск для загрузки Linux (initrd) это временная корневая файловая система, которая монтируется в процессе загрузки системы в оперативную память для поддержки 2х уровневой модели загрузки. Initrd состоит из различных исполняемых файлов и драйверов, которые позволяют смонтировать настоящую корневую файловую систему, после чего initrd размонтируется и освобождается память. Во многих встраиваемых системах initrd так и остаётся корневой файловой системой. В этой статье исследуется загрузочный RAM диск для ядра Linux 2.6, включая процесс его создания и использования в ядре линукса.

Перевод статьи “Общее представление о initrd (Initial RAM disk)“.

Intel HDA и ALSA

После перехода на ядро версии 2.6.21 уровень громкости стал очень низким. Движков для его регулировки стало целых …один. Гугление на эту тему привело к тому, что я узнал о наличии мануала /usr/src/linux/Documentation/sound/alsa/ALSA-Configuration.txt.
Итак, приступаем, alsamixer говорит, что у меня чип ALC861. Методом научного тыка пытаюсь подобрать подходящую модель и прописываю ее в /etc/modules.d/alsa:
options snd-hda-intel model=3stack-660
далее выполняем:
# update-modules
перезапускаем демона:
/etc/init.d/alsasound restart
Получаем высокий уровень громкости и возможность его регулировать.

p.s. Даже не пытайтесь после этого выполнить команду alsaconf – конфиг будет испрчен, т.к. автодетект работает неправильно.

Подключение мобильника по USB

Понадобился на даче интернет. Попробовал подключить свой мобильник по USB. Хоть устройство и видно по lsusb, но нужна поддержка в ядре. Перекомпилировал ядро с поддержкой usbserial:

Device Drivers
  USB support
    <M> USB Serial Converter support
      [*] USB Generic Serial Driver

Теперь с помощью lsusb -v определяем vendor и product, и загружаем модуль с этими значениями:

modprobe usbserial vendor=0x045e product=0x0301

можно сразу прописать эти параметры в /etc/modules.autoload.d/kernel-2.6:

usbserial vendor=0x045e product=0x0301

Все, теперь у нас появится устройство /dev/ttyUSB0.

Hibernate и MPlayer

Периодически на лэптопе перестает работать hibernate – делает вид, что ищет свободное место в свопе для имиджа, пишет имидж, выключает подсветку монитора, и на этом все. Только один выход – power off на пять секунд. Сигнатура в своп не пишется. По загрузке, во время поста влевом верхнем углу может появиться надпись “TBX error”, и пост не закончится.
Методом “научного тыка” выяснил, что причиной тому стал mplayer – если его запустить, поставить на паузу, то в 80% случаев hibernate сделать не получится.
Кто в это виноват – alsa, или драйвера nvidia я пока не выяснил.

p.s. hibernate-ram вообще перестал работать (даже если “иксы” не запущены, следовательно драйвера nvidia тут не виноваты) – засыпает, а вот проснуться лэптоп уже не может.

1 2 3