воскресенье, 21 ноября 2010 г.

Измерение скорости соединения LAN

Чтобы узнать скорость передачи данных через ethernet, можно воспользоваться программой iperf.

Она есть в Gentoo, а для Centos она в репозитории EPEL.

На одной машине запускаем сервер:
# iperf -s

А на второй - клиент:
# iperf -c 192.168.0.1 -t 300


Результат у меня получился удручающий:
------------------------------------------------------------
Client connecting to 192.168.0.1, TCP port 5001
TCP window size: 16.0 KByte (default)
------------------------------------------------------------
[  3] local 192.168.0.2 port 56589 connected with 192.168.0.1 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-300.5 sec   339 MBytes  9.46 Mbits/sec

вторник, 9 ноября 2010 г.

Узнать размер буфера/кэша жесткого диска

Чтобы узнать размер буфера/кэша жесткого диска, можно воспользоваться утилитой hdparm:
# hdparm -i /dev/sda |grep 'BuffSize'
BuffType=DualPortCache, BuffSize=7376kB, MaxMultSect=16, MultSect=16

понедельник, 18 октября 2010 г.

Выяснить время последней синхронизации portage

Совершенно случайно наткнулся на возможность узнать, когда последний раз происходила синхронизация дерева portage.
# genlop -r

Выведет не только последнюю дату, но и все предыдущие, т.е. лог синхронизаций.
Чтобы сузить диапазон дат, можно воспользоваться опциями --date дважды, т.е. начало и конец диапазона (даты пишутся в формате mm.dd.yy).

суббота, 16 октября 2010 г.

Отключение режима обнаружения TV драйвером NOUVEAU

Перешел на использование open-source драйвера Nouveau для карт Nvidia. Действовал по этой инструкции: http://en.gentoo-wiki.com/wiki/Nouveau. На рабочей машине все прошло замечательно, особо порадовала скорость переключения в текстовую консоль и обратно в иксы. На домашней же обнаружился странный глюк - разрешение текстовой консоли устанавливалось нормально - 1680х1050, но надписи занимали только верхнюю левую часть экрана.

dmesg об этом писал следующее:
[drm] nouveau 0000:01:00.0: 64 MiB GART (aperture)
[drm] nouveau 0000:01:00.0: Allocating FIFO number 0
[drm] nouveau 0000:01:00.0: nouveau_channel_alloc: initialised FIFO 0
[drm] nouveau 0000:01:00.0: Initial CRTC_OWNER is 0
[drm] nouveau 0000:01:00.0: Saving VGA fonts
[drm] nouveau 0000:01:00.0: Detected a DVI-I connector
[drm] nouveau 0000:01:00.0: Detected a VGA connector
[drm] nouveau 0000:01:00.0: Detected a TV connector
[drm] nouveau 0000:01:00.0: Setting dpms mode 3 on vga encoder (output 0)
[drm] nouveau 0000:01:00.0: Setting dpms mode 3 on tmds encoder (output 1)
[drm] nouveau 0000:01:00.0: Setting dpms mode 3 on vga encoder (output 2)
[drm] nouveau 0000:01:00.0: Setting dpms mode 3 on TV encoder (output 3)
[drm] nouveau 0000:01:00.0: Load detected on output B
[drm] nouveau 0000:01:00.0: allocated 1680x1050 fb: 0x49000, bo f7070800
[drm] nouveau 0000:01:00.0: Setting dpms mode 0 on vga encoder (output 2)
[drm] nouveau 0000:01:00.0: Output VGA-1 is running on CRTC 0 using output C
[drm] nouveau 0000:01:00.0: Setting dpms mode 0 on TV encoder (output 3)
[drm] nouveau 0000:01:00.0: Output TV-1 is running on CRTC 1 using output B
Console: switching to colour frame buffer device 90x36


Т.е. драйвер обнаружил подключение по TV-out и установил текстовое разрешение по минимальному устройству - телевизору. Однако физическое обследование видеокарты не показало наличие телевизора. Оно и понятно - телевизора у меня нет вообще. В списках рассылки обнаружил упоминание патча, с помощью которого можно принудительно отключить подключение TV: http://lwn.net/Articles/383198/, а потом и сам патч: http://kerneltrap.org/mailarchive/git-commits-head/2010/4/1/31359, присутствующий в ядре с версии 2.6.34-rc4. Из кода видно, что вводится новый параметр модуля - tv_disable.

Поскольку модуль nouveau у меня вкомпилирован в ядро, то параметры ему передаются через строку инициализации ядра (в моем случае в /boot/grub/menu.lst):
kernel /boot/vmlinuz root=/dev/sda1 nouveau.tv_disable=1

вторник, 5 октября 2010 г.

Удаленное использование Sysrq

В Linux есть специальные комбинации для непосредственного управления ядром. Перечень этих комбинаций (это комбинации Alt, Sysrq и еще одной клавиши) найти легко. Но как передать команду ядру, находясь в удаленной сессии, например по ssh?

Ответ есть в документации к ядру (в файле Documentation/sysrq.txt) - достаточно просто отправить символ нужной клавиши в /proc/sysrq-trigger. Например:
# echo s > /proc/sysrq-trigger
SysRQ : Emergency Sync

суббота, 25 сентября 2010 г.

Wake on lan

Долго не понимал, почему не работает Wake On Lan. Использовал программы wol и wakeonlan используя примеры из их man-страниц. Т.е.
# wol 00:01:02:03:04:05

и
# wakeonlan 00:01:02:03:04:05

соответственно.
Достаточным оказалось указать широковещательный адрес:
$ wakeonlan -i 192.168.0.255 00:01:02:03:04:05

вторник, 7 сентября 2010 г.

Печать юникода (в частности кириллицы) из консоли

Есть скрипт, который выводит некоторую информацию на принтер без использования каких-либо графических программ. Но вместо русских букв (я подозреваю, что всего юникода) остаются пропуски. В Fedora 13 такой проблемы не было. Не знаю, как там это реализовано (по запросу "печать юникода из консоли" Google предлагает множество монстрообразных способов, типа использования специальных конвертеров, перекодировщиков, каких-то скриптов на сорок строк, вплоть до растеризации текста), но в Gentoo это делается одной командой:
# rm -f /usr/share/cups/fonts/*

Принтер использует свои шрифты, и кириллица отлично печатается. Проверено на трех принтерах HP.