пʼятниця, 14 листопада 2008 р.

Драйвери AMD/ATI 8.552

Так вже повелося, що AMD щомісяця в районі 15-го числа випускає нові драйвери. Не став винятком і листопад, а тому 14-го числа, себто сьогодні, було анонсовано про випуск нової версії.

Що ж нас чекає в новій версії:

  1. перша і дуже бажана річ - підтримка X.org версії 7.4 (для тих, в кого вони є, але хто не має Убунти).
  2. друга річ - це підтримка ядер серії 2.6.27 (у попередній версії вони не підтримувалися, хоча згідно документації все повинно було працювати).
Одразу ж кидається у вічі - великий розмір пакунку ~72 мегабайти, а з таким зростанням починає зростати надія на безболісне встановлення. Окрім того, повідомлення про реліз поширюється у форматі pdf (до того був звичайний html).

Власне, причина, яка мене надихнула на перевірку пакунку є саме ядро 2.6.27, яке бачить мою бездротову картку від Atheros 6007 і бажання перевірити чи справді все так гладко.

Тому починаємо тестування із завантаження пакунку та створення на його основі пакетів для Debian.

З під адміністратора запускаємо генерацію пакунків для Дебіан:


# ./ati-driver-installer-8-11-x86.x86_64.run --buildpkg Debian/testing

та отримуємо перший глевкий шматок:

dpkg-shlibdeps: failure: couldn't find library libfglrx_gamma.so.1 needed by debian/fglrx-driver/usr/bin/fglrx_xgamma (its RPATH is '').

Note: libraries are not searched in other binary packages that do not have any shlibs or symbols file.

To help dpkg-shlibdeps find private libraries, you might need to set LD_LIBRARY_PATH.

dh_shlibdeps: command returned error code 512

Однак справжні лінуксоїди (вб'ю того, хто надумав обзивати їх гіками (англ. "придурки")) так просто не здаються ;) Тому розпаковуємо архів до теки ati_deb

# ./ati-driver-installer-8-11-x86.x86_64.run --extract ati_deb

Після цього, скориставшись порадою, переходимо до теки ati_deb/arch/x86/usr/X11R6/lib та копіюємо файл, змінюючи йому назву (кажуть можна створити символьне посилання, але то вже на любителя):

# cp libfglrx_gamma.so.1.0 libfglrx_gamma.so.1

Аналогічно робимо для 64-х розрядних бібліотек:

# cd ../../../../x86_64/usr/X11R6/lib64/

# cp libfglrx_gamma.so.1.0 libfglrx_gamma.so.1

Повертаємося до "кореневої" теки

# cd ../../../../../

і тут нас чекає найцікавіше. Скрипт ati-installer.sh не хоче запускатися, тобто він запускається, але не знає навіщо:

# ./ati-installer.sh --buildpkg Debian/lenny

==================================================

ATI Technologies Linux Driver Installer/Packager

==================================================

Unrecognized parameter 'Debian/lenny' to ati-installer.sh

Проблема в тому, що для розуміння наших бажань він готовий зробити все, що ми вкажемо в третьому параметрі (першим вважається файл ati-installer.sh). Тобто третім параметром має бути --buildpkg Debian/lenny, а другим, що забажаєте. Я запропонував вивести довідку по роботі з встановлювачем, і він мене зрозумів ;) :

# ./ati-installer.sh --help --buildpkg Debian/lenny

==================================================

ATI Technologies Linux Driver Installer/Packager

==================================================

Generating package: Debian/lenny

Package /home/distr/Drivers/ati/fglrx-driver_8.552-1_amd64.deb has been successfully generated

Package /home/distr/Drivers/ati/fglrx-driver-dev_8.552-1_amd64.deb has been successfully generated

Package /home/distr/Drivers/ati/fglrx-kernel-src_8.552-1_amd64.deb has been successfully generated

Package /home/distr/Drivers/ati/fglrx-amdcccle_8.552-1_amd64.deb has been successfully generated

Тепер встановлюємо пакунки:

# cd../; dpkg -i *.deb

завантажуємо асистента модулів (module-assistant, m-a) та встановлюємо необхідний модуль.

Перевіряємо доступність модуля:

# modprobe fglrx

fglrx: module license 'Proprietary. (C) 2002 - ATI Technologies, Starnberg, GERMANY' taints kernel.
[fglrx] Maximum main memory to use for locked dma buffers: 3556 MBytes.
[fglrx] vendor: 1002 device: 9612 count: 1
[fglrx] ioport: bar 1, base 0x5000, size: 0x100
pci 0000:01:05.0: power state changed by ACPI to D0
pci 0000:01:05.0: PCI INT A -> GSI 18 (level, low) -> IRQ 18
pci 0000:01:05.0: setting latency timer to 64
[fglrx] PAT is enabled successfully!
[fglrx] module loaded - fglrx 8.55.2 [Oct 28 2008] with 1 minors

Прописуємо модуль для встановлення:

# cat >> /etc/modules

fglrx

та вносимо зміни до налаштувань X сервера, з врахуванням можливості підключення другого монітору:

# aticonfig --initial=dual-head --screen-layout=above

Перезавантажуємось та насолоджуємось новим виглядом.

Згідно даних fgl_glxgears маємо наступну швидкодію:

$ fgl_glxgears
Using GLX_SGIX_pbuffer
2530 frames in 5.0 seconds = 506.000 FPS
2715 frames in 5.0 seconds = 543.000 FPS
2699 frames in 5.0 seconds = 539.800 FPS
3471 frames in 5.0 seconds = 694.200 FPS


У TuxRacer у повноекранному режимі (1280х800) з максимальними налаштуваннями маємо 68-73 кадри/сек.

Висновок: Незважаючи на невеличкі костилі, працює дуже добре. Наразі нарікань (за перші 5 хвилин запуску) немає.

пʼятниця, 31 жовтня 2008 р.

Давач температури

Нарешті випала невелика нагода добратися до блогу та внести останні нотатки.
Останнім часом ноутбук почав вимикатися при температурі ~90 градусів по Цельсію.
Спершу грішив на кулер, думав може з ним щось, однак після розбирання виявилося, що вся проблема з термопастою, а точніше з її біс зна яким нанесенням (на процесорі її майже не було, взагалі дивно, як воно умудрилося не згоріти). Однак про це далі.
Наразі мова піде про те, як то спало мені на думку і вдалося прикрутити давач температури.

Насправді то зовсім нескладно. Для цього досить трішки полазити по тенетах і почитати чи хтось вже таке робив.

Проблема полягає в кривому БІОСі від HP (Hewlet Packard), а точніше в параметрах ACPI. Для того, щоб полагодити помилку слід списати оте саме ACPI, дизасемблювати, поправити помилку і після того змусити ядро читати поправлену версію.

Найскладніше в цій операції саме процес перезборки ядра, при комп'ютері, який вимикається ;)

Отже, виглядає то всьо таким чином:
  1. Записуємо до теки поточну конфігурацію ACPI (під адміністратором).
  2. sudo cat /proc/acpi/dsdt > /tmp/DSDT
  3. Дизасемблюємо отримане чудо:
  4. cd /tmp;iasl -d /tmp/DSDT
  5. Редагуємо файл отриманий файл
  6. vim DSDT.dsl
  7. З методу Method (_HOT, 0, Serialized) забираємо умовності. Їх треба видалити. Яким чином закоментувати - не маю уявлення; Сішний коментар "//" не спрацював (видно руки криві) :(.
  8. Аналогічну річ слід зробити для методу Method (_CRT, 0, Serialized).
  9. В мене після редагування вони набули наступного вигляду:
  10. Method (_HOT, 0, Serialized)
    {
    Return (Add (0x0AAC, Multiply (TPC, 0x0A)))
    }

    Method (_CRT, 0, Serialized)
    {
    Return (Add (0x0AAC, Multiply (TPC, 0x0A)))
    }
  11. Після цього треба скомпілювати отриманий код:
  12. iasl -tc DSDT.dsl
  13. Отриманий файл DSDT.hex слід скопіювати до підтеки include теки джерельного коду Вашого ядра. В моєму випадку то виглядає таким чином:
  14. sudo cp DSDT.hex /usr/src/dv5temp/linux-2.6.27.3/include
  15. Тепер треба перезібрати ядро, додавши наступні параметри (я зазвичай користуюся make menuconfig, тому вказую для даного методу налаштування).
    1. Device Drivers -> Generic Driver Options -> Select only drivers that don't need compile-time external hardware (тут зняти опцію)
    2. Power Management Options -> ACPI (Advanced Configuration and Power Interface) Support -> Custom DSDT Table file to include (вписати без лапок "DSDT.hex")


  16. Далі компілюємо ядро і встановлюємо:

    • make
    • make install

  17. Перезавантажуємося з новим ядром і вмикаємо давачі температури.
Начебто все.
Для особливо лінивих та початківців - можу порекомендувати ядро 2.6.27.3 зібране мною.
Серед особливостей ядра - підтримка майже всього обладнання ноутбука (окрім пульту дистанційного керування).
Зібрано все в deb пакетах для улюбленої системи.

Ядро
Заголовки
Документація
Джерельний код
Довідник

Всі матеріали почерпнуто з проекту Lesswatts та Google.

понеділок, 13 жовтня 2008 р.

./configure /bin/sh: Bad interpreter Permission Denied

Пишу чергову лабораторку для студентів, де їм потрібно встановлювати програмне забезпечення під Linux. Виникла проблема з тим, що на приєднаному розділі неможливо ані налаштувати програму, ані (використовуючи /bin/bash configure) запустити програмку.
Скрипт configure видає повідомлення - винесене в заголовок даного допису.

Проблема вирішується наступним чином:
1) відкриваємо /etc/fstab в улюбленому редакторі.
2) шукаємо необхідний розділ та додаємо параметр exec
3) повторно приєднуємо розділ і все працює :)

