Posts filed under 'softat'

Volume keys for the Raspberry Pi

After wasting a couple of evenings trying to assign my own volume control keys (F8/F9) for the Raspberry Pi 400, I finally found an acceptable solution. Most of that time was lost with Triggerhappy, which kind of worked but did not delete the events from the queue. Therefore, the keypresses still ended up doing unwanted things in running programs. Moreover, getting the daemon to work properly was so tricky that I wonder why it’s installed in the first place. In good old X11 it wouldn’t take long to remap the keycodes to XF86VolumeRaise and XF86VolumeLower using xmodmap, but the Raspberry Pi OS uses Wayland these days, so no go. The compositor (kind of like the window manager in X) is Labwc.

After trying to remap F8/F9 with xmodmap I soon realized Wayland deals very differently with the keyboard than X11 – nothing happened. Finally, I added the following modification to .config/labwc/rc.xml (inside the openbox_config tag):

<keyboard>
	<repeatRate>25</repeatRate>
	<repeatDelay>438</repeatDelay>

	<keybind key="F8">
		<action name="Execute">
			<command>amixer sset Master 5%-</command>
		</action>
	</keybind>
	<keybind key="F9">
		<action name="Execute">
			<command>amixer sset Master 5%+</command>
		</action>
	</keybind>
</keyboard>

At that point I had pretty much given up hope already, but lo and behold: the kludge worked! Volume could be controlled with the respective keys, which were also grabbed by Labwc and didn’t turn into extraneous keypresses. No need to reboot even, as “killall -HUP labwc” reloads the configuration file. In some earlier OS versions the configuration file has apparently been in a different location or with a different name, but this is where it resides at least for now.

As the keyboard has a Fn key anyway, it would have been a minimal effort to simply add various media keys as extras behind the normal function keys, as seen on many laptops. F11, F12 and the power button are there already exactly like that. For some unknown reason, Raspi designers didn’t deem media keys as necessary, which lead to this somewhat tiresome (if educative) effort. Sigh.

Add comment September 2nd, 2025

Chromebook palaa eläkkeeltä

No jos vielä kerran, tuumasin ja rupesin asentelemaan Acerin C710-Chromebookiin jälleen Linuxia. Olin jo ehtinyt entisöidä koneen repimällä tarrat irti ja palauttamalla sen alkuperäiselle Chrome OS:lle. Kromi-Ossi oli tietysti käyttökelvottoman vanha, kun kone on peräisin vuodelta 2012, joten ainoa ajanmukainen käyttis, joka koneeseen menee, on sopiva Linux-jakelu. Ajelin aikanaan tällä pitkään Linux Mintin Mate-versiota, joka toimi kaikin puolin hyvin, etenkin kun korvasi vakion hiiripädin ajurin Chrome OS:n vastaavalla. Toivoa siis oli.

Tämä nimenomainen Asseri on vanhoista Chrome-luuskista monessa mielessä paras: näppäimistössä on vielä useimmat tarpeelliset napit (myöhemmin niitä karsittiin), muistin voi päivittää ja myös SSD on vaihdettava normaali SATA-lätty eikä eMMC. Epäilin tosin koneen muistipaikoissa olevan vikaa, kun Memtest86+ antoi paljon virheitä erilaisten kalikoiden yhdistelmillä. Olin jo aikanaan löytänyt 2×2 Gt kammat, joilla sai edes luotettavat neljä gigaa käyttöön, mutta eihän se nykyään oikein riitä. Kokeilin piruuttani kaapista löytynyttä 2×8 Gt -yhdistelmää (DDR3-1333), joka on pitkälle virallisesti tuetun yli, ja sehän näytti pikatestin mukaan futaavan hienosti. Samalla vaihtui Corsairin 60-gigainen SSD mukavampaan ja nopeampaan 240-gigaiseen Radeoniin – kyllä, Toshibaa brändättiin hetken näinkin. Ratikka antoi parhaimmillaan jopa 540 Mt/s lukunopeutta, joten SATA3 on kovassa käytössä.

