Arm none linux gnueabi i686 pc linux gnu

Arm none linux gnueabi i686 pc linux gnu

(It is recommended that all commands be done under root)
First enter su to get root privileges (if you are prompted for a password error, Baidu will change the password)
execute the following command again
1. Download, thanks to the universal wget

2 After downloading, copy the file to the /usr/local folder with the following command, extract it.

(If prompted and error is executed as su as root) then execute the following command

3Configure environment variables to make them effective

First, move the cursor to the end of the file (using the up, down, left, and right keys of the keyboard)

Second, press the o key on the keyboard to add a new line under the cursor line to start inserting;

Then, insert the following statement; (copy and paste it up)

Finally, save and exit.
The exit method is: first press the ESC key to return to the command mode; then enter the colon: to enter the last line mode.
Enter wq and press Enter. This will save the /etc/bash.bashrc script and exit vi.

Finally executed: source /etc/bash.bashrc
Close the current terminal and reopen the terminal for testing.
4. Test, enter

If it appears: No such file or directory
This is because 64-bit Ubuntu is not compatible with 32-bit software. Enter the following command

Su Note: still get root privileges If you are already root, please ignore

arm-none-linux-gnueabi-gcc -v
If you can output a long list of messy things and then finally gcc version 4.3.3 (Sourcery G++ Lite 2009q1-203), then the installation merits are complete, you can compile happy The young people.

Источник

Как собрать ядро linux под arm

Операционная система linux часто используется для встраиваемых (они же embedded) устройств, которые в свою очередь часто построены на основе контроллеров с архитектурой ARM.

Исходный код

Скачать исходный код ядра linux можно с http://git.kernel.org

Например, если использовать код из проекта project:

После того как исходники будут скачаны, заходим в директорию с исходным кодом ядра linux.

Для того что бы отделить результат компиляции от исходного кода, создаем директорию build

Компилятор

Распаковываем ( например в /home/user ):

И устанавливаем переменную PATH:

Задаем переменные окружения для компиляции:

Конфигурирование ядра linux

Если нужная конфигурация уже существует ( например arch/arm/configs/colibri_pxa320_defconfig ), то выполняем:

Если необходимо создать свою конфигурацию ядра linux, или изменить существующую то запускаем:

и выбираем необходимые опции. Опции могут быть вкомпилированны в ядро или подгружаться как модули. В первом случае перед соответствующим пунктом меню отображается [*] , во втором [M].

Компиляция ядра linux

Что бы скомпилировать ядро надо выполнить команду:

Когда сборка ядра linux будет закончена, оно будет лежать в ../build/arch/arm/boot/uImage

Сброка модулей ядра linux

Если какие-то опции ядра были включены как модули, то их тоже надо скомпилировать

Что бы изменить директорию (папку) в которую modules_install установит модули, указываем путь, используя переменную INSTALL_MOD_PATH.

В дальнейшем, что бы положить модули ядра на устройство, надо просто скопировать, все что лежит в директории /home/user/tmp/modules в корень файловой системы устройства. При этом важно сохранить структуру каталогов, самый просто способ — упаковать папку, а затем разархивировать ее на приборе.

Очистка проекта

Что бы удалить все файлы, созданные при компиляции:

Если же необходимо удалить файлы, полученные при конфигурации ядра linux, нам поможет Мистер Пропер 🙂

Источник

Установка и сборка образа Angstrom Linux для платы TechNexion Thunder

Набор разработчика от TechNexion Thunderpack

Установка Linux 2.6.37

После беглого прочтения документации, сборки и включения Thunder я приступил к установке Linux. Скажу сразу, что через предлагаемый по умолчанию способ установки у меня установить не получилось. Происходил постоянный перезапуск процедуры установки. Поэтому я зашел на сайт TechNexion и скачал, любезно подготовленный и выложенный ими, образ содержащий Linux 2.6.37.
По инструкции указанной в документации (раздел 9.4.1 Create the SD-card with the rescue image in a Windows environment) я подготовил SD-карту для установки Linux 2.6.37 и выполнил установку.
После установки система благополучно загрузилась, но меня ожидало разочарование т.к. сеть не заработала. Начал искать информацию по сетевой карте.
В конце документации на плату приведены схемы на Thunder (раздел 16.2 Thunder baseboard schematics) на схеме видно, что сетевой картой является конвертор USB-Ethernet собранный на контроллере SMSC LAN9500-ABZJ фирмы Microchip. Поискав драйвер, в только что установленной системе, я его не обнаружил. Возможно, при сборке его забыли включить.

