Canon EOS 400D hack

Bardzo często producenci sprzętu ze względów marketingowych czy też licencyjnych blokują na poziomie oprogramowania część funkcjonalności. Funkcje te są dodawane do wyższych/następnych modeli. Zdarza się, że niewielkie modyfikacje firmware’u umożliwiają dostęp do nich. Podobnie było w przypadku posiadanej przeze mnie nagrywarki DVD+R Liteon LDW-401S, gdzie zmieniając kilka bajtów można było uzyskać 400zł droższy model 411S/811S z zapisem na płytach DVD-R (minusach) i dwukrotnie wyższą prędkością.

Kilka dni temu natknąłem się na posta dotyczącego modyfikacji oprogramowania lustrzanki cyfrowej – Canon EOS 400D, którą posiadam. Dzięki owej modyfikacji uzyskujemy dostęp do pomiaru punktowego! oraz znacznie większej liczby wyboru czułości aż do ISO 3200. Oprócz fabrycznie dostępnych ISO 100, 200, 400, 800, 1600, mamy dodatkowo do dyspozycji – ISO 80, 125, 160, 250, 320, 500, 640, 1000, 1250, 2000, 2500, 3200.

Proces modyfikacji jest dość prosty i nie trwa dłużej niż 10 minut. Polega on na drobnym zmodyfikowaniu oprogramowania aparatu i przygotowaniu karty pamięci. Wymagania to wersja oprogramowania w aparacie 1.1.1, czytnik kart CF, naładowana bateria.

To-do dla kart do 4GB:

1. Formatujemy kartę jako FAT16 (szybkie formatowanie)
2. Wrzucamy na nią plik testfir.fir.
3. Wkładamy do aparatu, najpierw upewniamy się, że posiadana przez nas wersja firmware’u to 1.1.1, następnie uruchamiamy aktualizację. Ekran LCD aparatu zgaśnie, odczekujemy ok. minuty, wyłączamy aparat, wyciągamy baterie i kartę.
4. Wkładamy kartę do czytnika, usuwamy z niej plik testfir.fir. Uruchamiamy program CardTricks, wskazujemy naszą kartę, po prawej stronie zaznaczamy checkbox przy opcji „CF boot sector” i klikamy w button „Make Bootable” w lewej części.
5. Pobieramy aktualny plik AUTORUN.BIN, usuwamy mu datę z nazwy i kopiujemy go na kartę CF.
6. Wkładamy kartę do aparatu, podczas uruchamiania zamiga niebieska dioda na klawiszu PRINT.

Czułość zmieniamy klawiszem PRINT po wcześniejszym wyborze domyślnej wartości.
100 – 100 / 125 / 160 / 80
200 – 200 / 250 / 320
400 – 400 / 500 / 640
800 – 800 / 1000 / 1250
1600 – 1600 / 2000 / 2500 / 3200
Natomiast po wejściu w wybór pomiaru, naciskając na PRINT aktywujemy pomiar punktowy.

Modyfikację polecam najbardziej ze względu na pomiar punktowy, którego najbardziej brakowało mi w tym aparacie, chociaż ISO 3200 również czasami się przydaje.

Jeśli macie inny aparat Canona, to tutaj możecie znaleźć informacje o dostępnych modyfikacjach.

UPDATE: Dwukrotne szybkie naciśnięcie przycisku wyboru punktu do AF, a następnie naciskanie PRINT, pozwala na zmianę 42 „szablonów” AF (wybranie kilku punktów np. bez prawej strony kadru).

Odblokowanie Modemu Huawei E156G

Jakiś czas temu znajomy podrzucił mi modem HSDPA – Huawei E156G, w celu sprawdzenia dlaczego nie chce działać z kartą Plusa. Modem ten został sprowadzony z UK. Po zainstalowaniu sterowników i włożeniu karty Plusa, pomimo że przejawiał właściwe oznaki życia, to zalogowanie do sieci nie było możliwe. Diagnoza była bardzo prosta i bardzo szybka – simlock na macierzystą brytyjską sieć „3″. Zacząłem szukać rozwiązania na Google’ach, jak się pozbyć tego zabezpieczenia. Jedynym sposobem rozwiązania tego problemu jest odblokowanie przy użyciu kodu NCK. Można go uzyskać na podstawie numeru IMEI, jednakże algorytm nie jest dostępny publicznie. Na wielu stronach internetowych i portalach aukcyjnych jest mnóstwo ofert, które za opłatą udostępniają właściwe kody.
Na szczęście trafiłem na GSM-Forum, znajduje się tam post – Huawei MDM Unlocking codes Request [ONLY HERE], w którym wystarczy podesłać numer IMEI swojego modemu Huawei i po kilku minutach za darmo otrzymujemy odpowiedź w postaci dwóch kodów.


Pierwszy służy do ściągnięcia simlocka, natomiast drugi pozwala na zmianę oprogramowania modemu.
W celu odblokowania należy posłużyć się programem Huawei Modem Code Tool, gdzie wybieramy nasz modem z listy, wpisujemy otrzymany kod NCK (Ucode) i klikamy w Send Code.

Następnie można wykorzystać drugi kod, poszukać nowszego firmware’u i wgrać go do modemu, jednakże pozbędziemy się trwale oprogramowania dostarczonego przez operatora.
W moim przypadku soft sieci „3″ był bezużyteczny, więc zastąpiłem go o wiele nowszym oprogramowaniem producenta – Huawei, zawierającym sterowniki m.in. do Windows 7.

Bardzo współdzielony hosting miniCloud z OVH

Dzięki uprzejmości Jakuba Furmana miałem nieprzyjemność przyjrzeć się najnowszej ofercie hostingowej firmy OVH w technologii Cloud Computing. Więcej oficjalnych informacji możecie znaleźć na ich stronie.
Usługa w założeniu (również cenowo) ma być czymś pomiędzy serwerem wirtualnym (shared) a prywatnym (RPS – dedykowany serwer z współdzieloną przestrzenią dyskową).
O usługach firmy OVH pisał Mateusz matipl Kamiński na swoim blogu OVH: RPS czy lepiej dedyk?. Cloud Computing w wykonaniu OVH jest oparty na oprogramowaniu VMware. O ile testowany przez Mateusza RPS nie zachwycał, to sam nie wiem dla kogo jest usługa miniCloud.

W wersji testowej miniCloud dostajemy do dyspozycji 1 współdzielony rdzeń procesora,

CPU: Physical Processor ID: 0
CPU: L1 I cache: 32K, L1 D cache: 32K
CPU: L2 cache: 256K
CPU: L3 cache: 4096K
CPU0: Intel(R) Xeon(R) CPU E5504 @ 2.00GHz stepping 05
Brought up 1 CPUs
Total of 1 processors activated (3990.00 BogoMIPS).
TSC freq read from hypervisor : 1995.000 MHz
Detected 1995.000 MHz processor.

2 GB, podejrzewam, że również współdzielonej pamięci RAM,

Memory: 2054228k/2097152k available (10840k kernel code, 41028k reserved, 642k data, 444k init, 1187720k highmem)

oraz wycinek współdzielonej przestrzeni dyskowej o wielkości 5GB,

scsi0 : ioc0: LSI53C1030 B0, FwRev=01032920h, Ports=1, MaxQ=128, IRQ=17
scsi 0:0:0:0: Direct-Access VMware Virtual disk 1.0 PQ: 0 ANSI: 2
target0:0:0: Beginning Domain Validation
target0:0:0: Domain Validation skipping write tests
target0:0:0: Ending Domain Validation
target0:0:0: FAST-40 WIDE SCSI 80.0 MB/s ST (25 ns, offset 127)
sd 0:0:0:0: [sda] 10485760 512-byte logical blocks: (5.36 GB/5.00 GiB)

to wszystko wpięte do ich sieci, prawdopodobnie również współdzielonego łącza 10/100Mbit ze stałym niewspółdzielonym publicznym adresem IP.

W praktyce dostajemy serwer z własnym publicznym adresem IP, mamy pełną kontrolę nad konfiguracją systemu, możemy uruchomić na nim dowolne usługi. Niestety na tym kończą się zalety tej oferty. Wydajność zależy od tego co na swoich serwerach robią nasi „sąsiedzi”. Poza 5GB przestrzeni dyskowej nic innego nie jest gwarantowane.

Wydajność dysku konta, które testowałem była przeciętna.

/dev/sda1:
Timing cached reads: 5684 MB in 2.00 seconds = 2842.66 MB/sec
Timing buffered disk reads: 128 MB in 5.51 seconds = 23.24 MB/sec

Natomiast wydajność WWW (Debian/Apache2/mod_php5/MySQL), strona oparta na WordPressie:

Maximum connect burst length: 1

Total: connections 5 requests 10 replies 10 test-duration 101.368 s

Connection rate: 0.0 conn/s (20273.6 ms/conn, <=1 concurrent connections)
Connection time [ms]: min 3954.4 avg 20273.6 max 41364.4 median 15760.5 stddev 14426.6
Connection time [ms]: connect 1.3
Connection length [replies/conn]: 2.000

Request rate: 0.1 req/s (10136.8 ms/req)
Request size [B]: 68.0

Reply rate [replies/s]: min 0.0 avg 0.1 max 0.3 stddev 0.1 (17 samples)
Reply time [ms]: response 9910.1 transfer 226.1
Reply size [B]: header 482.0 content 32497.0 footer 2.0 (total 32981.0)
Reply status: 1xx=0 2xx=10 3xx=0 4xx=0 5xx=0

CPU time [s]: user 6.82 system 29.18 (user 6.7% system 28.8% total 35.5%)
Net I/O: 3.2 KB/s (0.0*10^6 bps)

Errors: total 0 client-timo 0 socket-timo 0 connrefused 0 connreset 0
Errors: fd-unavail 0 addrunavail 0 ftab-full 0 other 0

Testowana strona otwierała się w tempie modemowym. Rozumiem, że usługa jest wciąż testowana, może trafiłem na jakiś felerny serwer, może finalnie sytuacja będzie zupełnie odmienna od obecnej.

Moim zdaniem takie współdzielone serwery nadają się jedynie do nauki czy testów. Nie postawiłbym tam niczego co miałoby być dostępne publicznie, bo taka usługa nie gwarantuje jakiejkolwiek wydajności.

VMware Server 2.0.2 i najnowsze Linuksy

Moje przygody z wirtualizacją zaczęły się kilka lat temu. Głównie wykorzystuję te narzędzie do celów testowo-edukacyjnych. Zanim popsuję jakiś system produkcyjny, mogę eksperymentować na swoim własnym poligonie.
Z myślą o Tym 2 lata temu, gdy modernizowałem swój domowy serwer, szarpnąłem się na czterordzeniowy procesor, większą ilość pamięci i kilka dysków w RAIDzie, aby mieć zapas mocy. Korzystam z linuksowej wersji darmowego VMware Server’a 2.0. Przez ostatni rok miałem mało czasu na zabawy, a po którejś aktualizacji jądra VMware przestał działać. Kilka dni temu postanowiłem go reanimować. Niestety okazało się, że od października 2009 nie ma aktualizacji, a co za Tym idzie brak oficjalnego wsparcia dla wersji kernela 2.6.3x.

Z pomocą przyszła społeczność OpenSource, Radu Cotescu napisał patcha dla kerneli 2.6.3x i skrypt instalacyjny, dla nowszych dystrybucji Ubuntu, Fedora i openSUSE. Więcej na ten temat w notce na jego blogu. Natomiast sam skrypt można pobrać bezpośrednio ze strony, jak również z repozytorium Git autora.
Korzystam z Debiana (squeeze/sid) – kernel 2.6.32, więc musiałem ręcznie przepakować, spatchować źródła modułów, aby uzyskać zgodność z moim systemem.

W tym celu należy pobrać ostatnią dostępną wersję VMware Server 2.0.2 w formie archiwum tar.gz – VMware-server-2.0.2-203138.i386.tar.gz oraz najnowszego patcha vmware-server-2.0.2-203138-update.patch

$ wget http://codebin.cotescu.com/vmware/vmware-server-2.0.2-203138-update.patch

Rozpakowujemy instalkę:

$ tar -xzf VMware-server-2.0.2-203138.i386.tar.gz

Przechodzimy do folderu ze źródłami modułów i wypakowujemy je:

$ cd vmware-server-distrib/lib/modules/source/
$ tar -xf vmci.tar
$ tar -xf vmmon.tar
$ tar -xf vmnet.tar
$ tar -xf vsock.tar

Następnie cofamy się do folderu vmware-server-distrib/ i patchujemy źródła:

$ cd ../../../
$ patch -p1 < ../VMware-server-2.0.2-203138-update.patch

Wracamy do źródeł i kasujemy archiwa ze źródłami i tworzymy nowe:

$ cd lib/modules/source/
$ rm -f vmci.tar
$ rm -f vmmon.tar
$ rm -f vmnet.tar
$ rm -f vsock.tar
$ tar -cf vmci.tar vmci-only/
$ tar -cf vmmon.tar vmmon-only/
$ tar -cf vmnet.tar vmnet-only/
$ tar -cf vsock.tar vsock-only/

Kolejny powrót do głównego katalogu vmware-server-distrib/ i uruchomienie instalacji jako root:

$ cd ../../../
$ sudo ./vmware-install.pl

Po tym zabiegu instalacja zakończyła się pomyślnie.

Jednakże, po uruchomieniu okazało się, że nie działa webowa konsola administracyjna.
Po wywołaniu jej domyślnego adresu: http://adres_ip_hosta:8222/ serwer przekierował mnie na SSLowy port https://adres_ip_hosta:8333/, gdzie ukazał się komunikat o błędzie 503 Service Unavailable.

Po analizie problemu okazało się, że źródło problemu leżało w załączonym Tomcacie, który nie chciał nasłuchiwać na IPv6.

Zastosowałem obejście, wymusiłem nasłuch konsoli webowej na IPv4, w tym celu trzeba dokonać zmian w pliku startowym VMware – /etc/init.d/vmware.

Odnajdujemy następującą sekcję:

# Web Access configuration
webAccess="${vmdb_answer_LIBDIR}/webAccess/java/jre1.5.0_15/bin/webAccess"
watchdog="${vmdb_answer_BINDIR}/vmware-watchdog"
webAccessServiceName="VMware Virtual Infrastructure Web Access"
CATALINA_HOME="${vmdb_answer_LIBDIR}/webAccess/tomcat/apache-tomcat-6.0.16"
webAccessOpts="-client -Xmx64m -XX:MinHeapFreeRatio=30 -XX:MaxHeapFreeRatio=30
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Djava.endorsed.dirs=$CATALINA_HOME/common/endorsed
-classpath $CATALINA_HOME/bin/bootstrap.jar:$CATALINA_HOME/bin/commons-logging-api.jar
-Dcatalina.base=$CATALINA_HOME -Dcatalina.home=$CATALINA_HOME
-Djava.io.tmpdir=$CATALINA_HOME/temp org.apache.catalina.startup.Bootstrap"

A następnie do webAccessOpts dopisujemy parametr -Djava.net.preferIPv4Stack=true

webAccessOpts="-client -Xmx64m -XX:MinHeapFreeRatio=30 -XX:MaxHeapFreeRatio=30
-Djava.net.preferIPv4Stack=true
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Djava.endorsed.dirs=$CATALINA_HOME/common/endorsed
-classpath $CATALINA_HOME/bin/bootstrap.jar:$CATALINA_HOME/bin/commons-logging-api.jar
-Dcatalina.base=$CATALINA_HOME -Dcatalina.home=$CATALINA_HOME
-Djava.io.tmpdir=$CATALINA_HOME/temp org.apache.catalina.startup.Bootstrap"

Uważam, że VMware Server jest najlepszym darmowym rozwiązaniem tego typu. Mam nadzieję, że projekt nie został porzucony i wkrótce będzie dostępna oficjalna aktualizacja.

Na koniec jeszcze taki „tips and tricks”, dopisanie poniższych 3 linijek w pliku .vmx przed uruchomieniem wirtualnej maszyny, aktywuje dostęp do niej po protokole VNC i umożliwia to podgląd od początku jej bootowania, coś ala KVM over IP. Szczególnie przydatne jeśli korzystamy z Mac OS X, gdzie pluginy przeglądarkowe nie działają.

RemoteDisplay.vnc.enabled = "TRUE"
RemoteDisplay.vnc.password = "hasełko"
RemoteDisplay.vnc.port = "5900"

Apple MacBook

Apple Macbook
No i pod wpływem promocji cenowej (listopadowa+zniżka studencka), dnia 8 grudnia 2007 stałem się posiadaczem swojego pierwszego Macintosh’a.

  • Może najpierw specyfikacja, jest to MacBook, a więc:
  • 13 calowa matryca o rozdzielczości 1280×800, parę ciepłych słów – glare więc jasna, piękne kolory, czasami wkurzające odbicia, nierówne podświetlenie, beznadziejne kąty.
  • Procesor Intel Core 2 Duo 2.0GHz (FSB 667MHz) – bardzo wydajny 2 rdzeniowy procesor
  • Pamięć 1GB DDR2 667MHz – po tygodniu na potrzeby wirtualizacji rozszerzyłem do 2GB
  • Dysk FUJITSU 80GB 5400obr – jak na komputer przenośny to niby w miarę, lecz uwzględniając multimedia, szczególnie kolekcje mp3 to zdecydowane minimum
  • Napęd combo DVD-ROM/CD-RW – obecnie już zupełnie nie korzystam z napędu optycznego, imo niepotrzebnie zajmuje miejsce

Obecnie na co dzień pracuję na systemie Mac OS X, i to przede wszystkim skłoniło mnie do tej marki. Wygoda użytkowania tego systemu operacyjnego jest nie do opisania… chociaż początki było trudne ze względu na moje złe Windows’owe nawyki. Głównie różnice w skrótach klawiszowych i takie tam drobiazgi. Teraz po 4 miesiącach zasiadając do peceta mam problemy ze skrótami, zwykle w przeglądarce WWW.

Żałuję, że tak późno zdecydowałem się na taka zmianę, bez wątpienia był to duży krok do przodu…

←Starsze   
  • RSS
  • Blip
  • Flaker
  • Twitter
  • Buzz
  • Facebook
  • GoldenLine
  • LinkedIn
  • NetworkedBlogs
  • Wykop
  • Picasa
  • Flickr
  • YouTube
  • Vimeo
  • Last.fm