Суббота, 20.12.2025
Мой сайт
Меню сайта
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа
Главная » Гостевая книга [ Добавить запись ]

Страницы: 1 2 3 ... 6 7 »
Показано 1-15 из 96 сообщений
96. Тимур   (29.11.2010 23:50)
0  
Павел,
1) смотрите книгу LKN (здесь она выложена) не помню какая страница, но искать надо по словам: аргументы командной строки ядра - там это и задаётся вроде бы... ещё можно файл inittabs посмотреть вроде бы...

2) Переменные окружения надо правильно установить... какие - спросите у ЗАО ЗЭО. Они на семинарах это объясняют. Я уже забыл :(

Tiktak,
Разобраться в работе Линукса вам помогут книжки про Linux. Многие из них выложены здесь. Многих здесь пока что нет. Имеет смысл все книжки поделить на следующие группы:
- администрирование
- программирование приложений
- устройство ядра

Теперь по порядку: части перечислены в порядке возрастания сложности и важности, не желательно браться за программирование, не получив достаточно навыков по администрированию. Точно также не стоит браться за изучение ядра, не научившись писать на прикладном уровне.
Администрирование важно, потому что вы получите в свои руки новую видимо для вас парадигму работы с компьютером. Поймете, что командная строка это очень мощный и гибкий инструмент. Разберётесь с основами TCP/IP. Также полезно знать, где что находится в корневой файловой системе (и это тоже, пожалуй, относится к администрированию).
Программирование приложений - понятно почему важно - в большинстве случаев вам придется писать именно приложения. Немного особняком стоит QT (библиотека такая). Но она тоже важна.
В устройство ядра вам, возможно, на данном этапе не стоит пытаться вникать. Но в будущем можно будет попробовать написать драйвер простейшего символьного устройства. Изучать ядро полезно, и хорошо это делать имея какую-нибудь удобную IDE-шку (типа Source Insight-a) в которой исходники ядра будут как отдельный проект. Тогда изучать его устройство будет комфортно.

95. tiktak   (29.11.2010 16:10)
0  
Разобраться в работе Линукса кто поможет

94. Pavel   (29.11.2010 14:45)
0  
Пока собрал КФС, поигрался с различными настройками (что собирать в КФС). Включил QT в КФС скомпилилась, и загрузилась. есть несколько вопросов к знатокам:

1. Раньше (с КФС которая шла от производителя) консоль на ком. порту дублировала (почти) консоль экрана и клавиатуры (там и там запрашивался логин) теперь только ком порт на экране только лого с пингвином. Как вернуть консоль?

2. Установил QT на хость машину, компилю демки для хоста, как скомпилить демки для таргета (тиона 270)? Что прописывать в Тионе, переменные, пути?

93. Тимур   (20.11.2010 01:42)
0  
По поводу 1 и 2 - рад что разобрались.
По поводу 3, могу посоветовать только книжку Linux Kernel in a nutshell. (Она тут есть в электронном виде) Там написано про параметры командной строки ядра. Может это поможет...

92. Pavel   (18.11.2010 00:12)
0  
Продолжаем разговор -))
1. Все кажется собралось согласно Вашей инструкции. Засада была в Ubuntu у меня стояла 9.1 пользовательская сборка Поставил Ubuntu 8.04 LTS все получилось.
Обновлений не ставил.
Буду дальше двигаться - собирать ядро.

2. Нет я имел ввиду что я генерил "Hello world" под этот арм на компиляторе OSELAS.Toolchain-1.1.1 который заточен под него и взят с сайта произодителя тионов, и еще дополнительно пробовал кидать сторонние программы под арм - результат одинаков в обоих случаях!

Кажется понял почему у меня так происходит - и ядро и КФС (что стояли при покупке) получены buildroot-ом а мой пример откомпилирован OSELAS.Toolchain-1.1.1 - разные библиотеки и программа не может быть выполнена.

