Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:4
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:8
Форум » starterkit.ru » Embedded Linux
Добавление нового программного обеспечения в файловую систему
e-designer
Добавлено 19.11.2010 16:44
0
Сообщение: 1
e-designer
0

Пункты: 241
Регистрация: 19.11.2010
Недавно получили плату с AT91SAM9XE512.
После загрузки Linux-а попробовал открыть текстовый файл с помощью vi. В ответ получил сообщение vi: applet not found.
Я предположил, что vi не установлен и попытался добавить его в файловую систему. Запустил конфигуратор Busybox, добавил редактор vi. Затем запустил компиляцию файловой системы с помощью команды ./build_system. B директории /tftpboot появились новые файлы rootfs, rootfs.arm.cpio.gz, zImage, zlinux.
Размер файлов zImage и zlinux не изменился, у rootfs и rootfs.arm.cpio.gz - увеличился.
Из оболочки u-boot запустил команду run tftp_boot. После загрузки редактор vi по-прежнему не работал. Получается что он не был добавлен в файловую систему либо файловая система не загружается вместе с ядром.
Прошу помочь в решении данной задачи.
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 19.11.2010 21:19 Сообщение: 2
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
Размер файлов zImage и zlinux не изменился, у rootfs и rootfs.arm.cpio.gz - увеличился.
Из оболочки u-boot запустил команду run tftp_boot. После загрузки редактор vi по-прежнему не работал. Получается что он не был добавлен в файловую систему либо файловая система не загружается вместе с ядром.

все сделали правильно и видимо упустили один пункт - новый образ rootfs надо положить (или проверить что он попал) в правильный каталог - по умолчанию /tftpboot под правильным именем. имя можно посмотреть в консоли Uboot - printenv содержимое скрипта tftp_boot

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Pavel Ivanchenko
Добавлено 19.11.2010 21:30 Сообщение: 3
Pavel Ivanchenko
Admin
4.39

Пункты: 92788
Регистрация: 24.03.2009
Пол: Мужчина
То что запускали конфиг и пересобирали базибокс совершенно не означает, что он в корневуху попадет ...
Я не знаю как это правильно делается (изменение содержимого базибокса на лету, тут скорее от окружения сборки зависит), либо тупо в ручную копирую, либо сношу папку с буилдом базибокса (указывая внешний конфиг).
Спуститься к концу Подняться к началу
Персональная информация
e-designer
Добавлено 20.11.2010 09:32 Редактировалось 20.11.2010 09:47 Сообщение: 4
e-designer
0

Пункты: 241
Регистрация: 19.11.2010
[quote.]все сделали правильно и видимо упустили один пункт - новый образ rootfs надо положить (или проверить что он попал) в правильный каталог - по умолчанию /tftpboot под правильным именем. имя можно посмотреть в консоли Uboot - printenv содержимое скрипта tftp_boot[/quote]

Скрипт tftp_boot=tftpboot 20400000 zlinux; bootm 20400000

То есть U-boot загружает файл zlinux и запускает в качестве ядра. Но ведь этот файл не изменяется при изменений файловой системы. В то же время после команды tftp_boot linux загружается и файловая система у него появляется. Следовательно файловая система интегрирована в файл zlinux.
Но она почему-то не обновляется во время сборки системы.

В настройках initramfs ядра указана ссылка на архив /tftpboot/rootfs.arm.cpio.gz. Если его удалить перед сборкой ядра, то появится предупреждение, но ядро все равно собирается с тем же размером файла и нормально запускается, естественно без vi.
Спуститься к концу Подняться к началу
Персональная информация
e-designer
Добавлено 20.11.2010 09:42 Редактировалось 20.11.2010 09:49 Сообщение: 5
e-designer
0

Пункты: 241
Регистрация: 19.11.2010
Цитата
либо тупо в ручную копирую, либо сношу папку с буилдом базибокса (указывая внешний конфиг)


Попробовал в ручную добавить файл в папку ...buildroot-2010.2/output/target/home/

После сборки файловой системы он появился в архиве rootfs.arm.cpio.gz. Но после выполнения run tftp_boot и загрузки linux-а в папке /home/ его нет
Спуститься к концу Подняться к началу
Персональная информация
e-designer
Добавлено 20.11.2010 11:34 Сообщение: 6
e-designer
0

Пункты: 241
Регистрация: 19.11.2010
Ура! Задача решена.

В настройках виртуальной машины не был настроен путь до файла

/usr/local/cross-gcc/arm-2007q1/bin/arm-none-linux-gnueabi-objcopy

Из-за этого не происходила сборка ядра. А в папку /tftpboot перезаписывалось старое ядро.

После исправления на отладочной плате появился vi и все файлы, которые я добавил в файловую систему.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux