alix2d3 + debian lenny

Žiūriu daugiau nei metai praėjo nuo paskutinio rimtesnio įrašo mano livejournale. Reik mėginti taisyti klaidą.

Taigi, beieškodamas padoraus routerio namams, apsistojau ties ALIX 2D3. Atsiėjo nepilnai 400lt. Kas jame bus? Ogi, kaip bebūtų keista, debian :)

Pagrindiniai privalumai mano akimis žiūrint:
  • OS - CF kortoj (komplektacijoj eina no brand 1gb)
  • padorus procas ir ramo kiekis (usb neturėtų stabdyti)
  • 2xUSB (kam pirkt routerį be usb, jei yra su?)
  • mini pci lizdas (tarkim wirelesui)
  • jungtis laptopiniam IDE hardui (neturėjau po ranka, bet iš pirmo žvilgsnio atrodo kad pavyks sutalpint korpusan.)
  • mažas, be ventiliatoriaus, tačiau tetrūksta VGA ir būtų galima naudoti kaip namų kompą su kokiu puppy linux ar DSL :)
Taip pat papildomai įsigijau:
  • kingston 8gb low-end CF (~60lt)
  • pirma pasitaikius mini-pci (ne mini pci-e) wifi korta su atheros chipu (apie 40lt berods)
  • antena ir gražtelis metalui (kapeikos)
Gražto reikėjo, nes korpuse nebuvo skylės antenai :) Dabar yra tarp dviejų kondensatorių kairėj pusėj - sakyčiau geriausia vieta, jei žadi vidun dar ką nors kišt.

Taigi instaliavimas. Kiekvienos komandos eilutę pradėsiu simboliu #:
  • kišam CF kortą į usb cardreaderį ir jungiam prie linuxinio kompo. Deja, CF kortai neturėjau skaitytuvo, tai teko jungt per printerį :)
  • pažiūrim kokiu vardu korta kompe (mano atveju - /dev/sdc), suformatuojam ją ir prisimountinam. Aš pasirinkau ext3 ir vieną particijąviskam:
  • # cfdisk /dev/sdc
    # mkfs.ext3 /dev/sdc1
    # mkdir /target
    # mount /dev/sdc1 /target

  • instaliuojame į kortą minimalią sistemą, bei persijungiame (kaip chroot lietuviškai?) į ją. Laukti gali tekti ilgai. Debiano mirorą naudokite tą, kuris jums greičiausiai veikia.
  • # apt-get install debootstrap
    # debootstrap --arch=i386 lenny /target/ http://debian.balt.net/debian
    # mount -t proc none /target/proc
    # mount -o bind /dev /target/dev
    # chroot /target /bin/bash

  • Redaguojam paketų repozitorijas pagal skonį, ir atnaujinam sistemą.
  • # vi /etc/apt/sources.list
    deb http://debian.balt.net/debian lenny main non-free contrib
    deb http://security.debian.org/ lenny/updates main contrib non-free
    deb http://debian-multimedia.org/ lenny main
    # apt-get update && apt-get upgrade

  • Pakeičiam /etc/kernel-img.conf, nes kitaip keiksis instaliuojant kad grubas automatiškai initrd neras:
  • # vi /etc/kernel-img.conf
    do_symlinks = Yes
    do_initrd = Yes

  • Pats laikas įrašyt kernelį, bootloaderį (grub) ir paketus, be kurių gyvent negaliu :)
  • # apt-get -y install grub linux-image-2.6-486 iproute nmap htop vim screen netcat makepasswd rsync mc ntpdate lftp postfix sudo iptraf openssh-server less deborphan ccze locales-all bzip2 telnet hdparm apt-file debian-multimedia-keyring cron-apt usbutils pciutils dnsutils dig whois mtr-tiny


  • Sukonfigūruojame grub'ą, sukuriame naują menu.lst failą:
  • # mkdir /boot/grub/
    # cp -a /usr/lib/grub/i386-pc/* /boot/grub/
    # vi /boot/grub/menu.lst
    serial --speed=38400
    terminal serial
    timeout 2
    default 0
    title lenny
    root (hd0,0)
    kernel /vmlinuz root=/dev/hda1 console=ttyS0,38400n8
    initrd /initrd.img

  • Modifikuojam inittab'ą: iškomeentuojame visas tty eilutes, ir atkomentuojame/pakeičiame ttyS0 (jei naudosime serial consolę, 64 eilutė):
  • # vi /etc/inittab
    :54,59 s/^/#/
    :64
    T0:23:respawn:/sbin/getty -L ttyS0 38400

  • sukuriame fstabą:
  • # vi /etc/fstab
    proc /proc proc defaults 0 0
    /dev/hda1 / ext3 noatime,errors=remount-ro 0 1

  • Pasižiūrėję, kuris diskas pagal grubo devisus dabar yra CF korta, į jį įrašome grubą pere grubo kosolę:
  • # cat /boot/grub/device.map
    (hd0) /dev/sda
    (hd1) /dev/sdb
    (hd2) /dev/sdc

    # grub
    grub> root (hd2,0)
    Filesystem type is ext2fs, partition type 0x83

    grub> setup (hd2)
    Checking if "/boot/grub/stage1" exists... yes
    Checking if "/boot/grub/stage2" exists... yes
    Checking if "/boot/grub/e2fs_stage1_5" exists... yes
    Running "embed /boot/grub/e2fs_stage1_5 (hd2)"... 17 sectors are embedded.
    succeeded
    Running "install /boot/grub/stage1 (hd2) (hd2)1+17 p (hd2,0)/boot/grub/stage2 /boot/grub/menu.lst"... succeeded
    Done.

    grub> quit

  • Dar keletas reikalų prieš užbaigiant.
  • # passwd

    # vi /etc/hosts
    127.0.0.1 localhost

    # vi /etc/hostname
    <įrašom vardą>

    # vi /etc/network/interfaces
    auto lo
    iface lo inet loopback

    allow-hotplug eth0
    iface eth0 inet static
    address 192.168.1.13
    netmask 255.255.255.0
    gateway 192.168.1.1

    # exit
    # umount /target/proc
    # umount /target/dev
    # umount /target

  • traukiam kortą ir surenkam alixą. Toliau galima tvarkytis per ssh. eth0 portas - artimiausias prie maitinimo. Pasijungę galim atlikti keletą darbų, kurie tikrai nepakenks: sutvarkome datą (ntp servą taip pat naudokit sau artimiausią), pranešimus apie galimus atnaujinimus, firewallo taisyklių išsaugojimą perkraunant alixą, swap failą:
  • # ntpdate laguna.balt.net
    5 May 20:09:38 ntpdate[1699]: step time server 195.14.160.14 offset 294868510.496777 sec

    # echo '#!/bin/sh
    ntpdate laguna.balt.net' > /etc/cron.daily/ntpdate
    chmod 755 /etc/cron.daily/ntpdate
    dpkg-reconfigure tzdata

    # vi /etc/cron-apt/config
    MAILTO="tavo@email.as"
    MAILON="upgrade"

    # vi /etc/network/interfaces
    pre-up iptables-restore < /etc/iptables.conf
    post-down iptables-save > /etc/iptables.conf

    # dd if=/dev/zero of=/swapfile bs=1M count=512
    # mkswap /swapfile
    #swawpon /swapfile
    # vi /etcfstab
    /swapfile swap swap defaults 0 0

  • Šviesos diodų kontrolė. juos valdyti bus galima per /sys/class/leds/alix:[1-3]/

    # apt-get -y install leds-alix-source
    # cd /usr/src
    # tar xjf leds-alix.tar.bz2
    # cd /usr/src/modules/leds-alix
    # make install
    # modprobe leds-alix
    # echo "leds-alix" > /etc/modules

  • wirelesas veikia iš dėžės su ath5k moduliu. Norint naudoti šią kortą kaip access pointą reikia sukišt madwifi, nurodyti moduliui mode ir naudoti hostapd:
  • # apt-get install wireless-tools wavemon hostapd module-assistant
    # m-a prepare
    # m-a a-i madwifi
    # vi /etc/modprobe.d/madwifi
    options ath_pci autocreate=ap

Kaip sukonfiginti hostapd ir tinklą palieku jūsų fantazijai. Pabaigai šiek tiek statistikos ir nuotraukų iš eigos:
Collapse )

# lspci
00:01.0 Host bridge: Advanced Micro Devices [AMD] CS5536 [Geode companion] Host Bridge (rev 33)
00:01.2 Entertainment encryption device: Advanced Micro Devices [AMD] Geode LX AES Security Block
00:09.0 Ethernet controller: VIA Technologies, Inc. VT6105M [Rhine-III] (rev 96)
00:0a.0 Ethernet controller: VIA Technologies, Inc. VT6105M [Rhine-III] (rev 96)
00:0b.0 Ethernet controller: VIA Technologies, Inc. VT6105M [Rhine-III] (rev 96)
00:0c.0 Ethernet controller: Atheros Communications Inc. AR5212/AR5213 Multiprotocol MAC/baseband processor (rev 01)
00:0f.0 ISA bridge: Advanced Micro Devices [AMD] CS5536 [Geode companion] ISA (rev 03)
00:0f.2 IDE interface: Advanced Micro Devices [AMD] CS5536 [Geode companion] IDE (rev 01)
00:0f.4 USB Controller: Advanced Micro Devices [AMD] CS5536 [Geode companion] OHC (rev 02)
00:0f.5 USB Controller: Advanced Micro Devices [AMD] CS5536 [Geode companion] EHC (rev 02)

# lsusb
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

# cat /proc/cpuinfo
processor : 0
vendor_id : AuthenticAMD
cpu family : 5
model : 10
model name : Geode(TM) Integrated Processor by AMD PCS
stepping : 2
cpu MHz : 498.052
cache size : 128 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu de pse tsc msr cx8 sep pge cmov clflush mmx mmxext 3dnowext 3dnow
bogomips : 998.12
clflush size : 32
power management:

# hdparm -tT /dev/hda

/dev/hda:
Timing cached reads: 424 MB in 2.00 seconds = 211.91 MB/sec
Timing buffered disk reads: 50 MB in 3.08 seconds = 16.21 MB/sec

# free -m
total used free shared buffers cached
Mem: 250 28 222 0 3 14
-/+ buffers/cache: 10 240
Swap: 511 0 511

Trackball'ai ir jų konfigūravimas

Pradėsiu nuo to, kad trackball'as - tai tarsi apversta pelė. Jis visada stovi vienoje vietoje, o kursorius judinamas sukinėjant rutulį. Prieš mėnesį buvau apie tokius tik girdėjęs, o dabar negaliu pažiūrėti į paprastas peles.
Turbūt ne vienas jūsų esate prisitrynę mazolius ant dešinio riešo, nuo nenuilstamo braukymo pele po stalą. Šis procesas nemalonus ir man, net ir naudojant riešo laikiklį. Nuo to gelbsti trackball'as.
Arba kita situacija - niekada nebuvau touchpad'ų mėgėjas, o būna prireikia laptopu pasinaudoti mašinoj ar lovoj ar dar kur, kur sunku rasti tinkamą paviršių pelei stumdyt. Šiuo atveju taip pat pasitarnauja trackball'as. Va ir dabar guliu sau lovoj prieš miegą ir rašau su asus eee :)
Lietuvoj, pasiknisęs internetiniuose kainynuose teradau tris modelius - ir jie visi logitecho.
Pirmasis - marble mouse. Antro pavadinimo nepamenu, ir trečiasis - cordless trackman.
Pirmojo minusas - nėra ratuko. Antrojo - rutulio sukinėjimas vyksta su nykščiu, ir man tikrai sunku įsivaizduoti kad tai patogu. Trečiasis - galybė man nereikalingų mygtukų, belaidis (taip, man tai - minusas), rutulys gan tolokai dešinėje, na ir žinoma - kainuoja tiek, kiek kiti abu sudėjus.
Be to tik pirmasis yra pritaikytas ir kairiarankiams. Nesu toks, tačiau tenka ir kaire ranka pamaigyti.
Tad kol kas pasiėmiau pirmąjį. Nors man regis ir belaidį paimsiu prie kito kompo :)
Na, o dabar konfigūravimas.
Šiame trackball'e yra keturi mygtukai - du dideli ir du maži. Iš jų dešinys mažasis yra nepatogiausioje padėtyje, tad bus naudojamas mažiausiai. Po defaultu linuxas dideliems mygtukams priskiria kairio ir dešinio funkcijas, mažam kairiam - vidurinio klavišo, o mažam dešiniam - tą patį kodą kaip ir dideliam dešiniam. Toks variantas man netiko. Taip pat nepasirodė priimtinas ir variantas, pavaizduotas ant dėžės, kaip suprantu, vindausų defaultas - scroll'inimas vyksta su mažaisiais klavišais. Vienas - viršun, kitas - apačion.
Pagūglinęs radau gan neblogą įvairių pelių ir trackball'ų konfigūracijų resursą. Deja, netiko ir jame aprašytas variantas šiam įrenginiui.
Tad viskas baigėsi dokumentacijos skaitymu. Ko pasekoje mano /etc/X11/xorg.conf įrašas atrodo taip:

Section "InputDevice"
Identifier "MarbleMouse"
Driver     "mouse"
Option     "Protocol"            "auto"
Option     "Device"              "/dev/input/mouse1"
Option     "Buttons"             "5"
Option     "ButtonMapping"       "1 8 3 2 9"
Option     "EmulateWheel"        "true"
Option     "EmulateWheelButton"  "2"
Option     "YAxisMapping"        "4 5"
Option     "XAxisMapping"        "6 7"
Option     "DragLockButtons"     "9 1"
EndSection

Pasistengsiu paaiškinti kaip čia kas, nes tai pritaikoma ir kitoms pelėms/trackball'ams.
Device - tai atitinkamas įrenginys. Kuris iš jų yra tikrasis galima išsiaiškinti komanda
cat /dev/input/mouse[nr]
Jei įrenginys tas, tai pajudinus pelę konsolėje matysis visokios šiukšlės.
Buttons - mygtukų kiekis. Čia pasiklioviau anksčiau minėtu gentoo wiki įrašu.
ButtonMapping - kaip išdėstyti mygtukus. Pirmas skaičius - pirmas fizinis mygtukas. Po to - poromis fizinė mygtuko reikšmė ir norima jo funkcija. Kokios mygtukų reikšmės galima išsiaiškins komandos xev pagalba.
EmulateWheel - laikant kurį nors mygtuką trackball'as veikia kaip ratukas. Ir horizontalia ir vertikalia ašimi.
EmulateWheelButton - tai tas minėtas mygtukas. Tarkim vidurinis. Šiaip vidurinis yra "paste" komanda, tačiau tai nemaišo - trumpai spustelint (iki 200ms) - paste'ina, ilgiau laikant - scroll'ina. Šį intervalą galima keisti(EmulateWheelTimeout).
Toliau nieko nekonfiginus, restartinus Xus ir pasileidus xev matome, kad laikant mažą kairįjį mygtuką ir judinant rutulį fiksuojamas ne pelės judėjimas, o 4 5 6 7 klavišų paspaudimai. Tad konfigūruojame juos pagal ašis.
Na, o iš paskutinio nustatymo tikėjausi daugiau. Apie jį papasakosiu plačiau.
DragLockButtons - jo reikšmė gali būti arba vienas klavišas, arba klavišų porų seka. Jei poros - kaip kad pas mane "9 1", tai pirmasis argumentas yra antrojo "toggle" klavišas. T.y. mano atveju vieną sykį spustelėjus mažą dešinį klavišą Xai tai supranta lyg aš būčiau paspaudęs didįjį kairįjį ir jo neatleidęs. Ir vieną syk spustelėjęs galiu atleisti tą klavišą ir pasirinkt kiek noriu teksto nelaikant piršto ant mygtuko.
Iš tiesų planas buvo kiek kitoks, tačiau to nepavyko realizuoti. Nes jei DragLockButtons turi tik vieną argumentą, jis tampa laikymo funkcija bet kuriam mygtukui. Jį spustelėjus, sekantis bet kurio mygtuko, ar kairio, ar dešinio spustelėjimas užsifiksuos, kaip kad užsifiksuoja kairiojo mano atveju. Deja, tai neveikia su EmulateWheelButton, ir bent jau kolkas nepavyko to apeiti. Mat EmulateWheelButton negeneruoja atskiro  mygtuko paspaudimo, o tiesiog suteikia rutulio sukimo kryptims mygtukų reikšmes.
Na, ką padarysi, pagyvensiu ir be to.
Dar vienas dalykas - firefoxas X ašies sukinėjimus supranta kaip atgal/pirmyn, o ne kaip kairėn/dešinėn, tad reik atsidaryti about:config puslapį, ir pakeisti mousewheel.horizscroll.withnokey.action į 0 (veiksmas), bei mousewheel.horizscroll.withnokey.numlines į 1 (apversti ašį).
Tai tiek.
Jei kas esat pasidarę scroll toggle tai prašom nesikuklinti.

Padorios langų tvarkyklės paieškos

Ne per seniausiai sužinojau, kad egzistuoja langų tvarkyklės, išlygiuojančios langus. T.y. maksimaliai išnaudojančios darbastalio erdvę, be jokių vienas ant kito lipančių langų ir pan.
Po pusdienio eksperimentavimo atsirinkau tris vertus dėmesio:
dwm - itin lengvas daiktas, beveik be konfigūracijos
wmii - dwm didesnis brolis, iš pirmo žvilgsnio gan įdomus
ion3 - o šiame žvėry yra ne tik išlygiavimas, bet ir tab'ai
Sakiau pasėdėsiu prie kiekvieno po savaitę, pažiūrėsiu, kuris labiausiai patiks. Tačiau susimečiau paprasčiausią - dwm su dmenu, ir nemanau kad keisiu, nebent su laiku ims trūkti konfigūravimo galimybių :)
Ši langų tvarkyklė atidarius naują langą jį išdidina per visą darbalaukį, atidarius antrą langą - sumažina pirmąjį horizontaliai, ir pastumia į kraštą, o naujai atsivėrusį langą išdidina per likusią laisvą vietą.
Nėra jokio systray'aus, langus galima aprašyt, kad atsirastų tam tikram desktope, išdidinti ar ne (nes tarkim skypas išdidintas niekam nereikalingas).
Veikimo greitis ... liuks. Perėjęs nuo fluxbox'o ant dwm pasijutau tarsi kažkada nuo xfce ant fluxboxo perėjęs.
Susikonfigūravęs viską esu taip: yra 5 desktopai (tiksliau tag'ai, nes norint galima kelių tag'ų langus žiūrėt išsyk), pirmuose trijuose - vieta mano programom, ketvirtame - firefoxas ir nieko daugiau, penktame - trayer - systray pakaitalas, nes visokiem šūdskypiam ir pan. jis yra gan reikalingas daiktas. 5 desktope pas mane veikia tos programos, kurių nenoriu maksimizuot - pašto klientas, skype, xmms.
Konfigūruojamas šis windowmanageris tiesiai sourc'e, prieš kompiliuojant. O 2000 eilučių programos kompiliavimas nėra ilgas darbas :)
$ time make
......
real 0m1.250s
user 0m0.988s
sys 0m0.044s


Ši langų tvarkyklė savo meniu juostoje rodo tai, ką gauna iš stdin, tad paleidžiu ją tokiu būdu:

while true
do
echo `uptime |cut -d" " -f 12-` `date "+%D %T"`
sleep 1
done | dwm


Yra ir pora minusų - langų pavadinimuose nerodomos lietuviškos raidės (greičiausiai fontą pakeitus susitvarkytų), klaviatūros shortcut'ai neveikia, jei xorg.conf pirma įrašyta klaviatūros kalba yra lt o ne us, taip pat teko jame pakeisti klaviatūros kalbos perjungimą iš grp:alt_shift_toggle į grp:lwin_toggle, t.y. kalbą keičia "vindausų" kairys klavišas. Ir gerai, vis kam nors naudingas bus :)

Na, ir galiausiai - mano konfigas:

/* See LICENSE file for copyright and license details. */

/* appearance */
#define BARPOS BarTop /* BarBot, BarOff */
#define BORDERPX 3
#define FONT "-*-terminus-medium-*-*-*-*-*-*-*-*-*-*-*"
#define NORMBORDERCOLOR "#cccccc"
#define NORMBGCOLOR "#cccccc"
#define NORMFGCOLOR "#000000"
#define SELBORDERCOLOR "#ff0000"
#define SELBGCOLOR "#666666"
#define SELFGCOLOR "#ffffff"

/* tagging */
const char *tags[] = { "1", "2", "3", "ff", "shit" };
Rule rules[] = {
/* class:instance:title regex tags regex isfloating */
{ "Firefox", "ff", False },
{ "MPlayer", NULL, True },
{ "xdtv", NULL, True },
{ "Skype", "shit", True },
{ "trayer", "shit", False },
{ "xmms", "shit", True },
{ "Sylpheed", "shit", True },
{ "Liferea", "shit", True },
{ "OpenDict", NULL, True },
{ "LinuxDC++", "shit", True },
{ "Nicotine+", "shit", True },
{ "gkrellm", "shit", True },


};

/* layout(s) */
#define ISTILE isarrange(tile) /* || isarrange(<custom>) */
#define MWFACT 0.7 /* master width factor [0.1 .. 0.9] */
#define SNAP 32 /* snap pixel */
Layout layouts[] = {
/* symbol function */
{ "[]=", tile }, /* first entry is default */
{ "><>", floating },
};

