Tag Linux

Asus, Bulldozer, Linux и грабли

11 Июль, 04:44, by Rus Метки: , , ,

Прикольно когда накладывается сразу три технических проблемы на ровном месте, например при попытке взять Asus M5A97 Pro и попытаться поставить на нее AMD FX-8150 и Linux. Вообще с этой мамкой что-то не так — наблюдаются артефакты и спецэффекты даже после проделанных ниже манипуляций [ потрескивание динамика при ping -f это что-то ;) ]. Стоит 7 раз подумать прежде чем ее юзать, да еще вкупе с бульдозером — есть SaberTooth, которая свободна от всех недостатков M5A97. Тем не менее ее можно заставить как-то работать, но для этого нужно немного магии или много пива. Ниже приведена пошаговая магия, так как пива уже нет :

1. Шьем последний BIOS (1208), перезагружаемся, заходим в Setup

2. Включаем IOMMU — иначе отгребете еще больше левых багов. Также не пытаемся включать несколько настроек в BIOS за раз — в этой мамке (спасибо BIOS’о-писателям) это приведет к еще более странным глюкам. Т.е. поменяли одну настройку, сохранили, перезагрузились.

3. Выключаем Turbo Core, дабы не склеил ласты или не начал сбоить хилый источник питания матери, который явно рассчитан на работу в режиме 140W только в условиях суровых сибирских зим.

4. По той же причине включаем Extreme EPU mode и выключаем EPU Power Saving mode

5. Ставим как минимум 3.5-rc5 ядро, так как во-первых избавимся от страшных надписей «[Firmware Bug]: cpu 7, IBS interrupt offset 0 not available» при теплых перезагрузках, а во-вторых перестанет намертво отваливаться сеть с не менее страшными надписями  «AMD-Vi: Event logged [IO_PAGE_FAULT device=06:00.0 domain=0x001 address=0x00000000009cd000 flags=0x0050]«, «NETDEV WATCHDOG: eth0 (r8169): transmit queue 0 timed out» и совершенно левыми надписями «r8169 0000:06:00.0: eth0: link up» при железно подключенном кабеле сети.

6. Тестируем все это дело MemTest’ом, iperf’ом и ложимся спать, так как местами уже 5 утра ;)

HDD в 3TB и сражение длиной в weekend

09 Апрель, 09:08, by Rus Метки: , , , , , ,

В процессе апгрейда с 500GB WD на 3TB Hitachi IBM оказалось, что Linux прекрасно себя чуствует — разбивает, видит, перносится (обычным ‘cp -a’ копированием) и грузится (LILO (!) пашет как часы, несмотря на отсутствие официальной поддержки динамических дисков) с GPT разделов на обыкновенном (Award) BIOS, что не скажешь за 7 ведро. Разбивка, форматирование, перенос EXT4, установка загрузчика LILO и получение полностью работоспособного Linux заняло 15 минут, с ведром я промучался два дня, и как понял зря. Короткий совет — не теряйте время — сносите и переставляйте ведро сразу — это займет от силы 1 час, но не многие часы утомительной и бесполезной битвы как это, в частности произошло со мной. Бестолковая венда (причем это последняя 64-bit SP1 семерка) до сих пор не умеет грузится с GPT на не EFI BIOS’ах. Сами диски, то она еще с грехом пополам видит — но глюки просто дикие — например разбитый в Linux GPT NTFS раздел она увидела как «шифрованный EFI диск», Linux’овому EXT4 разделу она вообще назначила букву E: и прямо заявила что дескать у нее есть программы, которые этот диск будут использовать (свят-свят-свят !), ну а вход в меню «Форматировать» активен, видимо, по принципу соответствия размера раздела и цвета колец Сатурна … жесть ! И не дай Бог при стандартной процедуре восстановления через оригинальный установочный диск ведро увидит в системе просто стоящий рядом GPT диск — тут же с ходу получите сообщение, что система дескать не поддерживается какой-то там «конфигурацией восстановления» и вообще типа — «чего пристали ?». Хотя восстанавливать я собирался обыкновенный MBR диск, так же установленный в системе. Ясен пень — перенести 7 ведро с одного MBR диска на другой (видать это какая-то спец-шаманская ботва в мире мокрософт) у меня так и не получилось, хотя XP в былые времена переносилось с лету. Были испробованы ряд средств — копирование системы в Linux, перенос с помощью Norton Ghost, перенос диска с помощью Acronis TrueImage и перенос раздела с помощью Acronis Home Director — ошибка всегда одна и таже — не могу дескать найти тут посреди себя свой диск и гайки — грузитесь, мол, с установочного диска и процедура восстановления вас однозначно спасет ! Вестись на этот дешевый рекламный трюк нет смысла — ежику понятно что мир спасет не установочный диск от m$, а красота и массовые расстрелы там же. Все произошло в точности по стандартному сценарию их очередного поделия — хваленая процедура восстановления бойко проделала первую операцию по корректировке размещения раздела в системе — перезагрузились, та же задница. Во второй раз ведро уже более печально просканировало все файлы инсталляции — естественно так и не найдя проблем, после перезагрузки аналогичный результат. И наконец в третий раз оно тупо выдало сообшение о своей полной и окончательной импотенции. Чтобы это бестолковое, уже седьмое как-бы по счету, ведро смогло выполнить свою единственную функцию — пришлось его полностью переставить, так как новый 2GB Radeon HD 6970 и Crysis2 уже давно ждут своего часа …

