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:
.tar.gz
installer
do katalogu
głównego PenDrive'a
uboot-nand-custom.txt
oraz
uboot-mmc-custom.txt
i poprawić MAC adres odczytując go z obudowy
SheevaPlug.
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ą
fdisk
a 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.