ЗАО «ЗЭО»

Пожалуйста, войдите или зарегистрируйтесь.

Расширенный поиск  

Новости:

Автор Тема: Buildroot 2010.05  (Прочитано 9123 раз)

0 Пользователей и 1 Гость просматривают эту тему.

yh

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 5
Buildroot 2010.05
« : 07 Сентября, 2010, 14:12:55 »

Собрал Buildroot 2010.05. Тулчейн используется внутренний, gcc4.2.4 с патчами отсюда http://www.zao-zeo.ru/forum/index.php?topic=138.0, uCLibc 0.9.31, ядро 2.6.35.4, u-boot 1.3.3, qt-4.7.0-beta2. Тулчейн можно использовать для сборки программ отдельно от buildroot.

    Как использовать:
1. Установить glibc-static-devel, tftp-server
2. Настроить пути в start.sh
3. Настроить в buldroot куда скачивать исходники программ
4. Выбрать нужные пакеты в buildroot
5. start.sh

    Примечания:
1. UBoot и Linux заточены только под два монитора mtf-tw70sp941-av и mtf-t070acslp-lb, необходимо
   добавлять видеорежимы для ваших мониторов.
2. Qt не собирается с поддержкой freetype, поэтому нельзя использовать ttf шрифты.
   QTBUG-7904: http://bugreports.qt.nokia.com/browse/QTBUG-7904
      uClibc not support fcvt(), ecvt() - see SuSv3 Legacy
3. Видеодрайвер: imageblit аппаратно ускоряет только шрифты (image->depth == 1bpp), проблемы с ioctl.

Рабочий конфиг и более подробная информация есть в архиве.

Взять можно здесь ftp://ftp.ntcsm.ru/pub/tion9315/buildroot/buildroot-2010.05-rev37.tar.bz2

Записан

vitvrn

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 34
Re: Buildroot 2010.05
« Ответ #1 : 17 Сентября, 2010, 15:55:05 »

 1. Насколько я понял, glibc-static-devel для Ubuntu будет называться libc6-dev - установлено. Грузить Тион задумано с другой машины, поэтому tftp сервер не устанавливал туда, где собираю buildroot

2. Изменил start.sh:
#!/bin/sh
cd /home/geo/zaozeo/buildroot-2010.05-rev37

#OUTDIR='../../../nfsroot/buildroot-free-0.1'
OUTDIR='_outdir'
KERNELNAME='uImage-free-2.6.35.4'
#TFTPDIR='/var/lib/tftpboot'

make O=$OUTDIR V=99 $1
ln -sf buildroot-free-0.1/target $OUTDIR/../rootfs

$OUTDIR/host/usr/bin/mkimage -A arm -O linux -T kernel -C none -a 0x80000 -e 0x80000 -d $OUTDIR/images/zImage
#cp -f $OUTDIR/images/$KERNELNAME $TFTPDIR
#ln -f $TFTPDIR/$KERNELNAME $TFTPDIR/uImage

3. Настроил в buildroot папку для исходников программ (каталоги _outdir и _dl создал в корне buildroot).

4. Выбрал пакеты (конфиг прилагаю)

5. Запустил start.sh

В итоге после нескольких часов сборки в процессах висит
geo@thtelecom:~/zaozeo/buildroot-2010.05-rev37/_outdir/build/ncurses-5.7$ ps ax | grep tic
 6873 ?        S      0:00 /bin/sh -c DESTDIR=/home/geo/zaozeo/buildroot-2010.05-rev37/_outdir/staging-4.2.4 \?prefix=/usr \?exec_prefix=/usr \?bindir=/usr/bin \?top_srcdir=.. \?srcdir=. \?datadir=/usr/share \?ticdir=/usr/share/terminfo \?source=terminfo.tmp \?cross_compiling=yes \?/bin/sh ./run_tic.sh
 6874 ?        S      0:00 /bin/sh ./run_tic.sh
 6880 ?        R    1362:45 tic -x -s -o /home/geo/zaozeo/buildroot-2010.05-rev37/_outdir/staging-4.2.4/usr/share/terminfo terminfo.tmp

Лог заканчивается строками (полный лог прилагаю):
** Building terminfo database, please wait...
Running tic to install /home/geo/zaozeo/buildroot-2010.05-rev37/_outdir/staging-4.2.4/usr/share/terminfo ...

You may see messages regarding extended capabilities, e.g., AX.
These are extended terminal capabilities which are compiled
using
tic -x
If you have ncurses 4.2 applications, you should read the INSTALL
document, and install the terminfo without the -x option.