Linux hardware fingerprint

26 Октябрь, 22:48, by Rus Метки: , ,

Simple Linux fingerprint utility:

[Dao]:rus:~/Projects/elf-protect/si # ./si

——————————- PCI Fingerprint ——————————-

1: 0000:00:00.0, class — 0×060000, vendor — 0×1022, device — 0×9601, sub_vendor — 0×1022, sub_device — 0×9601, revision — 0×00

2: 0000:00:01.0, class — 0×060400, vendor — 0×1022, device — 0×9602, sub_vendor — 0×1022, sub_device — 0×9602, revision — 0×00

3: 0000:00:0a.0, class — 0×060400, vendor — 0×1022, device — 0×9609, sub_vendor — 0×1022, sub_device — 0×9601, revision — 0×00

4: 0000:00:11.0, class — 0×010601, vendor — 0×1002, device — 0×4390, sub_vendor — 0×1002, sub_device — 0×4390, revision — 0×40

5: 0000:00:12.0, class — 0x0c0310, vendor — 0×1002, device — 0×4397, sub_vendor — 0×1002, sub_device — 0×4397, revision — 0×00

6: 0000:00:12.2, class — 0x0c0320, vendor — 0×1002, device — 0×4396, sub_vendor — 0×1002, sub_device — 0×4396, revision — 0×00

7: 0000:00:13.0, class — 0x0c0310, vendor — 0×1002, device — 0×4397, sub_vendor — 0×1002, sub_device — 0×4397, revision — 0×00

8: 0000:00:13.2, class — 0x0c0320, vendor — 0×1002, device — 0×4396, sub_vendor — 0×1002, sub_device — 0×4396, revision — 0×00

9: 0000:00:14.0, class — 0x0c0500, vendor — 0×1002, device — 0×4385, sub_vendor — 0×0000, sub_device — 0×0000, revision — 0×41

10: 0000:00:14.1, class — 0x01018a, vendor — 0×1002, device — 0x439c, sub_vendor — 0×1002, sub_device — 0x439c, revision — 0×40

11: 0000:00:14.2, class — 0×040300, vendor — 0×1002, device — 0×4383, sub_vendor — 0×1043, sub_device — 0×8410, revision — 0×40

12: 0000:00:14.3, class — 0×060100, vendor — 0×1002, device — 0x439d, sub_vendor — 0×1002, sub_device — 0x439d, revision — 0×40

