sl | digitalrayne: great, thanks | 00:01 |
---|---|---|
sl | will try it presently | 00:02 |
digitalrayne | "host not halted after 16000 microseconds." and was not prompted for my encryption passphrase on the rebased version | 00:07 |
digitalrayne | I posted a link to a precompiled working image on the community site | 00:09 |
+ juno (~juno@50.47.226.18) | 00:09 | |
- juno (PART: !!unknown attribute: msg!!) (~juno@50.47.226.18) | 00:09 | |
minute | digitalrayne: cool | 00:13 |
bluerise | digitalrayne: Maybe I'll just revert to the old version | 00:20 |
digitalrayne | i couldn't work out how to get access to gitlab, so I requested an account, not sure if I had an old account on there minute? either way I'll push up the working branch as a starting point | 00:20 |
bluerise | thanks to reflog | 00:20 |
digitalrayne | bluerise: I was thinking it might make sense for us to try and bisect, but we can always do that on a separate branch too | 00:20 |
bluerise | digitalrayne: yeah, agreed | 00:21 |
bluerise | + 61e45ce0ff...7d57d2f5b1 mnt -> mnt (forced update) | 00:21 |
bluerise | pushed the old ref | 00:21 |
digitalrayne | awesome, thank you | 00:21 |
digitalrayne | nothing is as exhilerating as a git push -f | 00:21 |
josch | [insert "i also like to live dangerously" meme] | 00:22 |
- S0rin (QUIT: Ping timeout: 268 seconds) (~S0rin@user/s0rin) | 00:25 | |
+ S0rin (~S0rin@user/s0rin) | 00:31 | |
digitalrayne | just confirming that the mnt branch works again as expected bluerise | 00:42 |
minute | digitalrayne: i accepted your new acc a few minutes ago, worked? | 00:53 |
sl | lol, well, openbsd is booting, but the installer image does not detect my nvme | 00:54 |
sl | can someone please link me to a v2 devian system image | 00:55 |
sl | *debian | 00:55 |
sl | one that still uses /sbin/reform-init | 00:56 |
sl | the latest one that does so, if possible | 00:56 |
digitalrayne | minute: yes, all working, thank you! | 01:03 |
digitalrayne | oh interesting! sl, if it's not too much trouble, could you share a dmesg? and do you know if it was detected during u-boot? | 01:04 |
sl | let me see if there's any way i can get the dmesg off | 01:06 |
sl | fwiw, this nvme works fine with 9front | 01:06 |
sl | i think the debian v2 images are not archived :/ | 01:07 |
minute | sl: no :/ why do you need one? | 01:07 |
minute | sl: a possible workaround would be to override the init= kernel commandline argument | 01:08 |
sl | yeah, i'm trying to just boot successfully into my alpine install on nvme | 01:08 |
sl | the v3 images ignore /sbin/reform-init | 01:08 |
sl | oh | 01:08 |
sl | sorry, i'm linux ignorant for the most part | 01:08 |
minute | aha mhm | 01:08 |
sl | where can i override init= | 01:08 |
minute | is that encrypted or just a normal fs on that nvme? | 01:09 |
sl | encrypted | 01:09 |
minute | if normal fs you can override... ah ok | 01:09 |
sl | but it's a fresh install, i'm mainly just trying to get it to work | 01:09 |
sl | i had alpine on nvme waaaaaay back, but now i've got 9front on one partition and alpine on a second partiton | 01:09 |
sl | swap sdcard, boot into different os | 01:10 |
sl | but i learned the hard way after much trial and error that /sbin/reform-init was being ignored | 01:10 |
sl | with newest debian sdcard image | 01:10 |
minute | guessing you're still on imx, you can manipulate the kernel args in the uboot console by setting umm... bootargs i think. setenv bootargs init=/sbin/reform-init | 01:10 |
sl | ah! | 01:11 |
minute | but idk if we still ship reform-init? (on a phone right now) | 01:11 |
sl | i'll try | 01:11 |
sl | yes, it's on the image | 01:11 |
minute | the cleaner way i think would be to set the root= to your nvme partition, but not sure from the to of my head if that automagically handles encrypted fs. i think not | 01:12 |
sl | yay, that worked | 01:12 |
sl | i had edited reform-init to halt the boot and print OKAY | 01:13 |
sl | because i thought i was going crazy | 01:13 |
sl | i think i can make it work from here, thanks | 01:13 |
sl | now i will check openbsd dmesg | 01:13 |
minute | reform-init was easier to understand for me (that's why i wrote it in the first place), the newfangled initramfs etc stuff i always can't keep the details in my head | 01:13 |
sl | do i need to save that setenv for uboot on this sdcard | 01:13 |
sl | yean, this is all crazy to me | 01:13 |
sl | i am totally unfamiliar with linuxisms for a long time | 01:14 |
minute | sl: yeah if you want to keep it that way, you have to saveenv next time | 01:14 |
sl | and the stuff completely changes all the time | 01:14 |
sl | ok thanks | 01:14 |
minute | sl: yeah i get you... i'm just also trying not to NIH too much and adopt the "mainstream" solutions | 01:14 |
sl | ofc | 01:14 |
sl | different context | 01:15 |
minute | but happy that helped | 01:15 |
sl | i did not realize uboot was talking directly to the mounted fs | 01:15 |
sl | i guess it does magic to find the file | 01:15 |
sl | saveenv is not a valid command | 01:17 |
sl | docs say saveenv is disabled by default.......... hooray | 01:19 |
sl | well, it got to the encryption password prompt, so success | 01:22 |
sl | thanks :) | 01:22 |
minute | yeah sooo there are 2 other ways to customize uboot environments, which are extlinux.conf or uboot.scr (the latter needs the mkimage tool on linux to add a silly binary header to a text file, the former is just plaintext) | 01:24 |
minute | but i really need to sleep unfortunately | 01:24 |
minute | we are working on handbook 2nd edition and will include this stuff in there | 01:25 |
sl | np, i don't have much time to mess with this either | 01:25 |
sl | excellent | 01:25 |
sl | sleep well! | 01:25 |
minute | thx, n8n8 | 01:25 |
sl | digitalrayne: http://mnt.stanleylieber.com/reform/openbsd/dmesg | 01:31 |
sl | usb stick *was* recognized | 01:31 |
- eibachd (QUIT: Ping timeout: 272 seconds) (~eibachd@p200300dcf7353e011c742a70949d7c63.dip0.t-ipconnect.de) | 01:32 | |
sl | but no nvme and no wifi | 01:32 |
+ eibachd (~eibachd@p200300dcf7353e00ae564e2c8481239e.dip0.t-ipconnect.de) | 01:32 | |
- jacobk (QUIT: Ping timeout: 260 seconds) (~quassel@utdpat241106.utdallas.edu) | 02:22 | |
- nsc (QUIT: Ping timeout: 260 seconds) (~nicolas@103-49-142-46.pool.kielnet.net) | 03:20 | |
+ nsc (~nicolas@236-121-142-46.pool.kielnet.net) | 03:22 | |
- f_ (QUIT: Read error: Connection reset by peer) (~f_@fases/developer/funderscore) | 03:38 | |
+ f_ (~f_@fases/developer/funderscore) | 03:39 | |
- S0rin (QUIT: Ping timeout: 256 seconds) (~S0rin@user/s0rin) | 04:05 | |
+ S0rin (~S0rin@user/s0rin) | 04:06 | |
- sl (QUIT: Quit: leaving) (~sl@vpn.inri.net) | 05:02 | |
+ jacobk (~quassel@utdpat241106.utdallas.edu) | 05:16 | |
josch | minute: would you like me to remove /sbin/reform-init in the next reform-tools release to avoid this confusion? | 05:23 |
josch | i think extlinux.conf is the way to go for sl and i already recommended that to them yesterday | 05:26 |
- erle (QUIT: Quit: Democracy must always be better armed than tyranny.) (~erle@89.205.129.99) | 05:51 | |
- hairu (QUIT: Remote host closed the connection) (m-uotkmd@user/hairu) | 05:51 | |
+ hairu (m-uotkmd@user/hairu) | 05:52 | |
- jacobk (QUIT: Ping timeout: 260 seconds) (~quassel@utdpat241106.utdallas.edu) | 05:55 | |
- laumann__ (QUIT: Changing host) (~quassel@2a0a-e5c0-2-2-0-c8ff-fe68-bef1.loves.ipv6.at.ungleich.ch) | 06:04 | |
+ laumann__ (~quassel@user/laumann) | 06:04 | |
* laumann__ -> laumann | 06:04 | |
- hairu (QUIT: Remote host closed the connection) (m-uotkmd@user/hairu) | 06:05 | |
+ hairu (m-uotkmd@user/hairu) | 06:07 | |
+ jacobk (~quassel@utdpat241033.utdallas.edu) | 06:28 | |
- S0rin (QUIT: Ping timeout: 260 seconds) (~S0rin@user/s0rin) | 06:58 | |
+ S0rin (~S0rin@user/s0rin) | 07:02 | |
+ chomwitt (~chomwitt@2a02:587:7a10:cd00:1ac0:4dff:fedb:a3f1) | 07:33 | |
- jacobk (QUIT: Ping timeout: 260 seconds) (~quassel@utdpat241033.utdallas.edu) | 07:51 | |
- chomwitt (QUIT: Remote host closed the connection) (~chomwitt@2a02:587:7a10:cd00:1ac0:4dff:fedb:a3f1) | 07:53 | |
- eibachd (QUIT: Ping timeout: 246 seconds) (~eibachd@p200300dcf7353e00ae564e2c8481239e.dip0.t-ipconnect.de) | 08:02 | |
+ eibachd (~eibachd@2a01:599:319:5d68:9b0d:c081:cc41:e8d6) | 08:02 | |
- eibachd (QUIT: Ping timeout: 256 seconds) (~eibachd@2a01:599:319:5d68:9b0d:c081:cc41:e8d6) | 08:19 | |
+ eibachd (~eibachd@2a01:599:30d:21df:323a:4d10:e29e:894c) | 08:19 | |
+ chomwitt (~chomwitt@2a02:587:7a10:cd00:1ac0:4dff:fedb:a3f1) | 09:02 | |
minute | josch: yeah but we need some kind of little guide that explains how to point to custom installations incl env vars using extlinux.conf that i can link to during such discussions (i haven't yet memorized the details). and i want to include such a text in the handbook | 09:05 |
josch | minute: do you think more than ${bootargs} needs to be set for custom installations and extlinux.conf? | 09:08 |
+ mjw (~mjw@gnu.wildebeest.org) | 09:12 | |
- chomwitt (QUIT: Remote host closed the connection) (~chomwitt@2a02:587:7a10:cd00:1ac0:4dff:fedb:a3f1) | 09:14 | |
+ jacobk (~quassel@64.189.201.150) | 09:18 | |
minute | josch: no, but i would need some working example/template to start with and in the handbook i'll explain the most useful bootargs overrides, like root, init etc. | 09:22 |
minute | idk from the top of my head how to specify an encrypted root there though | 09:23 |
- eibachd (QUIT: Read error: Connection reset by peer) (~eibachd@2a01:599:30d:21df:323a:4d10:e29e:894c) | 09:25 | |
+ eibachd (~eibachd@p200300dcf7353e01ffd848d63b839cf6.dip0.t-ipconnect.de) | 09:26 | |
+ chomwitt (~chomwitt@2a02:587:7a10:cd00:1ac0:4dff:fedb:a3f1) | 09:31 | |
- chomwitt (QUIT: Remote host closed the connection) (~chomwitt@2a02:587:7a10:cd00:1ac0:4dff:fedb:a3f1) | 09:31 | |
- eibachd (QUIT: Ping timeout: 276 seconds) (~eibachd@p200300dcf7353e01ffd848d63b839cf6.dip0.t-ipconnect.de) | 09:31 | |
+ eibachd (~eibachd@2a01:599:30d:21df:323a:4d10:e29e:894c) | 09:32 | |
josch | if the partition is encrypted you either need a partition with a mini-rootfs somewhere or an initramfs (same thing but packed as a cpio), right? | 09:38 |
josch | minute: here is the Debian default extlinux.conf: https://paste.debian.net/1306452/ | 09:39 |
josch | other distros shall just change the paths for linux image, initramfs and dtb | 09:40 |
josch | i think grub is able to decrypt luks by itself? | 09:40 |
josch | so another option would probably be to chainload a grub from somewhere | 09:41 |
josch | for encrypted root i mean | 09:41 |
+ chomwitt (~chomwitt@2a02:587:7a10:cd00:1ac0:4dff:fedb:a3f1) | 09:45 | |
- chomwitt (QUIT: Remote host closed the connection) (~chomwitt@2a02:587:7a10:cd00:1ac0:4dff:fedb:a3f1) | 09:47 | |
- klardotsh (QUIT: Ping timeout: 264 seconds) (~klardotsh@c-67-170-115-80.hsd1.wa.comcast.net) | 09:49 | |
minute | josch: ok, i should probably try booting some other distros using that mechanism to get a feel | 09:53 |
josch | it's probably important to document that if both boot.scr and extlinux.conf exist, u-boot will prefer extlinux.conf | 09:54 |
minute | ok | 09:58 |
- senzilla (QUIT: Ping timeout: 260 seconds) (sid151180@id-151180.hampstead.irccloud.com) | 10:07 | |
+ senzilla (sid151180@id-151180.hampstead.irccloud.com) | 10:10 | |
* sterni_ -> sterni | 10:42 | |
digitalrayne | josch: grub can decrypt luks yeah, luks1 and luks2, it's much slower than doing it in an initramfs with the userspace tools, but you can have fully-encrypted /boot this way. to do it with u-boot you'd probably have to have a separate partition for EFI grub, so /boot/efi on an unencrypted partition | 11:21 |
digitalrayne | i had it running for a while and when i say it's slower, it's like, a few seconds slower, hardly a big problem | 11:22 |
digitalrayne | sl: I think the interesting line in the dmesg you provided is "dwpcie0 at simplebus0: no config registers" - I don't see this on my Reform | 11:29 |
digitalrayne | instead I see "dwpcie0 at simplebus0" followed by "pci0 at dwpcie0" | 11:30 |
digitalrayne | i wonder if it has anything to do with motherboard revisions, I know there have been changes to clocking for pcie right? | 11:30 |
bluerise | "no config registers" means that the device tree is old | 11:35 |
bluerise | efi0: Das U-Boot rev 0x20231000 | 11:36 |
bluerise | this looks fresh though | 11:36 |
bluerise | config = OF_getindex(faa->fa_node, "config", "reg-names"); | 11:37 |
bluerise | if (config < 0 || config >= faa->fa_nreg) { | 11:37 |
bluerise | printf(": no config registers\n"); | 11:37 |
bluerise | return; | 11:37 |
bluerise | } | 11:37 |
bluerise | U-Boot's DT has that, so it's probably loading 'an old one' from the disk | 11:38 |
bluerise | try breaking in the shell and to 'run bootcmd_usb' or something like that | 11:39 |
bluerise | digitalrayne: oh and I can see why the WiFi PCIe doesn't show up, it's because the U-Boot doesn't have the second PCIe in the device tree | 11:40 |
bluerise | I can patch U-Boot to make that happen | 11:40 |
digitalrayne | i was wondering if sl might have a device tree or something somewhere that u-boot was picking up, that would have been with the flash.bin I built though so I was confused | 11:41 |
digitalrayne | bluerise: that's awesome, that would be a super easy fix, this has been a most excellent crash course on DTs for me | 11:41 |
digitalrayne | i had suspected it was something like that, or maybe a missing clock | 11:42 |
digitalrayne | it's actually totally possible sl has an old DT on a partition somewhere though - I think they were saying there were some other installs on the nvme, not sure if there's anything on their eMMC also | 11:43 |
bluerise | Yeah, that's why when you break in and to something like this "run bootcmd_something", it only runs that single storage device | 11:44 |
bluerise | otherwise it might try emmc first, load a dtb there, then switch to nvme and get the EFI | 11:44 |
- eibachd (QUIT: Ping timeout: 272 seconds) (~eibachd@2a01:599:30d:21df:323a:4d10:e29e:894c) | 12:01 | |
+ eibachd (~eibachd@2a01:599:416:44df:981f:5dd:676b:c41f) | 12:01 | |
digitalrayne | bluerise: i patched pcie0 into the dts and can see the wifi card now, will do some more testing but I think that was all that was wrong, as you suspected | 12:10 |
hramrach | there is however a problem with relying on grub for the decrytion. it lags behind the userspace tools in crypto support, and iirc the shiny new crypto scheme is not supported by it, whatever it is right now | 12:14 |
hramrach | if you wanted secure boot it's easier with grub than signing the ramdisk, somewhat | 12:15 |
hramrach | also the few (5~10) seconds to decrypt with grub make it difficult to diagnose when things do go wrong | 12:16 |
hramrach | josch: how do you specify a custom device tree with extlinux.conf? | 12:18 |
digitalrayne | yeah you have to use pbkdf2 if you want to use luks2 | 12:18 |
josch | hramrach: that's the fdt line in https://paste.debian.net/1306452/ | 12:19 |
digitalrayne | bluerise: I have working wifi :) I'll push the dts patch somewhere in morning | 12:31 |
digitalrayne | *in the morning | 12:31 |
minute | digitalrayne: there were no changes to pcie on the motherboard. | 12:33 |
digitalrayne | ok cool - I must have been thinking of something else, thanks! it seems most likely it's just an old DTB sometime then | 12:35 |
digitalrayne | *somewhere | 12:35 |
digitalrayne | too sleepy to type good | 12:35 |
hramrach | josch: thanks, is there some documentation for that other than random files in random distros? | 13:09 |
josch | hramrach: none that i know of | 13:09 |
hramrach | the pxelinux.conf part of u-boot seems to be particularly badly documented | 13:09 |
josch | maybe bluerise knows some extlinux.conf docs in u-boot? | 13:10 |
hramrach | or extlinux or whatever syslinux variant | 13:10 |
hramrach | I don't think syslinux itself suports DTBs so this is an u-boot extension, and there are probably other differences | 13:13 |
- mjw (QUIT: Ping timeout: 272 seconds) (~mjw@gnu.wildebeest.org) | 13:29 | |
* Guest7217 -> mjw | 14:08 | |
bluerise | what is extlinux.conf? | 14:13 |
josch | well, that answers that question :D | 14:18 |
josch | bluerise: instead of using boot.scr, distro_bootcmd first tries opening and interpreting ${prefix}extlinux/extlinux.conf which contains something along the lines of this: https://paste.debian.net/1306452/ | 14:20 |
josch | the only docs I know are in the u-boot source under doc/README.distro | 14:20 |
josch | ah there is a bit more now | 14:23 |
josch | hramrach: doc/develop/distro.rst and doc/develop/bootstd.rst | 14:23 |
- pandora (QUIT: Quit: Connection closed for inactivity) (uid585533@id-585533.ilkley.irccloud.com) | 15:34 | |
hramrach | josch: thanks, did not find it in u-boot docs before, also doc/README.pxe | 15:55 |
hramrach | probably looked at one of the rendered doc websites where these text files may not be included | 15:55 |
hramrach | or maybe it's recently added | 15:56 |
josch | you are right -- they were added in october 2023 | 15:59 |
josch | errr. no that's wrong | 16:01 |
josch | november 2021 | 16:02 |
josch | i was familiar with | 16:03 |
josch | doc/README.distro | 16:03 |
josch | and that got moved in https://github.com/u-boot/u-boot/commit/37c5195dfcd15781db9e9f7f414611dc1af3bd2e | 16:03 |
minute | one more thing for the todo list: reduce ls1028a uboot timeout to like 2 seconds instead of 5 | 16:49 |
- jacobk (QUIT: Ping timeout: 240 seconds) (~quassel@64.189.201.150) | 17:02 | |
minute | reform-migrate now spits out a lot of warnings at the end about the use of "-n" with cp | 17:09 |
minute | "use --update none instead" | 17:09 |
minute | --update=none | 17:09 |
- eibachd (QUIT: Read error: Connection reset by peer) (~eibachd@2a01:599:416:44df:981f:5dd:676b:c41f) | 17:19 | |
+ eibachd (~eibachd@p200300dcf7353e008ef01b44b00404fc.dip0.t-ipconnect.de) | 17:20 | |
- murphnj (QUIT: Quit: Leaving) (~murph@user/murphnj) | 18:03 | |
josch | minute: you mean when the initramfs is getting generated? | 18:07 |
josch | if yes, then i already submitted a patch to prevent this from happening here: https://salsa.debian.org/kernel-team/klibc/-/merge_requests/14 | 18:12 |
josch | if you found a place that generates these messages other than update-initramfs, just ping me :) | 18:12 |
josch | minute: are you sure you have the latest u-boot for ls1028a? Because you already made this change in 4a71519d90bfa3a7128e7dd00d4ed4e8b2b8c637 which requires reform-ls1028a-uboot version 2023-10-10 or newer | 18:31 |
+ vagrantc (~vagrant@2600:3c01:e000:21:7:77:0:20) | 18:41 | |
josch | vagrantc: do you know of any good docs for extlinux.conf other than doc/develop/distro.rst and doc/develop/bootstd.rst in u-boot? | 18:49 |
vagrantc | the format comes from syslinux ... so maybe there? | 18:58 |
vagrantc | though that might have more features than are implemented ... the u-boot docs are ... authoratative for u-boot's implementation :) | 18:59 |
vagrantc | i think fedora had some documentation about it as well, if i recall, but i forget what they called it | 18:59 |
vagrantc | support was originally implemented in u-boot by one of the fedora folks | 19:00 |
+ chomwitt (~chomwitt@2a02:587:7a10:cd00:1ac0:4dff:fedb:a3f1) | 19:05 | |
minute | ah, ls1028a sd card is probably so slow because bus-width = <1>; | 19:12 |
+ klardotsh (~klardotsh@c-67-170-115-80.hsd1.wa.comcast.net) | 19:44 | |
+ wielaard (~mjw@gnu.wildebeest.org) | 20:01 | |
- eibachd (QUIT: Ping timeout: 272 seconds) (~eibachd@p200300dcf7353e008ef01b44b00404fc.dip0.t-ipconnect.de) | 20:14 | |
* mjw -> Guest3205 | 20:16 | |
- Guest3205 (QUIT: Killed (lead.libera.chat (Nickname regained by services))) (~mjw@2001:1c06:2488:1400:4fd:39a7:74ac:7bae) | 20:16 | |
* wielaard -> mjw | 20:16 | |
+ eibachd (~eibachd@p200300dcf7353e0075303ca99dcd3f68.dip0.t-ipconnect.de) | 20:16 | |
+ Guest3205 (~mjw@2001:1c06:2488:1400:4fd:39a7:74ac:7bae) | 20:16 | |
+ murphnj (~murph@user/murphnj) | 20:21 | |
hramrach | josch: vagrantc the format specification is in doc/README.pxe in the u-boot tree, and is fairly complete, and I suspect it has extensions over what syslinux supports so their description would not do. It's in README.pxe for extlinux so not exactly easy to find, meh | 22:08 |
josch | minute: then that would be your docs to write something for extlinux.conf which is not just made up :) | 22:15 |
minute | josch: ok :D | 22:24 |
minute | i just designed a custom flex pcb/cable for the eDP connection of LS1028A, hopefully to combat 2.4ghz wifi interference | 22:24 |
minute | this is my first flex pcb so not sure if it'll fit on first try | 22:25 |
minute | but i tried everything in the design, ground layer, reshuffled the pinout so the lane n/p pins actually stay together (not the case with how the connector is designed on ls1028a atm), and ordered with grounded emi shielding film | 22:25 |
josch | is that the thing we see on the last photo you posted on mastodon? | 22:33 |
josch | ah sorry you said you only designed it :) | 22:40 |
josch | i thought the flat display cable on your last photo looked weird -- way too long | 22:40 |
josch | are you sending those out to existing ls1028a customers? I remember that you only had about three unsold ls1028a left | 22:42 |
- murphnj (QUIT: Ping timeout: 256 seconds) (~murph@user/murphnj) | 22:52 | |
- chomwitt (QUIT: Ping timeout: 268 seconds) (~chomwitt@2a02:587:7a10:cd00:1ac0:4dff:fedb:a3f1) | 22:52 | |
+ erle (~erle@89.205.137.201) | 22:53 | |
minute | josch: if these cables will mitigate this problem then yes. so far it's theoretical | 22:57 |
- GNUmoon (QUIT: Remote host closed the connection) (~GNUmoon@gateway/tor-sasl/gnumoon) | 23:03 | |
+ GNUmoon (~GNUmoon@gateway/tor-sasl/gnumoon) | 23:04 | |
- vagrantc (QUIT: Quit: leaving) (~vagrant@2600:3c01:e000:21:7:77:0:20) | 23:37 | |
+ vagrantc (~vagrant@2600:3c01:e000:21:7:77:0:50) | 23:54 |
Generated by irclog2html.py 2.17.3 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!