|
BusyBox для чайника |
|
|
|
Nov 12 2008, 10:47
|

Начинающий профессионал
    
Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648

|
Цитата(Огурцов @ Nov 12 2008, 13:18)  Заменил оригинальные файлы на кроссовые - gcc уже работает. Не работает ld:
Интересно, что crti.o вообще нет никакого в cygwin, хотя поставил вроде бы весь. Нашел его в баунти-8.0.4, но он, вероятно, для i386. Нашел crti.S в uClibc, как собриать - не известно, под cygwin (уже?) не собирается. Правильно устанавливать кросс-компилятор, а не менять. Задачу проясните поподробнее. Например, 32-бит ARM9, для которого есть кросс-средства. Если просто под linux что-то писать, то логичнее под ним все и делать. Практически в любом дистрибутиве идут средства разработки для используемой платформы. uClibc это системная библиотека, ориентированная на микроконтроллеры.
--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
|
|
|
|
|
Nov 12 2008, 11:28
|

Йа моск ;)
     
Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610

|
Цитата Нашел crti.S Ооо, да, большая буква S  Когда хелловорлд надоест и задумаете собрать ядро линуха для Вашего таргета под цигвином, будете весьма огорчены - изобретатели тамошнего (линухового) процесса сборки решили, что будет нифигово иметь файлы .S и .s - конечно, для винды (и цигвина) это один и тот же файл, и как следствие - ничего не собирается. Я понасиловал make-файл пару дней на предмет избавления от регистрозависимости да так и бросил. Это так, информация к размышлению...
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Nov 12 2008, 12:32
|
Знающий
   
Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847

|
Цитата(Огурцов @ Nov 12 2008, 12:18)  Заменил оригинальные файлы на кроссовые - gcc уже работает. Не работает ld:
Интересно, что crti.o вообще нет никакого в cygwin, хотя поставил вроде бы весь. Нашел его в баунти-8.0.4, но он, вероятно, для i386. Нашел crti.S в uClibc, как собриать - не известно, под cygwin (уже?) не собирается. Боюсь, Вы вообще не туда копаете. Для компиляции программы gcc нужны ВСЕ ЕГО части + GLIBC для той-же платформы (это как минимум) Под чем компилировать - вопрос отдельный, но не забывайте, что cygwin - это ЭМУЛЯТОР unix environment и он, естественно хуже чем unix. В том числе и Linux. Если хотите программу под Windows/Cygwin - используйте то, что идет в самом Cygwin. Часто в Cygwin идут еще и MinGW. Иногда они конфликтуют. Если хотите программу под, скажем, ARM9 Linux, то Вам НУЖЕН ПОЛНЫЙ кросскомпилятор GCC + GLIBC для ЭТОЙ платформы. Он как правило имеет имя arm-linux-gcc, или arm-unknown-linux-gcc, или arm-uclibc-linux-gcc и тп. Вместо GLIBC можно использовать uClibc или newlib. Файл crt0.o - это часть libc (glibc, uClibc, newlib). libc должна быть скомпилирована ТЕМ ЖЕ компилятором, которым Вы компилируете программу. Так что возмите КРОСС-компилятор для ARM9 ПОЛНОСТЬЮ. Не знаю, есть ли такие под cygwin. crt0.S - исходник на ассемблере требующий препроцессинга. crt0.s - исходник на ассемблере после препроцессинга. Получают его из crt0.S. Примерно так Код gcc -E crt0.S -o crt0.s В cygwin у Вас будут с этим проблемы. Часто неразрешимие. Потому как компилятор по регистру буквы (S или s) решает что с ним делать. На мелких проектах с малым количеством таких файлов можно долго и нудно править Makefile. На большых (с большим количеством таких файлов) - все равно не удастся отследить все проблемы. Раз у Вас есть Linux в VMWare, то рекомендую там все и делать. Разумеется кросскомпиляторов в Ubuntu нет. Только родные. Обычно в Linux компиляторы, и прочие программы нужные программисту не ставятся по умолчанию. Нужно доставить пакеты. Особенно пакеты в имени которых есть -dev. Это Development пакет, то есть содержищий заголовочные файлы, библиотеки с отладочной инфой, файлы crt0.o  и пр. нужное для компиляции.
--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть. © Lewis Carroll. Alice's adventures in wonderland.
|
|
|
|
|
Nov 12 2008, 22:13
|
Гуру
     
Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588

|
Цитата(mdmitry @ Nov 12 2008, 10:47)  Правильно устанавливать кросс-компилятор, а не менять. Задачу проясните поподробнее. Например, 32-бит ARM9, для которого есть кросс-средства. Ну да, согласен. Только это типа "хорошо быть богатым и здоровым". Кросстулзов уже перепробавал. В частности, под Cygwin ставил Macraigor GNU Tools Suite for ARM. Но работает пока лишь так, как я написал выше. Цитата(mdmitry @ Nov 12 2008, 10:47)  Если просто под linux что-то писать, то логичнее под ним все и делать Если бы. Таргет - в сабже. Писать что либо под ним в принципе нельзя. Или в лучшем случае это будет еще один круг в обход непосредственной цели - писать программу. Как вариант "полноценного" линуса - баунти 8.04, под виртуальной машиной. Может, конечно, есть что-то и лучше, но этот первый и единственный, который поставился и работает так, как я от него ожидал. Цитата(Rst7 @ Nov 12 2008, 11:28)  Ооо, да, большая буква S Да, грабельки. Жаль, но cygwin был бы более удобен, т.к. у него файловая система доступна через win, а значит доступны все привычные тулзы. Цитата(amw @ Nov 12 2008, 12:32)  Боюсь, Вы вообще не туда копаете. Ага. Пока я не знаю, куда копать, поэтому копаю во все стороны. Цитата(amw @ Nov 12 2008, 12:32)  Код gcc -E crt0.S -o crt0.s Работает ) Цитата(vshemm @ Nov 12 2008, 14:23)  О, да, наверно весьма полезный линк.
|
|
|
|
|
Nov 13 2008, 20:16
|
Знающий
   
Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847