13: 0000:00:14.4, class — 0×060401, vendor — 0×1002, device — 0×4384, sub_vendor — 0×0000, sub_device — 0×0000, revision — 0×40

14: 0000:00:14.5, class — 0x0c0310, vendor — 0×1002, device — 0×4399, sub_vendor — 0×1002, sub_device — 0×4399, revision — 0×00

15: 0000:00:15.0, class — 0×060400, vendor — 0×1002, device — 0x43a0, sub_vendor — 0×1002, sub_device — 0×0000, revision — 0×00

16: 0000:00:16.0, class — 0x0c0310, vendor — 0×1002, device — 0×4397, sub_vendor — 0×1002, sub_device — 0×4397, revision — 0×00

17: 0000:00:16.2, class — 0x0c0320, vendor — 0×1002, device — 0×4396, sub_vendor — 0×1002, sub_device — 0×4396, revision — 0×00

18: 0000:00:18.0, class — 0×060000, vendor — 0×1022, device — 0×1200, sub_vendor — 0×0000, sub_device — 0×0000, revision — 0×00

19: 0000:00:18.1, class — 0×060000, vendor — 0×1022, device — 0×1201, sub_vendor — 0×0000, sub_device — 0×0000, revision — 0×00

20: 0000:00:18.2, class — 0×060000, vendor — 0×1022, device — 0×1202, sub_vendor — 0×0000, sub_device — 0×0000, revision — 0×00

21: 0000:00:18.3, class — 0×060000, vendor — 0×1022, device — 0×1203, sub_vendor — 0×0000, sub_device — 0×0000, revision — 0×00

22: 0000:00:18.4, class — 0×060000, vendor — 0×1022, device — 0×1204, sub_vendor — 0×0000, sub_device — 0×0000, revision — 0×00

23: 0000:01:05.0, class — 0×030000, vendor — 0×1002, device — 0×9714, sub_vendor — 0×1043, sub_device — 0×8454, revision — 0×00

24: 0000:01:05.1, class — 0×040300, vendor — 0×1002, device — 0x970f, sub_vendor — 0×1002, sub_device — 0x970f, revision — 0×00

25: 0000:02:00.0, class — 0×010601, vendor — 0x197b, device — 0×2361, sub_vendor — 0×1043, sub_device — 0x824f, revision — 0×02

26: 0000:02:00.1, class — 0×010185, vendor — 0x197b, device — 0×2361, sub_vendor — 0×1043, sub_device — 0x824f, revision — 0×02

27: 0000:03:05.0, class — 0×078000, vendor — 0×9710, device — 0×9835, sub_vendor — 0×1000, sub_device — 0×0012, revision — 0×01

28: 0000:03:06.0, class — 0×040100, vendor — 0×1102, device — 0×0004, sub_vendor — 0×1102, sub_device — 0×1002, revision — 0×04

29: 0000:03:06.1, class — 0×098000, vendor — 0×1102, device — 0×7003, sub_vendor — 0×1102, sub_device — 0×0060, revision — 0×04

30: 0000:03:06.2, class — 0x0c0010, vendor — 0×1102, device — 0×4001, sub_vendor — 0×1102, sub_device — 0×0010, revision — 0×04

31: 0000:03:07.0, class — 0x0c0010, vendor — 0×1106, device — 0×3044, sub_vendor — 0×1043, sub_device — 0x81fe, revision — 0xc0

32: 0000:04:00.0, class — 0×020000, vendor — 0x10ec, device — 0×8168, sub_vendor — 0×1043, sub_device — 0×8432, revision — 0×06

———————————— Network ————————————

eth0: PCI place [ 0000:04:00.0 ], class — 0×020000, vendor — 0x10ec, device — 0×8168, sub_vendor — 0×1043, sub_device — 0×8432, rev — 0×06, ipv6 addr [ fe80::4a5b:39ff:fe02:3924/64, Scope: Link ], ipv4 addr [ 10.1.0.100 ], MAC XX:XX:XX:XX:XX:XX, NETMASK 255.255.255.0, BROADCAST 10.1.0.255

