Перейти к содержанию
    

Я на самодельной плате завел линукс 2.4.27 с патчем от санпиплов. В принципе меня оно устраивает в том смысле что все работает. Единственное хочется полноценной поддержки USB 2.0, которая есть у 2.6. Есть ли у кого опыт с 2.6 на AT91RM9200?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну я уже близок к тому, чтобы оживлять ядро 2.6.11.5. По крайней мере тулза GCC 2.4.3 и LIBC 2.3.3 сгенерированы и кросс-компилят кернель без ошибок. Остается решить проблемы связанные с размещением и загрузкой кернеля... Беспокоят размер кернеля-- в скомпрессированном виде он занимает порядка 900-1050к, а в развернутом порядка 1800к и это практически при всех вырубленных фичах...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну я уже близок к тому, чтобы оживлять ядро 2.6.11.5. По крайней мере тулза GCC 2.4.3 и LIBC 2.3.3 сгенерированы и кросс-компилят кернель без ошибок. Остается решить проблемы связанные с размещением и загрузкой кернеля...

 

Размещением где? Вы его по езернету грузили?

 

2.6.11.5 это с патчем от Максима? http://maxim.org.za/AT91RM9200/2.6/

 

Беспокоят размер кернеля-- в скомпрессированном виде он занимает порядка 900-1050к, а в развернутом порядка 1800к и это практически при всех вырубленных фичах...

 

У меня 64 мега памяти, поэтому разницы в этом отношении не много. 2.4.27-vrs1 голый весит под 500-600 кил в зипе, а со всем что нужно около мега.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну по каким адресам должен лежать кернель, по каким адресам должен лежать рамдиск, как происходит процесс раскрутки изапуска кернеля-- где-то это все описано но как это найти?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну по каким адресам должен лежать кернель, по каким адресам должен лежать рамдиск, как происходит процесс раскрутки изапуска кернеля-- где-то это все описано но как это найти?

 

Куда его класть не суть важно, этим занимается загрущик. Я использую U-Boot (http://u-boot.sourceforge.net/). Его же пользуют и атмеловцы. Есть и другие лоадеры, но мне и с этим нормально. Адрес рамдиска передается через параметр ядра. В У-Буте есть mkimage, который делает из имиджа ядра то, что потребно лоадеру.

 

По-поводу загрузки есть в кернеле: linux/Documentation/arm/Booting

 

Для рамдиска я заюзал cramfs, хотя это не принципиально, просто для него есть mkcramfs (http://developer.axis.com/), которая ест МЕТА файлы с описанием девайсовых нодов.

 

Может я чего не понимаю и в 2.6 все по другому?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

За прошедшую неделю узнал очень много нового, нашел много интересного для автоматизации генерации кернеля и системы, но к сожалению не удалось найти для автоматизации генерации вхождений в /dev директории системы по информации находящейся в ядре кернеля, только табличка заполняемая ручками...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

За прошедшую неделю узнал очень много нового, нашел много интересного для автоматизации генерации кернеля и системы, но к сожалению не удалось найти для автоматизации генерации вхождений в /dev директории  системы по информации находящейся в ядре кернеля, только табличка заполняемая ручками...

 

дык я ж по мылу скинул, не уж то не доехало?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в /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.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ха! 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 ([email protected]) and David S. Miller ([email protected]

)

tun: Universal TUN/TAP device driver, 1.6

tun: © 1999-2004 Max Krasnyansky <[email protected]>

eth0: Link now 100-FullDuplex

eth0: AT91 ethernet at 0xfefbc000 int=24 100-FullDuplex (00:00:00:a3:04:00)

eth0: Realtek RTL8201(B)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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я пытаюсь использовать 2.4.21rmk2 с платой от KwikByte.

Проблема с dataflash:

 

AT91 SPI driver loaded

at91_dataflash: Atmel AT45DB161B detected [spi0] (2162688 bytes)

Creating 3 MTD partitions on "Atmel AT45DB161B":

0x00000000-0x00010000 : "bootloader"

mtd: Giving out device 1 to bootloader

 

и тут зависает. Если отключить перемычку, то все грузится.

 

Вопросы:

1. кто нибудь на эти грабли наступал?

2. Где именно найти стабильное ядро для этой платы (KB9201(www.kwikbyte.com))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Траблы с установкой MAC адреса: не удается с помощью ifconfig'а выставить в 2.6 собственный МАС адрес в эзернет AT91RM9200. Поиски в GOOGLE привели к какой-то дискусии в ARM Linux kernel типа "а вот как бы выставить МАС адрес? -- сам ты дурак..."

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Траблы

там сделано MAC адрес выставляет u-boot, а Ethernet драйвер адрес использует выставленный, наверное, может быть

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Траблы

там сделано MAC адрес выставляет u-boot, а Ethernet драйвер адрес использует выставленный, наверное, может быть

 

 

Если выставлен, так останется. А если нет, то busybox вызываемый как ifconfig вполне справляется. Только есть одна тонкость: компилировать busybox надо с правильными .h файлами от ядра. Иначе он не работает. Более того - если ядро 2.4.27 а заголовки были 2.4.21 - и то не работает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, очень хорошая подсказка, показала правильное направление развития... Только надо не busybox, а uClibc собирать с правильными хедерами, а уж тогда Busybox собирается относительно uClibc и все чуки-пуки...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...