Читайте также:  Adding user in linux with password

На сайте TechNexion, помимо готовых образов, выложены исходные коды для сборки образа вручную. Скачав «TAO-3530 Linux 2.6.37 / TI PSP 04.02.00.07 XUKR Source code» оказалось, что драйвер для нужной мне сетевой карты присутствует и включен для сборки. Осталось только пересобрать образ.

Сборка образа Angstrom Linux 2.6.37

Сборку образа я выполнял на Ubuntu 12.04, предварительно установив её на VirtualBox. В документации на Thunder разработчики советуют выполнять сборку, используя Toolchain Code Sourcery G++ 2010.09-50 (gcc 4.5.1). Хочу обратить ВНИМАНИЕ, что для сборки образа Angstrom Linux 2.6.37, предоставляемого разработчиками TechNexion, следует разворачивать именно Code Sourcery G++ 2010.09-50.
Первым делом скачиваем arm-2010.09-50-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 или с сайта Mentor Graphics и распаковываем в папку /opt/codesourcery.

Определяем переменные окружения. Для этого в файл /etc/environment дописываем:

Создаем папку files в корневом каталоге, и копируем в неё исходные коды для создания образа Angstrom Linux 2.6.37.

Теперь необходимо перезагрузить систему для того, чтобы работали, нами установленные, переменные окружения.

Осталось подправить конфигурацию ядра для включения необходимых драйверов. Так как я буду собирать образ для платы Thunder, то путь до нужного мне файла конфигурации следующий:

Файл конфигурации нужно открыть в любом удобном редакторе и включить интересующие опции. Я редактировал стандартным редактором файлового менеджера Midnight Commander.
Первое, что я посмотрел в файле конфигурации – это наличие включенного драйвера сетевой карты SMSC95xx.

Затем я включил компиляцию usb-serial драйверов.

И включил поддержку самых распространенных чипов usb-serial PL2303 и CP210x.

Закрываем редактор, предварительно сохранив изменения в файле. Теперь всё готово для сборки ядра.
Переходим в каталог xukr-20131014-omap3

И запускаем скрипт сборки с указанием названия платформы.

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

Затем очистки исходных кодов от созданных объектных файлов.

И скрипт построения образа с указанием названия платформы.

После успешного завершения можете себя поздравить с созданием образа Angstrom Linux 2.6.37. Сам образ будет находиться в папке
/opt/files/xukr-20131014-omap3/build/thunder.
Осталось подготовить установочный SD-диск и установить. Данные действия описаны выше (см. Установка Linux 2.6.37).
После установки собранной системы у меня появилась сеть и поддержка usb-serial устройств.

Заключение

Разработчики TechNexion сделали очень удобный процесс сборки и создания образа загрузочного SD-диска не требующий глубоких познаний и опыта по сборке ядра Linux. Подготовленные ими скрипты делают всё в автоматическом режиме.
Единственно, как обычно, документация не успевает за разработчиками. Последний, на момент написания статьи, вариант документации (tao-3530-userguide-097.pdf) содержал описание сборки под старые исходники, который немного отличается.

Спасибо за внимание. В следующей статье я напишу про настройку Eclipse CDT для компиляции программ под arm, запуск приложения на Thunder и отладку программы в Eclipse.

Источник

Устанавливаем пакет инструментов GNU ARM под Linux

Существует множество средств разработки для различных версий процессоров ARM, но пакет инструментов GNU ARM является, пожалуй, одним из самых популярных. Узнайте подробнее, как разрабатывать встроенное ПО для ядра ARM, а также о том, как установить и использовать для этой цели пакет инструментов GNU.

статья о sudo aptitude install binutils-arm-linux-gnu* gcc-X.Y-arm-linux-gnu* .

> статья о sudo aptitude install

arm-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
.tar.bz2
.tar.bz2
.tar.bz2

я ожидал большего

Что-то как-то ниочем. Меня и мой собственнособранный велик (arm cross-toolchain) совершенно устраивает.

Читайте также:  Mac osx или linux

это ж ibm developer labs. чего от него ожидать.

Чем оно лучше buildroot?

хочу aptitude install gcc-arm-cortexm3-none

Чем это лучше clfs, который и не только для arm?

Я как-то для шиваплага обошелся ‘crossdev -t armv5tel-softfloat-linux-gnueabi’. и тулчейн готов.

это не ужас. Это труЪ ынтерпрайз.

