Společnost Backblaze zveřejnila statistiky spolehlivosti pevných disků používaných ve svých datových centrech za rok 2025. Ke konci roku 2025 vlastnila 349 462 pevných disků. Průměrná AFR (Annualized Failure Rate), tj. pravděpodobnost, že disk během roku selže, byla 1,36 %. V roce 2024 to bylo 1,57 %. V roce 2023 to bylo 1,70 %. V roce 2022 to bylo 1,37 %.
Nástroj sql-tap je proxy mezi aplikací a databází, které zachytává všechny SQL dotazy a zobrazuje je v terminálovém rozhraní. Zde lze téměř v reálném čase zkoumat dotazy, sledovat transakce a spouštět SQL příkaz EXPLAIN. Podporované databázové systémy jsou pouze PostgreSQL a MySQL. Zdrojový kód je dostupný na GitHubu, pod licencí MIT.
Byla vydána nová verze 9.2 textového editoru Vim (Vi IMproved). Přináší vylepšené doplňování, podporu schránky ve Waylandu, podporu XDG Base Directory (konfigurace v $HOME/.config/vim), vylepšené Vim9 skriptování nebo lepší zvýrazňování změn. Vim zůstává charityware. Nadále vybízí k podpoře dětí v Ugandě. Z důvodu úmrtí autora Vimu Brama Moolenaara a ukončení činnosti jím založené charitativní organizace ICCF Holland projekt Vim navázal spolupráci s charitativní organizaci Kuwasha.
Byl představen editor MonoSketch, webová aplikace pro tvorbu diagramů, technických nákresů, flowchartů a různých dalších vizualizací, to vše jenom z ASCII znaků. Všechny operace běží pouze v prohlížeči uživatele a neprobíhá tedy žádné nahrávání dat na server. Zdrojový kód aplikace (drtivá většina Kotlin, žádné C#) je dostupný na GitHubu pod licencí Apache 2.0.
Byla vydána nová verze 3.7.0 multiplatformního svobodného frameworku pro zpracování obrazu G'MIC (GREYC's Magic for Image Computing, Wikipedie). Přehled novinek i s náhledy nových filtrů na PIXLS.US.
Všem na AbcLinuxu vše nejlepší k Valentýnu aneb Dni lásky ke svobodnému softwaru (I love Free Software Day, Mastodon, 𝕏).
Eric Migicovsky představil Pebble Emulator, tj. emulátor hodinek Pebble (PebbleOS) běžící ve webovém prohlížeči. Za 6 hodin jej napsal Claude Code. Zdrojové kódy jsou k dispozici na GitHubu.
Byla vydána nová verze 3.41 frameworku Flutter (Wikipedie) pro vývoj mobilních, webových i desktopových aplikací a nová verze 3.11 souvisejícího programovacího jazyka Dart (Wikipedie).
Rusko zcela zablokovalo komunikační platformu WhatsApp, řekl včera mluvčí Kremlu Dmitrij Peskov. Aplikace, jejímž vlastníkem je americká společnost Meta Platforms a která má v Rusku na 100 milionů uživatelů, podle Peskova nedodržovala ruské zákony. Mluvčí zároveň lidem v Rusku doporučil, aby začali používat domácí aplikaci MAX. Kritici tvrdí, že tato aplikace ruské vládě umožňuje lidi sledovat, což úřady popírají.
Před 34 lety, ve čtvrtek 13. února 1992, se tehdejší Česká a Slovenská Federativní Republika oficiálně (a slavnostně) připojila k Internetu.
V tomto úzce zaměřeném příspěvku bude řeč o tom jak zprovoznit T-Mobile Twist Internet 4G s USB 4G modemem v Gentoo Linuxu. Od vybalení SIM karty a modemu, přes konfiguraci jádra a připojení, až po automatizaci připojování pomocí udev. Postup není dokonalý, ale pořád je alespoň o trochu lepší než drátem do oka.
Karta SIM nám může přinést hned dvě nepříjemná překvapení – nutnost jí poskytnout PIN a nutnost ji aktivovat. Obojí snadno vyřešíme vložením do běžného mobilního telefonu. Nastavíme zde, aby karta kód PIN nevyžadovala. Vzápětí provedeme hovor na libovolné číslo. Nejsnáze na to, jehož kartu jsme z telefonu právě vyndali. Dozvíme se, že volaný není dotupný a zajistíme si, že nám datové služby budou během několika hodin aktivovány. Následné vložení karty do modemu a jeho zapnutí je již triviální.
I konfigurace jádra je snadná, potřebný ovladač mají nové verze
jádra v základní výbavě. Funkčnost mám vyzkoušenou na verzi
2.6.22-suspend2-r2.
Device Drivers --->
USB support --->
USB Serial Converter support --->
<M> USB Serial Converter support
<M> USB IPWireless (3G UMTS TDD) Driver (EXPERIMENTAL)
Po zkompilování a nainstalování obou potřebných modulů stačí modem
připojit k počítači. V logu bychom měli být informování, že
modem byl rozpoznán a stal se zařízením /dev/ttyUSB0:
usb 2-2: new full speed USB device using uhci_hcd and address 2
usb 2-2: configuration #1 chosen from 2 choices
usbcore: registered new interface driver usbserial
drivers/usb/serial/usb-serial.c: USB Serial Driver core
drivers/usb/serial/usb-serial.c: USB Serial support registered for IPWireless converter
ipwtty 2-2:1.0: IPWireless converter converter detected
usb 2-2: IPWireless converter converter now attached to ttyUSB0
usbcore: registered new interface driver ipwtty
drivers/usb/serial/ipw.c: IPWireless tty driver v0.3
Konfigurace pppd v Gentoo je opravdu triviální, pokud máte
k dispozici patřičné „zaklínadlo“ – stačí vložit
příslušné řádky do /etc/conf.d/net. Všichni mají svůj
recept a každý ho má trochu jiný, já momentálně používám
následující. Náměty na vylepšení rád uvidím v komentářích.
config_ppp0=( "ppp" )
link_ppp0="/dev/ttyUSB0"
username_ppp0='gprs'
password_ppp0='gprs'
pppd_ppp0=(
"debug"
"noauth"
"defaultroute"
"usepeerdns"
"lcp-echo-interval 36000"
"passive"
"local"
"lock"
"115200"
"modem crtscts"
"ipcp-no-addresses"
)
chat_ppp0=(
'ABORT' 'BUSY'
'ABORT' 'ERROR'
'ABORT' 'NO ANSWER'
'ABORT' 'NO CARRIER'
'ABORT' 'NO DIALTONE'
'ABORT' 'Invalid Login'
'ABORT' 'Login incorrect'
'TIMEOUT' '5'
'' 'ATZ'
'OK' 'AT&FE0Q0V1&C1&D2S0=0'
'OK' 'ATS7=60&K3N1'
'OK' 'AT+CGDCONT=1,"PPP","internet.t-mobile.cz","gprs,gprs",0,0'
'OK' 'ATDT*99#'
'CONNECT' ''
'TIMEOUT' '5'
'~--' ''
)
Dále stačí jen vytvořit startovací skript a připojení aktivovat:
cd /etc/init.d/
ln -s net.lo net.ppp0
./net.ppp0 start
Pokud jste vše udělali správně, v logu Vás potěší řádky podobné těmto:
pppd: Plugin passwordfd.so loaded.
pppd: pppd 2.4.4 started by root, uid 0
chat: abort on (BUSY)
chat: abort on (ERROR)
chat: abort on (NO ANSWER)
chat: abort on (NO CARRIER)
chat: abort on (NO DIALTONE)
chat: abort on (Invalid Login)
chat: abort on (Login incorrect)
chat: timeout set to 5 seconds
chat: send (ATZ^M)
chat: expect (OK)
chat: ATZ^M^M
chat: OK
chat: -- got it
chat: send (AT&FE0Q0V1&C1&D2S0=0^M)
chat: expect (OK)
chat: ^M
chat: AT&FE0Q0V1&C1&D2S0=0^M^M
chat: OK
chat: -- got it
chat: send (ATS7=60&K3N1^M)
chat: expect (OK)
chat: ^M
chat: ^M
chat: OK
chat: -- got it
chat: send (AT+CGDCONT=1,"PPP","internet.t-mobile.cz","gprs,gprs",0,0^M)
chat: expect (OK)
chat: ^M
chat: ^M
chat: OK
chat: -- got it
chat: send (ATDT*99#^M)
chat: expect (CONNECT)
chat: ^M
chat: ^M
chat: CONNECT
chat: -- got it
chat: send (^M)
chat: timeout set to 5 seconds
chat: expect (~)
chat: ^M
chat: ~
chat: -- got it
chat: send (^M)
pppd: Serial connection established.
pppd: using channel 1
pppd: Using interface ppp0
pppd: Connect: ppp0 <--> /dev/ttyUSB0
pppd: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xbc2e4dbf> <pcomp> <accomp>]
pppd: rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0xbc2e4dbf> <pcomp> <accomp>]
pppd: rcvd [LCP ConfReq id=0x2 <auth chap MD5> <magic 0xc9d23a82>]
pppd: sent [LCP ConfAck id=0x2 <auth chap MD5> <magic 0xc9d23a82>]
pppd: sent [LCP EchoReq id=0x0 magic=0xbc2e4dbf]
pppd: rcvd [CHAP Challenge id=0x1 <b6acd0ef4dcd03e1d82cf7a8410867f0>, name = "ctx-mw25-ipw"]
pppd: sent [CHAP Response id=0x1 <874d0002a14803c51f20fe168a79e901>, name = "gprs"]
pppd: rcvd [LCP EchoRep id=0x0 magic=0xc9d23a82]
pppd: rcvd [CHAP Success id=0x1 ""]
pppd: CHAP authentication succeeded
pppd: CHAP authentication succeeded
PPP BSD Compression module registered
PPP Deflate Compression module registered
pppd: sent [CCP ConfReq id=0x1 <deflate 15> <deflate(old#) 15> <bsd v1 15>]
pppd: sent [IPCP ConfReq id=0x1 <compress VJ 0f 01> <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>]
pppd: rcvd [IPCP ConfReq id=0x1 <addr 10.231.251.32>]
pppd: sent [IPCP ConfAck id=0x1 <addr 10.231.251.32>]
pppd: rcvd [LCP ProtRej id=0x3 80 fd 01 01 00 0f 1a 04 78 00 18 04 78 00 15 03 2f]
pppd: Protocol-Reject for 'Compression Control Protocol' (0x80fd) received
pppd: rcvd [IPCP ConfRej id=0x1 <compress VJ 0f 01>]
pppd: sent [IPCP ConfReq id=0x2 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>]
pppd: rcvd [IPCP ConfNak id=0x2 <addr 89.24.41.190> <ms-dns1 62.141.0.1> <ms-dns3 213.162.65.1>]
pppd: sent [IPCP ConfReq id=0x3 <addr 89.24.41.190> <ms-dns1 62.141.0.1> <ms-dns3 213.162.65.1>]
pppd: rcvd [IPCP ConfAck id=0x3 <addr 89.24.41.190> <ms-dns1 62.141.0.1> <ms-dns3 213.162.65.1>]
pppd: not replacing existing default route to wlan0 [192.168.1.1]
pppd: local IP address 89.24.41.190
pppd: remote IP address 10.231.251.32
pppd: primary DNS address 62.141.0.1
pppd: secondary DNS address 213.162.65.1
pppd: Script /etc/ppp/ip-up started (pid 18507)
pppd: Script /etc/ppp/ip-up finished (pid 18507), status = 0x1
Když máme připojení už v principu funkční, můžeme zatoužit si
práci trochu zjednodušit – nejlépe tak, že po spojení modemu
s počítačem se tento bez vyzvání připojí a po odpojení modemu
připojení zase sám ukončí a vyjme ovládací modul z jádra.
K tomu nám dobře poslouží udev. Budeme potřebovat jeden ovládací
skript na samotné připojení či odpojení. Můj se jmenuje
/root/bin/tm4ghandler a nosí v sobě toto:
#!/bin/sh
RUN=/var/run/tmobile4g
device_added () {
test -e $RUN && test `cat $RUN` -lt $SEQNUM
}
case $ACTION in
add)
device_added && exit
echo $SEQNUM > $RUN
logger "tmobile4g modem connect event"
/etc/init.d/net.ppp0 start
;;
remove)
device_added || exit
rm -f $RUN
logger "tmobile4g modem disconnect event"
/etc/init.d/net.ppp0 stop
modprobe -r ipw
;;
esac
Poté si vyhlédmene vhodné udev události – jednu pro připojení, jednu pro odpojení – na které přivěsíme náš skript. S výběrem nám může pomoci udevmonitor:
udevmonitor --udev --env
Pak stačí pravidla přidat do konfiguračního adresáře udev. Dobře mi
posloužil soubor /etc/udev/rules.d/41-tmobile4g.rules: (na
starších jádrech nemusí fungovat korektně).
BUS=="usb", SUBSYSTEM=="usb", ENV{PRODUCT}=="bc3/1/1", ACTION=="add", RUN+="/bin/sh -c '/root/bin/tm4ghandler &'"
BUS=="usb", SUBSYSTEM=="usb", ENV{PRODUCT}=="bc3/1/1", ACTION=="remove", RUN+="/bin/sh -c '/root/bin/tm4ghandler &'"
Takto nastaveno mi vše spolehlivě funguje, přeji totéž i Vám. Použité skripty mají k dokonalosti daleko. Vylepšovací návrhy rád uvidím v komentářích.
Někdy se stane, že na inicializační příkaz ATZ modem jednoduše nereaguje. Nenašel jsem jiné řešení než trpělivost. Chat skript je vždy po pěti sekundách ukončen timeoutem a pppd po chvíli restartován. Připojení se po pár minutách rozběhne.
O novém 4G připojení se dá napsat leccos, ale napsal-li bych, že mi přijde spolehlivé, byla by to bohapustá lež. Rozhodně spadne častěji než T-Mobile EDGE. Nevím, zda je chyba v síti či na mém přijímači.
Pokud Vás můj příspěvek rozčílil a chystáte se mi napsat, že podobných návodů je plný internet, že ten můj je obzvláště špatný a ještě k tomu drze zaměřen jen na Gentoo, ušetřete si prosím práci. Jestli Vám libovolný kousek pomohl, jsem jen rád.
Tiskni
Sdílej:
ps. Nebylo by lepší to napsat do sekce Faq nebo Hardware ?
Pokud tam ale někdo chce udělat stručný záznam k modemu a dát tam link sem, není to žádný problém.
Děkuji za připomínky. Pokud mluvíte opravdu o "spouštěcím skriptu", ten v /etc/init.d/ skutečně je, viz:
Dále stačí jen vytvořit startovací skript a připojení aktivovat:
cd /etc/init.d/ ln -s net.lo net.ppp0
Pokud máte na mysli druhý uvedený skript (/root/bin/tm4ghandler), tak to je obslužný skript pro udev. Není startovacím skriptem a proto bych ho (alespoň u sebe) do /etc/init.d/ nedal. Ze stejného důvodu také rozlišuje mezi $ACTION add a remove, protože v této formě onu proměnnou obdrží od udev.
A jestli jste myslel ještě něco úplně jiného, pak to prosím ještě upřesněte, aby to došlo i mně 