/* key definitions */
#define MODKEY Mod1Mask
#define KEYS \
Key keys[] = { \
/* modifier key function argument */ \
{ MODKEY, XK_F2, spawn, \
"exe=`dmenu_path | dmenu -fn '"FONT"' -nb '"NORMBGCOLOR"' -nf '"NORMFGCOLOR"'" \
" -sb '"SELBGCOLOR"' -sf '"SELFGCOLOR"'` && exec $exe" }, \
{ MODKEY, XK_F1, spawn, "exec uxterm" }, \
{ MODKEY, XK_F3, spawn, "exec thunar" }, \
{ MODKEY, XK_space, setlayout, NULL }, \
{ MODKEY, XK_b, togglebar, NULL }, \
{ MODKEY, XK_Tab, focusnext, NULL }, \
{ MODKEY, XK_h, setmwfact, "-0.05" }, \
{ MODKEY, XK_l, setmwfact, "+0.05" }, \
{ MODKEY, XK_m, togglemax, NULL }, \
{ MODKEY, XK_Return, zoom, NULL }, \
{ MODKEY|ShiftMask, XK_Tab, viewprevtag, NULL }, \
{ MODKEY|ShiftMask, XK_space, togglefloating, NULL }, \
{ MODKEY, XK_F4, killclient, NULL }, \
{ MODKEY, XK_0, view, NULL }, \
{ MODKEY, XK_1, view, tags[0] }, \
{ MODKEY, XK_2, view, tags[1] }, \
{ MODKEY, XK_3, view, tags[2] }, \
{ MODKEY, XK_4, view, tags[3] }, \
{ MODKEY, XK_5, view, tags[4] }, \
{ MODKEY|ControlMask, XK_1, toggleview, tags[0] }, \
{ MODKEY|ControlMask, XK_2, toggleview, tags[1] }, \
{ MODKEY|ControlMask, XK_3, toggleview, tags[2] }, \
{ MODKEY|ControlMask, XK_4, toggleview, tags[3] }, \
{ MODKEY|ControlMask, XK_5, toggleview, tags[4] }, \
{ MODKEY|ShiftMask, XK_0, tag, NULL }, \
{ MODKEY|ShiftMask, XK_1, tag, tags[0] }, \
{ MODKEY|ShiftMask, XK_2, tag, tags[1] }, \
{ MODKEY|ShiftMask, XK_3, tag, tags[2] }, \
{ MODKEY|ShiftMask, XK_4, tag, tags[3] }, \
{ MODKEY|ShiftMask, XK_5, tag, tags[4] }, \
{ MODKEY|ControlMask|ShiftMask, XK_1, toggletag, tags[0] }, \
{ MODKEY|ControlMask|ShiftMask, XK_2, toggletag, tags[1] }, \
{ MODKEY|ControlMask|ShiftMask, XK_3, toggletag, tags[2] }, \
{ MODKEY|ControlMask|ShiftMask, XK_4, toggletag, tags[3] }, \
{ MODKEY|ControlMask|ShiftMask, XK_5, toggletag, tags[4] }, \
{ MODKEY|ShiftMask, XK_q, quit, NULL }, \
};


Tai tiek, skrynšotų nedėsiu, jų yra langų tvarkyklių puslapiuose.

Mysql licenzija

Pamiršau šiandie porą mysqldumpo parametrų ant debian lenny, ir sakau paskaitysiu manpage'ą. Surinkau sau ramiai man mysqldump, ir ..... wtf?

.TH mysql 1 "21 June 2007" "MySQL 5.0" "MySQL database"
.SH NAME
mysql \- MySQL database programs
.SH COPYRIGHT
MySQL decided to release the documentation, even the manpages, under a
license which does not allow Debian to redistribute it.
Feel free to contact MySQL at <docs@mysql.com> if you would like to share your
opinion on the matter :)
.SH "SEE ALSO"
For more information start the program with '--help' or
refer to the MySQL Reference Manual which
is available online at http://dev.mysql.com/doc/.
.SH AUTHOR
This manpage was written by Christian Hammers <ch@debian.org>.
.\" end of man page

Pelės kursorius konsolėje

Šiandien esu savimi nusivylęs. Ne todėl, kad kas nors nepasisekė, o todėl, kad iki šiol nežinojau apie galimybę konsolėje naudotis pele. Jaučiuosi  lyg būčiau gyvenęs po akmeniu.

O receptas toks:

#apt-get install gpm
#/etc/inti.d/gpm start

Jei per lėtai juda kursorius - faile /etc/gpm.conf paaiškinta, ką daryti.

Taip pat nebloga mintis /boot/grub/menu.lst savo kernelio eilutės, atrodančios maždaut taip:

kernel          /boot/vmlinuz-2.6.18-5-686 root=/dev/sda1 ro

gale pridėti vga=795 ar ką nors panašaus.

Štai galimi variantai:
         640x480   800x600   1024x768   1280x1024   1600x1200
8 bits vga=769 vga=771 vga=773 vga=775 vga=796
16 bits vga=785 vga=788 vga=791 vga=794 vga=798
32 bits vga=786 vga=789 vga=792 vga=795 vga=799

glTail - registravimo žurnalų vizualizacija

Šiandien slashdot'e perskaičiau apie glTail - neįprastą log'ų atvaizdavimo įrankį. Kol kas jis labai jaunas, bet atrodo įspūdingai. Įdomu, kaip vystysis toliau. Jį parsisiųsti bei pažiūrėti jo veikimo video galima oficialioje svetainėje.
Paruošti jį darbui (tarkim vietinio apache2 serverio log'ų stebėjimui) pakanka įdiegti keletą paketų
#apt-get install libopengl-ruby rubygems openssh-server
#gem install -y net-ssh
bei pakoreaguoti patį glTail.rb skriptą. Pvz:

$SERVERS = [
            # List of machines to log in to via SSH, and which files to tail for traffic data.
            {:name => 'manoservas', :host => '127.0.0.1', :user => 'USER', :password => 'PASSWORD', :command => 'tail -f', :files => ['/var/log/apache2/access.log'], :color => [0.6, 0.6, 1.0, 1.0], :parser => :apache },
           ]

USER ir PASSWORD, savaime suprantama, reik pakeisti į savus.
Manau nepakenktų ir tinkami vaizdo plokštės driver'iai.
Beje, jei USER ne root, jis turi priklausyti adm grupei
#usermod -a -Gadm tavovardas

Conky

Ilgą laiką naudojausi sistemos stebėjimo įrankiu gkrellm, tačiau įsipyko jo interfeisas, tad perėjau prie kito įrankio - conky. Jis neturi interfeiso :) ir beveik nereikalauja resursų. Mano atveju reikalauja nemažai, nes stebiu ir kelis logus. Tiesa, kad juos stebėt reik įtraukti save į grupę adm
#usermod -a -Gadm username