Akku latautuu. Keroppi, Badtz-Maru, Cinnamoroll, Tuxedo Sam, My Melody, Pompompurin, mitä siellä nyt on.

Mitenkään halukkaasti Buukki ei normaaliin Linux-käyttöön suostu: ensinnä on päästävä kehittäjätilaan, missä flässätään tilalle BIOS/UEFI (coreboot/SeaBIOS) kohtuullisella räpeltämisellä; tässä mallissa piti lisäksi sulkea emolevyltä alumiinifolionpalasella jumpperi, jotta firmiksen sai jyrätä. Onneksi olin tämän jo aikanaan kertaalleen tehnyt, sillä muuten olisi saattanut usko loppua kesken. Lopputuloksena koneeseen saa tavallista BIOSia muistuttavan käynnistysruudun, josta pääsee valitsemaan USB-tikun asennuksen käynnistämistä varten. Vaikka jokin kevytdistro olisi kenties ollut parempi, laittelin mieluummin ihan vakion Mint 22.1:n, kun ei Cinnamonkaan mikään järjettömän raskas ole, ja muistiahan riittää. Millekään erityiselle haksoroinnille ei ollut tässä kohtaa enää tarvetta, vaan asennus tapahtui ihan normaalilta ISO-levynkuvalta.

Normaalin odottelun perästä Asseri käynnistyi yskimättä ja niin sitä oltiin Mintin työpöydällä. Ihan heittämällä kaikki ei sentään toiminut, sillä ylärivin volansäätö- ja kirkkausnapit eivät tehneet mitään. Fn ei oikein tunnu tekevän mitään hyödyllistä, kun näppäimistä ei sen kanssa tule mitään painallusta. Ehkäpä tähän löytyisi oikeampikin ratkaisu, mutta mäppäsin ensi hätään asetusvalikon pikanäppäinsäätimestä F8–F10:n volalle ja F6–F7:n kirkkaudelle. Asentelin jonkun ohjeen mukaisesti myös Brightnesscontrolin, vaikka näin postuumisti en ole enää ihan varma, olisiko sitä edes tarvittu. Yleensä en tykkää pitää hiiripädin täppäystä päällä, mutta pädin klikkaus tuottaa sen verran paljon huteja, että tällä erää jätin ominaisuuden päälle.

Tekeekö tällä oikeasti mitään? Faktoja ei käy kieltäminen: onhan kone jo hidas ja näyttis niin vanha, ettei se kaikkea tarpeellista ihan tue, minkä lisäksi akku kestänee ehkä pari tuntia. Kepeä selailu onnistuu, kirjoittelu varmasti, musaa voi soittaa ja ehkäpä jotain simppeliä peliä yritellä (testasin Hidden Folksin, A Short Hiken ja Pikunikun), etenkin emulaattoreilla. Ikävänä yllätyksenä luottovanki VLC ei suorilta tukenut ainakaan näin vanhan koneen VA-API:a, joten videokiihdytys jäi sillä näkemättä. Vakiona asennettu, muuten karumpi Celluloid sen sijaan jaksoi pakertaa fullhd-tasoista h264:ää ruudulle kiihdytettynä ilman ongelmia. Itse en ihan näin karua värkkiä enää jaksane käyttää, vaikka koko onkin mukavan pieni, joten eiköhän tämä mene lähinnä tyllerölle lelutukseen.

Add comment August 18th, 2025

FS-UAE ja ADF-korpuille kirjoitus

Taistelin eilen FS-UAE:n kanssa useamman tunnin, kun yritin saada ADF-levynkuvalle kirjoitettua ja poistettua tiedostoja. Kyllähän ne sinne menivät ja näkyivät UAE:n buutin jälkeen, mutta toiselle koneelle kopsattu ADF olikin aina alkuperäisessä asussaan. Ensimmäinen moka oli ihan omani: levytiedostolla ei ollut kirjoitusoikeuksia – olisi siitäkin ehkä joku varoitus voinut tulla, mutta olkoon. Toinen probleemi olikin sitten huomattavasti mystisempi, kun levynkuva toimi yhdellä tiedostonimellä, mutta nimen muuttuessa palautui taas alkuperäiseen muotoonsa.

Syyllinen tähän oli lopulta se, että oletuksena FS-UAE ei modifioi alkuperäistä ADF:ää, vaan tekee overlayn (Linuxissa paikassa Documents/FS-UAE/Save States), johon muutokset tallentuvat. Holhoava päätös, jonka tarkoituksena lienee lähinnä suojella sähläreitä korppujensa tuhoamiselta. Jokseenkin huonosti dokumentoitu ratkaisu löytyi onneksi googlaamalla. Paikkaan .config/fs-uae/fs-uae.conf seuraava rimpsu ja johan soi:

[config]
writable_floppy_images=1

FS-UAE and Writing to ADF images

A short summary of the above in English. If you can’t modify ADF images in FS-UAE, first check if the file is write protected. If that’s not the issue, the problem has most likely to do with the overlay system that is meant to protect the original ADFs. To make FS-UAE write to the actual file so that the result can be used on another machine too, copypaste the above setting to .config/fs-uae/fs-uae.conf.

Add comment December 10th, 2024

Linux ja PDF/A

Tulipa opinnäytteiden kanssa vastaan tilanne, että piti saada tavallinen pdf-tiedosto käännettyä pdf/a-standardin mukaiseksi arkistointia varten. Googlausrallin perusteella OCRmyPDF on tässäkin käytössä ystävä – aiemmin olen käyttänyt sitä pelkkään kirjaskannien OCR:ään. Jotakuinkin näin:

ocrmypdf --tesseract-timeout=0 --skip-text input.pdf output.pdf

Jos mukaan täytyy uittaa metadataa, niin niitä saa mukaan seuraavasti: –author “Herra 47”. Muut tunnetut tägit ovat –subject, –title ja –keywords. Tässä vaiheessa kannattanee tehdä jo erillinen skriptitiedosto, koska koko sotku voi olla kohtuuttoman pitkä komentoriville. Näin helpostiko se kävi?

No eipä tietenkään. Verkossa oleva PDF/A-validaattori valittaa, että päivämäärä on väärässä formaatissa. Pikavilkaisulla en keksi, että miksi, mutta ilmeisesti pikepdf:ssä on aiheeseen liittyvä bugi, joka on vasta hiljattain korjattu. Koneeni paketinhallinnasta tulee liian vanha versio, joten eipä onnistu ilman erillistä työkalua. Kaikenlaisia sekavia skriptejä löytyi asian korjaamiseksi, mikä tuntui taas mutkistavan asiaa. Onneksi vastaan tuli myös simppeli metadataeditori Paper Clip, jolla päivämäärän sai tehtyä uusiksi, ja sitten meni jo validointikin läpi.

Add comment November 18th, 2024

Tracker Paper Errata

In 2019 I published a paper called Trackerit: paradigman synty, kukoistus ja myöhemmät vaiheet in Finnish. After an unfortunate editorial process I pulled the extended English version out from a journal, even if it had already passed peer review, and decided to simply republish a translated version of the original as Trackers: The Rise, Bloom and Later Developments of a Paradigm in WiderScreen. Even if I tried to check my facts, a couple of inaccuries had slipped in, as kindly pointed out by Saga Musix.

  • The “M.K.” tag found in mods is often attributed to Mahoney & Kaktus of NoiseTracker fame, but more likely it refers to Michael Kleps who introduced it in a later version of Soundtracker.
  • The Scream Tracker 3 file format can accommodate 32 channels, but the publicly available versions of the original program only let you edit 16 sample and 9 FM channels.
  • While it’s true that the CIA-based tempo command was introduced in later ProTracker versions, Obarski’s Soundtracker already had tempo as part of its file format. You couldn’t initially change it within the editor, though.

The moral of the story: don’t repeat common “knowledge” without checking the details once more 🙂

Add comment August 7th, 2024

Spämmifiltterin suunnittelua

