20 января 2011 г.

Сессия подходит к концу

01. Сессия подходит к концу. Ещё несколько дней, и всё. Впрочем, я ошибался - это не последняя сессия. В феврале мне нужно будет сдать ещё несколько зачётов и/или экзаменов. И это будет действительно всё.

02. В конце прошлого года начал работать над дипломом. Защита будет летом, в Москве.

03. Понял, что возможности текстовых процессоров по работе с _текстом_ меня не устраивают. Не хватает клавиатурных комбинаций Emacs, которые уже стали привычными. Заметил, что если мне нужно записать какой-то текст, будь то лекция или статья - то я запускаю Emacs и автоматически начинаю записывать в HTML, расставляя необходимые теги. К возможностям текстового процессора обращаюсь в редких случаях. В связи с этим, начал изучать систему компьютерной вёрстки LaTeX, параллельно с написанием дипломной работы.

Думаю, знание LaTeX мне пригодится в будущем.

04. Мне нравится браузер Mozilla Firefox. Однако последнее время, в основном, использую браузер Conkeror. Мне нравится дизайн его интерфейса и система управления.

05. Серьёзно занялся изучением программирования. Столько я не программировал за все годы обучения в ВУЗе. Обнаружил, что понимание работы программы - это столь же здорово, как и понимание работы той или иной части ОС. В этом неоспоримое преимущество свободного программного обеспечения - вас не ограничивают в изучении, и вы можете достичь сколь угодно глубокого понимания, вплоть до основ (если таковые есть). Вы можете не только изучить, но и исправить то, что на ваш взгляд нуждается в исправлении. Вы можете добавить дополнительную функциональность, которой вам не хватает, и поделиться результатами своей работы (если захотите).

Мне нравится реализовывать алгоритмы, которые вырисовываются в воображении в процессе понимания поставленной задачи. Если этот алгоритм не работает с первого раза, то я могу провести много времени, перечитывая код программы и мысленно моделируя её работу: вот сейчас эта переменная увеличилась на единицу, а сейчас цикл совершил новую итерацию и вот этот указатель теперь содержит адрес следующей ячейки массива... В конечном счёте, как правило, мне удаётся решить возникшую проблему. Это здорово.

Сегодня я наконец-то решил освоить азы работы с отладчиком GNU Debugger. Благодаря ему, я смог найти ошибку в программе, из-за которой она не работала задуманным образом.

7 января 2011 г.

Мой новый проект

Обновил свой сайт - почистил HTML-код, удалил лишние стили, добавил новый раздел.

Теперь о главном. Поскольку я сейчас вновь достаточно активно изучаю язык программирования Си - на курсах в НИИТе и самостоятельно дома - то решил запустить новый проект.

http://memory-pool.blogspot.com/

Цель проекта - собрание в одном месте различных интересных задач по программированию, которые мне попадались на курсах (или которые я нашёл/придумал сам), и их решений. Проект по сути образовательный, и будет расти вместе с познаниями автора. Надеюсь, что смогу живо и интересно преподнести такую сухую материю, как программирование.

Использование свободного драйвера nouveau с NV GeForce 6600 (kernel 2.6.36)

Решил заменить проприетарные драйвера от (или для) видеокарты nvidia на свободный драйвер nouveau.

Моя видеокарта:

> su
> lspci -k | grep -i vga
01:00.0 VGA compatible controller: nVidia Corporation NV43 [GeForce 6600] (rev a2)


Моя система:

> uname -a
Linux gentoo 2.6.36-gentoo-r5 #18 SMP Fri Jan 7 05:54:56 MSK 2011 i686 Intel(R) Pentium(R) 4 CPU 1.70GHz GenuineIntel GNU/Linux


Следую этой инструкции:
http://en.gentoo-wiki.com/wiki/Nouveau

Из ядра так же нужно убрать NVIDIA Framebuffer:

Device Drivers --> Graphics support -->
--> Support for frame buffer devices:
< > nVidia Framebuffer Support


Поправил /etc/make.conf

> nano /etc/make.conf
...
#VIDEO_CARDS="nvidia"
VIDEO_CARDS="nouveau"
...


Чтобы корректно удалить из системы проприетарные драйвера nvidia-drivers, нужно пересобрать несколько пакетов с поддержкой nouveau - чтобы разрешить зависимости. Что я и сделал:

> emerge -av media-libs/mesa media-gfx/imagemagick x11-base/xorg-drivers


Теперь можно спокойно удалить проприетарные драйвера

> emerge -av --depclean x11-drivers/nvidia-drivers


Собрал

> emerge -av x11-drivers/xf86-video-nouveau


Настроил Иксы:

> nano /etc/X11/xorg.conf


Section "Module"
...
Load "dri2"
Load "dri"
EndSection

Section "Device"
...
Driver "nouveau"
BusID "PCI:1:0:0"
EndSection

...

Section "ServerFlags"
Option "AIGLX" "off"
EndSection

Section "DRI"
mode 0666
EndSection


Теперь о настройке framebuffer'a. Мне нужно разрешение 1280x1024. Посмотрел доступные варианты с помощью утилиты hwinfo:

> hwinfo --framebuffer
02: None 00.0: 11001 VESA Framebuffer
[Created at bios.459]
Unique ID: rdCR.MH8719d4NL7
Hardware Class: framebuffer
Model: "NVIDIA nv43 Board - p277h1"
Vendor: "NVIDIA Corporation"
Device: "nv43 Board - p277h1"
SubVendor: "NVIDIA"
SubDevice:
Revision: "Chip Rev"
Memory Size: 256 MB
Memory Range: 0xd0000000-0xdfffffff (rw)
...
Mode 0x031b: 1280x1024 (+5120), 24 bits
...


Вот оно. 0x031b - шестнадцатиричный код разрешения.

Поправил настройки загрузчика GRUB. Удалил опцию ядра "video", оставил только "vga". Получилось следующее:

> nano /boot/grub/grub.cfg

...
menuentry "Gentoo GNU/Linux, with Linux 2.6.36" --class gentoo --class gnu-linux --class gnu --class os {
...
linux /kernel-2.6.36 root=/dev/sda4 ro vga=0x031b
}
...


Загрузился с пересобранным ядром и драйвером nouveau. Иксы работают, разрешение в консоли и в Иксах - 1280x1024.

На этом всё. Хорошего дня.