3.Цитата с сайта производителя - http://www.zao-zeo.ru/dokuwiki/doku.php/linux
----------------------------------------------------------------------------
CF-карта
Для использования КФС на CF-карте следует:
1.Создать на CF-карте раздел для КФС и создать на этом разделе ФС
* См. утилиты fdisk, cfdisk, mke2fs, mkfs.ext2
2.Примонтировать созданный раздел и скопировать на него файлы КФС
* Файлы КФС проще всего взять из образа ext2 КФС, создаваемого системой сборки. При этом образ ext2 монтируется к директории (например) mnt:
mount -o loop rootfs.arm.ext2 mnt
Из этой директории mnt файлы КФС копируются на раздел носителя с сохранением прав, владельца, группы, ссылок, т.е. cp -a
3.Настроить загрузку с использованием созданного раздела как КФС
* Указать в параметрах ядра: root=/dev/hda1, если КФС располагается на первом разделе CF-карты
4.Может пригодиться параметр ядра rootdelay, если попытка монтирования КФС будет выполнена раньше чем определение CF-карты
-----------------------------------------------------------------------------
Я не вижу противоречий в том что я делаю и что рекомендует производитель, у него схожая логика действий.

91. Тимур   (17.11.2010 22:31)
0  
1.Вопросы у вас не ламерские, а самые насущные,
2.Так бы сразу и сказали... АРМ-ов существует много разных и программа, собранная для одного, не обязательно будет работать на другом (у меня там где написано про то, как собирать тулчейн, написано, что можно разный его собрать).
3...3.4 - не правильная логика. И MBR тут тоже не при делах (MBR - важна, когда речь о PC-шке, здесь всем рулит u-boot). Суперблок - это понятие из виртуальной файловой системы Linux. Надо искать точную процедуру, описывающую как сделать загрузку с CF и уже эту процедуру пытаться понять, просто так экспериментировать не вредно, но похоже вы еще не набрали достаточно материала, чтоб экспериментировать. Лучше почитать про что-нибудь аналогичное... не обязательно зацикливаться на тионе. Почитаете, потом по аналогии сделаете.

90. Pavel   (17.11.2010 10:20)
0  
Спасибо Тимур что уделяете время на мои ламерские вопрсы -))
1. Понял буду рыть дальше, Попробую поставить как у Вас Ubuntu 8.04.

2. Нет не забыл делаю. Вообще что то странное происходит - кидаю на флешку исполняемый файл (скомпилирован под арм не мной) и в ответ такая надпись. Мне кажется что то не то в самой операционке.

