Raspberry Pi külső drive kernel panic

Ha a Raspberryn a root partíció egy külső (USB) drive-on van, akkor ügyelni kell arra, hogy a /boot/cmdline.txt-ben, a root értéke PARTUUID formában legyen megadva, nem pedig /dev/sda1 vagy hasonló módon. Ellenkező esetben Kernel Panic - not syncing: VFS: Unable to mount root fs on unknown-block... és ehhez hasonló hibaüzenet várhat, legkésőbb akkor, amikor egy reboot paranccsal szeretnéd újraindítani a gépet.

A PARTUUID a sudo blkid paranccsal kinyerhető, valami ehhez hasonló lesz az output:

HashBackup DigitalOcean Spaces-be

Korábban a Raspberry PI-n keresztül töltöttem le a mentéseket, viszont a minap az SD kártya teljesen tönkrement így gyorsan kellett találnom valami megoldást a mentésre, mert ennél már csak az lenne rosszabb, ha mindenem eltűnne.

Szeretném ha valami rendes helyen lennének a mentések és nem az én összetákolt tárolóimon. Gondoltam, milyen jó lenne erre a DigitalOcean Spaces nevű object storage megoldása.

Ezelőtt duplicity-t használtam, azt hittem, hogy nem lehet egy ördöglakat megoldani, hogy mostantól máshová küldje a mentést. Igazából nem az, de akkor hirtelen képtelen voltam megoldani (azóta már sikerült).

Ezért elkezdtem egy olyan mentési megoldás után kutatni, amit hamar össze tudok rakni. A nagy sietségben a hashackup-ot választottam.

Shell script argument parsing

Ha shell scriptet írunk, gyakran előfordulhat, hogy szeretnénk azt paraméterezhetővé tenni.

Az alapvető módszerem, hogy vannak bizonyos beállítások definiálva a fájl elején egy alapértelmezett értékkel, majd a paraméterektől függően változtatom ezek értékét:

#!/bin/sh

IS_FLAG_A_SET=0

for i in $@; do
    case $i in
        '-a')
            IS_FLAG_A_SET=1
            ;;
        *)
            echo "Usage $0 -a"
            exit 1
    esac
done

if [ $IS_FLAG_A_SET -eq 1 ]; then
    echo "FLAG A"
fi

Lekezeltük még azt is, hogy össze-vissza paramétereket ne engedjünk csak úgy bepasszintani, ekkor ugynis kiírjuk a használati utasítást és hibakóddal kilépünk.

Izgalmasabb a helyzet, ha nem csak flagekkel dolgozunk, hanem szeretnénk valamilyen értéket átadni egy opcióval, mondjuk egy fájlnevet. Ha tudjuk, hogy csak egy ilyen lehet az adott programban, akkor megtehetjük, hogy azt mondjuk, hogy legyen az utolsó paraméter mindig a fájlnév.

FILE_NAME=${@:-1}
echo $FILE_NAME

De ez egyáltalán nem dinamikus, hiszen bármikor lehet olyan igény, hogy több értéket szeretnénk átadni. Ekkor például elkezdhetünk úgy dolgozni a paramétereken, hogy ha például -f kapcsolót kaptuk, akkor a következő paraméter a fájlnévnek vesszük:

Letöltés Humble Bundle-ről gyorsan, batch-ben

Roppant kényelmetlen egyenként végigklikkelni a a sok-sok linken Humble Bundle-on, amikor megvettél egy nagy adag könyvet potom áron.

Ezt kicsit meg lehet gyorsítani, ha vetünk egy pillantást a következő gistre: https://gist.github.com/Ajnasz/3356db6fd0e81013927c9cf5821a73de

cryptsetup luksFormat Invalid argument

enigma részlet

Mondjuk egy már létező howto alapján szeretnél titkosított filerendszert készíteni.
Viszont a cryptsetup luksFormat /dev/sdb1 parancs nem kér jelszót, akkor próbáld meg, hogy --verbose paramétert is beadod neki. Így egy kicsit több outputot fog kidobni magából:

VIM csomagkezelés howto

packages felirat

Az egyre több erre hajazó kiegészítő szinte messziről jövő segélykiáltásként szelte át az internet-étert egy beépített csomagkezelőért.

Így lehetett, hogy Vim 8-ban debütált a csomagok támogatása. github.com/vim/vim/blob/master/runtime/doc/repeat.txt#L471

Sajnos vagy nem sajnos jó ideje Neovim felhasználóvá avanzsáltam és minden informálódás nélkül leírtam, hogy ez a package manageres móka csak Vim-ben van, Neovimben nincs. Viszont a minap a Neovim git logot böngészve mintha erre utaló szavakat olvastam volna. A megérzésem jó volt, Neovimben is van Vim 8 csomagkezelő.

Megjegyzés: A csomagkezelő kifejezés nem a legmegfelelőbb, a Vim 8 packages a csomagok betöltését végzi, de nem telepíti őket.

Nikon D5300 webkamera Linuxon

Fénykép a Nikon D5300 fényképezőgépről

Képzeljük el milyen profi videó társalgást lehetne tartani akárkikkel ha egy jobb objektívvel rendelkező DSLR kamerát használnál webkamerként!
Szépen beállítod a kamerát, fókuszt, fényt és miegymást, és szuper minőségben látnak majd anyuék, apuék vagy akár egy kedves kolléga a föld túloldalán. (Amint lesz webcam támogatás a linuxos Skype-on is.)

Szóval hogyan is lehet Linuxon webkameraként használni egy digitális fényképező gépet? Nekem egy Nikon 5300 van éppen és roppant könnyen össze tudtam hozzá vadászni az információkat az internet végtelen világából.

How to start uzbl browser on startup on a Raspberry PI

I wanted to use my Raspberry Pi to view build status, graphite charts and some other stuff on a TV.
I have my Raspberry, I needed to configure it to start uzbl (which is a very lightweight and easy to script browser).

Once you have a working raspberry (or any Debian environment), follow the steps written below:

Install software

We will need an xserver to have a graphical interface, a window manager and the web browser.
I choose Fluxbox as WM
Use apt-get install command to install xorg, fluxbox and uzbl:

Midnight Commander skin

There is a pretty popular article on this blog, where you can find how to create your own theme for Midnight Commander file manager.

Since I wrote that blog post, skin support also landed into MC, so I decided to port the theme into a midnight commander skin.

Lock screen suspend után

Tételezzük fel, hogy nagyon minimalista Linuxot használunk, nincs power manager daemon meg semmi ilyesmi.
Tételezzük fel azt is, hogy szoktuk suspendelni a számítógépet.
Tételezzük fel, hogy szeretnénk, ha suspend után a a lock screen jelenne meg, hogy mások ne tudják az otthagyott, elaltatott gépet használni, ha csak felébresztik.
Tételezzük fel azt is, hogy valamilyen Debian alapú (mondjuk Ubuntu) disztribúciót használunk, bár lehet, hogy Fedora és más Linux disztribúciók esetén is működőképes a lent leírt apróság.