En tiedä, mitä olen tehnyt väärin, mutta Facebook-feedini on viime aikoina ollut aivan täynnä bottien kaapatuilta tai valetileiltä postittamaa roskaa. Ensin tuli sadoittain Jennifer Anistonia ja Sandra Bullockia, sitten feikki-intiaania ja nyt viime aikoina aivan loputtomasti lammikossa jäkittäviä, tekoälyn luomia lapsi- ja koiraparkoja sekä hurskaita, kuulemma kauniita lentoemäntiä. Seassa silloin tällöin jotain oikeaakin sisältöä, mutta tuskaisen vähän. Suuri virheeni on varmaan ollut skeidan raportointi, jonka algoritmi on tulkinnut mielenkiinnoksi aihetta kohtaan.

Plessetään nyt sitä peukkua, niin saa terminaattoriressukka korjaamolta paremmat jalat.

En ole ihan tarkalleen edes perillä siitä, mitä näillä kaikilla feikeillä haetaan. Veikkaisin, että pornon mainostusta, tilien kaappaamista, hyväuskoisten rahojen kuppaamista ja muuta sellaista pyyteetöntä. Internetissä eläneelle spämmi ja khalastelu ovat tuttu ja arkipäiväinen juttu, mutta mitä en ymmärrä on Facebookin täysi toimettomuus ongelman suhteen. Itse olen pariinkin kertaan joutunut jäähylle ihan normaaleista postauksista, mutta spämmin raportoiminen ei tunnu johtavan yhtään mihinkään. Jos vaivautuisivat filtteröimään edes kaiken roskan, jossa on sanat “beautiful cabin crew” ja #scarlettjohansson, niin kökön määrä putoaisi murto-osaan. Näin ei kuitenkaan tapahdu, joten ainoa selitys on, että Fese haluaa tuota jöötiä palveluunsa. Dollarit on epäilemättä laskettu.

Beautiful cabin crew ja joku näistä varmaankin on Scarlett Johansson. Veikkaisin, että tuossa oikealla.

Koodarina rupesin miettimään käytännöllistä algoritmia, joka nappaisi automaattisesti suurimman osan roskasisällöstä. Optimoitavia ominaisuuksia ovat ainakin toteutuksen helppous, laskennallinen keveys, pieni muistinkäyttö, osumatarkkuus ja skaalautuvuus, sillä onhan käsiteltävä datamäärä valtava. Hetken pähkäilyn jälkeen välähti ja keksin lupaavan ratkaisun, jonka eri vaiheet näyttävät tältä:

  1. Merkitse kaikki uudet postaukset spämmiksi ja poista ne

Osumatarkkuus tulee olemaan helposti ainakin 99 %, mitä parempaan tuskin pystyvät sen enempää neuroverkot kuin tilastolliset menetelmätkään. Pienenä puutteena hivenen oikeaakin sisältöä saattaa mennä mukana, mutta se vaarahan on joka tapauksessa olemassa. Toteutus on lisäksi erittäin helppo, vaaditun laskentatehon sekä muistinkulutuksen suhteen kevyt ja – mikä parasta – skaalautuu täysin lineaarisesti annetun syötteen mukana O(n). Keksikääpä itse parempi!

Add comment April 26th, 2024

Linuxissa skannausta

Monta vuotta pyristelin vastaan, mutta nyt kun skannaustarpeita tuntui ilmenevän entistä enemmän, niin päädyin hankkimaan talouteen taas tasoskannerin. Taannoin olen yhden tai ehkä kaksikin omistanut, mutta ne olivat kadonneet ajan virtaan vanhanaikaisina ja liian suurina. Clasulta lähti 79 eurolla Canon CanoScan LiDE 300 – eipä nämä enää paljon maksa uusina. Linux-tukea piti olla ainakin räpläämällä saatavissa (ja on nämä ennenkin toimimaan saatu), joten liikkeelle kohtuullisen toiveikkain mielin.

Skanneri on: skanneri.

