Содержание
Описание работы модуля Blueshark v4.2 с Wifi модулем LSR Tiwi-R2
Все действия, описанные на данной странице выполнялись в среде операционной системы Ubuntu Linux 11.04
Общее описание
Примечания
- Требуется последняя версия u-boot 2011.12-r3
- Ядро Linux версии 3.0.17-115с
- Утилиты iwlist iwconfig
Всё необходимое ПО было собрано с помощью скриптов Angstrom Linux:
http://www.angstrom-distribution.org/building-angstrom
Первоначально целевая платформа для сборки Beagleboard, затем ПО было портировано на BlueShark v4.2.
Что в итоге получилось:
u-boot
- SPL версия, включающая код X-loader (MLO)
- поддержка чтения EUI-48 (MAC-адреса) из EEPROM на модуле BlueShark
- передача MAC-адреса ядру Linux через boot-аргументы
- настройки PIN MUX процессора для работы WIFI модуля LSR Tiwi-R2 в режиме SDIO
Пресобранная версия u-boot 2011.12-r3:
Файл | Размер, кБайт |
---|---|
MLO | 40к |
u-boot.img | 271к |
Linux
- EUI-48 (MAC-адреса) из EEPROM на модуле BlueShark передается сетевому контроллеру Micrel KSZ8851
- Загружается WIFI модуль LSR Tiwi-R2
- Wifi модулю назначается MAC-адрес, сгенерированный на основе Die ID процессора (уникальный)
Примечание
Обнаружена регрессия скорости обмена сетевого контроллера Micrel KSZ8851 после обновления ядра до 3.0.17. В ядре 2.6.32 скорость обмена была выше на 25%. Сравнение скорости обмена:
Обмен | 2.6.32 | 3.0.17 |
Download | 1 МБ/сек | 750 кБ/сек |
---|---|---|
Upload | сведений нет | сведений нет |
Поэтому, если сетевой обмен является для вас критичной задачей, то мы рекомендуем использовать ядро 2.6.32. Однако ядро 2.6.32 не поддерживает беспроводной контроллер TI wl1271, установленный в модуль LSR Tiwi-R2.
Пресобранная версия Linux 3.0.17-115с:
Файл | Размер, кБайт |
---|---|
uImage | 3277к |
modules-3.0.17+-r115c-beagleboard.tgz | 11000k |
defconfig | 85k |
Файловая система
Для тестовых целей была собрана файловая система с консольным интерфейсом пользователя. Данная файловая система не имеет необходимых файлов загрузки для Wifi модуля, поэтому их необходимо скачать и установить вручную в данную файловую систему.
Пресобранная версия файловой системы с консольным интерфейсом:
Файл | Размер, кБайт |
---|---|
console-image-beagleboard.tar.bz2 | 14000к |
Подготовка SD карты
В последней версии uboot изменили процедуру загрузки ядра, поэтому данное описание следует прочитать.
На SD карте должно быть два раздела: fat32 и ext2. В раздел fat32 записывают файлы MLO и u-boot.img. В раздел ext2 записывают ядро, файловую систему, модули ядра и бинарные загрузчики для Wifi чипа модуля Tiwi-R2.
Форматирование разделов карты SD
- fat32
sudo mkfs.vfat -F 32 -n "boot" /dev/sdc1
- ext2
sudo mke2fs -j -L "Angstrom" /dev/sdc2
Также вы можете воспользоваться скриптом mkcard.txt и передать ему в качестве аргумента файл устройства SD карты, например, /dev/sdc или /dev/sdd.
Запись файлов на карту
Чтобы записать файлы на SD карту необходимо подмонтировать разделы карты к директориям на жестком диске компьютера.
Для этого создадим необходимые директории:
sudo mkdir /media/boot sudo mkdir /media/rootfs
Подключение разделов карты:
sudo mount -t vfat /dev/sdc1 /media/boot sudo mount /dev/sdc2 /media/rootfs
Перед записью MLO файла необходимо обязательно отформатировать первый раздел на SD карте!
1) Первым файлом, записанным на раздел fat32 должен быть MLO
sudo cp MLO /media/boot
2) Затем записываем файл загрузчика u-boot:
sudo cp u-boot.img /media/boot
3) Сначала запишем файловую систему
cd /media/rootfs sudo tar xjf <path>/console-image-beagleboard.tar.bz2
4) Модули ядра
sudo tar xzf <path>/modules-3.0.17+-r115c-beagleboard.tgz
5) Бинарные загрузчики Wifi чипа В данной конкретной инсталляции необходимые загрузчики уже содержаться в архиве с модулями, но они могут устареть и вам потребуются новые. Последнюю версию бинарных загрузчиков для чипа wl1271 скачивают так:
git clone git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
Вы получите директорию с большим количеством различных загрузчиков для самых разных беспроводных чипов. Нас интересует только директория ti-connectivity, которую необходимо скопировать в директорию на карте SD: /lib/firmware. Для этого выполним команду:
sudo cp -a <path>/ti-connectivity /media/rootfs/lib/firmware/
Теперь надо не забыть отмонтировать оба раздела SD карты и можно загружать плату:
cd sudo umount /dev/sdc1 /dev/sdc2
Настройка сетевых интерфейсов в Linux
В данном разделе приводится описание по конфигурированию сетевых интерфейсов вручную. Если в системе установлен NetworkManager, то данная утилита настроит сетевые интерфейсы сама.
Ethernet
udhcpc -i eth0