Lidi dělají divné věci. Například spouští Linux v Excelu. Využít je emulátor RISC-V mini-rv32ima sestavený jako knihovna DLL, která je volaná z makra VBA (Visual Basic for Applications).
Revolut nabídne neomezený mobilní tarif za 12,50 eur (312 Kč). Aktuálně startuje ve Velké Británii a Německu.
Společnost Amazon miliardáře Jeffa Bezose vypustila na oběžnou dráhu první várku družic svého projektu Kuiper, který má z vesmíru poskytovat vysokorychlostní internetové připojení po celém světě a snažit se konkurovat nyní dominantnímu Starlinku nejbohatšího muže planety Elona Muska.
Poslední aktualizací začal model GPT-4o uživatelům příliš podlézat. OpenAI jej tak vrátila k předchozí verzi.
Google Chrome 136 byl prohlášen za stabilní. Nejnovější stabilní verze 136.0.7103.59 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 8 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.
Homebrew (Wikipedie), správce balíčků pro macOS a od verze 2.0.0 také pro Linux, byl vydán ve verzi 4.5.0. Na stránce Homebrew Formulae lze procházet seznamem balíčků. K dispozici jsou také různé statistiky.
Byl vydán Mozilla Firefox 138.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 138 je již k dispozici také na Flathubu a Snapcraftu.
Šestnáctý ročník ne-konference jOpenSpace se koná 3. – 5. října 2025 v Hotelu Antoň v Telči. Pro účast je potřeba vyplnit registrační formulář. Ne-konference neznamená, že se organizátorům nechce připravovat program, ale naopak dává prostor všem pozvaným, aby si program sami složili z toho nejzajímavějšího, čím se v poslední době zabývají nebo co je oslovilo. Obsah, který vytvářejí všichni účastníci, se skládá z desetiminutových
… více »Richard Stallman přednáší ve středu 7. května od 16:30 na Technické univerzitě v Liberci o vlivu technologií na svobodu. Přednáška je určená jak odborné tak laické veřejnosti.
Víte že můžete odebírat mé blogy pomocí RSS? (Co je to RSS?)
Od určité doby jsou všechny texty které zde publikuji verzované na Githubu.
Jestliže najdete chybu, nepište mi do diskuze a rovnou jí opravte. Github má online editor, není to skoro žádná práce a podstatně mi tím usnadníte život. Taky vás čeká věčná sláva v commit logu :)
Když už jsem vyzkoušel Squidge, rozhodl jsem se že se podívám i na OpenWRT. Jelikož nastavení všech voleb kompilace není zrovna triviální, sepsal jsem tento blogpost ve kterém popisuji co vše jsem udělal, třeba se to bude hodit i někomu dalšímu.
Ve svém minulém blogpostu jsem částečně popsal hardwarovou úpravu routeru a nabídl ke stažení odkazy na Squidge. Pro ty co to nečetli - Squidge je lehce upravené OpenWRT, což je linuxová distribuce určená pro routery. V případě Squidge se jedná o model Edimax BR6104KP a většina úprav spočívá v automatickém nastavení distribuce a patche pro podporu usbrootu, což znamená že kořenový adresář není v routeru, ale na externím flashdisku. Má to své nevýhody - router tak ke svému běhu potřebuje neustále připojený flashdisk, který se navíc časem opotřebovává, také je třeba počítat s jistým zpomalením. Na druhou stranu to má i své výhody - místo 2MB získáváte prakticky neomezený prostor, pokud si vytvoříte swap, tak navíc i rozšíření na dnešní dobu nepěkně malých 16MB SD-RAM.
Squidge vzniklo cca v roce 2009, a OpenWRT od té doby podstatně pokročilo. V dnešní době již není problém nastavit usbroot bez nutnosti nějakého složitého patchování a úprav konfiguračních scriptů. Na Squidge mi navíc nefunguje většina balíků, protože jim něco chybí (přebývá), takže po spuštění binárky vypíšou podivnou hlášku a spadnou. To je dost velká závada třeba v případě takového pythonu, bez kterého se na libovolném shellu prakticky neobejdu. Nevím nakolik se jedná o můj problém a nakolik je to problém samotného Squidge a úprav kompilačních scriptů, ale nepodařilo se mi ho vyřešit a tak jsem se odhodlal zkusit sestavit OpenWRT.
Samotné sestavení je relativně jednoduché - v textové grafice je nutné zaškrtat všechny potřebné moduly a nastavení. Při jejich výběru jsem vycházel z anglického OpenWRT fóra, konkrétně USB-rootfs on boot on Edimax BR-6104KP (ADM5120) [WORKS]. Považuji za nutné dodat, že v prvním příspěvku není popsané úplně všechno a stálo mě několik hodin života než jsem na to přišel. Celé sestavování probíhalo na Ubuntu 10.10.
Prvním krokem je stažení aktuální kopie zdrojových kódů. I když samotné zdrojové soubory zabírají poměrně málo místa (38.5MB), připravte si cca 3GB volného místa na vše ostatní co se bude stahovat v průběhu kompilace. Zdrojové kódy je možné získat přez svn, adresu najdete na stránce https://dev.openwrt.org/wiki/GetSource. Osobně jsem si vybral kamikaze, protože ho používal Squidge. Kamikaze nebrat, má porouchaný opkg. Backfire funguje k plné spokojenosti.
Stažení verze kterou jsem si vybral já provedete pomocí příkazu:
svn co svn://svn.openwrt.org/openwrt/branches/backfire .
Ten stáhne vše potřebné do aktuální složky, takže si nazapomeňte před provedením vytvořit nějakou prázdnou složku a vstoupit do ní.
Jakmile máte staženo, zadejte:
make menuconfig
Pokud máte všechny potřebné nástroje, vyskočí na vás dialog, ve kterém je zapotřebí nastavit tyto hodnoty na hvězdičku (*):
Target system Infineon/ADMtek ADM5120 [2.6] Subtarget Little Endian Target Profile Edimax BR-6104KP (Unofficial) Target Images jffs2 (NEW) squashfs (NEW) tgz (NEW)
Pokud chcete mít možnost crosskompilovat pro daný router, zaškrtněte i
Build the OpenWrt SDK (NEW)
Díky tomu se stáhne a sestaví OpenWRT toolchain, což jsou kompilátory a další potřebné nástroje pro crosskompilaci.
Šipkou doprava vyberte Exit a potvrďte uložení konfigurace.
Poté co jste nastavili obecné informace přichází na řadu to důležitější - nastavení konfigurace jádra. Spustíte jí příkazem
make kernel_menuconfig
Na terminál se vám začnou vypisovat zprávy o stahování všemožných balíků a kompilaci. Jakmile se vše potřebné stáhne a nainstaluje, vyskočí na vás opět dialog.
Machine selection System type (Infineon/ADMtek ADM5120 SoC based machines) ADM5120 Board selection Zde odškrtejte vše, kromě: Edimax BR-6104K support Edimax BR-6104KP support MikroTik RouterBOARD 111/112 support Bez této desky se neobjeví možnost vybrat PCI, takže jí ponechte zaškrtlou. General setup * Support for paging of anonymous memory (swap) Bus options (PCI, PCMCIA, EISA, ISA, TC) * Support for PCI controller * PCI disable common quirks Device Drivers Memory Technology Device (MTD) support Následující tři hodnoty odškrtněte, pokud zůstanou zaškrtlé, nepůjde vám zapisovat na flashdisk: Automatically set 'rootfs' partition to be root filesyst Automatically split 'rootfs' partition for squashfs Automatically find and split TRX partitions SCSI device support SCSI device support Zaměňte M za * (stisknutím mezerníku) SCSI disk support Zaměňte M za * USB support Support for Host-side USB Zaměňte M za * * USB announce new devices * USB device filesystem ADM5120 HCD support (EXPERIMENTAL) Zaměňte M za * * OHCI HCD support //bez tohohle nepůjde v Backfire bootovat z flashdisku USB Mass Storage support Zaměňte M za * File systems Ext3 journalling file system support Zaměňte M za * Kernel hacking Odentrujte poslední řádku a upravte jí do následujícího tvaru (rootdelay je doba čekání na flashdisk): console=ttyS0,115200 root=/dev/sda1 init=/etc/preinit ro rootwait
Poté opět vyberte Exit a potvrďte změnu konfigurace.
Nyní je na čase zkompilovat jádro. Provedete to zadáním příkazu make
, ale osobně doporučuji spíš:
yes n | make V=99
Což zvýší jeho ukecanost a navíc automaticky na vše odpovídá že ne. To se docela hodí, protože script se z nějakého důvodu s odstupem cca 10m dvakrát za sebou ptá na podporu Olympus foťáků, což je docela nepříjemné jelikož to přeruší kompilaci dokud mu neodpovíme.
Nyní je dobré si připravit flashdisk. Rozdělte ho (například v Gparted) tak, aby první partišna byla typu ext3 a druhá swap. Je důležité dodržet pořadí a obě dvě nechat jako primární. Velikost swapu nechám na vás, já jsem si udělal 64MB, ale klidně to může být dvojnásobek. Pamatujte že čím větší bude swap, tím více paměti budete mít k dispozici a tím rychleji odejde příslušná část flashdisku do křemíkového nebe.
Poté co disk rozdělíte ho naformátujte.
Jakmile bude disk naformátovaný, je dobré si na něj stáhnout všechny možné balíky, protože opkg (package manager) má problém s busybox wgetem, kterému předává argument že má stáhnout informace do neexistující složky, kterou si wget neumí vytvořit :S
Přejděte do disku a vytvořte v něm složku třeba ipk, do které stáhnete všechny dostupné balíky.
mkdir ipk cd ipk wget -nd -r -l 1 http://downloads.openwrt.org/kamikaze/8.9.2/adm5120/packages/
Tento příkaz není úplně ideální, protože my potřebujeme pouze mipsel balíky, mips jsou nám k ničemu. To jak odstranit/nestahovat všechny mips balíky nechám na vás, sám jsem to vyřešil poněkud nepěkně.
Jelikož tohle píšu zároveň s ukázkovou kompilací abych si ověřil že jsem na nic nezapomněl, následuje teď část kdy budu asi tak hodinu (real 45m33.908s) čekat než se systém zkompiluje. Co při tom budete dělat vy je na vás, já se jdu kouknout jestli není něco v televizi.. Nic nedávali, tak jsem si udelal aspoň večeři - dva přírodní řízky ;).
Jakmile se vše zkompiluje a wget dostahuje repozitáře, přijde na řadu nahrávání image do routeru a rozbalení usbrootu na flashdisk.
Ve složce bin naleznete několik souborů:
openwrt-adm5120-br-6104kp-squashfs-xmodem.bin je image, která se nahrává do routeru openwrt-adm5120-rootfs.tgz je usbroot, který rozbalte na flashdisk packages/ složka s balíky, v podstatě jí nepořebujete, protože již máte vše na flashdisku
Rozbalení souborů na flashdisk provedete příkazem:
tar -xvf openwrt-adm5120-rootfs.tgz /cesta/k/flashdisku
Nahrání image do routeru pak pomocí scriptu adm_upload.py (jedná se o mnou lehce ořízlou, ale ozkoušenou verzi):
sudo ./adm_upload.py -d /dev/ttyUSB0 -b openwrt-adm5120-br-6104kp-squashfs-xmodem.bin
Pokud vás zajímá jak má vypadat funkční výstup nahrávání, najdete ho zde: http://openpaste.org/en/24768/.
Dál je dobré přečíst si stránku na OpenWRT wiki: http://wiki.openwrt.org/toh/edimax/br-6104kp a začít konfigurovat.
Nutností je zapnout podporu swapu:
root@OpenWrt:/# opkg install swap-utils Installing swap-utils (2.13.0.1-2) to root... Installing libblkid (1.40.11-1) to root... Installing libuuid (1.40.11-1) to root... root@OpenWrt:/ipk# mkswap /dev/sda2 Setting up swapspace version 1, size = 67104 kB no label, UUID=8c1afdc1-531b-4e73-b4f4-d88b90e63ad5 root@OpenWrt:/ipk# swapon /dev/sda2 Adding 65528k swap on /dev/sda2. Priority:-2 extents:1 across:65528k root@OpenWrt:/ipk# free total used free shared buffers Mem: 13612 11524 2088 0 640 Swap: 65528 0 65528 Total: 13612 11524 2088 root@OpenWrt:/ipk# cd /etc/config/ root@OpenWrt:/etc/config# # je nutne aktivovat automaticke pripojovani swapu prepsanim nuly u enabled na jednicku root@OpenWrt:/etc/config# vi fstab root@OpenWrt:/etc/config# cat fstab config swap option device /dev/sda2 option enabled 1
Určitě je také dobré si změnit heslo a vypnout telnet:
root@OpenWrt:/# passwd Changing password for root New password: Bad password: too weak Retype password: Password for root changed by root root@OpenWrt:/# cd /etc/init.d/ root@OpenWrt:/etc/init.d# ./telnet Syntax: ./telnet [command] Available commands: start Start the service stop Stop the service restart Restart the service reload Reload configuration files (or restart if that fails) enable Enable service autostart disable Disable service autostart root@OpenWrt:/etc/init.d# ./telnet disable
nainstalovat python:
root@OpenWrt:/ipk# opkg install python
a v mém případě i nastavit jinou konfiguraci sítě:
root@OpenWrt:/etc/config# cat network # Copyright (C) 2006 OpenWrt.org config interface loopback option ifname lo option proto static option ipaddr 127.0.0.1 option netmask 255.0.0.0 config interface lan option ifname eth0 option type bridge option proto dhcp # option proto static # option ipaddr 192.168.1.1 # option netmask 255.255.255.0
Pokud se pokusím nainstalovat daný balík z repozitářů na internetu, vypadá to asi takhle;
root@OpenWrt:/# opkg update Downloading http://downloads.openwrt.org/kamikaze/8.09.2/adm5120/packages/Packages.gz Connecting to downloads.openwrt.org (78.24.191.177:80) Packages.gz 100% |*******************************| 286k 00:00:00 ETA Inflating http://downloads.openwrt.org/kamikaze/8.09.2/adm5120/packages/Packages.gz Updated list of available packages in /var/opkg-lists/snapshots root@OpenWrt:/# opkg install python Installing python (2.5.4-2) to root... Downloading http://downloads.openwrt.org/kamikaze/8.09.2/adm5120/packages/python_2.5.4-2_mipsel.ipk xsystem: ERROR: fork failed before execution: `wget --passive-ftp -P /tmp/opkg-A9ul9e http://downloads.openwrt.org/kamikaze/8.09.2/adm5120/packages/python_2.5.4-2_mipsel.ipk' Collected errors: * Failed to download python. Perhaps you need to run 'opkg update'? root@OpenWrt:/# wget --passive-ftp -P /tmp/opkg-A9ul9e http://downloads.openwrt.org/kamikaze/8.09.2/adm5120/packages/python_2.5.4-2_mipsel.ipk Connecting to downloads.openwrt.org (78.24.191.177:80) wget: can't open '/tmp/opkg-A9ul9e/python_2.5.4-2_mipsel.ipk': No such file or directory root@OpenWrt:/# mkdir /tmp/opkg-A9ul9e root@OpenWrt:/# wget --passive-ftp -P /tmp/opkg-A9ul9e http://downloads.openwrt.org/kamikaze/8.09.2/adm5120/packages/python_2.5.4-2_mipsel.ipk **Connecting to downloads.openwrt.org (78.24.191.177:80)** python_2.5.4-2_mipse 100% |*******************************| 2842k 00:00:00 ETA root@OpenWrt:/# sh --help BusyBox v1.11.2 (2011-02-14 21:03:32 CET) multi-call binary No help available. root@OpenWrt:/# type wget wget is /usr/bin/wget
Z toho nejspíš plyne, že nainstalovaný wget si neumí vytvořit složku do které má zapisovat. Nevím jestli je to jediná chyba, ale pokud se chce někomu napsat nad ním jednoduchý wrapper pro ash (resp. dash), který je v routeru přítomen namísto bashe, bude super když to postne do komentářů.
Problémy se týkají pouze Kamikaze, v Backfire je vše v pořádku
OpenWRT je skvělý systém, jehož jedinou nevýhodou jsou problémy s opkg. Oproti Squidge na něm jede python, čímž si zajistil že ho budu používat namísto něho.
Pokud někdo tušíte jak vyřešit potíže s opkg, popřípadě máte chuť napsat ten wrapper nad wgetem, budu vám vděčný když se podělíte v diskuzi.
Tiskni
Sdílej:
Jelikož nastavení všech voleb kompilace není zrovna triviálníI kde. Prd velebnosti. Když to zvládne taková lama jako já, tak to musí zvládnout každý.
Má to své nevýhody - router tak ke svému běhu potřebuje neustále připojený flashdisk, který se navíc časem opotřebovává, také je třeba počítat s jistým zpomalenímNení až tak pravda. Jak USB-Stick, tak MTD mají své NAND pole. Na obojí je možné nainstalovat třeba squashfs a obojí je úplně stejně rychlé. Akorát jedno je přímo připojené na procesor (nebo obecně na sběrnici) a druhé jde přes řadič a USB. Akorát v USB ta NAND může být větší a rychlejší.
Považuji za nutné dodat, že v prvním příspěvku není popsané úplně všechno a stálo mě několik hodin života než jsem na to přišel.Proto je lepší číst manuály. Třeba konkrétně tento. A vůbec. Tu Wikinu nepsali, jen protože by se strašně nudili.
Ten stáhne vše potřebné do aktuální složky, takže si nazapomeňte před provedením vytvořit nějakou prázdnou složku a vstoupit do ní.Docela dobrá věc je neopisovat a nebušit jak nějaká opice, ale vědět co dělám.
Což zvýší jeho ukecanost a navíc automaticky na vše odpovídá že ne. To se docela hodí, protože script se z nějakého důvodu s odstupem cca 10m dvakrát za sebou ptá na podporu Olympus foťáků, což je docela nepříjemné jelikož to přeruší kompilaci dokud mu neodpovíme.Což je ovšem nějaká chyba, protože normálně se neptá.
Jakmile bude disk naformátovaný, je dobré si na něj stáhnout všechny možné balíky, protože opkg (package manager) má problém s busybox wgetem, kterému předává argument že má stáhnout informace do neexistující složky, kterou si wget neumí vytvořit :SCo to? Mně to nic takového nedělá.
xsystem: ERROR: fork failed before executionTo je chyba opkg/ipkg opravená už dávno v minulosti. Stačí používat něco aktuálnějšího než krám jako je 8.09.
wget --passive-ftp -P /tmp/opkg-A9ul9e http://downloads.openwrt.org/kamikaze/8.09.2/adm5120/packages/python_2.5.4-2_mipsel.ipkJo, jo To je přesně to opisování ala cvičená opice jak jsem o něm mluvil výše. Co třeba úplně prosté?:
$ cd /tmp wget "http://downloads.openwrt.org/kamikaze/8.09.2/adm5120/packages/python_2.5.4-2_mipsel.ipk"Jinak vcelku pěkné a rád bych tě přivítal mezi námi, opravdovýma chlapama
Není až tak pravda. Jak USB-Stick, tak MTD mají své NAND pole. Na obojí je možné nainstalovat třeba squashfs a obojí je úplně stejně rychlé. Akorát jedno je přímo připojené na procesor (nebo obecně na sběrnici) a druhé jde přes řadič a USB. Akorát v USB ta NAND může být větší a rychlejší.Aha, ok.
Proto je lepší číst manuály. Třeba konkrétně tento. A vůbec. Tu Wikinu nepsali, jen protože by se strašně nudili.^-^. Já ho četl. V sekci Instalation je tam odkaz na to fórum ze kterého jsem vycházel, nic víc. Jinak ta wiki je zmatená, nekompletní, plná špatných odkazů které vedou nikam, přitom stránka kam má vést existuje, jen se jmenuje trochu jinak.
Což je ovšem nějaká chyba, protože normálně se neptá.To nepopírám :).
Co to? Mně to nic takového nedělá.Jo, je to divný. Před pár dny jsem sestavil Squidge, které jede prakticky na té samé verzi a tam to nedělá. Ty máš taky BR6104KP? Vlastně ani nevím proč jsem nepoužil Backfire 10.03. Nejspíš se mi to nějak vrylo do mozku, protože u každé specializované distribuce (midge, sweex či jak se jmenuje, squidge) píšou že vychází z kamikaze.
Jo, jo To je přesně to opisování ala cvičená opice jak jsem o něm mluvil výše. Co třeba úplně prosté? ...Hh. Tu ukázku jsem tam dal aby bylo vidět co je to za chybu - že wgetu vadí že ta složka neexistuje. Jakmile jí vytvořím, je vše ok. To úplně prosté jsem udělal, akorát na všechny balíky, nemá cenu je tahat po jednom.
Jinak vcelku pěkné a rád bych tě přivítal mezi námi, opravdovýma chlapamaDík :).Na začátek sice trochu lamení, ale z toho bych si nic nedělal (no kdo si může hodit kamenem?). To se časem podá.
Já ho četl. V sekci Instalation je tam odkaz na to fórum ze kterého jsem vycházel, nic víc.Aha. Tak to se omlouvám. Toho jsem si nevšiml.
Ty máš taky BR6104KP?Mám spousty zařízení, ale Edimaxe myslím zrovna ne. Ale IMHO je to věc HW nezávislá.
že wgetu vadí že ta složka neexistuje.To mi přijde vcelku logické.
To mi přijde vcelku logické.Osobně si myslím že opkg to tak logické nepřijde a celá chyba spočívá v tom, že před voláním zapomíná vytvořit tu složku (která má náhodnej název, takže jí nejde vytvořit ručně). Imho by se to dalo opravit wrapperem nad wgetem, který parsuje argumenty a pokud narazí na -P, otestuje existenci složky, poku neexistuje, tak jí vytvoří a předá všechny argumenty wgetu. Jinak teď se mi sestavuje Backfire, pokud bude fungovat v pohodě, tak ten blogpost trochu přepíšu (konfigurace byla stejná).
Target Images [*] ramdisk ---> Root filesystem archives [*] cpio.gz [*] tar.gz Ještě jsem zkoušel vypínat a zapínat LZMA v "kernel_menuconfig" General setup [*] Initial RAM filesystem and RAM disk (initramfs/initrd) support [*] Support initial ramdisks compressed using gzip [*] Support initial ramdisks compressed using bzip2 [*] Support initial ramdisks compressed using LZMA