|
Цитата(Огурцов @ Nov 13 2008, 00:13)  Если бы. Таргет - в сабже. В саббже нет таргета. там только есть слово BusyBox. А это не платформа. Это всего лиш просто программа. Можно его скомпилить для любой (почти) платформы. Цитата(Огурцов @ Nov 13 2008, 09:29)  Правильный компилер - поставился и скомпилил с полпинка, с нескольких пинков связал.  Сейчас вопрос с MIPSом. Если нечто подобно-рабочее для MIPSа ? С Macraigor`ом, как я понял, не все в порядке - вероятно, нужно его настраивать неподеццки. Если у Вас таки MIPS платформа (и как я понимаю это MIPS Linux) то Вам может стоит посмотреть тут? MIPS SDE Lite. http://www.mips.com/products/software-tools/ Пользуюсь немного. Это mips-elf таргет - для "софта без ОС". И тут само собой. http://www.linux-mips.org/wiki/Main_PageДля mips-linux мы используем собранный производителем процессора компилятор (текущий gcc-4.2) под Linux host. Cygwin не пользуем. Цитата У меня есть какой-то кросстулз, но там все файлы типа elf (внутри файла). Реально ли их запустить под тем же cygwin ? Нет. Cygwin эмулирует ТОЛЬКО окружение. Бинарная платформа PE (exe файлы, внутри MZ  ) Это скорее всего под Линукс host.
--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть. © Lewis Carroll. Alice's adventures in wonderland.
|
|
|
|
|
Nov 13 2008, 20:54
|
Гуру
     
Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588

|
Цитата(amw @ Nov 13 2008, 20:16)  В саббже нет таргета. там только есть слово BusyBox. Это (не?)переводимая игра слов. В общем, BusyBox - ключевое слово, а платформы - пока нет. Или так: а платформы пока нет. Ищу, в общем. Цитата(amw @ Nov 13 2008, 20:16)  Если у Вас таки MIPS платформа (и как я понимаю это MIPS Linux) то Вам может стоит посмотреть тут? Да, и я что-то даже качал. Но спасибо, что напомнили, в ворохе ссылок - попробую по второму кругу.
|
|
|
|
|
Nov 17 2009, 18:14
|
Частый гость
 
Группа: Участник
Сообщений: 152
Регистрация: 18-03-06
Пользователь №: 15 366

|
кто-нибудь пробовал отправить сообщение через sendmail в busybox-е? пишу строку (отправить с одного ящика на mail.ru на другой там же) cat email.txt | sendmail -w 20 -S smtp.mail.ru -f from@mail.ru -aulogin -appass to@mail.ru или <email.txt sendmail -w 20 -S smtp.mail.ru -f from@mail.ru -aulogin -appass to@mail.ru в файле email.txt написано test email ни в какую не хочет слать. сниффером вижу, коннект есть, логин проходит, а дальше не шлются данные. залез в исходник посмотреть, все равно не понимаю, чего ему не хватает.... версия: busybox 14.3 судя по коду должен передать поля To, затем послать DATA, затем поток stdin, пока не кончится Цитата > 2009/11/17 11:12:54.714149 length=6 from=0 to=5 NOOP\r < 2009/11/17 11:12:54.733175 length=51 from=0 to=50 220 mail.ru ESMTP Tue, 17 Nov 2009 21:12:54 +0300\r < 2009/11/17 11:12:54.737410 length=8 from=51 to=58 250 OK\r > 2009/11/17 11:12:54.741252 length=11 from=6 to=16 EHLO none\r < 2009/11/17 11:12:54.765051 length=118 from=59 to=176 250-mx75.mail.ru Hello none [195.131.192.186]\r 250-SIZE 31457280\r 250-8BITMIME\r 250-AUTH PLAIN LOGIN\r 250 PIPELINING\r > 2009/11/17 11:12:54.773122 length=12 from=17 to=28 AUTH LOGIN\r < 2009/11/17 11:12:54.796860 length=18 from=177 to=194 334 ...\r > 2009/11/17 11:12:54.800690 length=10 from=29 to=38 ....\r < 2009/11/17 11:12:54.824892 length=18 from=195 to=212 334 ....\r > 2009/11/17 11:12:54.828494 length=14 from=39 to=52 ....\r < 2009/11/17 11:12:54.861185 length=30 from=213 to=242 235 Authentication succeeded\r > 2009/11/17 11:12:54.865406 length=26 from=53 to=78 MAIL FROM:<from@mail.ru>\r < 2009/11/17 11:12:54.888926 length=8 from=243 to=250 250 OK\r > 2009/11/17 11:12:54.900589 length=3 from=79 to=81 .\r < 2009/11/17 11:12:54.924854 length=26 from=251 to=276 500 unrecognized command\r sendmail: . failed alpha:/ # < 2009/11/17 11:12:54.953403 length=40 from=277 to=316 421 mx75.mail.ru lost input connection\r
Сообщение отредактировал VDV - Nov 17 2009, 18:15
|
|
|
|
|
Dec 31 2009, 11:53
|

Частый гость
 
Группа: Свой
Сообщений: 97
Регистрация: 19-11-05
Из: dront78@jabber.snc.ru
Пользователь №: 11 092

|
Попробуйте Tiny Core Linux под x86 с блекджеком и шлюхами BusyBox и "менеджером пакетов". Полученный опыт должен портироваться под любую архитектуру.
--------------------
Сколько волка не корми - слон все равно больше.
|
|
|
|
|
Jan 2 2010, 05:57
|

山伏
    
Группа: Свой
Сообщений: 1 827
Регистрация: 3-08-06
Из: Kyyiv
Пользователь №: 19 294

|
Цитата(dronT78 @ Dec 31 2009, 13:53)  Попробуйте Tiny Core Linux под x86 с Блин... как-то раньше мимо него проходил. Дистрибутив - супер! Ничего лишнего, как говорится... Вот только ядро они не правильное выбрали... Хотя сколько там его пересобирать... За напоминание о том что есть такой дистр - спасибо!!! Цитата(dronT78 @ Dec 31 2009, 13:53)  блекджеком и шлюхами
Бендер? (не Остап)
--------------------
Нас помнят пока мы мешаем другим... //-------------------------------------------------------- Хороший блатной - мертвый... //-------------------------------------------------------- Нет старик, это те дроиды которых я ищу...
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|