Developers’ Weblog

Sponsored by
HostEurope Logo

Developers’ Weblog

⚠ This page contains old, outdated, obsolete, … historic or WIP content! No warranties e.g. for correctness!

All 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39

We can use “machine exec grub /boot/grub/stage2” as well as “machine exec grub /boot/grub/core.img” to chain into GNU GRUB-Legacy or GRUB2 now. GRUB2 is in rescue mode, though, but catting files works, as does chaining from GRUB 0.9x (mirports/sysutils/pxegrub) to GRUB2.

Also, “machine exec grub /stage2_eltorito” works, because they are actually the same (it doesn’t care if it’s a CD or not; we might use that in the future too instead of the tori_bootflag hack). However, while GRUB 0.9x can deal with filesystems created by “mkisofs”, “makefs”, “mkisofs -R”, it cannot deal with one created by “makefs -o rockridge”, neither the old makefs(8) we had 3 months ago, nor stock TNF one, nor our new one with my patches. Since GRUB2 just says unknown filesystem, it’s fine… but useless.

Anyway, I now have a way to boot MS-DOS® from a USB stick (bootbsd → grub → memdisk → DOS) in order to install SYSLINUX on the very same stick… gaaaaaaaaaaaah!

Update: Yay! Our bootloader is now multiboot compliant, detects El Torito in a better way without the patch-the-code kludge, and can thusly survive boot ↔ grub cycles.

2. Update: It can also chain to itself, and can still be used from MS-DOS® or as SYSLINUX (et al.) COMBOOT module. It just can’t load SYSLINUX because you usually only have LDLINUX.SYS not LDLINUX.BIN, see my earlier post. And it can’t load an MS-DOS® boot sector, however, chaining to GRUB then from there to DOS works. (So much for my plans to directly load an IO.SYS file.)

3. Update 18.01.2009: Even GRUB2 could operate on the filesystem. As could various OSes and tools (from Schily and others). Just grub-legacy can’t. What was it? Padding was missing…

SYSLINUX, the horrors

2009-01-02 by tg@

Hmm… where is bsiegert@’s promised entry?

SYSLINUX creates an ldlinux.bin file from source code which is composed of two parts: a bootsector (FAT PBR) and the rest of the code, later written to A:LDLINUX.SYS. However, the later code not only makes assumptions about which bootsector loads it, but also jumps into it at will for unimportant things like loading more sectors (like the configuration file) from the disc. Bah! Impossible to do, as the bootsector is cut off before ldlinux.sys is written. Worse than even Microsoft®, who at least don’t go back to the bootsector once the first 2048 bytes of IO.SYS in DOS 7.10 are loaded.

Useful GSM tricks

2009-01-01 by tg@

Ich guck’ ja keinen an…

  • ##002# (and press the green/dial button afterwards): disable all call redirections (alle)
  • ##21#: disable unconditional redirection (immer)
  • ##61#: disable redirections if no answer (geht nicht ran)
  • ##62#: disable redirections if unreachable (Akku leer, …)
  • ##67#: disable redirections if busy (besetzt)

USB stick boot (mission impossible Ⅱ)

2009-01-01 by tg@
Tags: bug grml hardware

After my earlier escapades, which you might have read about, here’s some news regarding USB sticks:

  • The IBM X40 can boot, but always uses a geometry of LBA translated into 255 heads, 63 sectors per track, contrary to the “USB ZIP” one which demands 64 heads, 32 sectors per track.
  • The ALIX.1c does recognise the stick’s physical or USB ZIP geometry, since they match each other and what the BSD kernel thinks:
    sd0: 241MB, 241 cyl, 64 head, 32 sec, 512 bytes/sec, 495607 sec total
    However, it still cannot boot MS-DOS® 7.10 from the stick. WTF?
  • The VIA C7 can still not boot from the stick. It doesn’t even appear in the boot menu. Interestingly enough, it does try to boot from SCSI even if unlisted (disabling the AHA-2940U2B BIOS helps to disable it, but I don’t even know where that MBR code which it did boot came from…)
  • I still hate ATX. I fragged a K6-2 mainboard when trying to power it on due to a flash(?) (German: Überschlagsblitz). Also, I definitively have a lack of hardware with an ISA slot, a floppy drive, and USB.
  • The (old) herc hardware might work, but its keyboard controller is damaged, ISTR I wrote about it ages ago. Some day, I’ll either solder in a new one or use a USB keyboard to bring it back working (to hack a hercules framebugger).