# cd /usr/local/bin # ln -s /home/bzimmerly/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-as as

А «дядя» уверен, что слака по такого будет нормально работать, если gcc до этого установлен в /usr/local/bin? 🙂

>В набор бинарных утилит этого пакета (binutils) входит набор компиляторов GNU (GCC)

Коряво переведено, binutils отдельно GCC отдельно. binutils — это ассемблер, компоновщик(linker) и т.д.

А зачем на ассемблере? oO

Просто интересно, кто-нибудь юзает девайс на ARM как настольную систему?

что-то странное. ну ладно, это бот же запостил

>www.emdebian.org — там всё.
У них тулчейны собраны для кодогенерации под armv4t, что для современных процов слабовато. Плюс почему-то нет gcc > 4.3

ЯЗАБАН. Это же кошмар

>Чем это лучше clfs, который и не только для arm?

Тем что тулчейн от Codesourcery(который кстати тоже не только под arm) хорошенько пропатчен и работает, в отличии от.

А я ожидал openocd и jtag.

Кроскомпилляторы имеют префикс в названии файлов.
И слака после такого работает, проверено:)

Тру энтерпрайз — это Keil и его тулзы, тогда уж.

Вообще если они так хотели версию от CodeSourcery — там же можно скачать обычный инсталлер на жабе, без всяких архивов. И PATH он сам будет подправлять

>Тру энтерпрайз — это Keil и его тулзы, тогда уж.
А он разве умеет генерировать код для arm-linux? То-то же.

Ты не поверишь, я его на посмотреть качал дня 2 назад. У них codesourcery внутрях.

>Просто интересно, кто-нибудь юзает девайс на ARM как настольную систему?

Раз лежит на столе значит настольная 🙂

Положу в карман будет карманная 🙂

Такие не в счет.

> # cd /usr/local/bin
> .
> # ln -s /home/bzimmerly/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-as as

в /usr/local/bin, без префикса архитектуры. автора уволить, статью удалить, бота забанить.

>Плюс почему-то нет gcc > 4.3

p gcc-4.4-arm-linux-gnueabi 4.4.5-10
p gcc-4.4-arm-linux-gnueabi-base 4.4.5-10

>>Тру энтерпрайз — это Keil и его тулзы, тогда уж.

нельзя о таком вспоминать на ночь глядя! >_ ★★★★★ ( 03.02.11 00:42:54 )

>Билл Циммерли, специалист в области инженерии знаний, Рязанский государственный радиотехнический университет

Живет он в деревушке Хиллсборо, Миссури, где может наслаждаться чистым воздухом и прекрасной природой.

Хотя следующее предложение многое объясняет

Кроме того, неподалеку находятся несколько винных заводов.

Мнда. А какой-т ГСМ в российском IBM поимел за это бабла. (Я не против бабла, я против того, чтобы оно платилось за высеры ГСМ.)

Чем оно лучше OpenEmbedded? Которое к слову проще этого и buildroot-а в 10 раз.

Ну конечно же, Makefile-ы это же так сложно. Лучше придумать свой формат с блэкджеком и т.д. И от 30 гигов при сборке никто совсем не сжирает.

>Чем оно лучше OpenEmbedded? Которое к слову проще этого и buildroot-а в 10 раз.

Тут речь о компиляторах, а не о приблудах для сборки системы. Так что сравнение не совсем корректное. Мне, например, для постороения системы нужно не так уж много и всё это я в состоянии собрать сам, был бы нормальный компилятор.

GNU компилятор и все приблуды собираются из нативных сырцов одним скриптом за 20 минут, нафига велосипеды плодить.

>GNU компилятор и все приблуды собираются из нативных сырцов одним скриптом за 20 минут, нафига велосипеды плодить.

Ну не у всех этот скрипт есть, а собрать вручную не так просто. Плюс GNU кросс-компилятор и приблуды под arm требуют обильного патчения. Для каждой версии gcc/binutils/libc эти патчи свои, их нужно знать где брать и т.д. И даже после этого, качество компилятора много хуже чем для x86. А ребята из codesourcery сами учавствуют в разработке arm linux abi, отправляют много патчей в ванильный gcc, так что им можно доверять. Но себе я собираю сам.

Наконец-то хоть что-то полезное от этого бота.

exception13> статья о sudo aptitude install binutils-arm-linux-gnu* gcc-X.Y-arm-linux-gnu* .

Читайте также:  Регулирование оборотов вентилятора линукс

Там для слаки руководство.

Про патчи пруф можно? Почему у меня нативные сырцы собрались без бубнов и патчей и генерируют 100% работособный код без всяких багов, ЧЯДНТ?

Чтобы найти скрипт нужно пользоваться поиском, на ЛОРе этот скриптик был.

Да, пытаюсь. Буду очень признателен, если кто-нибудь поможет достать PandaBoard

С платформой повезло или копаешь не так глубоко. Armv7, например, мне кажется сейчас всяко лучше поддерживаются, чем мои xscale’ы.

Ну посмотри здесь чтоли: binutils-2.20.1 gcc-4.4.5 glibc-2.9 glibc-ports-2.9 Не всё там к армам относится, но всё таки порядочно.

Платформа AT91 все работает из коробки, хотя как автор сборки могу сказать что от arm к arm там мало что зависит (ну если только разрядность да порядок байт). Основные различия на уровне переферии вокруг армового ядра, но это камень уже в сторону ядра системы которую хотите запустить а не компилятора, последнему фиолетово под какой арм плодить код в пределах архитектуры (с точки зрения компилера архитектура это arm5tej или arm6 или что тае еще есть, armv7 это обвязка, Вы путаете божий дар с яичницей).

ЗЫ: засуньте этот crosstool-ng куда подальше и никому не показывайте (Мой опыт показывает что сие «шэдевр» нужно выкинуть), с этими патчами gcc версии больше чем 4.3 так и смог плодить работоспособный код (все плюсовое что им собиралось, особенно Qt рассыпалось по сегфолту в glibc), потому я кстати и написал скрипт который собирает все из ванильных сырцов, и все как не странно работает. А для блэкфина crosstool-ng даже компилятор собрать со своими патчами не смог, когда без них все собирается из ванилина и как не странно опять работает как часы. Так ЧЯДНТ?

>Платформа AT91
Понятно. Ты пишешь под bare metal? У меня проц помощнее и платформа и компилятор у меня для linux. А это всё очевидно сложнее устроено.

(с точки зрения компилера архитектура это arm5tej или arm6 или что тае еще есть, armv7 это обвязка, Вы путаете божий дар с яичницей).

Сходи уже хоть на википедию просвятись чтоли, сам всё напутал. ARMv7 — это версия набора инструкций, а например ARM9 — это семейство ядер, которые могут иметь архитектуру armv4 или armv5. Кстати arm5tej -такой архитектуры нету, есть armv5tej. Мой pxa270 почти такой, только без буковки j. Уж это-то я знаю 🙂

ЗЫ: засуньте этот crosstool-ng куда подальше и никому не показывайте (Мой опыт показывает что сие «шэдевр» нужно выкинуть), с этими патчами gcc версии больше чем 4.3 так и смог плодить работоспособный код (все плюсовое что им собиралось, особенно Qt рассыпалось по сегфолту в glibc),

Да я разные пробую периодически. Был и oselas и buildroot. На самом деле разницы особой нету какая система сборки, главное чтобы патчи нужные были. gcc 4.4.5 у меня работает нормально. По поводу сегфолтов — если ты про эту тему http://www.linux.org.ru/forum/development/5512123, то попробуй в конфиге ct-ng указать «CT_LIBC_GLIBC_EXTRA_CFLAGS=»-U_FORTIFY_SOURCE» и всё у тебя заработает.

и как не странно опять работает как часы. Так ЧЯДНТ?

У меня конкретно претензии к ванильному gcc: [ARM]iwmmx на gcc вообще был когда-нибудь юзабельным?. Но это касается только моего процессора. Патча никто похоже нормального не сделал. Я набросал один workaround, теперь более-менее нормально работает gcc 4.2.x, а всё что выше — дико вылетает. Прмчём даже уже другие ошибки идут, о которых багзилла тоже знает.

> GNU компилятор и все приблуды собираются из нативных сырцов одним скриптом за 20 минут, нафига велосипеды плодить.

а только до этого надо задать кучу вопросов людям о том, как это делать, вот твой http://www.linux.org.ru/forum/development/5528260

>ЗЫ: засуньте этот crosstool-ng куда подальше и никому не показывайте (Мой опыт показывает что сие «шэдевр» нужно выкинуть)

Видел я твои ламерские вопросы тут на форуме — постеснялся бы школота позориться с выводами, ты вообще какой-то придурочный похоже, неужели в дурдоме интернет появился ?

Ну это скорее ответ а не вопрос, к тому моменту я уже допер как это делается. Не боги же горшки обжигали.

Источник

Оцените статью