Всем доброго времени суток! У меня возникла проблема с запуском uClinux. Суть такова:
Есть аппаратная конфигурация - заведомо рабочая.
- есть собранный образ uClinux cо следующими настройками:
#### To enable MTD
[*] Memory Technology Device (MTD) support --->
--- Memory Technology Device (MTD) support
[ ] Debugging (NEW)
[ ] MTD concatenating support (NEW)
[*] MTD partitioning support
[ ] RedBoot partition table parsing (NEW)
[ ] Command line partition table parsing (NEW)
[ ] TI AR7 partitioning support (NEW)
*** User Modules And Translation Layers ***
[*] Direct char device access to MTD devices
-*- Common interface to block layer for MTD 'translation layers
[ ] TI AR7 partitioning support (NEW)
*** User Modules And Translation Layers ***
[*] Direct char device access to MTD devices
-*- Common interface to block layer for MTD 'translation layers
[*] Caching block device access to MTD devices
+включена physical device map (это название на память)
#### To enable CFI flash
RAM/ROM/Flash chip drivers --->
[*] Detect flash chips by Common Flash Interface (CFI) probe
[ ] Detect non-CFI AMD/JEDEC-compatible flash chips (NEW)
[ ] Flash chip driver advanced configuration options (NEW)
[ ] Support for Intel/Sharp flash chips # for neek
[*] Support for AMD/Fujitsu flash chips # others
[ ] Support for ST (Advanced Architecture) flash chips (NEW)
[ ] Support for RAM chips in bus mapping (NEW)
[ ] Support for ROM chips in bus mapping (NEW)
[ ] Support for absent chips in bus mapping (NEW)
#### To enable flash filesystem support
File systems -->
Miscellaneous filesystems --->
[*] Journalling Flash File System v2 (JFFS2) support
Так же включены нужные mtd утилиты
В основных настройках ядра параметры offset addres и linking addres = 0х0
defaul command string = root=/dev/mtdblock0 rw rootfstype=jffs2
Всё настроено на работу с двумя partitions
0x600000-0xA00000 - rootfs
0x000000-0x600000 - kernel
При запуске ядра mtd-parts их выводит, под номером 0 - считает rootfs 1 - kernel
- есть образ rootfs.jffs2
- размеры партиций взяты с запасом по размеру
Зашиваю образ ядра
//после компиляции у меня на выходе elf формат образа, поэтому сначала преобразую во flash
$SOPC_KIT_NIOS2/bin/elf2flash --base=0x0 --end=0xffffff --reset=0x0 --input=soft --output=flash.flash --boot=$SOPC_KIT_NIOS2/components/altera_nios2/boot_loader_cfi.srec
//так зашиваю
$SOPC_KIT_NIOS2/bin/nios2-flash-programmer "flash.flash" --base=0x0 --mmu --sidp=0x21208B8 --id=0x3BD3BE2B --accept-bad-sysid --device=1 --instance=0 '--cable=USB-Blaster [USB-0]' --program --verbose
Так загружаю образ ФС
// из bin во flash
$> *bin2flash --input=rootfs.jffs2 –output=rootfs.flash --location=0x0060 0000 –verbose
//зашиваю
> *nios2-flash-programmer ”jffs2.flash” --base=0x0 –mmu --program --verbose
Зашивается в логе зашивается всё по правильным адресам т.е. ядро в партицию начиная с 0х0, фс в партицию начиная с 0х600000
При загрузке выдает ошибку:
freeing unused kernel memory 72k freed <0xC618D000 - c619E000>
Kernel panic - not syncing: no init found. Try passing init = option to kernel.
Помогите примонтировать файловую систему)
Лог загрузки: