LINUX.ORG.RU

Система Gentoo с KDE 4.7.0. на нетбуке asus n10j


0

1

Цель преследовалась сделать работу с приложениями удобной при разрешении 1024x600 и без большой нагрузки на зрение с минимальными затратами времени на доработку. Приняты во внимание мнения по оформлению и минимизации захламления рабочего пространства. Что-то использовано, что-то из вариантов показалось пока непривычным.

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

Тема оформления Androbit. Наиболее удачным показалось оформление окон как ни странно стандартное oxygen, совсем немного настроенное вручную. Причем oxygen работает достаточно быстро, если пакет qt-gui собран с флагом raster. Установлен удобный анимированный курсор Eclipse и значки из пакета JEY!style Remix. Цвета подбирал частично сам, но на основе наиболее подходящей по оформлению темы halloween. Шрифты Nimbus Roman No9 L, в консоли шрифт Andale Mono. Gtk приложения пока частично приближены к qt хотя бы по цветовому балансу благодаря теме Raleigh (см. оформление gimp).

Панель немного осветленная, состоит из значка меню Gentoo, сиреневой папки для запуска dolphin от обычного пользователя, красной папки для запуска dolphin из-под root, датчиков загрузки процессора и сети, переключателя трех рабочих столов, отделяющего менеджер задач smooth task от датчиков, а также системного лотка и часов. Для более детальной информации о ключевых параметрах системы настроен conky. Дублирование менее информативных датчиков и часов на панели обусловлено тем, что эта полупрозрачная панель перекрывает любые окна и постоянно на виду. Меню и диалоги выводятся с использованием небольшой полупрозрачности. Вывод всех рабочих столов осуществляется по перемещению курсора в левый верхний угол, вывод всех приложений по перемещению курсора в правый нижний угол. Смена прозрачности окон с помощью прокрутки в заголовке окна.

Консоль KDE запускается в виде выпадающего по F12 терминала yakuake.

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

Есть предложения, что еще можно было бы доработать или переделать?

Заранее благодарен.

>>> Просмотр (2066x2454, 1356 Kb)

★★

Проверено: JB ()

Ответ на: комментарий от glibych

Странно, пытался собрать ядро с похожими флагами, прописывал их в переменные $(CFLAGS_MODULE) и $(CFLAGS_KERNEL) в /usr/src/linux/Makefile, ядро не грузилось даже с "-O3 -march=atom" (мгновенно перезагружалось, возможно, это даже граб не мог загрузить образ почему-то).

gentoo_root ★★★★★
()
Ответ на: комментарий от gentoo_root

Я делал так:

В Makefile в исходниках ядра ищем эти строки

HOSTCC       = gcc
HOSTCXX      = g++
HOSTCFLAGS   = -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer
HOSTCXXFLAGS = -O2

Меняем на это (для gcc 4.5.3)

HOSTCC       = gcc
HOSTCXX      = g++
HOSTCFLAGS   = -O3 -march=native -mtune=native -fomit-frame-pointer -pipe --param l1-cache-line-size=64 --param l1-cache-size=24 --param l2-cache-size=512 -mmmx -msse -msse2 -msse3 -mssse3 -ffast-math -mfpmath=both -fexcess-precision=fast -fmerge-all-constants -fno-gcse -funroll-all-loops -g0 -Wno-all
HOSTCXXFLAGS = -O3 -march=native -mtune=native -fomit-frame-pointer -pipe --param l1-cache-line-size=64 --param l1-cache-size=24 --param l2-cache-size=512 -mmmx -msse -msse2 -msse3 -mssse3 -ffast-math -mfpmath=both -fexcess-precision=fast -fmerge-all-constants -fno-gcse -funroll-all-loops -g0 -Wno-all

Проверял на 3-х ядрах 2.6.38-r6, 2.6.39-r3 и 3.0.4 - производительность реально увеличивается. При хорошо настроенном .config ядро можно собрать минут за 20-25.

glibych ★★
() автор топика
Ответ на: комментарий от glibych

>HOSTCFLAGS

