Instalace Debian Sarge z disku s GRUB 2

Nezařazené No Comments »

Poměrně často rozjíždím nějaké vzdálené servery v serverovnách většinou někde za mořem a zkušenosti se dost různí. Jelikož na většině serverů používám LVM a mám v tom rád jakýs takýs pořádek, jsem mnohem raději, když si můžu server nainstalovat sám.

Bohužel běžná je situace, kdy objednáte server s přístupem přes KVM, dáte požadavek na rozjetí instalace konkrétní verze instalace, ale hlavně na to, aby vás k té instalaci v průběhu pustili… a místo toho co chcete nakonec obdržíte nadšený mail z housingu, že jsou šikovní a už to mají.

Možnosti se pak různí. Buď prostě pokračujete s tím co máte, nebo máte šikovné KVM, které umí nahrát remote image a přes něj si na dálku připojíte nějaké malé iso. A nebo pouze nějaké hloupé KVM či jinou remote konzoli a říkáte si co teď s tím. Šikovným řešením je rozjet instalaci přímo z disku přes grub.

Příprava stroje

Nejdříve je potřeba mít nějakou partition, na kterou si data nahrajete a ta musí být pokud možno odlišná od té s přeinstalovávaným systémem. Pokud totiž vše dáte na stejnou partition, budete mít dost složitou instalaci při změně partitions.

Jednoduchým řešením je využití swapu. Dejme tomu, že je na /dev/sda1

swapoff /dev/sda1
mkfs.ext4 /dev/sda1
mkdir /newinstall
mount /dev/sda1 /newinstall

Do adresáře nyní musíte stáhnout instalační obrazy pro grub (označeno jako hd-media) a samozřejmě i nějaký cd image, např. netinst.

cd /newinstall
wget http://ftp.cz.debian.org/debian/dists/squeeze/main/installer-amd64/current/images/hd-media/initrd.gz
wget http://ftp.cz.debian.org/debian/dists/squeeze/main/installer-amd64/current/images/hd-media/vmlinuz
wget http://cdimage.debian.org/debian-cd/6.0.3/amd64/iso-cd/debian-6.0.3-amd64-netinst.iso

Následně si otevřete /boot/grub/grub.cfg a najděte, kde v něm jsou položky menuentry. Jako první přidejte

menuentry 'install' --class debian --class gnu-linux --class gnu --class os {
        insmod part_gpt
        insmod ext2
        set root='(hd0,gpt1)'
        linux   /vmlinuz
        initrd  /initrd.gz
}

Pozor, tady se může váš zápis samozřejmě značně lišit. Zaprvé nemusíte používat gpt oddíly, zadruhé můžete mít jiný oddíl, takže dejte pozor na správné nastavení typu oddílu a správné nastavení root (běžně je např. (hd0,0) a spol). Pokud máte přístup alespoň přes konzoli, dá se situace případně později napravit ruční editací v grubu.

Končíme

No a to je v podstatě vše. Stačí restartovat, stroj by měl naskočit rovnou do instalace a vy můžete pokračovat tak, jak jste zvyklí. Jen při přerozdělování disku nezapomeňte, že nesmíte smazat oddíl, na kterém máte stažené soubory.

A na závěr upozornění, které mělo být na začátku. Píšu to zpaměti a je možné, že je pár chybek, kontrolujte proto co děláte a snad to dopadne.

Upgrade BIOSu s FreeDOS

Nezařazené No Comments »

Našel jsem konečně jednoduchý návod, jak si rychle nachystat bootovací CD z Linuxu s vlastními soubory, třeba právě BIOSem. Bootovací disketa je už bohužel minimálně u Supermicra minulostí, jejich BIOS má přes 4MB.

Takže jdeme na to. Opět to vezmu stručně, mělo by stačit copy & paste. V /tmp oddílu je potřeba mít alespoň 30 až 40MB volného místa :)

Nejdříve si připravíme adresáře pro práci

mkdir /tmp/freedos/
cd /tmp/freedos
mkdir iso biosiso

Stáhneme si poslední mini iso pro FreeDOS.

wget http://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/distributions/1.0/fdbasecd.iso

Připojíme iso do připraveného adresáře a zkopírujeme si všechny soubory

mount -o loop fdbasecd.iso iso
cp -a iso/* biosiso/
cd biosiso

Teď přichází „nejtěžší“ část. Upravit vše tak, aby se namísto instalace spustil FreeDOS přímo nad naším CD a daty. Je potřeba editovat jeden soubor. Buď to můžete ručně přidat za řádek set fdosroot= nový řádek goto end nebo použijte následující sed, který by to snad měl zvládnout. Je ovšem možnost, že s novou verzí freedosu by to neprošlo, proto ponechávám info o ruční editaci.

sed -r "s/^(set fdosroot=.*)$/\1\n\ngoto end/" setup.bat

Tím jsme skoro hotovi. Stačí nakopírovat vlastní soubory, pokud budu mít např. nový bios v souboru /tmp/bios123.zip, tak následujícím příkazem jej rozbalíme do nového adresáře bios, který bude po bootu na CD.

unzip /tmp/bios123.zip -d bios

Nakonec je potřeba z našeho dočasného adresáře vytvořit funkční ISO soubor

mkisofs -o ../freedos_biosupdate.iso -q -l -N \
-boot-info-table -iso-level 4 -no-emul-boot \
-b isolinux/isolinux.bin -publisher "FreeDOS - www.freedos.org" \
-A "FreeDOS with bios 123" -V FDOS_SUPBIOS -v .

A máte hotovo. ISO si vypalte, nabootujte na počítači, kde je potřeba. Na úvodní obrazovce zvolte 1 pro FreeDOS a následně vyberte, že chcete provést instalaci. Dále je to již jen na vás.

Jak zrychlit Android s Dalvik Jit

Návody No Comments »

Na AllDroid fóru se objevilo HOWTO na zrychlení Androidu s Dalvik Jit (Just in time compiler) pro milestone. Podle komentářů na Světu Androida funguje i na G1, takže hůrá na to.

V prvé řadě upozornění: Vše děláte na vlastní riziko. Tento článek je zde pouze pro pomoc těm, kteří se bojí angličtiny nebo zaváhali v některém kroku, nejsem autorem tohoto vylepšení.

Nezapomeňte si udělat zálohu, ideálně přes switchrom nebo podobné.

Pro jednoduchost předpokládám, že pracujeme na Linuxovém stroji, že máte připojenou G1 (nebo milestone, ostatní nevím jak na tom jsou) do USB a že máte příkaz adb v PATH (pokud napíšete adb a vypíše se vám nápověda, pak je to ok).

Všechny příkazy provádíme přímo na počítači, na telefon přistupujeme pro pohodlnost přes adb.

Nejdříve přepneme telefon do recovery módu, buď klasicky držením home při restartu nebo přes adb

adb shell 'reboot recovery'

Jakmile se telefon přepne do recovery módu, můžeme začít:

# nejdříve připojíme adresáře, které v recovery módu nemáme
adb shell 'mount /sdcard/'
adb shell 'mount /system/'
adb shell 'mount -o remount,rw /system/'

# vytvoříme si na adresáře pro soubory, stáhneme a rozbalíme
mkdir /tmp/jit
cd /tmp/jit
wget 'http://alldroid.org/download/file.php?id=1374' -O vmlibs.zip
unzip vmlibs.zip

# nahrajeme soubory na kartu do telefonu
adb shell 'mkdir /sdcard/jit'
adb push libdvm.so /sdcard/jit/
adb push libnativehelper.so /sdcard/jit/
adb push bin/dalvikvm /sdcard/jit/

Nyní pustíme adb shell a budeme pokračovat přímo na telefonu. Nejdříve zálohujeme přepisované soubory a následně nahrajeme upravenou verzi dalviku.

# spustime shell
adb shell

# udelame zalohu
mkdir /sdcard/dalvik_backup
cp /system/build.prop /sdcard/dalvik_backup/
cp /system/bin/dalvikvm /sdcard/dalvik_backup/
cp /system/lib/libdvm.so /sdcard/dalvik_backup/
cp /system/lib/libnativehelper.so /sdcard/dalvik_backup/

# a ted uz zacneme menit soubory
echo "dalvik.vm.execution-mode=int:jit" >> /system/build.prop
cp -f /sdcard/jit/dalvikvm /system/bin/
busybox chmod 755 /system/bin/dalvikvm
cp -f /sdcard/jit/libdvm.so /system/lib/
cp -f /sdcard/jit/libnativehelper.so /system/lib/
chmod 644 /system/lib/libdvm.so
chmod 644 /system/lib/libnativehelper.so
chmod 666 /system/build.prop
sync
mount -o remount,ro /system
reboot

A pokud budete mít štěstí a telefon nabootuje, měli byste poznat jasné zrychlení.

Já chci zpátky

Pokud chcete vše vrátit do původního stavu (pokud jste postupovali dle návodu výše), opět přejděte do recovery módu a použijte následující:

# spustime shell
adb shell
mount /sdcard/
mount /system/
mount -o remount,rw /system/
sed -i "s/dalvik.vm.execution-mode=int:jit//" /system/build.prop
cp -f /sdcard/dalvik_backup/dalvikvm /system/bin/
busybox chmod 755 /system/bin/dalvikvm
cp -f /sdcard/dalvik_backup/libdvm.so /system/lib/
cp -f /sdcard/dalvik_backup/libnativehelper.so /system/lib/
chmod 644 /system/lib/libdvm.so
chmod 644 /system/lib/libnativehelper.so
chmod 666 /system/build.prop
sync
mount -o remount,ro /system
reboot
Štítky:, ,

Magnet linky, RSS a další v GNOME a Google Chrome

Krátké tipy No Comments »

Pokud jste propadli Google Chrome stejně jako já, dříve či později narazíte na potřebu otevřít některé speciální URL schémata, jako např. magnet:// nebo častější feed:// (pro RSS linky).

Google Chrome má mě velmi sympatickou filozofii, ponechat co jde na systému, na kterém běží a neřešit vše speciálně. Takže stejně jako například při přidávání nového certifikátu i tady se musíte vrhnout na nastavení někde hlouběji.

Přidání URL schématu v GNOME

Jako většina věci, i tohle se samozřejmě dělá přes GConf. Stačí přidat správné klíče do cesty /desktop/gnome/url-handlers. Pro zjednodušení jsem si napsal krátký „skriptík“ add_url_handler, který stačí přidat někam do vaší cesty pro spouštění programů.

#!/bin/sh

gconftool-2 -t string -s /desktop/gnome/url-handlers/$1/command "$2 %s"
gconftool-2 -s /desktop/gnome/url-handlers/$1/needs_terminal false -t bool
gconftool-2 -t bool -s /desktop/gnome/url-handlers/$1/enabled true

No a teď už jen zavoláte pro jaké schéma se má nastavit jaký program. Pro dvě již uvedené je to například u mě takto

add_url_handler feed liferea-add-feed
add_url_handler magnet /usr/bin/fatrat
Štítky:, ,

Aktuální větev gitu v příkazové řádce

Krátké tipy No Comments »

Pokud často poletujete v příkazové řádce mezi více projekty, můžete se začít ztrácet v tom, jakou že větev máte aktivní v aktuálním adresáři.

Samozřejmě je možné napsat git branch pokaždé, když si nejste jisti, ale přeci jen programátoři jsou líné kůže a tak jsem si napsal drobné vylepšení.

Upozorňuji, že kód není zrovna optimální a v podstatě po každém příkazu znovu kontroluje, zda jste v gitu a jaká je větev, určitě by vše šlo vylepšit nějakou menší cache.

gitbranch() {
  if [ `git branch 2>&1| grep 'Not a git' | wc -l` -eq 0 ]; then
    git branch | grep '^*' | sed -r 's/^\* (.*)$/ [\1]/'
  fi
}

export PS1="$PS1\$(gitbranch)"

Důležitý je hlavně backslash před voláním funkce, v opačném případě by se příkaz vykonal pouze při definici proměnné a nevolal se znovu při změnách adresáře.

Samozřejmě dál si už můžete upravit proměnnou PS1 dle libosti, místo hranatých závorek dát cokoliv vás napadne a případně i použít nějaké barvičky.

Štítky:,

Synchronizace kontaktů – Gmail, G1 a Mutt

Návody No Comments »

Nedávno jsem se přece jen rozhodl a pořídil si konečně mobil s linuxem. Pravda je, že nejsem velkým přítelem ukládání čehokoliv osobního u Google, ale pohodlí nakonec převážilo.

G1 se vás hned při prvním startu zeptá na přihlašovací údaje ke Google účtu a poté zapne automatickou synchronizaci vašich kontaktů, kalendáře a mailu. GMail jako takový nepoužívám, takže pro mě vše slouží pouze jako úložiště pro kontakty a kalendář. Velkou výhodou je to, že i při resetování telefonu nebo nahrávání nových firmware se nemusím bát o své kontakty, vždy pak stačí pouze syncnout.

Nastavení synchronizace Google kontaktů a kalendáře s Evolution byla hračka, jenže většinu času používám pro mail Mutt a za chvíli přišla na řadu otázka, jestli by náhodou nešly kontakty i do něj.

Synchronizace kontaktů

Ke Gmailu a dalším službám je věřejně dostupné API a právě toho využívá skript dostupný na http://code.google.com/p/goobook/source/checkout

Stáhněte si zdrojové kódy, nakopírujte někam do $PATH, abyste mohli gobook použivat i mimo Mutt a nastavte si v settings.py přihlašovací údaje na svůj google účet.

cd /tmp/
svn checkout http://goobook.googlecode.com/svn/trunk/ goobook
cp goobook/goobook.py ~/bin/
cp goobook/settings_example.py ~/bin/settings.py
vim ~/bin/settings.py

V .muttrc pak stačí přidat řádky

set query_command="~/bin/contacts '%s'"
bind editor <Tab> complete-query

A je hotovo. Stačí dát m pro napsání nového mailu, napsat začátek jména, stisknout jednou či dvakrát Tab a jména se doplňují. Vše se navíc cachuje, rychlost odezvy je výborná.

Štítky:, ,

2 monitory, projektor, TwinView a Xinerama

Nezařazené No Comments »

Nedávno jsem si domů pořídil druhé LCD a začal si užívat pohodlí, které přináší. Problém nastal hned ve chvíli, kdy jsem se chtěl koukat na film – grafika má pouze dva DVI výstupy a tak nastalo odsouvání monitoru, přehazování kabelů a přepínání rozlišení pokaždé, když jsem chtěl na něco mkrnout.

Tento článek není dokončený, průběžně budu upravovat a doplňovat informace.

Přestalo mě to bavit poměrně rychle a začaly padat řešení: koupit kartu s více výstupy, najít nějaký přepínač nebo přikoupit další slabší kartu jen na projektor. První řešení vychází dost draze, zvlášť když chcete na počítači i hrát, u druhého jsem nevěřil tomu, že nezpůsobí další problémy a tak přišel na řadu nákup další karty…

Výběr karty

Výběr karty byl poměrně jednoduchý. X.Org sice zvládají bez problémů více karet od různých výrobců, ale proč mít zbytečně natáhnutých více ovladačů a řešit další probémy. K stávající pasivní GeForce 9600 GT se tak přidala další pasivka GeForce 8400 GS.

Co se týče výkonu, stačila by mi i mnohem slabší karta, jenže starší karty již nejsou podporovány v novějších ovladačích. Pokud budete něco podobného řešit, určitě si dejte pozor na místo v bedně, u mě to vyšlo dost natěsno, 9600 GT totiž zabírá dva sloty.

Na co myslet při výběru karty

  • zvážit, jestli radši nebudete přepínat kabely :)
  • zjistit, jestli máte v počítači další slot na grafiku, ne každá bedna má dva PCI Express nebo AGP sloty. Vždy můžete ale pořídit grafickou kartu do PCI. Bohužel většinou vychází podstatně dráž.
  • zajistit si správné chlazení

Nastavení v X.Org

A tady přišel kámen úrazu. Se svou neoblomnou důvěrou v to, že v linuxu je možné vše jsem dopředu příliš materiálů nečetl a skončil s dosti rozporuplnými dojmy. TwinView totiž umí jen dva monitory a třetí musíte přidat jako samostatnou Screen a to ještě není všechno. Jakmile jsem přidal další screen TwinView přestalo TwinViewovat a já skončil u čtení diskuzí a experimentování.

Pokud jsem správně pochopil, tak vše funguje tak, že aplikace dostávají přes knihovnu Xineramy informace o tom, jaké rozlišení máte na které obrazovce a proto se vám správně maximalizují okna. TwinView jako takové využívá pouze jednu screen pro dva monitory, ale přes své vlastní volání aplikacím podstrkuje rozložení, které chcete.

Celý problém je v tom, že aktivuje-li se v X.Org Xinerama, TwinView přestane pro X poskytovat informace o rozložení monitorů a obraz se roztáhne přes oba monitory, stejně tak se maximalizují okna a vše ostatní. V dokumentaci se doporučuje využít volby TwinViewXineramaInfoOrderOverride, což u mě vůbec nezabralo.

Option         "TwinViewXineramaInfoOrderOverride" "1680x1050+0+0, 1680x1050+1680+0, 1024x768+3360+0"

fakexinerama

Nebudu vás napínat, doteď jsem problém plně nevyřešil, ale nejrychlejším řešením je projektík fakexinerama, který upraví knihovnu xineramy pro zjištění informací o rozložení monitorů z vašeho konfiguračního souboru. Ano, je to dosti neflexibilní a má to neodstatky, ale aspoň nějak to funguje.

V knihovně jsem si upravil cesty ke konfiguráku na globální /etc/fakexinerama, nastavil ho, zkompiloval knihovnu, restartoval X a vše relativně jede.

$ cat /etc/fakexinerama
3
0 0 1680 1050
1680 0 1680 1050
3360 0 1024 768

Zbývající problémy

  • na projektoru je stejné virtuální rozlišení jako na prvních dvou monitorech, tzn. konfigurační část fakexinerama zdatně ignoruje
  • po aktualizaci mplayer na poslední SVN se bohužel video v celoobrazovkovém režimu roztahuje přes virtuální plochu stejně jako okna ve window manageru
  • na projektor nelze přetahovat okna (nepoužívá se přímo Xinerama), myš a klávesnice se ale sdílí
  • bylo by pěkné moci nějak deaktivovat kartu pokud se nepoužívá (úspora energie tepla a podobně)

Čas si opět něco zapsat

Různé 1 Comment »

Už dlouho si pohrávám s myšlenkou si zase zapsat poznatky a nápady nějak viditelněji. V první řadě proto, abych vše nemusel hledat znovu a znovu a pak taky abych případně pomohl nějakým zoufalcům, kteří řeší podobné problémy jako já nebo zpropagoval své služby.

I přes použití blogovací platformy bych toto nenazýval blog, spíš takový poznámkovník, ale uvidíme co se z toho vyvine.

Pokud by opravdu úplnou náhodou ještě někdo potřeboval vyštrachat některý z mých starších článků, přehodil jsem své původní stránky na http://old.kepi.cz/ a upravil linky, takže vše je snad při starém.

Štítky:

© 2003-2009 Kepi.cz | Webhosting | Powered by WordPress