AHCI! - будьте здоровы!

Mar 11, 2012 00:39

     Фантазия "погромистов" меня иногда впечатляет. Причём, что обидно - не индусов с быдлокодом, а нормальных, но именно что "с развитой фантазией".
     Вот, скажем, много лет назад понадобилось мне регулярно перекодировать из KOI-8 в 866 "в батничке" (не спрашивайте зачем - тогда вообще динозавры бегали по ещё не остывшей поверхности планеты, а KOI-8 кое-кем считалась даже "довольно удачной" кодировкой). Задача-то тривиальная, "программа на три строчки", но самому писать лениво, поэтому скачал и заюзал какую-то утилиту "перекодировки изо всего во всё" - она ж по определению тривиальная, глючить там просто негде. А потом до-олго искал, почему иногда (редко-редко, этак раз в месяц) перекодируется только часть текста. Нашёл - оказывается, это документированная но неотключаемая фича: встретив в тексте значок "тильда" (~) перекодировка отключается, на второй тильде - включается обратно. В документации так и было написано, мол "а если вам нужно, чтобы часть текста не перекодировалась - обнесите её тильдами". Пришлось сносить "перекодировщик" нафиг, и то-ли писать свой (точно без таких вот фич), то-ли искать нормальный - давно дело было, не помню уже.

А сегодня делал "батничек", в котором по ходу дела требовалось впечатывать текст в jpeg-файл. Нашёл командлайновую утилитку - хорошую, в меру развесистую, в меру простую, даже lossless (в тех местах, где текст не впечатывается), погонял на тестовых картинках (они, собственно, реальные, просто не в реальном времени получались) - на них всё блестяще работало, запустил на реальном потоке. Получил тотальную забастовку программы и пачку уведомлений вида "Ignoring Input File: %s since it looks like it was created by this program itself", прифигел. До-олго разбирался в чём дело (если отложить "ошибочный" файлик в сторону - всё работает, а вот "с пылу с жару" - нифига), грешил на то, что свежий файл какое-то время остаётся залочен программой, его создавшей, но после того, как получил аналогичную ошибку даже скопировав файл на новое место (копия-то точно не залочена) - задумался уже сильно.
     Оказалось, что авторы программы считают, что файл "создан ей же" в том случае, если файл... моложе 15 секунд от роду! Через 15 секунд - можно, а прямо вот так - нельзя, естественно "на консервах" всё прогоняется отлично, а на свежих данных - опаньки. ЧСХ - фича, разумеется, неотключаемая:

if(!stat(inpFile, &fileInfo) && g_startTime-15 <= fileInfo.st_mtime &&
fileInfo.st_mtime <= 15+time(NULL))
{
cp = g_errorPrefix;
g_errorPrefix = "";
JDSTMP_ERROR("--- Ignoring Input File: %s since it looks like
it was created by this program itself\n", inpFile);
g_errorPrefix = cp;
retVal = 1;
}
     Разбираться и "пересобирать", конечно, не стал, вставил в батник  touch -d "1 day ago" %%i  (авторы touch тоже, кстати, жгут - документации по формату ключа -d в манах нет, хотя как можно видеть - он зело хитёр и нетривиален), хожу впечатлённый от логики: ну ведь правда же, логично, что всё то, что ты успел увидеть первым (в течении 15 секунд от рождения) - твоё по праву первого увидевшего, а то, что ты упустил из рук более чем на 15 секунд - больше не твоё?

И куча скучного железячно-софтовогого лытдыбра:

1. Современные материнки по дефолту часто имеют SATA контроллер в режиме эмуляции IDE (это точно со всеми работает), AHCI нужно включать. Если поставить XP на контроллер в режиме IDE - после переключения в AHCI XP не грузится: драйверов нет. Если взять драйвера, и, как советуют в интернете, привязать их силком к контроллеру - то... как повезёт: у кого-то грузится, у меня "не берёт", мол "куда ты это пихаешь, тут такого железа вообще нету".
     А если ставить XP с "фирменного" дистрибутива при включённом AHCI - то драйвера надо подсунуть при установке, нажав F6. Подсунуть - на 3.5" дискетке, ага! Без вариантов: никаких вам флэшек и сидюков, или давай дискету, или "у вас тут вообще дисковых устройств нету". А у меня даже контроллера-то дискетного в чипсете нет (и не вспоминайте про USB-дисководы!) :-)
     Поскольку AHCI хотелось (NCQ там, "и вообще"), проблема решилась процедурой "интеграции драйверов в дистрибутив", но просьба вставить дискету - порадовала (я до последнего момента верил, что всё-таки можно будет подсунуть флэшку) :-)

2. Также держу в руках артефакт. USB3.0 PCI-e 1x контроллер. Спокойно работающий под win7 (внешний USB 3.0 HDD через него увидел и прочитал), а под XP (на другой машине, правда) - не обнаруживающийся вообще, даже как "неизвестное устройство", как будто и нет в слоте ничего. Может, конечно, слот битый, но странно как-то. На неделе продолжу эксперименты...

3. Также за эти праздники "поставлена на боевое дежурство" в новый компьютер PCI платка (четырёхканальный захват видео). Два дня из трёх понадобилось на то, чтобы "сделать чтобы не висло". А чтобы не висло - оказалось нужным заменить один блок питания на другой почти такой же (450Вт Noname Vento на 450Вт FSP), навесить на шины +5В и +12В пучок кондёров, и переставить плату из второго PCI слота в третий. Откат любого действия (отцепляем пучок кондёров, или возвращаем оригинальный БП, или переставляем плату взад) - зависание (без "синьки", просто всё замерзает) за время от 15 минут до 2-3 часов, если вынуть плату совсем - ничего не виснет. При этом первые два пункта (БП и кондёры) - чётко "нехватка питания", но блин - это ж сопливая PCI платка с четырьмя небольшими чуть тёплыми микросхемами без радиаторов, какое нафиг "питание", особенно в таких масштабах?!

4. В процессе "переливания файлов из пустого в порожнее" обнаружил 2.5 гигабайта несвежих логов прокси (логи компактные, один запрос - одна строка). "Они там от основания мира что-ли" - подумал я, и посмотрел повнимательнее. Оказалось, всего за три месяца.
     А всего-то - я когда-то по причинам историко-политического характера завернул торрент, чтобы он ходил через прокси, и он при относительно небольшом суммарном трафике, поназапрашивал такое количество HTTP CONNECT (около 150000 в сутки), что логи как-то резко стали большими... :-)

5. А вот перевод квартирной локалки на гигабит эзернет - порадовал. Всех делов - снять со стены 100Мб свитч, повесить гигабитный (контроллеры в компьютерах уже интегрированные, старая cat5e проводка вполне подошла) - и вуаля: скорость сетевого диска теперь слабо отличается от локального (а ещё характерный "треск" раздаётся теперь в другом месте, где меня нет) :-) Есть небольшие радости в этой современной компьютерной технике :-)
Previous post Next post
Up