eth0 csum — \x9a\x96\xdb\x13\x37\x3e\x53\xd1\x32\xe7\x5c\x0f\x7e\x50\x51\x90\xa4\xb1\xe2\xfd\x3f\xbc\x6c\xf4\x71\xce\x91\x8e\x06\x34\xeb\x3e\x8f\x69\xa6\xd0\xf2\xcc\x85\xb2\xa6\x2b\xf4\x5b\x53\x91\xce\x21\x66\x64\x8e\x43\x25\x57\xfc\xb9\x96\x44\x88\x53\x07\x62\x59\x02

————————————- CPU ————————————-

Vendor: AuthenticAMD

CPU Family: 16

Model: 4

Model Name: AMD Phenom(tm) II X2 555 Processor

Stepping: 3

Cache Size: 512 KB

Cpuid Level: 5

Configured: 2

Online: 2

———————————— Memory ————————————

Total Memory: 1807320kB

Total Swap: 6434028kB

————————————- HDD ————————————-

Drive: sda

Removable: 0

Size: 488386584 kB

Vendor: ATA

Model: HDS725050KLA360

Revision: K2AO

Model: HDS725050KLA360

Serial Number: KRVPXXXXXXXXXX

FW revision: K2XXXXX

Drive: sdc

Removable: 0

Size: 976762584 kB

Vendor: ATA

Model: WDCWD1000FYPS-0

Revision: 02.0

Model: WDC WD1000FYPS-01ZKB0

Serial Number: WD-XXXXXXXXXXXX

FW revision: 02.XXXXX

Drive: sdd

Removable: 0

Size: 976762584 kB

Vendor: ATA

Model: WDCWD1000FYPS-0

Revision: 02.0

Model: WDC WD1000FYPS-01ZKB0

Serial Number: WD-XXXXXXXXXXXX

FW revision: 02.XXXXX

Drive: sde

Removable: 0

Size: 488386584 kB

Vendor: ATA

Model: WDCWD5000YS-01M

Revision: 07.0

Model: WDC WD5000YS-01MPB0

Serial Number: WD-XXXXXXXXXXXX

FW revision: 07.XXXXX

Drive: sdb

Removable: 0

Size: 976762584 kB

Vendor: ATA

Model: WDCWD1000FYPS-0

Revision: 02.0

Model: WDC WD1000FYPS-01ZKB0

Serial Number: WD-XXXXXXXXXXXX

FW revision: 02.XXXXX

Drive: sdf

Removable: 1

Size: 28315648 kB

Vendor: Nokia

Model: N900

Revision: 031

———————————- USB Drive ———————————-

Drive: sdf

Removable: 1

Size: 28315648 kB

Vendor: Nokia

Model: N900

Revision: 031

USB Vendor ID: 0421

USB Product ID: 01c7

USB Manufacturer: Nokia

USB product: N900 (Storage Mode)

USB serial: XXXXXXXXXXXX

USB device version: 2.00

———————————- Partitions ———————————-

8 0 488386584 sda

8 1 488384001 sda1

8 32 976762584 sdc

8 33 976760001 sdc1

8 48 976762584 sdd

8 49 976760001 sdd1

8 64 488386584 sde

8 65 240974968 sde1

8 66 240975000 sde2

8 67 6434032 sde3

8 16 976762584 sdb

8 17 976760001 sdb1

9 0 1953519872 md0

8 80 28315648 sdf

———————————— Uname ————————————

System: Linux version 2.6.36 (root@Dao) (gcc version 4.5.1 (GCC) ) #16 SMP PREEMPT Fri Oct 22 09:47:29 EEST 2010

HostName: Dao

DomainName: (none)

UserName1: root, uid — 0, gid — 0

UserName2: root, uid — 0, gid — 0

/ is mounted on /dev/sde1

