|
AT91RM9200/linux, какое ядро/ОС вы используете? |
|
|
|
Mar 17 2005, 11:51
|
Группа: Новичок
Сообщений: 10
Регистрация: 8-12-04
Пользователь №: 1 405

|
Я на самодельной плате завел линукс 2.4.27 с патчем от санпиплов. В принципе меня оно устраивает в том смысле что все работает. Единственное хочется полноценной поддержки USB 2.0, которая есть у 2.6. Есть ли у кого опыт с 2.6 на AT91RM9200?
|
|
|
|
|
Mar 18 2005, 13:15
|
Группа: Новичок
Сообщений: 10
Регистрация: 8-12-04
Пользователь №: 1 405

|
неужели никто линукс не пользовал на атмеле?
|
|
|
|
|
Mar 21 2005, 11:46
|
Группа: Новичок
Сообщений: 10
Регистрация: 8-12-04
Пользователь №: 1 405

|
Цитата(d__ @ Mar 21 2005, 11:23) Ну я уже близок к тому, чтобы оживлять ядро 2.6.11.5. По крайней мере тулза GCC 2.4.3 и LIBC 2.3.3 сгенерированы и кросс-компилят кернель без ошибок. Остается решить проблемы связанные с размещением и загрузкой кернеля... Размещением где? Вы его по езернету грузили? 2.6.11.5 это с патчем от Максима? http://maxim.org.za/AT91RM9200/2.6/Цитата(d__ @ Mar 21 2005, 11:23) Беспокоят размер кернеля-- в скомпрессированном виде он занимает порядка 900-1050к, а в развернутом порядка 1800к и это практически при всех вырубленных фичах... У меня 64 мега памяти, поэтому разницы в этом отношении не много. 2.4.27-vrs1 голый весит под 500-600 кил в зипе, а со всем что нужно около мега.
|
|
|
|
|
Mar 21 2005, 12:38
|
Группа: Новичок
Сообщений: 10
Регистрация: 8-12-04
Пользователь №: 1 405