So the way out of this misére is a “machine sector <type> <filename>” command for boot(8/i386). It should be able, at least, to load: an MBR/PBR, a GNU GRUB stage2, stage2_eltorito (with boot-info-table emulation), SYSLINUX, ISOLINUX, EXTLINUX, an MS-DOS® 7.x IO.SYS. But at the beginning, I’m content with less. Because it seems to be impossible to boot DOS from a USB stick, due to the varying CHS geometries, MEMDISK might be the way to go for a triple-boot stick. A combined grml+MirBSD thing would not be hindered by it because both SYSLINUX and boot(8/i386) use the LBA access method if available.

Benny beat me, he did the first commit this year. Congrats! Oh, and the second and the third. But I’ll write the first wlog entry, hahaha, and the Developers’ Weblog is not a blog! Oh, and the fourth.

Best bash tip ever! Use mksh!

2008-12-31 by tg@
Tags: mksh

Best Bash tip ever! is a little… interesting. Of course, mksh(1) can do it as well:

tg@bleu:~ $ head -2 /var/run/dmesg.boot
MirBSD#10uA4 (GENERIC) #1161: Fri Dec 26 21:05:59 UTC 2008
tg@bleu:~ $ r 2=3
head -3 /var/run/dmesg.boot
MirBSD#10uA4 (GENERIC) #1161: Fri Dec 26 21:05:59 UTC 2008
cpu0: Intel(R) Pentium(R) M processor 1.40GHz ("GenuineIntel" 686-class) 598 MHz
tg@bleu:~ $ fc -l
1       head -2 /var/run/dmesg.boot
2       head -3 /var/run/dmesg.boot

What’s best, the modified commands are written into the history, not the modificator itself.

Some of the commentaries are rather clueless too, not $! but $_ is the last word of the last command, in this case:

tg@bleu:~ $ head -2 /var/run/dmesg.boot
MirBSD#10uA4 (GENERIC) #1161: Fri Dec 26 21:05:59 UTC 2008
tg@bleu:~ $ print $_

Instead of “^-s” you would use “r -- -s=” (the two dashes are needed as the “r” built-in alias parses its arguments).

More on Planet Debian (read via Planet Symlink): how many times do I have to tell you it’s “CAs” not “CA’s” again? Please do the world a favour and read Apostrophen und andere Katastrophen with rules for German and English: never in German except the word ends with s or similar: „Jens’, Max’ und Joes CDs“ and for genitives only in both languages, but with apostrophe in English: “Jens’, Max’ and Joe’s CDs”

ciruZ now has a blog too… with two ruby scripts. I prefer mine in mksh very much, thank you :þ

It’s simply amazing. I wanted to show gecko2@ a USB stick with both grml(-small) and MirBSD on it, using SYSLINUX, but this fscking laptop does not boot from USB stick. So, the ALIX.1c it is, or the VIA C7.

Update: the VIA C7 doesn’t, either. Phoenix/Award BIOS v6.00PG it is, 09/26/2006-ID-PCM7E-6A7L6EIIC-00 apparently (I learned today from gecko2@ that you can indeed use the “Pause” key on the IBM PS/2 keyboard to hold the output during BIOS POST). And I suspect the X40 just has USB Legacy support disabled, but won’t reboot now.

25C3 redux

2008-12-31 by tg@
Tags: event

Did you all read my comment on the MD5 CA thing?

25C3 is over, gecko2@ arrived today, and both he and bogus are just too verpeilt — they forgot to distribute the MirOS flyers and CDs at first, then bogus (who had them) got really ill.

We all somehow are, at the moment. Get better, everyone. (replaced couldn’t get to the BSD@Wien pre-christmas party either…)

cnuke@ pointed me to a nice IRC quote:

17:57 < jtsn> Der 25C3 ist lustig. Deutsche Vortragende brechen
        sich vor deutschen Zuhörern auf Englisch einen ab. ;-)
18:01 < jtsn> Adolfs Werk war sehr nachhaltig. ;-)
18:01 < jtsn> Das gab's nichtmal in der DDR, das[sic!] Deutsche
        mit Deutschen auf Russisch reden. ;-)

This’ll be my ~/.etc/sig for a while… it does hold some truth. *looks at this wlog*

Benny is still alive, yet a little offline, hacking on perl stuff for MirPorts. Good riddance.

By the way: does anyone know of a way to use a web browser or engine, for instance Webkit, from a shell script to produce a rendered version of a HTML source file (preferably to PostScript® or PDF)?

mksh-current GNU/Cygwin32 binaries (snapshot)

2008-12-31 by tg@
Tags: mksh

An mksh-current cygwin snapshot I just built for smultron, our graphical artist friend from MidnightBSD (which, by the way, also packages mksh(1)). He just did this:

mksh Logo

We’ll see what we do with that “m”…

I’ve updated src/etc/ssl.certs.shar, read about the procedure. Someone might want to update the nss certdata.txt file (to mark them as untrusted); for OpenSSL it’s enough to have them renamed. Luckily, the CAs agree wanting to switch to SHA-1 (yuck, broken as well). Only, do they get a new root certificate (probably not), and where does an OS vendor get such news?

Update: This appears to be not needed, as per this comment. However, how credible is this person? Where is proof? I’d recommend everyone who has not yet read it to look at On Trusting Trust. Anyway, the CA certificates are now trusted again; let’s just hope the backdated demo intermediate CA was the only one generated in the meantime. We really need my SSL known_certs proposal, I think. What’s with these MD2 certs anyway? (end of update)

On other notes, we have a new logo for mksh, thanks smultron. Hand-editing SVG is so much fun ☺ no really, in jupp it works very well.

I also ported the e3 editor to MirBSD, it’s 17 KiB i386 statically linked (stand-alone) binary. GNU GPL, but good for custom-made (hehe…) install/rescue system bsd.rd kernels. I would like to add TinyIRC-MirOS as well, but need to get an exception licence for crunchgen(1) use.

Both tinyirc and mksh(1) now use TIOCGWINSZ more properly and aggressively. The shell, in particular, now always has COLUMNS and LINES set.

light bulbs

2008-12-28 by tg@

Yesternight, not only my server crashed in the softupdates code again (*sigh* two RAID 1 rebuilds and a lot of fsck(8)), but also one of these energy saving light bulbs (13W). This proves that they do not have a longer lifetime than regular bulbs.

I oppose the planned ban of regular light bulbs, because, although almost(!) all of mine are energy saving ones, some of the propaganda apparently is wrong, plus they are not good in situations where the light switch is used very often, or when the light is only on for very short amounts, such as in the entrance area of an appartement (say 1½ m²).

What did I do? Meh, just some bootloader hacking.

Today, we gained arc4random_buf(3), arc4random_uniform(3) in libc and arc4random_atexit(), which is undocumented, but called from _exit(2) and all exec-style functions via execve(2) and exect(2). Since omalloc(3) needs arc4random(3) anyway, it is no real overhead, but a great way to make modelling the pool stuff even more difficult. Thusly, arc4random_pushk(3) retires in favour of arc4random_pushb(3) but stays as cpp(1) define.

Riding on the minor bump, mempcpy(3) stpcpy(3) stpncpy(3) GNU style were added as well.

Next plans are: rewrite src/lib/csu for pcc, make a port of uw-imapd with (maybe LTMIRMAKE?), make the pine and alpine ports use it, make the php-imap extension work with it again, further improve src/kern/ stuff and maybe www/mk/

More deep changes are however still postponed until OpenBSD is merged better.

I also fixed makefs(8) again ☺

MirOS @ 25C3 Updates

2008-12-25 by tg@
Tags: event

Word has reached me that Benny and Przemek are both suffering from illness (nothing bad, just a cold, don't worry) and thusly will not be attending the congress either.

As gecko2@ is currently preparing his machines, we believe he will uphold our representation at the event. Please join the IRC channel or the mailing list if you have any questions.

To these who do: happy celebrating!

All 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39

MirBSD Logo