Содержание

Часто задаваемые вопросы для ОС Linux

Какой логин и пароль

Логин root, пароля нет или root. Т.е. платы поставляются без пароля для учётной записи суперпользователя, не делайте так дома! Задайте пароль командой passwd.

Настройки последовательного порта

В консоли U-Boot и Linux по умолчанию используются следующие настройки последовательного порта:

Как запустить Linux загрузчиком Redboot

Используйте загрузчик U-Boot.

Для того что бы запустить Linux вам необходимо иметь загрузчик записанный во Flash-память.

После включения системы с подключённым по последовательному порту терминалом (например, TerraTerm, HyperTerminal, Minicom, GtkTerm и т.д.) с соответствующими настройками. См. документацию на загрузчик Redboot.

Теперь можно загружать собранный образ Linux. По умолчанию, адрес загрузки ядра — 0x80000, ramdisk — 0x800000.

Для загрузки по Ethernet на хосте должен быть запущен http-сервер:

  1. Загрузка ramdisk.gz в память (IP-адрес хоста на котором находится http-сервер: 10.42.42.100, файл лежит в корне):
    load -r -v -b 0x800000 -m http -h 10.42.42.100 /ramdisk.gz
  2. Загрузка образа ядра zImage в память:
    load -r -v -b 0x80000 -m http -h 10.42.42.100 /zImage
  3. Запуск ядра Linux с указанием адреса и размера ramdisk (<size_of_ramdisk.gz_in_bytes> — размер ramdisk.gz в байтах), с передачей параметров ядра:
    exec -r 0x800000 -s size_of_ramdisk.gz_in_bytes -c "root=/dev/ram console=ttyAM0"

Для загрузки по последовательному порту с использованием протокола ymodem (показаны только пункты 1 и 2, 3-ий пункт такой же как и при загрузке по Ethernet):

  1. После ввода команды используйте пункт меню отправки файла (файл ramdisk.gz), где нужно выставить протокол ymodem:
    load -r -v -b 0x800000 -m ymodem
  2. После ввода команды используйте пункт меню отправки файла (файл zImage):
    load -r -v -b 0x80000 -m ymodem

Для работы с новым ядром Linux необходимо обновить Redboot (http://groups.google.com/group/tion_sbc/web/new_redboot.tar.gz).

Как записать загрузчик во Flash

Процедура записи пригодна для одноплатных компьютеров на базе Cirrus Logic EP93xx. Для одноплатных компьютеров на базе Marvell PXA270 требуется JTAG, см. OpenOCD.

Для записи Flash по последовательному порту для EP93xx используется консольная утилита download, см. download. Параметры утилиты download можно посмотреть выполнив download -h.

  1. Убедитесь что перемычка BOOT0 снята
  2. Соедините первый последовательный порт одноплатного компьютера с хост-компьютером
  3. На хост-компьютере запустите download u-boot.bin, где u-boot.bin — файл записываемого загрузчика:
    Waiting for the board to wakeup...
  4. Выключите и включите питание или нажмите кнопку сброса:
    Downloading first boot code...(100%)
    Program the nor FLASH.
    Flash Manufacture ID:001f, Device ID:01c8
    Programming the FLASH...(100%)
    Successfully programmed 'u-boot.bin'.
    
  5. Оденьте перемычку BOOT0
  6. Выключите и включите питание или нажмите кнопку сброса

Где можно взять обновления для Linux или новые версии инструментов для Тион, Тион-Про, Тион-Про2

Как изменить ramdisk, как использовать CF-карту в качестве КФС

См. также: CF-карта памяти как КФС.

Перенести содержимое ramdisk.gz на CF-карту:

  1. Распаковать ramdisk.gz:
    gunzip ramdisk.gz
  2. Создать директорию:
    mkdir my_ramdisk
  3. Примонтировать (как суперпользователь root) распакованный образ КФС:
    mount -o loop ramdisk my_ramdisk

Если вы хотите изменить содержимое ramdisk, то после внесения изменений в директории my_ramdisk:

  1. Размонтируйте директорию:
    umount my_ramdisk
  2. Сожмите образ:
    gzip -9 ramdisk

Если вы хотите переместить КФС на CF-карту, то скопируйте содержимое директории my_ramdisk на предварительно отформатированную (файловая система ext2 или ext3) CF-карту, например:
cp -a my_ramdisk/* /media/cf, где /media/cf — путь к примонтированной CF-карте.

Теперь можно установить CF-карту на одноплатный компьютер и запустить ядро Linux с командной строкой подобно этой:
"root=/dev/hda1", где /dev/hda1 — ваше IDE-устройство. После загрузки ядра, оно будет использовать КФС на CF-карте (если не используется ramdisk).

Не работает тестовая программа

Программа не запускается

Возможны следующие причины:

  1. Программа должна быть скомпилирована с библиотеками тех же версий, что расположены в КФС платы, или скомпилирована статически (-static)
  2. При сборке программы учтите бинарный интерфейс используемого компилятора OABI/EABI
  3. Перед запуском программы учтите её права на исполнение chmod a+x test

Программа запускается

Написал пример:

#include <stdio.h>

int main()
{
  printf("Hello world\n");
  return 0;
}

Собрал:
arm-linux-gcc -Wall -O2 -o test main.c

Компилируется без ошибок и запускается на выполнение, но ничего не выводит.


Так как в системе уже есть программа с именем test, она и запускается если указан не абсолютный путь к программе (см. which test). Следует запускать программу по абсолютному пути или из текущей директории как ./test.

Почему в загрузчике Redboot не работает сеть

Убедитесь в том, что при конфигурации загрузчика Redboot (команда fconfig -i) вы правильно инициализировали параметры сети.

Пример типичной конфигурации Redboot:

Run script at boot: false
Use BOOTP for network configuration: false
Gateway IP address: 10.42.42.1
Local IP address: 10.42.42.201
Local IP address mask: 255.255.255.0
Default server IP address: 10.42.42.1
Set eth0 network hardware address [MAC]: true
eth0 network hardware address [MAC]: 0x0E:0x00:0x00:0xEA:0x18:0xF0
GDB connection port: 9000
Force console for special debug messages: false
Network debug at boot time: false

После установки настроек необходимо произвести перезагрузку.

Почему в OPIE (или другом приложении Linux) touch screen работает неправильно

См. калибровка сенсорного экрана.

Изображение на экране не качественное

Измените настройки для Linux и/или U-Boot в соответствии с типом экрана.

Собранные образы ядра Linux для EDB9315 не работают на моей плате

Используйте образы для EDB9312. EDB9315 подразумевает отладочную плату от Cirrus Logic. На ней стоит процессор EP9315, но есть отличия в схеме по сравнению с платами серии Тион.

Например, на платах серии Тион для сигнала CS SDRAM используется CS3, а на EDB9315 — CS0, следовательно при загрузке ядра Linux память будет сконфигурирована неверно. Это касается загрузчиков, Windows CE и т.д.

См. также cайт ЗАО "ЗЭО".