Сервер удалённый, связь с ним может оборваться, поэтому запускал start.sh cron'ом. Для того, чтобы завершить его ничего лучше не придумал, чем killall start.sh (потом killall tic и killall make)
Попробовал убрать в файле /_outdir/build/ncurses-5.7/misc/run_tic.sh:
#if ( $SHLIB tic$suffix -x -s -o $TERMINFO $source )
if ( $SHLIB tic$suffix -s -o $TERMINFO $source )
Затем запустил start.sh снова, но он почти сразу вылетел:
rm -rf /home/geo/zaozeo/buildroot-2010.05-rev37/_outdir/build/buildroot-config
mkdir -p /home/geo/zaozeo/buildroot-2010.05-rev37/_outdir/build
cp -dpRf package/config/buildroot-config /home/geo/zaozeo/buildroot-2010.05-rev37/_outdir/build/buildroot-config
toolchain/patch-kernel.sh /home/geo/zaozeo/buildroot-2010.05-rev37/_outdir/toolchain-4.2.4/linux-2.6.35.4 toolchain/kernel-headers \
linux-2.6.35.4-\*.patch{,.gz,.bz2}
ls: cannot access linux-2.6.35.4-*.patch: No such file or directory
ls: cannot access linux-2.6.35.4-*.patch.gz: No such file or directory
ls: cannot access linux-2.6.35.4-*.patch.bz2: No such file or directory
Aborting.  Reject files found.
make: *** [/home/geo/zaozeo/buildroot-2010.05-rev37/_outdir/toolchain-4.2.4/linux-2.6.35.4/.patched] Error 1
/home/geo/zaozeo/buildroot-2010.05-rev37/start.sh: 12: _outdir/host/usr/bin/mkimage: not found

Что нужно сделать, чтобы дособрать ядро и кфс? Ведь если сделать clean, то tic будет вызываться с -x, а это опять вызовет ошибку.
Кстати, собирал на x86 сервере, поэтому чтобы запустить menuconfig, распаковал немодифицированный buildroot-2010.05, сделал make menuconfig и скопировал оттуда packages/config/mconf (просто удаление mconf вело к ошибкам:
geo@thtelecom:~/zaozeo/buildroot-2010.05-rev37-1$ make menuconfig
make CC="/usr/lib/ccache/gcc" -C package/config mconf
make[1]: Entering directory `/home/geo/zaozeo/buildroot-2010.05-rev37-1/package/config'
/usr/lib/ccache/gcc -DCURSES_LOC="<ncurses.h>" -DLOCALE  -g -O2  -c lxdialog/checklist.c -o lxdialog/checklist.o
/usr/lib/ccache/gcc -DCURSES_LOC="<ncurses.h>" -DLOCALE  -g -O2  -c lxdialog/inputbox.c -o lxdialog/inputbox.o
/usr/lib/ccache/gcc -DCURSES_LOC="<ncurses.h>" -DLOCALE  -g -O2  -c lxdialog/menubox.c -o lxdialog/menubox.o
/usr/lib/ccache/gcc -DCURSES_LOC="<ncurses.h>" -DLOCALE  -g -O2  -c lxdialog/textbox.c -o lxdialog/textbox.o
/usr/lib/ccache/gcc -DCURSES_LOC="<ncurses.h>" -DLOCALE  -g -O2  -c lxdialog/util.c -o lxdialog/util.o
/usr/lib/ccache/gcc -DCURSES_LOC="<ncurses.h>" -DLOCALE  -g -O2  -c lxdialog/yesno.c -o lxdialog/yesno.o
make[1]: *** No rule to make target `/usr/include/ncurses/ncurses.h', needed by `mconf.o'.  Stop.
make[1]: Leaving directory `/home/geo/zaozeo/buildroot-2010.05-rev37-1/package/config'
make: *** [package/config/mconf] Error 2
)
Записан

zverro

  • Jr. Member
  • **
  • Оффлайн Оффлайн
  • Сообщений: 59
Re: Buildroot 2010.05
« Ответ #2 : 25 Декабря, 2010, 13:21:02 »

Я столкнулся с тем же когда собирал buildroot-2009.08

Проблема началась после того как я снес свой ALTLinux 4.1  и поставил ALTLinux 5.0

В новом линуксе, как оказалось кое-где вместо жестких ссылок стоят мягкие ссылки. Makefile в  buildroot этого не учитывает.
У одного моего друга удалось сделать сборку.  После сообщения об TIC , этот парень скопировал целиком директорию
./usr/share/terminfo (на своей машине!) в директорию buildroot/build_arm/stagging_dir/usr/share/

и затем сказал make BOARD=tion    ...

  Я один раз попробовал также, но у меня это не сработало, наверное надо было в начале сделать distclean, а то я, было, в предыдущих попытках,
 после этой ошибки снова запускал сборку, и там что-то подпортилось.
Сейчас я, чтоб не тратить время на эксперименты,  делаю маленько по другому. Еще ранее, как только перестало собираться, я решил проверить на другом компьютере где стоит Линукс   openSUSE. Там всё благополучно (с одной лишь правкой исходника, там имя функции getline конфликтовало), и я скопировал и сохранил
 от туда buildroot/build_arm/stagging_dir/usr/share/terminfo, и вставляю его когда требуется. 
Записан

vitvrn

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 34
Re: Buildroot 2010.05
« Ответ #3 : 28 Декабря, 2010, 13:00:41 »

Спасибо. Надо, видимо, попробовать на другой системе - копирование каталога terminfo из buildroot-2009.08 и из /usr/share системы у меня тоже ничего не дало.
Записан

faa

  • Jr. Member
  • **
  • Оффлайн Оффлайн
  • Сообщений: 72
Re: Buildroot 2010.05
« Ответ #4 : 28 Декабря, 2010, 13:29:54 »

buildroot из топика собирался и собирается на Mandriva 2010.х
Специфических вещей от этого дистра старались не использовать.
В настоящее время yh в отпуске, вернется 12.01.2011.
Тогда и сможет ответить на содержательные вопросы.
Записан

vitvrn

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 34
Re: Buildroot 2010.05
« Ответ #5 : 19 Января, 2011, 17:09:04 »

Похоже, зависание происходит на хостах с установленной более ранней версией ncurses, чем та, которая собирается.
После аварийного завершения процесса сборки я убрал опцию "-x" при вызове tic в файле _outdir/build/ncurses-5.7/misc/run_tic - процесс пошёл дальше (при этом в terminfo были отключены какие-то расширенные возможности терминалов, за которые отвечала эта опция), но остановился на каком-то из этапов сборки mc. Когда я исключил mc из собираемых пакетов (он был включен по-умолчанию в buildroot-2010.05-rev37), сборка завершилась успешно.

Вопрос такой: что нужно переконфигурировать и пересобирать, чтобы система заработала?
Потому что собранный u-boot после загрузки в Тион(-Про2-рев.3) выдаёт сообщение
Цитировать
*** Warning - Bad CRC, using default environment
, а собранное ядро (видимо, с конфигурацией по-умолчанию?) при загрузке с КФС на USB-флешке останавливается на
Цитировать
Starting kernel ...
Записан

asv

  • Hero Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 1405
Re: Buildroot 2010.05
« Ответ #6 : 19 Января, 2011, 17:34:50 »

> Потому что собранный u-boot после загрузки в Тион(-Про2-рев.3) выдаёт сообщение
Цитировать
*** Warning - Bad CRC, using default
environment

saveenv

> а собранное ядро (видимо, с конфигурацией по-умолчанию?) при загрузке с КФС на USB-флешке останавливается на
Цитировать
Starting kernel ...

Какое значение bootargs в U-Boot и какой вообще это U-Boot?
Записан

vitvrn

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 34
Re: Buildroot 2010.05
« Ответ #7 : 20 Января, 2011, 11:50:45 »

В .applied_patches_list такие строки:
Цитировать
u-boot-1.3.3-001-zaozeo-svn894.patch
u-boot-1.3.3-011-radiy-tion9315.patch

а проблема, похоже, в ядре (как и в 2009.05 нужно конфигурировать) - со старым 2.6.30 (в котором не работает rtc) запустилось.

Для ядра .applied_patches_list такой:
Цитировать
linux-2.6.35.4-0010-arm-includes.patch
linux-2.6.35.4-0020-tion9315.patch
Записан

asv

  • Hero Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 1405
Re: Buildroot 2010.05
« Ответ #8 : 20 Января, 2011, 12:15:04 »

> со старым 2.6.30 (в котором не работает rtc)

Не совсем по теме, но rtc там работало, и если даже почему-то перестало, то это легко исправить, так как используется готовый драйвер совместимой ИМС RTC и программный I2C.
Записан

vitvrn

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 34
Re: Buildroot 2010.05
« Ответ #9 : 20 Января, 2011, 12:29:08 »

Да, я не так выразился - у меня не завелось, тут описывал проблему:
http://www.zao-zeo.ru/forum/index.php?topic=63.0
Есть какие-нибудь соображения, как сделать, чтоб заработало? Или куда копать - дело в ядре и драйверах или в КФС?
Записан

andrey_d

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 16
Re: Buildroot 2010.05
« Ответ #10 : 13 Апреля, 2011, 17:49:30 »

Не заводится VGA. В файле /mach-ep93xx/tion9315.c после
{
      .name   =   "mtf-tw70sp941-av",
      .refresh   = 60,
      .xres      = 800,
      .yres      = 480,
      .pixclock   = 30060,
      .left_margin   = 1,
      .right_margin   = 1,
      .upper_margin   = 1,
      .lower_margin   = 1,
      .hsync_len   = 256,
      .vsync_len   = 45,
      .sync      = 0,
      .vmode      = FB_VMODE_NONINTERLACED,
//      .flag
      /* Pixel clock, porches, etc */
//      NULL, 60, 800, 480, 39721, 40, 24, 39, 9, 96, 2, 0, FB_VMODE_NONINTERLACED
   },

добавил по аналогии

{
      .name   =   "vga640x480",
      .refresh   = 60,
      .xres      = 640,
      .yres      = 480,
      .pixclock   = 35242,
      .left_margin   = 40,
      .right_margin   = 96,
      .upper_margin   = 60,
      .lower_margin   = 32,
      .hsync_len   = 24,
      .vsync_len   = 11,
      .sync      = 0,
      .vmode      = FB_VMODE_NONINTERLACED,
   },

В u-boot panel=vga640x480.

pixclock подглядел в Documentation/fb/framebuffer.txt, остальное в патче к ядру 2.6.20.21.

Промахнулся здесь, или где-то еще надо править?
Записан