С этими флагами, вообще-то, собираются вспомогательные программы для компьютера, на котором будет производиться сборка ядра. К таким программам, например, относится mconf (make menuconfig). На сборку самого ядра и модулей они не влияют.

производительность реально увеличивается

Так что в это не верю.

При хорошо настроенном .config ядро можно собрать минут за 20-25.

Ну так всегда же так было.

gentoo_root ★★★★★
()
Ответ на: комментарий от gentoo_root

Я ж не профи. Все методом научного тыка, вычитывания документации и анализом решений найденных через интернет. Этот вариант найден в интернет, если не ошибаюсь megabaks тоже на это ссылался. Попробую конечно порыться в доках по ядру насчет этого. Странно, но раньше вроде работало. Протестировать можно тем же nbench, скомпилированным один раз и запущенным на ядрах с разными параметрами. Будем значит перепроверять.

P.S. У меня вопрос. Если не сложно конечно и будет 9 минут свободных. Можете замерить время time emerge binutils-2.20.1-r1? Не могу понять раньше уходило около 6 минут, но к сожалению не помню на какой версии binutils проверял. Сейчас за 8мин53сек компилируется и устанавливается даже со стандартными параметрами -O2, причем разницы по времени никакой нет, что -O3, что -O2.

glibych ★★
() автор топика
Ответ на: комментарий от gentoo_root

Выставил эти флаги в Makefile. Поставил собираться. Пока пишет только, что меняет 387 на sse команды.

glibych ★★
() автор топика
Ответ на: комментарий от glibych

>Пока пишет только, что меняет 387 на sse команды.

Да, у меня тоже такое было. Почему-то он упорно не хочет работать с -mfpmath=both. Заменил на -mfpmath=sse.

gentoo_root ★★★★★
()
Ответ на: комментарий от gentoo_root

Очень странно.. У меня /var/tmp/portage вынесены в tmp, да при -O3 использую еще и -pipe, так как чуток быстрее получается, ну и своп 2*4Гб, но своп не задействуется в этом случае. Скорее всего в фоне что-нибудь выполнялось. Например, prelink любит себя так запускать.

glibych ★★
() автор топика
Ответ на: комментарий от glibych

Еще не понравилась запись в Makefile:

CFLAGS_GCOV	= -fprofile-arcs -ftest-coverage

Эти параметры немного замедляют программы на atom судя по моим пробам.

glibych ★★
() автор топика
Ответ на: комментарий от glibych

>А ядро уже запускал или пока сборка?

Да, я же говорил, что запускал. Сначала написал ‘-O3 -march=atom -pipe -fomit-frame-pointer -fexcess-precision=fast -mmmx -mssse3 -mfpmath=sse -fmerge-all-constants -g0’, при загрузке образа грабом ребутнулось. В результате сократил до ‘-O3 -march=atom’, всё равно не взлетело. Запустилось только после сборки с пустыми флагами.

Ворнинги при -mfpmath=both означают лишь то, что реально используется -mfpmath=sse. Что с ним, что без него, всё равно не завелось.

gentoo_root ★★★★★
()
Ответ на: комментарий от gentoo_root

Скорее всего firefox так сильно откушал( Кде кушает много меньше.

glibych ★★
() автор топика
Ответ на: комментарий от glibych

>Еще не понравилась запись в Makefile:

Надо ещё посмотреть, где реально используются эти флаги. Может, они включаются только при включении какой-то опции в конфиге.

gentoo_root ★★★★★
()
Ответ на: комментарий от gentoo_root

Понял. Решил накатить эти параметры на ядро 3.0.4. Будем посмотреть как оно, но gcc молотит пока еще.

glibych ★★
() автор топика
Ответ на: комментарий от glibych

Ругнулось на большой файл установки:

ld: Setup too big! ld: Setup too big! make[1]: *** [arch/x86/boot/setup.elf] Ошибка 1 make: *** [bzImage] Ошибка 2

glibych ★★
() автор топика
Ответ на: комментарий от gentoo_root

У меня получилось ускорить ядро.

С этими параметрами ядро gentoo 3.0.4 собралось и работает хорошо:

CFLAGS_MODULE   = -O2 -march=native -mtune=native --param l1-cache-line-size=64 --param l1-cache-size=24 --param l2-cache-size=512 -fmerge-all-constants -finline-functions -funswitch-loops -fpredictive-commoning -fgcse-after-reload -fipa-cp-clone -fno-gcse
CFLAGS_KERNEL	= -O2 -march=native -mtune=native --param l1-cache-line-size=64 --param l1-cache-size=24 --param l2-cache-size=512 -fmerge-all-constants -finline-functions -funswitch-loops -fpredictive-commoning -fgcse-after-reload -fipa-cp-clone -fno-gcse

Разница между

-O3 -march=native -mtune=native -fomit-frame-pointer -pipe --param l1-cache-line-size=64 --param l1-cache-size=24 --param l2-cache-size=512 -mmmx -msse -msse2 -msse3 -mssse3 -ffast-math -mfpmath=both -fexcess-precision=fast -fmerge-all-constants -fno-gcse -funroll-all-loops -g0 -Wno-all

и

-O2 -march=native -mtune=native --param l1-cache-line-size=64 --param l1-cache-size=24 --param l2-cache-size=512 -fmerge-all-constants -finline-functions -funswitch-loops -fpredictive-commoning -fgcse-after-reload -fipa-cp-clone -fno-gcse

составляет:

-mmmx -msse -msse2 -msse3 -mssse3 -ffast-math -mfpmath=both -fexcess-precision=fast -funroll-all-loops -ftree-vectorize -g0 -Wno-all
Т.е. эти ключи оптимизации не включены в тестируемое ядро. Часть ключей уже определена как негодная для оптимизации. Стало ясно, что ядру не нравятся оптимизации связанные с командами sse, разворотом циклов и векторизацией. Ключи -mmmx -ffast-math -fexcess-precision=fast -g0 -Wno-all пока не проверял.

А вот новый рекорд для atom n270 без железного разгона:

BYTEmark* Native Mode Benchmark ver. 2 (10/95)
Index-split by Andrew D. Balsa (11/97)
Linux/Unix* port by Uwe F. Mayer (12/96,11/97)

TEST                : Iterations/sec.  : Old Index   : New Index
                    :                  : Pentium 90* : AMD K6/233*
--------------------:------------------:-------------:------------
NUMERIC SORT        :          575.16  :      14.75  :       4.84
STRING SORT         :           131.8  :      58.89  :       9.12
BITFIELD            :      2.9781e+08  :      51.09  :      10.67
FP EMULATION        :          115.04  :      55.20  :      12.74
FOURIER             :          8185.7  :       9.31  :       5.23
ASSIGNMENT          :          18.504  :      70.41  :      18.26
IDEA                :          2131.5  :      32.60  :       9.68
HUFFMAN             :          1041.4  :      28.88  :       9.22
NEURAL NET          :          10.727  :      17.23  :       7.25
LU DECOMPOSITION    :          554.08  :      28.70  :      20.73
==========================ORIGINAL BYTEMARK RESULTS==========================
INTEGER INDEX       : 39.949
FLOATING-POINT INDEX: 16.636
Baseline (MSDOS*)   : Pentium* 90, 256 KB L2-cache, Watcom* compiler 10.0
==============================LINUX DATA BELOW===============================
CPU                 : Dual GenuineIntel Intel(R) Atom(TM) CPU N270   @ 1.60GHz 800MHz
L2 Cache            : 512 KB
OS                  : Linux 3.0.4-gentoo
C compiler          : i686-pc-linux-gnu-gcc
libc                : 
MEMORY INDEX        : 12.111
INTEGER INDEX       : 8.615
FLOATING-POINT INDEX: 9.227
Baseline (LINUX)    : AMD K6/233*, 512 KB L2-cache, gcc 2.7.2.3, libc-5.4.38
* Trademarks are property of their respective holder.
Местами результаты совпали с предыдущим тестом, часть немного выше. В целом получается очень приличный рост производительности для этого процессора с принятыми мерами оптимизации. Еще бы довести до ума железный разгон в линукс на asus n10j... C помощью SetFSB 2050Мгц в винде держит спокойно, что дает еще прирост на некоторых приложениях от 20 до 40%.

glibych ★★
() автор топика
Ответ на: комментарий от glibych

Т.е. таки работает с ‘-O2’? Надо тоже попробовать, видимо, ядру не нравится ‘-O3’. Какой же там, оказывается, быдлокод: вся система собрана с -O3, и всё работает, а ядро даже не грузится.

gentoo_root ★★★★★
()
Ответ на: комментарий от glibych

Кстати, посмотрел, какие флаги выставляются независимо от $(CFLAGS_KERNEL). Из важного там есть: ‘-fno-strict-aliasing -fno-common -fno-delete-null-pointer-checks -O2 -m32 -msoft-float -mregparm=3 -freg-struct-return -mpreferred-stack-boundary=2 -march=atom -mtune=atom -maccumulate-outgoing-args -Wa,-mtune=generic32 -ffreestanding -fstack-protector -pipe -fno-asynchronous-unwind-tables -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -Wframe-larger-than=1024 -fomit-frame-pointer -fno-strict-overflow -fconserve-stack’. Т.е. ‘-O2 -march=atom -pipe -fomit-frame-pointer’ можно не выставлять, т.к. они уже есть, а всякие -mmmx, -msse нельзя выставлять (недаром же их выключили принудительно).

gentoo_root ★★★★★
()
Ответ на: комментарий от gentoo_root

Да работает, причем практически на полном варианте -O3:

Это разница между -O2 и -O3, документированная в руководстве к gcc 4.5.3:


-O3
Optimize yet more. -O3 turns on all optimizations specified by -O2 and also turns on the -finline-functions, -funswitch-loops, -fpredictive-commoning, -fgcse-after-reload, -ftree-vectorize and -fipa-cp-clone options. 
[/code/

У меня в ядре из этого присутствует -O2 -finline-functions -funswitch-loops -fpredictive-commoning -fgcse-after-reload, -ftree-vectorize -fipa-cp-clone options, т.е выкинут только один параметр векторизации -ftree-vectorize

glibych ★★
() автор топика
Ответ на: комментарий от glibych

Какой загрузчик? У меня grub legacy, и не загрузилось даже с ‘-O3 -march=atom’, т.е. по сути с ‘-O3’, хотя если оставить пустые CFLAGS, всё работает. Вылетает ещё при загрузке ядра грабом.

gentoo_root ★★★★★
()
Ответ на: комментарий от gentoo_root

У мну тоже первый grub. Мы не поняли друг-друга. С полным -O3 у меня тоже не загрузилась система. -O3 я заменил серией ключей, которая не включила в себя параметр векторизации -ftree-vectorize. И тогда все заработало.

glibych ★★
() автор топика
Ответ на: комментарий от gentoo_root

Я оставляю все хорошие опции, даже если они есть по умолчанию. Всегда есть шанс, что их могут забыть включить. Есть мысли какие опции еще желательно проверить?

glibych ★★
() автор топика
Ответ на: комментарий от glibych

В общем, собрал nbench с такими флагами: ‘-O3 -march=atom -pipe -fomit-frame-pointer -fexcess-precision=fast -mmmx -mssse3 -mfpmath=sse -fmerge-all-constants -ftree-vectorize -g0 -ffast-math’, ядро с ‘-fexcess-precision=fast -fmerge-all-constants -ftree-vectorize -g0’, загрузилось, вот результат (с разгоном, правда):


BYTEmark* Native Mode Benchmark ver. 2 (10/95)
Index-split by Andrew D. Balsa (11/97)
Linux/Unix* port by Uwe F. Mayer (12/96,11/97)

TEST                : Iterations/sec.  : Old Index   : New Index
                    :                  : Pentium 90* : AMD K6/233*
--------------------:------------------:-------------:------------
NUMERIC SORT        :          671.52  :      17.22  :       5.66
STRING SORT         :          146.98  :      65.67  :      10.17
BITFIELD            :      2.6291e+08  :      45.10  :       9.42
FP EMULATION        :           127.8  :      61.32  :      14.15
FOURIER             :          9130.8  :      10.38  :       5.83
ASSIGNMENT          :          16.965  :      64.56  :      16.74
IDEA                :            2497  :      38.19  :      11.34
HUFFMAN             :          1200.6  :      33.29  :      10.63
NEURAL NET          :          11.346  :      18.23  :       7.67
LU DECOMPOSITION    :          543.04  :      28.13  :      20.31
==========================ORIGINAL BYTEMARK RESULTS==========================
INTEGER INDEX       : 42.651
FLOATING-POINT INDEX: 17.461
Baseline (MSDOS*)   : Pentium* 90, 256 KB L2-cache, Watcom* compiler 10.0
==============================LINUX DATA BELOW===============================
CPU                 : Dual GenuineIntel Intel(R) Atom(TM) CPU N280   @ 1.66GHz 1880MHz
L2 Cache            : 512 KB
OS                  : Linux 3.0.4-gentoo-00
C compiler          : i686-pc-linux-gnu-gcc
libc                :
MEMORY INDEX        : 11.704
INTEGER INDEX       : 9.911
FLOATING-POINT INDEX: 9.685
Baseline (LINUX)    : AMD K6/233*, 512 KB L2-cache, gcc 2.7.2.3, libc-5.4.38
* Trademarks are property of their respective holder.

-O3 я заменил серией ключей, которая не включила в себя параметр векторизации -ftree-vectorize. И тогда все заработало.

Странно, но у меня заработало с -ftree-vectorize.

Всегда есть шанс, что их могут забыть включить.

-pipe всегда включено, -O2/-Os зависит от конфига, -march тоже, -fomit-frame-pointer тоже. Нехорошо переопределять значения, заданные при конфигурации.

Есть мысли какие опции еще желательно проверить?

А хз, вроде, больше ничего важного и нет.

gentoo_root ★★★★★
()
Ответ на: комментарий от gentoo_root

Странно, что без разгона на обычных 1600Мгц (супротив ускоренного до 1880Мгц atom n280) часть тестов на atom n270 быстрее. Эх! Мне бы тоже ввернуть рабочие 2ГГц в свой линукс...

Может какой ключ не указан? Ядро уже перекомпилировано с новыми параметрами? По идее-то atom n280 должен быть побыстрее 270-го.

Надо тогда попробовать и мне добавить -ftree-vectorize в ключи компиляции ядра. Получается, что разница в -O2 и -O3 еще больше, но это не документировано.

glibych ★★
() автор топика
Ответ на: комментарий от glibych

Ключи для компиляции ядра -ffast-math -fexcess-precision=fast и -ftree-vectorize выдали нулевой прирост производительности, но с -ftree-vectorize все же ядро собралось и запустилось.

glibych ★★
() автор топика
Ответ на: комментарий от gentoo_root

Удалось собрать ядро 3.0.4 с этими параметрами:

CFLAGS_MODULE   =  -O3 -march=native -mtune=native -fomit-frame-pointer -pipe --param l1-cache-line-size=64 --param l1-cache-size=24 --param l2-cache-size=512 -fexcess-precision=fast -ffast-math -mfpmath=387 -finline-functions -ftree-vectorize -fmerge-all-constants -fno-align-functions -funswitch-loops -fpredictive-commoning -fgcse-after-reload -fipa-cp-clone -fno-gcse -g0 -Wno-all -mcx16 -msahf -mstackrealign -mpc64

CFLAGS_KERNEL	= -O3 -march=native -mtune=native -fomit-frame-pointer -pipe --param l1-cache-line-size=64 --param l1-cache-size=24 --param l2-cache-size=512 -fexcess-precision=fast -ffast-math -mfpmath=387 -finline-functions -ftree-vectorize -fmerge-all-constants -fno-align-functions -funswitch-loops -fpredictive-commoning -fgcse-after-reload -fipa-cp-clone -fno-gcse -g0 -Wno-all -mcx16 -msahf -mstackrealign -mpc64

Но разницы не заметил от предыдущего варианта.

glibych ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.