środa, 12 maja 2010

Sheeva #2

Zainstalowałem Debiana Lenny na karcie SD (Patriot 16Gb class 6) wg. wskazówek ze strony Manually unpacking a tar ball of Debian on SheevaPlug, ale nie poszło gładko. Ponieważ boot loader mojej szewy był w wersji wcześniejszej od zalecanej 3.4.19, zatem kierując się wskazówkami ze strony Upgrading SheevaPlug's U-Boot, rozpocząłem od wgrania nowego U-boata stosując technikę wykorzystującą USB (a nie serwera TFTP). W rezultacie już za pierwszym podejściem zbrikowałem szewę na amen.

Na szczęście się okazało, że wgranie nowego programu rozruchowego i systemu do pamięci NAND nie jest aż takie trudne i sprowadza się do pobrania czegoś co się nazywa SheevaPlug Installer. Relewantna informacja zaczyna się od śródtytułu How to install 1.0?. Należy mianowicie:

  1. pobrać i rozpakować archiwum .tar.gz
  2. przegrać zawartość katalogu installer do katalogu głównego PenDrive'a
  3. w katalogu uboot/uboot-env znaleźć pliki uboot-nand-custom.txt oraz uboot-mmc-custom.txt i poprawić MAC adres odczytując go z obudowy SheevaPlug.
  4. Połączyć SheevaPlug z komputerem za pomocą kabla miniUSB oraz włączyć urządzenie. Z poziomu katalogu głównego instalatora uruchomić program (jako root):

    php ./runme.php nand

    Odczekać aż wszystko się nagra. U mnie nie do końca działa: system się ładuje ale root nie może się zalogować... Pech...

Ponieważ ostatecznie chcę uruchomić system z karty SD, a nie wbudowany z pamięci NAND, to powyższa niedogodność jest w sumie bez znaczenia. Ważne że U-boat jest zaktualizowany do wersji 3.4.19. Można zatem instalować Debiana.

Kartę podzieliłem na partycje i sformatowałem zgodnie z opisem, tyle że zamiast Ext2 użyłem Ext3, co okazało się błędem (ale o tym za chwilę). Następnie pobrałem archiwum z systemem:


wget http://people.debian.org/~tbm/sheevaplug/lenny/base.tar.bz2
wget http://people.debian.org/~tbm/sheevaplug/lenny/base.tar.bz2.asc

Zamontowałem kartę i skopiowałem co trzeba


tar -xjvf ~/base.tar.bz2

Ustawiłem środowisko programu ładującego:


setenv mainlineLinux yes
setenv arcNumber 2097
saveenv
reset

oraz


setenv bootargs_console console=ttyS0,115200
setenv bootargs_root 'root=/dev/mmcblk0p2'
setenv bootcmd_mmc 'mmcinit; ext2load mmc 0 0x01100000 /uInitrd; ext2load mmc 0 0x00800000 /uImage'
setenv bootcmd 'setenv bootargs $(bootargs_console) $(bootargs_root); run bootcmd_mmc; bootm 0x00800000 0x01100000'
saveenv

Teraz run bootcmd i kicha... System nie może odnaleźć partycji systemowej. Próbowałem różnych kombinacji, nic... Wreszcie dla świętego spokoju, sformatowałem kartę jako Ext2 a nie Ext3, tak jak jest to zalecane. Zadziałało... Morał: nie kombinować....

Teraz zrobiłem to wszystko co jest zalecane na stronie Manually unpacking a tar ball of Debian on SheevaPlug, tj.:


rm /etc/ssh/ssh_host*
ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key -N ""
ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N ""

## Synchronizacja czasu
ntpdate pool.ntp.org

apt-get dist-upgrade

## Ustawienie daty/czasu
dpkg-reconfigure tzdata

## wybieram (spacją) pl_PL.utf8 pl_PL.88592, domyślnie pl_PL.utf8
dpkg-reconfigure locales

## zmienić nazwę hosta dodając ją do
vi /etc/hostname

A ponadto:


apt-get install ntp
apt-get install fuse-utils
apt-get install libxml-dom-xpath-perl libxml-dom-perl
apt-get install vim apache2
apt-get install php5 php5-cli
apt-get install make zip unzip

Na razie wystarczy...

Dopisane 20 maja 2010: Na podstawie zaleceń ze strony Debian Lenny -- installing Apache2 and PHP5 doinstalowuję porządnie PHP.

Dopisane 20 maja 2010: Formatowanie karty 8Gb za pomocą gparted. Partycja #1: 102 Mb (boot), partycja #2: 7044 Mb (system), partycja #3: ok. 500 Mb (swap). Za pomocą fdiska dodałem flagę boot do pierwszej partycji:


/sbin/fdisk /dev/sdc
a # toggle a bootable flag
1 # pierwsza partycja
w # zapisz tabelę partycji

Wczoraj próbowałem kartę SDHC Patriot LX (klasa 10), ale przesadziłem:


SDHC found. Card desciption is:
Manufacturer: 0x27, OEM "PH"
Product name: "SD08G", revision 3.0
Serial number: 2952790466
Manufacturing date: 4/2010
CRC: 0x00, b0 = 0

** Unable to read "/uInitrd" from mmc 0:1 **

** Unable to read "/uImage" from mmc 0:1 **
## Booting image at 00800000 ...
Bad Magic Number

Wygląda że Patriot LX 8Gb (class 10) is one of them, czyli z gatunku tych z którymi U-boat nie działa.

Brak komentarzy:

Prześlij komentarz