20. 11. 2015

Pulzně šířková modulace

Softwarová implementace pulzně šířkové modulace (PWM) je triviální. Pokud ovšem požadujeme co nejvyšší frekvenci generovaného signálu (tj. co nejrovnoměrnější rozprostření jedniček a nul), například proto, aby následná analogová filtrace byla co nejúčinnější, úloha se stává zajímavou.

Mějme funkci, která dostane požadovaný počet jedniček a požadovaný celkový počet bitů.

def gen(t1, tb):
    # t1 ... total 1's
    # tb ... total bits
    # r1 ... remaining 1's
    # rb ... remaining bits
    r1 = t1
    o = []
    for rb in range(tb, 0, -1):
        if r1 > 0 and r1*tb >= t1*rb:
            o.append(1)
            r1 -= 1
        else:
            o.append(0)
    return o

Funkci otestujeme.

def ltos(l):
 return "".join(str(x) for x in l)

assert ltos(gen(0, 8)) == "00000000"
assert ltos(gen(1, 8)) == "10000000"
assert ltos(gen(2, 8)) == "10001000"
assert ltos(gen(3, 8)) == "10010010"
assert ltos(gen(4, 8)) == "10101010"
assert ltos(gen(5, 8)) == "10101101"
assert ltos(gen(6, 8)) == "10111011"
assert ltos(gen(7, 8)) == "10111111"
assert ltos(gen(8, 8)) == "11111111"

Funguje.

30. 10. 2015

Instalace Linuxu na počítač s UEFI

Bývaly doby, kdy se prostě do počítače nainstaloval Linux a bylo to. Doby, kdy v počítačích býval BIOS. Pokud máte počítač s UEFI, ledacos je jinak. I když se vám podaří Linux nainstalovat, nejspíš se vám ho nepodaří spustit.

V mém případě se jednalo o Ubuntu 15.10 a notebook Acer Aspire E11.

Tak předně většina voleb je v nastavení UEFI zablokovaná. Odblokovat je dokáže teprve nastavení hesla supervisora (Security → Set Supervisor Password).

Ve výchozím nastavení (Boot → Boot Mode → UEFI a Boot → Boot Mode → Enabled) není povoleno spuštění nainstalovaného systému. Je potřeba informovat UEFI o tom, že opravdu dovolujeme nainstalovaný systém spouštět. Použijeme volbu Security → Select an UEFI file as trusted for executing a postupně vybereme disk a adresář: HDD0 → EFI → ubuntu → shimx64.efi.

Od tohoto okamžiku má UEFI konečně povoleno spouštět nainstalovaný Linux a všechno funguje tak, jak má.

26. 9. 2015

Alzheimerová

Už nevím,
kde jsem to
všude byla,
co jsem tam
dělala,
o čem snila.

Vzpomínky
mizí mi
sprostě, drze,
jako vše
ostatní
kdesi v mlze.

2. 9. 2015

Empatická

Den se mění
v utrpení
tam, kde schází
pochopení.

Kde žádný tvůj
skutek není
pochopen bez
vysvětlení.

Tvrdý reset,
zkus to znova,
kde tě chápou
beze slova.

20. 8. 2015

Horečnatá

Padla tma a
padla brada
kosmetice
značky Lada
vedle dveří
tvého hada,
který křičí:
zrada, zrada!

Zničte mušle
toho smrada
dřív, než na něj
přijde řada
v oleji, kde
skrytá vada
pořád mele:
da-da, da-da.

15. 8. 2015

Psychoterapeutická

Z mého
sudu
beze
studu
odchá-
zím pryč,
už jsem
v čudu.

Kudy
pudu,
tam vám
budu
zvyšo-
vati
ampli-
tudu.

2. 8. 2015

Instalace Linuxu na notebook Toshiba Satellite 2030 CDR

To se tak stane, že potřebujete nainstalovat Linux na notebook Toshiba Satellite 2030 CDR. Za normálních okolností byste prostě z cédéčka nainstalovali Linux. Nikoliv však v tomto případě, kde do hry vstupují následující okolnosti:

  1. Zaheslovaný BIOS bez možnosti zavádění systémů z cédéčka.
  2. Procesor AMD K6, na kterém moderní distribuce Linuxu neběží.
  3. Paměť o velikosti 160 MB, která pro běžné distribuce Linuxu nedostačuje.

Je potřeba zbavit se hesla v počítači a vybrat nějakou vhodnou distribuci Linuxu.

Odstranění hesla a umožnění přístupu do BIOSu

Připravíme si konektor DB-25 M s propojkami 1–5–10, 2–11, 3–17, 4–12, 6–16, 7–13, 8–14, 9–15 a 18 až 25. Připojíme ho k paralelnímu portu notebooku a notebook zapneme. Notebook zjistí přítomnost servisního konektoru, uvede se do výchozího stavu, odstraní heslo a zpřístupní BIOS. V BIOSu pak nastavíme zaváděcí posloupnost na "CD, HDD, FD".

Výběr distribuce Linux a instalace

Jednou z mála distribucí Linuxu, která je schopna provozu na takovémto hardwaru je SliTaz. Instalace sestává z následujících kroků:

  • Stáhneme obraz instalačního cédéčka SliTaz Linux (jenom asi 35 MB) a vypálíme ho.
  • Spustíme SliTaz Linux z instalačního cédéčka.
  • Pomocí příkazu fdisk /dev/hda vytvoříme na pevném disku potřebné oddíly:
    • Smažeme všechny existující oddíly.
    • Vytvoříme oddíl 2 typu "Linux Swap" o velikosti 512 MB na koneci disku.
    • Vytvoříme oddíl 1 typu "Linux" od cylindru 2 do konce volného prostoru a nastavíme ho jako zaveditelný.
    • Zapíšeme změny na disk.
  • Zformátujeme odkládací oblast příkazem mkswap /dev/hda2.
  • Vyrobíme konfigurační soubor pro instalaci na disk příkazem tazinst new install.conf.
  • Upravíme soubor install.conf podle nápovědných komentářů.
  • Instalujeme systém na pevný disk příkazem tazinst install install.conf.
  • Vyndáme cédéčko a restartujeme počítač.

Úpravy konfigurace

  • Zavedeme systém z pevného disku.
  • Zvolíme anglické prostředí a českou klávesnici.
  • Stáhneme seznam instalačních balíčků příkazem tazpkg recharge.
  • Aktualizujeme instalační balíčky příkazem tazpkg up.
  • Doinstalujeme potřebné balíčky příkazem tazpkg get-install ...
  • Doinstalujeme balíčky locale-cs a glibc-locale.
  • Nastavíme české prostředí hodnotou "cs_CZ" v souboru /etc/locale.conf.
  • Povolíme automatickou synchronizaci času (TazPanel → Settings → Sync).
  • Zvolíme ukládání času v UTC (TazPanel → Settings → HW clock).
  • Nastavíme časové pásmo na "Europe/Prague".
  • Překonfigurujeme indikátor sítě z "wlan0" na "eth0". Tímto bohužel zmizí dolní panel.
  • Opravíme dolní panel tak, že zkopírujeme soubor /etc/lxpanel/.../bottom do ~/.config/lxpanel/...

Výsledný systém není žádný rychlostní rekordman, ale například Frozen Bubble tam běží hezky.