Riittävän vanhat skannerit tunnistuisivat todennäköisesti jo itsekin, mutta tämä valitettavasti ei. Sane pitää olla asennettuna ja näemmä myös hivenen epäilyttävä Canonin oma ajuri. Eipä tuntunut niilläkään lähtevän, vaan skannerisoftat antoivat periksi heti kättelyssä. Jotain toivoa antoi sentään sudon avulla toimiminen. Lisäsin itseni scanner-ryhmään ja varmuuden vuoksi vielä lp:hen, sillä laitetiedoston oikeudet olivat sillä ryhmällä, minkä jälkeen buutti ja johan soi!

Takavuosina skannailin Xsanella, jolla on mukavan suora yhteys Gimpiin. Muutaman sivun näpläämiseen se varmasti soveltuukin, mutta nyt oli tarkoitus tykitellä kokonainen kirja. Käyttöliittymäkin on jo hieman karski nykykatsannossa. Paremmaksi vaihtoehdoksi liukuhihnatyöhön osoittautui Simple Scan, joka osaa tallentaa kuvat yksittäin tai haluttaessa suoraan koota niistä jopa pdf:n. Ilman säätöjä pdf:stä ei tullut ihan haluttu, joten ajoin jpegit ImageMagickin läpi hieman pienentäen ja kontrastia lisäten. Meisikillä pitäisi onnistua myös pdf:n teko, mutta img2pdf teki saman ilman isompia kikkailuja. Kaupan päälle vielä paketinhallinnasta ocrmypdf ja katso: haku toimii ja tekstiä voi kopioida.

Tämä riittää ainakin toistaiseksi. Osa toiminnoista lienee käytössä vain Windowsin puolella – ainakaan paneelin turhahkot pikanapit eivät tunnu tekevän juuri mitään. Joitakin hienouksia voi myös jäädä pimentoon, mutta tarpeeni eivät ole kovin monimutkaiset ja ahkera skriptaaminen paikkaa puutteita. Hivenen kummallisesti oletuksena lopputulos on ylösalaisin(!), minkä Simple Scan onneksi korjaa parilla klikkauksella. Tämä ei liene sinänsä Linuxin syy, vaan skannaussuunnan, joka kulkee hieman epäintuitiivisesti laitteen etureunasta taaksepäin.

Add comment April 2nd, 2024

Zoom 5.17.5 Crash on Linux

Today I had to update the Zoom client on Linux to 5.17.5 because someone had started a video call with a newer version than what I had. Usually this has caused only irritation, but this time the program just kept freezing, eating memory and finally crashing with a segfault in libQt5Core. I had just updated to newer Nvidia drivers too, but reverting to the old version didn’t help. On another machine with an integrated Intel GPU there were no issues, which pointed the finger at Nvidia as well. Things started looking gloomy, as reinstalling Zoom was of no use and reverting to an older version would not let me join most calls. There is the Web version, sure, but no thanks.

Initial googling around turned up only old problems with useless solutions, but after finding this things took an upward turn. Apparently the crash has to do with downloaded emojis (that haven’t worked anyway), because Zoom tries to load them over and over, leading to a massive memory leak and then segfault. Luckily the temporary solution is easy – delete the .zoom directory in your home directory:

rm -r ~/.zoom

Och samma på finska. Tuorein Zoom (5.17.5) jäi ensin jumiin, söi muistin loppuun ja sitten kaatui. Olin juuri päivittänyt tuoreempiin Nvidian ajureihin, jotka vaikuttivat ensin syypäältä, mutta vanhojen palautus ei auttanut eikä myöskään Zoomin uudelleenasennus tyhjästä. Täältä löytyi onneksi lopulta vinkki ja jonkinlainen selitys ongelmaan: jostain syystä asiakas jää lataamaan loputtomasti ylimääräisiä emojeja, jos sellaisia koneelle on asentanut. Väliaikaisratkaisuna voi poistaa kotihakemistosta hakemiston .zoom ja johan soi:

rm -r ~/.zoom

Add comment February 6th, 2024

Accepting SteamCMD license afterwards

This one was tricky. I mistakenly declined the SteamCMD license when installing it using apt, and then it decided that I’m a hostile person who doesn’t ever want to install it. The debconf key in question is steam/question and its value should be “I ACCEPT” instead of “I DECLINE”. Directly modifying /var/cache/debconf/config.dat seemed promising, but the wrong value reappered when trying to install again. Finally a script did the trick (run as root at your own risk):