Abu šie įrankiai atrodo štai taip:

Free Image Hosting at www.ImageShack.usFree Image Hosting at www.ImageShack.us

O čia - mano conky konfigas (.conkyrc)

background no
use_xft yes
xftfont Bitstream Vera Sans Mono:size=8
xftalpha 0
mail_spool $MAIL
update_interval 2
total_run_times 0
double_buffer yes
minimum_size 250 0
maximum_width 500
draw_shades no
draw_outline yes
draw_borders no
draw_graph_borders yes
stippled_borders 5
border_margin 10
border_width 1
default_color white
default_shade_color black
default_outline_color black
alignment top_right

use_spacer yes

gap_x 25
gap_y 25

no_buffers yes

uppercase no

cpu_avg_samples 2
net_avg_samples 2

TEXT
$nodename - $sysname $kernel on $machine ${alignr}${color ddaa00}$time
${color lightgrey}Uptime:$color $uptime ${color lightgrey}Load:$color $loadavg ${color lightgrey}IP:$color} ${addr eth1}
${color lightgrey}Fan: ${color}${i2c 9191-0290 fan 2} ${color lightgrey}Temp: ${color}${i2c 9191-0290 temp 1} ${i2c 9191-0290 temp 2} ${i2c 9191-0290 temp 3} ${color lightgrey}Freq: ${color}${freq 0} ${freq 1}
${color lightgrey}Voltage: ${color} ${i2c 9191-0290 in 0} ${i2c 9191-0290 in 1} ${i2c 9191-0290 in 2} ${i2c 9191-0290 in 3} ${i2c 9191-0290 in 4} ${i2c 9191-0290 in 5} ${i2c 9191-0290 in 6} ${i2c 9191-0290 in 7} ${i2c 9191-0290 in 8} ${i2c 9191-0290 in 9}
${voffset 10}${color lightgrey}CPU Usage:${color} ${cpu}% ${cpubar}
${color}${cpugraph cpu0 24,185} ${color}${cpugraph cpu1 24,185}
${color lightgrey}RAM Usage:$color $mem/$memmax - $memperc% ${membar}
${color lightgrey}Swap Usage:$color $swap/$swapmax - $swapperc% ${swapbar}
${color lightgrey}Processes:$color $processes  ${color grey}Running:$color $running_processes
${voffset 10}Down:           ${downspeed eth1} k/s ${alignr}Up:${color} ${upspeed eth1} k/s ${color lightgrey}
${color}${downspeedgraph eth1 24,185} ${color}${upspeedgraph eth1 24,185} ${color lightgrey}
${color lightgrey}sda1 $color${fs_free /}/${fs_size /} ${fs_bar /}
${color lightgrey}sda3 $color${fs_free /home}/${fs_size /home} ${fs_bar /home}
${color lightgrey}sdb1 $color${fs_free /media/sdb1}/${fs_size /media/sdb1} ${fs_bar /media/sdb1}
${color lightgrey}HDD temp sda: ${color}${hddtemp /dev/sda}${color lightgrey} sdb: ${color}${hddtemp /dev/sdb} ${color lightgrey}read/write: ${color}$diskio
${diskiograph 24,}
${voffset 10}${color}Name              PID     CPU%   MEM%
${color #ddaa00} ${top name 1} ${top pid 1} ${top cpu 1} ${top mem 1}
${color lightgrey} ${top name 2} ${top pid 2} ${top cpu 2} ${top mem 2}
${color lightgrey} ${top name 3} ${top pid 3} ${top cpu 3} ${top mem 3}
${voffset 10}${color #ddaa00} ${top_mem name 1} ${top_mem pid 1} ${top_mem cpu 1} ${top_mem mem 1}
${color lightgrey} ${top_mem name 2} ${top_mem pid 2} ${top_mem cpu 2} ${top_mem mem 2}
${color lightgrey} ${top_mem name 3} ${top_mem pid 3} ${top_mem cpu 3} ${top_mem mem 3}
${voffset 10}${color #ddaa00}Port(s)${alignr}#Connections  
$color Inbound: ${tcp_portmon 1 32767 count}  Outbound: ${tcp_portmon 32768 61000 count}${alignr}ALL: ${tcp_portmon 1 65535 count}
${color #ddaa00}Inbound Connection ${alignr} Local Service/Port$color
 ${tcp_portmon 1 32767 rhost 0} ${alignr} ${tcp_portmon 1 32767 lservice 0}
 ${tcp_portmon 1 32767 rhost 1} ${alignr} ${tcp_portmon 1 32767 lservice 1}
 ${tcp_portmon 1 32767 rhost 2} ${alignr} ${tcp_portmon 1 32767 lservice 2}
 ${tcp_portmon 1 32767 rhost 3} ${alignr} ${tcp_portmon 1 32767 lservice 3}
 ${tcp_portmon 1 32767 rhost 4} ${alignr} ${tcp_portmon 1 32767 lservice 4}
 ${tcp_portmon 1 32767 rhost 5} ${alignr} ${tcp_portmon 1 32767 lservice 5}
${color #ddaa00}Outbound Connection ${alignr} Remote Service/Port$color
 ${tcp_portmon 32768 61000 rhost 0} ${alignr} ${tcp_portmon 32768 61000 rservice 0}
 ${tcp_portmon 32768 61000 rhost 1} ${alignr} ${tcp_portmon 32768 61000 rservice 1}
 ${tcp_portmon 32768 61000 rhost 2} ${alignr} ${tcp_portmon 32768 61000 rservice 2}
 ${tcp_portmon 32768 61000 rhost 3} ${alignr} ${tcp_portmon 32768 61000 rservice 3}
 ${tcp_portmon 32768 61000 rhost 4} ${alignr} ${tcp_portmon 32768 61000 rservice 4}
 ${tcp_portmon 32768 61000 rhost 5} ${alignr} ${tcp_portmon 32768 61000 rservice 5}
${color #ddaa00}Syslog:
$color${execi 30 tail -n3 /var/log/syslog | fold -s -w55}
${color #ddaa00}Messages:
$color${execi 30 tail -n3 /var/log/messages | fold -s -w55}

Siemens telefonai linuxe

Nesenai įsigijau siemens me75 mob. telefoną, ir parašysiu jums, kaip reikia jį prijungti prie kompiuterio su linux'ais. Šį būdą išmėginau ir su keletu kitų siemens modelių.
Visų pirma jum reikia specialaus kabelio. Man žinomi siemens-pc kabeliai yra trys: DCA-540 (usb jungtis), DCA-500 (com jungtis) ir DCA-510 (šio nesu akyse matęs, bet kaip suprantu, tai kažkoks dviejų pirmųjų hibridas su usb jungtimi, atpažįstama kaip com). Kabelis su com jungtimi reikalingas tam, kad galima būtų perrašyt/atnaujint telefono programinę įrangą. Dėja, mano rasti atnaujinimai veikė windows aplinkoje, o su wine žaist nenorėjau, tad per vmware teko įsirašyti winXP ir perflash'int iš jų. Kodėl būtent vmware? Nes VirtualBox neemuliuoja com porto :) Na, o dabar prie reikalo.

Faile /etc/apt/sources.list pridėkite eilutę
deb http://www.stud.uni-karlsruhe.de/~ubq7/debian extra main

Tai debian repozitorija, kurioje yra keletas šiam tikslui reikalingų paketų.

Po to atnaujinkite paketų sąrašą
#apt-get update

įrašykite siemens failų sistemos paketą:
#apt-get install siefs

užkraukite virtualių failų sistemų modulį fuse:
#modprobe fuse

ir pridėkite eilutę
fuse
/etc/modules faile, kad po sistemos perkrovimo šis modulis būtų užkrautas.

Sukurkite direktoriją, kur mountinsit savo telefoną, pvz. aš naudoju
#mkdir /media/mobile

mountinimas:
#mount -t siefs /dev/ttyS0 /media/mobile

umountinimas
#umount /media/mobile

SVARBU: aš naudoju DCA-500 kabelį, su com jungtimi, kurį po ilgų ieškojimų radau pirkt skelbimuose. Pas jus greičiausiai bus DCA-540 su usb jungtimi. Mano atveju įrenginiu buvo nurodomas pirmasis com portas
/dev/ttyS0

o jūsų bus vienas iš usb portų
/dev/ttyUSBx
x - tai skaitmuo, priklausomai nuo to, kurian portan įkištas usb kabelis.

Kito būdo prijungti siemens telefoną, deja, nežinau.