Nokia phones turn off vibration alarm when connected to a charger
Some Nokia phones deactivate vibrato alarm when connected to a charger. This bug goes back to models as old as the 3330 and there are reports (see link) for others as well. Apparently, that is “Not A Bug, But A Feature”™ according to the linked forums, but it still means one has to remember changing the profile from vibra-only to one with ringtone enabled. If you are a sensible person, you turn your gadgets silent in public. But that probably had not been anticipated by Nokia back then. And now we have blaring ringtones everywhere—but that is a topic for another time.
Posted 2013-02-24 17:02 / Tags: Bugs, Nokia. / link
Building Dart from source
In the category “Worst Build Systems”, the Dart source can join the ranks of wanpipe (see post from 2012-09-12). First, requiring `gclient sync` fails the island test. Network is not allowed in distro build environments. Second, `gclient runhooks` wants to execute ./tools/testing/bin/linux/dart by way of tools/print_version.py, but prebuilt binaries are not permitted either — not to mention that that file there is specific to the x86-32 platform. How on earth did they ever bootstrap this monster?
Posted 2013-02-19 22:02 / Tags: Rant, Software. / link
Deactivating more evil stuff
Browsing a page with a lot of embedded <object>s, predominantly Flash, can cause Firefox and the entire system grind down to a halt thanks to the Flash plugin drawing insane amounts of CPU, and when it gets tough, memory. (Keeping three–four youtube tabs open and watching misc stuff for an hour is going to screw you up on 1GB Atom platforms.)
Thankfully, Firefox has an option: plugins.click_to_play, and it should be set to true, which will cause objects not to be loaded until clicked. Hopefully now I can visit those few pages that are full of it.
It does work well - but only where the object size is big enough, such as the youtube video window. On certain other ones where the objects are small, the object area is not startable by click.
Posted 2013-01-10 17:01 / Tags: Firefox. / link
Thoughts. 2012: Stell dir vor, es ist Weltuntergang und du bist live dabei.
Und dann passiert nix.
Posted 2012-12-22 10:12 / link
Google Plus, Rant. Google+ annoyances #1: middle mouse button to paste X11 clipboard is overriden by oodles of Javascript that already slow down the G+ interface to a crawl in firefox. People, test your stuff on netbooks, for a change. Posted 2012-11-01 17:11 / link
Doom, Heretic, Hexen, Thoughts.
Speedrunning Heretic and Hexen: The presence of the Chaos Device and Wings Of Wrath artifacts open up significant shortcuts. The fact that these artifacts are also retained across maps means map designers need to be that much more careful if they want to forbid certain shortcuts.
Posted 2012-10-27 19:10 / linkRemove inaccessible deleted VDI files by UUID, and on Linux
Why can't the GUI offer this functionality? And why is Google so unhelpful when going for “deleted VDI file”?
VBoxManage closemedium disk '/virt/VirtualBox VMs/jng-debian-testing/jng-deb-testing.vdi'
Posted 2012-10-24 22:10 / Tags: Bookmarks, Rant, Virtualbox. / link
Zum GoeSF-Sanierungskonzept für das FB Weende
Da heißt es im PDF, “Wasserfläche max. 1000 m²”. So wird es für mich noch weniger Anreiz geben, dieses zu besuchen. Zum Vergleich: gegenwärtige Wasserfläche (jeweils ohne Planschbereiche) Weende: 1495 m², Brauweg: 2787 m².
Weiterhin ist eine “konzeptionelle Ausrichtung” als gedacht. Jedoch gibt es schon ausreichend naturelle Bademöglichkeiten, u.a. durch das FB Grone und Seen im Umland.
Posted 2012-09-24 09:09 / Tags: Freetime, Local. / link
IPv6 at home: proto-50 instead of proto-41
SIXXS and HE (two tunnelbrokers I significantly used in the past) have certain limitations, so running IPv6 over a VPN tunnel to a dedicated server is something I considered. Root of the problem is of course the set of inert German ISPs that will not budge a quad in delivering IPv6, especially in light that RIPE's pool has now also reached the restricted giveaway mark.
SIXXS. Convoluted registering scheme. You need to deal with RIPE handles, wait for human approval, request a pointtopoint tunnel (though it is a /64, it only serves tun::2/128 to your end), wait for human approval, use the “aiccu” tool (maintenance is lacking), request a real /64 route (for e.g. virtual machines), wait for human approval, request nameserver delegation, wait for human approval. Oh, did I mention waiting for approval?
Hurricane Electric. Register. Create /64 routed tunnel. Set DNS delegation. Configure local end, done. One can set the tunnel parameters in a scripted fashion, but there seems to be no aiccu-like tool for users with dynamic addresses. But for servers with static addresses, this is just excellent and quick.
While both SIXXS and HE essentially use IP6-in-IP4 (SIT, sometimes called “proto-41”) transport, my approach sports a IP6-in-ESP4 (proto-50) connection. The upside is that you can use well-established, well-maintained tools (like StrongSWAN) to connect. They will deal with a dynamic endpoint address, NAT, let you choose between passwords and certificates, and encryption to the other endpoint if so desired. If you are running a dedicated server yourself, you will have full control of DNS records, addresses, routing and so on. The following was verified to work with kernel 3.4 and strongswan-4.5.3.
# client-side ipsec.conf
conn nakamura-seven
left=%defaultroute
leftsubnet=2001:db8:61:1fa::dead:beef/128
leftid=@laptop-beef.company.de
right=192.0.2.1
rightsubnet=192.0.2.1/32,::/0
rightid=@vpn.company.de
# server-side ipsec.conf
conn seven-nakamura
left=192.0.2.1
leftsubnet=192.0.2.1/32,::/0
leftid=@vpn.company.de
right=%any
rightsubnet=2001:db8:61:1fa::dead:beef/128
rightid=@laptop-beef.company.de
For the %default section, see an earlier post. You will also need to make sure that 2001:db8:61:1fa::dead:beef/128 is present on the client-side internet-facing interface — before the connection is established, or you will get a “no local address found in traffic selector 2001:db8:61:1fa::dead:beef/128” error. Having the address set may involve some work of your own at the distribution level, especially when the distro is set to use DHCP by default, or when things like NetworkManager make it all the more difficult. The leftupdown= variable cannot be used to add/delete the IPv6 address, as the script is executed too late and would get you in exactly that aforementioned error.
Posted 2012-09-15 08:09 / Tags: Ipsec, Ipv6, Linux, Networking. / link
Building Wanpipe from source
Sangoma's wanpipe is one of the absolutely worst maintained tarballs ever released, worse than nvidia, fglrx and vmware-ws combined. ./Setup is one humongous unreadable shell script that is unusable for chrooted package builds, and naturally, Kbuild is eschewed bigtime although not completely, leaving no way to get src/lip compiled without lots of frustrating guessing on what the required command line would be. With Sangoma support showing no signs of accepting even the simple patches to fix DESTDIR support, outlook for cure is more than dim.
Originall posted at G+
Posted 2012-09-12 16:09 / Tags: Rant, Software. / link
Iron Sky points of note
- Iron Sky creators did the German parts right — which is often ignored way too much. Seriously, if you use some language X, don't employ some dull idiot with accent and broken grammar (like in the Wolfenstein series), but get someone who knows the language well enough.
- Whitening Jack Washington did not quite succeed so well. While a face like Mr. Info (from Star Wreck 4½) would be too silvery, it should not have been hard to apply a Mr. Data-like color to a face, or?
- While the fires themselves are quite acceptable, the one where the F-35 goes up in flames (at 56:18) looks too “particle-heavy”. Aircraft always goes up in a coherent ball of fire rather than a thousand small-scale fires.
- There is a hidden message to almost everything (yay)
Posted 2012-08-21 12:08 / Tags: Film, Ironsky. / link
Bemerkungen zum AGC, Freibad Weende und Brauweg
Anlässlich des diesjährigen “Arschgranaten-Contests” am 18. August 2012 stand mal wieder ein Besuch im von der Schließung bedrohten Weender Freibad an. Überraschenderweise fand auch gleichzeitig das 30. Thiefest und scheinbar Freibadfest zugleich dort statt — nur wurde das nie ausreichend kommuniziert, dass ich es je in den letzten 14 Jahren mitgekriegt hätte.
Stattgefundene Aktivitäten: 1. Kostümierungswettbewerb im Vorfeld des Sprungwettbewerbs (alles Beste dem Weihnachtsmann in Sommeroutfit), 2. Verlosung per Ballausschüttung, 3. Sprungwettbewerb, 4. Zauberstunde (unprämiert), 5. Rutschwettbewerb, ggf. anderes sich meinem Blickfeld entzog.
“...es ist [gottseidank] noch Wasser im Becken.”, nach erfolgter Landung eines massiven Springers. (Details hat der GoeSF-Eintrag vom 22.08.2012.)
“Das verstößt ja schon knapp gegen die Lärmschutzverordnung.”, bei lautstarker großflächiger (und wohl mit Schmerz verbundener) Landung eines anderen Teilnehmers.
“Vergessen Sie nicht, die Kamera vorher abzulegen, wenn Sie springen.” — Hilfreiche Mahnung des Moderators an auf dem Turm stehenden Zeitungsreporter.
Bei der Ausschüttung der für die Verlosung zugedachten Wasserbälle konnte ich einen mit Nummer (= preisträchtig) ergattern. Die gewonnenen Freikarten für zwei Freibadbesuche werde ich jedoch wohl im Freibad Brauweg einlösen. Obwohl das Weender näher für mich dran wäre (~ 2 km), bevorzuge ich den Brauweg (4 km). Über die Gründe habe ich mal ein bisschen gegrübelt... sortiert von wichtig nach unwichtig:
- Wasserfläche: Brauweg hat 4 Becken (2787 m²), das Weender nur 2 (1495 m²).
- Bauliche Gegebenheiten der Becken: Brauweg hat mit Kunststoff ausgekleidete Beckenränder, das Weender nur Steinbeton (wenngleich Steinbeton rutschfester ist, birgt es doch große Verletzungsgefahr — ich habe mit Steinbetonrändern schon meine negativen Erfahrungen gemacht, wenngleich nicht im Weender).
- Bauliches die Zweite: Im Brauweg entspricht die Wasseroberkante ziemlich genau dem angrenzendem Gehweg, die Überlaufrinne ist parallel zur Wasseroberfläche. Im Weender ist der Einlauf hingegen senkrecht, und diese extra 30 cm gilt es bei einem Ausstieg am Rand zu überwinden.
- Bauliches die Dritte: Die Weender Becken haben eine unerwünschte Wellenreflektion. Die dadurch entstehenden Interferenzmuster haben zur Folge, dass immer wieder mit kleinen schwappenden Wellen kollidiert (wie auf einem großen See (> 20 ha), der Windgang hat).
- Bessere Möglichkeiten zu Smalltalk dank der zahlreicheren Besucher im Brauweg.
- ...
Posted 2012-08-18 21:08 / Tags: Freetime, Local. / link
LXDE not ready for multi-monitor setups
I have been using Xfce since about August 2010 (before: icewm). I always kept on hearing the occassional occurrence of LXDE when topics of light window managers were raised, so I today I gave LXDE a spin, for completeness. In my home environment, I attach an external monitor to yield some extra space, but, as it seems, lxpanel-0.5.8 does not support placing the panel on a specific monitor (rather than the X screen), so LXDE just became irrelevant to me. FYI, the screen/display config is:
Screen 0: minimum 320 x 200, current 1280 x 1332, maximum 4096 x 4096
LVDS1 connected 1024x600+0+732 (normal left inverted right x axis y axis) 220mm x 129mm
1024x600 60.0*+
800x600 60.3 56.2
640x480 59.9
VGA1 connected 1280x1024+0+0 (normal left inverted right x axis y axis) 376mm x 301mm
1280x1024 60.0*+ 75.0 72.0
1152x864 75.0
1024x768 75.1 70.1 60.0
832x624 74.6
800x600 72.2 75.0 60.3
640x480 72.8 75.0 66.7 60.0
720x400 70.1
640x350 70.1
Posted 2012-08-11 19:08 / Tags: Linux, Window Managers. / link
Broken SPDY implementation in Firefox
Firefox 14 (also occurred with 13). Do a Google search with the browser's own search field, and after the results have loaded, switch to Image Search. What follows is request hangs — not always, but reproducibly, and this occurs with all Google services, especially when things like ajaxified interactive services such as Calendar and Docs are getting used. The sockets remain open, but absolutely nothing is going over them according to tcpdump. Wtf, Firefox? Disabled this SPDY crap (about:config, network.http.spdy.enabled=false) and it seems to work again, for now. Let's see for how long.
Update: Also disabled network.http.spdy.enabled.v2 and network.http.spdy.enabled.v3 that showed up in newer Firefox releases.
Posted 2012-08-04 15:08 / Tags: Firefox, Google, Rant, Spdy. / link
The Ecodisc oblate
During the openSUSE Conference 2011, every participant got a bunch of free Linux-related magazines; among them: Linux User (2011/05 de_DE issue), Linux Magazin (2011/08 de_DE issue), Linux Magazine (2011/05 en_GB issue) and one other, which was probably easylinux, because they are all owned by Linux New Media.
Since such magazines way too often recycle topics, I almost never buy or even read them, so this is also the first time I noticed yet-unseen kinds of plastic discs that shipped in the magazines. An “EcoDisc” label was prominently placed on the disc, so there went today's Google search. Half the plastic, half thickness (good for slot-loading drives? I dare not try), supposedly half the CO2 emission (CO2 is so prominent that people seem to be forgetting about methane and CFCs), half the weight.
But, one of the Ecodiscs was already broken in more than two pieces, which might have occurred when the stack of magazines was hoisted to the conference, and later also to the homes of its participants. I had one more non-broken Ecodisc to try it out on against, whilst actually observing. Very easy to bend and likely to break akin to a round waffle wafer, known here as Oblate(-n). In order of increasing fragility: EcoDisc, CD-Rs, simple pressed discs, really stiff pressed discs.
Posted 2012-07-31 08:07 / Tags: Manufacturing,, Slice Of Life. / link
Buffet-Kultur (All You Can Eat)
Früher konnte man im Restaurant generall nur “à la carte” speisen. In den letzten 10 Jahren (~2000–2010) jedoch hat sich in Deutschland eine kleine “All-You-Can-Eat”-Kultur gebildet, nur wird das nicht mit solchen amerikanischen, verfressenen Wörtern ausgedrückt. Stattdessen umschreibt man es i.d.R. euphemistisch mit “Buffet”.
Jedoch unterscheidet es sich in gewisser Weise vom “klassischen Buffet” (hier ein paar suggerierende Bilder), das einfach nur der Notwendigkeit der diversen Versorgung von vielen Gästen dient, also bspw. in Hotels. Das in u.a. deutsch-chinesischen Restaurants beworbene “Mittagsbuffet”, “Abendbuffet”, oder gar “Mongolisches Barbecue” hingegen lädt explizit zum Probieren und Schlemmen ein. Aber gut, dafür sind Restaurants gewissermaßen da, denn notwendige Versorgung kann man auch im Supermarkt, wenn vorhanden, vollziehen.
Wort des Tages: “Buffet-Kultur” (wurde aber leider schon früher geprägt, 2010-02-10 frühstes gefundenes Datum, und dort auch nicht mit dem All-You-Can-Eat-Hintergrund).
Posted 2012-07-15 21:07 / Tags: Food, Language. / link
Firefox: deactivate Tab Preview feature
Deactivate New Tab thumnails. There used to be a time when the number of non-default settings — the bold ones in about:config — was low for my user account. Now it has become a significant absolute number.
Posted 2012-07-05 20:07 / Tags: Bookmarks, Firefox, Thumbnail. / link
IPsec: IP*-in-ESP-in-IP6
The following snippet is for site-to-site encrypted connections, transporting both IPv4 and IPv6 in ESP over IPv6. Kernel 3.x and strongswan-4.5.3 are used. One important caveat remains: The IPv6 addresses in the leftsubnet= and rightsubnet= lines must come after the IPv4 ones. This is a known “bug” in the StrongSWAN config parser.
config setup
plutostart=no
conn %default
ikelifetime=600m
keylife=200m
rekeymargin=3m
keyexchange=ikev2
mobike=no
keyingtries=%forever
dpdaction=restart
dpddelay=60
auto=start
conn a-b
left=2001:db8:61:1fa::1
leftsubnet=192.0.2.1/32,10.10.7.0/24,2001:db8:61:1fa::/64
leftid=@a.company.de
right=2001:db8:50:1fb::1
rightsubnet=192.0.2.254/32,10.10.4.0/24,2001:db8:50:1fb::/64
rightid=@b.company.de
192.0.2.1 shall substitue in for the public IPv4 address of host A, 2001:db8:61:1fa::1 for the public IPv6 address of host A, 10.10.7.0 for a network connected A which also has 2001:db8:61:1fa::/64. In `ip addr` parlance:
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
(internet-facing)
inet 192.2.0.1/25 scope global eth0
inet6 2001:db8:61:1fa::1/128 scope global
valid_lft forever preferred_lft forever
3: tapvbox0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 500
inet 10.10.7.1/24 scope global tapvbox0
inet6 2001:db8:61:1fa::1/64 scope global
valid_lft forever preferred_lft forever
Posted 2012-06-29 15:06 / Tags: Ipsec, Ipv6, Linux, Networking. / link
Misslykket midtsommer i Sk. Seminar
Denne året var det det verste midtsommerfesten vi har hatt. Ikke på grunn av regnet, men pga logistikk. I fjor gjorde ZESS'en sin egen 20.juni-møte på nærliggende terrassen (og julfesten på en stor nok rom), men dette året bestemte man seg for å bli med på Skandinaviske Seminarets treff istedet.
Det har vært relativt klart at det skal blir sky og litt regn i dag, men arrangørene stod der som det var ei nyhet, og hadde ikke tenkt på noen alternativer. Seminarets bygning er ihvertfall ikke egnet for å holde sånn slags party. Det så skjedde at det var masse folk til stede. Det var alltid noen som stod i korridoren, ventet lenge på å ha sin tur med å motta mat. Bygningen deres har noe biblioteksrom (6–7?), hver med plass for kun 15 personer og to bord.
En lille “naturlov” som kan observeres: Personer som kjenner hverandre klynger seg i ei gruppe. I dette tilfellet betydde det at når ei sånn gruppe slo seg ned i et rom, ble de resterende setene tatt av kjente personer inntil at det ikke var mer plass og altså ingen mulighet for ukjente til å delta. Fremdeles var det ikke så mye diskusjon heller, fordi flere var mer opptatt av maten enn å snakke.
Tenker på å avslå i fremtiden å delta i fester som tilbyr mer enn drikkevarer og lette (enkle) biter.
Posted 2012-06-20 20:06 / Tags: Freetime. / link
Hardware. Because manufacturers of hard disk technology (either drive or enclosures, converters and whatnot) just can't get it right, here is now the parkverbot daemon (freecode) to keep your disks spinning nevertheless. Posted 2012-06-16 18:06 / link
Om bærsnaps
Dagens Nyheter hadde en artikkel “bärsnaps till jul” i fjor, og inntil nå har jeg laget noe ifølge instruksjoner der fire ganger, med to ulike frukter.
Siden bærsesongen var over da artikkelen ble publisert, foreslo DNs Jens Linder å ta frosset bær. Likevel kan du bruke ufrosset bær, enten “tørre” bær i plastskål, eller bær i saft i glass. De i glasset har en holdbarhetsdato 20 måneder inn i fremtiden, så minst i Tyskland finnes de hele året rundt i supermarked. Husk også at bærene i glass er ofte søtet, og derfor krever snapsen ikke noe ekstra sukker. Selv om du har tørre bær, anbefaler jeg ingen sukker i det hele tatt, fordi bærene har tilstrekkelig naturlig sødme og/eller syre. (Men som vanligt finnes det noen personer som hater sure ting og vil forsukre alt.)
Flere personer forsøker å gjenbruke spritflasken selv, og en gang gjorde jeg det på samme måte også, men det gjør mye arbeid å stappe bærene inn i flasken, og like mye arbeid å få dem ut igjen — jo mer jo større de er, jo mer jo mindre flaskehalsen er bred. Noe med større åpning bør finnes. Jeg nå pleier å bruke en kaffekolben. Selv om den kan ikke låses hermetisk, synes jeg at lukket/smak har ikke blitt verre.
Trenger du sprit for den neste festen — og rask? Bringebær er greit. Etter kun en uke har man allerede noe nyttig. Det behøves ikke mer å si.
Det finnes en stor forskjell til bjørnebær. Osmoseprosessen eller hva som hender mellom vodkaen og disse bær er veldig treg, som kanskje har noe med bjørnbærenes overflatebeskaffenhet å gjøre, eller fordi de var av det tørre slag. Ihvertfall tok det tre uker til å få samme fargnivå i spriten som med bringebær, og det forbli bare ~550 ml av spriten, så 150 ml gikk inn i bærene. Å presse ut bjørnebær også krever innsats i køkken... nesten altfor mye: eneste måten å få saften ut fra dem var å knuse dem fullstendigt.
Posted 2012-06-14 12:06 / Tags: Food. / link
Linux, Memorable Quotes. 07:17 +0200 <lcc:##kernel@freenode> linux seems to never panic. I took a look at minix, and I don't know if I agree with its design decisions. like automatically restarting failing drivers. that sounds like a band aid. Posted 2012-06-14 06:06 / link
Music. Back in the summer of 2008, DI.fm Chillout's playlist featured Amethystium's track “Ascension”. Today, I came across Approaching Nirvana's track “Caught in Black and White” by way of (more) random youtube browsing across (more) timelapse videos of Minecraft monuments. Posted 2012-06-12 00:06 / link
Cube, Games, Minecraft, Sauerbraten, Thoughts. People build ridiculous large things, with square blocks. What, if people could actually not only place cube blocks, but be able to dent all their 8 corners, to get real slopes? That is the core idea of the Sauerbraten engine. Posted 2012-06-11 23:06 / link
Filesystems. The larger disks get, the longer you spend in reconstruction. I will formulate today's thesis: Eventually, as disks get larger, they fail before the RAID reconstruction is complete. That would set a practical limit for the maximum size of a single disk. Furthermore, As the data set grows larger, some part of it will fail before the filesystem check is done. So in essence, we will be hitting logistic barriers before physical ones. Neat. Posted 2012-06-07 22:06 / link
BBC commentator taunting ESC
As usual, the BBC radio commentator Ken Bruce has a good taunt ready for almost every other ESC participant.
A/B/C: local moderators, BBC: BBC commentator.
B: 26 finalists means that this is the biggest
Eurovision grand final since the introduction of the semi-final shows.
The number of participants in today's grand final equals the record
from 2003 in Riga.
BBC: That means it going to be even longer than usual!
This year's show clocked in at about 3 hours 30 minutes.
A: Tonight, we share this arena with 20000
people in the hall. I want to hear 20000 people...
BBC: You don't need to hold your microphone up for them, I
think we will hear them anyway.
A: And 120 million viewers all over Europe... I want to hear
you again.
BBC: That will be more difficult.
Hungary is about to perform.
BBC: We have Hungary coming next, uh, a group called “Compact Disco”
led by a man called Behnam Lotfi. He has been dressed apparently by
World Of Leather, it is [...] a ¾-length coat, looks a bit like an
off-cut from a DFS sofa.
Albania is about to perform.
BBC: [...] I will warn you, she starts cat-wailing halfway through it,
really annoying sound. [...] You won't be singing this one on your way
home from the pub — unless a bus parks on your foot.
Russia has finished their performance.
BBC: Now listen to the response to that. I had never have ever seen
like it in Eurovision — I probably will never again.
Cyprus is about to perform.
BBC: The wind machine is back in use for this. Well, they paid for it
for the weekend from HSS, so, might as well use it, I suppose.
France is about to perform.
BBC: And the wind machine is back — thank goodness, money is worth it
at last.
Norway is about to perform.
BBC: They have had a checkered time at Eurovision: some great wins,
some great losses. I think this is going to be one of the latter. So
not be so I am be getting with some slightly flatulent electronic
noises. [...] His name is Tooji [pronounces it like "2G"] —
although I think he is probably going to be superseded by 3G.
Malta is about to perform.
BBC: Now, I have been doing Eurovision for many, many years
now. I keep coming back on the promise that we might go to Malta
[Malta doing the hosting] one year, and this is the Maltese entry. I
sort of feel that we may not be going this year. [...] There is an
active band there on the stage with some slightly silly footwork, but
that does that matter at Eurovision? No, not at all.
Ukraine has finished their performance.
BBC: That tuneless trumpet sound that they had throughout that song,
was quite intentional, it is a traditional instrument. At least that
was always my excuse when I was learning to play as well.
Greece has submitted its points.
BBC: Still three countries to get any score at all: Iceland, Norway and
Denmark. But they can probably vote for each other when the time
comes.
And it occurred so later.
Switzerland is giving its points.
BBC: Well, Switzerland don't have neighbours they vote for; or friends
particularly.
Denmark is giving its points.
C: Finally, the top 12 points go to our very nice neighbors in
Sweden.
BBC: Our problem is that we don't really have any neighbors [to
get points from]
Posted 2012-05-27 00:05 / Tags: / link
Git, Postit Note, Software Development. Send with `git send-email ... --format-patch -M -M` to reduce the set to a reviewable size. Posted 2012-05-25 07:05 / link
ASUS E35M-M broken hardware
The E35M-M is crap: the southbridge has been observed to flake out within about 48 h of boot and generates spurious interrupts on various lines — predominantly those with hard disks on it. This leads to the kernel disabling the interrupt and causes massive slowness. (The E35M-I is fine, but it does not have as many PCI* slots.)
May 14 03:59:15
irq 16: nobody cared (try booting with the "irqpoll" option)
Pid: 0, comm: swapper/1 Not tainted 3.2.7-jng4-default #1
Call Trace:
[<ffffffff810039ce>] dump_trace+0x89/0x1ee
[<ffffffff813b4153>] dump_stack+0x69/0x6f
[<ffffffff81094a02>] __report_bad_irq+0x2c/0xb5
[<ffffffff81094c09>] note_interrupt+0xf4/0x16f
[<ffffffff81093013>] handle_irq_event_percpu+0x14a/0x192
[<ffffffff8109308f>] handle_irq_event+0x34/0x55
[<ffffffff8109533c>] handle_fasteoi_irq+0x7c/0x9e
[<ffffffff810037fd>] handle_irq+0x1d/0x21
[<ffffffff8100352d>] do_IRQ+0x42/0x98
[<ffffffff813c9b6e>] common_interrupt+0x6e/0x6e
[<ffffffffa00f997c>] arch_local_irq_enable+0x4/0x8 [processor]
[<ffffffffa00fa7dc>] acpi_idle_enter_simple+0xc6/0x102 [processor]
[<ffffffff812df4b8>] cpuidle_idle_call+0xd6/0x171
[<ffffffff81001205>] cpu_idle+0x56/0x9a
handlers:
[<ffffffffa0142e3c>] mv_interrupt
[<ffffffffa01f7148>] azx_interrupt
[<ffffffffa024bb45>] irq_handler
Disabling IRQ #16
May 15 03:50:47
irq 18: nobody cared (try booting with the "irqpoll" option)
Pid: 0, comm: swapper/1 Not tainted 3.2.7-jng4-default #1
Call Trace:
[<ffffffff810039ce>] dump_trace+0x89/0x1ee
[<ffffffff813b4153>] dump_stack+0x69/0x6f
[<ffffffff81094a02>] __report_bad_irq+0x2c/0xb5
[<ffffffff81094c09>] note_interrupt+0xf4/0x16f
[<ffffffff81093013>] handle_irq_event_percpu+0x14a/0x192
[<ffffffff8109308f>] handle_irq_event+0x34/0x55
[<ffffffff8109533c>] handle_fasteoi_irq+0x7c/0x9e
[<ffffffff810037fd>] handle_irq+0x1d/0x21
[<ffffffff8100352d>] do_IRQ+0x42/0x98
[<ffffffff813c9b6e>] common_interrupt+0x6e/0x6e
[<ffffffffa00ff97c>] arch_local_irq_enable+0x4/0x8 [processor]
[<ffffffffa01007dc>] acpi_idle_enter_simple+0xc6/0x102 [processor]
[<ffffffff812df4b8>] cpuidle_idle_call+0xd6/0x171
[<ffffffff81001205>] cpu_idle+0x56/0x9a
handlers:
[<ffffffffa0013145>] usb_hcd_irq
[<ffffffffa0013145>] usb_hcd_irq
[<ffffffffa0013145>] usb_hcd_irq
[<ffffffffa0013145>] usb_hcd_irq
[<ffffffffa017891c>] sil_interrupt
Disabling IRQ #18
May 15 10:02:29
irq 19: nobody cared (try booting with the "irqpoll" option)
Pid: 0, comm: swapper/1 Not tainted 3.2.7-jng4-default #1
Call Trace:
[<ffffffff810039ce>] dump_trace+0x89/0x1ee
[<ffffffff813b4153>] dump_stack+0x69/0x6f
[<ffffffff81094a02>] __report_bad_irq+0x2c/0xb5
[<ffffffff81094c09>] note_interrupt+0xf4/0x16f
[<ffffffff81093013>] handle_irq_event_percpu+0x14a/0x192
[<ffffffff8109308f>] handle_irq_event+0x34/0x55
[<ffffffff8109533c>] handle_fasteoi_irq+0x7c/0x9e
[<ffffffff810037fd>] handle_irq+0x1d/0x21
[<ffffffff8100352d>] do_IRQ+0x42/0x98
[<ffffffff813c9b6e>] common_interrupt+0x6e/0x6e
[<ffffffffa00e697c>] arch_local_irq_enable+0x4/0x8 [processor]
[<ffffffffa00e77dc>] acpi_idle_enter_simple+0xc6/0x102 [processor]
[<ffffffff812df4b8>] cpuidle_idle_call+0xd6/0x171
[<ffffffff81001205>] cpu_idle+0x56/0x9a
handlers:
[<ffffffff812c0d2c>] ahci_interrupt
[<ffffffffa01ba91c>] sil_interrupt
Disabling IRQ #19
Posted 2012-05-25 07:05 / Tags: Hardware, Linux, Postit Notes. / link
The dreaded IDE mode for SATA disks
Replaced one mainboard instance (an ASUS E35M-M) with another of the same kind, but found the OS not to fully boot to the login prompt due to apparent change of required disk controller driver. What happened? Turns out it was this utterly stupid “SATA mode: IDE” setting in the BIOS. Wtf can't it default to “AHCI”? The change means that different drivers are required to access the disk — ahci vs ati_amdaxp). Set it to AHCI and boot completed again.
Posted 2012-05-23 19:05 / Tags: Hardware, Linux, Postit Notes. / link
Bookmarks.
Wie das deutsche Universitätswesen sich abwirtschaftet. Ein paar gesammelte Links auf Artikel. Spiegel: Wie Deutschland junge Forscher vergrault, Spiegel: Einsame Studenten erzählen.
Zum Berufsleben. Work-Life-Balance immer wichtiger. Spiegel: Beförderungen im Beruf machen nicht glücklich, Spiegel: Aufstiegsverweigerer, Spiegel: “Geld oder Titel ziehen kaum”.
Doktortitel kann die Jobsuche erschweren.
Da haben wir es jetzt also auch schriftlich. Aber eigentlich war es ja vorher schon bekannt (Janteloven).Schon immer gewusst: Doktortitel eher Indikator für Masse als Klasse.
Für Gelehrte wird die Uni zur feindlichen Umgebung.
Posted 2012-05-21 14:05 / linkScience Fiction, Star Trek, Stargate. Q: “What happens when you enter a Stargate/wormhole from the back or side?” My take: The Stargate wormhole is just a 2-D specialization of your typical multi-D wormhole. So, nothing extraordinary — you have to assume that you may end up in a different location than when entering from the front, though.
Posted 2012-05-07 00:05 / linkThoughts. 2002: Stell dir vor, es ist Wahl (Bundestagswahl), und es geht keiner hin.
2013: Stell dir vor, es ist Wahl, und alle wählen Piraten.
Posted 2012-05-03 13:05 / link
Asana: sub-standard service
The Asana task management's web interface is visually convoluted, has kinda two or three layered windows, and is way too DOM-heavy. It's a PITA to load and use, because some 1st year programming student thought it was a good idea to hook an event to every goddamn keystroke, not to mention the automatic scrolling of the window once the <textarea> resizes. Seriously, wtf? And if you try to access it with an exotic browser, all you get is a "not supported" error and no way to continue entering the ticket system at your own risk.
It continues similarly bad when looking at the e-mail notifications. Useless top posting wheever you see. The mails one gets have a thread-like indenting even though tickets are flat by definition, given there is no threading view and/or threaded reply ("reply to this post") in the webinterface.
Asana also has some e-mail reception interface, which seems like a boon given the JS-overloaded webpage. Except, it does not work: mails sent are simply eaten (accepted) by the Asana mail system without posting the reponse to the ticket, or yielding an error message.
When pointed out to Asana support, their staff puts forward a sort of reality denial in their responses. Hey look, I just told you what mail (that I sent) was eaten by your system. I posted mail headers and relevant parts of /var/log/mail from my end, so you know the IDs and can look it up on your side. Why are you still asking about my MUA?
Posted 2012-05-01 18:05 / Tags: Rant, Software. / link
Php, Software. PHP: A fractal of bad design. Posted 2012-04-21 12:04 / link
Thoughts. The University City Theft/Share Paradox: Despite the consensus that theft potential rises with value (any kind of object), one could get the impression that the cheap ramshackle ones are the first to disappear, exactly because they don't have any remaining value. (Background: Rather than sale, the offender's plan is immediate use, and often subsequent discard.) Posted 2012-04-17 12:04 / link
Fun, Google. Google HIDs: Morse Input Pad. Posted 2012-04-11 14:04 / link
Gimp, Software. Inkscape is intuitive to use without reading a user manual. GIMP is not. Why is that? Because GIMP overthrew many common shortcuts. Count the applications where Ctrl+D is deselect — GIMP is not among them. Posted 2012-04-11 20:04 / link
Empirical Experiments, Film. There is a relation between series length and amount of plot-relevant dialogue per time unit, averaged over the entire series. The latter falls of exponentially with increasing number of episodes in a show. Or in simple terms: long-running shows are needlessy stretched. Conversely, it has shown itself that simple shows are potentially never-ending. As Wikipedia article authors propound, the “open-ended nature of the narrative, with stories spanning several episodes” is a key ingedrient to a soap opera.—Considering that, Bleach (360+), Pokémon (730+), etc., and even the WWE eps, follow such a soapy pattern, since the core pattern has been, and continues to be the same all along. Posted 2012-04-07 02:04 / link
Food. In two-layered fruit yoghurts (one layer fruit and one layer yg, that you have to mix yourself to get the desired result), just what is it that makes some manufacturers put the fruit layer on top, while others reverse it? Posted 2012-04-04 15:04 / link
Film. Seems like You Are Under Arrest/逮捕しちゃうぞ episode 1x38 could be the spark that led to the core plot of Ben-To/ベン・トー. Posted 2012-04-03 08:04 / link
Software. Finally — in 2012 — the memory usage patterns for KDE 4 and Firefox have come down to a level that is more pleasing. The static cost is still high, like when running only kdm (instead of the full DE) or Firefox with only a single tab rather than 10. Posted 2012-03-31 13:03 / link
Google, Rant, The Web. I am going to !@# hate Google+. The only way to get the full-screen version of a posted image is to enlarge your browser window. Which, given a big enough image that is larger than your desktop, is a real hassle. Posted 2012-03-31 13:03 / link
Doom, Games. Just found that there are even faster Doom/Doom2 speedruns than e6y's. Enter Akse's e3dq-310 and RamboBones's 30uv1402. Now, using cooperative mode, a lot of cross-map switch hunts (such as on E3M7) should make for even quicker runtimes. Posted 2012-03-30 21:03 / link
Software Development. Every bug reporter / person seeking support should read it: “What Have You Tried?” Posted 2012-03-29 15:03 / link
Games, Music. Just found: OpenJazz, reimplementation for Jazz Jackrabbit 1. Meanwhile, as for JJ2, a phat remix of the Labrat track by Allen KV. Posted 2012-03-24 02:03 / link
Fedora, Linux, Rant. Everytime I try out Fedora, it annoys anew. This time: F17-Alpha installer vs openSUSE Factory. (1) F17 has much higher hardware requirements during Fedora installation — 1152 MB vs 256 MB. (2) Fedora's mkinitrd is still dumb. If you change the HBA on which your root filesystem lives, you need to edit some file manually, whereas SUSE mkinitrd autodetects that. Posted 2012-03-11 00:03 / link
Linux. Until we have a fully-functional non-Schily CD recording suite that supports all contemporary formats of the day, the importance of writing to optical media by outside of the entertainment industry will have declined so much that it is not worth any longer pursuing creating a replacement suite in the first place. Posted 2012-03-01 11:03 / link
Kernel, Linux. btrfs not on par ATM. ext4 still before xfs in terms of metadata-heavy jobs. Stats. Post-mortem note: I forgot to use the nodatacow option. Posted 2012-02-13 10:02 / link
Another exotic system
[Updated May 7 2012] (by hxtools sysinfo) [silver] Linux 3.1.0-4-ppc64
ppc64 | 2-thr PPC970FX 2300MHz | Load: 0.00 Tasks: 65 | Mem: 188/1975MB | Disk:
4/146GB | Gfx: Advanced Micro Devices [AMD] nee ATI Rage 128 RE/SG. Apple XServe G5 PPC boot log, lspci and
/proc/cpuinfo.
Turns out this PPC architecture is not alignment sensitive. Too bad. More love for SPARC ensues.
Helpful links. Apple XServe G5 PPC: Enter PROM using front-panel key, Eject CD from PROM — since there is no manual eject button on oh so many server slot-loading CD drives.
Disable autoboot (= always enter OpenFirmware): setenv
auto-boot? false at the OF ok> prompt.
Posted 2011-10-10 12:10 / Tags: Apple, Hardware, Linux, Powerpc. / link
Film. Spotted the ((re)al)pine mail client, with its typical top bar, menu structure (7 items, 1 highlighted by cursor), and 2-rows bottom key bar, in use in The Big Bang Theory episode 4x09. Chances are this is classic PINE 4.x, since the top line for (re)alpine is necessarily filled with more chars. Posted 2011-09-24 15:09 / link
Error condition propagation in the Linux kernel source
At the request of Philip Fry on a comment posted by me on David Zeuthen's blog post “Writing a C library, part 3”, I am posting a short overview of error conveyance in the Linux kernel (source).
David Zeuthen wrote in his blog post about the integer variable errno: “For simple libraries just using libc's errno is often [the] simplest approach to handling run-time errors (since it's thread-safe and every C programmer knows it)”.
A global variable — is it simple? Yes, I could agree on that. Thread-safe? Yes, contemporary implementations of C-derived environments that support threads, in other words, POSIX, have redefined errno such that it has a per-thread-specific location. It may look something like:
extern int *errno_location(void);
#define errno (*errno_location())
Whereby errno_location is a function with deeper magic that just eventually returns a pointer to a thread-unique location. The indirection via the pointer is necessary because errno is supposed to be an lvalue that can be assigned to. Due to the new macro, I am reluctant to still call it a “variable” in this context, since it is not a named variable anymore, but a dereference of a function's return value.
Anyhow, it does retain errno's properties: it is, in essence, still a “global variable”, or to be more exact, an object with static storage duration with added global scope/visibility. The pro and contra for such objects I need not repeat here.
So my replying comment to David's posting was: “It may be safe from other threads due to TLS [thread-local storage], but it is still a object with global scope, which results in having to longwindingly save and restore errno across calls to other opaque library functions. The Linux kernel in contrast shows how to do without such a global.”. An example to the necessary save-and-restore cycle is this piece of common housekeeping done just before forking:
bool all_or_nothing(int *p)
{
unsigned int i;
for (i = 0; i < PIPE_PAIRS * 2; ++i)
p[i] = -1;
if (build_pipes(p) != 0) {
saved_errno = errno;
kill_pipes(p); /* calls close() */
errno = saved_errno;
return false;
}
return true;
}
The handling in the error path is somewhat cumbersome, because close can set errno. This prompted me to present the case of how the Linux kernel internally conveys error conditions. One code example:
int all_or_nothing(int *p)
{
unsigned int i;
int ret;
for (i = 0; i < PIPE_PAIRS * 2; ++i)
p[i] = -1;
ret = build_pipes(p);
if (ret < 0)
kill_pipes(p);
return ret;
}
Error conveyance in the Linux kernel generally follows this abstract ruleset:
- Error conditions are conveyed through a function's return value rather than a global.
- If the range of (all possible) error values does not collide with the function's normal computational “output”, the return value domain may be overloaded.
Posted 2011-07-06 07:07 / Tags: Kernel, Linux. / link
Software Development. Wrong colors (in syntax highlighting) are as good as no colors. Posted 2011-03-17 07:03 / link
Empirical Experiments. Have someone who is pessimistic about the topic of your questionnaire look over it to suggest missing possible answers. Especially, there might be missing “Never” options. Posted 2011-03-05 00:03 / link
Fun, Microsoft.
So Microsoft started their IE6 countdown. Except that the
graphic is so nicely generic that, you guessed it, there is no way of
telling what is behind the link:
![]()
Posted 2011-03-05 11:03 / link
Games, Minecraft. Minecraft [in Singleplayer] quickly loses its appeal (after say, 20 hours) because there is no set game goal. Posted 2011-03-05 00:03 / link
Memorable Quotes, Science. Gardening meets CS. “Proof that a binary search tree with n>=2 leaves can be arranged to have height ceil(log n): Logs are made from trees. Since a log can obviously never be higher than the tree it comes from, the maximum height of any particular log, ceil(log n), will always be less than the height of the tree. QED.” Posted 2011-03-01 15:03 / link
Film, Memorable Quotes. JAG episode 2x01: Harm: “Don't judge an apartment by its elevator.” Mac: “Looks more like a storage facility to me.” Posted 2011-03-01 15:03 / link
Film, Memorable Quotes. A-Team episode 3x17: Murdock: “You can fool some of the poeple all the time, and all the people some of the time.” Posted 2011-03-01 15:03 / link
Encoding problems identified and corrected easily
So one customer's webpage showed odd characters in otherwise normal text, like “we’re”. No doubt this looked very much like an encoding error between ISO-8859 and UTF-8; three characters and all being outside the ASCII plane is a hint to this.
(The byte sequence was C3 A2 E2 82 AC E2 84 A2.)
You can see how these characters spring into existence. Let's take a German A-with-diaeresis, aka A-umlaut). A simple way to make the UTF byte sequence visible is using xterm in UTF-8 mode (I'll skip explanation of the detail of input and output processing here):
$ echo -en 'Ä' | hexdump -C
c3 84
The conversion errors stem from some piece of software assuming ISO-8859 encoding (this is the bug) and converts them to another encoding as it passes the data on to another (no bug here). The iconv(1) program can be used to show how this happens:
$ echo -en 'Ä' | iconv -f iso-8859-1 -t utf-8 | hexdump -C
c3 83 c2 84
So what we end up with here is actually some “utf-8-utf-8”. This explains how the faulty characters came onto the webpage. The naïve approach to our problem would now be to reverse this conversion, that is, convert from “utf-8-utf-8” to “utf-8” by using:
$ echo -en "\xc3\xa2\xe2\x82\xac\xe2\x84\xa2" | iconv -f utf-8 -t iso8859-1
conv: illegal input sequence at position 2
However, iconv tells us that our gunk data was not that easily convertible. So there must have been data corruption or non-UTF translation at some point that we have to deal with (now).
The heuristic is to take editor and locate offending patterns, create a mapping (by hand) to their desired counterparts and do the substitution across the file. Usually, searching for bytes with the high bit set (0x80) will turn something up. Or searching for part of the offending character group, such as “€” in our case.
| ’ | (U+00E2 U+20AC U+2122) | ’ | (U+2019) |
| — | (U+00E2 U+20AC U+201D) | — | (U+2014) |
| “ | (U+00E2 U+20AC U+0153) | “ | (U+201C) |
| â€<9D> | (U+00E2 U+20AC U+009D) | ” | (U+201D) |
This was the substitution map that was required for our case. (The left-hand side characters may be different in your case, so don't take this mapping as authoritative!) As there was also a 0x9D byte present (represented here as <9D>), it is advised to use an editor (recommendation inside) that can cope with Unicode characters that have no associated glyph.
Posted 2010-03-07 23:03 / Tags: Encoding, Sql. / link
A new system
[Updated May 7 2012]. (by hxtools sysinfo) [ares] Linux 3.1.1 sparc64 | 24-thr
UltraSparc T1 (Niagara) 1000MHz | Load: 0.05 Tasks: 302 | Mem: 1824/7985MB |
Disk: 11201/12835GB — has a nice ring to it, in the midst of an
x86-filled world.
The CPU draws 72 W in idle (according to SC), eight RAM banks another 16.5 (SC), and another 5.5 for the rest of the system (disk), for a total of 94 W measured at the wall socket. Under load, the CPU goes up by ~20 W and the RAM banks 1–2 W.
It is always interesting to see what's in the Fujitsu SPARC Enterprise T1000 (6-core/24-thread configuration). The black Fujitsu front bevel also looks a lot more awesome than the silvery Sun/Oracle plating.
- /proc/cpuinfo
- lspci output
- ALOM boot log
- POST log
- Kernel boot log
- OpenSUSE boot log
- ALOM upgrade log
Posted 2009-11-21 11:11 / Tags: Hardware, Linux, Sparc. / link
Simple bandwith monitoring with iptables/xt_quota2
Add some iptables rules without a target:
iptables -t mangle -I PREROUTING -i ppp0 -m quota2
--grow --name incoming
iptables -t mangle -I POSTROUTING -o ppp0 -m quota2 --grow --name
outgoing
The quota2 match counts traffic as packets pass this rule,
and makes the value available through procfs. This makes it superior to
everything that tries to grep and interpret the output of `iptables
-L`.
This can easily be wired up with rrdtool to produce some graphs. The following snippet contains the script that should be run every 60 seconds from cron.
#!/bin/bash
q="/proc/net/xt_quota";
file="$HOME/internet.rrd";
if [[ ! -f "$file" ]]; then
rrdtool create "$file" --step 60 \
DS:incoming:COUNTER:120:0:U \
DS:outgoing:CONUTER:120:0:U \
RRA:AVERAGE:0.5:2:$[60*24*180] \
RRA:MAX:0.5:2:$[60*24*180] \
RRA:LAST:0.5:2:$[60*24*180]
fi;
now=$(date +%s);
in=$(cat "$q/incoming");
out=$(cat "$q/outgoing");
rrdtool update "$file" "$now:$in:$out";
The final graph picture can then be produced:
file="$HOME/internet.rrd";
type="AVERAGE";
rrdtool graph "$HOME/internet.png" --start -86400 \
-a PNG -t "Interface ppp0" -v "Bytes/s" \
-w 800 -h 400 -M \
"DEF:x_incoming=$file:incoming:$type" \
"DEF:x_outgoing=$file:outgoing:$type" \
"CDEF:y_outgoing=x_outgoing,-1,*" \
"AREA:x_incoming#008800:Received" \
"AREA:y_outgoing#880000:Transmitted"
Posted 2009-02-24 01:02 / Tags: Iptables, Linux, Monitoring. / link
Unreal Tournament Key Bindings
There seems to be a bug in UT99 v451 in that the voice menu, as triggered with the “V” key by default, just retracts even while you hold the key. To counter this you can define key bindings.
To bind a key: (Yes, it's different from the quake-style
bind command.)
set input key action
For example, set input F12 togglefullscreen is
very useful, because the default binding for F12 is only to end fullscreen
rather than also returning to fullscreen (kinda dull), so rebinding it to
toggle is a nice bonus.
As for voice commands, there is an odd syntax I had to figure
out. The actual console command for voice messages would be
speech category message target.
target designates the player who should receive the message, or
-1 for everybody (it seems). Players start with integer 0,
as evidenced by “Blue Leader, defend the base” when issuing
speech 2 0 0. In UT99, category must be an
integer, mnemonics do not seem to work.
- Category 0: Acknowledgements
- Message 0: “Got it”
- Message 1: “Roger”
- Message 2: “On my way”
- Category 1: Friendly Fire
- Message 0: “Same team”
- Message 1: “I am on your team you idiot”
- Category 2: Orders
- Message 0: “Defend the base”
- Message 1: “Hold this position”
- Message 2: “Take their flag” / “Assault the base”
- Message 3: “Cover me”
- Message 4: “Engage according to operational parameters” (Freelance)
Posted 2009-08-08 18:08 / Tags: Games, Unreal Tournament. / link
Linux Intern 03/2009 Interview, ungekürzte Version
In der Zeitschrift liegt nur eine gekürzte Version vor. Als Ergänzung dazu hier der volle Text wie er ursprünglich von mir entsendet wurde.
Originaldatum: 01. März 2009, Gekürzte Segmente sind leicht hervorgehoben.
Wie schätzt Du allgemein die Fähigkeiten von Suse als RT-Betriebsystem für Audio ein?
Generell gibt es keine unnötigen Barrieren, um ein Realtime-System zum Laufen zu bekommen. Ein Teil davon ist der Kernel, der andere sind die Programme. Hier kommt z.B. der Niedriglatenz-Audioserver JACK zum Einsatz. Die Integration von PulseAudio haben Distributionen vergeigt — auch wenn die Situation seit der Diskussion um “Linux Audio: It's a mess” besser geworden sein mag — Benutzer haben zuweilen immer noch Probleme selbst damit.
Ist es besonders schwierig, Deinen Kernel zu integrieren?
Der Endbenutzer braucht lediglich das
RPM-Kernelpaket zu installieren, evtl. noch Treiber wie NVIDIA, und kann nach
Starten des Kernels schon loslegen. Die Installation kann man mittels
`rpm -ihv` (für Vorsichtige), zypper oder yast durchführen, und
Webpin
biete[t] auch automatisch generierte One-Click-Metadaten an.
Du bietest Dein Repo auch für 64bit an: können Anwendungen wie Jack damit besser laufen, als mit dem 32bit-kern? Beobachtest Du selbst Performance-Vorteile?
Ich muss gestehen, ich verwende JACK selber nicht; da ich nicht professionell im Audio-Bereich arbeite, genügt mir ALSA. Mein täglich verwendeter Desktop ist auch noch eines Baujahrs, wo es die ersten 64bit-Opteron-CPUs nur als “AMD Engineering Sample” (so gesehen in /proc/cpuinfo) gab — 2003. Den 64-bit-Kernel setze ich selber daher bisher leider nur auf Servern ein, alles andere erfahre ich durch Userberichte.
Allerdings bietet ein 64-bit-Kernel die Möglichkeit, ein 64-bit-Userspace zu betreiben, was einige Vorteile bietet. Vorab sei gesagt, dass einige Multimediakomponenten, darunter ffmpeg, handoptimiert sind, und auch im 32-bit-Modus alle CPU-Features ausreizen, dies muss aber nicht bei allen Programmen so sein. Ohne besondere Anweisung nämlich produziert der Compiler im 32-bit-Modus nur Instruktionen, bei denen garantiert ist, dass sie vorhanden sind. Komponenten ohne Handoptimizerung, hier am Beispiel “libvorbis”, verzeichnet einen 17%igen Geschwindigkeitsgewinn durch Kompilierung mit SSE auf 32-bit. Da SSE fester Bestandteil von x86_64 ist, sind 64-bit-Distributionen im Vergleich zu ihrer 32-bit-Variante üblicherweise schneller. OpenSUSE bot darüber hinaus von Anfang an ein reichhaltiges Angebot an 32-bit-Bibliotheken für die x86_64-Releases an — leider traf das nicht auf alle Distributionen zu, und führte wohl mitunter zu dem Mythos, dass es “Probleme” mit 32-bit-Programmen unter 64-bit gäbe. [Schlechte Programmierung ist natürlich immer ein Problem.]
Wie siehst Du Deinen Kernel im Vergleich mit anderen RT-Varianten, etwa dem 64Studio-Kernel für Debian oder dem CCRMA-Kernel für Fedora? Gibt es große Unterschiede?
Der offensichtlichste Unterschied ist zunächst mal die Versionsnummer. Bis zum Erscheinen von 2.6.29-rt Ende Februar 2009 bot ich nur 2.6.25(-rt) an, während andere schon auf 2.6.26-rt gewechselt waren. Darüberhinaus versuche ich, meinen Kernel auf den von openSUSE aufzubauen — das muss aber nicht immer so sein, z.B. wenn Novell noch keinen neueren bereitstellt —, um von deren Patches Gebrauch zu machen. Bei anderen Distributionen finden sich hingegen viel öfter Vanilla-Kernel.
In den letzten Monaten hatten Entwickler von Audio/MIDI-Software massive Probleme mit der Kernelentwicklung. Paul Davis bezeichnete Version 2.6.27 als unbrauchbar für Audio, wie schätzt Du die Entwicklung ein — werden solche Probleme irgendwann ganz verschwinden?
2008 und Anfang 2009 gab es RT-Updates lange Zeit nur für Kernel 2.6.26. Nachfolgend hatten einige Interessenten, darunter das Kernelteam von Novell, versucht, die Patches auf 2.6.27 zu portieren, hatten damit aber nicht sonderlich viel Glück — mein erster und einziger Versuch eines Test-RPM-Paketes endete mit einem Panic beim Booten. Ich schließe daraus, dass es nur wenige Entwickler gibt, die sich mit RT-Code genügend auskennen, um die RT-Patches auf neuere Versionen aufzusetzen. Begabtere Endanwender versuchen derweil, mittels “Full Preemption”, also eine Stufe unter “Real-Time”, auszukommen, und mögen dabei wohl über audiophile Grenzen, wie z.B. Latenz treten, die für ihre Tätigkeit nicht mehr hinnehmbar ist.
Ende Februar ist dann RT für 2.6.29-rc erschienen, und nach den Worten Gleixners[3][4] sollen die RT-Patches einen hören Stellenwert bekommen, indem sie in das Repository der Entwickler eingepflegt werden sollen. So besteht die Hoffnung, dass die Patches fortschreiten und “mitgeschoben” werden, wenn das RT-Team ihren Entwicklerbaum mit dem von Linus Torvalds synchronisiert. In der Zukunft sollen die Patches dann auch mal nach Mainline übernommen werden. Man mag abwarten.
Wie “offiziell” ist Dein Repo? Wird es eher als interessantes Nischenprodukt geduldet oder als wichtiger Beitrag gefördert? Zeigen NOVELL oder OpenSuse Interesse an einem offiziellen RT-Kernel in offiziellen Suse-Repos?
Ein Nischendasein scheint es zu führen, bedingt durch eine Reihe von Faktoren. Die meisten Paketmanager entscheiden allein aufgrund einer höheren Versionsnummer, ob ein Paket upgradebar ist, und das hat Endbenutzer, insbesondere solchen mit Upgradewahn, oft Pakete eingespielt die sie gar nicht wollten — zurückzuführen darauf, dass sie mal das Repository hinzugefügt hatten, um an ein eigentlich anderes Paket heranzukommen. Naja, so hatte ich automatisch eine Gruppe (un)freiwilliger Kerneltestern ;-) Leider hat das Spuren hinterlassen, und man darf heute eigentlich nur froh darüber sein, dass es mit Zypper einen Paketmanager gibt, der standardmäßig keine Upgrades über Repositorygrenzen hinweg macht.
Novell hat bereits mit openSUSE 10.3 einen RT-Kernel auf Basis 2.6.22 herausgebracht. Da ich schon länger Kernels mit meinen eigenen Patches erweitere, war RT damals eher ein Nebenprodukt der Build-Software. Erst mit 2.6.23, wo der Scheduler im Kernel durch CFS ausgetauscht wurde, gingen mir die Latenzen bei der einfach Audiowiedergabe auf einem Kernel mit 10 ms Scheduling-Granularität (also HZ=100) durch die Decke und ich wechselte auf RT.
Posted 2009-08-01 19:08 / Tags: Articles, Magazines. / link
Git, Software Development, Sourceforge. Finally they offer GIT repositories. Posted 2009-02-19 14:02 / link
The woes with terminal emulators
Generally I use xterm because that is available on about every UNIX workstation, or where not, “derivates” (allow me to use this terminology even if it may not apply) like rxvt are available on, for example, MSYS (system around MinGW for Win32). However, I wanted to try something different, as xterms only seemed support bitmap fonts (I later found out that it can use freetype).
In the course of having tried all the terminal programs, a set of criteria seemed to have emerged:
- allow me to change the palette
- allow me to pick any font (predominantly TTF)
- support CJK well
- speed?
libvte deserves a separate section here, because some terminals make use of it. Since libvte happens to have some bugs in the version I had installed (0.17.4), terminals making use of it are affected. Bug report is pending. Let's see where this goes. (Probably nowhere as usual.)
libvte suffers from a some cosmetic issues, making it hard to use my favorite editors because either the cursor suddenly disappears (blue-on-blue) or the background does not get painted thoroughly (read: correctly).
Both sakura and gnome-terminal which make use of libvte will cause a high CPU use. While the terminals hum along between 3–6%, the X server process rises up to as much as 52%. (Window size and font is the same as Xterm, for a fair comparison.)
Sakura was the first new terminal emulator to try; the reason for it being the first is probably because I had probably heard/read it some time back and it stuck in the head.
Since most of the job is done by libvte, there is not much to write, really. What was of note is that sakura (version 2.3.2) did not allow me to change the palette to custom colors and that there was a geometry (window size) related bug (said to be fixed in 2.3.3).
Over sakura, gnome-terminal allows changing to custom colors. Contrary to slowness warnings from people on IRC (outside #gnome), it is not any slower than anything else libvte-based.
Given the problems libvte currently has, I sought ought for a terminal that does not seem to use it, judging from ldd output. KDE came to mind...
Turns out you cannot even select non-monospace TTF fonts. And as it stands, Latin Modern Mono seems to not have classified itself as monospace, so I could not select it. Also, kde-konsole is horribly slow, the konsole process taking up 21% CPU, and X also its 52%.
I also tried roxterm; it was indistinguishable from gnome-terminal actually. Also uses as much CPU.
Conclusion: Xterm has so far been the most flawless terminal.
Color coherence is really needed when you want to write top-quality source code. If your cursor just disappears as it does with libvte, you need to relocate it using alternate methods, like row/col number of arrows on the side rulers (if such exist in the particular editor).
Xterm's speed is described by its CPU usage when scrolling
through a text file — 1.3% to 3.7% according to `top` and,
above all, the X server process stays calm during scrolling.
Remark 2011-Nov-23: repaint-ok means whether BCE is done (paint background with color on erase). BCE occurs on the VT console (among others) when you emit the sequence \e[44m\e[2J (set background to blue, and clear entire screen).
| Name | Unicode | CJK | free choice of bitmap/ttf fonts |
customize colors |
“repaint” ok? |
fast (term/X cpu%) | glyph spacing ok? |
|
|---|---|---|---|---|---|---|---|---|
| Xterm 236 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓, 3-6%/<3% | ✓(having to set it manually, but ok) |
| sakura 2.3.2 | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗, 6-7%/60% | ✓ |
| gnome-terminal 2.24.1.1 | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | ✗, 3-6%/52-55% | ✓ |
| kde4-konsole 4.1.3 | ✓ | ✓ | ✓ | ✗ | ✓ | ✓ | ✗, 20%/50-55% | ✓ |
| Eterm r38808 | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ | ✓ |
Fonts
- “mux” (8+1x16) and “tosh” (7+1x16) bitmap fonts from hxtools. Their main property is that they are 2 pixels “thick”. (1px thickness just tends to vanish easily esp. with background colors.) (“+1” for the space between two glyphs.)
- Terminus Font at 20px height — mixes well with the “misc-ja” 20px font from Xorg-x11-fonts.
- Latin Modern Mono — scalable TTF font of choice
Notes
“Rulers - if such exist in the particular editor”: the text editing tool “GFA DeskPlus” (1988) employed a ruler at the bottom of the screen, and I ported this feature to mcedit for my own convenience (and not because the cursor disappeared).
Posted 2009-02-14 01:02 / Tags: Linux. / link
Game: LHX Attack Chopper
Classic '90s helicopter flight simulator, but there is few info about it, so here goes some interesting observations. (And VM Cheats!)
Trivia/Scoring
- The military rank you hold solely depends on the number of points. The range is: 0–1999 2nd Lieutenant, 2000–5999 11st Lieutenant, 6000–9999 Captain, 10000–15999 Major, 16000–19999 Lt.Colonel, 20000–Infinity Colonel. There is no end to the game. The counter will wrap at the usual 32-bit signed integer boundary (2^31).
- The “Purple Heart” is awared when hit. (Helicopter windshield has a hole and the text “You've been hit” appeared in-game.) Most likely requires that you got shot from the front, obviously.
- The “Air Medal” seems to be awared when at least 5 enemy aircraft have been destroyed.
- The score for a mission seems to be deductable by 50% if the player quits the mission over enemy territory and was captured as a POW but could escape.
Trivia/Missions
- “Aerial Intercept”: The fleet will not take off if the target MI-HIP helicopter is destroyed before it left. This has only been observed on the Vietnam map where it is possible to reach the “Enemy Origin” spot before the group leaves.
- “Aerial Intercept”: shooting any of the companion guards makes them immediately take off, but the MI-HIP continues to sit around until the timer for their leave expires.
- “Aerial Intercept”: a Hind and a Hokum occupy the same spot on the runaway.
- Landing within 1.3 miles of your landing base will end the mission.
- Weather conditions do affect the game. For wind this may be obvious, but it also affects the range of sight.
- You can actually land, rather than crash, on the white square buildings on the Germany map.
Trivia/UI
If you never had any military experience, some of the abbreviations are sometimes confusing. Even I only figured it out years after I got the game.
- RD/IR — radar/infrared
- STG — ? (Apache radar/infrared sensor)
- VSI — vertical speed indicator
- TFOH — Engine/Thrust, Fuel, Oil, Hydraulics
Trivia/AI
- Resting enemy aircraft will not take off (and be a nuisance) unless shot or the mission code makes them leave.
- Shooting any resting enemy helicopters or fighters makes them take off immediately, by raising the nose (normally helicopters do a vertical lift-off). The graphics usually cause this to look like a tailstrike, but what's more, fighters suddenly getting full speed is not going in line with reality.
- (In all skills:) The AI randomly spawns enemy aircraft starting from an airstrip.
- In the “Hard” and “Very Hard” skill, the AI randomly spawns enemy aircraft in mid-air.
- Usually, no randomly spawned enemies will appear if you already have more than four enemy aircraft within radar range.
- Infrared-guided missile usually lose track of their target just before potential impact when the missile has to climb above ~6000 ft.
- The Gaskin won't fire infrared missiles if your heli is too low on altitude.
- The chance that a SAM will target you is much higher in higher altitudes. (IOW: Fly below 200 ft.)
- AI aircraft are able to fly as high as your chopper (i.e. up to 9000 ft) (and then shoot you)
- AI enemies will usually not follow you behind the Allied/Soviet “border”.
- AI helicopter units (including Allied ones) always seem to be a bit slower than the player attains with the same vehicle type. (You can overtake the other Black Hawks in “Chopper Escort” with your own Hawk.—But you will never find a way to constantly match their speed.)
- Enemy aircraft will, after some time, land on a base. The game engine will then deallocate the aircraft.
- Hind helicopters, in direct pursuit of the player, will shoot with their chaingun, but evidently miss when the player is below 200 ft.
- Subsystems can be damaged multiple times.
Trivia/Weapons
- Stingers have half the firepower of a Sidewinder rocket.
- Sidewinder rockets travel about 15.5 miles (in-game), with a lifetime of 30 seconds. (Exciting 1860 mph!) Travelling in the LHX chopper takes about 130 seconds for the same distance, which would mean it goes at 429 mph — but the in-game counter reads 215 mph. Calculating this down would put the Sidewinder at 932 mph (still insane amount).
- Hellfire rockets travel about 3.0 miles, with a lifetime of 20 seconds. (540 mph / 270 mph adjusted.)
- LHX Chaingun ammo travel 1.8 miles.
- Gears down on the LHX chopper reduce speed by 25% (215->161 mph).
- Destroying any non mission goal targets does not seem to award any points.
- A grid cell (those oddballs lying on the ground in a square pattern is 0.195 miles on each edge.
VM Cheats
Write to the following addresses (using the DosBox debugger or other technique) to do the cheat. These cheats are transparent to the program and hence do not affect scoring.
DS = 0x38D3 usually. If this does not seem to be the case, let it run for a view instruction cycles.
int16_t @DS:F36A— ammo for primary weaponint16_t @DS:F36C— ammo for secondary weaponint16_t @DS:F36E— ammo for tertiary weaponint16_t @DS:F370— ammo for quarternary weaponint8_t @DS:F37A— number of available chaff chargesint8_t @DS:F37B— number of available flare chargesint32_t @DS:F637— your score
General cheats
- Ctrl-R refills ammo and fuel, but will not award any points for the mission.
- There is a black monolith in the Germany map behind the mountain behind the 2nd SAM site; there is another monolith on the far West side of the Vietnam map, just south of the river. They all transport you near the Allied/Soviet border (but still in Soviet territory).
- Choosing the “Free Flight” mission, crashing into an object, and ending the mission (Ctrl-Q) before hitting the ground makes the player invisible to enemy fire in the next mission.
- It is possible to shoot backwards; hit Enter to target the object, and switch to another view (F7/F8/Shift-F10). As long as the player is in range, the target can still be hit.
“Cast & Crew”
Allied aircraft
- AH-64A Apache
- UH-64 Black Hawk
- LHX - Light Helicopter Experimental, similar to RAH-66 Comanche
- V-22 Osprey
- B-2 Spirit
Allied ground vehicles
Soviet aircraft
- MI-24A,D,F Hind (IR missiles)
- MI-8 Hip
- Mi-28 Havoc
- Ka-34 Hokum
- MiG-27 Flogger (RD)
- SU-25 Frogfoot (RD)
Ground targets
- BMP-2
- BRDM-2
- BTR-70
- C&C vehicle
- S-23 180mm gun
- S-60
- SA-6 Gainful
- SA-8 Gecko
- SA-9 Gaskin
- SA-11 Gadfly
- SA-12 Gladiator
- SA-13 Gopher
- SSC-4 Sepal cruise missile launcher
- T-72
- T-80
- ZSU-23 Shilka
- ZSU-30
- ZSU-57
- Man with AK-47
- Man with SA-7
- Man with SA-14
Weapon systems
Locations
There are some bugs with respect to location names in the game. The central allied base as well as the northern allied base is known as Boitzenhagen, which cannot quite work with a real map. But see for yourself. Game North is not north in the real maps either (esp. for the Libya map).
- Germany map on Google
- 29399 Wahrenholz
- 29413 Lagendorf-Schmölau (wrong in the game: “Schmolau”)
- 29413 Dähre (w: “Dahre”)
- 29413 Diesdorf
- 29378 Wittingen-Boitzenhagen (w: Boitzenhegen)
- 38489 Jübar (w: “Jubar”)
- 38489 Ahlum-Stöckheim (w: “Stockheim”)
- 38489 Rohrberg
- 38489 Beetzendorf
- 39649 Trippigleben
- 39649 Oebisfeld-Buchhorst
- 38471 Rühen (w: “Ruhen”)
- Libya map on Google
- Vietnam map on Wikipedia
Medal view
- 1st row: (rank indicator, see above)
- Silver Star
- Good Conduct Medal
- Purple Heart
- x
- 2nd row: x
- Air Medal
- Distinguished Flying Cross, awarded when trashing lots of enemy aircraft
- Armed Forces Expeditionary Medal
- Medal of honor
Posted 2008-12-29 13:12 / Tags: Games. / link
Three steps to a basic IPsec tunnel
Sometimes, the solution is so simple that you miss the wood for the trees.
1. Install StrongSWAN on both sides.
2. Edit /etc/ipsec.conf on each side:
conn foo
left=fd00::31:1
right=fd00::32:2
auto=start
authby=psk
3. Edit the ipsec.secrets on each side.
fd00::31:1 fd00::32:2: PSK "our happy shared key"
Certificate-based
Generate a certificate plus key for both left and right side (give them appropriate names, left/right is just a filler here):
openssl req -x509 -nodes -key
/etc/ipsec.d/certs/leftside.pem -keyout
/etc/ipsec.d/private/leftside.pem.key
This is just a self-signed certificate, but should fit the bill for "simple". Each side needs to have their own certificate and key, plus the right side's certificate. (The left side needs to have leftside.pem, leftside.pem.key, and rightside.pem, the right side needs to have rightside.pem, rightside.pem.key and leftside.pem.)
/etc/ipsec.conf for the left side:
conn foo
left=1.1.1.1
right=2.2.2.2
auto=start
keyexchange=ikev2
leftcert="/etc/ipsec.d/certs/leftside.pem"
rightcert="/etc/ipsec.d/certs/rightside.pem"
/etc/ipsec.secrets for the left side:
1.1.1.1 2.2.2.2 : RSA "leftside.pem.key"
Right side should be obviously mirrored. You can also use the
%any variant in ipsec.secrets, if needed.
Posted 2008-02-24 07:02 / Tags: Ipsec, Linux. / link
ifconfig sucks
ifconfig, which has historically been used to configure network interfaces, has a number of problems which make it more and more unsuitable. The list of replacements is below.
1. Makes secondary addresses look like separate interfaces
People often get the impression that labeled secondary addresses are a separate interface (thanks to the dumb output of ifconfig, as a result of ioctl limitations), which in fact is not the case. You cannot use eth0:1 in iptables nor iproute2, so do not even think of eth0:1 being an interface on its own.
Similarly, you cannot set flags on these “interfaces”.
# ifconfig dummy0:1 1.2.3.4 up
# ifconfig dummy0
dummy0 Link encap:Ethernet HWaddr FE:50:31:E6:14:17
BROADCAST NOARP MTU:1500 Metric:1
[...]
Still down. Obviously, since it is not an interface.
2. Overrides colon
Linux does allow interfaces to be composed of any characters, except the slash (to make it fit for filesystem exposure, cf. sysfs) and the NUL byte (obvious string terminator in C). As such, you could indeed have an interface called "eth0:foo", and properly interact with it with iproute2. But it would be inaccessible from ifconfig.
3. Cannot handle same-label addresses
Now that we have established that ifconfig essentially uses interface labels for lookups (when one is defined), one can notice that it does not — or more specifically, can not, because it uses an ancient BSD interface — deal with non-unique labels. In fact, it will miss out on the first result's label.
# modprobe dummy
# ip addr add 10.0.0.1/32 dev dummy0 label eth0:A
# ip addr add 10.0.0.2/32 dev dummy0 label eth0:A
# ip addr add 10.0.0.3/32 dev dummy0 label eth0:C
4. Locale-specific behavior
The output of ifconfig is localized, which means you get it in your preferred language. This for example breaks when other tools are used to parse its output, like grep in the simplest case. Writing a grep formula to automatically catch this is error prone. The use of resetting the environment LC_MESSAGES or LANG in every call is not that nice either.
5. Does not support non-labeled secondary addresses
The title speaks for itself. Execute the following with an IP address of your choice (given that eth0 already has an address), and it will not show up in ifconfig.
ip addr add 192.168.1.2/24 brd + dev eth0
6. Does not display peer address
You can set up a peer binding on Ethernet, but eventually, ifconfig will not show the peer that was just set.
# ip addr add 192.168.13.37/32 peer 192.168.13.38 dev eth0
# ifconfig eth0 192.168.13.37
7. Does not support nor use CIDR notation
ifconfig still operates with the old-fashioned netmasks (for IPv4).
8. Strange hardware address for tun tunnels and wmaster0 interfaces
`ifconfig tun0` gives lots of zeroes for the
hardware address, but what for please?
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.0.254.6 P-t-P:10.0.254.5 Mask:255.255.255.255
Additionally, this is where parsers might choke on, since the hardware address does not match typical 48-bit MAC Ethernet format.
9. Not developed anymore
Except for the patch mass that Debian accumulated, the net-tools package has not seen any upstream development after version 1.60, released sometime about April 15 2001.
Conclusions
Given that we have the successor ip from the iproute2 package with the features (including newer things like policy routing), there is just no need to continue using ifconfig. Consider to be ridiculed at when posting traces of utilizing it.
State of Linux distributions: openSUSE is known to exclusively use iproute2 for setting up networking. Debian and its offsprings are known to exclusively go the archaic way, and things don't look brighter in Fedora either.
New equivalents
| net-tools | iproute2 |
|---|---|
ifconfig |
ip addr, ip link |
ifconfig (interface stats) |
ip -s link |
route |
ip route |
arp |
ip neigh |
netstat |
ss |
netstat -M |
conntrack
-L |
netstat -g |
ip maddr |
netstat -i |
ip -s link |
netstat -r |
ip route |
iptunnel |
ip tunnel |
ipmaddr |
ip maddr |
tunctl |
ip tuntap (since iproute-2.6.34) |
| (none) for interface rename | ip link set dev OLDNAME name NEWNAME |
Posted 2008-02-19 21:02 / Tags: Linux. / link
BA-4000 update
Update to the Atiosys BA-4000. The COM1 generally runs in RS-423/RS-485 mode (have not tried finding out which exactly), while only COM2 to COM4 are RS-232. Now the problem is that COM3 and COM4 are only on-board, i.e. as a pin header, and doing some soldering (a) takes time (b) does not seem to work well with the case and how one opens/closes it. That sucks. Solution is to buy an USB-RS232 adapter, but of course, there's only shitty hardware on the market. Either it is (a) a really odd USB cable (going from USB-A to USB-B first, then to RS-232), (b) too pricey or (c) the ark3116 chip that was in the cables I acquired does only have TX/RX CTS/CTR lines and none of the helpful control lines.
Posted 2007-06-11 13:06 / Tags: Embedded, Hardware, Linux. / link
The BA-4000 semi-embedded device (Box PC)
The Atiosys BA-4000 is some sort of a barebone pc that is well suited for being a management console. With 2 Ethernet LAN jacks, 2 COM ports (a third is said to be available as an onboard pin header), and 4 USB ports, you can connect tons of things to it, ranging from (1) modern servers, controlled via IPMI (Ethernet), (2) servers controlled via RS-232 (COM), e.g. SPARC E250, and if that's not enough, (3) the UPS via USB. Of course, you could always extend it with USB-to-LAN, or USB-to-RS232 converters.
Contains a VIA Eden ESP 7000 processor, yet
/proc/cpuinfo and longhaul say it is a Nehemiah
C3/C5P/C5XL core. What's not so good is that the CPU frequency switching
runs unstable and eventually locks up the whole box, making even Sysrq
impossible. It is fanless though, and at 733, the core temperature is about
53 °C, as much as my 2500-RPM fan-cooled (80x80) desktop box w/AMD
Athlon XP 2000+ runs at (~51 °C).
As far as storage is concerned, CompactFlash is the
preferred way, though an IDE port is also provided inside. And since the
guys at Novell cleaned out the stable quite a bit lot, a minimal (I
would want to call it "full minimal" because there's so much space left),
yet functional install (iptables, ssh,
minicom and apcupsd) takes only 333 MB, yes,
that's openSUSE 10.3 Alpha 3. I have to admit, I cheated a bit by manually
throwing out all directories in /usr/lib/locale that were not
de_DE or en_US, which saves a whopping 63
MB. I also killed /usr/share/doc/* and
/usr/share/man/* You need to know that I run it on a rather
tiny CF card...but I am happy with it.
Filesystem Type 1K-blocks Used Available Use% Mounted on
/dev/sda1 xfs 508896 333560 175336 66% /
Yeah, I decided to use xfs, in
read-write mode (no fancy squashfs-unionfs/aufs combination, there is only
limited memory available) on a CF. Let's see how fast that wears
out.
cn:~ # dmesg | grep ^Memory
Memory: 237444k/245696k available (1735k kernel code, 7628k reserved, 721k
data, 188k init, 0k highmem)
cn:~ # free
total used free shared buffers cached
Mem: 240212 21124 219088 0 0 6596
-/+ buffers/cache: 14528 225684
Swap: 1016 0 1016
The following sysctls are should help a bit:
/proc/sys/vm/dirty_background_ratio = 90
/proc/sys/vm/dirty_ratio = 95
/proc/sys/vm/dirty_writeback_centisecs = 18000
/proc/sys/vm/dirty_expire_centisecs = 30000
/proc/sys/vm/laptop_mode = 1
Another not so good thing is that the VGA memory is shared. By default, the area is set to 64 MB, but heck, what for? I have it at 16 MB (the minimum) so that I have more of the 256 MB DIMM I installed for the operating system. And, the graphical SUSE installer ran, in 1024x768, with these 16 MB set aside for graphics. On the other side, I was prompted to add a bit of swapspace beforehand so the installer starts (it wants 256 MB, not 240). Lacking decent storage, I used some USB flash stick for the course of the install. As you can see above, the running system only uses like 14 megabytes.
Posted 2007-05-04 13:05 / Tags: Embedded, Hardware, Linux. / link