Time1: [ 1288125265 ] Tue Oct 26 23:34:25 2010

Current Device: /dev/sde1

Current Mount Point: /

Current Working Directory: /root

————————————- DMI ————————————-

EFI not found, trying memory scan

SMBIOS 2.6 present.

BIOS Information

Vendor: American Megatrends Inc.

Version: 1606

Release Date: 08/24/2010

ROM Size: 2048 kB

BIOS Revision: 8.15

System Information

Manufacturer: System manufacturer

Product Name: System Product Name

Version: System Version

Serial Number: System Serial Number

UUID: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX

SKU Number: To Be Filled By O.E.M.

Family: To Be Filled By O.E.M.

Base Board Information

Manufacturer: ASUSTeK Computer INC.

Product Name: M4A89GTD-PRO

Version: Rev 1.xx

Serial Number: XXXXXXXXXXXXXXX

Asset Tag: To Be Filled By O.E.M.

Location In Chassis: To Be Filled By O.E.M.

Chassis Handle: 0×0003

Type: Motherboard

Contained Object Handles: 0

Chassis Information

Manufacturer: Chassis Manufacture

Type: Desktop

Lock: Not Present

Version: Chassis Version

Serial Number: Chassis Serial Number

Asset Tag: Asset-1234567890

Boot-up State: Safe

Power Supply State: Safe

Thermal State: Safe

Security Status: None

OEM Information: 0×00000001

Height: Unspecified

Number Of Power Cords: 1

Contained Elements: 0

Processor Information

Socket Designation: AM3

Type: Central Processor

Family: Phenom II

Manufacturer: AMD

ID: 43 0F XX XX XX XX XX XX

Version: AMD Phenom(tm) II X2 555 Processor

Voltage: 1.5 V

External Clock: 200 MHz

Max Speed: 3200 MHz

Current Speed: 3724 MHz

Status: Populated, Enabled

Serial Number: To Be Filled By O.E.M.

Asset Tag: To Be Filled By O.E.M.

Part Number: To Be Filled By O.E.M.

Core Count: 2

Core Enabled: 2

Characteristics:

64-bit capable

———————— End of System Fingerprint Data ————————

eth0 SI_NET_PCI_ETHERNET_DEVICE csum — \x85\x79\x19\x5f\x37\x0d\x96\xe7\x26\x03\xc6\x61\x50\x18\xf0\x12\x86\xfe\x7e\xa9\xb5\xbe\xf8\x1e\x98\x0e\x84\xa6\x90\xc0\x1b\x52\xb6\xc3\xf2\xf3\xea\x27\xef\xff\x82\xa9\x72\x9b\xd7\x91\xbc\xa4\x8c\x40\x29\x78\xab\x56\x29\xa9\x8d\xa6\x9b\x9a\xc1\x4a\x7c\x64

eth0 SI_NET_IP_DEVICE csum — \x4c\xa5\x25\xb4\x64\x3c\x67\x97\xc6\x4e\x76\x32\x1a\x85\xc0\x11\x58\x41\x79\x71\x25\x5d\xb6\x55\x34\xea\xef\x1a\x08\xd5\x0e\x3e\xc2\x28\x04\x55\x9c\x0a\xf7\x7e\xa0\xd1\xd8\x13\xda\x45\x86\xc1\x63\xb7\x89\xbe\x4a\x29\x44\x60\x72\xc4\xb5\xdc\x97\x68\xd5\xc8

eth0 SI_NET_ALL_DEVICE csum — \x9a\x96\xdb\x13\x37\x3e\x53\xd1\x32\xe7\x5c\x0f\x7e\x50\x51\x90\xa4\xb1\xe2\xfd\x3f\xbc\x6c\xf4\x71\xce\x91\x8e\x06\x34\xeb\x3e\x8f\x69\xa6\xd0\xf2\xcc\x85\xb2\xa6\x2b\xf4\x5b\x53\x91\xce\x21\x66\x64\x8e\x43\x25\x57\xfc\xb9\x96\x44\x88\x53\x07\x62\x59\x02

