Debian na WD My Cloud (2 gen)

Po kilku próbach i pomocy na forum.doozan.com udało mi się uruchomić debiana na WD My Cloud (2 generacja). Bodhi dodał właśnie wsparcie dla tej maszyny więc warto je przetestować.

Skąd w moich rękach ten sprzęt? Jakiś czas temu kupiłem recertyfikowany na stronie WD. W środku był dysk WD Red 3TB, ale z białą etykietą i informacją, że jest recertyfikowany. Trafił na półkę z mało ważnymi danymi, a obudowa leżała i się kurzyła. A że w moim NSA310 powoli się kończy dysk – czas na nową zabawkę.

W tym momencie do instalacji nie jest wymagane rozebranie obudowy. Naszego Debiana zainstalujemy obok oficjalnego oprogramowania systemowego i będzie możliwy w miarę prosty powrót do oryginalnego oprogramowania. Musi ono zatem (oprogramowanie systemowe) być w pełni funkcjonalne. Gdyby urządzenie miało pusty dysk lub sprawiało inne problemy, można skorzystać z poradnika przywracania ze strony http://fox-exe.ru/WDMyCloud/WDMyCloud-Gen2/
Warto przygotować sobie równie niezbyt duży pendrive sformatowany systemem FAT32, aby zarchiwizować niektóre pliki i ułatwić powrót do starego oprogramowania

Trzeba jednak wziąć pod uwagę, że gdy coś pójdzie „mocno nie tak”, trzeba będzie wyjąć z obudowy dysk lub podłączyć się przez port szeregowy. Na płycie nie ma wlutowanych pinów, więc trzeba będzie posłużyć się lutownicą.
W poniższym zdjęciu użyłem pliku ze strony http://fox-exe.ru/WDMyCloud/WDMyCloud-Gen2/Photo/

Rozpoczynamy instalację

1. Włączamy SSH

W panelu administracyjnym wchodzimy w Ustawienia, Sieć i włączamy Usługę sieciową SSH (jeśli jeszcze nie jest włączona). Akceptujemy warunki użycia, ustawiamy hasło (bezpieczniej gdyby było inne niż pozostałe hasła na urządzeniu) i przechodzimy Dalej
Teraz możemy zalogować się na urządzenie przez protokół SSH np przy użyciu programu PuTTY. Warto pamiętać, że login użytkownika to sshd a nie root

2. Potrzebne pliki i miejsce na dysku

Pliki potrzebne do instalacji możemy pobrać na komputerze i zapisać na pendrivie lub pobrać bezpośrednio na NAS, jeśli jest podłączony do sieci.

Dysk w WD MyCloud podzielony jest na partycje, z których partycja numer 2 jest największa i na niej tworzone są pliki i udziały. Partycja ta zamontowana jest w folderze /mnt/HD/HD_a2/ i z tej przestrzeni dyskowej będziemy korzystać.
Z czasem na forum.doozan.com pojawią się nowsze wersje, więc trzeba będzie odpowiednio zmodyfikować odnośniki.

Jeśli chcecie pobrać pliki na pendrive, postępujcie zgodnie z poleceniami punktu Pobieranie plików na komputer i zapisywanie na pendrivie lub pomińcie ten punkt i przeskoczcie do punktu Pobieranie plików z internetu

2a. Pobieranie plików na komputer i zapisywanie na pendrivie

Korzystając z naszego ulubionego (lub akurat dostępnego) systemu operacyjnego pobieramy pliki

Jądro 5.10.7
System Debian Buster

i kopiujemy je do katalogu głównego naszego pendrive. Jeśli wszystko przebiegnie prawidłowo, podłączamy pendrive do WD MyCloud. W moim przypadku po podłączeniu pendrive jest on automatycznie montowany do folderu /mnt/USB/USB_b1
Wykonujemy polecenia, żeby przekopiować te pliki na dysk.

cp /mnt/USB/USB1_b1/Debian-5.2.9-mvebu-tld-1-rootfs-bodhi.tar.bz2 /mnt/HD/HD_a2/
cp /mnt/USB/USB1_b1/linux-5.10.7-mvebu-tld-1-bodhi.tar.bz2 /mnt/HD/HD_a2/
cd /mnt/HD/HD_a2/

2b. Pobieranie plików z internetu

Jeśli tego nie zrobiliście wcześniej, dobrym pomysłem będzie podłączenie pendrive do urządzenia. Pozwoli to uniknąć komplikacji i ułatwi naprawę systemu.

Aby pobrać pliki z internetu i zapisać je na dysku wykonujemy polecenia

cd /mnt/HD/HD_a2/
wget https://www.dropbox.com/s/h25v2c4p867lxjb/linux-5.10.7-mvebu-tld-1-bodhi.tar.bz2 --no-check-certificate
wget https://www.dropbox.com/s/kt496q2lnb4hx7y/Debian-5.2.9-mvebu-tld-1-rootfs-bodhi.tar.bz2 --no-check-certificate

3. Rozpakowujemy archiwa

Zakładam, że wszyscy już podłączyli już pendrive, a jeśli nie, to zrobią to teraz!
Jeśli nie chcecie go użyć, będzie dużo trudniej coś naprawić po nieudanej instalacji!

3a. Archiwizacja ważnych plików

Proponuję wykonać kopię plików na pendrivie. W tym momencie jeszcze można się wycofać 😉
Pendrive jest zamontowany w folderze /mnt/USB/USB_b1
Tworzymy na nim folder boot i kopiujemy oryginalne jądro, ramdysk i kawałek pamięci NAND w której zapisane są numer seryjny i MAC karty sieciowej