|
Цитата(d__ @ Mar 21 2005, 15:10) Ну по каким адресам должен лежать кернель, по каким адресам должен лежать рамдиск, как происходит процесс раскрутки изапуска кернеля-- где-то это все описано но как это найти? Куда его класть не суть важно, этим занимается загрущик. Я использую U-Boot (http://u-boot.sourceforge.net/). Его же пользуют и атмеловцы. Есть и другие лоадеры, но мне и с этим нормально. Адрес рамдиска передается через параметр ядра. В У-Буте есть mkimage, который делает из имиджа ядра то, что потребно лоадеру. По-поводу загрузки есть в кернеле: linux/Documentation/arm/Booting Для рамдиска я заюзал cramfs, хотя это не принципиально, просто для него есть mkcramfs (http://developer.axis.com/), которая ест МЕТА файлы с описанием девайсовых нодов. Может я чего не понимаю и в 2.6 все по другому?
|
|
|
|
|
Mar 28 2005, 13:14
|
Группа: Новичок
Сообщений: 10
Регистрация: 8-12-04
Пользователь №: 1 405

|
Цитата(d__ @ Mar 27 2005, 23:36) За прошедшую неделю узнал очень много нового, нашел много интересного для автоматизации генерации кернеля и системы, но к сожалению не удалось найти для автоматизации генерации вхождений в /dev директории системы по информации находящейся в ядре кернеля, только табличка заполняемая ручками... дык я ж по мылу скинул, не уж то не доехало?
|
|
|
|
|
Mar 31 2005, 01:28
|

Профессионал
    
Группа: Участник
Сообщений: 1 179
Регистрация: 15-09-04
Из: 141070 г. Королев МО, улица Горького 39-121
Пользователь №: 661

|
Цитата(d__ @ Mar 27 2005, 23:36) в /dev директории Можно подставить свое ядро для AT91RM9200 в дистрибутив uClinux, там это автоматизировано. Заодно можно восспользоваться GLIBC, приложениями пользователя входящими в состав uClinux и ихней системой включения/выключения компиляции нужных вам приложений. Если нужно подставить свое приложение или библиотеку, то там это тоже просто делается. Берете, копируете каталог с ядром на верхний уровень дистрибутива uClinux, заменяете дефисы на точки в имене каталога, в конце имени добавляете ".x" и ихняя система конфиругирования подхватит ваше ядро автоматом. В каталоге vendor заводите свой каталог, например, vendor/Atmel/<имя каталога> В нем должны находится файл конфигурации вашего ядра, файл конфигурации приложений пользователя, файл config.arch, который задает опции компилятора, Makefile, который в частности делает /dev каталог. В качестве примера можно взять, любого vendor-a. При настройке, как обычно запускаете в каталоге дистрибутива uClinux: make menuconfig Выбираете нужного производителя, нужное ядро, потом вваливаетесь в окно настройки параметров ядра (точно такое же как при настройки отдельностоящего ядра) и затем в окно настройки библиотек и приложений. Если нужно, могу выложить пример таких манипуляций для EVM9200. При компиляции, на верхнем уровне будет создан каталог romfs, в котором будут лежать скомпилированные приложения, библиотеки. Обычно в файле vendor/Atmel/<имя каталога>/Makefile есть также команда которая конвертит этот каталог в файл образа файловой системы, который в свою очередь шьется во flash.
|
|
|
|
|
Apr 6 2005, 09:31
|
Частый гость
 
Группа: Свой
Сообщений: 197
Регистрация: 26-08-04
Пользователь №: 548

|
Ха! 30 секунд полет нормальный! Uncompressing Linux............................................................ done, booting the kernel. Linux version 2.6.11.5 (root@neelnx) (gcc version 3.4.2) #3 Tue Mar 29 10:57:01 EEST 2005 CPU: ARM920Tid(wb) [41129200] revision 0 (ARMv4T) CPU0: D VIVT write-back cache CPU0: I cache: 16384 bytes, associativity 64, 32 byte lines, 8 sets CPU0: D cache: 16384 bytes, associativity 64, 32 byte lines, 8 sets Machine: ATMEL AT91RM9200 Memory policy: ECC disabled, Data cache writeback Built 1 zonelists Kernel command line: mem=8M console=ttyS0,115200 PID hash table entries: 64 (order: 6, 1024 bytes) Console: colour dummy device 80x30 Dentry cache hash table entries: 2048 (order: 1, 8192 bytes) Inode-cache hash table entries: 1024 (order: 0, 4096 bytes) Memory: 8MB = 8MB total Memory: 5220KB available (1514K code, 293K data, 84K init) Mount-cache hash table entries: 512 (order: 0, 4096 bytes) CPU: Testing write buffer coherency: ok checking if image is initramfs...it isn't (bad gzip magic numbers); looks like a n initrd Freeing initrd memory: 936K NET: Registered protocol family 16 SCSI subsystem initialized NetWinder Floating Point Emulator V0.97 (double precision) Real Time Clock Driver v1.12 Non-volatile memory driver v1.2 AT91 SPI driver loaded AT91 Watchdog Timer enabled (5 seconds) ttyS0 at MMIO 0xfefff200 (irq = 1) is a AT91_SERIAL ttyS1 at MMIO 0xfefc4000 (irq = 7) is a AT91_SERIAL io scheduler noop registered io scheduler anticipatory registered io scheduler deadline registered io scheduler cfq registered RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize loop: loaded (max 8 devices) SLIP: version 0.8.4-NET3.019-NEWTTY (dynamic channels, max=256) (6 bit encapsula tion enabled). CSLIP: code copyright 1989 Regents of the University of California. SLIP linefill/keepalive option. Equalizer2002: Simon Janes (simon@ncm.com) and David S. Miller (davem@redhat.com ) tun: Universal TUN/TAP device driver, 1.6 tun: © 1999-2004 Max Krasnyansky <maxk@qualcomm.com> eth0: Link now 100-FullDuplex eth0: AT91 ethernet at 0xfefbc000 int=24 100-FullDuplex (00:00:00:a3:04:00) eth0: Realtek RTL8201(  L PHY $Id: ftl.c,v 1.54 2004/11/16 18:33:15 dwmw2 Exp $ physmap flash device: 200000 at 10000000 mice: PS/2 mouse device common for all mice i2c /dev entries driver Found AT91 i2c at91_i2c: timeout 1 NET: Registered protocol family 2 IP: routing cache hash table of 512 buckets, 4Kbytes TCP established hash table entries: 512 (order: 0, 4096 bytes) TCP bind hash table entries: 512 (order: -1, 2048 bytes) TCP: Hash tables configured (established 512 bind 512) NET: Registered protocol family 1 NET: Registered protocol family 17 RAMDISK: cramfs filesystem found at block 0 RAMDISK: Loading 936KiB [1 disk] into ram disk... done. VFS: Mounted root (cramfs filesystem) readonly. Initializing random number generator... rm: unable to remove `/etc/random-seed': Read-only file system urandom start: failed. done. Starting network... run-parts: failed to open directory /etc/network/if-pre-up.d: No such file or di rectory ifup: /var/run/ifstate: Read-only file system
|
|
|
|
|
Apr 28 2005, 06:15
|
Местный
  
Группа: Свой
Сообщений: 420
Регистрация: 22-12-04
Пользователь №: 1 608

|
Цитата(dch @ Apr 27 2005, 10:15) Цитата(d__ @ Apr 27 2005, 09:24) Траблы там сделано MAC адрес выставляет u-boot, а Ethernet драйвер адрес использует выставленный, наверное, может быть Если выставлен, так останется. А если нет, то busybox вызываемый как ifconfig вполне справляется. Только есть одна тонкость: компилировать busybox надо с правильными .h файлами от ядра. Иначе он не работает. Более того - если ядро 2.4.27 а заголовки были 2.4.21 - и то не работает.
|
|
|
|
|
May 2 2005, 09:21
|
Местный
  
Группа: Свой
Сообщений: 420
Регистрация: 22-12-04
Пользователь №: 1 608

|
Цитата(d__ @ May 2 2005, 00:50) Только надо не busybox, а uClibc собирать с правильными хедерами, а уж тогда Busybox собирается относительно uClibc и все чуки-пуки... Наверное ВСЕ надо собирать с правильными хедерами  Лично у меня не работал ifconfig hw пока не подставил ему что надо. А с uClibc не было проблем.
|
|
|
|
|
Jul 2 2005, 06:18
|

Профессионал
    
Группа: Участник
Сообщений: 1 179
Регистрация: 15-09-04
Из: 141070 г. Королев МО, улица Горького 39-121
Пользователь №: 661

|
Поддержка AT91RM9200 для uClinux http://www.ucrouter.ru/download/EVM9200-uC...41215.patch.tgz1. Copy & Unpack uClinux distributive to opt cp uClinux-dist-20041215.tar.bz2 /opt cd /opt tar -xjvf ./uClinux-dist-20041215.tar.bz2 2. Copy & Unpack Atmel Linux kernel to uClinux tree cp linux-2.4.19-rmk7.tar.gz /opt/uClinux-dist cd /opt/uClinux-dist tar -xzvf linux-2.4.19-rmk7.tar.gz 3. Copy & apply EVM9200 support for linux-2.4.19-rmk7 cp linux-2.4.19-rmk7-EVM9200.patch /opt/uClinux-dist cd /opt/uClinux-dist cat ./linux-2.4.19-rmk7-EVM9200.patch | patch -p0 ln -s /opt/uClinux-dist/linux-2.4.19-rmk7 /opt/uClinux-dist/linux-2.4.19.rmk7.x 4. Copy & Apply EVM9200 support for uClinux cp EVM9200-uClinux-20041215.patch /opt cd ./opt cat ./EVM9200-uClinux-20041215.patch | patch -p0 5. Configure & compile linux-2.4.19-rmk7 & uClinux user applications type: make menuconfig From main menu select item: 'Vendor/Product Selection' From 'Vendor/Product Selection' dialog Select Vendor: '(Atmel) Vendor' Select Product: '(EVM9200)' From main menu select item:'Kernel/Library/Default Selection' Аrom 'Kernel/Library/Default Selection' dialog Select kernel version:(linux-2.4.19-rmk7.x) and Libc Version : (glibc) Select "Exit" to exit from 'make menuconfig' utility. type: make dep 2>&1 | tee make_dep.out make | tee make.out /opt/uClinux-s/images/ucImage - ядро для прошивки u-boot-ом /opt/uClinux-s/images/ucInitrd - initrd диск для прошивки u-boot-ом
|
|
|
|
|
Jul 2 2005, 10:05
|

Участник

Группа: Свой
Сообщений: 65
Регистрация: 13-07-04
Пользователь №: 320

|
Я QNX завёл. Правда USB не поднимал - мне нет необходимости. Загрузчик, драйвера Ethernet и UART писал сам. Сейчас флэшку прикручиваю.
--------------------
NO! - I mean, no, Klogg. This crown is the only thing that you cannot have. -- Hoborg
|
|
|
|
|
Jul 4 2005, 13:04
|
Участник

Группа: Новичок
Сообщений: 32
Регистрация: 1-07-05
Пользователь №: 6 454

|
А не подскажет ли народ близкий к AT91RM9200 какой-нибуть open source/hardware проект для этого процессора. Интересует подробная схематика, и печатная плата, плюс какая нибуть документация и тестовео ПО. (кроме atmel EK)
Интересно в образовательных целях, чтобы можно было отчего-то оттолкнутся.
|
|
|
|
|
Jul 5 2005, 06:59
|

Участник

Группа: Свой
Сообщений: 65
Регистрация: 13-07-04
Пользователь №: 320

|
Цитата(dch @ Jul 2 2005, 18:15) Цитата(klogg @ Jul 2 2005, 13:05) Вречатлениями не поделитесь? Как у них там ситуация с лицензиями. Что поставляется в исходных тескстах, что в загрузочных модулях. Откуда качать. Стоит эо чтонибудь или нет. QNX классная вещь. По порядку: 1. лицензии стоят денег (я не про лицензии места разработки, а про лицензии инсталляции ОС), у нас - около 200$. а вообще зависит от того, что входит в состав ОСи 2. вместе с средой разработки QNX Momentics PE поставляется куча искходников - DDK, BSP (Board Support Package - для портирования ОСи под конкретную плату и проц). в бинарниках поставляется ядро и различные программы - от простых типа ls, cat, mount до qnx-специфичных типа модуля io-net. за отдельные деньги у них существуют дополнительные специфические наборы разработчиков - т.н. TDK (Technology Development Kit) 3. качать неоткуда. только покупать. хотя чтобы поиграться есть QNX4.25 - бесплатная, и QNX6.xxNC - несколко обрезанная 6-я. 4. место разработчика соит $$$ и очень прилично...  хотя вообще-то эта цена растворяется в цене нашего устройства. если заинтересован в покупке - смотри на сайте QNX что где и как. а там тебе уже скажут сколько. токо вчера файловую систему на флэшке поднял
--------------------
NO! - I mean, no, Klogg. This crown is the only thing that you cannot have. -- Hoborg
|
|
|
|
|
Jul 5 2005, 07:28
|
Участник

Группа: Новичок
Сообщений: 32
Регистрация: 1-07-05
Пользователь №: 6 454

|
Цитата(dch @ Jul 4 2005, 19:10) >open source/hardware(кроме atmel EK) http://www.dlharmon.com/sbc.htmlSchematics: gEDA gschem PCB Layout PCB Сейчас gEDA, PCB стали включать в дистрибутивов Linux-а, по крайней мере в ASPLinux они есть. Спасибо Плохо только, что этот gEDA и PCB не совместимы с PCAD
|
|
|
|
|
Jul 5 2005, 07:55
|

Участник

Группа: Свой
Сообщений: 65
Регистрация: 13-07-04
Пользователь №: 320

|
Цитата(vzn @ Jul 4 2005, 16:04) А не подскажет ли народ близкий к AT91RM9200 какой-нибуть open source/hardware проект для этого процессора. Интересует подробная схематика, и печатная плата, плюс какая нибуть документация и тестовео ПО. (кроме atmel EK) Интересно в образовательных целях, чтобы можно было отчего-то оттолкнутся. Тут вроде в этой ветке появлялся товарисч из проека uCrouter... www.ucrouter.ru
--------------------
NO! - I mean, no, Klogg. This crown is the only thing that you cannot have. -- Hoborg
|
|
|
|
|
Sep 7 2005, 13:14
|
Группа: Новичок
Сообщений: 1
Регистрация: 7-09-05
Пользователь №: 8 328

|
Цитата(klogg @ Jul 2 2005, 13:05) Я QNX завёл. Правда USB не поднимал - мне нет необходимости. Загрузчик, драйвера Ethernet и UART писал сам. Сейчас флэшку прикручиваю. Ужасно интересно никак нельзя bsp глянуть? и что за железо потребовало написания драйверов Ethernet? и какую версию 6-ки использовали?
--------------------
7277
|
|
|
|
|
Oct 25 2005, 17:32
|
Участник

Группа: Новичок
Сообщений: 46
Регистрация: 20-01-05
Пользователь №: 2 090

|
Цитата(yuriypro @ Mar 21 2005, 15:38) В У-Буте есть mkimage, который делает из имиджа ядра то, что потребно лоадеру. Интересная утилита этот mkimage - из 5ти вариантов сгенерированного им образа для uBoot'а, грузиться только один. Смотрю - а он к одному и тому же исходному zImage может добавить разные header'ы! При одинаковых параметрах и иходном зипованом бинарнике! Что он туда и время пишет? А большинство сгенерированных образов или виснут при их вызове (uBoot'ом) или перегружают проц (очевидно exeption). Повезло ещё что первые образы были удачные, ведь поначалу на подправленый мной kernel грешил. Попробовал взять mkimage от версии (uBoot'а) 1.3 для linux'а, пока юзаю 1.1 для cygwin'а - таже фигня. Может кто сталкивался? Ещё интересная вещь - когда uBoot распаковывает образ, обращает на себя внимание сообщение насчёт Bad gzipped data: Код ... ## Booting image at 20008000 ... Image Name: Image Type: ARM Linux Kernel Image (gzip compressed) Data Size: 810360 Bytes = 791.4 kB Load Address: 20008000 Entry Point: 20008000 Verifying Checksum ... OK Uncompressing Kernel Image ... Error: Bad gzipped data GUNZIP ERROR - must RESET board to recover OK No initrd ## Transferring control to Linux (at address 20008000) ...
Starting kernel ...
Uncompressing Linux...................................................... done, booting the kernel.
Linux version 2.6.13.3 (root@linux) (gcc version 3.4.1) #1... Это не смертельно? А то kernel вроде работоспособен
|
|
|
|
|
Oct 26 2005, 07:04
|
Участник

Группа: Свой
Сообщений: 54
Регистрация: 2-03-05
Пользователь №: 3 000

|
Цитата(vvj @ Oct 25 2005, 20:32) Цитата(yuriypro @ Mar 21 2005, 15:38) В У-Буте есть mkimage, который делает из имиджа ядра то, что потребно лоадеру. Интересная утилита этот mkimage - из 5ти вариантов сгенерированного им образа для uBoot'а, грузиться только один. Смотрю - а он к одному и тому же исходному zImage может добавить разные header'ы! При одинаковых параметрах и иходном зипованом бинарнике! Что он туда и время пишет? А большинство сгенерированных образов или виснут при их вызове (uBoot'ом) или перегружают проц (очевидно exeption). Повезло ещё что первые образы были удачные, ведь поначалу на подправленый мной kernel грешил. Попробовал взять mkimage от версии (uBoot'а) 1.3 для linux'а, пока юзаю 1.1 для cygwin'а - таже фигня. Может кто сталкивался? Ещё интересная вещь - когда uBoot распаковывает образ, обращает на себя внимание сообщение насчёт Bad gzipped data: Код ... ## Booting image at 20008000 ... Image Name: Image Type: ARM Linux Kernel Image (gzip compressed) Data Size: 810360 Bytes = 791.4 kB Load Address: 20008000 Entry Point: 20008000 Verifying Checksum ... OK Uncompressing Kernel Image ... Error: Bad gzipped data GUNZIP ERROR - must RESET board to recover OK No initrd ## Transferring control to Linux (at address 20008000) ...
Starting kernel ...
Uncompressing Linux...................................................... done, booting the kernel.
Linux version 2.6.13.3 (root@linux) (gcc version 3.4.1) #1... Это не смертельно? А то kernel вроде работоспособен  А почему у Вас сам скомпрессированный имидж лежит по тому же адресу, куда он должен грузиться? Цитата Код ## Booting image at 20008000 ... ... Load Address: 20008000 ... По идее, адрес, где скомпрессированный имидж лежит, и адрес куда он затем после распаковки грузится должны быть разные. А иначе Вы рискуете запортить свой скомпрессированный имидж. Нормальная ситуация, когда скомпрессированный имидж лежит, например, во флешке, а u-Boot его затем из флешки распаковывает и грузит в SDRAM. Hercules.
--------------------
Best regards, Hercules
|
|
|
|
|
Oct 26 2005, 08:28
|
Участник

Группа: Новичок
Сообщений: 46
Регистрация: 20-01-05
Пользователь №: 2 090

|
Цитата(Hercules @ Oct 26 2005, 10:04) А почему у Вас сам скомпрессированный имидж лежит по тому же адресу, куда он должен грузиться?Hercules. Сам пока не задумывался - до размещения linux'а во Flash дело не дошло. Пользовался инструкциями из документа "AT91RM9200DK U-Boot Developper Manual" : Код ($U-BOOT-PATH)/tools > ./mkimage -A arm -O linux -T kernel -C gzip -a 0x20008000 -e 0x20008000 -d linux.bin.gz uImage /tftpboot/ и Код Uboot> tftp 20008000 uImage Uboot> tftp 21100000 ramdisk Uboot> setenv bootargs root=/dev/ram rw initrd=0x21100000, 60000000 ramdisk_size=15360 console=ttyS0,115200 mem=32M Uboot> saveenv Uboot> bootm 20008000 21100000
|
|
|
|
|
Oct 26 2005, 09:38
|
Участник

Группа: Свой
Сообщений: 54
Регистрация: 2-03-05
Пользователь №: 3 000

|
Цитата(vvj @ Oct 26 2005, 11:28) Цитата(Hercules @ Oct 26 2005, 10:04) А почему у Вас сам скомпрессированный имидж лежит по тому же адресу, куда он должен грузиться?Hercules. Сам пока не задумывался - до размещения linux'а во Flash дело не дошло. Пользовался инструкциями из документа "AT91RM9200DK U-Boot Developper Manual" : Код ($U-BOOT-PATH)/tools > ./mkimage -A arm -O linux -T kernel -C gzip -a 0x20008000 -e 0x20008000 -d linux.bin.gz uImage /tftpboot/ и Код Uboot> tftp 20008000 uImage Uboot> tftp 21100000 ramdisk Uboot> setenv bootargs root=/dev/ram rw initrd=0x21100000, 60000000 ramdisk_size=15360 console=ttyS0,115200 mem=32M Uboot> saveenv Uboot> bootm 20008000 21100000 Вы немного неправильно делаете (у Вас неправильно указан адрес, куда нужно грузить скомпрессированное ядро linux-а). Нужно где-то так: Код Uboot> tftp 21000000 uImage Uboot> tftp 21100000 ramdisk Uboot> setenv bootargs root=/dev/ram rw initrd=0x21100000,60000000 ramdisk_size=15360 console=ttyS0,115200 mem=32M Uboot> saveenv Uboot> bootm 21000000 т.е. мы грузим скомпрессированное ядро linux-а по адресу 0x21000000, а ramdisk по адресу 0x21100000. Затем распаковывается и запускается ядро linux-а (команда bootm). Причем ядро после распаковки будет лежать начиная с адреса 0x20008000 и туда же будет передано управление т.к. "Load Address" так же был установлен на 0x20008000 (судя по той информации, что Вы привели "($U-BOOT-PATH)/tools > ./mkimage ..."). Указывать в команде bootm еще и адрес, где у нас лежит ramdisk не нужно, так как его распаковывать будет ядро linux-а (ему будет передана информация о том где лежит ramdisk в аргументах (bootargs)). Командой setenv вы устанавливаете переменную bootargs в нужное значение. А затем командой saveenv Вы сохраняете все свое окружение во флэшку. При последующей загрузки u-Boot-а все сохраненные переменные будут востановлены. Т.е. до тех пор пока Вы сами не удалите переменную bootargs (например, командой setenv bootargs без указания значения переменной или сотрете тот сектор флешки, где у Вас располагаются переменные окружения) все последующие запуски linux-а можно делать так: Код Uboot> tftp 21000000 uImage Uboot> tftp 21100000 ramdisk Uboot> bootm 21000000 т.е. уже не нужно вы полнять команды: Код Uboot> setenv bootargs root=/dev/ram rw initrd=0x21100000,60000000 ramdisk_size=15360 console=ttyS0,115200 mem=32M Uboot> saveenv Вот в кратце вроде все. Пробуйте. Hercules PS. Надеюсь у Вас на tftp сервере, с которого осуществляется загрузка, скомпрессированное ядро лежит именно под именем uImage, а RAM диск под именем ramdisk.
--------------------
Best regards, Hercules
|
|
|
|
|
Oct 26 2005, 10:26
|
Участник

Группа: Новичок
Сообщений: 46
Регистрация: 20-01-05
Пользователь №: 2 090

|
Благодарю за исчерпывающий ответ, извиняюсь за то, что я привёл оригинальную выдержку из документа, где работают с DevKit'ом. У меня же в "раме", "всего" 16 метров. Сам использую скрипт для bootcmd: Код Uboot> printenv bootdelay=3 baudrate=115200 ethaddr=12:34:56:78:9A:BC bootargs=root=/dev/ram0 rw initrd=0x20410000,3145728 mem=16M console=ttyS0,115200 filesize=dcf68 ipaddr=10.0.3.2 serverip=10.0.3.1 flashit=tftp 20008000 uImage; tftp 20410000 root.cramfs; bootm 20008000 bootcmd=run flashit а то уже снится стали эти "tftp 20008000 uImage tftp .." Идею я понял, спасибо. Однако тогда не пойму как оно сейчас работает - ведь распаковывающийся образ, из-за бОльшего размера перетирает пакованный по тому же адресу uImage "быстрее"? И вот ещё: что надо чтоб "пингануть" этот кастрированный Linux? Должен ли он это по умолчанию делать или добавить какой модуль надо? А то он кроме ls и cd других команд (типа ifconfig) не признаёт. Я понимаю, что это по идее отдельные апликации, но сам пока не знаю как делать тот самый rootfs. Пользуюсь одолженным.  ЗЫ: и кто бы подсказал что это за число магическое: 60000000? Код setenv bootargs root=/dev/ram rw initrd=0x21100000,60000000 ramdisk_size=15360 console=ttyS0,115200 mem=32M ЗЫ2: Товарищ Hercules! Не работает Ваша теория: проверено несколько раз по 8ми и 10ти метровому адресу Код Uboot> tftp 20800000 uImage ... Uboot> tftp 20410000 root.cramfs ... Uboot> bootm 20800000 ## Booting image at 20800000 ... Image Name: Image Type: ARM Linux Kernel Image (gzip compressed) Data Size: 810360 Bytes = 791.4 kB Load Address: 20008000 Entry Point: 20008000 Verifying Checksum ... OK Uncompressing Kernel Image ... Error: Bad gzipped data GUNZIP ERROR - must RESET board to recover OK No initrd ## Transferring control to Linux (at address 20008000) ...
Starting kernel ...<прим:ПОВИС>
|
|
|
|
|
Oct 26 2005, 12:36
|
Участник

Группа: Новичок
Сообщений: 18
Регистрация: 23-06-05
Пользователь №: 6 264

|
Цитата(vvj @ Oct 26 2005, 13:26) ЗЫ2: Товарищ Hercules! Не работает Ваша теория: проверено несколько раз по 8ми и 10ти метровому адресу Код Uboot> tftp 20800000 uImage ... Uboot> tftp 20410000 root.cramfs ... Uboot> bootm 20800000 ## Booting image at 20800000 ... Image Name: Image Type: ARM Linux Kernel Image (gzip compressed) Data Size: 810360 Bytes = 791.4 kB Load Address: 20008000 Entry Point: 20008000 Verifying Checksum ... OK Uncompressing Kernel Image ... Error: Bad gzipped data GUNZIP ERROR - must RESET board to recover OK No initrd ## Transferring control to Linux (at address 20008000) ...
Starting kernel ...<прим:ПОВИС> Я хоть и не Hercules, но присоединюсь: Может у Вас просто память (SDRAM) шалит? И во-вторых, можно для начала вообще не сжимать ядро (с помощью mkimage), а делать plain image, и потом уже (для записи во флешку) делать zImage и его уже обрабатывать mkimage. Мне показалось что zImage разкручивается быстрее... PS Посмотрел более ранние сообщения, у вас похоже ядро сжато дважды? Сначала u-boot рапортует про gzipped image, потом видим Uncompressing linux??? Это же двойное время на распаковку!
|
|
|
|
|
Oct 26 2005, 13:31
|
Участник

Группа: Новичок
Сообщений: 46
Регистрация: 20-01-05
Пользователь №: 2 090

|
Убрал параметр -C gzip из mkimage, всё равно (uBoot) пытается его распаковать: Код ## Booting image at 20008000 ... Image Name: Image Type: ARM Linux Kernel Image (gzip compressed) Data Size: 810360 Bytes = 791.4 kB Load Address: 20008000 Entry Point: 20008000 Verifying Checksum ... OK Uncompressing Kernel Image ... Error: Bad gzipped data GUNZIP ERROR - must RESET board to recover OK No initrd ## Transferring control to Linux (at address 20008000) ... Starting kernel ... Uncompressing Linux...................................................... done, booting the kernel. SDRAM впорядке. Если сазданный mkimage'ом образ виснет, то он виснет ВСЕГДА (раз пять подряд пробовал). Тогда делаю с того же(!) zImage'а ещё раз uImage пока не получу работающий образ. И этот образ грузится ВСЕГДА. Короче этот mkimage клепает разные образы с одного и того же исходника!
|
|
|
|
|
Oct 26 2005, 15:33
|
Участник

Группа: Новичок
Сообщений: 18
Регистрация: 23-06-05
Пользователь №: 6 264

|
Цитата(vvj @ Oct 26 2005, 16:31) Убрал параметр -C gzip из mkimage, всё равно (uBoot) пытается его распаковать Попробуйте c ключом -С none
|
|
|
|
|
Oct 26 2005, 18:48
|
Участник

Группа: Новичок
Сообщений: 46
Регистрация: 20-01-05
Пользователь №: 2 090

|
Цитата(RRRR @ Oct 26 2005, 18:33) Попробуйте c ключом -С none Семён Семёныч! Не дочитал я документ однако! Но всё же избавление от повторной зиповки, не помогло избежать проблем с появлением виснущих образов
|
|
|
|
|
Oct 27 2005, 06:53
|
Участник

Группа: Свой
Сообщений: 54
Регистрация: 2-03-05
Пользователь №: 3 000

|
А можно глупый вопрос? Судя по: Цитата(vvj @ Oct 26 2005, 21:48) Код Starting kernel ... Uncompressing Linux...................................................... done, booting the kernel. Linux version 2.6.13.3 (root@linux) (gcc version 3.4.1) #1... и Цитата(vvj @ Oct 26 2005, 21:48) Код ($U-BOOT-PATH)/tools > ./mkimage -A arm -O linux -T kernel -C gzip -a 0x20008000 -e 0x20008000 -d linux.bin.gz uImage /tftpboot/ Вы вначале собираете ядро Linux-а версии 2.6.13.3, а затем при помощи mkimage получаете готовый имидж для u-Boot-а. А почему Вы сразу при сборке ядра не получаете готовый имидж для u-Boot-а? Это можно сделать так: make uImage В ядре 2.4 такой возможности не было и действительно приходилось вначале собирать ядро, а затем самому получать имидж для u-Boot-а, а в ядре 2.6 уже есть (ядро 2.5 я не собирал, поэтому не знаю можно там сразу получить uImage или нет).
--------------------
Best regards, Hercules
|
|
|
|
|
Oct 27 2005, 07:09
|
Участник

Группа: Свой
Сообщений: 54
Регистрация: 2-03-05
Пользователь №: 3 000

|
Вот нашел у себя книжечку. Может пригодиться. Правда там все расказывается на примере ядра 2.4, а не 2.6, но все равно можно почитать.
Убрал аттач. Содержимое книги лежит в закромах по адресу /pub/DOC/Books/OS/Unix_linux/linux_embedded/oreilly.building.embedded.linux.systems
--------------------
Best regards, Hercules
|
|
|
|
|
Oct 27 2005, 08:22
|
Участник

Группа: Новичок
Сообщений: 46
Регистрация: 20-01-05
Пользователь №: 2 090

|
Цитата(Hercules) Вот нашел у себя книжечку. Может пригодиться. Правда там все расказывается на примере ядра 2.4, а не 2.6, но все равно можно почитать. Читаю читаю, спасибо. Цитата(Hercules) А почему Вы сразу при сборке ядра не получаете готовый имидж для u-Boot-а? Так ведь тёмный я, не в въехал пока как ему при этом параметры "-e 20008000" и "-a 20008000" передавать. ЗЫ: есть там правда в папке arch/arm/boot файл .uImage.cmd с узнаваемыми параметрами, но по сообщению "mkimage" command not found (при make uImage) понятно что это просто шелскрипт и сделает он тоже что и я.
|
|
|
|
|
May 30 2006, 08:18
|
Участник

Группа: Свой
Сообщений: 55
Регистрация: 10-07-05
Пользователь №: 6 685

|
Цитата(yuriypro @ Mar 21 2005, 14:38)  Я использую U-Boot (http://u-boot.sourceforge.net/). Его же пользуют и атмеловцы. Есть и другие лоадеры, но мне и с этим нормально. Адрес рамдиска передается через параметр ядра. В У-Буте есть mkimage, который делает из имиджа ядра то, что потребно лоадеру.
По-поводу загрузки есть в кернеле: linux/Documentation/arm/Booting Немного не по теме, но правильно ли я понимаю, что У-Буту нету разницы, по какому USART я подключусь (в смысле, я хочу по RXD3, TXD3)? Я так понял, что это конфигурируется вначале?
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|