3.Я немного сумбурно написал.
По моей логике КФС на CF это CF первый раздел которой отформатирован в ext2 и содержит структуру каталогов с их содержимым требуемым КФС.
Такие выводы я сделал изучив информацию производителя (http://www.zao-zeo.ru/dokuwiki/doku.php/linux раздел CF-карта)
Что я делаю:
3.1 Монтирую USB флешку в /mnt (mount /dev/sda1 /mnt). На флешке есть два пустых каталога 1 и 2 и образ КФС скаченный с сайта производителя в ext2 (http://www.zao-zeo.ru/media/files/rootfs/pxa270/rootfs.arm.ext2.gz)
3.2 Монтирую файл КФС (mount -o loop rootfs.arm.ext2.gz /mnt/1) в /mnt/1. Теперь директория 1 содержит КФС.
3.3 Вставляю CF размеченную в ext2 в тион. Монтирую диск CF (mount /dev/hda1 /mnt/2) в /mnt/2.
В результате получается монтируемая флешка к которой подмонтировано два устройства. Командой ls можно посмотреть что получилось.
3.4 Копирую содержимое директории 1 в 2 (cp -r /mnt/1/* /mnt/2).
По моей логике сейчас CF содержит КФС.
3.5 перегружаемся переходим в загрузчик.
далее в загрузчике изменяю параметры загрузки на следующие:
bootargs=mem=128M root=/dev/hda1 ro rootfstype=ext2 console=ttyS0,115200 video=pxafb:tag=vga
даю команду boot
Идет загрузка ядра а далее сообщение что не может монтировать КФС не правильный суперблок (пишу по памяти).

В чем ошибка? Команды писал по памяти возможно гдет о не точно написал но логика именно такая.

Пока писал сообщение пришла мысль - надо посмотреть MBR CF - не даром идет ругань на суперблок.

89. Тимур   (17.11.2010 02:13)
0  
Павел,
1) Пробуйте, пробуйте и еще раз пробуйте, по-другому с Linux-ом нельзя. Зайдите на linux.org.ru, спросите там. Я не хочу быть похожим на тех, которые сами разобрались, а другим не хотят говорить, но, честное слово, не знаю, что за проблема у вас. Если вы в Питере живёте, можем встретиться, попробую помочь (опять же, если смогу), если нет - тогда увы...
2) а вы не забыли у файла атрибут на выполнение поставить случайно? chmod a+x ./test1
3)монтируете CF на /mnt, после этого копируете /mnt на CF (т.е. тоже на /mnt что ли?) Даже если бы вы скопировали бы / на вашу CF, это не дало бы вам права говорить, что у вас теперь есть КФС на CF. Обычно КФС собирают и прошивают образ. Т.е. что-то типа dd if=/dev/mtdblockN of=/dev/CF может и дало бы что-то похожее на флешку с КФС, но и то вряд ли...
То, что у меня написано - написано честно. По горячим следам. По совсем горячим. Но я не несу ответственности за то, что у кого-то не получается то же самое. Тем не менее, постараюсь помочь чем смогу.

88. Pavel   (16.11.2010 10:52)
0  
1. Я шел точно по Вашей инструкции.
шаг sudo apt-get install build-essential делал. Сегодня еще раз попробую.

Пробовал брать более свежие версии oselas.toolchain. при этом ptxdist при команде ptxdist select ptxconfigs/arm-xscale-linux-gnu_gcc-4.0.4_glibc-2.3.6_linux-2.6.17.ptxconfig что нет такой конфигурации arm-xscale-linux-gnu_gcc (пишу по памяти)


2. Параллельно взял готовый тулчейн http://www.zao-zeo.ru/media/files/tools/gcc/oselas/arm-xscale-linux-gnu_oselas.toolchain-1.1.1.tar.gz.
Разархивировал в opt. Прописал пути.
дальше создаю файл (все по сайту ЗАО ЗЭО)
#include <stdio.h>
int main()
{printf("Hello worldn");return 0;}
компилирую arm-linux-gcc -Wall -o test1 main.c
переношу test1 на флешку ее подмонтирую на тионе делаю chmod a+x test1
набираю ./tets1 в ответ -sh: test1 : not found
Не получается.

3. И еще один вопрос. Пытаюсь КФС грузить с CF.
- на CF отформатированную в ext2 переношу содержание КФС (http://www.zao-zeo.ru/media/files/rootfs/pxa270/rootfs.arm.ext2.gz). т.е подмонтирую этот файл через mount -o loop rootfs.arm.ext2.gz /mnt и копирую содержание /mnt на CF. Получается CF с КФС.
- далее в загрузчике изменяю параметры загрузки на следующие:
bootargs=mem=128M root=/dev/hda1 ro rootfstype=ext2 console=ttyS0,115200 video=pxafb:tag=vga
даю команду boot
Идет загрузка ядра а далее сообщение что не может монтировать КФС не правильный суперблок (пишу по памяти).
В чем ошибка?

87. Тимур   (16.11.2010 01:14)
0  
У меня была кажется 8.04, сейчас обновилась до 9 с чем-то
Вы точно установили пакет "build essentials" ?

86.   (15.11.2010 12:22)
0  
1. Я поставил Ubuntu 9.1 (вот этот дистрибутив http://rutracker.org/forum/viewtopic.php?t=2654139) может другой попытать (какой)?

2. Описанную проблему решил (http://www.linuxquestions.org/questions/linux-from-scratch-13/program-too-old-error-when-installing-glibc-2-9-a-768992/).
---------------------------------------------------------------------------
I had this problem, with using binutils-2.20.1. To get past it, I edited the configure script for glibc, and changed these lines:
<--------------было
case $ac_prog_version in
'''') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
2.1[3-9]*)
ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
*) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;

case $ac_prog_version in
'''') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
2.1[3-9]*)
ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
*) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;

to this:
<--------------стало
case $ac_prog_version in
'''') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
2.2[0-9]*)
ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
*) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;

case $ac_prog_version in
'''') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
2.2[0-9]*)
ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
*) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
-------------------------------------------------------------------
Но появилась следующая ошибка (похожая на предыдущую)
* * *
target: glibc-crt.prepare
* * *
checking for autoconf... no
configure: error:
*** These critical programs are missing or too old: as ld
*** Check the INSTALL file for required versions.
* * *

Как я понял проблемы с glibc в частности с libc-crt все крутится вокруг него (glibc). Не правильная версия glibc??
Пока в инете похожих проблем не нашел.

Хотелось бы все таки самому скомпилить тулчейн

85. Тимур   (15.11.2010 00:28)
0  
Здравствуйте, Павел,

трудно так сразу же сказать, методика эта не моя, она стандартная, но можете хотя бы сказать, на каком этапе возникает проблема? Что вы вводите с клавиатуры, когда это начинается? Я подозреваю, что ./configure или я не прав?

Какой у вас Linux на компьютере, на котором собираете? Могу порекомендовать только посмотреть дальше на процесс сборки, как он проходил у меня и попробовать доустановить всё, что там выяснялось, что нужно доустановить. По идее "методика" должна работать, т.к. я когда писал, прямо всё делал на одном компе, а на другом записывал, что делал, т.е. если вы повторяете всё один в один, то должно получиться.

Если не получится - скачайте готовый тулчейн, что ещё тут можно посоветовать...

84. Pavel   (14.11.2010 23:25)
0  
Пытаюсь собрать по Вашей методике toolchain выскакивает ошибка на этапе компиляции
-----------------------------

target: glibc-headers.prepare

-----------------------------



cd /home/pavel/Proj/OSELAS-toolchain1.1.1/OSELAS-toolchain1.1.1/build-target/glibc-2.3.6-headers &&

PATH=/opt/OSELAS.Toolchain-1.1.1/arm-xscale-linux-gnu/gcc-4.0.4-glibc-2.3.6-kernel-2.6.17/bin:/opt/OSELAS.Toolchain-1.1.1/arm-xscale-linux-gnu/gcc-4.0.4-glibc-2.3.6-kernel-2.6.17/usr/bin:/opt/OSELAS.Toolchain-1.1.1/arm-xscale-linux-gnu/gcc-4.0.4-glibc-2.3.6-kernel-2.6.17/gcc-first/bin:$PATH CC="gcc" CXX="g++" CPPFLAGS="-I/opt/OSELAS.Toolchain-1.1.1/arm-xscale-linux-gnu/gcc-4.0.4-glibc-2.3.6-kernel-2.6.17/include" LDFLAGS="-L/opt/OSELAS.Toolchain-1.1.1/arm-xscale-linux-gnu/gcc-4.0.4-glibc-2.3.6-kernel-2.6.17/lib -Wl,-rpath -Wl,/opt/OSELAS.Toolchain-1.1.1/arm-xscale-linux-gnu/gcc-4.0.4-glibc-2.3.6-kernel-2.6.17/lib" PKG_CONFIG_PATH="" PKG_CONFIG_LIBDIR="/opt/OSELAS.Toolchain-1.1.1/arm-xscale-linux-gnu/gcc-4.0.4-glibc-2.3.6-kernel-2.6.17/lib/pkgconfig" CFLAGS=-DBOOTSTRAP_GCC libc_cv_initfini_array=yes libc_cv_386_tls=yes libc_cv_mlong_double_128ibm=set libc_cv_mlong_double_128=set libc_cv_ppc_machine=yes libc_cv_powerpc32_tls=yes libc_cv_powerpc64_tls=yes

/home/pavel/Proj/OSELAS-toolchain1.1.1/OSELAS-toolchain1.1.1/build-target/glibc-2.3.6/configure --prefix=/usr --build=i686-host-linux-gnu --host="arm-xscale-linux-gnu" --target="arm-xscale-linux-gnu" --with-headers=/opt/OSELAS.Toolchain-1.1.1/arm-xscale-linux-gnu/gcc-4.0.4-glibc-2.3.6-kernel-2.6.17/sysroot-arm-xscale-linux-gnu/usr/include --without-cvs --disable-sanity-checks --enable-hacker-mode

checking build system type... i686-host-linux-gnu

checking host system type... arm-xscale-linux-gnu

checking sysdep dirs... sysdeps/arm/elf sysdeps/unix/sysv/linux/arm sysdeps/unix/sysv/linux sysdeps/gnu sysdeps/unix/common sysdeps/unix/mman sysdeps/unix/inet sysdeps/unix/sysv sysdeps/unix/arm sysdeps/unix sysdeps/posix sysdeps/arm/fpu sysdeps/arm sysdeps/wordsize-32 sysdeps/ieee754/flt-32 sysdeps/ieee754/dbl-64 sysdeps/ieee754 sysdeps/generic/elf sysdeps/generic

checking for a BSD-compatible install... /usr/bin/install -c

checking whether ln -s works... yes

checking for arm-xscale-linux-gnu-gcc... gcc

checking for suffix of object files... o

checking whether we are using the GNU C compiler... yes

checking whether gcc accepts -g... yes

checking for gcc option to accept ANSI C... none needed

checking for gcc... gcc

checking how to run the C preprocessor... gcc -E

checking for arm-xscale-linux-gnu-g++... g++

checking whether we are using the GNU C++ compiler... yes

checking whether g++ accepts -g... yes

checking for arm-xscale-linux-gnu-ranlib... arm-xscale-linux-gnu-ranlib

checking whether as is GNU as... yes

checking whether ld is GNU ld... yes

checking for as... as

checking version of as... 2.20, bad

checking for ld... ld

checking version of ld... 2.20, bad

checking for pwd... /bin/pwd

checking for arm-xscale-linux-gnu-gcc... (cached) gcc

checking version of gcc... 4.4.1, ok

checking for gnumake... no

checking for gmake... no

checking for make... make

checking version of make... 3.81, ok

checking for gnumsgfmt... no

checking for gmsgfmt... no

checking for msgfmt... no

checking for makeinfo... no

checking for sed... sed

checking version of sed... 4.2.1, ok

checking for autoconf... no

configure: error:

*** These critical programs are missing or too old: as ld

*** Check the INSTALL file for required versions.

make: *** [/home/pavel/Proj/OSELAS-toolchain1.1.1/OSELAS-toolchain1.1.1/state/glibc-headers.prepare] Ошибка 1



error: a command in the pipe returned 2, bailing out


Ругается на glibc
Чего не хватает?

83. Тимур   (21.09.2010 01:33)
0  
Давайте разберёмся, вы говорите о работе с U-Boot-ом или о работе с Linux-ом?

Если об U-Boot-е, то по ТФТП вы не отправляете, а принимаете файл (сервер у вас должен быть на компьютере), при этом принимаете вы его не в файловую систему, а прямо в оперативную память.

Если вы говорите о работе с одноплатным компьютером, на котором установлен и запущен Linux и на котором поднят FTP сервер, то надо смотреть, почему так:
1) проверить, как замонтирована файловая система, на которую вы пытаетесь записать (команда mount)
2) проверить, какие права доступа к директории, в которую пытаетесь записать (ls -l имя_директории).
3) проверить, от имени какого пользователя работает ftp-сервер и имеет ли он необходимые права.
Вообще-то последние три пункта - они даже не относятся к embedded тематике - скорее просто к администрированию Linux.

82. Владимир   (20.09.2010 09:27)
0  
Здравствуйте. Вопрос такой. При попытке оправить файл программы через TFTP, контроллер выдал что не может принять файл, так как система рид-онли.
И при попытке создать папку в контроллере, он выдаёт что рид онли.
Как получить доступ к КФС?


Имя *:
Email *:
WWW:
Код *:
Поиск
Друзья сайта
  • Создать сайт
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Все проекты компании
  • Copyright MyCorp © 2025
    Сделать бесплатный сайт с uCoz