Pierwsza część artykułu dotycząca opisu urządzenia znajduje się w wątku
viewtopic.php?f=39&t=1219Druga część artykułu dotycząca instalacji Debiana znajduje się w wątku
viewtopic.php?f=39&t=1223Czwarta część artykułu dotycząca instalacji ArchLinuxa znajduje się w wątku
viewtopic.php?f=39&t=1232Iomega IConnect - Wireless Data Station - instalacja OpenWrtDo instalacji OpenWrt niezbędne są następujące elementy:
- serwer tftpd
- kabel szeregowy
- połączenie ethernet z serwerem tftpd.
Instalacja odbywa się dwustopniowo: najpierw wczytujemy kernel, zapisujemy go we flash, następnie uruchamiamy system w pamięci ram i przenosimy go do pamięci flash. W stosunku do "normalnego" OpenWrt tak zrobiony system ma inaczej zorganizowany system plików: nie ma tu podziału na squashfs i jffs, nie ma pojęcia overlay. Cały system plików jest zapisywalny bo został zrealizowany na podstawie systemu UBIFS, każdy plik i pakiet można usunąć. Do dyspozycji jest cała przestrzeń flash (500MB).
Instalacja OpenWrt nie sprawia większego kłopotu, należy jednak pamiętać że pochodzą one z trunka - gdzie co chwilę się coś zmienia, więc niektóre element mogą działać inaczej.
Prezentowane poniżej pliki to moje (obsy) obrazy, przygotowane z aktualnego trunka. Zawierają obsługą systemu, LED, RTC, system plików vfat/ext4, block-mount, sambę, ftp oraz umożliwiają uruchomienie interfejsu radiowego (zarówno w trybie AP jak i AP Klient). Szczegółowa zawartość obrazu dostępna jest pod adresem:
http://eko.one.pl/?p=openwrt-iconnect1. Ustawiamy na stałe adres komputera na 192.168.1.100
2. Uruchamiamy serwer tftp (pod linuksem np. atftpd), umieszczany w nim dwa pliki:
uImage oraz
system plików.
3. Podłączamy kabel szeregowy i sieciowy do iConnect, uruchamiamy go i przerywamy bootloader przez naciśnięcie dowolnego przycisku.
4. Upewniamy się, że mamy ustawione zmienne środowiskowe:
- arcNumber na 1682
- mainlineLinux na yes
Powinny być domyślnie, jeżeli nie to wystarczy po prostu je wprowadzić:
setenv mainlineLinux yes
setenv arcNumber 1682
saveenv
reset
i ponowić punkt 3.
4. w bootloaderze należy wpisać polecenia:
setenv ipaddr 192.168.1.1; setenv serverip 192.168.1.100
setenv loadaddr 0x2000000; setenv console 'console=ttyS0,115200 panic=30'
setenv bootargs_root 'ubi.mtd=2 root=ubi0:rootfs rootfstype=ubifs rw'
setenv image_name openwrt-kirkwood-uImage
setenv root_name openwrt-kirkwood-Iconnect-squashfs.uimg
setenv update_image 'tftpboot $(loadaddr) $(image_name); nand erase 0x100000 0x200000; nand write $(loadaddr) 0x100000 0x200000'
setenv load_firmware 'tftpboot $(loadaddr) $(root_name); setenv bootargs $(console) root=/dev/ram0 rw; bootm $(loadaddr)'
setenv bootcmd 'setenv bootargs $(console) $(bootargs_root); nand read $(loadaddr) 0x100000 0x200000; bootm $(loadaddr)'
saveenv
Jeżeli ktoś ma problem z łamaniem linii to wszystkie polecenia są zapisane w pliku
http://ecco.selfip.net/kirkwood/iconnec ... penwrt.txt5. W bootloaderze należy wpisać polecenie
run update_image
Wczyta to z serwera tftp obraz kernela i zapisze go do pamięci flash
6. W bootloaderze należy wpisać polecenie
run load_firmware
Uruchomi to OpenWrt w pamięci urządzenia.
7. Ostatni krok - zainstalowanie obrazu w pamięci urządzenia, w systemie plików UBIFS. Aby ułatwić zadanie, został przygotowany odpowiedni skrypt, który wykonuje to za nas, czyli w uruchomionym poprzednio systemie należy po prostu wpisać polecenie:
# install2ubi
Po udzieleniu odpowiedzi "y" na pytanie o instalacje we flash zostaniemy zapytani o adres IP interfejsu RJ45. Naciskamy enter jeżeli zostawiamy domyślny (192.168.1.1) lub podajemy swój własny. Uwaga: skrypt nie sprawdza poprawności adresu. Jeżeli wpiszemy niepoprawny adres może być później problem z zalogowaniem się do urządzenia.
Update obrazu wykonuje się w podobny sposób: należy odpowiednie pliki umieścić na serwerze tftp, a następnie ponowić operacje od kroku 5 (załadowanie kernela i później systemu plików).
Samodzielna kompilacjaUWAGA: O ile instalacja w/w sposobem jest nadal możliwa, o tyle proces samodzielnej kompilacji jest już nieaktualny z powodu zmian w trunku. Poniższe informacje zostały zachowane dla celów informacyjnych.
Zmiany dla iConnect dostępne są na liście deweloperskiej OpenWrt:
https://lists.openwrt.org/pipermail/openwrt-devel/2011-August/012098.html. Tam też zawarty jest skrypt
install2ubi który robi podobną czynność jak skrypty dla debiana:
#!/bin/sh
read -p "Do you want to install currently running firmware to NAND flash using UBI, [y/n]?" input
if [ "${input}" == "y" ]; then
echo "Performing install into NAND flash using UBI..."
ubiformat /dev/mtd2 -s 512 && ubiattach /dev/ubi_ctrl -m 2 && ubimkvol /dev/ubi0 -N rootfs -m && mount -t ubifs ubi0:rootfs /mnt
cd /; ls -1 | grep -vE "proc|sys|tmp|mnt" | awk '{print "cp -a "$1" /mnt/"}' | sh; mkdir -p /mnt/proc /mnt/sys /mnt/tmp /mnt/mnt; cd -
echo "Performed install into NAND flash using UBI, you may reboot into new system."
else
echo "Skipping install into NAND flash."
fi
Czyli po prostu przenoszą działający system na pamięci flash, formatując wcześniej ją na ubifs.
Ważna informacja: łatki z OpenWrt spodziewają się, że arcNumber dla iConnect to 2870 a nie 1682 jak jest standardowo (na podstawie tego numeru rozróżniane są platformy). Więc przed samodzielną instalacją należy albo zmienić to w źródłach kernela (plik
arch/arm/tools/mach-types, tak jest zrobione to w moich obrazach) albo ustawić zmienną środowiskową na arcNumber na 2870.
AktualizacjaPowyższy opis dotyczy wgrania jednego z pierwszych obrazów jakie powstały przed oficjalnym wsparciem OpenWrt. Obecnie można posłużyć się standardowymi obrazami z OpenWrt, proces instalacji przedstawiony jest na
wiki OpenWrt.org.