Странные глюки
Добрый вечер.
Столкнулся с такой проблемой: ни с того ни с сего начались странные глюки в системе:
1) Перестал работать cdrom:
в dmesg следующее:
ATAPI device hda:
Error: Illegal request -- (Sense key=0x05)
Logical block address out of range -- (asc=0x21, ascq=0x00)
The failed "Read 10" packet command was:
"28 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 "
В винде cdrom работает.
2) ivman+exo перестали автомонтировать флешки. Точнее если запустить ivman, то он примонтирует подключенные флешки, а новые не монтирует...
3) firefox стал "убивать" профили
После выхода из файрфокс не запускается, пишет:
/usr/lib/mozilla-firefox/run-mozilla.sh: line 131: 28070 Ошибка сегментирования "$prog" ${1+"$@"}
-ftree-vectorize
Приходится делать "rm -r ~/.mozilla", чтоб запустить файрфокс.
------------
UPD:
1) cd-rom оказывается работает, я просто проверял на плохом диске
2) проблема оказалась в хал-е, который почему-то добавляет устройство, но не добавляет раздел (пробема пока не решена)
3) с файрфоксом пока та же беда, но я собираю мир с безопасными флагами CFLAGS="-march=pentium-m -O2 -pipe -fomit-frame-pointer"
UPD2:
1) и 3) проблемы успешно решены! Файрфокс действительно падал с ошибкой сегментации из-за флагов компиляции.
с ivman'ом вопрос открыт.
- Для комментирования войдите или зарегистрируйтесь
а после обновлений
а после обновлений dispatch-conf точно делали, у меня тут был косяк в udev'е похожий недавно, оказалось просто конфиг забыл обновить
Поддерживаю. etc-update в
Поддерживаю. etc-update в помощь.
grep flags
grep flags /proc/cpuinfo
Искать наличие sse sse2 mmx.....
Звиняюсь за мой французский...
man gcc
....
pentium-m
Версия Intel Pentium3 процессора с поддержкой набора инструкций MMX, SSE и SSE2. Используется в
ноутбуках Centrino.
Это к тому что достаточно указать pentium-m, флаги -msse -msse2 имхо излишни.
-mfpmath=unit
sse Использует скалярные операции с плавающей запятой, присутствующие в наборе инструкций SSE. Эти инструкции поддерживаются процессорами Pentium3 и выше, в линейке AMD - процессорами Athlon-4, Athlon-xp и Athlon-mp. Ранние версии наборов инструкций SSE поддерживали только арифметику одинарной точности, поэтому вычисления двойной и расширенной точности продолжали выполнятся на сопроцессоре 387. Поздние версии, присутствующие только в процессорах Pentium4 и AMD x86-64 поддерживают дввычисления с двойной точностью.
Это к тому, что сия опция вполне может и не отработать на вашем камне, бо пень три. Причем флаг sse, полученный из cpuinfo в Вашем конкретном случае ни о чем не говорит.
-mmmx
....
Эти опции позволяют GCC использовать расширенные инструкции при генерации кода, даже без -mfpmath=sse.
Это к тому, что -mfpmath=unit имхо излишне.
Использование не поддерживаемого процессором набора инструкций приводит к соврешенно неожиданным сегфолтам (напоролся при экстренном переносе системы с пня 4 на пень 3). Коль скоро плавающая арифметика в 90% кода не используется то система вроде как работает, но...
Да, не стоит забывать что система сборки может запросто переопределить ваши пожелания, исходя из задумки разработчика. Это вполне может быть причиной прежней работоспособности при таком же желаемом наборе флагов.
Вместо такого пространного
Вместо такого пространного текста можно было и просто ограничиться отсылкой на http://en.gentoo-wiki.com/wiki/Safe_Cflags/Intel и выговором за использование -O3 и -ftree-vectorize :P
По ссылке -O2. У меня -O3.
По ссылке -O2. У меня -O3. Информация на подтвержденные баги из за сборки с -O3 мне не попадалась. С -ftree-vectorize были кой какие проблемы у старой poppler, вроде как пофиксили давно. Впрочем да. Выговор. Эти флаги скорей для разработчиков/мантейнеров. А потом опять жеж магии никакой. Ман да описание камня. Все в комплекте искарропки. А по ссылке танцы с бубном, сплошное шаманство. Не наш метод.
man gcc
Я дико извиняюсь, но man gcc - в моей системе ничего не даёт,
точнее - пустой экран. Вчера делал emerge --sync, после
его emerge -uND world, он мне собрал новый gcc-4.3.3-r1.
USE: doc fortran libffi mudflap multilib multislot nls objc objc++ objc-gc openmp
то есть, справка должна быть, но ея - нет о_О. Что это было? :)
Всё решил с помощью ln -s /usr/share/gcc-data/x86_64-pc-linux-gnu/4.2.4/man/man1/gcc.1.bz2 /usr/share/man/man1/gcc.1.bz2
теперь man gcc показывает %-)
Вчера делал emerge --sync,
Вчера делал emerge --sync, после
его emerge -uND world, он мне собрал новый gcc-4.3.3-r1.
Способ неправаильный.
нельзя так делать.Сначала собираешь тулчейн, потом обновляешь мир.
Что?
Что?
Спасисбо всем, файрфокс
Спасисбо всем, файрфокс больше не сегфолтится!
Осталась проблема с халом.
И еще очень важный вопрос! Раньше при emerge -e world приходилось обновлять множество конфигов с помощью dispatch-conf, а когда сегодня пересобирал мир, ни один конфиг не обновился! В чем может быть дело? CONFIG_PROTECT не выкючал.
..
это из-за фичи в portage которая сравнивает конфиги нетолько с теми что есть, но и стеми что "были изначально" и если первоначальная версия конфига не поменялась, но он небудет просить обновить его правленую версию
Дело в том что он не создает
Дело в том что он не создает файлы _cfg_ даже для тех файлов, которые менялись, т.е. вобще не одного конфига не предлагает обновить