Ник:
Пароль:

Контакты

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

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

User Info


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

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

Ник:
Пароль:

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

ОбновитьПодробнееВсегоВсего:7
Форум » starterkit.ru » Embedded Linux
rootfs
sekil
Добавлено 07.10.2012 13:12
0
Сообщение: 1
sekil
0

Пункты: 2027
Регистрация: 30.08.2012
Что то не могу понять:

1. Чем делается образ rootfs ?
2. Если rootfs будет на карте SD, то в uboot должна быть включена поддержка SD карт или она нужна только в линуксе?
3. Указав параметр загрузки для ядра что то типа root=/dev/mmcblk0p1 этим я подключу rootfs с карты?
Спуститься к концу Подняться к началу
Персональная информация
JollyJoker
Добавлено 07.10.2012 17:20 Сообщение: 2
JollyJoker
0

Пункты: 698
Регистрация: 06.04.2010
1) -
2) В u-boot должна быть включена поддержка mmc.
3) Этим вы укажите ядру где искать, и если в ядре все правильно настроено, то оно тогда подключит rootfs.

PS Пример работы с SD, описано как подготовить и как записать ядро и rootfs.

PS2 В google много инфы, ключевое слово boot kernel from SD card, или rootfs SD card.
Спуститься к концу Подняться к началу
Персональная информация
JollyJoker
Добавлено 07.10.2012 17:21 Сообщение: 3
JollyJoker
0

Пункты: 698
Регистрация: 06.04.2010
1) mkfs

и передать ядру rootfstype=ext3 root=/dev/mmcblk0p3 rw rootwait
Спуститься к концу Подняться к началу
Персональная информация
sekil
Добавлено 07.10.2012 18:58 Сообщение: 4
sekil
0

Пункты: 2027
Регистрация: 30.08.2012
Ну да я начитался всего.. Но все равно не ясно.. Линукс я гружу с tftp а rootfs хочу чтоб с карты брал.. Зачем тогда в uboot поддержка mmc?
И вроде в busybox есть утилита switch_root...
Спуститься к концу Подняться к началу
Персональная информация
JollyJoker
Добавлено 07.10.2012 19:08 Сообщение: 5
JollyJoker
0

Пункты: 698
Регистрация: 06.04.2010
Цитата
Ну да я начитался всего.. Но все равно не ясно.. Линукс я гружу с tftp а rootfs хочу чтоб с карты брал.. Зачем тогда в uboot поддержка mmc?
И вроде в busybox есть утилита switch_root...


Извините, невнимательно вопрос прочитал. в таком виде u-boot поддержка mmc не нужна, НО с другой стороны она много места не займет, а Вы думаю не все время ядро по сети грузить будете.
Спуститься к концу Подняться к началу
Персональная информация
sekil
Добавлено 07.10.2012 19:46 Сообщение: 6
sekil
0

Пункты: 2027
Регистрация: 30.08.2012
Не понял насчет mkfs..

Взял я например SD, закинул туда файлы и папки как в initramfs и просто указал root=/dev/mmcblk0p1 так будет работать?

При компиляции ядра линукса создается initramfs, вот как мне сделать чтоб создался отдельный образ rootfs?
Спуститься к концу Подняться к началу
Персональная информация
JollyJoker
Добавлено 07.10.2012 23:24 Редактировалось 07.10.2012 23:25 Сообщение: 7
JollyJoker
0

Пункты: 698
Регистрация: 06.04.2010
Цитата
Не понял насчет mkfs..

Взял я например SD, закинул туда файлы и папки как в initramfs и просто указал root=/dev/mmcblk0p1 так будет работать?

При компиляции ядра линукса создается initramfs, вот как мне сделать чтоб создался отдельный образ rootfs?


Для создания RootFS нужен BustBox, Buildroot или внимательно изучить сайт производителя процессора. Уважающие себя производители предоставляют готовые tar архив или ramdisk в котором есть все что нужно для работы Linux (библиотеки, скрипты инициализации и т.п и т.р.). Можно поискать на сайте Angstrom.

mkfs утилита для создания файловой системы нужного типа (jffs2, ext2, ext3 и т.д.) из папки в которую Вы распакуете tar архив, или примантируете ramdisk.
Спуститься к концу Подняться к началу
Персональная информация
sekil
Добавлено 08.10.2012 17:22 Редактировалось 08.10.2012 22:49 Сообщение: 8
sekil
0

Пункты: 2027
Регистрация: 30.08.2012
Все это я уже понял.. Прочитал что для переноса initramfs есть утилита switch_root в busybox

Сделал init скрипт.. теперь после загрузки выдает
Kernel panic - not syncing: Attempted to kill init!

Мож кто знает в чем дело?
Спуститься к концу Подняться к началу
Персональная информация
JollyJoker
Добавлено 09.10.2012 02:41 Редактировалось 09.10.2012 02:52 Сообщение: 9
JollyJoker
0

Пункты: 698
Регистрация: 06.04.2010
Куча вариантов. От неправильных скриптов в init до банального отсутствия прав доступа у ядра к одному из файлов.
Посмотритетут в разделе Configure the New Target Root File System. Там описано что стартует и кого вызывает init. Сравните команды там и у себя.
PS
А с логом загрузки возможно можно сузить круг подозреваемых.
Спуститься к концу Подняться к началу
Персональная информация
sekil
Добавлено 09.10.2012 17:02 Редактировалось 10.10.2012 00:07 Сообщение: 10
sekil
0

Пункты: 2027
Регистрация: 30.08.2012
Супер.. все получилось... :)
На карте в скрипте init прописал `exec /bin/busybox init`
И монтировал новый рут добавив опцию `sync`
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux