Przez jakiś czas dziwiłem się dlaczego tu i tam opowiadają o OO.o-3.3, a tu mi się nic nie buntuje. Dziś mnie olśniło, żeby sprawdzić i aktualizacja się znalazła.
# eix -c "(libre|open)office$"
[N] app-office/libreoffice (3.3.1): LibreOffice, a full office productivity suite.
[I] app-office/openoffice (3.2.1-r1@21.04.2011): OpenOffice.org, a full office productivity suite.
Found 2 matches.
A najbardziej wkurza mnie to, że ja tę kobyłę kompiluję (tu w pracy przez +16h) tylko dlatego, że wersja binarna ma jakiś dupny windziany fileselector zakorzeniony w latach 80tych zeszłego wieku.
Szedłem sobie spać, zamykam terminale i co widzę? Jakiś nowy sposób wywracania ludziom ludziom daemona ssh?
/var/log/sshd/current
Apr 21 23:23:45 [sshd] SSH: Server;Ltype: Version;Remote: 119.145.255.146-41652;Protocol: 2.0;Client: libssh-0.1
Apr 21 23:23:47 [sshd] SSH: Server;Ltype: Version;Remote: 119.145.255.146-41837;Protocol: 2.0;Client: libssh-0.1
Apr 21 23:23:50 [sshd] SSH: Server;Ltype: Version;Remote: 119.145.255.146-42020;Protocol: 2.0;Client: libssh-0.1
Apr 21 23:23:53 [sshd] SSH: Server;Ltype: Version;Remote: 119.145.255.146-42193;Protocol: 2.0;Client: libssh-0.1
W każdym razie denyhosts się nie pokapował, że coś się dzieje. A sam sposób wydaje się nie działać. Ale jak ten sam burak zaczął próbować to czego zwykle próbują ...
/var/log/sshd/current
Apr 21 23:23:58 [sshd] SSH: Server;Ltype: Version;Remote: 119.145.255.146-42573;Protocol: 2.0;Client: libssh-0.1
Apr 21 23:24:00 [sshd] Invalid user shoutcast from 119.145.255.146
Apr 21 23:24:01 [sshd] SSH: Server;Ltype: Version;Remote: 119.145.255.146-42739;Protocol: 2.0;Client: libssh-0.1
Apr 21 23:24:02 [sshd] Invalid user stephanie from 119.145.255.146
to się w końcu połapał ;-)
/var/log/sshd/current
Apr 21 23:24:30 [sshd] SSH: Server;Ltype: Version;Remote: 119.145.255.146-44837;Protocol: 2.0;Client: libssh-0.1
Apr 21 23:24:32 [sshd] Invalid user web from 119.145.255.146
Apr 21 23:24:33 [sshd] refused connect from 119.145.255.146 (119.145.255.146)
Nie tak dawno po serwisach newsowych w jakiś sposób związanych z FLOSS przetoczyły się informacje o tym, że administracja w szkoplandii po udanej migracji na wolne oprogramowanie właśnie przytłoczona jakimiś bliżej nie zidentyfikowanymi problemami migruje z powrotem na oprogramowanie własnościowe.
Z tej okazji zdenerwowany MacSlow (i zapewne gazylion innych ale tego akurat przyuważyłem) wysmażył na blogu rant German foreign office goes back to Windows - rant. Gdzie między innymi:
From reading summaries on the real reasons, it apparently came down to drivers (for printers and scanners), which they probably bought at Lidl or Aldi (german discount-chains), instead of spending a minute or two on the web researching what devices are properly supported.A ponieważ akurat mniej więcej w tym czasie zdechł u mnie w firmie wysłużony fax od Panasonica mam garść własnych doświadczeń.
Fax jest konieczny do pracy, ale drukarka też by się przydała. No to może żeby nie marnować miejsca jakiś mały wielofunkcyjny kombajnik? Nie jestem administracja publiczna tylko normalny ZU 2.0
myślę, że sobie poradzę.
Na stronie HP odnajduję urządzenie z zadowalającymi parametrami i rozsądną ceną: HP LaserJet Pro M1212nf. Obsługiwane OS?
Windows® 7; Windows Vista®; Microsoft® Windows® XP, Server 2003, Server 2008; Mac OS X v10.4, v10.5, v10.6; Linux (patrz http://www.hplip.net). W systemach Microsoft® Windows® Server 2003 i Server 2008 można dodać tylko sterowniki druku i skanowania.jest ok, ale sprawdzamy dalej na stronie hplip: hplip: HP LaserJet Professional m1212nf Multifunction Printer.
Minimum HPLIP version: 3.10.4Nadal ok, ale jakiś plugin, lista wspieranych dystrybucji... Ok nie chcemy się wpierdzielić jak jakiś lamer z niemieckiej administracji trzeba dopytać.
Support level: Full (See note11.)
Recommended?: Yes (See note15.)
This printer REQUIRES a downloadable driver plug-in. Use hp-setup to install the printer, and to download and install the plug-in. In general, required driver plugins are required for printing support. Driver plug-ins are released under a proprietary (non-open) license and are not part of the HPLIP tarball release.
11) For a definition of Support Levels, please refer to this KB article.
15) "Recommended" means that the printer is fully supported in HPLIP and is recommended for use on your Linux system. For information of what "fully supported" means, see this KB article.
No to kupiłem drukarkę. Chwilę to trwało zanim zadziałała bo się ten durny plugin nie chciał zainstalować, pewnie coś robiłem źle. Anyway drukarka zainstalowana, skaner działa (jeden i drugi), drukarka działa, faksowanie z komputera się zainstalowało (nie testowałem więc nie napiszę tu, że działa ale wierzę, że tak). Oczywiście powyższe nie wskazuje na powód dla którego dziś tu spamuję... ;-)
Głównym zadaniem urządzenia jest bycie faksem. To jedyna rzecz której od niego oczekuję na co dzień to żeby odebrał fax jeśli ktoś do niego zadzwoni i żebym ja mógł odebrać fax dla siebie. I tu małe wyjaśnienie. Odebrać fax czyli ja dzwonię do kogoś, mówię cześć to ja prześlij mi dokument, ktoś wysyła ja odbieram. To się bodaj polling nazywa i tak jest obsługiwane przez HP M1212nfgoogle: m1212nf polling
I tu zaczęły się schody ...
Procedura z mojej strony jest zawsze taka sama, linia telefoniczna jak to linia też się raczej nie zmienia codziennie. Na dodatek po drugiej stronie połączenia jest cały czas to samo jedno urządzenie. Połączenie wygląda następująco:
Wysłać z szyby?i d*.*. Można sobie klikać w kółko
wróći znów zielony przycisk faxu, nic nie daje. Jak się małpa uprze to nic jej nie przekona.
Wygląda to wszystko tak jak gdyby drukarka HP próbowała zgadnąć co chciałby zrobić użyszkodnik ale słabo jej to zgadywanie wychodzi. No to wziąłem się za siebie i napisałem do supportu.
Od jakiegoś czasu sobie z tym supportem korespondujemy. Dostałem masę mało sensownych porad, kilka próśb o wykonanie testów (w tym próby wysłania faksu na numer w HP Polska - tak jak gdybym kiedykolwiek uważał, że mam kłopot z wysyłaniem dokumentów). Generalnie z tej całej korespondencji nic nie wynika, poza ostatnim wnioskiem z przed kilku dni. Być może konieczna jest aktualizacja firmware. Można ją wykonać samemu ... z komputera z zainstalowanym Windows. Z urządzenia z linuskiem się nie da.
I tak to jest z linuksem w firmie, nawet jeśli nie ma się drukarek z Lidla kupionych bez zastanowienia.
Jakiś czas temu przy okazji zakupu pierwszego eeeBoxa sprawdzałem ile kosztuje windows XP. Przy drugim i trzecim eeeBoxie zabrakło czasu/weny tfórczej poza tym przecież już wiedziałem to nie było co sprawdzać. Ale gwiazdor przyniósł Nelce eeePC 1008P przyniósł trochę przed czasem, ale gwiazdory nękane przez tatów hackerów
tak mają ;-). Netbook miał tą razą preinstalowane coś co nazywa się Windows 7 starter edition, na windowsach się nie znam ale rozumiem, że jest to do bólu wykastrowana wersja windows 7.
Różnica na którą warto zwrócić uwagę jest taka, że kiedy kupowałem do firmy eeeBoxy to windows XP był już stary i właściwie na wylocie
. Teraz windows 7 to właściwie nowość, co powoduje, że cena jest mniej dumpingowa, choć nadal odstaje od wyobrażeń o wartości płytki instalacyjnej.
Nie trzymając dłużej w napięciu (ktoś czuje jakieś napięcie? :D) spieszę donieść, że Windows 7 starter edition Microsoft wycenił na 20€ co na nasze dało 78,68PLN.
Procedura zwrotu w Asus nadal działa, złego słowa powiedzieć nie mogę. Trochę to wszystko trwa, ale to z mojego punktu widzenia akurat najmniejszy problem. Jeśli ktoś chciałby rady jak się za to zabrać to może tylko wspomnę, że po zapytaniu emailem człowieka w supporcie Asusa o dokumenty zwrotu (e-mail miałem z powodu poprzednich kontaktów) zostałem zastrzelony pytaniem „jaki jest numer seryjny i kiedy kupiłem komputer” na co szczerze odpowiedziałem, że numeru seryjnego nie ma bo właśnie planuję zakup. To o tyle ważne, że oficjalnie, procedurę zwrotu systemu można uruchomić tylko w ciągu dwóch tygodni od zakupu. Oficjalnie, bo po drugiej stronie są ludzie z krwi i kości i na prawdę w żaden sposób nie próbują utrudniać. Zresztą niby po co, z punktu widzenia Asusa to przecież żadna różnica. A zadowolony z obsługi klient wraca i kupuje znowu (powiedział człowiek, który ma na swoim koncie trzy eeeBoxy i eeePC wszystkie obecnie Gentoo powered (Dzięki Smoku, że mi kiedyś Gentoo pokazałeś. Nic innego nie będzie mi potrzebne tak długo jak żęŧu będzie istniało.) oraz w planach dużego laptopa dla siebie*).
* z dużym laptopem jest kłopot, bo jakem wariat kompletnie gubię się w gazylionie proponowanych modeli i kompletnie nie wiem co bym chciał, a oczywiście wyklikanie przyzwoitej szukajki pozwalającej przefiltrowac ofertę przerosło możliwości sprzedawcy. No niema i już. Ale jak mnie przyciśnie to pewnie się przemogę i dam radę. Może jakiś order od Asusa dostanę przy okazji ;-)
Drogi LazyWeb :D
Doświadczenie z sensorkami mam żadne, niby to co potrzeba do szczęścia (temperatura CPU) jest łatwo wykrywalne, ale męczy mnie sama świadomość, że jest tam (w Asus eeeBox B202) tych sensorów sterta, a ja nie mam pojęcia co pokazują.
Czy jest jakiś ogólny sposób, procedura postępowania pozwalająca zorientować się co z tego co jest udostępnione przez kostkę działa oraz co pokazuje? Do dyspozycji jest:
# for i in /sys/class/hwmon/hwmon0/device/*_input; do echo -n $i": "; cat $i; done
/sys/class/hwmon/hwmon0/device/fan1_input: 0
/sys/class/hwmon/hwmon0/device/fan2_input: 2812
/sys/class/hwmon/hwmon0/device/fan3_input: 0
/sys/class/hwmon/hwmon0/device/fan4_input: 0
/sys/class/hwmon/hwmon0/device/fan5_input: 0
/sys/class/hwmon/hwmon0/device/in0_input: 1192
/sys/class/hwmon/hwmon0/device/in1_input: 1680
/sys/class/hwmon/hwmon0/device/in2_input: 3296
/sys/class/hwmon/hwmon0/device/in3_input: 3280
/sys/class/hwmon/hwmon0/device/in4_input: 1664
/sys/class/hwmon/hwmon0/device/in5_input: 1704
/sys/class/hwmon/hwmon0/device/in6_input: 1664
/sys/class/hwmon/hwmon0/device/in7_input: 3296
/sys/class/hwmon/hwmon0/device/in8_input: 3232
/sys/class/hwmon/hwmon0/device/temp1_input: 42000
/sys/class/hwmon/hwmon0/device/temp2_input: 46500
/sys/class/hwmon/hwmon0/device/temp3_input: -13000
Co wiem choć nie na pewno to że:
Gdzieś niejako przy okazji sypnąłem się, że mam na pędraku Gentoo minimal CD, a podobno się nie da, bo to nie działa - a ja nie wiedziałem, że nie działa to mi zadziałało :D. Ludzie (dwa ludzie, ale zawsze) pytają, więc mimo iż większego czary mary tu nie ma (mniejszego też), to przy okazji przygotowywania pędraka od nowa (tak, żeby Windows montował właściwą partycję) małe howto.
Najsamprzód przygotujemy pędraka. Dwie partycje, /dev/sda1 partycja FAT32 będzie pędrakiem właściwym, /dev/sda2 FAT16 (choć nie koniecznie) to bootowalna partycja z LiveCD. Na te drugą rezerwuję 350MB zmieści się na niej wtedy dodatkowo stage3 i snapshot portage i jeszcze jakieś miejsce zostanie.
# fdisk -l /dev/sda
Disk /dev/sda: 2063 MB, 2063597056 bytes
255 heads, 63 sectors/track, 250 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00042b5b
Device Boot Start End Blocks Id System
/dev/sda1 1 205 1646631 b W95 FAT32
/dev/sda2 * 206 250 361462+ 6 FAT16
Partycje trzeba sformatować, pierwszą FAT32 lub NTFS jak kto woli, to będzie „pędrak właściwy”.
# mkdosfs -v -n PQI -F 32 /dev/sda1
mkdosfs 3.0.2 (28 Feb 2009)
/dev/sda1 has 255 heads and 63 sectors per track,
logical sector size is 512,
using 0xf8 media descriptor, with 3293262 sectors;
file system has 2 32-bit FATs and 8 sectors per cluster.
FAT size is 3210 sectors, and provides 410851 clusters.
Volume ID is 7b81d1e6, volume label PQI .
Drugą FAT16 (lub ext2), na której znajdzie się instalka żętoo.
# mkdosfs -v -n Gentoo -F 16 /dev/sda2
mkdosfs 3.0.2 (28 Feb 2009)
/dev/sda2 has 255 heads and 63 sectors per track,
logical sector size is 512,
using 0xf8 media descriptor, with 722924 sectors;
file system has 2 16-bit FATs and 16 sectors per cluster.
FAT size is 177 sectors, and provides 45158 clusters.
Root directory contains 512 slots.
Volume ID is 7d877c27, volume label Gentoo .
# df -h | grep sda
/dev/sda2 353M 0 353M 0% /media/Gentoo
/dev/sda1 1,6G 4,0K 1,6G 1% /media/PQI
W szeroko rozumianym międzyczasie warto pobrać Gentoo MinimalCD i zainstalować Syslinux.
Dalej jest już, że tak powiem dość mechanicznie (mówiłem przecież, że żadnego czary mary tu nie ma).
# dd if=/usr/share/syslinux/mbr.bin of=/dev/sda
0+1 przeczytanych recordów
0+1 zapisanych recordów
skopiowane 440 bajtów (440 B), 0,00394937 s, 111 kB/s
# mount -t iso9660 -o loop,ro /home/wariat/Download/install-x86-minimal-20090915.iso /mnt/cdrom/
# mount -t vfat /dev/sda2 /mnt/pen/
# cp -r /mnt/cdrom/* /mnt/pen/
# sync
# mv /mnt/pen/isolinux/isolinux.cfg /mnt/pen/isolinux/syslinux.cfg
# mv /mnt/pen/isolinux /mnt/pen/syslinux
# mkdir /mnt/pen/pliki
# cp /home/wariat/Download/gentoo\ x86/stage3-i686-20090915.tar.bz2 /mnt/pen/pliki/
# cp /home/wariat/Download/gentoo\ x86/portage-20091008.tar.bz2 /mnt/pen/pliki/
# sync
# umount /mnt/pen/
# syslinux /dev/sda2
Gdyby zamiast FAT16 na tej partycji miał znaleźć się ext2 to wszystko jak wyżej, tylko wszędzie gdzie syslinux trzeba napisać extlinux i też działa.
No i tym razem ułomy windows, który potrafi zamontować tylko pierwszą partycję z napędu USB (LOL) pozwoli korzystać z gwizdka normalnie.
.
Po latach pracy trzeba zacząć zwalniać stare, wysłużone komputery. Nic na gwałt, sztuka po sztuce jak się będzie sprawdzało. Docelowo część najstarszych (DOSowych) stanowisk ląduje na mini komputerkach Asus eeeBox B202 z gentoo linux w środku.
Przy tej okazji chciałem na własnej skórze przetestować jak to jest ze zwrotem windows OEM i czy to faktycznie zawsze jest droga przez mękę, tak jak można czasem przeczytać w sieci. Okazało się, że nie. Procedura działa powoli, ale bez większych problemów, zonk jest gdzie indziej o czym za chwilę.
Zacząłem od telefonu do supportu Asusa, gdzie dowiedziałem się, że tak, nie ma problemu tzreba wypełnić dokumenty i proszą o kontakt emailem, bo będzie łatwiej. Wiadomość wysłałem, odpowiedź przyszła po godzinie (miło prawda?).
Procedura jest prosta:
A gdzie zonk? Zonk w odpowiedzi na pytanie ile kosztuje windows XP dołączony do Asusa eeeBox, poniżej kopia przelewu:

Tak właśnie, otóż wychodzi, że Microsoft życzy sobie za tę kopię windowsów 7€ (słownie: siedem euro!), i jak tu walczyć cenowo z taką konkurencją? :D
Plan zakładał, że mimo wszystko wystąpię o zwrot za każdym razem, po prostu dlatego, żeby gdzieś tam w statystykach Asusa pojawiła się informacja, że na komputery bez windowsa naprawdę jest zapotrzebowanie. Ale wakacje, inne zajęcia, etc. i sprawę olałem. Na razie pracują dwa komputerki, być może pojawią się kolejne dwa, bo maszynka sprawdza się świetnie i do zastosowań biurowych z czystym sumieniem mogę polecić.
Przy okazji zaznaczę, że 100% sprzętu działa poprawnie bez jakichkolwiek zewnętrznych modułów jajka, wszystko co ma działać jest u pingwina „w standardzie”.
Powoli zbliżam się do momentu kiedy stary Pentium 60 z FreeDOSem zostanie wysłany na emeryturę, a zastąpi go nowy Asus eeeBox B202 z gentoo linux. Martwiłem się kwestią przetransportowania danych ze staruszka, ale okazuje się, że autorzy FreeDOS stanęli na wysokości zadania i mimo iż system wygląda klasycznie (zabytkowo) to z obsługą nagrywarki CD nie ma większego problemu.
Ku pamięci więc tylko:
Przy okazji, jeśli gdzieś jeszcze taki zabytek stoi, a może sam jeszcze kiedyś postawię to, żeby nie klepać od nowa, codzienne backupy danych w całkiem zgrabnie uporządkowanej formie da się również w DOSie.
backup.bat
echo off
rem BWW Backup Script v3
set exclude=*.exe
cd %temp%
echo | date /d | sed -e "s/.* //" | sed -e "s/\./-/g"> data.txt
set /E date=sed data.txt -e "s/^.....//"
set /E year=sed data.txt -e "s/-..-..$//"
REM jesli nie ma katalogu na backupy to go zrobmy
IF EXIST D:\BACKUP\%year%\keep goto cont
mkdir D:\BACKUP\%year%
touch D:\BACKUP\%year%\keep
mkdir E:\BACKUP\%year%
touch E:\BACKUP\%year%\keep
set exclude=
REM plik nie istnieje, czyli ok
:cont
set filename=%date%.zip
:loop
IF NOT EXIST D:\BACKUP\%year%\%filename% GOTO rest
set exclude=
set /E n=calc387 %n%+1
echo %date%-%n%.zip > data.txt
set /E filename=sed data.txt -e 's/ *//g'
GOTO loop
:rest
rm data.txt
cdd c:\kantor\bww
zip -r -0 D:\BACKUP\%year%\%filename% *.* -x %exclude%
copy D:\BACKUP\%year%\%filename% e:\backup\%year%\*.*
cd \
Skrypt uruchamiany z autoexec.bat zapisuje archiwum na partycji D:\ (i E:\ a co tam :D) w drzewie katalogów:
D:\
BACKUP\
yyyy\
2008\
2009\
mm-dd.zip
01-02.zip
01-03.zip
I kto mówił, że w DOSie się nie da? :-)
Problem: stoi sobie komputer i ma wpięte dwa adaptery USB<>RS232C, do których dalej podpięte są dwa różne urządzenia. Urządzeń rozpoznać się nie da bo do nich się tylko rozmawia z zawrotną prędkością 300 bps. Ale rozmawia się do nich o czymś innym. Trzeba mieć pewność, że rozmawia się do właściwego, bo inaczej nie funguje.
Wodzu zgodnie z zasadami proponował podłączyć, zostawić i założyć, że zawsze porty po odpaleniu kompa pojawią się w tych samych miejscach. To dobre rozwiązanie bo nie trzeba nic robić, a jest duża szansa, że po prostu zadziała. Ale da się lepiej.
Za utworzenie pliku urządzenia odpowiada niejaki UDEV, który robi wiele rzeczy często zahaczających o czary, przez co wariaty się go boją, okazuje się, że chyba nie potrzebnie.
Wtyczki oczywiście zostają wpięte raz na stałe, więc o ile najbardziej chińskie z chińskich adapterów USB<>RS232 Bus 001 Device 034: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port same w sobie są również nie do rozpoznania, o tyle gniazdko
gdzie są wetknięte już owszem. W moim przypadku ona wylądowały w dwóch pierwszych złączach podpiętego do eeeBoxa huba USB.
Cała magia sprowadza się do:
udevadm info -ap /sys/class/tty/ttyUSB0
Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.
looking at device '/devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2.1/1-2.1:1.0/ttyUSB0/tty/ttyUSB0':
KERNEL=="ttyUSB0"
SUBSYSTEM=="tty"
DRIVER==""
looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2.1/1-2.1:1.0/ttyUSB0':
KERNELS=="ttyUSB0"
SUBSYSTEMS=="usb-serial"
DRIVERS=="pl2303"
ATTRS{port_number}=="0"
looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2.1/1-2.1:1.0':
KERNELS=="1-2.1:1.0"
SUBSYSTEMS=="usb"
DRIVERS=="pl2303"
ATTRS{bInterfaceNumber}=="00"
ATTRS{bAlternateSetting}==" 0"
ATTRS{bNumEndpoints}=="03"
ATTRS{bInterfaceClass}=="ff"
ATTRS{bInterfaceSubClass}=="00"
ATTRS{bInterfaceProtocol}=="00"
ATTRS{modalias}=="usb:v067Bp2303d0300dc00dsc00dp00icFFisc00ip00"
ATTRS{supports_autosuspend}=="1"
(...)
gdzie w pierwszej sekcji interesuje nas: KERNEL=="ttyUSB0", w drugiej nic, a w trzeciej KERNELS=="1-2.1:1.0"
Powstaje więc regułka (gwiazdka zastępuje numer portu!!!):
/etc/udev/rules.d/00-ttyUSB.rules
KERNEL=="ttyUSB*", KERNELS=="1-2.1:1.0", NAME="ttyTABLICA"
tak samo z drugim adapterem i ... no i po prostu działa:
yogi ~ # cat /etc/udev/rules.d/00-ttyUSB.rules
KERNEL=="ttyUSB*", KERNELS=="1-2.1:1.0", NAME="ttyTABLICA"
KERNEL=="ttyUSB*", KERNELS=="1-2.2:1.0", NAME="ttyWYSWIETLACZ"
yogi ~ # ls -l /dev/tty* | grep 23:
crw-rw---- 1 root uucp 188, 0 07-15 23:49 /dev/ttyTABLICA
crw-rw---- 1 root uucp 188, 1 07-15 23:50 /dev/ttyWYSWIETLACZ
Okazuje się, że nie taki UDEV straszny jak sobie wariat wyobrażał, a przy okazji bonus bo nie trzeba nawet pamiętać co było wpięte jako ttyUSB0 bo widać po nazwie urządzenia.
Obiecywałeś wariat, że będziesz robił backupy i co? I co @#$%^ się pytam?!
W zeszły czwartek zdarzyły się trzy rzeczy. Pozbyłem się iShit'a, zamówiłem sobie nowe szkło do aparatu: Canon EF 24-70mm f/2.8L USM i padł mi dysk w Coyote.
Zaczęło się nagle, komputer się zawiesił. Niektórzy powiedzą zdarza się
, ale ja nie jestem przekonany. Faktem jest, że wisiało. Nie działała nawet ikonka od killowania
. Wariat przypomniał sobie stare czasy, nacisnął i przytrzymał przycisk power
. Po chwili ekran zgasł, a po ponownym uruchomieniu i załadowaniu kernela ekran zaśmieciło coś co ewidentnie wskazywało na kłopot z dyskiem i wyglądało mniej więcej tak:
ide: failed opcode was: unknown
hda: task_out_intr: status=0x51 {DriveReady SeekComplete Error}
hda: task_out_intr: error=0x10 {SectorIdNotFound} LBAsect=28306658, high=1, low=11529442, sector=28306658
Pierwszą reakcją była oczywiście panika. AAAaaaa moje pliki. Zdjęcia młodego, Nelka mnie zabije! Najnowszy CartoonManager - o ja pierdzielę. Najgorsze było to, że zamknięty w pracy nie mogłem próbować niczego i jedyne co mogłem to właśnie zastanawiać się co straciłem. Pewne było to, że dysk jest dead, trzeba kupić nowy. Po powrocie do domu pobrałem Gentoo Minimal CD, odpaliłem Coyote'a i ... powiedziało, że chce montować /dev/hdaN i wisi. Fajne kurka liveCD :D.
Na drugi ogień poszło SystemRescueCd. Tu odpalanie nie nastręczyło problemów, jako bonus X'y z Window Makerem i desktopem przywołującym wspomnienia systemu ATARI i wczesnych lat dziewięćdziesiątych ubiegłego stulecia. No ale działa, więc nie marudzimy.
Próba zamontowania partycji:
root@sysresccd /root % mount /dev/sda4 /mnt/dysk
mount: wrong fs type, bad option, bad superblock on /dev/sda4,
missing codepage or other error
In some cases useful info is found in syslog - try
dmesg | tail or so
No to sprawdźmy:
root@sysresccd /root % reiserfsck /dev/sda4
(...)
Trans replayed: mountid 930, transid 2069652, desc 6111, len 1, commit 6113, next trans offset 6096
Reiserfs journal '/dev/sda4' in blocks [18..8211]: 471 transactions replayed
Checking internal tree..finished
Comparing bitmaps..finished
Checking Semantic tree:
finished
No corruptions found
There are on the filesystem:
Leaves 127300
Internal nodes 871
Directories 47170
Other files 479462
Data block pointers 11509351 (82 of them are zero)
Safe links 0
###########
reiserfsck finished at Sat Jan 26 15:16:35 2008
###########
Fajnie, wszystko ok, tylko nie działa. Znaczy co? Znaczy badsektory. Wsadziłem nowy dysk w pożyczoną od Nelki obudowę USB o zastraszającym nominalnym transferze danych 480kbps, odpaliłem kopiowanie i poszedłem w długą. Zakończyło się tak:
root@sysresccd /root % ddrescue -r 10 -v -d /dev/sda4 /dev/sdb4 root_backupLog
About to copy 65530 MBytes from /dev/sda4 to /dev/sdb4
Starting positions: infile = 0 B, outfile = 0 B
Copy block size: 128 hard blocks
Hard block size: 512 bytes
Max_retries: 10
Direct: yes Sparse: no Split: yes Truncate: no
Press Ctrl-C to interrupt
Initial status (read from logfile)
rescued: 0 B, errsize: 0 B, errors: 0
Current status
rescued: 65530 MB, errsize: 512 B, current rate: 0 B/s
ipos: 3265 MB, errors: 1, average rate: 3108 kB/s
opos: 3265 MB
Finished
% cat root_backupLog
# Rescue Logfile. Created by GNU ddrescue version 1.6
# current_pos current_status
0xC2A97E00 +
# pos size status
0x00000000 0xC2A97E00 +
0xC2A97E00 0x00000200 -
0xC2A98000 0xE7F473E00 +
Jakie wnioski? Zdechł JEDEN sektor. A właściwie jeden znaczący sektor, trafiło tak, że unieruchomiło cały system plików. I tu pojawia się pytanie czy reiserFS aka killerFS ;-) się na prawdę nadaje do użytku skoro generalnie z badsektorami radzi sobie świetnie (ogółem na patycji badblocks wykrył 62 popsute sektory), ale jedno pechowe trafienie znika partycję
bez żadnego ostrzeżenia.
Ktoś może powiedzieć, że powinienem od razu odpalić reiserfsck --rebuild-tree, --rebuild-sb. Jasne ale ... jaką miałbym gwarancję, że po tej operacji nie znajdę wszystkiego w /lost+found
? No a tego chciałem uniknąć.
Skopiowana partycja montowała się poprawnie, zostało więc tylko podpięcie dysku do Mickeya, gdzie znalazłem 50GB miejsca, przekopiowanie plików do archiwów tar.bz2, i po założeniu docelowych partycji na nowym dysku operacja odwrotna. Napisać łatwo, ale razem z lagami pomiędzy pakowaniem jednego a drugiego katalogu (no przecież nie siedziałem tam 24/24 gapiąc się czy już) trwało to jakieś 2,5 dnia :D.
W tej chwili Coyote śmiga już z nowego hardziela, system działa jak działał (łącznie ze świrującym audio którym nie mam czasu się zająć), pliki (prywatne i systemowe) są tam gdzie je zostawiłem, ale co schudłem i posiwiałem to moje. Partycje nadal reiserFS, choć poważnie zastanawiam się nad przejściem na ext3. Pytanie tylko czy w podobnej sytuacji (ultra pechowe trafienie badblockiem) nie da identycznych efektów?
Źli ludzie ™ wywalili z portage Beryla. Bo niby jest stary, nie rozwijany i teraz wszyscy używają już Compiz-Fusion. No bardzo kurka śmieszne. Compiz co prawa działa, ale jest go 3/4. Fakt wydaje się, że chodzi płynniej, ale wydaje się też, że cieknie pamięcią. Plan miałem obejrzeć najpierw paskudę na desktopie (chwilowo nie używanym), szczególnie, że sytuacja złapała mnie akurat po nocce z rozkminianiem
czegoś co w połowie lat osiemdziesiątych mogło być substytutem małej plikowej bazy danych ... szumnie powiedziawszy. No w każdym razie prawie działa, tylko nie tak od razu...
Plan był taki, żeby wrócić z funkcjonalnością po 20 minutach ... nie dało się. Gdyby ktoś jeszcze czuł się zmuszany a do teraz się nie zabrał to ja może podpowiem, że poza przejrzeniem (i zastosowaniem) prostej instrukcji: xeffects wiki: Compiz Fusion należy:
coyote ~ # env-update && source /etc/profile
>>> Regenerating /etc/ld.so.cache...
Tak mnie jakoś naszło, że to dziwne, że mieszkam tu już trzeci miesiąc, z czego dobre dwa online, a sieci domowej jak nie było tak nie ma. To się nazywa mieć lenia. No może nie do końca bo w ciągu tych miesięcy odpaliłem kilka razy Mickey'a (desktop) i trochę w nim posprzątałem, ba zainstalowałem na nim nawet drugi modem od neo. Ale od sprzątania do postawienia sieci lokalnej jeszcze kawałek jest :D.
W każdym razie wróciłem dziś do domu z planem, a to już coś prawda?
Do neozdrady mam dwa modemy, Sagem od młodego od kilku dni potrafi tam działać, zostało więc tylko to odpalić. Czyli zacząć od przykręcenia gniazdka sieciowego, bo switch i Access Point najprawdopodobniej potrzebują zasilania... tia :D
Neostrada (już działała), dnsmasq, pierdzielone regułki iptables ... i tak w połowie przeklepywania regułek, kiedy sieć już właściwie działała zacząłem się zastanawiać. Dynamiczne IP, zrywające się co kilka h połączenie, tak na prawdę coraz mniejsza potrzeba trzymania a'la serwera w domu ... po kiego grzyba Mickey ma chodzić 24/24h? I w sumie rozsądnej odpowiedzi nie znalazłem.
Wywaliłem więc wszystko, wyłączyłem Mickeya, podłączyłem linię tel do speedtoucha i jarnąłem Coyote (notebook). Router Ci jest wariat potrzebny, taki co będzie dział i ... już. Trzeba sobie wypisać co byśmy chcieli...
Mówią nigdy nie wierz statystyce, której sam nie sfałszowałeś ... i mają rację. :D Zrobił wariat sync'a morda się drze bo spać się chce, no ale dużo tego nie ma to może... przynajmniej miałem czas opróżnić Google Readera z szeroko rozumianej zawartości. Alllle ossso chozi? A o to:
coyote ~ # emerge -pvuD world | genlop -pt
(...)
Estimated update time: 7 minutes.
coyote ~ # time emerge -vuD world
>>> No outdated packages were found on your system.
* GNU info directory index is up-to-date.
(blah, blah, śmieciu, śmieciu, blah, blah, blah)
real 20m45.232s
user 5m16.068s
sys 1m41.102s
Życie w offline zakończone. Dziś (z bagatela 24godzinnym opóźnieniem) dotarł modem od neostrady. Zamówiłem sagema, przyszedł thompson ... cuż to w końcu tylko telekomunikacja ;-). Bokiem, jeśli cokolwiek, gdziekolwiek będziecie mieli wysyłać za pomocą przesyłki kurierskiej to szczerze odradzam niejaki Masterlink aka DPD. Nie wiem jak się tam wysyła i ile płaci, ale obsługa klienta który czeka na odbiór przesyłki porażka. Jakie oni cuda wyprawiali, długo by gadać, napomknę tylko:
- Proszę zadzwonić po 18:00 - Ale po 18:00 nie pracujecie i nie odbieracie telefonów - No tak, rzeczywiście.
Tak czy siak muszę potwierdzić, że instalacja tego cuda w Gentoo Linux nie jest w tej chwili jakoś strasznie problematyczna, bo sprowadza się do zmergowania paczki net-dialup/speedtouch-usb i wykonania tego co każą w ebuildzie i działa.
Aaaa wcześniej, żeby mieć internet via neostrada trzeba mieć internet :D I odwiedzić stronę rejestracja.neostrada.pl w celu wygenerować login i hasło. I tyle.
Teraz mogę się zastanawiać, czy ten Sagem faktycznie jest lepszy (szybszy) od Thompsona. Mój modem mówi do mnie tak:
coyote ~ # dmesg | grep -i adsl
ATM dev 0: ADSL line is synchronising
ATM dev 0: ADSL line is up (1312 kb/s down | 320 kb/s up)
320kbps to i tak mniej niż 512kbps które wg. wikipedii stanowi limit możliwości modemu. A skoro tak, to chyba nie warto kombinować.
OK ... konieć tego klepania, czas posprzątać w RSSach ... aż boję się odpalić GR, po takim czasie w offline ;-)
Aaaa mój pierwszy dynamicznie popsuty IP, q pamięci ;-) Twój adres IP to: 83.20.64.126 A jego nazwa symboliczna to: epw126.neoplus.adsl.tpnet.pl
Winda to jednak pożera miejsce na dysku. Mój windows na Qemu postawiłem na obrazie dysku o rozmiarze 4GB, na razie nie zainstalowałem niczego poza aktualizacjami windowsów (nie wszystkimi jeszcze), a system zgłosił, że mu się miejsce kończy. Kłopot polega na tym, że obraz dysku w formacie qcow2 nie pozwala na zmianę rozmiaru dysku/partycji. Trzeba więc było wymyślić workaround.
Zacznijmy od skopiowania istniejącego obrazu dysku tak na wszelki wypadek i upewnienia się, że mamy do czynienia z obrazem w formacie qcow2, jeśli tak (a tak ;-) ) to przekonwertujmy go do formatru raw:
$ cp winda.img WindowsXP_HE_SP2_updated.img
$ qemu-img info winda.img
image: winda.img
file format: qcow2
virtual size: 4.0G (4294967296 bytes)
disk size: 3.6G
cluster_size: 4096
$ qemu-img convert -f qcow2 winda.img -O raw winda.raw
$ qemu-img info winda.raw
image: winda.raw
file format: raw
virtual size: 4.0G (4294967296 bytes)
disk size: 3.5G
Warto teraz zabootować Windows z nowego obrazu dysku, ot tak, żeby sprawdzić czy wszystko gra. Jeśli tak powiększmy obraz do rozmiaru 10GB dopisując po prostu zera na końcu pliku za pomocą komendy dd. W parametrze bs podajemy ilość dodawanych jednorazowo bajtów, w parametrze seek docelowy rozmiar dysku (10GB = 10*1024*1024*1024 = 10737418240) podzielony przez 512 czyli 20971520.
dd if=/dev/zero of=winda.raw bs=512 count=0 seek=20971520
Uzyskaliśmy w ten sposób 10GB dysk z partycją 4GB (z zainstalowanymi windowsami) co łatwo sprawdzić:
$ qemu-img info winda.raw
image: winda.raw
file format: raw
virtual size: 10G (10737418240 bytes)
disk size: 3.5G
$ su -c "fdisk -l winda.raw"
Password:
You must set cylinders.
You can do this from the extra functions menu.
Disk winda.raw: 0 MB, 0 bytes
255 heads, 63 sectors/track, 0 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
winda.raw1 * 1 521 4184901 7 HPFS/NTFS
Dla chętnych sprawdzania co krok czy wszystko śmiga pozostaje odpalenie windowsa z nowego powiększonego obrazu dysku, cała reszta wierzy, że wszystko śmiga i czas powiększyć partycję. Oczywiście za pomocą qemu i gparted LiveCD.
$ qemu -m 256 -cdrom gparted-livecd-0.3.4-7.iso -hda winda.raw -boot d -localtime
Po kilku kliknięciach uzyskujemy to o co chodziło czyli:
$ su -c "fdisk -l winda.raw"
Password:
You must set cylinders.
You can do this from the extra functions menu.
Disk winda.raw: 0 MB, 0 bytes
255 heads, 63 sectors/track, 0 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
winda.raw1 * 1 1305 10482381 7 HPFS/NTFS
Partition 1 has different physical/logical endings:
phys=(1023, 254, 63) logical=(1304, 254, 63)
Na koniec konwertujemy obraz spowrotem do formatu qcow2 aby oszczędzić miejsce na dysku (plik obrazu w formacie qcow2 rośnie wraz z zapełnianiem się wirtualnego dysku.) i teraz już kategorycznie bootujemy system aby sprawdzić czy wszystko hula jak należy, windows uruchomi teraz sprawdzanie dysku zdziwiony, że miejsca jest jak gdyby więcej ;-).
$ qemu-img convert -f raw winda.raw -O qcow2 WindowsXP.qcow2
$ ls -lh [wW]*
-rw-r--r-- 1 wariat wariat 3,6G cze 21 12:28 winda.img
-rw-r--r-- 1 wariat wariat 10G cze 21 15:19 winda.raw
-rw-r--r-- 1 wariat wariat 1,3G cze 12 23:38 WindowsXP_HE_SP1_Registered.img
-rw-r--r-- 1 wariat wariat 3,6G cze 21 12:34 WindowsXP_HE_SP2_updated.img
-rw-r--r-- 1 wariat wariat 2,4G cze 14 12:43 WindowsXP_HE_updated.img
-rw-r--r-- 1 wariat wariat 3,6G cze 21 15:46 WindowsXP.qcow2
$ qemu -m 256 -hda WindowsXP.qcow2 -boot c -localtime
Na koniec znów kilka obrazków ;-)
Cztery dni (jasne, że nie całe :D) trwała wojenka wariat vs Windows on qemu. Efekty wciąż takie jak na początku, czyli wszystko niby działa, ale nie do końca i to wystarczy, Windows się instaluje, ale nie zakłada konta użytkownika, przez co nie można się zalogować. Próba zalogowania się w trybie awaryjnym na konto Administrator z pustym hasłem daje rezultat w postaci "krytyczny wyjątek, explorer.exe czy wysłać informację o awarii?" - oczywiście nie omieszkałem wysłać, a co :D.
Ale jest przełom! I ostatecznie działa!
Po pierwsze wychodzi na to, że kqemu jest nie do końca opcjonalny, bo bez niego nie daje rady. Dlaczego? Trudno powiedzieć obserwacje ostatnich dni wskazują, że nie wszystkie pliki są kopiowane z płyty instalacyjnej. Użycie modułu kqemu problem zdaje się rozwiązywać, być może bez tego wsparcia virtualny PC ma za mało pary aby podołac instalce windows :D.
Poza tym uświadomiłem sobie, że instaluję Microsoft Windows, a nie jakieś bele co, podjąłem więc specjalne środki ostrożności przypominające mi czasy małego Atari, magnetofonu Kasprzak z adapterem do Atari SIO i sytuację wczytywania gry Gauntlet (cała kaseta C-60, po jednej stronie gra, po drugiej poziomy) - bokiem kompletnie nie pamiętam o czym była ta gra, ale to, że aby zagrać trzeba było poczekać pół godziny chodząc po pokoju na palcach wystarczyło, aby mój porypany mózg zakodował nazwę :D.
Tak więc:
# echo 1024 > /proc/sys/dev/rtc/max-user-freq
# modprobe -v kqemu
insmod /lib/modules/2.6.20-gentoo-r8/misc/kqemu.ko major=0
$ qemu-img create -f qcow2 winda.img 4G
Formating 'winda.img', fmt=qcow2, size=4194304 kB
$ qemu -cdrom /dev/hdc -hda winda.img -boot d -localtime -no-reboot
$ cp winda.img winda-stage1.img
$ qemu -cdrom /dev/hdc -hda winda.img -boot c -localtime -no-reboot
$ cp winda.img winda-stage2.img
Pozostało ostatnie uruchomienie (część która nie działała), gdzie założymy konto użyszkodnika i takie cuda.
$ qemu -cdrom /dev/hdc -hda winda.img -boot c -localtime -no-reboot
Sprawdzamy czy sieć działa (powinna) pingując adres 10.0.2.2 ( można też włączyć eksplozjator internetu, dają go w komplecie ;-) ), jeśli odpowiada, wszystko powinno być ok i można kliknąć w kluczyki od Aktywacji windows.
Po zakończeniu aktualizacji Windows, a przed zainstalowaniem czegokolwiek warto zrobić kolejną kopię obrazu dysku, co znacznie skróci czas w przypadku konieczności wykonania format c:/
.
Co dalej? Myślę, że po aktualizacji systemu warto zabrać się za odpalenie sieci w wposób bardziej normalny, tak aby zasoby wirtualnego PCta było widać po Sambie w systemie właściwym i tyle.
Na koniec tymczasowy skrypt startowy, jeśli okaże się ostatecznie, że Windows na qemu spełnia pokładane w nim nadzieje, zrobi się to porządnie, a do tego czasu niech jest trochę dziwnie.
start-win.sh
#!/bin/bash
lsmod | grep kqemu || su -c "modprobe -v kqemu"
if [ -z $(grep 1024 /proc/sys/dev/rtc/max-user-freq) ]
then
su -c "echo 1024 > /proc/sys/dev/rtc/max-user-freq"
fi
qemu -m 256 -hda winda.img -boot c -localtime -no-reboot
i jeszcze kilka obrazków.
P.S. W komentarzu do poprzedniego wpisu Michał Górny zwraca uwagę na to, że istnieje już od jakiegoś czasu eselect-compiler zastępujący gcc-config w zadaniu zmiany aktualnie używanej wersji gcc. Istnieje i można użyć, ale jest jak na razie wciąż zamaskowany, czyli nie przewidziany do użytku dla ZU. Ale oczywiście można, choć eselect uprości zadanie w sposób raczej nieznaczny, a w przyszłości należy liczyć, że qemu będzie się kompilowało na nowym gcc, lub przynajmniej ebuild sam zajmie się kombinowaniem.
P.S.2 TrackBack jako PingBack? Da się?
Od dłuższego czasu chciałem się przyjrzeć qemu i postawić gdzieś windowsa który może się przydać jak się skrypty w firmie wysypią lub zaczną wymagać poprawek. Co mnie powstrzymywało to konieczność kompilowania qemu za pomocą starego gcc-3.3.6. Plan był taki, że spróbuję, jak będę naprawdę potrzebował windy, lub kiedy w końcu cudactwo zacznie się kompilować nowym gcc.
Stało się jeszcze inaczej (i dobrze, bo na razie winda nie chce współpracować), upgradeowałem Sun java do wersji 1.6, który również kompilować się chce tylko starym gcc (co za świat :D). Java problem załatwia sama (przełącza się na stare gcc i z powrotem na nowe po kompilacji), z qemu trzeba ręcznie.
No bo to tak:
coyote ~ # emerge -avD qemu
* qemu requires gcc-3 in order to build and work correctly
* please compile it switching to gcc-3.
* We are aware that qemu can guess a gcc-3 but this feature
* could be harmful.
Czemu się dziwimy (ebuild od java jakoś umie sam), ale się nie poddajemy i przełączamy gcc.
coyote ~ # gcc-config -l
[1] i686-pc-linux-gnu-3.3.6
[2] i686-pc-linux-gnu-4.1.2 *
coyote ~ # gcc-config i686-pc-linux-gnu-3.3.6
* Switching native-compiler to i686-pc-linux-gnu-3.3.6 ...
>>> Regenerating /etc/ld.so.cache... [ ok ]
* If you intend to use the gcc from the new profile in an already
* running shell, please remember to do:
* # source /etc/profile
coyote ~ # source /etc/profile
i mergujemy raz jeszcze, po czym przywracamy domyślne (nowe) gcc
coyote ~ # -avD qemu
coyote ~ # gcc-config -l
[1] i686-pc-linux-gnu-3.3.6 *
[2] i686-pc-linux-gnu-4.1.2
coyote ~ # gcc-config i686-pc-linux-gnu-4.1.2
* Switching native-compiler to i686-pc-linux-gnu-4.1.2 ...
>>> Regenerating /etc/ld.so.cache... [ ok ]
* If you intend to use the gcc from the new profile in an already
* running shell, please remember to do:
* # source /etc/profile
coyote ~ # source /etc/profile
coyote ~ # gcc-config -l
[1] i686-pc-linux-gnu-3.3.6
[2] i686-pc-linux-gnu-4.1.2 *
Trzeba to przetestować!
najłatwiej jakimś LiveCD, i najlepiej żeby to LiveCD było małe, tak małe jak Damn Small Linux.
$ qemu -cdrom dsl-3.3.iso -boot d -smp 2 -m 512
I co teraz, siedzę w firmie, jak to przetestować? Zciągnąłem z netu Damn Small Linux
$ qemu -cdrom dsl-3.3.iso -boot d -smp 2 -m 512
i już po chwili banan zaczyna się pojawiać na gębie bo zaczęło wykrywać sprzęt i wreszcie na desktopie pojawił się ... drugi desktop, progsy śmigają, net działa ... nie powinno być źle. Trzeba poczytać manual i zmontować hardziela dla windy.



No tak, tylko nie wziąłem poprawki, że windows to windows jest i nawet jeśli google podaje tylko instrukcje jak, które to zresztą instrukcje nie wykraczają zresztą poza "włącz i zadziała" to nie znaczy, że będzie ok.
W skrócie, instalka działa, instaluje się wszystko (koszmarnie wolno), ale z jakiegoś powodu nie jest zakładane (instalator nie pyta nawet)konto użytkownika, przez co po ostatnim restarcie Virtualnego grzyba winda niby jest, ale jej nie ma, bo nie działa.
Tak czy siak, jak widać na przykładzie Damn Small Linux sam emulator sprawdza się, świetnie, pobrałem z netu instalkę Ubuntu 7.05 Frywolny Fulmar i pewnie eksperymentalnie i jego postawię na udawanym kompie. Tyle, że jeśli to cudo ma mi się do czegokolwiek przydać to właśnie do jarnięcia windy... cuż, nikt nie mówił, że będzie łatwo, czyli ciąg dalszy nastąpi :D
Od kiedy pamiętam była taka rzecz która komputerom szła raczej powoli ... tak chodzi o pisanie po ekranie/konsoli. Było tak w moim 8 bitowym Atari 800XL, miały to moje wszystkie 16 i 32bitowe Atari, miał to grzyb
pod DOSem i piec
pod windą. Ma tę przypadłość wreszcie komputer z linuksami.
I tak niewiele da się zrobić, poza jednym. Nie trzeba pisać jak nie ma zamiaru się czytać, czyli mergujmy pod screenem...
Mam Gentoo i wszystko sobie komplikuj^W kompiluję. Po konsoli zapierdziela output przy którym Matrix screensaver to pryszcz, ja wpatruję się w monitor i udaję, że rozumiem, laski za moimi plecami ściągają majtki przez głowę... zaraz zaraz, przecież ja tu jestem sam, nikt kurka nie widzi, to po co?!
Mergowanie pod screenem ma wiele zalet: W odpiętym screenie, żaden burak nie wciśnie nam ^C w złym momencie, czy jak kto woli nie straszne nam omyłkowe zamknięcie nie tego okna z terminalem. Ale przede wszystkim pod screenem jest szybciej, bo nie spowalnia procesu kompilowania pisanie po ekranie
.
Mały eksperyment, polegał na wykonaniu tajemniczej operacji:
# time emerge -1 gedit
dwa razy pod rząd (teraz to mam ale dokładnie skompilowanego gedit'a ;-) na dwa sposoby. Sposób pierwszy to kompilowanie na konsoli ot tak po prostu dało w efekcie:
real 3m23.831s
user 2m54.395s
sys 1m55.055s
A sposób drugi to dokładnie to samo, ale na odpiętym (detached) screenie. i w efekcie dał:
real 2m44.168s
user 3m0.619s
sys 1m7.312s
Powyższe oczywiście potwierdza też genlop(no bo to prawda jest to co ma nie potwierdzać ;-) )
# genlop -t gedit
* app-editors/gedit
Mon Apr 30 15:16:10 2007 >>> app-editors/gedit-2.16.2-r1
merge time: 3 minutes and 20 seconds.
Mon Apr 30 15:24:55 2007 >>> app-editors/gedit-2.16.2-r1
merge time: 2 minutes and 41 seconds.
jeśli 3'20" to 100% czasu to skompilowanie takiego bzdetu jak gedit dało zysk w wysokości 20% ... warto? IMO tak. I oczywiście wiem, że ameryki nie odkrywam ... przed tymi którzy są sprawy świadomi, ale jest wielu takich co się nad tym nie zastanawiali, a podobny zysk mamy szanse otrzymać i w innych procesach gdzie spamowanie ekranu nic nam nie daje jeśli wszystko działa jak powinno czyli ... tylko spowalnia całość.
Paczki z muzyką z jamendo po pobraniu z torrenta mają tę wadę, że nazwy plików z okładkami albumów tworzone są na zasadzie Nazwa zespołu - Nazwa albumu.x.jpg
gdzie x jest jakąś liczbą. Przypuszczalnie jest im to do czegoś potrzebne, nie wiem planują kiedyś dodać możliwość umieszczenia w paczce kolejnych stron okładki czy coś. Niestety, żeby taki Rhythmbox chciał tę okładkę pokazać to musi się ona nazywać Cover.jpg.
No i było posprzątane... było ;-)
Ja tam co prawda na pisaniu skryptów w bashu się nie znam za bardzo jakoś, ale skrypt to skrypt nei ma tak, że się nie da nawet jak sie nie umie. Tak oto powstał przed chwilą cover-rename.sh:
#!/bin/bash
#find "$1" -name '*.1.jpg'
for file in $1*/*.?.jpg ;
do
dest=`dirname "$file"`/Cover.jpg;
cp "$file" "$dest";
echo "$file";
done
uruchamiany np tak:
$ ./cover-rename.sh ~/Media/Audio/jamendo.com/
/home/wariat/Media/Audio/jamendo.com/Avel Glas - Vent Bleu -- Jamendo - OGG Vorbis q7 - 2006.08.19 [www.jamendo.com]/Avel Glas - Vent Bleu.1.jpg
/home/wariat/Media/Audio/jamendo.com/Kapela na Dobry Dzień - Przez tę naszą wieś -- Jamendo - OGG Vorbis q7 - 2007.03.19 [www.jamendo.com]/Kapela na Dobry Dzień - Przez tę naszą wieś.1.jpg
wariat@coyote ~/skrypty/jamendo $
i już. Wewnątrz siebie wiem, że zamiast tego potworka z gwiazdek w pętli powinno się znaleźć wyjście z tego find, który jest schowany powyżej. Ale tu bash okazał się strasznie narowisty, a ja jak wspomniałem nie za bardzo ten tego ... więc find poczeka na wersje 2.0 ... która pewnie nigdy nie powstanie, bo najpierw z jakichś przyczyn to musiałoby przestać działać.
W każdym razie jeśli jeszcze ktoś miał ten kłopot i nie chciało mu się bardziej niż mnie to cuż powiedzieć ... enjoy!
Bateria w laptopie (i wszystkich innych urządzeniach) ma tę paskudną wadę, że jak się jej używa to ona się rozładowuje. Warto więc wiedzieć jaki jest jej stan i starać się prąd oszczędzać. Gnome-power-manager sobie z problemem radzi, jeśli wie co z baterią. W przypadku Toshiba Satellite P25-S609 (taki desktop udający laptopa) pewne informacje są domyślnie tajne ;-).
Bateria tak na prawdę ma pojemność 6450mAh która w tej chwili (komputer nie jest już od dawna nowy) realnie zmniejszyła się do ok. 5300mAh. Niestety /proc/acpi/battery/* raportuje w tym względzie bzdury.
Czy jest rozwiązanie? Jest, nazywa się omnibook i nie koniecznie dotyczy tylko produktów znanego producenta dobrych drukarek i przeciętnej reszty ;-). To do dzieła.
# echo "app-laptop/omnibook ~x86" >> /etc/portage/package.keywords
# emerge omnibook
I teraz tak, wiele modeli jest rozpoznawanych przez moduł, może i nasz?
# modprobe -v omnibook
insmod /lib/modules/2.6.19-gentoo-r5/char/omnibook.ko
# dmesg
omnibook: Driver version 2.20070211.
omnibook: Unknown model.
omnibook: Enabled features: version dmi.
# ls /proc/omnibook/
dmi version
Co stanowi, że nie śmiga bo laptop nie został przez moduł rozpoznany. Co teraz? Teraz otwieramy listę supportowanych komputerów i szukamy podobnego. W przypadku Toshiba Satellite P25-S609 jak się wydaje najlepiej odpowiadają wersje ectype=11 i ectype=12. W jaki sposób? Metodą prób i błędów, ectype=11 pasuje bo jest tam Satellite P20, bateria na takich ustawieniach działa, ale źle raportowana jest ilość możliwych ustawień podświetlenia ekranu. W tej chwili wydaje się, że ectype=12 w tym wypadku jest lepszym wyborem. Tak czy siak trzeba próbować i porównywać wyniki. Po dobraniiu porawidłowych wartości warto założyć feature request na stronie projektu omnibook, tak aby kolejna wersja modułu rozpoznawała nasz komputer bez większego kombinowania, w końcu takie wspomaganie developperół informacjami to też jakis malutki wkład w Wolne Oprogramowanie right?
# modprobe -vr omnibook
rmmod /lib/modules/2.6.19-gentoo-r5/char/omnibook.ko
# modprobe -v omnibook ectype=12 battery=1
insmod /lib/modules/2.6.19-gentoo-r5/char/omnibook.ko ectype=12 battery=1
omnibook: Driver version 2.20070211.
omnibook: Forced load with EC type 12.
omnibook: check_default_state timeout.
omnibook: EC state check failure, please report.
omnibook: LCD backlight turn off at console blanking is enabled.
omnibook: Enabled features: battery blank bluetooth display version dmi lcd temperature wifi throttling.
# ls /proc/omnibook/
battery bluetooth dmi temperature version
blank display lcd throttling wifi
# cat /proc/omnibook/battery
Battery: 0
Type: Li-Ion
Serial Number: 20152
Present Voltage: 16716 mV
Design Voltage: 14800 mV
Remaining Capacity: 5371 mAh
Last Full Capacity: 5371 mAh
Design Capacity: 6450 mAh
Gauge: 100 %
Status: charged
Youpiii! ;-) No to niech się teraz samo ładuje ;-)
# echo "options omnibook ectype=12 battery=1" > /etc/modules.d/omnibook
# modules-update
* Updating /etc/modules.conf ... [ ok ]
* Updating /etc/modprobe.conf ... [ ok ]
# modprobe -vr omnibook
rmmod /lib/modules/2.6.19-gentoo-r5/char/omnibook.ko
# modprobe -v omnibook
insmod /lib/modules/2.6.19-gentoo-r5/char/omnibook.ko ectype=12 battery=1
# echo omnibook >> /etc/modules.autoload.d/kernel-2.6
# reboot
I śmiga... Bateria jest poprawnie raportowana przez gnome-power-manager. W przypadku odcięcia zasilania ekran jest przygaszany, zanim prądu w baterii zabraknie, komputer się wyłączy. Czas po mału zebrać siły na zwalczenie suspend2-sources ;-)
Sprawa jest prosta, to że wcisnęli <WIN> w prawy górny róg klawiatury można wybaczyć. Nie wiem czy cokolwiek to utrudnia, nawet jeśli to żyć się z tym da.
Za to kategorycznie przegięli z dolnym rzędem, gdzie w kolejności po prawej od spacji są: Insert, Delete i dopiero AltGr. I weź tu człowieku napisz coś po polsku, jak Insert plus a
ni hu hu nie chce dawać ą
. Właściwie trudno się dziwić i trzeba naprawić. ;-)
Trochę byłem zmieszany, po tym jak wodzu, a później Smoku dali znać, że na bank się da, ale konkrety to gdzie indziej. Hinty były, ale wariat jak to wariat. Nie zrozumiał ;-)
Ostatecznie zaczęło się grzebanie w okolicach /usr/share/X11/xkb/ i jest. Działa!
Cała magia to:
Na patchach to ja się nie znam, ale to by było chyba jakoś tak: Insert & AltGr swap patch.
Istnieje co prawda ryzyko, że przy aktualizacji systemu coś się przywróci, ale zmiana jest tak trywialna, a upierdliwość alta poza zasięgiem kciuka tak duża, że warto ;-). Jak się sprawdza? DOSKONALE SIĘ SPRAWDZA! :D
Się uparłem i przy okazji upgrade do gnome-2.16 (wiem, wiem to już staroć :D ) wpadłem na mam nadzieję nie kompletnie głupi pomysł, żeby przestawić locale na pl_PL.UTF-8.
Zakładam, że poprzestawiałem wszędzie gdzie powinienem i objawiły się jak na razie dwa problemy:
Problem pierwszy rozwiązałem (nie wiem tylko na ile rozsądnie) zmieniając w /etc/man.conf linijkę od NROFF na:
TROFF /usr/bin/groff -Tps -mandoc
NROFF /usr/bin/nroff -Tlatin1 -c -mandoc | iconv -f latin2 -t utf8
JNROFF /usr/bin/groff -Tnippon -mandocj
I działa, ale nie wiem czy nie można tego jakoś lepiej.
Problem drugi pozostaje nierozwiązany a drażni strasznie, ojjjj strasznie :D.
Zaktualizowałeś jajko do wersji 2.6.18 i neostrada via Speedtouch-usb 330 vel żaba przestała działać? Wszystko jest na bank dobrze, a w dmesg dostajesz dość losowe komunikaty o tym, że formware nie ma (choć jest), lub się nie ładuje?
# cd /lib/firmware
# ln -s speedtch-1.bin.4 speedtch-1.bin.4.00
# ln -s speedtch-2.bin.4 speedtch-2.bin.4.00
I powinno być dobrze, u mnie na jajku 2.6.18-r3 działa.
Przy okazji po raz kolejny okazuje się, że warto w miejscach gdzie net jest niepewny (przez neostradę) przed poważną aktualizacją zrobić do końca:
emerge --sync && emerge -vuD --fetchonly world
Czasami jest tak, że siedzi człowiek na modemie
, do komputera gdzie chciałoby się pogrzebać droga daleka (po ssh), a komputer dorosły (stary) i skleroza już nie ta (128MB RAM) dostojnie więc (powoli) wykonuje polecenia.
Tak sobie siedziałem i myślałem wpadając raz na jakiś czas w odwiedziny do Marvina, żeby sprawdzić "czy to już", aż w pewnym momencie wymyśliłem coś co zapewne wielu już wymyśliło wcześniej...
Marvin ~ # emerge glibc && mailto -s "skompilowalem glibca, Marvin" +48601nnnnnn@text.plusgsm.pl < /dev/null
[detached]
Marvin ~ # exit
logout
Connection to Marvin closed.
I po trochę ponad godzinie (mówiłem, że Marvin to demon prędkości jest :D ) ... Ding! Dong! 1 nowa wiadomość
Od: 119999
Internetowa bramka SMS:
<username@example.com>
(skompilowałem glibca, Marvin)
Działa! :D
Co prawda nic z tego nie wyjdzie jeśli nie uda się wbić do SMTP za pierwszym razem, ale to nie jest w końcu aż tak ważna informacja. Oczywiście jeśli mieć u siebie postfixa w/w problem nie występuje.
A skoro wymyślono już to wcześniej (wszystko już ktoś kiedyś wymyślił), to może ktoś wie jak zrobić to lepiej?
*openssl-0.9.8c-r2 (18 Sep 2006)
18 Sep 2006; Mike Frysinger <vapier@gentoo.org> files/gentoo.config-0.9.8, -openssl-0.9.8c-r1.ebuild, +openssl-0.9.8c-r2.ebuild: Force people to re-emerge openssl on i686 so that they get the optimized version. You will probably have to re-emerge openssh/etc... if you experience troubles. Openssl sucks sometimes.
httpd.conf:
<Directory "/var/www/wariat.org.pl/htdocs">
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
to dlaczego:
log/apache/wariat.org.pl-error_log:
[Mon Sep 26 01:46:47 2005] [error] [client 217.96.160.167] Symbolic link not allowed: /var/www/wariat.org.pl/htdocs/smietnik
???
* Regenerating GNU info directory index... * Processed 127 info files. * IMPORTANT: 42 config files in /etc need updating. * Type emerge --help config to learn how to update config files.mi śmierdzi zbliżającą się awarią :D
*** Smoku - Tomasz STERNA is Online [ :(){:|:};: ]
(21:56:28) Smoku - Tomasz STERNA: widzisz co mam w opisie?
(21:57:20) Smoku - Tomasz STERNA: wpisz to w bashu
No to wpisalem ... Albański wirus zakorbił ... o jak zakorbił ... mam load tysiąclecia:$ uptime 22:12:32 up 18 days, 20:02, 2 users, load average: 270.07, 414.07, 781.64