Если интересует XML вариант, то welcome to http:/sfinxsoft.com/products

P.S. Прикольная бага в glibc-2.12 — любое статическое приложение, использующее getpw* функции с незапущеным ncsd (кто ж его пущает ?!) получит что-то типа  «../sysdeps/unix/sysv/linux/getpagesize.c:32: __getpagesize: Assertion `_rtld_global_ro._dl_pagesize != 0′ failed.»

Подробнее см. http://sourceware.org/bugzilla/show_bug.cgi?id=11929

Все новое — это хорошо забитое на старое

26 Сентябрь, 05:41, by Rus Метки: , , ,

По причине скропостижного ухода старого винта на ноуте, был приобретен новый WD на 750GB (хотел терабайт, но в Одессу его обещали везти не менее недели). WD винты — это середнячки в плане механики/электроники и совершенно глючная и недопетая песня в плане firmware. For example — кэш на запись у них включен всегда (!) и не запоминается его выключение через power off/power on cycle, так как на флаг keep_features_over_reset фирма WD просто забила (проверено через hdparm и их дефективный саппорт). В Linux’е это как-то не страшно, а вот в венде юзверя постоянно теряют файлы при неожиданном пропадании питания. Также у WD уникально (в любимом стиле brain-dead) реализована защита винта паролем — не дай Бог host пошлет link reset — винт опять заблокируется ;) То, что link reset это нормальная операция по ходу работы SATA, в WD видимо не в курсе. В Linux на этапе загрузки достаточно задать ядру что-то типа libata.force=1:nohrst libahci.skip_host_reset=1, в венде, ясен пень, получим синий экран смерти с невнятным толкованием самой сути ошибки. И напоследок довольно грустная история о том, что WD втихаря перешла на 4K сектора, но никому об этом не сказала — винт предательски рапортует что у него они по 512 байт (видать из-за соображений совместимости со старыми BIOS) и соответственно все программы разбиения и создания файловых систем работают с неверным выравниваем.  Цена такой ошибки может приводить  к падению производительности в 5.5 раз (http://thread.gmane.org/gmane.linux.utilities.util-linux-ng/2955) ! В общем Hitachi-IBM наш ответ Чемберлену — может WD и научатся писать firmware со временем, но пусть это будет их время.

Раз пошла такая история с винтами, решил — дай думаю, btrfs потестю — как она там бедная ? А то все ее пилят, дотачивают — мож уже в production пора ? Тупой тест распаковки на закэшированом несжатом tar файле (900M) с исходниками Linux показал, что ext4 справляется с этой незатейливой операцией за 12.5 секунд, а btrfs за 26.5. Хуже всего с удалением всего того, что было распаковано, ext4 — 2.7 секунды, а btrfs — 14.5 секунд. Ядро 2.6.35.5, последние btrfs-tools, железо — старенький Acer Ferrari 1100 (2 AMD ядра 2.3 GHz, SB600 чипсет, 4GB RAM, SATA WD Scorpio 750GB). Вобщем btrfs пока нельзя рассматривать как достойную замену существующим FS, разве что очень нужны snapshot’ы.

Впечатления от N900

13 Август, 17:38, by Rus Метки: , ,

Аппарат стильный, есть небольшие дизайнерские огрехи, но в целом можно ставить зачет. Жаль что идет без чехла, его пришлось заказывать из Гонконга. Первым делом разогнал с 600MHz до 1ГГц (DSP с 430MHz до 500MHz), поставил кучу добрища, разбираюсь с SDK. Интересно было бы запустить на C64 DSP BIOS свою задачу. Из недостатков :

- батарея не в коня, это же надо воткнуть в такой аппарат батарею емкостью меньше чем в N810 (!?), которая как известно держит всего 4 часа. Если не дай Бог чего-то зависнет со 100% CPU (FireFox любит это дело for ex.), то аппарат  полностью сядет менее чем за 1 час. Что прикольно — об этом вы и не узнаете если включена блокировка экрана (!?) — из-за данного бага напоминание о низком заряде батареи звучит только при разблокированном экране ;)

- фронтальная камера — пусть hard разрабам ихняя сине-зеленая морда записанная на это Г приснится ночью, и морды всех юзеров тоже пусть снятся … постоянно. Вот это и будет справедливость.

- каличная подставка — если ткнуть стилусом, то можно преспокойно завалить телефон, про использование в этом режиме клавы речь даже не идет

- хлипкий разьем micro-USB, хотя места вполне хватает под более прочный mini-USB

- пластиковый стилус, они бы еще его из картона сделали. В аппарате стоимостью 500 евро такого быть не должно — учитесь у HandSpring что-ли (Treo 600 for ex.)

- про софт молчу, потому как только мертвый его не пинал, начиная от контактов (отсутствие напрочь групп) , глючного скайпа (невозможность ввести DTMF для хождения по голосовым меню, квакающий/заикающийся g729) и GSM модемом, который никогда (official Nokia WONTFIX bug label) не будет поддерживать CSD соединения (Нокия заявила что этот тип соединений уже не используется (!?) Судя по всему их очередной туповатый менеджер сумел все-таки зайти на википедию и прочитать как же обстоит все-таки дело с CSD звонками в Штатах), т.е. прощай dialup, fax, терминальный доступ и т.д.

Из плюсов :

- разрешение дисплея не в пример подслеповатым андроидам

- возможность ставить несколько OS (NTDroid, Maemo, Meego, Debian и т.д.), причем юзать можно одновременно через multiboot

- открытый SDK

- уверенный 2G/3G/WiFi прием, даже в глухих для других аппаратов зонах

- куча приложений, идей, решений и поддержка всего этого на Linux форумах

Чем-то напоминает Neo FreeRunner от OpenMoko, возможность зайти root’ом на аппарат по ssh, портировапть, собрать и погонять чего-нибудь, наблюдать и участвовать в развитии и т.д. Да вообще — Unix он, ведь, всегда приятен для «поюзать/поисследовать», тем более теперь его экземпляр я теперь всегда ношу с собой ;)

Ставим кросс-компилер для AVR

27 Июль, 21:20, by Rus Метки: , , , ,

Собираем binutils :

./configure —prefix=/usr —enable-libssp —with-pdfdir=/usr/doc/binutils —with-htmldir=/usr/doc/binutils —enable-64-bit-bfd —enable-lto —enable-gold=both —target=avr

make && make install

rus # avr-ld -v
GNU ld (Linux/GNU Binutils) 2.20.51.0.10.20100707

Собираем и ставим gmp/mpfr/cloog/ppl

Для cloog задаем: ./configure —with-ppl —with-bits=gmp —prefix=/usr

Разворачиваем gcc-4.5.0, патчим http://gcc.gnu.org/ml/gcc-patches/2010-04/msg01210/changes.patch, фиксим запятые и добавдяем atmega6490a и atmega6490p

Собираем gcc :

../gcc-4.5.0/configure —target=avr —prefix=/usr —enable-languages=c,c++ —enable-__cxa_atexit —enable-multilib —enable-lto

make && make install

rus # avr-gcc -v

Используются внутренние спецификации.
COLLECT_GCC=avr-gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/avr/4.5.0/lto-wrapper
Целевая архитектура: avr
Параметры конфигурации: ../gcc-4.5.0/configure —target=avr —prefix=/usr —enable-languages=c,c++ —enable-__cxa_atexit —enable-multilib —enable-lto
Модель многопоточности: single
gcc версия 4.5.0 (GCC)

Разворачиваем avr-libc-1.7.0, убираем m3000 (видать просочилось из транка) из makefile, собираем, ставим

./configure —prefix=/usr —build=`./config.guess` —host=avr

Имеем в /usr/bin — все тулзы, в /usr/avr/* — includes и libs