#!/bin/sh
set -e

. /usr/share/debconf/confmodule

db_set steam/question "I AGREE"
db_go

Add comment November 4th, 2023

MemTestin ja kernelin yhteispeli

Eräässä projektipöntössä ilmeni 2×8 gigan DDR3-kalikoilla MemTest86:lla satunnaista yhden (1) bitin virhettä tietyssä kiinteässä osoitteessa. Yhtäältä en oikein viitsisi tuollaisen takia ostaa uusia, mutta toisaalta ei tilannetta voi jättää sikseenkään, koska sen yhden bitin muuttuminen voi olla liikaa sopivassa tilanteessa. MemTest kertoo auliisti, että osoite on 4191A9978, mutta mitäs tällä tiedolla sitten tehdään?

Linuxin kernelille on mahdollista kertoa käynnistyksessä, että tiettyjä alueita ei käytetä. Tämän pystyy tekemään joko GRUB_BADRAM-asetuksella tai sitten suoraan kernelin parametrilla memmap. Netistä löytyy vanhoja ohjeita 32-bittisille ytimille, mutta tänä päivänä 64 bittiä on arkipäivää, joten vinkit eivät välttämättä päde sinältään. Tekee säädön kumpaa kautta hyvänsä, täytyy kertoa mikä alue ohitetaan, joko maskilla tai sitten tavumäärä. Koska peeseellä muistisivu on 4096 tavua, seuraava säätö /etc/default/grub-tiedostoon tuottaa halutun tuloksen:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash memmap=4K\\\$0x00000004191a9000"

Alkuun lisätään heksaluvun tunnus 0x ja seitsemän nollaa, jotta saadaan oikea 64-bittinen (16 numeroa) osoite, minkä lisäksi kolme alinta numeroa nollataan, jotta saadaan sivun osoite. Vielä pitää ajaa sudo update-grub sekä buutata kone, minkä jälkeen alue 4191A9000–4191A9FFF ei ole enää käytössä, ja ongelmainen muistiosoite suljetaan tylysti pois karkeloista. Neljän kilotavun haaskaaminen ei nykykoneilla merkitse mitään, etenkin kun toisessa vaakakupissa on vakaasti toimiva kone. Dmesg-komennon tulostus varmistaa säädön menneen perille:

[    0.000000] user: [mem 0x00000004191a9000-0x00000004191a9fff] reserved

Tällaiselle kikkailulle voi tulla tarvetta etenkin, jos kyseessä on emolle kiinteästi juotettu tai erityisen harvinainen/kallis muisti. Jos muistivirheet tulevat satunnaisista osoitteista tai niitä on tolkuttoman paljon, niin peli on toki menetetty.


MemTest errors and Linux command line

And a short summary in English. If there’s an isolate memory issue revealed by MemTest86, it might still be possible to use the memory modules with the help of Linux kernel’s memmap setting – also GRUB_BADRAM does the same, but uses a slightly different format. This might be particularly useful with integrated or rare/expensive RAM. In this example the unstable bit was found at address 4191A9978. Do not follow old instructions meant for 32-bit kernels, but put this in /etc/default/grub instead:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash memmap=4K\\\$0x00000004191a9000"

0x (i.e. hex) at the beginning, then seven zeroes to make it 64-bit (16 numbers) and finally the address with the lowest three numbers zeroed. This is because the page size is 4096 bytes on today’s PCs. Then run sudo update-grub and reboot, after which the offending address will not be used by the kernel. To make sure that is the case, check that dmesg agrees:

[    0.000000] user: [mem 0x00000004191a9000-0x00000004191a9fff] reserved

Losing 4 kilobytes of memory isn’t really any concern today, especially if you get a stable system back that way. If there’s a lot of errors or they appear at random locations, then there’s of course little you can do.

Add comment October 17th, 2023

Next Posts Previous Posts


Kommenttien virta

Aiheet