пʼятниця, 3 жовтня 2008 р.

Мережевий тест

Оце бродив по тенетах в пошуках Барди. Є така панєнка, яка співає пісні на вірші по Толкієну, і набрів на отакий тест. Наскільки правда? Невідомо :)

Твое кольцо – Кольцо Власти
Получить это кольцо непросто, но, может, и слава Богу. Дело в том, что оно дает власть над происходящим: над чувствами и мыслями других людей и даже над событиями, которые принято считать случайными. Понятно, что такое кольцо может попасть только в руки человека ответственного и с хорошим самообладанием. Но к счастью, у этого кольца есть одна особенность: его обладатель в первую очередь получает власть над СВОЕЙ судьбой и только потом – над остальными. Так что у тебя будет время попрактиковаться. Владей, повелевай и будь осторожен(а). Отныне – все ДЕЙСТВИТЕЛЬНО в твоих руках…image
Пройти тест


Зрештою пісні я таки знайшов :)

вівторок, 26 серпня 2008 р.

Драйвери Asus NX1001

В ніч з суботи на неділю була сильна гроза, внаслідок чого "накрилася" мережева плата, яка давала інет на локальну мережу. Після недовгих роздумів та пошуку грошей, вирішено купити мережеву плату Asus NX1001. Рішення прийшло в магазині, тим паче, що на упаковці гордо значилося, що мережева підтримується Лінаксом.
Завести з рідних драйверів мені цей чудо-агрегат не вдалося, компілятор мабуть був не в настрої, і відправив мене думати:

nx1001_main.c:228: error: expected ‘)’ before string constant
nx1001_main.c:229: error: expected ‘)’ before string constant
nx1001_main.c:230: error: expected ‘)’ before string constant
nx1001_main.c:231: error: expected ‘)’ before string constant
nx1001_main.c: In function ‘netdev_open’:
nx1001_main.c:924: warning: ‘deprecated_irq_flag’ is deprecated (declared at include/linux/interrupt.h:66)
nx1001_main.c:924: warning: passing argument 2 of ‘request_irq’ from incompatible pointer type
nx1001_main.c: In function ‘sundance_init’:
nx1001_main.c:1928: warning: implicit declaration of function ‘pci_module_init’
make[2]: *** [/home/distr/Drivers/Asus_Net/nx1001_main.o] Error 1


Швидкий пошук у гуглі показав, що мережева підтримується лише для ядер серії 2.4.x. Для ядер серії 2.6.х виробник рекомендував самому допиляти драйвер (от Вам і Асус).
Власне помилка, яку довелося виправляти є досить банальною. Дана мережева (якщо я правильно зрозумів опис у файлі) підтримується на рівні ядра модулем sundance. Однак перезбирувати ядро самому було ліньки, а тому я вирішив поправити таки модуль, взявши за основу модуль ядра 2.6.х (яке використовую на сервері).
Загалом невелика правка дозволила запустити драйвер у ролі модуля.
Завантажити правлену версію драйвера (працює з ядром 2.6.22) можна звідси.

Процес встановлення полягає в наступному (працює для Debian)
make all
sudo cp nx1001.ko /lib/modules/$(uname -r)/kernel/drivers/net
sudo modprobe nx1001

Далі прописуємо у /etc/modules рядок
nx1001
і насолоджуємося з'єднанням.

А можна просто перезібрати ядро (якщо у Вас нестандартне), включивши туди підтримку мережевої плати sundance.

вівторок, 19 серпня 2008 р.

Активація тачпаду

Сьогодні явно напружений день.
Надибав відсутність нормальної роботи тачпаду (коли спробував прокрутити сторінку, на полосі, а вона не прокрутилася :) )

Для активації треба внести наступні зміни у файл /etc/X11/xorg.conf:
~$ sudo vim /etc/X11/xorg.conf

Додати наступний пристрій вводу:
Section "InputDevice"
Identifier "Synaptics Touchpad"
Driver "synaptics"
Option "SendCoreEvents" "true"
Option "Device" "/dev/psaux"
Option "Protocol" "auto-dev"
Option "HorizEdgeScroll" "0"
EndSection

Та встановити Налаштування Сервера:
Section "ServerLayout"
Identifier "Default Layout"
Screen "Default Screen"
InputDevice "Synaptics Touchpad"
EndSection

неділя, 17 серпня 2008 р.

Що працює

Власне, я так і не описав попутньо, що на ноутбуці працює, а що ні. Однією з причин - бажання скласти якнайбільш об'єктивну картину і провести тестування апаратного та програмного забезпечення на предмет помилок тощо.
Отже, після встановлення системи з диску (останній зріз місяця липня) в системі працює:
1) Екран та клавіатура :)
2) USB-порти.
3) Кард-рідер
4) Звук у навушниках
5) Web-камера

Не працює:
1) Зміна джерела відтворення звуку при увімкненні/вимкненні навушників (треба ставити нове ядро або поновлювати alsa бібліотеки)
2) Тачпад (треба вписати в налаштування Х-сервера)
3) Мережева карта (працює, якщо в процесі встановлення ви перейшли на ядро 2.6.25)
4) Карта бездротового зв'язку
5) Пульт дистанційного керування (не перевірено)
6)Кнопка QuickPlay (на ній мікрософтівська програма перегляду відео, треба буде почепити Totem :) )
7) Можливо ще щось :)

четвер, 14 серпня 2008 р.

Ядро 2.6.27-rc3

Нарешті.... я таки повірив в себе. Після двох тижнів розборок з ядрами, я таки запустив пілотну версію ядра 2.6.27-rc3 на ноутбуці. Серце підказувало, що то не мої криві руки, а таки розробники десь помилилися.
Тепер коротко: проблема полягала у неправильному виклику функції native_smp_prepare() , яку поправили аж у поточній версії (я не переконаний, але дана помилка була присутня у ядрах версії 2.6.26-2). Тому, якщо Ваше ядро не запускається -- спробуйте нову версію ядра з стандартним параметром.

Відкритим залишається питання щодо безпроводового зв'язку (наразі ведеться робота, можливо буду шукати драйвери для XP) та врізання розмірів ядра до прийнятних з подальшим викладенням на сторінці.

Чекайте.

четвер, 7 серпня 2008 р.

Конфігурація ноутбука

Назва HP Pavilion DV5-1004NR
Назва продукту dv5-1004nr
Номер продукту FE765UA#ABA
Мікропроцесор 2.10 ГГц AMD Turion X2 Ultra ZM-80 Dual-Core Mobile Processor
Об'єм кешу 2 Мб кешу 2-го рівня
Обсяг оперативної пам'ять
4096 Мб
Максимальний обсяг ОЗП До 8GB DDR2 (32-х розрядна операційна система може бачити до 5Гб)
Відео карта ATI Radeon HD 3200 Graphics RS780M
Обсяг відеопам'яті
До 1918 Мб
Об'єм вінчестера
250 Гб (5400 об/хв)
Оптичний привід LightScribe Super Multi 8X DVD±R/RW з підтримкою технології Double Layer
Дисплей 15.4" WXGA High-Definition BrightView Widescreen (1280 x 800)
Факс/Модем High speed 56K modem
Мережева плата Інтегрована мережева плата Ethernet 10/100
Бездротове з'єднання 802.11b/g WLAN
Звук Altec Lansing speakers
Клавіатура 101-key compatible
Маніпуляційний пристрій Touch Pad з вбудованою функцією вертикальної та горизонтальної прокруток
Роз'єми PC Card
  • Один роз'єм ExpressCard/54 (підтримується робота ExpressCard/34)
Зовнішні порти
  • Вбудований кардрідер 5-in-1 з підтримкою наступних типів карток: Secure Digital, MultiMedia cards, Memory Stick, Memory Stick Pro, та xD Picture cards
  • 4 порти Universal Serial Bus USB 2.0
  • 1 VGA (15-pin)
  • 1 HDMI
  • 1 RJ-11 (модем)
  • 1 TV-Out (S-video)
  • 1 RJ -45 (LAN)
  • 2 аудіовиходи для навушників
  • 1 аудіовхід для мікрофону
  • 1 порт розширення notebook expansion port 3
  • 1 IEEE 1394 Firewire (4-pin)
  • 1 Consumer IR
Розміри 14.05" (L) X 10.2" (W) X 1.37" (MIN H)/1.65" (MAX H)
Вага 5.84 lbs (2,65 кг)
Безпека
  • Kensington MicroSaver lock slot
  • Power-on password
  • Accepts 3rd party security lock devices
Живлення
  • 65 W AC Adapter
  • 6-cell Lithium-Ion (Li-Ion)
Додаткові матеріали HP Pavilion WebCam with stereo Integrated Microphones

Mobile Stereo Earbud Headphones (1 pair)

HP Mobile Remote Control

середа, 6 серпня 2008 р.

Невеликий відступ

Отже, маю новий блог. Всі деталі, щодо встановлення та використання Лінакс на Dell Inspiron 1501 довелося залишити на старому блозі. Тепер можна починати все з нової сторінки і мабуть доведеться таки почати :)