mkdir /mnt/sda3
mount /dev/sda3 /mnt/sda3
cp /mnt/sda3/boot/uImage /mnt/USB/USB1_b1/boot/uImage.bak
cp /mnt/sda3/boot/uRamdisk /mnt/USB/USB1_b1/boot/
uRamdisk.bak
dd if=/dev/mtdblock0 bs=64k skip=15 of=/mnt/USB/USB1_b1/boot/uboot.env

3b. Dekompresja archiwów.

tar xjvf Debian-5.2.9-mvebu-tld-1-rootfs-bodhi.tar.bz2
tar xjvf linux-5.10.7-mvebu-tld-1-bodhi.tar.bz2 -C boot/
tar xvf  boot/linux-dtb-5.10.7-mvebu-tld-1.tar -C boot/

4. Chroot i jądro

Wskakujemy na moment w chroot-a, aby możliwe było postępowanie zgodnie z poradnikiem

mount -t proc none /mnt/HD/HD_a2/proc/
mount -o bind /dev /mnt/HD/HD_a2/dev/
chroot /mnt/HD/HD_a2/

Jesteśmy w chroocie. Po kolei wydajemy polecenia

sed -i '/rootfs/c\/dev/sda2 / ext4 noatime,errors=remount-ro 0 1' /etc/fstab

cd /boot 
apt-get remove flash-kernel  
dpkg -i linux-image-5.10.7-mvebu-tld-1_1.0_armhf.deb

cp -a zImage-5.10.7-mvebu-tld-1 zImage.fdt  

cat dts/armada-375-wd-mycloud-gen2.dtb >> zImage.fdt 

mkimage -A arm -O linux -T kernel -C none -a 0x00008000 -e 0x00008000 -n Linux-5.10.7-mvebu-tld-1 -d zImage.fdt uImage 

mkimage -A arm -O linux -T ramdisk -C gzip -a 0x00000000 -e 0x00000000 -n 
initramfs-5.10.7-mvebu-tld-1 -d initrd.img-5.10.7-mvebu-tld-1 uInitrd

sed -i '/mtd1/c\/dev/mtd0 0xf0000 0x10000 0x10000 1' /etc/fw_env.config

fw_setenv bootargs 'root=/dev/sda2 console=ttyS0,115200'

exit

5. Kopiowanie jądra i initrd

Teraz musisz zdecydować gdzie chcesz przechowywać debianowe jądro.
Jądro może być umieszczone na pendrivie lub na dysku twardym.
Ponieważ powrót do oryginalnego oprogramowanie systemowego jest w miarę prosty, proponuję wykonanie kopii plików na pendrivie a nas zawsze będzie uruchamiał Debiana

cp /mnt/HD/HD_a2/boot/uImage /mnt/sda3/boot/uImage
cp /mnt/HD/HD_a2/boot/uInitrd /mnt/sda3/boot/uRamdisk
cd /
umount /mnt/HD/HD_a2/proc
umount /mnt/HD/HD_a2/dev
umount /mnt/USB/USB1_b1
umount /mnt/sda3
rm /mnt/sda3 -r
sync

Ostatnie kroki

Już prawie gotowe. Odłączamy pendrive i resetujemy urządzenie.
Możemy to „wyklikać” w panelu administracyjnym lub wykonać polecenie

reboot

Czekamy chwilę i …

Witamy w Debianie!

Linksys WUMC710 – rekompilacja źródeł

Do poprawnej rekompilacji źródeł firmware ze strony http://downloads.linksys.com/downloads/gplcode/1224702713296/WUMC710_v1.0.02_build_3_GPL.tar.gz potrzebujemy Fedory 8 i narzędzia trx np. zOpenwrt

Procedura instalacji jest opisana w pliku Readme, ale utworzony obraz nie działa z powodu załączenia źle działającej wersji trx

Aby zbudować popranie działający plik firmware musimy mieć pliki vmlinuz i target.squashfs. Robimy z nich przy pomocy narzędzia trx z openwrt plik wynikowy i na koniec dodajemy nagłówek narzędziem auto_add_header

A po co to wszystko ? A po to, żeby włączyć telnet. Wystarczy usunąć kilka znaków w pliku services.c przed kompilacją

Własna kompilacja firmware do WRV210

Rozkręciłem Linksysa WRV210 (z wgranym softem brandowanym jak Cisco Small Business) i z nudów zacząłem szukać portu szeregowego. W internecie jest dużo niekompletnych danych o tym urządzeniu. Co o nim wiadomo?

  • procesor Realtek 8651B @200MHz
  • pamięć 32MB
  • flash 8MB
  • kernel 2.4.26-uc0

Serial:

WRV210 serial portWymagany konwerter RS232-TTL . Ustawienia portu 38400-N-1

Dostałem od Cisco źródła do WRV210 w wersji 2.0.1.5. Kompilacja na Fedorze 8 przechodzi bez problemu.

Następnym krokiem jest uruchomienie serwera telnet. W pliku Vendors/Realtek/RTL865XB/rc dodajemy na końcu /sbin/utelnetd -d i kompilujemy wszystko za pomocą polecenia install_WRV210_GPL.sh all

Po skończonej kompilacji mamy plik firmware.img w folderze images

Fakturra

W związku z planowanym urlopem mam pomysł na zagospodarowanie czasu na stworzenie programu do fakturowania:

Założenia:
– technologia: XUL + javascript +mozStorage
– wolna licencja
– dokumentacja i źródła dostępne online
– prosta obsługa 😉

Za kilka dni będę wiedział czy uda się osiągnąć jakąś racjonalną wydajność i czy projekt się rozwinie